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