neo: Explain how arguments of a MClasType are named.
[nit.git] / c_src / phase.sep.1.c
1 #include "phase.sep.0.h"
2 /* method phase#ToolContext#phases for (self: ToolContext): POSet[Phase] */
3 val* phase__ToolContext__phases(val* self) {
4 val* var /* : POSet[Phase] */;
5 val* var1 /* : POSet[Phase] */;
6 var1 = self->attrs[COLOR_phase__ToolContext___phases].val; /* _phases on <self:ToolContext> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phases");
9 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 23);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method phase#ToolContext#phases for (self: Object): POSet[Phase] */
17 val* VIRTUAL_phase__ToolContext__phases(val* self) {
18 val* var /* : POSet[Phase] */;
19 val* var1 /* : POSet[Phase] */;
20 val* var3 /* : POSet[Phase] */;
21 { /* Inline phase#ToolContext#phases (self) on <self:Object(ToolContext)> */
22 var3 = self->attrs[COLOR_phase__ToolContext___phases].val; /* _phases on <self:Object(ToolContext)> */
23 if (unlikely(var3 == NULL)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phases");
25 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 23);
26 show_backtrace(1);
27 }
28 var1 = var3;
29 RET_LABEL2:(void)0;
30 }
31 var = var1;
32 RET_LABEL:;
33 return var;
34 }
35 /* method phase#ToolContext#opt_disable_phase for (self: ToolContext): OptionArray */
36 val* phase__ToolContext__opt_disable_phase(val* self) {
37 val* var /* : OptionArray */;
38 val* var1 /* : OptionArray */;
39 var1 = self->attrs[COLOR_phase__ToolContext___opt_disable_phase].val; /* _opt_disable_phase on <self:ToolContext> */
40 if (unlikely(var1 == NULL)) {
41 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_disable_phase");
42 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 30);
43 show_backtrace(1);
44 }
45 var = var1;
46 RET_LABEL:;
47 return var;
48 }
49 /* method phase#ToolContext#opt_disable_phase for (self: Object): OptionArray */
50 val* VIRTUAL_phase__ToolContext__opt_disable_phase(val* self) {
51 val* var /* : OptionArray */;
52 val* var1 /* : OptionArray */;
53 val* var3 /* : OptionArray */;
54 { /* Inline phase#ToolContext#opt_disable_phase (self) on <self:Object(ToolContext)> */
55 var3 = self->attrs[COLOR_phase__ToolContext___opt_disable_phase].val; /* _opt_disable_phase on <self:Object(ToolContext)> */
56 if (unlikely(var3 == NULL)) {
57 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_disable_phase");
58 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 30);
59 show_backtrace(1);
60 }
61 var1 = var3;
62 RET_LABEL2:(void)0;
63 }
64 var = var1;
65 RET_LABEL:;
66 return var;
67 }
68 /* method phase#ToolContext#init for (self: ToolContext) */
69 void phase__ToolContext__init(val* self) {
70 val* var /* : OptionContext */;
71 val* var2 /* : OptionContext */;
72 val* var3 /* : OptionArray */;
73 val* var5 /* : OptionArray */;
74 val* var6 /* : Array[Option] */;
75 long var7 /* : Int */;
76 val* var8 /* : NativeArray[Option] */;
77 {
78 ((void (*)(val*))(self->class->vft[COLOR_phase__ToolContext__init]))(self) /* init on <self:ToolContext>*/;
79 }
80 {
81 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
82 var2 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
83 if (unlikely(var2 == NULL)) {
84 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
85 PRINT_ERROR(" (%s:%d)\n", "src/toolcontext.nit", 166);
86 show_backtrace(1);
87 }
88 var = var2;
89 RET_LABEL1:(void)0;
90 }
91 }
92 {
93 { /* Inline phase#ToolContext#opt_disable_phase (self) on <self:ToolContext> */
94 var5 = self->attrs[COLOR_phase__ToolContext___opt_disable_phase].val; /* _opt_disable_phase on <self:ToolContext> */
95 if (unlikely(var5 == NULL)) {
96 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_disable_phase");
97 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 30);
98 show_backtrace(1);
99 }
100 var3 = var5;
101 RET_LABEL4:(void)0;
102 }
103 }
104 var6 = NEW_array__Array(&type_array__Arrayopts__Option);
105 { /* var6 = array_instance Array[Option] */
106 var7 = 1;
107 var8 = NEW_array__NativeArray(var7, &type_array__NativeArrayopts__Option);
108 ((struct instance_array__NativeArray*)var8)->values[0] = (val*) var3;
109 {
110 ((void (*)(val*, val*, long))(var6->class->vft[COLOR_array__Array__with_native]))(var6, var8, var7) /* with_native on <var6:Array[Option]>*/;
111 }
112 }
113 {
114 opts__OptionContext__add_option(var, var6); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
115 }
116 RET_LABEL:;
117 }
118 /* method phase#ToolContext#init for (self: Object) */
119 void VIRTUAL_phase__ToolContext__init(val* self) {
120 phase__ToolContext__init(self); /* Direct call phase#ToolContext#init on <self:Object(ToolContext)>*/
121 RET_LABEL:;
122 }
123 /* method phase#ToolContext#process_options for (self: ToolContext, Sequence[String]) */
124 void phase__ToolContext__process_options(val* self, val* p0) {
125 val* var_args /* var args: Sequence[String] */;
126 val* var /* : OptionArray */;
127 val* var2 /* : OptionArray */;
128 val* var3 /* : nullable Object */;
129 val* var5 /* : nullable Object */;
130 val* var6 /* : ArrayIterator[nullable Object] */;
131 short int var7 /* : Bool */;
132 val* var8 /* : nullable Object */;
133 val* var_v /* var v: String */;
134 static val* varonce;
135 val* var9 /* : String */;
136 char* var10 /* : NativeString */;
137 long var11 /* : Int */;
138 val* var12 /* : FlatString */;
139 short int var13 /* : Bool */;
140 short int var14 /* : Bool */;
141 val* var15 /* : Sequence[Phase] */;
142 val* var16 /* : Iterator[nullable Object] */;
143 short int var17 /* : Bool */;
144 val* var18 /* : nullable Object */;
145 val* var_p /* var p: Phase */;
146 val* var19 /* : POSetElement[Phase] */;
147 val* var21 /* : POSetElement[Phase] */;
148 val* var22 /* : Collection[Object] */;
149 val* var_deps /* var deps: Collection[Phase] */;
150 short int var23 /* : Bool */;
151 static val* varonce24;
152 val* var25 /* : String */;
153 char* var26 /* : NativeString */;
154 long var27 /* : Int */;
155 val* var28 /* : FlatString */;
156 static val* varonce29;
157 val* var30 /* : String */;
158 char* var31 /* : NativeString */;
159 long var32 /* : Int */;
160 val* var33 /* : FlatString */;
161 val* var34 /* : String */;
162 static val* varonce35;
163 val* var36 /* : String */;
164 char* var37 /* : NativeString */;
165 long var38 /* : Int */;
166 val* var39 /* : FlatString */;
167 val* var40 /* : Array[Object] */;
168 long var41 /* : Int */;
169 val* var42 /* : NativeArray[Object] */;
170 val* var43 /* : String */;
171 long var44 /* : Int */;
172 short int var46 /* : Bool */;
173 short int var_found /* var found: Bool */;
174 val* var47 /* : POSet[Phase] */;
175 val* var49 /* : POSet[Phase] */;
176 val* var50 /* : Iterator[Object] */;
177 short int var51 /* : Bool */;
178 val* var52 /* : nullable Object */;
179 val* var_p53 /* var p: Phase */;
180 val* var54 /* : String */;
181 short int var55 /* : Bool */;
182 short int var56 /* : Bool */;
183 val* var_other /* var other: nullable Object */;
184 short int var58 /* : Bool */;
185 short int var59 /* : Bool */;
186 short int var60 /* : Bool */;
187 short int var62 /* : Bool */;
188 short int var63 /* : Bool */;
189 short int var65 /* : Bool */;
190 val* var66 /* : null */;
191 static val* varonce67;
192 val* var68 /* : String */;
193 char* var69 /* : NativeString */;
194 long var70 /* : Int */;
195 val* var71 /* : FlatString */;
196 static val* varonce72;
197 val* var73 /* : String */;
198 char* var74 /* : NativeString */;
199 long var75 /* : Int */;
200 val* var76 /* : FlatString */;
201 val* var77 /* : Array[Object] */;
202 long var78 /* : Int */;
203 val* var79 /* : NativeArray[Object] */;
204 val* var80 /* : String */;
205 var_args = p0;
206 {
207 ((void (*)(val*, val*))(self->class->vft[COLOR_phase__ToolContext__process_options]))(self, p0) /* process_options on <self:ToolContext>*/;
208 }
209 {
210 { /* Inline phase#ToolContext#opt_disable_phase (self) on <self:ToolContext> */
211 var2 = self->attrs[COLOR_phase__ToolContext___opt_disable_phase].val; /* _opt_disable_phase on <self:ToolContext> */
212 if (unlikely(var2 == NULL)) {
213 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_disable_phase");
214 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 30);
215 show_backtrace(1);
216 }
217 var = var2;
218 RET_LABEL1:(void)0;
219 }
220 }
221 {
222 { /* Inline opts#Option#value (var) on <var:OptionArray> */
223 var5 = var->attrs[COLOR_opts__Option___value].val; /* _value on <var:OptionArray> */
224 var3 = var5;
225 RET_LABEL4:(void)0;
226 }
227 }
228 {
229 var6 = array__AbstractArrayRead__iterator(var3);
230 }
231 for(;;) {
232 {
233 var7 = array__ArrayIterator__is_ok(var6);
234 }
235 if(!var7) break;
236 {
237 var8 = array__ArrayIterator__item(var6);
238 }
239 var_v = var8;
240 if (varonce) {
241 var9 = varonce;
242 } else {
243 var10 = "list";
244 var11 = 4;
245 var12 = string__NativeString__to_s_with_length(var10, var11);
246 var9 = var12;
247 varonce = var9;
248 }
249 {
250 var14 = string__FlatString___61d_61d(var_v, var9);
251 var13 = var14;
252 }
253 if (var13){
254 {
255 var15 = phase__ToolContext__phases_list(self);
256 }
257 {
258 var16 = ((val* (*)(val*))(var15->class->vft[COLOR_abstract_collection__Collection__iterator]))(var15) /* iterator on <var15:Sequence[Phase]>*/;
259 }
260 for(;;) {
261 {
262 var17 = ((short int (*)(val*))(var16->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var16) /* is_ok on <var16:Iterator[nullable Object]>*/;
263 }
264 if(!var17) break;
265 {
266 var18 = ((val* (*)(val*))(var16->class->vft[COLOR_abstract_collection__Iterator__item]))(var16) /* item on <var16:Iterator[nullable Object]>*/;
267 }
268 var_p = var18;
269 {
270 { /* Inline phase#Phase#in_hierarchy (var_p) on <var_p:Phase> */
271 var21 = var_p->attrs[COLOR_phase__Phase___in_hierarchy].val; /* _in_hierarchy on <var_p:Phase> */
272 if (unlikely(var21 == NULL)) {
273 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_hierarchy");
274 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 148);
275 show_backtrace(1);
276 }
277 var19 = var21;
278 RET_LABEL20:(void)0;
279 }
280 }
281 {
282 var22 = poset__POSetElement__direct_greaters(var19);
283 }
284 var_deps = var22;
285 {
286 var23 = ((short int (*)(val*))(var_deps->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_deps) /* is_empty on <var_deps:Collection[Phase]>*/;
287 }
288 if (var23){
289 {
290 file__Object__print(self, var_p); /* Direct call file#Object#print on <self:ToolContext>*/
291 }
292 } else {
293 if (varonce24) {
294 var25 = varonce24;
295 } else {
296 var26 = " (dep: ";
297 var27 = 7;
298 var28 = string__NativeString__to_s_with_length(var26, var27);
299 var25 = var28;
300 varonce24 = var25;
301 }
302 if (varonce29) {
303 var30 = varonce29;
304 } else {
305 var31 = ", ";
306 var32 = 2;
307 var33 = string__NativeString__to_s_with_length(var31, var32);
308 var30 = var33;
309 varonce29 = var30;
310 }
311 {
312 var34 = string__Collection__join(var_deps, var30);
313 }
314 if (varonce35) {
315 var36 = varonce35;
316 } else {
317 var37 = ")";
318 var38 = 1;
319 var39 = string__NativeString__to_s_with_length(var37, var38);
320 var36 = var39;
321 varonce35 = var36;
322 }
323 var40 = NEW_array__Array(&type_array__Arraykernel__Object);
324 { /* var40 = array_instance Array[Object] */
325 var41 = 4;
326 var42 = NEW_array__NativeArray(var41, &type_array__NativeArraykernel__Object);
327 ((struct instance_array__NativeArray*)var42)->values[0] = (val*) var_p;
328 ((struct instance_array__NativeArray*)var42)->values[1] = (val*) var25;
329 ((struct instance_array__NativeArray*)var42)->values[2] = (val*) var34;
330 ((struct instance_array__NativeArray*)var42)->values[3] = (val*) var36;
331 {
332 ((void (*)(val*, val*, long))(var40->class->vft[COLOR_array__Array__with_native]))(var40, var42, var41) /* with_native on <var40:Array[Object]>*/;
333 }
334 }
335 {
336 var43 = ((val* (*)(val*))(var40->class->vft[COLOR_string__Object__to_s]))(var40) /* to_s on <var40:Array[Object]>*/;
337 }
338 {
339 file__Object__print(self, var43); /* Direct call file#Object#print on <self:ToolContext>*/
340 }
341 }
342 CONTINUE_label: (void)0;
343 {
344 ((void (*)(val*))(var16->class->vft[COLOR_abstract_collection__Iterator__next]))(var16) /* next on <var16:Iterator[nullable Object]>*/;
345 }
346 }
347 BREAK_label: (void)0;
348 var44 = 0;
349 {
350 { /* Inline kernel#Object#exit (self,var44) on <self:ToolContext> */
351 exit(var44);
352 RET_LABEL45:(void)0;
353 }
354 }
355 } else {
356 }
357 var46 = 0;
358 var_found = var46;
359 {
360 { /* Inline phase#ToolContext#phases (self) on <self:ToolContext> */
361 var49 = self->attrs[COLOR_phase__ToolContext___phases].val; /* _phases on <self:ToolContext> */
362 if (unlikely(var49 == NULL)) {
363 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phases");
364 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 23);
365 show_backtrace(1);
366 }
367 var47 = var49;
368 RET_LABEL48:(void)0;
369 }
370 }
371 {
372 var50 = poset__POSet__iterator(var47);
373 }
374 for(;;) {
375 {
376 var51 = ((short int (*)(val*))(var50->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var50) /* is_ok on <var50:Iterator[Object]>*/;
377 }
378 if(!var51) break;
379 {
380 var52 = ((val* (*)(val*))(var50->class->vft[COLOR_abstract_collection__Iterator__item]))(var50) /* item on <var50:Iterator[Object]>*/;
381 }
382 var_p53 = var52;
383 {
384 var54 = phase__Phase__to_s(var_p53);
385 }
386 {
387 { /* Inline kernel#Object#!= (var_v,var54) on <var_v:String> */
388 var_other = var54;
389 {
390 var59 = ((short int (*)(val*, val*))(var_v->class->vft[COLOR_kernel__Object___61d_61d]))(var_v, var_other) /* == on <var_v:String>*/;
391 var58 = var59;
392 }
393 var60 = !var58;
394 var56 = var60;
395 goto RET_LABEL57;
396 RET_LABEL57:(void)0;
397 }
398 var55 = var56;
399 }
400 if (var55){
401 goto CONTINUE_label61;
402 } else {
403 }
404 var62 = 1;
405 var_found = var62;
406 var63 = 1;
407 {
408 { /* Inline phase#Phase#disabled= (var_p53,var63) on <var_p53:Phase> */
409 var_p53->attrs[COLOR_phase__Phase___disabled].s = var63; /* _disabled on <var_p53:Phase> */
410 RET_LABEL64:(void)0;
411 }
412 }
413 CONTINUE_label61: (void)0;
414 {
415 ((void (*)(val*))(var50->class->vft[COLOR_abstract_collection__Iterator__next]))(var50) /* next on <var50:Iterator[Object]>*/;
416 }
417 }
418 BREAK_label61: (void)0;
419 var65 = !var_found;
420 if (var65){
421 var66 = NULL;
422 if (varonce67) {
423 var68 = varonce67;
424 } else {
425 var69 = "Error: no phase named `";
426 var70 = 23;
427 var71 = string__NativeString__to_s_with_length(var69, var70);
428 var68 = var71;
429 varonce67 = var68;
430 }
431 if (varonce72) {
432 var73 = varonce72;
433 } else {
434 var74 = "`. Use `list` to list all phases.";
435 var75 = 33;
436 var76 = string__NativeString__to_s_with_length(var74, var75);
437 var73 = var76;
438 varonce72 = var73;
439 }
440 var77 = NEW_array__Array(&type_array__Arraykernel__Object);
441 { /* var77 = array_instance Array[Object] */
442 var78 = 3;
443 var79 = NEW_array__NativeArray(var78, &type_array__NativeArraykernel__Object);
444 ((struct instance_array__NativeArray*)var79)->values[0] = (val*) var68;
445 ((struct instance_array__NativeArray*)var79)->values[1] = (val*) var_v;
446 ((struct instance_array__NativeArray*)var79)->values[2] = (val*) var73;
447 {
448 ((void (*)(val*, val*, long))(var77->class->vft[COLOR_array__Array__with_native]))(var77, var79, var78) /* with_native on <var77:Array[Object]>*/;
449 }
450 }
451 {
452 var80 = ((val* (*)(val*))(var77->class->vft[COLOR_string__Object__to_s]))(var77) /* to_s on <var77:Array[Object]>*/;
453 }
454 {
455 toolcontext__ToolContext__fatal_error(self, var66, var80); /* Direct call toolcontext#ToolContext#fatal_error on <self:ToolContext>*/
456 }
457 } else {
458 }
459 CONTINUE_label81: (void)0;
460 {
461 array__ArrayIterator__next(var6); /* Direct call array#ArrayIterator#next on <var6:ArrayIterator[nullable Object]>*/
462 }
463 }
464 BREAK_label81: (void)0;
465 RET_LABEL:;
466 }
467 /* method phase#ToolContext#process_options for (self: Object, Sequence[String]) */
468 void VIRTUAL_phase__ToolContext__process_options(val* self, val* p0) {
469 phase__ToolContext__process_options(self, p0); /* Direct call phase#ToolContext#process_options on <self:Object(ToolContext)>*/
470 RET_LABEL:;
471 }
472 /* method phase#ToolContext#phases_list for (self: ToolContext): Sequence[Phase] */
473 val* phase__ToolContext__phases_list(val* self) {
474 val* var /* : Sequence[Phase] */;
475 val* var1 /* : POSet[Phase] */;
476 val* var3 /* : POSet[Phase] */;
477 val* var4 /* : Array[nullable Object] */;
478 val* var_phases /* var phases: Array[Phase] */;
479 val* var5 /* : POSet[Phase] */;
480 val* var7 /* : POSet[Phase] */;
481 {
482 { /* Inline phase#ToolContext#phases (self) on <self:ToolContext> */
483 var3 = self->attrs[COLOR_phase__ToolContext___phases].val; /* _phases on <self:ToolContext> */
484 if (unlikely(var3 == NULL)) {
485 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phases");
486 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 23);
487 show_backtrace(1);
488 }
489 var1 = var3;
490 RET_LABEL2:(void)0;
491 }
492 }
493 {
494 var4 = array__Collection__to_a(var1);
495 }
496 var_phases = var4;
497 {
498 { /* Inline phase#ToolContext#phases (self) on <self:ToolContext> */
499 var7 = self->attrs[COLOR_phase__ToolContext___phases].val; /* _phases on <self:ToolContext> */
500 if (unlikely(var7 == NULL)) {
501 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phases");
502 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 23);
503 show_backtrace(1);
504 }
505 var5 = var7;
506 RET_LABEL6:(void)0;
507 }
508 }
509 {
510 sorter__Comparator__sort(var5, var_phases); /* Direct call sorter#Comparator#sort on <var5:POSet[Phase]>*/
511 }
512 var = var_phases;
513 goto RET_LABEL;
514 RET_LABEL:;
515 return var;
516 }
517 /* method phase#ToolContext#phases_list for (self: Object): Sequence[Phase] */
518 val* VIRTUAL_phase__ToolContext__phases_list(val* self) {
519 val* var /* : Sequence[Phase] */;
520 val* var1 /* : Sequence[Phase] */;
521 var1 = phase__ToolContext__phases_list(self);
522 var = var1;
523 RET_LABEL:;
524 return var;
525 }
526 /* method phase#ToolContext#run_phases for (self: ToolContext, Collection[AModule]) */
527 void phase__ToolContext__run_phases(val* self, val* p0) {
528 val* var_nmodules /* var nmodules: Collection[AModule] */;
529 long var /* : Int */;
530 long var2 /* : Int */;
531 long var_time0 /* var time0: Int */;
532 static val* varonce;
533 val* var3 /* : String */;
534 char* var4 /* : NativeString */;
535 long var5 /* : Int */;
536 val* var6 /* : FlatString */;
537 long var7 /* : Int */;
538 val* var8 /* : Sequence[Phase] */;
539 val* var_phases /* var phases: Sequence[Phase] */;
540 val* var9 /* : Iterator[nullable Object] */;
541 short int var10 /* : Bool */;
542 val* var11 /* : nullable Object */;
543 val* var_phase /* var phase: Phase */;
544 static val* varonce12;
545 val* var13 /* : String */;
546 char* var14 /* : NativeString */;
547 long var15 /* : Int */;
548 val* var16 /* : FlatString */;
549 val* var17 /* : Array[Object] */;
550 long var18 /* : Int */;
551 val* var19 /* : NativeArray[Object] */;
552 val* var20 /* : String */;
553 long var21 /* : Int */;
554 val* var22 /* : Iterator[nullable Object] */;
555 short int var23 /* : Bool */;
556 val* var24 /* : nullable Object */;
557 val* var_nmodule /* var nmodule: AModule */;
558 static val* varonce25;
559 val* var26 /* : String */;
560 char* var27 /* : NativeString */;
561 long var28 /* : Int */;
562 val* var29 /* : FlatString */;
563 val* var30 /* : Location */;
564 val* var31 /* : nullable SourceFile */;
565 val* var33 /* : nullable SourceFile */;
566 val* var34 /* : String */;
567 val* var36 /* : String */;
568 val* var37 /* : Array[Object] */;
569 long var38 /* : Int */;
570 val* var39 /* : NativeArray[Object] */;
571 val* var40 /* : String */;
572 long var41 /* : Int */;
573 val* var42 /* : Iterator[nullable Object] */;
574 short int var43 /* : Bool */;
575 val* var44 /* : nullable Object */;
576 val* var_phase45 /* var phase: Phase */;
577 short int var46 /* : Bool */;
578 short int var48 /* : Bool */;
579 static val* varonce50;
580 val* var51 /* : String */;
581 char* var52 /* : NativeString */;
582 long var53 /* : Int */;
583 val* var54 /* : FlatString */;
584 val* var55 /* : Array[Object] */;
585 long var56 /* : Int */;
586 val* var57 /* : NativeArray[Object] */;
587 val* var58 /* : String */;
588 long var59 /* : Int */;
589 val* var60 /* : ToolContext */;
590 val* var62 /* : ToolContext */;
591 short int var63 /* : Bool */;
592 short int var64 /* : Bool */;
593 val* var_other /* var other: nullable Object */;
594 short int var66 /* : Bool */;
595 short int var68 /* : Bool */;
596 long var69 /* : Int */;
597 long var71 /* : Int */;
598 long var_errcount /* var errcount: Int */;
599 long var72 /* : Int */;
600 long var74 /* : Int */;
601 short int var75 /* : Bool */;
602 short int var76 /* : Bool */;
603 short int var78 /* : Bool */;
604 short int var79 /* : Bool */;
605 long var80 /* : Int */;
606 long var82 /* : Int */;
607 val* var83 /* : ANodes[AClassdef] */;
608 val* var85 /* : ANodes[AClassdef] */;
609 val* var86 /* : Iterator[ANode] */;
610 short int var87 /* : Bool */;
611 val* var88 /* : nullable Object */;
612 val* var_nclassdef /* var nclassdef: AClassdef */;
613 static val* varonce89;
614 val* var90 /* : String */;
615 char* var91 /* : NativeString */;
616 long var92 /* : Int */;
617 val* var93 /* : FlatString */;
618 static val* varonce94;
619 val* var95 /* : String */;
620 char* var96 /* : NativeString */;
621 long var97 /* : Int */;
622 val* var98 /* : FlatString */;
623 val* var99 /* : Location */;
624 val* var100 /* : Array[Object] */;
625 long var101 /* : Int */;
626 val* var102 /* : NativeArray[Object] */;
627 val* var103 /* : String */;
628 long var104 /* : Int */;
629 val* var105 /* : ToolContext */;
630 val* var107 /* : ToolContext */;
631 short int var108 /* : Bool */;
632 short int var109 /* : Bool */;
633 short int var111 /* : Bool */;
634 short int var113 /* : Bool */;
635 val* var_nclassdef115 /* var nclassdef: AClassdef */;
636 val* var116 /* : ANodes[APropdef] */;
637 val* var118 /* : ANodes[APropdef] */;
638 val* var119 /* : Iterator[ANode] */;
639 short int var120 /* : Bool */;
640 val* var121 /* : nullable Object */;
641 val* var_npropdef /* var npropdef: APropdef */;
642 val* var122 /* : ToolContext */;
643 val* var124 /* : ToolContext */;
644 short int var125 /* : Bool */;
645 short int var126 /* : Bool */;
646 short int var128 /* : Bool */;
647 short int var130 /* : Bool */;
648 long var133 /* : Int */;
649 long var135 /* : Int */;
650 short int var136 /* : Bool */;
651 short int var137 /* : Bool */;
652 short int var139 /* : Bool */;
653 short int var140 /* : Bool */;
654 val* var141 /* : AnnotationPhaseVisitor */;
655 val* var_v /* var v: AnnotationPhaseVisitor */;
656 long var142 /* : Int */;
657 long var144 /* : Int */;
658 short int var145 /* : Bool */;
659 short int var146 /* : Bool */;
660 short int var148 /* : Bool */;
661 short int var149 /* : Bool */;
662 long var151 /* : Int */;
663 long var153 /* : Int */;
664 long var_time1 /* var time1: Int */;
665 static val* varonce154;
666 val* var155 /* : String */;
667 char* var156 /* : NativeString */;
668 long var157 /* : Int */;
669 val* var158 /* : FlatString */;
670 long var159 /* : Int */;
671 short int var161 /* : Bool */;
672 int cltype;
673 int idtype;
674 const char* var_class_name;
675 long var162 /* : Int */;
676 static val* varonce163;
677 val* var164 /* : String */;
678 char* var165 /* : NativeString */;
679 long var166 /* : Int */;
680 val* var167 /* : FlatString */;
681 val* var168 /* : Array[Object] */;
682 long var169 /* : Int */;
683 val* var170 /* : NativeArray[Object] */;
684 val* var171 /* : Object */;
685 val* var172 /* : String */;
686 long var173 /* : Int */;
687 var_nmodules = p0;
688 {
689 { /* Inline time#Object#get_time (self) on <self:ToolContext> */
690 var2 = kernel_Any_Any_get_time_0(self);
691 var = var2;
692 goto RET_LABEL1;
693 RET_LABEL1:(void)0;
694 }
695 }
696 var_time0 = var;
697 if (varonce) {
698 var3 = varonce;
699 } else {
700 var4 = "*** SEMANTIC ANALYSIS ***";
701 var5 = 25;
702 var6 = string__NativeString__to_s_with_length(var4, var5);
703 var3 = var6;
704 varonce = var3;
705 }
706 var7 = 1;
707 {
708 toolcontext__ToolContext__info(self, var3, var7); /* Direct call toolcontext#ToolContext#info on <self:ToolContext>*/
709 }
710 {
711 var8 = phase__ToolContext__phases_list(self);
712 }
713 var_phases = var8;
714 {
715 var9 = ((val* (*)(val*))(var_phases->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_phases) /* iterator on <var_phases:Sequence[Phase]>*/;
716 }
717 for(;;) {
718 {
719 var10 = ((short int (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var9) /* is_ok on <var9:Iterator[nullable Object]>*/;
720 }
721 if(!var10) break;
722 {
723 var11 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__item]))(var9) /* item on <var9:Iterator[nullable Object]>*/;
724 }
725 var_phase = var11;
726 if (varonce12) {
727 var13 = varonce12;
728 } else {
729 var14 = " registered phases: ";
730 var15 = 20;
731 var16 = string__NativeString__to_s_with_length(var14, var15);
732 var13 = var16;
733 varonce12 = var13;
734 }
735 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
736 { /* var17 = array_instance Array[Object] */
737 var18 = 2;
738 var19 = NEW_array__NativeArray(var18, &type_array__NativeArraykernel__Object);
739 ((struct instance_array__NativeArray*)var19)->values[0] = (val*) var13;
740 ((struct instance_array__NativeArray*)var19)->values[1] = (val*) var_phase;
741 {
742 ((void (*)(val*, val*, long))(var17->class->vft[COLOR_array__Array__with_native]))(var17, var19, var18) /* with_native on <var17:Array[Object]>*/;
743 }
744 }
745 {
746 var20 = ((val* (*)(val*))(var17->class->vft[COLOR_string__Object__to_s]))(var17) /* to_s on <var17:Array[Object]>*/;
747 }
748 var21 = 2;
749 {
750 toolcontext__ToolContext__info(self, var20, var21); /* Direct call toolcontext#ToolContext#info on <self:ToolContext>*/
751 }
752 CONTINUE_label: (void)0;
753 {
754 ((void (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__next]))(var9) /* next on <var9:Iterator[nullable Object]>*/;
755 }
756 }
757 BREAK_label: (void)0;
758 {
759 var22 = ((val* (*)(val*))(var_nmodules->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_nmodules) /* iterator on <var_nmodules:Collection[AModule]>*/;
760 }
761 for(;;) {
762 {
763 var23 = ((short int (*)(val*))(var22->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var22) /* is_ok on <var22:Iterator[nullable Object]>*/;
764 }
765 if(!var23) break;
766 {
767 var24 = ((val* (*)(val*))(var22->class->vft[COLOR_abstract_collection__Iterator__item]))(var22) /* item on <var22:Iterator[nullable Object]>*/;
768 }
769 var_nmodule = var24;
770 if (varonce25) {
771 var26 = varonce25;
772 } else {
773 var27 = "Semantic analysis module ";
774 var28 = 25;
775 var29 = string__NativeString__to_s_with_length(var27, var28);
776 var26 = var29;
777 varonce25 = var26;
778 }
779 {
780 var30 = parser_nodes__ANode__location(var_nmodule);
781 }
782 {
783 { /* Inline location#Location#file (var30) on <var30:Location> */
784 var33 = var30->attrs[COLOR_location__Location___file].val; /* _file on <var30:Location> */
785 var31 = var33;
786 RET_LABEL32:(void)0;
787 }
788 }
789 if (var31 == NULL) {
790 PRINT_ERROR("Runtime error: %s", "Receiver is null");
791 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 88);
792 show_backtrace(1);
793 } else {
794 { /* Inline location#SourceFile#filename (var31) on <var31:nullable SourceFile> */
795 if (unlikely(var31 == NULL)) {
796 PRINT_ERROR("Runtime error: %s", "Receiver is null");
797 PRINT_ERROR(" (%s:%d)\n", "src/location.nit", 22);
798 show_backtrace(1);
799 }
800 var36 = var31->attrs[COLOR_location__SourceFile___filename].val; /* _filename on <var31:nullable SourceFile> */
801 if (unlikely(var36 == NULL)) {
802 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
803 PRINT_ERROR(" (%s:%d)\n", "src/location.nit", 22);
804 show_backtrace(1);
805 }
806 var34 = var36;
807 RET_LABEL35:(void)0;
808 }
809 }
810 var37 = NEW_array__Array(&type_array__Arraykernel__Object);
811 { /* var37 = array_instance Array[Object] */
812 var38 = 2;
813 var39 = NEW_array__NativeArray(var38, &type_array__NativeArraykernel__Object);
814 ((struct instance_array__NativeArray*)var39)->values[0] = (val*) var26;
815 ((struct instance_array__NativeArray*)var39)->values[1] = (val*) var34;
816 {
817 ((void (*)(val*, val*, long))(var37->class->vft[COLOR_array__Array__with_native]))(var37, var39, var38) /* with_native on <var37:Array[Object]>*/;
818 }
819 }
820 {
821 var40 = ((val* (*)(val*))(var37->class->vft[COLOR_string__Object__to_s]))(var37) /* to_s on <var37:Array[Object]>*/;
822 }
823 var41 = 2;
824 {
825 toolcontext__ToolContext__info(self, var40, var41); /* Direct call toolcontext#ToolContext#info on <self:ToolContext>*/
826 }
827 {
828 var42 = ((val* (*)(val*))(var_phases->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_phases) /* iterator on <var_phases:Sequence[Phase]>*/;
829 }
830 for(;;) {
831 {
832 var43 = ((short int (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var42) /* is_ok on <var42:Iterator[nullable Object]>*/;
833 }
834 if(!var43) break;
835 {
836 var44 = ((val* (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__item]))(var42) /* item on <var42:Iterator[nullable Object]>*/;
837 }
838 var_phase45 = var44;
839 {
840 { /* Inline phase#Phase#disabled (var_phase45) on <var_phase45:Phase> */
841 var48 = var_phase45->attrs[COLOR_phase__Phase___disabled].s; /* _disabled on <var_phase45:Phase> */
842 var46 = var48;
843 RET_LABEL47:(void)0;
844 }
845 }
846 if (var46){
847 goto CONTINUE_label49;
848 } else {
849 }
850 if (varonce50) {
851 var51 = varonce50;
852 } else {
853 var52 = " phase: ";
854 var53 = 8;
855 var54 = string__NativeString__to_s_with_length(var52, var53);
856 var51 = var54;
857 varonce50 = var51;
858 }
859 var55 = NEW_array__Array(&type_array__Arraykernel__Object);
860 { /* var55 = array_instance Array[Object] */
861 var56 = 2;
862 var57 = NEW_array__NativeArray(var56, &type_array__NativeArraykernel__Object);
863 ((struct instance_array__NativeArray*)var57)->values[0] = (val*) var51;
864 ((struct instance_array__NativeArray*)var57)->values[1] = (val*) var_phase45;
865 {
866 ((void (*)(val*, val*, long))(var55->class->vft[COLOR_array__Array__with_native]))(var55, var57, var56) /* with_native on <var55:Array[Object]>*/;
867 }
868 }
869 {
870 var58 = ((val* (*)(val*))(var55->class->vft[COLOR_string__Object__to_s]))(var55) /* to_s on <var55:Array[Object]>*/;
871 }
872 var59 = 3;
873 {
874 toolcontext__ToolContext__info(self, var58, var59); /* Direct call toolcontext#ToolContext#info on <self:ToolContext>*/
875 }
876 {
877 { /* Inline phase#Phase#toolcontext (var_phase45) on <var_phase45:Phase> */
878 var62 = var_phase45->attrs[COLOR_phase__Phase___toolcontext].val; /* _toolcontext on <var_phase45:Phase> */
879 if (unlikely(var62 == NULL)) {
880 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
881 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 145);
882 show_backtrace(1);
883 }
884 var60 = var62;
885 RET_LABEL61:(void)0;
886 }
887 }
888 {
889 { /* Inline kernel#Object#== (var60,self) on <var60:ToolContext> */
890 var_other = self;
891 {
892 { /* Inline kernel#Object#is_same_instance (var60,var_other) on <var60:ToolContext> */
893 var68 = var60 == var_other;
894 var66 = var68;
895 goto RET_LABEL67;
896 RET_LABEL67:(void)0;
897 }
898 }
899 var64 = var66;
900 goto RET_LABEL65;
901 RET_LABEL65:(void)0;
902 }
903 var63 = var64;
904 }
905 if (unlikely(!var63)) {
906 PRINT_ERROR("Runtime error: %s", "Assert failed");
907 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 92);
908 show_backtrace(1);
909 }
910 {
911 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
912 var71 = self->attrs[COLOR_toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
913 var69 = var71;
914 RET_LABEL70:(void)0;
915 }
916 }
917 var_errcount = var69;
918 {
919 ((void (*)(val*, val*))(var_phase45->class->vft[COLOR_phase__Phase__process_nmodule]))(var_phase45, var_nmodule) /* process_nmodule on <var_phase45:Phase>*/;
920 }
921 {
922 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
923 var74 = self->attrs[COLOR_toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
924 var72 = var74;
925 RET_LABEL73:(void)0;
926 }
927 }
928 {
929 { /* Inline kernel#Int#!= (var_errcount,var72) on <var_errcount:Int> */
930 var78 = var_errcount == var72;
931 var79 = !var78;
932 var76 = var79;
933 goto RET_LABEL77;
934 RET_LABEL77:(void)0;
935 }
936 var75 = var76;
937 }
938 if (var75){
939 {
940 toolcontext__ToolContext__check_errors(self); /* Direct call toolcontext#ToolContext#check_errors on <self:ToolContext>*/
941 }
942 goto BREAK_label49;
943 } else {
944 }
945 {
946 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
947 var82 = self->attrs[COLOR_toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
948 var80 = var82;
949 RET_LABEL81:(void)0;
950 }
951 }
952 var_errcount = var80;
953 {
954 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
955 var85 = var_nmodule->attrs[COLOR_parser_nodes__AModule___n_classdefs].val; /* _n_classdefs on <var_nmodule:AModule> */
956 if (unlikely(var85 == NULL)) {
957 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
958 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 699);
959 show_backtrace(1);
960 }
961 var83 = var85;
962 RET_LABEL84:(void)0;
963 }
964 }
965 {
966 var86 = parser_nodes__ANodes__iterator(var83);
967 }
968 for(;;) {
969 {
970 var87 = ((short int (*)(val*))(var86->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var86) /* is_ok on <var86:Iterator[ANode]>*/;
971 }
972 if(!var87) break;
973 {
974 var88 = ((val* (*)(val*))(var86->class->vft[COLOR_abstract_collection__Iterator__item]))(var86) /* item on <var86:Iterator[ANode]>*/;
975 }
976 var_nclassdef = var88;
977 if (varonce89) {
978 var90 = varonce89;
979 } else {
980 var91 = " phase: ";
981 var92 = 8;
982 var93 = string__NativeString__to_s_with_length(var91, var92);
983 var90 = var93;
984 varonce89 = var90;
985 }
986 if (varonce94) {
987 var95 = varonce94;
988 } else {
989 var96 = " for ";
990 var97 = 5;
991 var98 = string__NativeString__to_s_with_length(var96, var97);
992 var95 = var98;
993 varonce94 = var95;
994 }
995 {
996 var99 = parser_nodes__ANode__location(var_nclassdef);
997 }
998 var100 = NEW_array__Array(&type_array__Arraykernel__Object);
999 { /* var100 = array_instance Array[Object] */
1000 var101 = 4;
1001 var102 = NEW_array__NativeArray(var101, &type_array__NativeArraykernel__Object);
1002 ((struct instance_array__NativeArray*)var102)->values[0] = (val*) var90;
1003 ((struct instance_array__NativeArray*)var102)->values[1] = (val*) var_phase45;
1004 ((struct instance_array__NativeArray*)var102)->values[2] = (val*) var95;
1005 ((struct instance_array__NativeArray*)var102)->values[3] = (val*) var99;
1006 {
1007 ((void (*)(val*, val*, long))(var100->class->vft[COLOR_array__Array__with_native]))(var100, var102, var101) /* with_native on <var100:Array[Object]>*/;
1008 }
1009 }
1010 {
1011 var103 = ((val* (*)(val*))(var100->class->vft[COLOR_string__Object__to_s]))(var100) /* to_s on <var100:Array[Object]>*/;
1012 }
1013 var104 = 3;
1014 {
1015 toolcontext__ToolContext__info(self, var103, var104); /* Direct call toolcontext#ToolContext#info on <self:ToolContext>*/
1016 }
1017 {
1018 { /* Inline phase#Phase#toolcontext (var_phase45) on <var_phase45:Phase> */
1019 var107 = var_phase45->attrs[COLOR_phase__Phase___toolcontext].val; /* _toolcontext on <var_phase45:Phase> */
1020 if (unlikely(var107 == NULL)) {
1021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1022 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 145);
1023 show_backtrace(1);
1024 }
1025 var105 = var107;
1026 RET_LABEL106:(void)0;
1027 }
1028 }
1029 {
1030 { /* Inline kernel#Object#== (var105,self) on <var105:ToolContext> */
1031 var_other = self;
1032 {
1033 { /* Inline kernel#Object#is_same_instance (var105,var_other) on <var105:ToolContext> */
1034 var113 = var105 == var_other;
1035 var111 = var113;
1036 goto RET_LABEL112;
1037 RET_LABEL112:(void)0;
1038 }
1039 }
1040 var109 = var111;
1041 goto RET_LABEL110;
1042 RET_LABEL110:(void)0;
1043 }
1044 var108 = var109;
1045 }
1046 if (unlikely(!var108)) {
1047 PRINT_ERROR("Runtime error: %s", "Assert failed");
1048 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 102);
1049 show_backtrace(1);
1050 }
1051 {
1052 { /* Inline phase#Phase#process_nclassdef (var_phase45,var_nclassdef) on <var_phase45:Phase> */
1053 var_nclassdef115 = var_nclassdef;
1054 RET_LABEL114:(void)0;
1055 }
1056 }
1057 {
1058 { /* Inline parser_nodes#AClassdef#n_propdefs (var_nclassdef) on <var_nclassdef:AClassdef> */
1059 var118 = var_nclassdef->attrs[COLOR_parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <var_nclassdef:AClassdef> */
1060 if (unlikely(var118 == NULL)) {
1061 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
1062 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 802);
1063 show_backtrace(1);
1064 }
1065 var116 = var118;
1066 RET_LABEL117:(void)0;
1067 }
1068 }
1069 {
1070 var119 = parser_nodes__ANodes__iterator(var116);
1071 }
1072 for(;;) {
1073 {
1074 var120 = ((short int (*)(val*))(var119->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var119) /* is_ok on <var119:Iterator[ANode]>*/;
1075 }
1076 if(!var120) break;
1077 {
1078 var121 = ((val* (*)(val*))(var119->class->vft[COLOR_abstract_collection__Iterator__item]))(var119) /* item on <var119:Iterator[ANode]>*/;
1079 }
1080 var_npropdef = var121;
1081 {
1082 { /* Inline phase#Phase#toolcontext (var_phase45) on <var_phase45:Phase> */
1083 var124 = var_phase45->attrs[COLOR_phase__Phase___toolcontext].val; /* _toolcontext on <var_phase45:Phase> */
1084 if (unlikely(var124 == NULL)) {
1085 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1086 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 145);
1087 show_backtrace(1);
1088 }
1089 var122 = var124;
1090 RET_LABEL123:(void)0;
1091 }
1092 }
1093 {
1094 { /* Inline kernel#Object#== (var122,self) on <var122:ToolContext> */
1095 var_other = self;
1096 {
1097 { /* Inline kernel#Object#is_same_instance (var122,var_other) on <var122:ToolContext> */
1098 var130 = var122 == var_other;
1099 var128 = var130;
1100 goto RET_LABEL129;
1101 RET_LABEL129:(void)0;
1102 }
1103 }
1104 var126 = var128;
1105 goto RET_LABEL127;
1106 RET_LABEL127:(void)0;
1107 }
1108 var125 = var126;
1109 }
1110 if (unlikely(!var125)) {
1111 PRINT_ERROR("Runtime error: %s", "Assert failed");
1112 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 105);
1113 show_backtrace(1);
1114 }
1115 {
1116 ((void (*)(val*, val*))(var_phase45->class->vft[COLOR_phase__Phase__process_npropdef]))(var_phase45, var_npropdef) /* process_npropdef on <var_phase45:Phase>*/;
1117 }
1118 CONTINUE_label131: (void)0;
1119 {
1120 ((void (*)(val*))(var119->class->vft[COLOR_abstract_collection__Iterator__next]))(var119) /* next on <var119:Iterator[ANode]>*/;
1121 }
1122 }
1123 BREAK_label131: (void)0;
1124 CONTINUE_label132: (void)0;
1125 {
1126 ((void (*)(val*))(var86->class->vft[COLOR_abstract_collection__Iterator__next]))(var86) /* next on <var86:Iterator[ANode]>*/;
1127 }
1128 }
1129 BREAK_label132: (void)0;
1130 {
1131 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1132 var135 = self->attrs[COLOR_toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1133 var133 = var135;
1134 RET_LABEL134:(void)0;
1135 }
1136 }
1137 {
1138 { /* Inline kernel#Int#!= (var_errcount,var133) on <var_errcount:Int> */
1139 var139 = var_errcount == var133;
1140 var140 = !var139;
1141 var137 = var140;
1142 goto RET_LABEL138;
1143 RET_LABEL138:(void)0;
1144 }
1145 var136 = var137;
1146 }
1147 if (var136){
1148 {
1149 toolcontext__ToolContext__check_errors(self); /* Direct call toolcontext#ToolContext#check_errors on <self:ToolContext>*/
1150 }
1151 goto BREAK_label49;
1152 } else {
1153 }
1154 var141 = NEW_phase__AnnotationPhaseVisitor(&type_phase__AnnotationPhaseVisitor);
1155 {
1156 phase__AnnotationPhaseVisitor__init(var141, var_phase45); /* Direct call phase#AnnotationPhaseVisitor#init on <var141:AnnotationPhaseVisitor>*/
1157 }
1158 var_v = var141;
1159 {
1160 parser_nodes__Visitor__enter_visit(var_v, var_nmodule); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:AnnotationPhaseVisitor>*/
1161 }
1162 {
1163 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1164 var144 = self->attrs[COLOR_toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1165 var142 = var144;
1166 RET_LABEL143:(void)0;
1167 }
1168 }
1169 {
1170 { /* Inline kernel#Int#!= (var_errcount,var142) on <var_errcount:Int> */
1171 var148 = var_errcount == var142;
1172 var149 = !var148;
1173 var146 = var149;
1174 goto RET_LABEL147;
1175 RET_LABEL147:(void)0;
1176 }
1177 var145 = var146;
1178 }
1179 if (var145){
1180 {
1181 toolcontext__ToolContext__check_errors(self); /* Direct call toolcontext#ToolContext#check_errors on <self:ToolContext>*/
1182 }
1183 goto BREAK_label49;
1184 } else {
1185 }
1186 CONTINUE_label49: (void)0;
1187 {
1188 ((void (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__next]))(var42) /* next on <var42:Iterator[nullable Object]>*/;
1189 }
1190 }
1191 BREAK_label49: (void)0;
1192 {
1193 toolcontext__ToolContext__check_errors(self); /* Direct call toolcontext#ToolContext#check_errors on <self:ToolContext>*/
1194 }
1195 CONTINUE_label150: (void)0;
1196 {
1197 ((void (*)(val*))(var22->class->vft[COLOR_abstract_collection__Iterator__next]))(var22) /* next on <var22:Iterator[nullable Object]>*/;
1198 }
1199 }
1200 BREAK_label150: (void)0;
1201 {
1202 { /* Inline time#Object#get_time (self) on <self:ToolContext> */
1203 var153 = kernel_Any_Any_get_time_0(self);
1204 var151 = var153;
1205 goto RET_LABEL152;
1206 RET_LABEL152:(void)0;
1207 }
1208 }
1209 var_time1 = var151;
1210 if (varonce154) {
1211 var155 = varonce154;
1212 } else {
1213 var156 = "*** END SEMANTIC ANALYSIS: ";
1214 var157 = 27;
1215 var158 = string__NativeString__to_s_with_length(var156, var157);
1216 var155 = var158;
1217 varonce154 = var155;
1218 }
1219 {
1220 { /* Inline kernel#Int#- (var_time1,var_time0) on <var_time1:Int> */
1221 /* Covariant cast for argument 0 (i) <var_time0:Int> isa OTHER */
1222 /* <var_time0:Int> isa OTHER */
1223 var161 = 1; /* easy <var_time0:Int> isa OTHER*/
1224 if (unlikely(!var161)) {
1225 var_class_name = type_kernel__Int.name;
1226 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1227 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1228 show_backtrace(1);
1229 }
1230 var162 = var_time1 - var_time0;
1231 var159 = var162;
1232 goto RET_LABEL160;
1233 RET_LABEL160:(void)0;
1234 }
1235 }
1236 if (varonce163) {
1237 var164 = varonce163;
1238 } else {
1239 var165 = " ***";
1240 var166 = 4;
1241 var167 = string__NativeString__to_s_with_length(var165, var166);
1242 var164 = var167;
1243 varonce163 = var164;
1244 }
1245 var168 = NEW_array__Array(&type_array__Arraykernel__Object);
1246 { /* var168 = array_instance Array[Object] */
1247 var169 = 3;
1248 var170 = NEW_array__NativeArray(var169, &type_array__NativeArraykernel__Object);
1249 ((struct instance_array__NativeArray*)var170)->values[0] = (val*) var155;
1250 var171 = BOX_kernel__Int(var159); /* autobox from Int to Object */
1251 ((struct instance_array__NativeArray*)var170)->values[1] = (val*) var171;
1252 ((struct instance_array__NativeArray*)var170)->values[2] = (val*) var164;
1253 {
1254 ((void (*)(val*, val*, long))(var168->class->vft[COLOR_array__Array__with_native]))(var168, var170, var169) /* with_native on <var168:Array[Object]>*/;
1255 }
1256 }
1257 {
1258 var172 = ((val* (*)(val*))(var168->class->vft[COLOR_string__Object__to_s]))(var168) /* to_s on <var168:Array[Object]>*/;
1259 }
1260 var173 = 2;
1261 {
1262 toolcontext__ToolContext__info(self, var172, var173); /* Direct call toolcontext#ToolContext#info on <self:ToolContext>*/
1263 }
1264 RET_LABEL:;
1265 }
1266 /* method phase#ToolContext#run_phases for (self: Object, Collection[AModule]) */
1267 void VIRTUAL_phase__ToolContext__run_phases(val* self, val* p0) {
1268 phase__ToolContext__run_phases(self, p0); /* Direct call phase#ToolContext#run_phases on <self:Object(ToolContext)>*/
1269 RET_LABEL:;
1270 }
1271 /* method phase#AnnotationPhaseVisitor#phase for (self: AnnotationPhaseVisitor): Phase */
1272 val* phase__AnnotationPhaseVisitor__phase(val* self) {
1273 val* var /* : Phase */;
1274 val* var1 /* : Phase */;
1275 var1 = self->attrs[COLOR_phase__AnnotationPhaseVisitor___phase].val; /* _phase on <self:AnnotationPhaseVisitor> */
1276 if (unlikely(var1 == NULL)) {
1277 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phase");
1278 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 131);
1279 show_backtrace(1);
1280 }
1281 var = var1;
1282 RET_LABEL:;
1283 return var;
1284 }
1285 /* method phase#AnnotationPhaseVisitor#phase for (self: Object): Phase */
1286 val* VIRTUAL_phase__AnnotationPhaseVisitor__phase(val* self) {
1287 val* var /* : Phase */;
1288 val* var1 /* : Phase */;
1289 val* var3 /* : Phase */;
1290 { /* Inline phase#AnnotationPhaseVisitor#phase (self) on <self:Object(AnnotationPhaseVisitor)> */
1291 var3 = self->attrs[COLOR_phase__AnnotationPhaseVisitor___phase].val; /* _phase on <self:Object(AnnotationPhaseVisitor)> */
1292 if (unlikely(var3 == NULL)) {
1293 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phase");
1294 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 131);
1295 show_backtrace(1);
1296 }
1297 var1 = var3;
1298 RET_LABEL2:(void)0;
1299 }
1300 var = var1;
1301 RET_LABEL:;
1302 return var;
1303 }
1304 /* method phase#AnnotationPhaseVisitor#phase= for (self: AnnotationPhaseVisitor, Phase) */
1305 void phase__AnnotationPhaseVisitor__phase_61d(val* self, val* p0) {
1306 self->attrs[COLOR_phase__AnnotationPhaseVisitor___phase].val = p0; /* _phase on <self:AnnotationPhaseVisitor> */
1307 RET_LABEL:;
1308 }
1309 /* method phase#AnnotationPhaseVisitor#phase= for (self: Object, Phase) */
1310 void VIRTUAL_phase__AnnotationPhaseVisitor__phase_61d(val* self, val* p0) {
1311 { /* Inline phase#AnnotationPhaseVisitor#phase= (self,p0) on <self:Object(AnnotationPhaseVisitor)> */
1312 self->attrs[COLOR_phase__AnnotationPhaseVisitor___phase].val = p0; /* _phase on <self:Object(AnnotationPhaseVisitor)> */
1313 RET_LABEL1:(void)0;
1314 }
1315 RET_LABEL:;
1316 }
1317 /* method phase#AnnotationPhaseVisitor#init for (self: AnnotationPhaseVisitor, Phase) */
1318 void phase__AnnotationPhaseVisitor__init(val* self, val* p0) {
1319 val* var_phase /* var phase: Phase */;
1320 {
1321 { /* Inline parser_nodes#Visitor#init (self) on <self:AnnotationPhaseVisitor> */
1322 RET_LABEL1:(void)0;
1323 }
1324 }
1325 var_phase = p0;
1326 {
1327 { /* Inline phase#AnnotationPhaseVisitor#phase= (self,var_phase) on <self:AnnotationPhaseVisitor> */
1328 self->attrs[COLOR_phase__AnnotationPhaseVisitor___phase].val = var_phase; /* _phase on <self:AnnotationPhaseVisitor> */
1329 RET_LABEL2:(void)0;
1330 }
1331 }
1332 RET_LABEL:;
1333 }
1334 /* method phase#AnnotationPhaseVisitor#init for (self: Object, Phase) */
1335 void VIRTUAL_phase__AnnotationPhaseVisitor__init(val* self, val* p0) {
1336 phase__AnnotationPhaseVisitor__init(self, p0); /* Direct call phase#AnnotationPhaseVisitor#init on <self:Object(AnnotationPhaseVisitor)>*/
1337 RET_LABEL:;
1338 }
1339 /* method phase#AnnotationPhaseVisitor#visit for (self: AnnotationPhaseVisitor, ANode) */
1340 void phase__AnnotationPhaseVisitor__visit(val* self, val* p0) {
1341 val* var_n /* var n: ANode */;
1342 short int var /* : Bool */;
1343 int cltype;
1344 int idtype;
1345 val* var1 /* : Phase */;
1346 val* var3 /* : Phase */;
1347 val* var4 /* : nullable ANode */;
1348 val* var6 /* : nullable ANode */;
1349 val* var7 /* : nullable ANode */;
1350 val* var9 /* : nullable ANode */;
1351 var_n = p0;
1352 {
1353 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on <var_n:ANode>*/;
1354 }
1355 /* <var_n:ANode> isa AAnnotation */
1356 cltype = type_parser_nodes__AAnnotation.color;
1357 idtype = type_parser_nodes__AAnnotation.id;
1358 if(cltype >= var_n->type->table_size) {
1359 var = 0;
1360 } else {
1361 var = var_n->type->type_table[cltype] == idtype;
1362 }
1363 if (var){
1364 {
1365 { /* Inline phase#AnnotationPhaseVisitor#phase (self) on <self:AnnotationPhaseVisitor> */
1366 var3 = self->attrs[COLOR_phase__AnnotationPhaseVisitor___phase].val; /* _phase on <self:AnnotationPhaseVisitor> */
1367 if (unlikely(var3 == NULL)) {
1368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phase");
1369 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 131);
1370 show_backtrace(1);
1371 }
1372 var1 = var3;
1373 RET_LABEL2:(void)0;
1374 }
1375 }
1376 {
1377 { /* Inline parser_nodes#ANode#parent (var_n) on <var_n:ANode(AAnnotation)> */
1378 var6 = var_n->attrs[COLOR_parser_nodes__ANode___parent].val; /* _parent on <var_n:ANode(AAnnotation)> */
1379 var4 = var6;
1380 RET_LABEL5:(void)0;
1381 }
1382 }
1383 if (var4 == NULL) {
1384 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1385 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 138);
1386 show_backtrace(1);
1387 } else {
1388 { /* Inline parser_nodes#ANode#parent (var4) on <var4:nullable ANode> */
1389 if (unlikely(var4 == NULL)) {
1390 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1391 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1392 show_backtrace(1);
1393 }
1394 var9 = var4->attrs[COLOR_parser_nodes__ANode___parent].val; /* _parent on <var4:nullable ANode> */
1395 var7 = var9;
1396 RET_LABEL8:(void)0;
1397 }
1398 }
1399 if (unlikely(var7 == NULL)) {
1400 PRINT_ERROR("Runtime error: %s", "Cast failed");
1401 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 138);
1402 show_backtrace(1);
1403 }
1404 {
1405 ((void (*)(val*, val*, val*))(var1->class->vft[COLOR_phase__Phase__process_annotated_node]))(var1, var7, var_n) /* process_annotated_node on <var1:Phase>*/;
1406 }
1407 } else {
1408 }
1409 RET_LABEL:;
1410 }
1411 /* method phase#AnnotationPhaseVisitor#visit for (self: Object, ANode) */
1412 void VIRTUAL_phase__AnnotationPhaseVisitor__visit(val* self, val* p0) {
1413 phase__AnnotationPhaseVisitor__visit(self, p0); /* Direct call phase#AnnotationPhaseVisitor#visit on <self:Object(AnnotationPhaseVisitor)>*/
1414 RET_LABEL:;
1415 }
1416 /* method phase#Phase#toolcontext for (self: Phase): ToolContext */
1417 val* phase__Phase__toolcontext(val* self) {
1418 val* var /* : ToolContext */;
1419 val* var1 /* : ToolContext */;
1420 var1 = self->attrs[COLOR_phase__Phase___toolcontext].val; /* _toolcontext on <self:Phase> */
1421 if (unlikely(var1 == NULL)) {
1422 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1423 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 145);
1424 show_backtrace(1);
1425 }
1426 var = var1;
1427 RET_LABEL:;
1428 return var;
1429 }
1430 /* method phase#Phase#toolcontext for (self: Object): ToolContext */
1431 val* VIRTUAL_phase__Phase__toolcontext(val* self) {
1432 val* var /* : ToolContext */;
1433 val* var1 /* : ToolContext */;
1434 val* var3 /* : ToolContext */;
1435 { /* Inline phase#Phase#toolcontext (self) on <self:Object(Phase)> */
1436 var3 = self->attrs[COLOR_phase__Phase___toolcontext].val; /* _toolcontext on <self:Object(Phase)> */
1437 if (unlikely(var3 == NULL)) {
1438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1439 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 145);
1440 show_backtrace(1);
1441 }
1442 var1 = var3;
1443 RET_LABEL2:(void)0;
1444 }
1445 var = var1;
1446 RET_LABEL:;
1447 return var;
1448 }
1449 /* method phase#Phase#toolcontext= for (self: Phase, ToolContext) */
1450 void phase__Phase__toolcontext_61d(val* self, val* p0) {
1451 self->attrs[COLOR_phase__Phase___toolcontext].val = p0; /* _toolcontext on <self:Phase> */
1452 RET_LABEL:;
1453 }
1454 /* method phase#Phase#toolcontext= for (self: Object, ToolContext) */
1455 void VIRTUAL_phase__Phase__toolcontext_61d(val* self, val* p0) {
1456 { /* Inline phase#Phase#toolcontext= (self,p0) on <self:Object(Phase)> */
1457 self->attrs[COLOR_phase__Phase___toolcontext].val = p0; /* _toolcontext on <self:Object(Phase)> */
1458 RET_LABEL1:(void)0;
1459 }
1460 RET_LABEL:;
1461 }
1462 /* method phase#Phase#in_hierarchy for (self: Phase): POSetElement[Phase] */
1463 val* phase__Phase__in_hierarchy(val* self) {
1464 val* var /* : POSetElement[Phase] */;
1465 val* var1 /* : POSetElement[Phase] */;
1466 var1 = self->attrs[COLOR_phase__Phase___in_hierarchy].val; /* _in_hierarchy on <self:Phase> */
1467 if (unlikely(var1 == NULL)) {
1468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_hierarchy");
1469 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 148);
1470 show_backtrace(1);
1471 }
1472 var = var1;
1473 RET_LABEL:;
1474 return var;
1475 }
1476 /* method phase#Phase#in_hierarchy for (self: Object): POSetElement[Phase] */
1477 val* VIRTUAL_phase__Phase__in_hierarchy(val* self) {
1478 val* var /* : POSetElement[Phase] */;
1479 val* var1 /* : POSetElement[Phase] */;
1480 val* var3 /* : POSetElement[Phase] */;
1481 { /* Inline phase#Phase#in_hierarchy (self) on <self:Object(Phase)> */
1482 var3 = self->attrs[COLOR_phase__Phase___in_hierarchy].val; /* _in_hierarchy on <self:Object(Phase)> */
1483 if (unlikely(var3 == NULL)) {
1484 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_hierarchy");
1485 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 148);
1486 show_backtrace(1);
1487 }
1488 var1 = var3;
1489 RET_LABEL2:(void)0;
1490 }
1491 var = var1;
1492 RET_LABEL:;
1493 return var;
1494 }
1495 /* method phase#Phase#in_hierarchy= for (self: Phase, POSetElement[Phase]) */
1496 void phase__Phase__in_hierarchy_61d(val* self, val* p0) {
1497 self->attrs[COLOR_phase__Phase___in_hierarchy].val = p0; /* _in_hierarchy on <self:Phase> */
1498 RET_LABEL:;
1499 }
1500 /* method phase#Phase#in_hierarchy= for (self: Object, POSetElement[Phase]) */
1501 void VIRTUAL_phase__Phase__in_hierarchy_61d(val* self, val* p0) {
1502 { /* Inline phase#Phase#in_hierarchy= (self,p0) on <self:Object(Phase)> */
1503 self->attrs[COLOR_phase__Phase___in_hierarchy].val = p0; /* _in_hierarchy on <self:Object(Phase)> */
1504 RET_LABEL1:(void)0;
1505 }
1506 RET_LABEL:;
1507 }
1508 /* method phase#Phase#init for (self: Phase, ToolContext, nullable Collection[Phase]) */
1509 void phase__Phase__init(val* self, val* p0, val* p1) {
1510 val* var_toolcontext /* var toolcontext: ToolContext */;
1511 val* var_depends /* var depends: nullable Collection[Phase] */;
1512 val* var /* : POSet[Phase] */;
1513 val* var3 /* : POSet[Phase] */;
1514 val* var4 /* : POSetElement[Object] */;
1515 val* var6 /* : null */;
1516 short int var7 /* : Bool */;
1517 short int var8 /* : Bool */;
1518 val* var_other /* var other: nullable Object */;
1519 short int var10 /* : Bool */;
1520 short int var11 /* : Bool */;
1521 short int var12 /* : Bool */;
1522 val* var13 /* : Iterator[nullable Object] */;
1523 short int var14 /* : Bool */;
1524 val* var15 /* : nullable Object */;
1525 val* var_d /* var d: Phase */;
1526 val* var16 /* : POSet[Phase] */;
1527 val* var18 /* : POSet[Phase] */;
1528 var_toolcontext = p0;
1529 var_depends = p1;
1530 {
1531 { /* Inline phase#Phase#toolcontext= (self,var_toolcontext) on <self:Phase> */
1532 self->attrs[COLOR_phase__Phase___toolcontext].val = var_toolcontext; /* _toolcontext on <self:Phase> */
1533 RET_LABEL1:(void)0;
1534 }
1535 }
1536 {
1537 { /* Inline phase#ToolContext#phases (var_toolcontext) on <var_toolcontext:ToolContext> */
1538 var3 = var_toolcontext->attrs[COLOR_phase__ToolContext___phases].val; /* _phases on <var_toolcontext:ToolContext> */
1539 if (unlikely(var3 == NULL)) {
1540 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phases");
1541 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 23);
1542 show_backtrace(1);
1543 }
1544 var = var3;
1545 RET_LABEL2:(void)0;
1546 }
1547 }
1548 {
1549 var4 = poset__POSet__add_node(var, self);
1550 }
1551 {
1552 { /* Inline phase#Phase#in_hierarchy= (self,var4) on <self:Phase> */
1553 self->attrs[COLOR_phase__Phase___in_hierarchy].val = var4; /* _in_hierarchy on <self:Phase> */
1554 RET_LABEL5:(void)0;
1555 }
1556 }
1557 var6 = NULL;
1558 if (var_depends == NULL) {
1559 var7 = 0; /* is null */
1560 } else {
1561 var7 = 1; /* arg is null and recv is not */
1562 }
1563 if (0) {
1564 { /* Inline kernel#Object#!= (var_depends,var6) on <var_depends:nullable Collection[Phase]> */
1565 var_other = var6;
1566 {
1567 var11 = ((short int (*)(val*, val*))(var_depends->class->vft[COLOR_kernel__Object___61d_61d]))(var_depends, var_other) /* == on <var_depends:nullable Collection[Phase](Collection[Phase])>*/;
1568 var10 = var11;
1569 }
1570 var12 = !var10;
1571 var8 = var12;
1572 goto RET_LABEL9;
1573 RET_LABEL9:(void)0;
1574 }
1575 var7 = var8;
1576 }
1577 if (var7){
1578 {
1579 var13 = ((val* (*)(val*))(var_depends->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_depends) /* iterator on <var_depends:nullable Collection[Phase](Collection[Phase])>*/;
1580 }
1581 for(;;) {
1582 {
1583 var14 = ((short int (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var13) /* is_ok on <var13:Iterator[nullable Object]>*/;
1584 }
1585 if(!var14) break;
1586 {
1587 var15 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__item]))(var13) /* item on <var13:Iterator[nullable Object]>*/;
1588 }
1589 var_d = var15;
1590 {
1591 { /* Inline phase#ToolContext#phases (var_toolcontext) on <var_toolcontext:ToolContext> */
1592 var18 = var_toolcontext->attrs[COLOR_phase__ToolContext___phases].val; /* _phases on <var_toolcontext:ToolContext> */
1593 if (unlikely(var18 == NULL)) {
1594 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phases");
1595 PRINT_ERROR(" (%s:%d)\n", "src/phase.nit", 23);
1596 show_backtrace(1);
1597 }
1598 var16 = var18;
1599 RET_LABEL17:(void)0;
1600 }
1601 }
1602 {
1603 poset__POSet__add_edge(var16, self, var_d); /* Direct call poset#POSet#add_edge on <var16:POSet[Phase]>*/
1604 }
1605 CONTINUE_label: (void)0;
1606 {
1607 ((void (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__next]))(var13) /* next on <var13:Iterator[nullable Object]>*/;
1608 }
1609 }
1610 BREAK_label: (void)0;
1611 } else {
1612 }
1613 RET_LABEL:;
1614 }
1615 /* method phase#Phase#init for (self: Object, ToolContext, nullable Collection[Phase]) */
1616 void VIRTUAL_phase__Phase__init(val* self, val* p0, val* p1) {
1617 phase__Phase__init(self, p0, p1); /* Direct call phase#Phase#init on <self:Object(Phase)>*/
1618 RET_LABEL:;
1619 }
1620 /* method phase#Phase#to_s for (self: Phase): String */
1621 val* phase__Phase__to_s(val* self) {
1622 val* var /* : String */;
1623 val* var1 /* : String */;
1624 static val* varonce;
1625 val* var2 /* : String */;
1626 char* var3 /* : NativeString */;
1627 long var4 /* : Int */;
1628 val* var5 /* : FlatString */;
1629 val* var6 /* : String */;
1630 val* var7 /* : String */;
1631 {
1632 var1 = string__Object__class_name(self);
1633 }
1634 if (varonce) {
1635 var2 = varonce;
1636 } else {
1637 var3 = "Phase";
1638 var4 = 5;
1639 var5 = string__NativeString__to_s_with_length(var3, var4);
1640 var2 = var5;
1641 varonce = var2;
1642 }
1643 {
1644 var6 = file__String__strip_extension(var1, var2);
1645 }
1646 {
1647 var7 = string__FlatString__to_lower(var6);
1648 }
1649 var = var7;
1650 goto RET_LABEL;
1651 RET_LABEL:;
1652 return var;
1653 }
1654 /* method phase#Phase#to_s for (self: Object): String */
1655 val* VIRTUAL_phase__Phase__to_s(val* self) {
1656 val* var /* : String */;
1657 val* var1 /* : String */;
1658 var1 = phase__Phase__to_s(self);
1659 var = var1;
1660 RET_LABEL:;
1661 return var;
1662 }
1663 /* method phase#Phase#disabled for (self: Phase): Bool */
1664 short int phase__Phase__disabled(val* self) {
1665 short int var /* : Bool */;
1666 short int var1 /* : Bool */;
1667 var1 = self->attrs[COLOR_phase__Phase___disabled].s; /* _disabled on <self:Phase> */
1668 var = var1;
1669 RET_LABEL:;
1670 return var;
1671 }
1672 /* method phase#Phase#disabled for (self: Object): Bool */
1673 short int VIRTUAL_phase__Phase__disabled(val* self) {
1674 short int var /* : Bool */;
1675 short int var1 /* : Bool */;
1676 short int var3 /* : Bool */;
1677 { /* Inline phase#Phase#disabled (self) on <self:Object(Phase)> */
1678 var3 = self->attrs[COLOR_phase__Phase___disabled].s; /* _disabled on <self:Object(Phase)> */
1679 var1 = var3;
1680 RET_LABEL2:(void)0;
1681 }
1682 var = var1;
1683 RET_LABEL:;
1684 return var;
1685 }
1686 /* method phase#Phase#disabled= for (self: Phase, Bool) */
1687 void phase__Phase__disabled_61d(val* self, short int p0) {
1688 self->attrs[COLOR_phase__Phase___disabled].s = p0; /* _disabled on <self:Phase> */
1689 RET_LABEL:;
1690 }
1691 /* method phase#Phase#disabled= for (self: Object, Bool) */
1692 void VIRTUAL_phase__Phase__disabled_61d(val* self, short int p0) {
1693 { /* Inline phase#Phase#disabled= (self,p0) on <self:Object(Phase)> */
1694 self->attrs[COLOR_phase__Phase___disabled].s = p0; /* _disabled on <self:Object(Phase)> */
1695 RET_LABEL1:(void)0;
1696 }
1697 RET_LABEL:;
1698 }
1699 /* method phase#Phase#process_nmodule for (self: Phase, AModule) */
1700 void phase__Phase__process_nmodule(val* self, val* p0) {
1701 val* var_nmodule /* var nmodule: AModule */;
1702 var_nmodule = p0;
1703 RET_LABEL:;
1704 }
1705 /* method phase#Phase#process_nmodule for (self: Object, AModule) */
1706 void VIRTUAL_phase__Phase__process_nmodule(val* self, val* p0) {
1707 val* var_nmodule /* var nmodule: AModule */;
1708 { /* Inline phase#Phase#process_nmodule (self,p0) on <self:Object(Phase)> */
1709 var_nmodule = p0;
1710 RET_LABEL1:(void)0;
1711 }
1712 RET_LABEL:;
1713 }
1714 /* method phase#Phase#process_nclassdef for (self: Phase, AClassdef) */
1715 void phase__Phase__process_nclassdef(val* self, val* p0) {
1716 val* var_nclassdef /* var nclassdef: AClassdef */;
1717 var_nclassdef = p0;
1718 RET_LABEL:;
1719 }
1720 /* method phase#Phase#process_nclassdef for (self: Object, AClassdef) */
1721 void VIRTUAL_phase__Phase__process_nclassdef(val* self, val* p0) {
1722 val* var_nclassdef /* var nclassdef: AClassdef */;
1723 { /* Inline phase#Phase#process_nclassdef (self,p0) on <self:Object(Phase)> */
1724 var_nclassdef = p0;
1725 RET_LABEL1:(void)0;
1726 }
1727 RET_LABEL:;
1728 }
1729 /* method phase#Phase#process_npropdef for (self: Phase, APropdef) */
1730 void phase__Phase__process_npropdef(val* self, val* p0) {
1731 val* var_npropdef /* var npropdef: APropdef */;
1732 var_npropdef = p0;
1733 RET_LABEL:;
1734 }
1735 /* method phase#Phase#process_npropdef for (self: Object, APropdef) */
1736 void VIRTUAL_phase__Phase__process_npropdef(val* self, val* p0) {
1737 val* var_npropdef /* var npropdef: APropdef */;
1738 { /* Inline phase#Phase#process_npropdef (self,p0) on <self:Object(Phase)> */
1739 var_npropdef = p0;
1740 RET_LABEL1:(void)0;
1741 }
1742 RET_LABEL:;
1743 }
1744 /* method phase#Phase#process_annotated_node for (self: Phase, ANode, AAnnotation) */
1745 void phase__Phase__process_annotated_node(val* self, val* p0, val* p1) {
1746 val* var_node /* var node: ANode */;
1747 val* var_nat /* var nat: AAnnotation */;
1748 var_node = p0;
1749 var_nat = p1;
1750 RET_LABEL:;
1751 }
1752 /* method phase#Phase#process_annotated_node for (self: Object, ANode, AAnnotation) */
1753 void VIRTUAL_phase__Phase__process_annotated_node(val* self, val* p0, val* p1) {
1754 val* var_node /* var node: ANode */;
1755 val* var_nat /* var nat: AAnnotation */;
1756 { /* Inline phase#Phase#process_annotated_node (self,p0,p1) on <self:Object(Phase)> */
1757 var_node = p0;
1758 var_nat = p1;
1759 RET_LABEL1:(void)0;
1760 }
1761 RET_LABEL:;
1762 }