pep8analysis: intro the web interface
[nit.git] / c_src / local_var_init.sep.1.c
1 #include "local_var_init.sep.0.h"
2 /* method local_var_init#ToolContext#local_var_init_phase for (self: ToolContext): Phase */
3 val* local_var_init__ToolContext__local_var_init_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_local_var_init__ToolContext___64dlocal_var_init_phase].val; /* @local_var_init_phase on <self:ToolContext> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @local_var_init_phase");
9 fprintf(stderr, " (%s:%d)\n", "src/local_var_init.nit", 26);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method local_var_init#ToolContext#local_var_init_phase for (self: Object): Phase */
17 val* VIRTUAL_local_var_init__ToolContext__local_var_init_phase(val* self) {
18 val* var /* : Phase */;
19 val* var1 /* : Phase */;
20 var1 = local_var_init__ToolContext__local_var_init_phase(self);
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method local_var_init#ToolContext#local_var_init_phase= for (self: ToolContext, Phase) */
26 void local_var_init__ToolContext__local_var_init_phase_61d(val* self, val* p0) {
27 self->attrs[COLOR_local_var_init__ToolContext___64dlocal_var_init_phase].val = p0; /* @local_var_init_phase on <self:ToolContext> */
28 RET_LABEL:;
29 }
30 /* method local_var_init#ToolContext#local_var_init_phase= for (self: Object, Phase) */
31 void VIRTUAL_local_var_init__ToolContext__local_var_init_phase_61d(val* self, val* p0) {
32 local_var_init__ToolContext__local_var_init_phase_61d(self, p0);
33 RET_LABEL:;
34 }
35 /* method local_var_init#LocalVarInitPhase#process_npropdef for (self: LocalVarInitPhase, APropdef) */
36 void local_var_init__LocalVarInitPhase__process_npropdef(val* self, val* p0) {
37 val* var_npropdef /* var npropdef: APropdef */;
38 val* var /* : ToolContext */;
39 var_npropdef = p0;
40 var = ((val* (*)(val*))(self->class->vft[COLOR_phase__Phase__toolcontext]))(self) /* toolcontext on <self:LocalVarInitPhase>*/;
41 ((void (*)(val*, val*))(var_npropdef->class->vft[COLOR_local_var_init__APropdef__do_local_var_init]))(var_npropdef, var) /* do_local_var_init on <var_npropdef:APropdef>*/;
42 RET_LABEL:;
43 }
44 /* method local_var_init#LocalVarInitPhase#process_npropdef for (self: Object, APropdef) */
45 void VIRTUAL_local_var_init__LocalVarInitPhase__process_npropdef(val* self, val* p0) {
46 local_var_init__LocalVarInitPhase__process_npropdef(self, p0);
47 RET_LABEL:;
48 }
49 /* method local_var_init#APropdef#do_local_var_init for (self: APropdef, ToolContext) */
50 void local_var_init__APropdef__do_local_var_init(val* self, val* p0) {
51 val* var_toolcontext /* var toolcontext: ToolContext */;
52 val* var /* : LocalVarInitVisitor */;
53 val* var_v /* var v: LocalVarInitVisitor */;
54 var_toolcontext = p0;
55 var = NEW_local_var_init__LocalVarInitVisitor(&type_local_var_init__LocalVarInitVisitor);
56 ((void (*)(val*, val*))(var->class->vft[COLOR_local_var_init__LocalVarInitVisitor__init]))(var, var_toolcontext) /* init on <var:LocalVarInitVisitor>*/;
57 var_v = var;
58 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, self) /* enter_visit on <var_v:LocalVarInitVisitor>*/;
59 RET_LABEL:;
60 }
61 /* method local_var_init#APropdef#do_local_var_init for (self: Object, ToolContext) */
62 void VIRTUAL_local_var_init__APropdef__do_local_var_init(val* self, val* p0) {
63 local_var_init__APropdef__do_local_var_init(self, p0);
64 RET_LABEL:;
65 }
66 /* method local_var_init#LocalVarInitVisitor#toolcontext for (self: LocalVarInitVisitor): ToolContext */
67 val* local_var_init__LocalVarInitVisitor__toolcontext(val* self) {
68 val* var /* : ToolContext */;
69 val* var1 /* : ToolContext */;
70 var1 = self->attrs[COLOR_local_var_init__LocalVarInitVisitor___64dtoolcontext].val; /* @toolcontext on <self:LocalVarInitVisitor> */
71 if (var1 == NULL) {
72 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @toolcontext");
73 fprintf(stderr, " (%s:%d)\n", "src/local_var_init.nit", 47);
74 show_backtrace(1);
75 }
76 var = var1;
77 RET_LABEL:;
78 return var;
79 }
80 /* method local_var_init#LocalVarInitVisitor#toolcontext for (self: Object): ToolContext */
81 val* VIRTUAL_local_var_init__LocalVarInitVisitor__toolcontext(val* self) {
82 val* var /* : ToolContext */;
83 val* var1 /* : ToolContext */;
84 var1 = local_var_init__LocalVarInitVisitor__toolcontext(self);
85 var = var1;
86 RET_LABEL:;
87 return var;
88 }
89 /* method local_var_init#LocalVarInitVisitor#toolcontext= for (self: LocalVarInitVisitor, ToolContext) */
90 void local_var_init__LocalVarInitVisitor__toolcontext_61d(val* self, val* p0) {
91 self->attrs[COLOR_local_var_init__LocalVarInitVisitor___64dtoolcontext].val = p0; /* @toolcontext on <self:LocalVarInitVisitor> */
92 RET_LABEL:;
93 }
94 /* method local_var_init#LocalVarInitVisitor#toolcontext= for (self: Object, ToolContext) */
95 void VIRTUAL_local_var_init__LocalVarInitVisitor__toolcontext_61d(val* self, val* p0) {
96 local_var_init__LocalVarInitVisitor__toolcontext_61d(self, p0);
97 RET_LABEL:;
98 }
99 /* method local_var_init#LocalVarInitVisitor#init for (self: LocalVarInitVisitor, ToolContext) */
100 void local_var_init__LocalVarInitVisitor__init(val* self, val* p0) {
101 val* var_toolcontext /* var toolcontext: ToolContext */;
102 var_toolcontext = p0;
103 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Visitor__init]))(self) /* init on <self:LocalVarInitVisitor>*/;
104 ((void (*)(val*, val*))(self->class->vft[COLOR_local_var_init__LocalVarInitVisitor__toolcontext_61d]))(self, var_toolcontext) /* toolcontext= on <self:LocalVarInitVisitor>*/;
105 RET_LABEL:;
106 }
107 /* method local_var_init#LocalVarInitVisitor#init for (self: Object, ToolContext) */
108 void VIRTUAL_local_var_init__LocalVarInitVisitor__init(val* self, val* p0) {
109 local_var_init__LocalVarInitVisitor__init(self, p0);
110 RET_LABEL:;
111 }
112 /* method local_var_init#LocalVarInitVisitor#maybe_unset_vars for (self: LocalVarInitVisitor): Set[Variable] */
113 val* local_var_init__LocalVarInitVisitor__maybe_unset_vars(val* self) {
114 val* var /* : Set[Variable] */;
115 val* var1 /* : Set[Variable] */;
116 var1 = self->attrs[COLOR_local_var_init__LocalVarInitVisitor___64dmaybe_unset_vars].val; /* @maybe_unset_vars on <self:LocalVarInitVisitor> */
117 if (var1 == NULL) {
118 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @maybe_unset_vars");
119 fprintf(stderr, " (%s:%d)\n", "src/local_var_init.nit", 54);
120 show_backtrace(1);
121 }
122 var = var1;
123 RET_LABEL:;
124 return var;
125 }
126 /* method local_var_init#LocalVarInitVisitor#maybe_unset_vars for (self: Object): Set[Variable] */
127 val* VIRTUAL_local_var_init__LocalVarInitVisitor__maybe_unset_vars(val* self) {
128 val* var /* : Set[Variable] */;
129 val* var1 /* : Set[Variable] */;
130 var1 = local_var_init__LocalVarInitVisitor__maybe_unset_vars(self);
131 var = var1;
132 RET_LABEL:;
133 return var;
134 }
135 /* method local_var_init#LocalVarInitVisitor#maybe_unset_vars= for (self: LocalVarInitVisitor, Set[Variable]) */
136 void local_var_init__LocalVarInitVisitor__maybe_unset_vars_61d(val* self, val* p0) {
137 self->attrs[COLOR_local_var_init__LocalVarInitVisitor___64dmaybe_unset_vars].val = p0; /* @maybe_unset_vars on <self:LocalVarInitVisitor> */
138 RET_LABEL:;
139 }
140 /* method local_var_init#LocalVarInitVisitor#maybe_unset_vars= for (self: Object, Set[Variable]) */
141 void VIRTUAL_local_var_init__LocalVarInitVisitor__maybe_unset_vars_61d(val* self, val* p0) {
142 local_var_init__LocalVarInitVisitor__maybe_unset_vars_61d(self, p0);
143 RET_LABEL:;
144 }
145 /* method local_var_init#LocalVarInitVisitor#mark_is_unset for (self: LocalVarInitVisitor, AExpr, nullable Variable) */
146 void local_var_init__LocalVarInitVisitor__mark_is_unset(val* self, val* p0, val* p1) {
147 val* var_node /* var node: AExpr */;
148 val* var_variable /* var variable: nullable Variable */;
149 val* var /* : null */;
150 short int var1 /* : Bool */;
151 val* var2 /* : Set[Variable] */;
152 var_node = p0;
153 var_variable = p1;
154 var = NULL;
155 if (var_variable == NULL) {
156 var1 = 0; /* is null */
157 } else {
158 var1 = 1; /* arg is null and recv is not */
159 }
160 if (!var1) {
161 fprintf(stderr, "Runtime error: %s", "Assert failed");
162 fprintf(stderr, " (%s:%d)\n", "src/local_var_init.nit", 59);
163 show_backtrace(1);
164 }
165 var2 = ((val* (*)(val*))(self->class->vft[COLOR_local_var_init__LocalVarInitVisitor__maybe_unset_vars]))(self) /* maybe_unset_vars on <self:LocalVarInitVisitor>*/;
166 ((void (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var2, var_variable) /* add on <var2:Set[Variable]>*/;
167 RET_LABEL:;
168 }
169 /* method local_var_init#LocalVarInitVisitor#mark_is_unset for (self: Object, AExpr, nullable Variable) */
170 void VIRTUAL_local_var_init__LocalVarInitVisitor__mark_is_unset(val* self, val* p0, val* p1) {
171 local_var_init__LocalVarInitVisitor__mark_is_unset(self, p0, p1);
172 RET_LABEL:;
173 }
174 /* method local_var_init#LocalVarInitVisitor#mark_is_set for (self: LocalVarInitVisitor, AExpr, nullable Variable) */
175 void local_var_init__LocalVarInitVisitor__mark_is_set(val* self, val* p0, val* p1) {
176 val* var_node /* var node: AExpr */;
177 val* var_variable /* var variable: nullable Variable */;
178 val* var /* : null */;
179 short int var1 /* : Bool */;
180 val* var2 /* : Set[Variable] */;
181 short int var3 /* : Bool */;
182 short int var4 /* : Bool */;
183 val* var5 /* : nullable FlowContext */;
184 val* var_flow /* var flow: FlowContext */;
185 val* var6 /* : Set[Variable] */;
186 var_node = p0;
187 var_variable = p1;
188 var = NULL;
189 if (var_variable == NULL) {
190 var1 = 0; /* is null */
191 } else {
192 var1 = 1; /* arg is null and recv is not */
193 }
194 if (!var1) {
195 fprintf(stderr, "Runtime error: %s", "Assert failed");
196 fprintf(stderr, " (%s:%d)\n", "src/local_var_init.nit", 65);
197 show_backtrace(1);
198 }
199 var2 = ((val* (*)(val*))(self->class->vft[COLOR_local_var_init__LocalVarInitVisitor__maybe_unset_vars]))(self) /* maybe_unset_vars on <self:LocalVarInitVisitor>*/;
200 var3 = ((short int (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__Collection__has]))(var2, var_variable) /* has on <var2:Set[Variable]>*/;
201 var4 = !var3;
202 if (var4){
203 goto RET_LABEL;
204 } else {
205 }
206 var5 = ((val* (*)(val*))(var_node->class->vft[COLOR_flow__AExpr__after_flow_context]))(var_node) /* after_flow_context on <var_node:AExpr>*/;
207 if (var5 == NULL) {
208 fprintf(stderr, "Runtime error: %s", "Cast failed");
209 fprintf(stderr, " (%s:%d)\n", "src/local_var_init.nit", 68);
210 show_backtrace(1);
211 }
212 var_flow = var5;
213 var6 = ((val* (*)(val*))(var_flow->class->vft[COLOR_local_var_init__FlowContext__set_vars]))(var_flow) /* set_vars on <var_flow:FlowContext>*/;
214 ((void (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var6, var_variable) /* add on <var6:Set[Variable]>*/;
215 RET_LABEL:;
216 }
217 /* method local_var_init#LocalVarInitVisitor#mark_is_set for (self: Object, AExpr, nullable Variable) */
218 void VIRTUAL_local_var_init__LocalVarInitVisitor__mark_is_set(val* self, val* p0, val* p1) {
219 local_var_init__LocalVarInitVisitor__mark_is_set(self, p0, p1);
220 RET_LABEL:;
221 }
222 /* method local_var_init#LocalVarInitVisitor#check_is_set for (self: LocalVarInitVisitor, AExpr, nullable Variable) */
223 void local_var_init__LocalVarInitVisitor__check_is_set(val* self, val* p0, val* p1) {
224 val* var_node /* var node: AExpr */;
225 val* var_variable /* var variable: nullable Variable */;
226 val* var /* : null */;
227 short int var1 /* : Bool */;
228 val* var2 /* : Set[Variable] */;
229 short int var3 /* : Bool */;
230 short int var4 /* : Bool */;
231 val* var5 /* : nullable FlowContext */;
232 val* var_flow /* var flow: FlowContext */;
233 short int var6 /* : Bool */;
234 short int var7 /* : Bool */;
235 val* var8 /* : ToolContext */;
236 val* var9 /* : Location */;
237 static val* varonce;
238 val* var10 /* : String */;
239 char* var11 /* : NativeString */;
240 long var12 /* : Int */;
241 val* var13 /* : String */;
242 static val* varonce14;
243 val* var15 /* : String */;
244 char* var16 /* : NativeString */;
245 long var17 /* : Int */;
246 val* var18 /* : String */;
247 val* var19 /* : Array[Object] */;
248 long var20 /* : Int */;
249 val* var21 /* : NativeArray[Object] */;
250 val* var22 /* : String */;
251 val* var23 /* : Set[Variable] */;
252 var_node = p0;
253 var_variable = p1;
254 var = NULL;
255 if (var_variable == NULL) {
256 var1 = 0; /* is null */
257 } else {
258 var1 = 1; /* arg is null and recv is not */
259 }
260 if (!var1) {
261 fprintf(stderr, "Runtime error: %s", "Assert failed");
262 fprintf(stderr, " (%s:%d)\n", "src/local_var_init.nit", 74);
263 show_backtrace(1);
264 }
265 var2 = ((val* (*)(val*))(self->class->vft[COLOR_local_var_init__LocalVarInitVisitor__maybe_unset_vars]))(self) /* maybe_unset_vars on <self:LocalVarInitVisitor>*/;
266 var3 = ((short int (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__Collection__has]))(var2, var_variable) /* has on <var2:Set[Variable]>*/;
267 var4 = !var3;
268 if (var4){
269 goto RET_LABEL;
270 } else {
271 }
272 var5 = ((val* (*)(val*))(var_node->class->vft[COLOR_flow__AExpr__after_flow_context]))(var_node) /* after_flow_context on <var_node:AExpr>*/;
273 if (var5 == NULL) {
274 fprintf(stderr, "Runtime error: %s", "Cast failed");
275 fprintf(stderr, " (%s:%d)\n", "src/local_var_init.nit", 77);
276 show_backtrace(1);
277 }
278 var_flow = var5;
279 var6 = ((short int (*)(val*, val*))(var_flow->class->vft[COLOR_local_var_init__FlowContext__is_variable_set]))(var_flow, var_variable) /* is_variable_set on <var_flow:FlowContext>*/;
280 var7 = !var6;
281 if (var7){
282 var8 = ((val* (*)(val*))(self->class->vft[COLOR_local_var_init__LocalVarInitVisitor__toolcontext]))(self) /* toolcontext on <self:LocalVarInitVisitor>*/;
283 var9 = ((val* (*)(val*))(var_node->class->vft[COLOR_parser_nodes__ANode__hot_location]))(var_node) /* hot_location on <var_node:AExpr>*/;
284 if (varonce) {
285 var10 = varonce;
286 } else {
287 var11 = "Error: variable \'";
288 var12 = 17;
289 var13 = string__NativeString__to_s_with_length(var11, var12);
290 var10 = var13;
291 varonce = var10;
292 }
293 if (varonce14) {
294 var15 = varonce14;
295 } else {
296 var16 = "\' is possibly unset.";
297 var17 = 20;
298 var18 = string__NativeString__to_s_with_length(var16, var17);
299 var15 = var18;
300 varonce14 = var15;
301 }
302 var19 = NEW_array__Array(&type_array__Arraykernel__Object);
303 { /* var19 = array_instance Array[Object] */
304 var20 = 3;
305 var21 = NEW_array__NativeArray(var20, &type_array__NativeArraykernel__Object);
306 ((struct instance_array__NativeArray*)var21)->values[0] = (val*) var10;
307 ((struct instance_array__NativeArray*)var21)->values[1] = (val*) var_variable;
308 ((struct instance_array__NativeArray*)var21)->values[2] = (val*) var15;
309 ((void (*)(val*, val*, long))(var19->class->vft[COLOR_array__Array__with_native]))(var19, var21, var20) /* with_native on <var19:Array[Object]>*/;
310 }
311 var22 = ((val* (*)(val*))(var19->class->vft[COLOR_string__Object__to_s]))(var19) /* to_s on <var19:Array[Object]>*/;
312 ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_toolcontext__ToolContext__error]))(var8, var9, var22) /* error on <var8:ToolContext>*/;
313 var23 = ((val* (*)(val*))(self->class->vft[COLOR_local_var_init__LocalVarInitVisitor__maybe_unset_vars]))(self) /* maybe_unset_vars on <self:LocalVarInitVisitor>*/;
314 ((void (*)(val*, val*))(var23->class->vft[COLOR_abstract_collection__RemovableCollection__remove]))(var23, var_variable) /* remove on <var23:Set[Variable]>*/;
315 } else {
316 }
317 RET_LABEL:;
318 }
319 /* method local_var_init#LocalVarInitVisitor#check_is_set for (self: Object, AExpr, nullable Variable) */
320 void VIRTUAL_local_var_init__LocalVarInitVisitor__check_is_set(val* self, val* p0, val* p1) {
321 local_var_init__LocalVarInitVisitor__check_is_set(self, p0, p1);
322 RET_LABEL:;
323 }
324 /* method local_var_init#LocalVarInitVisitor#visit for (self: LocalVarInitVisitor, ANode) */
325 void local_var_init__LocalVarInitVisitor__visit(val* self, val* p0) {
326 val* var_n /* var n: ANode */;
327 var_n = p0;
328 ((void (*)(val*, val*))(var_n->class->vft[COLOR_local_var_init__ANode__accept_local_var_visitor]))(var_n, self) /* accept_local_var_visitor on <var_n:ANode>*/;
329 RET_LABEL:;
330 }
331 /* method local_var_init#LocalVarInitVisitor#visit for (self: Object, ANode) */
332 void VIRTUAL_local_var_init__LocalVarInitVisitor__visit(val* self, val* p0) {
333 local_var_init__LocalVarInitVisitor__visit(self, p0);
334 RET_LABEL:;
335 }
336 /* method local_var_init#FlowContext#set_vars for (self: FlowContext): Set[Variable] */
337 val* local_var_init__FlowContext__set_vars(val* self) {
338 val* var /* : Set[Variable] */;
339 val* var1 /* : Set[Variable] */;
340 var1 = self->attrs[COLOR_local_var_init__FlowContext___64dset_vars].val; /* @set_vars on <self:FlowContext> */
341 if (var1 == NULL) {
342 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @set_vars");
343 fprintf(stderr, " (%s:%d)\n", "src/local_var_init.nit", 92);
344 show_backtrace(1);
345 }
346 var = var1;
347 RET_LABEL:;
348 return var;
349 }
350 /* method local_var_init#FlowContext#set_vars for (self: Object): Set[Variable] */
351 val* VIRTUAL_local_var_init__FlowContext__set_vars(val* self) {
352 val* var /* : Set[Variable] */;
353 val* var1 /* : Set[Variable] */;
354 var1 = local_var_init__FlowContext__set_vars(self);
355 var = var1;
356 RET_LABEL:;
357 return var;
358 }
359 /* method local_var_init#FlowContext#set_vars= for (self: FlowContext, Set[Variable]) */
360 void local_var_init__FlowContext__set_vars_61d(val* self, val* p0) {
361 self->attrs[COLOR_local_var_init__FlowContext___64dset_vars].val = p0; /* @set_vars on <self:FlowContext> */
362 RET_LABEL:;
363 }
364 /* method local_var_init#FlowContext#set_vars= for (self: Object, Set[Variable]) */
365 void VIRTUAL_local_var_init__FlowContext__set_vars_61d(val* self, val* p0) {
366 local_var_init__FlowContext__set_vars_61d(self, p0);
367 RET_LABEL:;
368 }
369 /* method local_var_init#FlowContext#is_variable_set for (self: FlowContext, Variable): Bool */
370 short int local_var_init__FlowContext__is_variable_set(val* self, val* p0) {
371 short int var /* : Bool */;
372 val* var_variable /* var variable: Variable */;
373 val* var1 /* : Set[Variable] */;
374 short int var2 /* : Bool */;
375 short int var3 /* : Bool */;
376 val* var4 /* : Array[FlowContext] */;
377 val* var_previous /* var previous: Array[FlowContext] */;
378 long var5 /* : Int */;
379 long var6 /* : Int */;
380 short int var7 /* : Bool */;
381 short int var9 /* : Bool */;
382 short int var10 /* : Bool */;
383 long var11 /* : Int */;
384 long var12 /* : Int */;
385 short int var13 /* : Bool */;
386 short int var15 /* : Bool */;
387 val* var16 /* : nullable Object */;
388 short int var17 /* : Bool */;
389 val* var18 /* : Array[FlowContext] */;
390 val* var19 /* : Iterator[nullable Object] */;
391 short int var20 /* : Bool */;
392 val* var21 /* : nullable Object */;
393 val* var_p /* var p: FlowContext */;
394 short int var22 /* : Bool */;
395 short int var23 /* : Bool */;
396 short int var24 /* : Bool */;
397 val* var25 /* : Set[Variable] */;
398 short int var26 /* : Bool */;
399 var_variable = p0;
400 var1 = ((val* (*)(val*))(self->class->vft[COLOR_local_var_init__FlowContext__set_vars]))(self) /* set_vars on <self:FlowContext>*/;
401 var2 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_abstract_collection__Collection__has]))(var1, var_variable) /* has on <var1:Set[Variable]>*/;
402 if (var2){
403 var3 = 1;
404 var = var3;
405 goto RET_LABEL;
406 } else {
407 }
408 var4 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowContext__previous]))(self) /* previous on <self:FlowContext>*/;
409 var_previous = var4;
410 var5 = ((long (*)(val*))(var_previous->class->vft[COLOR_abstract_collection__Collection__length]))(var_previous) /* length on <var_previous:Array[FlowContext]>*/;
411 var6 = 0;
412 { /* Inline kernel#Int#== (var5,var6) */
413 var9 = var5 == var6;
414 var7 = var9;
415 goto RET_LABEL8;
416 RET_LABEL8:(void)0;
417 }
418 if (var7){
419 var10 = 0;
420 var = var10;
421 goto RET_LABEL;
422 } else {
423 }
424 var11 = ((long (*)(val*))(var_previous->class->vft[COLOR_abstract_collection__Collection__length]))(var_previous) /* length on <var_previous:Array[FlowContext]>*/;
425 var12 = 1;
426 { /* Inline kernel#Int#== (var11,var12) */
427 var15 = var11 == var12;
428 var13 = var15;
429 goto RET_LABEL14;
430 RET_LABEL14:(void)0;
431 }
432 if (var13){
433 var16 = ((val* (*)(val*))(var_previous->class->vft[COLOR_abstract_collection__Collection__first]))(var_previous) /* first on <var_previous:Array[FlowContext]>*/;
434 var17 = ((short int (*)(val*, val*))(var16->class->vft[COLOR_local_var_init__FlowContext__is_variable_set]))(var16, var_variable) /* is_variable_set on <var16:nullable Object(FlowContext)>*/;
435 var = var17;
436 goto RET_LABEL;
437 } else {
438 }
439 var18 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowContext__previous]))(self) /* previous on <self:FlowContext>*/;
440 var19 = ((val* (*)(val*))(var18->class->vft[COLOR_abstract_collection__Collection__iterator]))(var18) /* iterator on <var18:Array[FlowContext]>*/;
441 for(;;) {
442 var20 = ((short int (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var19) /* is_ok on <var19:Iterator[nullable Object]>*/;
443 if(!var20) break;
444 var21 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__item]))(var19) /* item on <var19:Iterator[nullable Object]>*/;
445 var_p = var21;
446 var22 = ((short int (*)(val*, val*))(var_p->class->vft[COLOR_local_var_init__FlowContext__is_variable_set]))(var_p, var_variable) /* is_variable_set on <var_p:FlowContext>*/;
447 var23 = !var22;
448 if (var23){
449 var24 = 0;
450 var = var24;
451 goto RET_LABEL;
452 } else {
453 }
454 CONTINUE_label: (void)0;
455 ((void (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__next]))(var19) /* next on <var19:Iterator[nullable Object]>*/;
456 }
457 BREAK_label: (void)0;
458 var25 = ((val* (*)(val*))(self->class->vft[COLOR_local_var_init__FlowContext__set_vars]))(self) /* set_vars on <self:FlowContext>*/;
459 ((void (*)(val*, val*))(var25->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var25, var_variable) /* add on <var25:Set[Variable]>*/;
460 var26 = 1;
461 var = var26;
462 goto RET_LABEL;
463 RET_LABEL:;
464 return var;
465 }
466 /* method local_var_init#FlowContext#is_variable_set for (self: Object, Variable): Bool */
467 short int VIRTUAL_local_var_init__FlowContext__is_variable_set(val* self, val* p0) {
468 short int var /* : Bool */;
469 short int var1 /* : Bool */;
470 var1 = local_var_init__FlowContext__is_variable_set(self, p0);
471 var = var1;
472 RET_LABEL:;
473 return var;
474 }
475 /* method local_var_init#ANode#accept_local_var_visitor for (self: ANode, LocalVarInitVisitor) */
476 void local_var_init__ANode__accept_local_var_visitor(val* self, val* p0) {
477 val* var_v /* var v: LocalVarInitVisitor */;
478 var_v = p0;
479 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__visit_all]))(self, var_v) /* visit_all on <self:ANode>*/;
480 RET_LABEL:;
481 }
482 /* method local_var_init#ANode#accept_local_var_visitor for (self: Object, LocalVarInitVisitor) */
483 void VIRTUAL_local_var_init__ANode__accept_local_var_visitor(val* self, val* p0) {
484 local_var_init__ANode__accept_local_var_visitor(self, p0);
485 RET_LABEL:;
486 }
487 /* method local_var_init#AVardeclExpr#accept_local_var_visitor for (self: AVardeclExpr, LocalVarInitVisitor) */
488 void local_var_init__AVardeclExpr__accept_local_var_visitor(val* self, val* p0) {
489 val* var_v /* var v: LocalVarInitVisitor */;
490 val* var /* : nullable AExpr */;
491 val* var1 /* : null */;
492 short int var2 /* : Bool */;
493 val* var3 /* : nullable Variable */;
494 var_v = p0;
495 ((void (*)(val*, val*))(self->class->vft[COLOR_local_var_init__AVardeclExpr__accept_local_var_visitor]))(self, p0) /* accept_local_var_visitor on <self:AVardeclExpr>*/;
496 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AVardeclExpr__n_expr]))(self) /* n_expr on <self:AVardeclExpr>*/;
497 var1 = NULL;
498 if (var == NULL) {
499 var2 = 1; /* is null */
500 } else {
501 var2 = 0; /* arg is null but recv is not */
502 }
503 if (var2){
504 var3 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVardeclExpr__variable]))(self) /* variable on <self:AVardeclExpr>*/;
505 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_local_var_init__LocalVarInitVisitor__mark_is_unset]))(var_v, self, var3) /* mark_is_unset on <var_v:LocalVarInitVisitor>*/;
506 } else {
507 }
508 RET_LABEL:;
509 }
510 /* method local_var_init#AVardeclExpr#accept_local_var_visitor for (self: Object, LocalVarInitVisitor) */
511 void VIRTUAL_local_var_init__AVardeclExpr__accept_local_var_visitor(val* self, val* p0) {
512 local_var_init__AVardeclExpr__accept_local_var_visitor(self, p0);
513 RET_LABEL:;
514 }
515 /* method local_var_init#AVarExpr#accept_local_var_visitor for (self: AVarExpr, LocalVarInitVisitor) */
516 void local_var_init__AVarExpr__accept_local_var_visitor(val* self, val* p0) {
517 val* var_v /* var v: LocalVarInitVisitor */;
518 val* var /* : nullable Variable */;
519 var_v = p0;
520 ((void (*)(val*, val*))(self->class->vft[COLOR_local_var_init__AVarExpr__accept_local_var_visitor]))(self, p0) /* accept_local_var_visitor on <self:AVarExpr>*/;
521 var = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable]))(self) /* variable on <self:AVarExpr>*/;
522 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_local_var_init__LocalVarInitVisitor__check_is_set]))(var_v, self, var) /* check_is_set on <var_v:LocalVarInitVisitor>*/;
523 RET_LABEL:;
524 }
525 /* method local_var_init#AVarExpr#accept_local_var_visitor for (self: Object, LocalVarInitVisitor) */
526 void VIRTUAL_local_var_init__AVarExpr__accept_local_var_visitor(val* self, val* p0) {
527 local_var_init__AVarExpr__accept_local_var_visitor(self, p0);
528 RET_LABEL:;
529 }
530 /* method local_var_init#AVarAssignExpr#accept_local_var_visitor for (self: AVarAssignExpr, LocalVarInitVisitor) */
531 void local_var_init__AVarAssignExpr__accept_local_var_visitor(val* self, val* p0) {
532 val* var_v /* var v: LocalVarInitVisitor */;
533 val* var /* : nullable Variable */;
534 var_v = p0;
535 ((void (*)(val*, val*))(self->class->vft[COLOR_local_var_init__AVarAssignExpr__accept_local_var_visitor]))(self, p0) /* accept_local_var_visitor on <self:AVarAssignExpr>*/;
536 var = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable]))(self) /* variable on <self:AVarAssignExpr>*/;
537 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_local_var_init__LocalVarInitVisitor__mark_is_set]))(var_v, self, var) /* mark_is_set on <var_v:LocalVarInitVisitor>*/;
538 RET_LABEL:;
539 }
540 /* method local_var_init#AVarAssignExpr#accept_local_var_visitor for (self: Object, LocalVarInitVisitor) */
541 void VIRTUAL_local_var_init__AVarAssignExpr__accept_local_var_visitor(val* self, val* p0) {
542 local_var_init__AVarAssignExpr__accept_local_var_visitor(self, p0);
543 RET_LABEL:;
544 }
545 /* method local_var_init#AVarReassignExpr#accept_local_var_visitor for (self: AVarReassignExpr, LocalVarInitVisitor) */
546 void local_var_init__AVarReassignExpr__accept_local_var_visitor(val* self, val* p0) {
547 val* var_v /* var v: LocalVarInitVisitor */;
548 val* var /* : nullable Variable */;
549 var_v = p0;
550 ((void (*)(val*, val*))(self->class->vft[COLOR_local_var_init__AVarReassignExpr__accept_local_var_visitor]))(self, p0) /* accept_local_var_visitor on <self:AVarReassignExpr>*/;
551 var = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable]))(self) /* variable on <self:AVarReassignExpr>*/;
552 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_local_var_init__LocalVarInitVisitor__check_is_set]))(var_v, self, var) /* check_is_set on <var_v:LocalVarInitVisitor>*/;
553 RET_LABEL:;
554 }
555 /* method local_var_init#AVarReassignExpr#accept_local_var_visitor for (self: Object, LocalVarInitVisitor) */
556 void VIRTUAL_local_var_init__AVarReassignExpr__accept_local_var_visitor(val* self, val* p0) {
557 local_var_init__AVarReassignExpr__accept_local_var_visitor(self, p0);
558 RET_LABEL:;
559 }