README: document nit_env.sh
[nit.git] / c_src / nit__local_var_init.sep.1.c
1 #include "nit__local_var_init.sep.0.h"
2 /* method local_var_init#ToolContext#local_var_init_phase for (self: ToolContext): Phase */
3 val* nit__local_var_init___ToolContext___local_var_init_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_nit__local_var_init__ToolContext___local_var_init_phase].val; /* _local_var_init_phase on <self:ToolContext> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _local_var_init_phase");
9 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 24);
10 fatal_exit(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method local_var_init#LocalVarInitPhase#process_npropdef for (self: LocalVarInitPhase, APropdef) */
17 void nit__local_var_init___nit__local_var_init__LocalVarInitPhase___nit__phase__Phase__process_npropdef(val* self, val* p0) {
18 val* var_npropdef /* var npropdef: APropdef */;
19 val* var /* : ToolContext */;
20 val* var2 /* : ToolContext */;
21 var_npropdef = p0;
22 {
23 { /* Inline phase#Phase#toolcontext (self) on <self:LocalVarInitPhase> */
24 var2 = self->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on <self:LocalVarInitPhase> */
25 if (unlikely(var2 == NULL)) {
26 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
27 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 200);
28 fatal_exit(1);
29 }
30 var = var2;
31 RET_LABEL1:(void)0;
32 }
33 }
34 {
35 nit__local_var_init___APropdef___do_local_var_init(var_npropdef, var); /* Direct call local_var_init#APropdef#do_local_var_init on <var_npropdef:APropdef>*/
36 }
37 RET_LABEL:;
38 }
39 /* method local_var_init#APropdef#do_local_var_init for (self: APropdef, ToolContext) */
40 void nit__local_var_init___APropdef___do_local_var_init(val* self, val* p0) {
41 val* var_toolcontext /* var toolcontext: ToolContext */;
42 val* var /* : LocalVarInitVisitor */;
43 val* var_v /* var v: LocalVarInitVisitor */;
44 var_toolcontext = p0;
45 var = NEW_nit__local_var_init__LocalVarInitVisitor(&type_nit__local_var_init__LocalVarInitVisitor);
46 {
47 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_nit__local_var_init__LocalVarInitVisitor__toolcontext_61d]))(var, var_toolcontext); /* toolcontext= on <var:LocalVarInitVisitor>*/
48 }
49 {
50 ((void(*)(val* self))(var->class->vft[COLOR_standard__kernel__Object__init]))(var); /* init on <var:LocalVarInitVisitor>*/
51 }
52 var_v = var;
53 {
54 nit___nit__Visitor___enter_visit(var_v, self); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:LocalVarInitVisitor>*/
55 }
56 RET_LABEL:;
57 }
58 /* method local_var_init#LocalVarInitVisitor#toolcontext for (self: LocalVarInitVisitor): ToolContext */
59 val* nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___toolcontext(val* self) {
60 val* var /* : ToolContext */;
61 val* var1 /* : ToolContext */;
62 var1 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___toolcontext].val; /* _toolcontext on <self:LocalVarInitVisitor> */
63 if (unlikely(var1 == NULL)) {
64 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
65 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 46);
66 fatal_exit(1);
67 }
68 var = var1;
69 RET_LABEL:;
70 return var;
71 }
72 /* method local_var_init#LocalVarInitVisitor#toolcontext= for (self: LocalVarInitVisitor, ToolContext) */
73 void nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___toolcontext_61d(val* self, val* p0) {
74 self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___toolcontext].val = p0; /* _toolcontext on <self:LocalVarInitVisitor> */
75 RET_LABEL:;
76 }
77 /* method local_var_init#LocalVarInitVisitor#maybe_unset_vars for (self: LocalVarInitVisitor): Set[Variable] */
78 val* nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___maybe_unset_vars(val* self) {
79 val* var /* : Set[Variable] */;
80 val* var1 /* : Set[Variable] */;
81 var1 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___maybe_unset_vars].val; /* _maybe_unset_vars on <self:LocalVarInitVisitor> */
82 if (unlikely(var1 == NULL)) {
83 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _maybe_unset_vars");
84 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 48);
85 fatal_exit(1);
86 }
87 var = var1;
88 RET_LABEL:;
89 return var;
90 }
91 /* method local_var_init#LocalVarInitVisitor#mark_is_unset for (self: LocalVarInitVisitor, AExpr, nullable Variable) */
92 void nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___mark_is_unset(val* self, val* p0, val* p1) {
93 val* var_node /* var node: AExpr */;
94 val* var_variable /* var variable: nullable Variable */;
95 short int var /* : Bool */;
96 short int var1 /* : Bool */;
97 val* var_other /* var other: nullable Object */;
98 short int var3 /* : Bool */;
99 short int var4 /* : Bool */;
100 val* var5 /* : Set[Variable] */;
101 val* var7 /* : Set[Variable] */;
102 var_node = p0;
103 var_variable = p1;
104 if (var_variable == NULL) {
105 var = 0; /* is null */
106 } else {
107 var = 1; /* arg is null and recv is not */
108 }
109 if (0) {
110 { /* Inline kernel#Object#!= (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
111 var_other = ((val*)NULL);
112 {
113 var3 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_variable, var_other); /* == on <var_variable:nullable Variable(Variable)>*/
114 }
115 var4 = !var3;
116 var1 = var4;
117 goto RET_LABEL2;
118 RET_LABEL2:(void)0;
119 }
120 var = var1;
121 }
122 if (unlikely(!var)) {
123 PRINT_ERROR("Runtime error: %s", "Assert failed");
124 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 53);
125 fatal_exit(1);
126 }
127 {
128 { /* Inline local_var_init#LocalVarInitVisitor#maybe_unset_vars (self) on <self:LocalVarInitVisitor> */
129 var7 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___maybe_unset_vars].val; /* _maybe_unset_vars on <self:LocalVarInitVisitor> */
130 if (unlikely(var7 == NULL)) {
131 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _maybe_unset_vars");
132 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 48);
133 fatal_exit(1);
134 }
135 var5 = var7;
136 RET_LABEL6:(void)0;
137 }
138 }
139 {
140 ((void(*)(val* self, val* p0))((((long)var5&3)?class_info[((long)var5&3)]:var5->class)->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var5, var_variable); /* add on <var5:Set[Variable]>*/
141 }
142 RET_LABEL:;
143 }
144 /* method local_var_init#LocalVarInitVisitor#mark_is_set for (self: LocalVarInitVisitor, AExpr, nullable Variable) */
145 void nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___mark_is_set(val* self, val* p0, val* p1) {
146 val* var_node /* var node: AExpr */;
147 val* var_variable /* var variable: nullable Variable */;
148 short int var /* : Bool */;
149 short int var1 /* : Bool */;
150 val* var_other /* var other: nullable Object */;
151 short int var3 /* : Bool */;
152 short int var4 /* : Bool */;
153 val* var5 /* : Set[Variable] */;
154 val* var7 /* : Set[Variable] */;
155 short int var8 /* : Bool */;
156 short int var9 /* : Bool */;
157 val* var10 /* : nullable FlowContext */;
158 val* var12 /* : nullable FlowContext */;
159 val* var_flow /* var flow: FlowContext */;
160 val* var13 /* : Set[Variable] */;
161 val* var15 /* : Set[Variable] */;
162 var_node = p0;
163 var_variable = p1;
164 if (var_variable == NULL) {
165 var = 0; /* is null */
166 } else {
167 var = 1; /* arg is null and recv is not */
168 }
169 if (0) {
170 { /* Inline kernel#Object#!= (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
171 var_other = ((val*)NULL);
172 {
173 var3 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_variable, var_other); /* == on <var_variable:nullable Variable(Variable)>*/
174 }
175 var4 = !var3;
176 var1 = var4;
177 goto RET_LABEL2;
178 RET_LABEL2:(void)0;
179 }
180 var = var1;
181 }
182 if (unlikely(!var)) {
183 PRINT_ERROR("Runtime error: %s", "Assert failed");
184 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 59);
185 fatal_exit(1);
186 }
187 {
188 { /* Inline local_var_init#LocalVarInitVisitor#maybe_unset_vars (self) on <self:LocalVarInitVisitor> */
189 var7 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___maybe_unset_vars].val; /* _maybe_unset_vars on <self:LocalVarInitVisitor> */
190 if (unlikely(var7 == NULL)) {
191 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _maybe_unset_vars");
192 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 48);
193 fatal_exit(1);
194 }
195 var5 = var7;
196 RET_LABEL6:(void)0;
197 }
198 }
199 {
200 var8 = ((short int(*)(val* self, val* p0))((((long)var5&3)?class_info[((long)var5&3)]:var5->class)->vft[COLOR_standard__abstract_collection__Collection__has]))(var5, var_variable); /* has on <var5:Set[Variable]>*/
201 }
202 var9 = !var8;
203 if (var9){
204 goto RET_LABEL;
205 } else {
206 }
207 {
208 { /* Inline flow#AExpr#after_flow_context (var_node) on <var_node:AExpr> */
209 var12 = var_node->attrs[COLOR_nit__flow__AExpr___after_flow_context].val; /* _after_flow_context on <var_node:AExpr> */
210 var10 = var12;
211 RET_LABEL11:(void)0;
212 }
213 }
214 if (unlikely(var10 == NULL)) {
215 PRINT_ERROR("Runtime error: %s", "Cast failed");
216 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 62);
217 fatal_exit(1);
218 }
219 var_flow = var10;
220 {
221 { /* Inline local_var_init#FlowContext#set_vars (var_flow) on <var_flow:FlowContext> */
222 var15 = var_flow->attrs[COLOR_nit__local_var_init__FlowContext___set_vars].val; /* _set_vars on <var_flow:FlowContext> */
223 if (unlikely(var15 == NULL)) {
224 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _set_vars");
225 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 86);
226 fatal_exit(1);
227 }
228 var13 = var15;
229 RET_LABEL14:(void)0;
230 }
231 }
232 {
233 ((void(*)(val* self, val* p0))((((long)var13&3)?class_info[((long)var13&3)]:var13->class)->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var13, var_variable); /* add on <var13:Set[Variable]>*/
234 }
235 RET_LABEL:;
236 }
237 /* method local_var_init#LocalVarInitVisitor#check_is_set for (self: LocalVarInitVisitor, AExpr, nullable Variable) */
238 void nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___check_is_set(val* self, val* p0, val* p1) {
239 val* var_node /* var node: AExpr */;
240 val* var_variable /* var variable: nullable Variable */;
241 short int var /* : Bool */;
242 short int var1 /* : Bool */;
243 val* var_other /* var other: nullable Object */;
244 short int var3 /* : Bool */;
245 short int var4 /* : Bool */;
246 val* var5 /* : Set[Variable] */;
247 val* var7 /* : Set[Variable] */;
248 short int var8 /* : Bool */;
249 short int var9 /* : Bool */;
250 val* var10 /* : nullable FlowContext */;
251 val* var12 /* : nullable FlowContext */;
252 val* var_flow /* var flow: FlowContext */;
253 short int var13 /* : Bool */;
254 short int var14 /* : Bool */;
255 val* var15 /* : ToolContext */;
256 val* var17 /* : ToolContext */;
257 val* var18 /* : Location */;
258 val* var19 /* : NativeArray[String] */;
259 static val* varonce;
260 static val* varonce20;
261 val* var21 /* : String */;
262 char* var22 /* : NativeString */;
263 val* var23 /* : FlatString */;
264 static val* varonce24;
265 val* var25 /* : String */;
266 char* var26 /* : NativeString */;
267 val* var27 /* : FlatString */;
268 val* var28 /* : String */;
269 val* var29 /* : String */;
270 val* var30 /* : Message */;
271 val* var31 /* : Set[Variable] */;
272 val* var33 /* : Set[Variable] */;
273 var_node = p0;
274 var_variable = p1;
275 if (var_variable == NULL) {
276 var = 0; /* is null */
277 } else {
278 var = 1; /* arg is null and recv is not */
279 }
280 if (0) {
281 { /* Inline kernel#Object#!= (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
282 var_other = ((val*)NULL);
283 {
284 var3 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_variable, var_other); /* == on <var_variable:nullable Variable(Variable)>*/
285 }
286 var4 = !var3;
287 var1 = var4;
288 goto RET_LABEL2;
289 RET_LABEL2:(void)0;
290 }
291 var = var1;
292 }
293 if (unlikely(!var)) {
294 PRINT_ERROR("Runtime error: %s", "Assert failed");
295 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 68);
296 fatal_exit(1);
297 }
298 {
299 { /* Inline local_var_init#LocalVarInitVisitor#maybe_unset_vars (self) on <self:LocalVarInitVisitor> */
300 var7 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___maybe_unset_vars].val; /* _maybe_unset_vars on <self:LocalVarInitVisitor> */
301 if (unlikely(var7 == NULL)) {
302 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _maybe_unset_vars");
303 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 48);
304 fatal_exit(1);
305 }
306 var5 = var7;
307 RET_LABEL6:(void)0;
308 }
309 }
310 {
311 var8 = ((short int(*)(val* self, val* p0))((((long)var5&3)?class_info[((long)var5&3)]:var5->class)->vft[COLOR_standard__abstract_collection__Collection__has]))(var5, var_variable); /* has on <var5:Set[Variable]>*/
312 }
313 var9 = !var8;
314 if (var9){
315 goto RET_LABEL;
316 } else {
317 }
318 {
319 { /* Inline flow#AExpr#after_flow_context (var_node) on <var_node:AExpr> */
320 var12 = var_node->attrs[COLOR_nit__flow__AExpr___after_flow_context].val; /* _after_flow_context on <var_node:AExpr> */
321 var10 = var12;
322 RET_LABEL11:(void)0;
323 }
324 }
325 if (unlikely(var10 == NULL)) {
326 PRINT_ERROR("Runtime error: %s", "Cast failed");
327 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 71);
328 fatal_exit(1);
329 }
330 var_flow = var10;
331 {
332 var13 = nit__local_var_init___FlowContext___is_variable_set(var_flow, var_variable);
333 }
334 var14 = !var13;
335 if (var14){
336 {
337 { /* Inline local_var_init#LocalVarInitVisitor#toolcontext (self) on <self:LocalVarInitVisitor> */
338 var17 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___toolcontext].val; /* _toolcontext on <self:LocalVarInitVisitor> */
339 if (unlikely(var17 == NULL)) {
340 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
341 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 46);
342 fatal_exit(1);
343 }
344 var15 = var17;
345 RET_LABEL16:(void)0;
346 }
347 }
348 {
349 var18 = nit___nit__ANode___hot_location(var_node);
350 }
351 if (unlikely(varonce==NULL)) {
352 var19 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
353 if (likely(varonce20!=NULL)) {
354 var21 = varonce20;
355 } else {
356 var22 = "Error: possibly unset variable `";
357 var23 = standard___standard__NativeString___to_s_with_length(var22, 32l);
358 var21 = var23;
359 varonce20 = var21;
360 }
361 ((struct instance_standard__NativeArray*)var19)->values[0]=var21;
362 if (likely(varonce24!=NULL)) {
363 var25 = varonce24;
364 } else {
365 var26 = "`.";
366 var27 = standard___standard__NativeString___to_s_with_length(var26, 2l);
367 var25 = var27;
368 varonce24 = var25;
369 }
370 ((struct instance_standard__NativeArray*)var19)->values[2]=var25;
371 } else {
372 var19 = varonce;
373 varonce = NULL;
374 }
375 {
376 var28 = ((val*(*)(val* self))(var_variable->class->vft[COLOR_standard__string__Object__to_s]))(var_variable); /* to_s on <var_variable:nullable Variable(Variable)>*/
377 }
378 ((struct instance_standard__NativeArray*)var19)->values[1]=var28;
379 {
380 var29 = ((val*(*)(val* self))(var19->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var19); /* native_to_s on <var19:NativeArray[String]>*/
381 }
382 varonce = var19;
383 {
384 var30 = nit___nit__ToolContext___error(var15, var18, var29);
385 }
386 {
387 { /* Inline local_var_init#LocalVarInitVisitor#maybe_unset_vars (self) on <self:LocalVarInitVisitor> */
388 var33 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___maybe_unset_vars].val; /* _maybe_unset_vars on <self:LocalVarInitVisitor> */
389 if (unlikely(var33 == NULL)) {
390 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _maybe_unset_vars");
391 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 48);
392 fatal_exit(1);
393 }
394 var31 = var33;
395 RET_LABEL32:(void)0;
396 }
397 }
398 {
399 ((void(*)(val* self, val* p0))((((long)var31&3)?class_info[((long)var31&3)]:var31->class)->vft[COLOR_standard__abstract_collection__RemovableCollection__remove]))(var31, var_variable); /* remove on <var31:Set[Variable]>*/
400 }
401 } else {
402 }
403 RET_LABEL:;
404 }
405 /* method local_var_init#LocalVarInitVisitor#visit for (self: LocalVarInitVisitor, ANode) */
406 void nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___nit__parser_nodes__Visitor__visit(val* self, val* p0) {
407 val* var_n /* var n: ANode */;
408 var_n = p0;
409 {
410 ((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__local_var_init__ANode__accept_local_var_visitor]))(var_n, self); /* accept_local_var_visitor on <var_n:ANode>*/
411 }
412 RET_LABEL:;
413 }
414 /* method local_var_init#LocalVarInitVisitor#init for (self: LocalVarInitVisitor) */
415 void nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___standard__kernel__Object__init(val* self) {
416 {
417 ((void(*)(val* self))(self->class->vft[COLOR_nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___standard__kernel__Object__init]))(self); /* init on <self:LocalVarInitVisitor>*/
418 }
419 RET_LABEL:;
420 }
421 /* method local_var_init#FlowContext#set_vars for (self: FlowContext): Set[Variable] */
422 val* nit__local_var_init___FlowContext___set_vars(val* self) {
423 val* var /* : Set[Variable] */;
424 val* var1 /* : Set[Variable] */;
425 var1 = self->attrs[COLOR_nit__local_var_init__FlowContext___set_vars].val; /* _set_vars on <self:FlowContext> */
426 if (unlikely(var1 == NULL)) {
427 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _set_vars");
428 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 86);
429 fatal_exit(1);
430 }
431 var = var1;
432 RET_LABEL:;
433 return var;
434 }
435 /* method local_var_init#FlowContext#is_variable_set for (self: FlowContext, Variable): Bool */
436 short int nit__local_var_init___FlowContext___is_variable_set(val* self, val* p0) {
437 short int var /* : Bool */;
438 val* var_variable /* var variable: Variable */;
439 val* var1 /* : Set[Variable] */;
440 val* var3 /* : Set[Variable] */;
441 short int var4 /* : Bool */;
442 val* var5 /* : Array[FlowContext] */;
443 val* var7 /* : Array[FlowContext] */;
444 val* var_previous /* var previous: Array[FlowContext] */;
445 long var8 /* : Int */;
446 long var10 /* : Int */;
447 short int var11 /* : Bool */;
448 short int var13 /* : Bool */;
449 long var14 /* : Int */;
450 long var16 /* : Int */;
451 short int var17 /* : Bool */;
452 short int var19 /* : Bool */;
453 val* var20 /* : nullable Object */;
454 short int var21 /* : Bool */;
455 val* var22 /* : Array[FlowContext] */;
456 val* var24 /* : Array[FlowContext] */;
457 val* var_ /* var : Array[FlowContext] */;
458 val* var25 /* : ArrayIterator[nullable Object] */;
459 val* var_26 /* var : ArrayIterator[FlowContext] */;
460 short int var27 /* : Bool */;
461 val* var28 /* : nullable Object */;
462 val* var_p /* var p: FlowContext */;
463 short int var29 /* : Bool */;
464 short int var30 /* : Bool */;
465 val* var31 /* : Set[Variable] */;
466 val* var33 /* : Set[Variable] */;
467 var_variable = p0;
468 {
469 { /* Inline local_var_init#FlowContext#set_vars (self) on <self:FlowContext> */
470 var3 = self->attrs[COLOR_nit__local_var_init__FlowContext___set_vars].val; /* _set_vars on <self:FlowContext> */
471 if (unlikely(var3 == NULL)) {
472 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _set_vars");
473 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 86);
474 fatal_exit(1);
475 }
476 var1 = var3;
477 RET_LABEL2:(void)0;
478 }
479 }
480 {
481 var4 = ((short int(*)(val* self, val* p0))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_standard__abstract_collection__Collection__has]))(var1, var_variable); /* has on <var1:Set[Variable]>*/
482 }
483 if (var4){
484 var = 1;
485 goto RET_LABEL;
486 } else {
487 }
488 {
489 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
490 var7 = self->attrs[COLOR_nit__flow__FlowContext___previous].val; /* _previous on <self:FlowContext> */
491 if (unlikely(var7 == NULL)) {
492 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
493 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow, 189);
494 fatal_exit(1);
495 }
496 var5 = var7;
497 RET_LABEL6:(void)0;
498 }
499 }
500 var_previous = var5;
501 {
502 { /* Inline array#AbstractArrayRead#length (var_previous) on <var_previous:Array[FlowContext]> */
503 var10 = var_previous->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_previous:Array[FlowContext]> */
504 var8 = var10;
505 RET_LABEL9:(void)0;
506 }
507 }
508 {
509 { /* Inline kernel#Int#== (var8,0l) on <var8:Int> */
510 var13 = var8 == 0l;
511 var11 = var13;
512 goto RET_LABEL12;
513 RET_LABEL12:(void)0;
514 }
515 }
516 if (var11){
517 var = 0;
518 goto RET_LABEL;
519 } else {
520 }
521 {
522 { /* Inline array#AbstractArrayRead#length (var_previous) on <var_previous:Array[FlowContext]> */
523 var16 = var_previous->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_previous:Array[FlowContext]> */
524 var14 = var16;
525 RET_LABEL15:(void)0;
526 }
527 }
528 {
529 { /* Inline kernel#Int#== (var14,1l) on <var14:Int> */
530 var19 = var14 == 1l;
531 var17 = var19;
532 goto RET_LABEL18;
533 RET_LABEL18:(void)0;
534 }
535 }
536 if (var17){
537 {
538 var20 = standard___standard__SequenceRead___Collection__first(var_previous);
539 }
540 {
541 var21 = nit__local_var_init___FlowContext___is_variable_set(var20, var_variable);
542 }
543 var = var21;
544 goto RET_LABEL;
545 } else {
546 }
547 {
548 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
549 var24 = self->attrs[COLOR_nit__flow__FlowContext___previous].val; /* _previous on <self:FlowContext> */
550 if (unlikely(var24 == NULL)) {
551 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
552 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow, 189);
553 fatal_exit(1);
554 }
555 var22 = var24;
556 RET_LABEL23:(void)0;
557 }
558 }
559 var_ = var22;
560 {
561 var25 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
562 }
563 var_26 = var25;
564 for(;;) {
565 {
566 var27 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_26);
567 }
568 if (var27){
569 {
570 var28 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_26);
571 }
572 var_p = var28;
573 {
574 var29 = nit__local_var_init___FlowContext___is_variable_set(var_p, var_variable);
575 }
576 var30 = !var29;
577 if (var30){
578 var = 0;
579 goto RET_LABEL;
580 } else {
581 }
582 {
583 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_26); /* Direct call array#ArrayIterator#next on <var_26:ArrayIterator[FlowContext]>*/
584 }
585 } else {
586 goto BREAK_label;
587 }
588 }
589 BREAK_label: (void)0;
590 {
591 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_26); /* Direct call array#ArrayIterator#finish on <var_26:ArrayIterator[FlowContext]>*/
592 }
593 {
594 { /* Inline local_var_init#FlowContext#set_vars (self) on <self:FlowContext> */
595 var33 = self->attrs[COLOR_nit__local_var_init__FlowContext___set_vars].val; /* _set_vars on <self:FlowContext> */
596 if (unlikely(var33 == NULL)) {
597 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _set_vars");
598 PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 86);
599 fatal_exit(1);
600 }
601 var31 = var33;
602 RET_LABEL32:(void)0;
603 }
604 }
605 {
606 ((void(*)(val* self, val* p0))((((long)var31&3)?class_info[((long)var31&3)]:var31->class)->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var31, var_variable); /* add on <var31:Set[Variable]>*/
607 }
608 var = 1;
609 goto RET_LABEL;
610 RET_LABEL:;
611 return var;
612 }
613 /* method local_var_init#ANode#accept_local_var_visitor for (self: ANode, LocalVarInitVisitor) */
614 void nit__local_var_init___ANode___accept_local_var_visitor(val* self, val* p0) {
615 val* var_v /* var v: LocalVarInitVisitor */;
616 var_v = p0;
617 {
618 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__ANode__visit_all]))(self, var_v); /* visit_all on <self:ANode>*/
619 }
620 RET_LABEL:;
621 }
622 /* method local_var_init#AVardeclExpr#accept_local_var_visitor for (self: AVardeclExpr, LocalVarInitVisitor) */
623 void nit__local_var_init___AVardeclExpr___ANode__accept_local_var_visitor(val* self, val* p0) {
624 val* var_v /* var v: LocalVarInitVisitor */;
625 val* var /* : nullable AExpr */;
626 val* var2 /* : nullable AExpr */;
627 short int var3 /* : Bool */;
628 short int var4 /* : Bool */;
629 val* var_other /* var other: nullable Object */;
630 short int var6 /* : Bool */;
631 short int var8 /* : Bool */;
632 val* var9 /* : nullable Variable */;
633 val* var11 /* : nullable Variable */;
634 var_v = p0;
635 {
636 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__local_var_init___AVardeclExpr___ANode__accept_local_var_visitor]))(self, p0); /* accept_local_var_visitor on <self:AVardeclExpr>*/
637 }
638 {
639 { /* Inline parser_nodes#AVardeclExpr#n_expr (self) on <self:AVardeclExpr> */
640 var2 = self->attrs[COLOR_nit__parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
641 var = var2;
642 RET_LABEL1:(void)0;
643 }
644 }
645 if (var == NULL) {
646 var3 = 1; /* is null */
647 } else {
648 var3 = 0; /* arg is null but recv is not */
649 }
650 if (0) {
651 { /* Inline kernel#Object#== (var,((val*)NULL)) on <var:nullable AExpr> */
652 var_other = ((val*)NULL);
653 {
654 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable AExpr(AExpr)> */
655 var8 = var == var_other;
656 var6 = var8;
657 goto RET_LABEL7;
658 RET_LABEL7:(void)0;
659 }
660 }
661 var4 = var6;
662 goto RET_LABEL5;
663 RET_LABEL5:(void)0;
664 }
665 var3 = var4;
666 }
667 if (var3){
668 {
669 { /* Inline scope#AVardeclExpr#variable (self) on <self:AVardeclExpr> */
670 var11 = self->attrs[COLOR_nit__scope__AVardeclExpr___variable].val; /* _variable on <self:AVardeclExpr> */
671 var9 = var11;
672 RET_LABEL10:(void)0;
673 }
674 }
675 {
676 nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___mark_is_unset(var_v, self, var9); /* Direct call local_var_init#LocalVarInitVisitor#mark_is_unset on <var_v:LocalVarInitVisitor>*/
677 }
678 } else {
679 }
680 RET_LABEL:;
681 }
682 /* method local_var_init#AVarExpr#accept_local_var_visitor for (self: AVarExpr, LocalVarInitVisitor) */
683 void nit__local_var_init___AVarExpr___ANode__accept_local_var_visitor(val* self, val* p0) {
684 val* var_v /* var v: LocalVarInitVisitor */;
685 val* var /* : nullable Variable */;
686 val* var2 /* : nullable Variable */;
687 var_v = p0;
688 {
689 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__local_var_init___AVarExpr___ANode__accept_local_var_visitor]))(self, p0); /* accept_local_var_visitor on <self:AVarExpr>*/
690 }
691 {
692 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarExpr> */
693 var2 = self->attrs[COLOR_nit__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarExpr> */
694 var = var2;
695 RET_LABEL1:(void)0;
696 }
697 }
698 {
699 nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___check_is_set(var_v, self, var); /* Direct call local_var_init#LocalVarInitVisitor#check_is_set on <var_v:LocalVarInitVisitor>*/
700 }
701 RET_LABEL:;
702 }
703 /* method local_var_init#AVarAssignExpr#accept_local_var_visitor for (self: AVarAssignExpr, LocalVarInitVisitor) */
704 void nit__local_var_init___AVarAssignExpr___ANode__accept_local_var_visitor(val* self, val* p0) {
705 val* var_v /* var v: LocalVarInitVisitor */;
706 val* var /* : nullable Variable */;
707 val* var2 /* : nullable Variable */;
708 var_v = p0;
709 {
710 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__local_var_init___AVarAssignExpr___ANode__accept_local_var_visitor]))(self, p0); /* accept_local_var_visitor on <self:AVarAssignExpr>*/
711 }
712 {
713 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarAssignExpr> */
714 var2 = self->attrs[COLOR_nit__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarAssignExpr> */
715 var = var2;
716 RET_LABEL1:(void)0;
717 }
718 }
719 {
720 nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___mark_is_set(var_v, self, var); /* Direct call local_var_init#LocalVarInitVisitor#mark_is_set on <var_v:LocalVarInitVisitor>*/
721 }
722 RET_LABEL:;
723 }
724 /* method local_var_init#AVarReassignExpr#accept_local_var_visitor for (self: AVarReassignExpr, LocalVarInitVisitor) */
725 void nit__local_var_init___AVarReassignExpr___ANode__accept_local_var_visitor(val* self, val* p0) {
726 val* var_v /* var v: LocalVarInitVisitor */;
727 val* var /* : nullable Variable */;
728 val* var2 /* : nullable Variable */;
729 var_v = p0;
730 {
731 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__local_var_init___AVarReassignExpr___ANode__accept_local_var_visitor]))(self, p0); /* accept_local_var_visitor on <self:AVarReassignExpr>*/
732 }
733 {
734 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarReassignExpr> */
735 var2 = self->attrs[COLOR_nit__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarReassignExpr> */
736 var = var2;
737 RET_LABEL1:(void)0;
738 }
739 }
740 {
741 nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___check_is_set(var_v, self, var); /* Direct call local_var_init#LocalVarInitVisitor#check_is_set on <var_v:LocalVarInitVisitor>*/
742 }
743 RET_LABEL:;
744 }