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