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