misc/vim: inform the user when no results are found
[nit.git] / c_src / nit__phase.sep.1.c
1 #include "nit__phase.sep.0.h"
2 /* method phase#ToolContext#phases for (self: ToolContext): POSet[Phase] */
3 val* nit__phase___ToolContext___phases(val* self) {
4 val* var /* : POSet[Phase] */;
5 val* var1 /* : POSet[Phase] */;
6 var1 = self->attrs[COLOR_nit__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", FILE_nit__phase, 23);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method phase#ToolContext#opt_disable_phase for (self: ToolContext): OptionArray */
17 val* nit__phase___ToolContext___opt_disable_phase(val* self) {
18 val* var /* : OptionArray */;
19 val* var1 /* : OptionArray */;
20 var1 = self->attrs[COLOR_nit__phase__ToolContext___opt_disable_phase].val; /* _opt_disable_phase on <self:ToolContext> */
21 if (unlikely(var1 == NULL)) {
22 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_disable_phase");
23 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 30);
24 show_backtrace(1);
25 }
26 var = var1;
27 RET_LABEL:;
28 return var;
29 }
30 /* method phase#ToolContext#opt_sloppy for (self: ToolContext): OptionBool */
31 val* nit__phase___ToolContext___opt_sloppy(val* self) {
32 val* var /* : OptionBool */;
33 val* var1 /* : OptionBool */;
34 var1 = self->attrs[COLOR_nit__phase__ToolContext___opt_sloppy].val; /* _opt_sloppy on <self:ToolContext> */
35 if (unlikely(var1 == NULL)) {
36 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_sloppy");
37 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 33);
38 show_backtrace(1);
39 }
40 var = var1;
41 RET_LABEL:;
42 return var;
43 }
44 /* method phase#ToolContext#init for (self: ToolContext) */
45 void nit__phase___ToolContext___standard__kernel__Object__init(val* self) {
46 val* var /* : OptionContext */;
47 val* var2 /* : OptionContext */;
48 val* var3 /* : OptionArray */;
49 val* var5 /* : OptionArray */;
50 val* var6 /* : OptionBool */;
51 val* var8 /* : OptionBool */;
52 val* var9 /* : Array[Option] */;
53 long var10 /* : Int */;
54 val* var11 /* : NativeArray[Option] */;
55 {
56 ((void (*)(val* self))(self->class->vft[COLOR_nit__phase___ToolContext___standard__kernel__Object__init]))(self) /* init on <self:ToolContext>*/;
57 }
58 {
59 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
60 var2 = self->attrs[COLOR_nit__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
61 if (unlikely(var2 == NULL)) {
62 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
63 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 270);
64 show_backtrace(1);
65 }
66 var = var2;
67 RET_LABEL1:(void)0;
68 }
69 }
70 {
71 { /* Inline phase#ToolContext#opt_disable_phase (self) on <self:ToolContext> */
72 var5 = self->attrs[COLOR_nit__phase__ToolContext___opt_disable_phase].val; /* _opt_disable_phase on <self:ToolContext> */
73 if (unlikely(var5 == NULL)) {
74 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_disable_phase");
75 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 30);
76 show_backtrace(1);
77 }
78 var3 = var5;
79 RET_LABEL4:(void)0;
80 }
81 }
82 {
83 { /* Inline phase#ToolContext#opt_sloppy (self) on <self:ToolContext> */
84 var8 = self->attrs[COLOR_nit__phase__ToolContext___opt_sloppy].val; /* _opt_sloppy on <self:ToolContext> */
85 if (unlikely(var8 == NULL)) {
86 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_sloppy");
87 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 33);
88 show_backtrace(1);
89 }
90 var6 = var8;
91 RET_LABEL7:(void)0;
92 }
93 }
94 var9 = NEW_standard__Array(&type_standard__Array__opts__Option);
95 { /* var9 = array_instance Array[Option] */
96 var10 = 2;
97 var11 = NEW_standard__NativeArray(var10, &type_standard__NativeArray__opts__Option);
98 ((struct instance_standard__NativeArray*)var11)->values[0] = (val*) var3;
99 ((struct instance_standard__NativeArray*)var11)->values[1] = (val*) var6;
100 {
101 ((void (*)(val* self, val* p0, long p1))(var9->class->vft[COLOR_standard__array__Array__with_native]))(var9, var11, var10) /* with_native on <var9:Array[Option]>*/;
102 }
103 }
104 {
105 opts___opts__OptionContext___add_option(var, var9); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
106 }
107 RET_LABEL:;
108 }
109 /* method phase#ToolContext#process_options for (self: ToolContext, Sequence[String]) */
110 void nit__phase___ToolContext___process_options(val* self, val* p0) {
111 val* var_args /* var args: Sequence[String] */;
112 val* var /* : OptionArray */;
113 val* var2 /* : OptionArray */;
114 val* var3 /* : nullable Object */;
115 val* var5 /* : nullable Object */;
116 val* var_ /* var : Array[String] */;
117 val* var6 /* : ArrayIterator[nullable Object] */;
118 val* var_7 /* var : ArrayIterator[String] */;
119 short int var8 /* : Bool */;
120 val* var9 /* : nullable Object */;
121 val* var_v /* var v: String */;
122 static val* varonce;
123 val* var10 /* : String */;
124 char* var11 /* : NativeString */;
125 long var12 /* : Int */;
126 val* var13 /* : FlatString */;
127 short int var14 /* : Bool */;
128 val* var15 /* : Sequence[Phase] */;
129 val* var_16 /* var : Sequence[Phase] */;
130 val* var17 /* : Iterator[nullable Object] */;
131 val* var_18 /* var : IndexedIterator[Phase] */;
132 short int var19 /* : Bool */;
133 val* var20 /* : nullable Object */;
134 val* var_p /* var p: Phase */;
135 val* var21 /* : POSetElement[Phase] */;
136 val* var23 /* : POSetElement[Phase] */;
137 val* var24 /* : Collection[nullable Object] */;
138 val* var_deps /* var deps: Collection[Phase] */;
139 short int var25 /* : Bool */;
140 static val* varonce26;
141 val* var27 /* : String */;
142 char* var28 /* : NativeString */;
143 long var29 /* : Int */;
144 val* var30 /* : FlatString */;
145 static val* varonce31;
146 val* var32 /* : String */;
147 char* var33 /* : NativeString */;
148 long var34 /* : Int */;
149 val* var35 /* : FlatString */;
150 val* var36 /* : String */;
151 static val* varonce37;
152 val* var38 /* : String */;
153 char* var39 /* : NativeString */;
154 long var40 /* : Int */;
155 val* var41 /* : FlatString */;
156 val* var42 /* : Array[Object] */;
157 long var43 /* : Int */;
158 val* var44 /* : NativeArray[Object] */;
159 val* var45 /* : String */;
160 long var47 /* : Int */;
161 short int var49 /* : Bool */;
162 short int var_found /* var found: Bool */;
163 val* var50 /* : POSet[Phase] */;
164 val* var52 /* : POSet[Phase] */;
165 val* var_53 /* var : POSet[Phase] */;
166 val* var54 /* : Iterator[nullable Object] */;
167 val* var_55 /* var : Iterator[Phase] */;
168 short int var56 /* : Bool */;
169 val* var57 /* : nullable Object */;
170 val* var_p58 /* var p: Phase */;
171 val* var59 /* : String */;
172 short int var60 /* : Bool */;
173 val* var_other /* var other: nullable Object */;
174 short int var62 /* : Bool */;
175 short int var63 /* : Bool */;
176 short int var65 /* : Bool */;
177 short int var66 /* : Bool */;
178 short int var70 /* : Bool */;
179 val* var71 /* : null */;
180 static val* varonce72;
181 val* var73 /* : String */;
182 char* var74 /* : NativeString */;
183 long var75 /* : Int */;
184 val* var76 /* : FlatString */;
185 static val* varonce77;
186 val* var78 /* : String */;
187 char* var79 /* : NativeString */;
188 long var80 /* : Int */;
189 val* var81 /* : FlatString */;
190 val* var82 /* : Array[Object] */;
191 long var83 /* : Int */;
192 val* var84 /* : NativeArray[Object] */;
193 val* var85 /* : String */;
194 val* var88 /* : OptionBool */;
195 val* var90 /* : OptionBool */;
196 val* var91 /* : nullable Object */;
197 val* var93 /* : nullable Object */;
198 short int var94 /* : Bool */;
199 short int var95 /* : Bool */;
200 var_args = p0;
201 {
202 ((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__phase___ToolContext___process_options]))(self, p0) /* process_options on <self:ToolContext>*/;
203 }
204 {
205 { /* Inline phase#ToolContext#opt_disable_phase (self) on <self:ToolContext> */
206 var2 = self->attrs[COLOR_nit__phase__ToolContext___opt_disable_phase].val; /* _opt_disable_phase on <self:ToolContext> */
207 if (unlikely(var2 == NULL)) {
208 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_disable_phase");
209 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 30);
210 show_backtrace(1);
211 }
212 var = var2;
213 RET_LABEL1:(void)0;
214 }
215 }
216 {
217 { /* Inline opts#Option#value (var) on <var:OptionArray> */
218 var5 = var->attrs[COLOR_opts__Option___value].val; /* _value on <var:OptionArray> */
219 var3 = var5;
220 RET_LABEL4:(void)0;
221 }
222 }
223 var_ = var3;
224 {
225 var6 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
226 }
227 var_7 = var6;
228 for(;;) {
229 {
230 var8 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_7);
231 }
232 if (var8){
233 {
234 var9 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_7);
235 }
236 var_v = var9;
237 if (varonce) {
238 var10 = varonce;
239 } else {
240 var11 = "list";
241 var12 = 4;
242 var13 = standard___standard__NativeString___to_s_with_length(var11, var12);
243 var10 = var13;
244 varonce = var10;
245 }
246 {
247 var14 = ((short int (*)(val* self, val* p0))(var_v->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_v, var10) /* == on <var_v:String>*/;
248 }
249 if (var14){
250 {
251 var15 = nit__phase___ToolContext___phases_list(self);
252 }
253 var_16 = var15;
254 {
255 var17 = ((val* (*)(val* self))(var_16->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_16) /* iterator on <var_16:Sequence[Phase]>*/;
256 }
257 var_18 = var17;
258 for(;;) {
259 {
260 var19 = ((short int (*)(val* self))(var_18->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_18) /* is_ok on <var_18:IndexedIterator[Phase]>*/;
261 }
262 if (var19){
263 {
264 var20 = ((val* (*)(val* self))(var_18->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_18) /* item on <var_18:IndexedIterator[Phase]>*/;
265 }
266 var_p = var20;
267 {
268 { /* Inline phase#Phase#in_hierarchy (var_p) on <var_p:Phase> */
269 var23 = var_p->attrs[COLOR_nit__phase__Phase___in_hierarchy].val; /* _in_hierarchy on <var_p:Phase> */
270 if (unlikely(var23 == NULL)) {
271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_hierarchy");
272 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 204);
273 show_backtrace(1);
274 }
275 var21 = var23;
276 RET_LABEL22:(void)0;
277 }
278 }
279 {
280 var24 = poset___poset__POSetElement___direct_greaters(var21);
281 }
282 var_deps = var24;
283 {
284 var25 = ((short int (*)(val* self))(var_deps->class->vft[COLOR_standard__abstract_collection__Collection__is_empty]))(var_deps) /* is_empty on <var_deps:Collection[Phase]>*/;
285 }
286 if (var25){
287 {
288 standard__file___Object___print(self, var_p); /* Direct call file#Object#print on <self:ToolContext>*/
289 }
290 } else {
291 if (varonce26) {
292 var27 = varonce26;
293 } else {
294 var28 = " (dep: ";
295 var29 = 7;
296 var30 = standard___standard__NativeString___to_s_with_length(var28, var29);
297 var27 = var30;
298 varonce26 = var27;
299 }
300 if (varonce31) {
301 var32 = varonce31;
302 } else {
303 var33 = ", ";
304 var34 = 2;
305 var35 = standard___standard__NativeString___to_s_with_length(var33, var34);
306 var32 = var35;
307 varonce31 = var32;
308 }
309 {
310 var36 = standard__string___Collection___join(var_deps, var32);
311 }
312 if (varonce37) {
313 var38 = varonce37;
314 } else {
315 var39 = ")";
316 var40 = 1;
317 var41 = standard___standard__NativeString___to_s_with_length(var39, var40);
318 var38 = var41;
319 varonce37 = var38;
320 }
321 var42 = NEW_standard__Array(&type_standard__Array__standard__Object);
322 { /* var42 = array_instance Array[Object] */
323 var43 = 4;
324 var44 = NEW_standard__NativeArray(var43, &type_standard__NativeArray__standard__Object);
325 ((struct instance_standard__NativeArray*)var44)->values[0] = (val*) var_p;
326 ((struct instance_standard__NativeArray*)var44)->values[1] = (val*) var27;
327 ((struct instance_standard__NativeArray*)var44)->values[2] = (val*) var36;
328 ((struct instance_standard__NativeArray*)var44)->values[3] = (val*) var38;
329 {
330 ((void (*)(val* self, val* p0, long p1))(var42->class->vft[COLOR_standard__array__Array__with_native]))(var42, var44, var43) /* with_native on <var42:Array[Object]>*/;
331 }
332 }
333 {
334 var45 = ((val* (*)(val* self))(var42->class->vft[COLOR_standard__string__Object__to_s]))(var42) /* to_s on <var42:Array[Object]>*/;
335 }
336 {
337 standard__file___Object___print(self, var45); /* Direct call file#Object#print on <self:ToolContext>*/
338 }
339 }
340 {
341 ((void (*)(val* self))(var_18->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_18) /* next on <var_18:IndexedIterator[Phase]>*/;
342 }
343 } else {
344 goto BREAK_label;
345 }
346 }
347 BREAK_label: (void)0;
348 {
349 { /* Inline abstract_collection#Iterator#finish (var_18) on <var_18:IndexedIterator[Phase]> */
350 RET_LABEL46:(void)0;
351 }
352 }
353 var47 = 0;
354 {
355 { /* Inline kernel#Object#exit (self,var47) on <self:ToolContext> */
356 exit(var47);
357 RET_LABEL48:(void)0;
358 }
359 }
360 } else {
361 }
362 var49 = 0;
363 var_found = var49;
364 {
365 { /* Inline phase#ToolContext#phases (self) on <self:ToolContext> */
366 var52 = self->attrs[COLOR_nit__phase__ToolContext___phases].val; /* _phases on <self:ToolContext> */
367 if (unlikely(var52 == NULL)) {
368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phases");
369 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 23);
370 show_backtrace(1);
371 }
372 var50 = var52;
373 RET_LABEL51:(void)0;
374 }
375 }
376 var_53 = var50;
377 {
378 var54 = poset___poset__POSet___standard__abstract_collection__Collection__iterator(var_53);
379 }
380 var_55 = var54;
381 for(;;) {
382 {
383 var56 = ((short int (*)(val* self))(var_55->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_55) /* is_ok on <var_55:Iterator[Phase]>*/;
384 }
385 if (var56){
386 {
387 var57 = ((val* (*)(val* self))(var_55->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_55) /* item on <var_55:Iterator[Phase]>*/;
388 }
389 var_p58 = var57;
390 {
391 var59 = nit___nit__Phase___standard__string__Object__to_s(var_p58);
392 }
393 {
394 { /* Inline kernel#Object#!= (var_v,var59) on <var_v:String> */
395 var_other = var59;
396 {
397 var62 = ((short int (*)(val* self, val* p0))(var_v->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_v, var_other) /* == on <var_v:String>*/;
398 }
399 var63 = !var62;
400 var60 = var63;
401 goto RET_LABEL61;
402 RET_LABEL61:(void)0;
403 }
404 }
405 if (var60){
406 goto BREAK_label64;
407 } else {
408 }
409 var65 = 1;
410 var_found = var65;
411 var66 = 1;
412 {
413 { /* Inline phase#Phase#disabled= (var_p58,var66) on <var_p58:Phase> */
414 var_p58->attrs[COLOR_nit__phase__Phase___disabled].s = var66; /* _disabled on <var_p58:Phase> */
415 RET_LABEL67:(void)0;
416 }
417 }
418 BREAK_label64: (void)0;
419 {
420 ((void (*)(val* self))(var_55->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_55) /* next on <var_55:Iterator[Phase]>*/;
421 }
422 } else {
423 goto BREAK_label68;
424 }
425 }
426 BREAK_label68: (void)0;
427 {
428 { /* Inline abstract_collection#Iterator#finish (var_55) on <var_55:Iterator[Phase]> */
429 RET_LABEL69:(void)0;
430 }
431 }
432 var70 = !var_found;
433 if (var70){
434 var71 = NULL;
435 if (varonce72) {
436 var73 = varonce72;
437 } else {
438 var74 = "Error: no phase named `";
439 var75 = 23;
440 var76 = standard___standard__NativeString___to_s_with_length(var74, var75);
441 var73 = var76;
442 varonce72 = var73;
443 }
444 if (varonce77) {
445 var78 = varonce77;
446 } else {
447 var79 = "`. Use `list` to list all phases.";
448 var80 = 33;
449 var81 = standard___standard__NativeString___to_s_with_length(var79, var80);
450 var78 = var81;
451 varonce77 = var78;
452 }
453 var82 = NEW_standard__Array(&type_standard__Array__standard__Object);
454 { /* var82 = array_instance Array[Object] */
455 var83 = 3;
456 var84 = NEW_standard__NativeArray(var83, &type_standard__NativeArray__standard__Object);
457 ((struct instance_standard__NativeArray*)var84)->values[0] = (val*) var73;
458 ((struct instance_standard__NativeArray*)var84)->values[1] = (val*) var_v;
459 ((struct instance_standard__NativeArray*)var84)->values[2] = (val*) var78;
460 {
461 ((void (*)(val* self, val* p0, long p1))(var82->class->vft[COLOR_standard__array__Array__with_native]))(var82, var84, var83) /* with_native on <var82:Array[Object]>*/;
462 }
463 }
464 {
465 var85 = ((val* (*)(val* self))(var82->class->vft[COLOR_standard__string__Object__to_s]))(var82) /* to_s on <var82:Array[Object]>*/;
466 }
467 {
468 nit___nit__ToolContext___fatal_error(self, var71, var85); /* Direct call toolcontext#ToolContext#fatal_error on <self:ToolContext>*/
469 }
470 } else {
471 }
472 {
473 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_7); /* Direct call array#ArrayIterator#next on <var_7:ArrayIterator[String]>*/
474 }
475 } else {
476 goto BREAK_label86;
477 }
478 }
479 BREAK_label86: (void)0;
480 {
481 { /* Inline abstract_collection#Iterator#finish (var_7) on <var_7:ArrayIterator[String]> */
482 RET_LABEL87:(void)0;
483 }
484 }
485 {
486 { /* Inline phase#ToolContext#opt_sloppy (self) on <self:ToolContext> */
487 var90 = self->attrs[COLOR_nit__phase__ToolContext___opt_sloppy].val; /* _opt_sloppy on <self:ToolContext> */
488 if (unlikely(var90 == NULL)) {
489 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_sloppy");
490 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 33);
491 show_backtrace(1);
492 }
493 var88 = var90;
494 RET_LABEL89:(void)0;
495 }
496 }
497 {
498 { /* Inline opts#Option#value (var88) on <var88:OptionBool> */
499 var93 = var88->attrs[COLOR_opts__Option___value].val; /* _value on <var88:OptionBool> */
500 var91 = var93;
501 RET_LABEL92:(void)0;
502 }
503 }
504 var94 = ((struct instance_standard__Bool*)var91)->value; /* autounbox from nullable Object to Bool */;
505 if (var94){
506 var95 = 1;
507 {
508 { /* Inline phase#ToolContext#semantize_is_lazy= (self,var95) on <self:ToolContext> */
509 self->attrs[COLOR_nit__phase__ToolContext___semantize_is_lazy].s = var95; /* _semantize_is_lazy on <self:ToolContext> */
510 RET_LABEL96:(void)0;
511 }
512 }
513 } else {
514 }
515 RET_LABEL:;
516 }
517 /* method phase#ToolContext#phases_list for (self: ToolContext): Sequence[Phase] */
518 val* nit__phase___ToolContext___phases_list(val* self) {
519 val* var /* : Sequence[Phase] */;
520 short int var1 /* : Bool */;
521 val* var2 /* : Sequence[Phase] */;
522 val* var3 /* : Sequence[Phase] */;
523 val* var5 /* : POSet[Phase] */;
524 val* var7 /* : POSet[Phase] */;
525 val* var8 /* : Array[nullable Object] */;
526 val* var_phases /* var phases: Array[Phase] */;
527 val* var9 /* : POSet[Phase] */;
528 val* var11 /* : POSet[Phase] */;
529 var1 = self->attrs[COLOR_nit__phase__ToolContext___phases_list].val != NULL; /* _phases_list on <self:ToolContext> */
530 if(likely(var1)) {
531 var2 = self->attrs[COLOR_nit__phase__ToolContext___phases_list].val; /* _phases_list on <self:ToolContext> */
532 if (unlikely(var2 == NULL)) {
533 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phases_list");
534 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 72);
535 show_backtrace(1);
536 }
537 } else {
538 {
539 {
540 { /* Inline phase#ToolContext#phases (self) on <self:ToolContext> */
541 var7 = self->attrs[COLOR_nit__phase__ToolContext___phases].val; /* _phases on <self:ToolContext> */
542 if (unlikely(var7 == NULL)) {
543 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phases");
544 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 23);
545 show_backtrace(1);
546 }
547 var5 = var7;
548 RET_LABEL6:(void)0;
549 }
550 }
551 {
552 var8 = standard__array___Collection___to_a(var5);
553 }
554 var_phases = var8;
555 {
556 { /* Inline phase#ToolContext#phases (self) on <self:ToolContext> */
557 var11 = self->attrs[COLOR_nit__phase__ToolContext___phases].val; /* _phases on <self:ToolContext> */
558 if (unlikely(var11 == NULL)) {
559 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phases");
560 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 23);
561 show_backtrace(1);
562 }
563 var9 = var11;
564 RET_LABEL10:(void)0;
565 }
566 }
567 {
568 standard___standard__Comparator___sort(var9, var_phases); /* Direct call sorter#Comparator#sort on <var9:POSet[Phase]>*/
569 }
570 var3 = var_phases;
571 goto RET_LABEL4;
572 RET_LABEL4:(void)0;
573 }
574 self->attrs[COLOR_nit__phase__ToolContext___phases_list].val = var3; /* _phases_list on <self:ToolContext> */
575 var2 = var3;
576 }
577 var = var2;
578 RET_LABEL:;
579 return var;
580 }
581 /* method phase#ToolContext#semantize_is_lazy for (self: ToolContext): Bool */
582 short int nit__phase___ToolContext___semantize_is_lazy(val* self) {
583 short int var /* : Bool */;
584 short int var1 /* : Bool */;
585 var1 = self->attrs[COLOR_nit__phase__ToolContext___semantize_is_lazy].s; /* _semantize_is_lazy on <self:ToolContext> */
586 var = var1;
587 RET_LABEL:;
588 return var;
589 }
590 /* method phase#ToolContext#semantize_is_lazy= for (self: ToolContext, Bool) */
591 void nit__phase___ToolContext___semantize_is_lazy_61d(val* self, short int p0) {
592 self->attrs[COLOR_nit__phase__ToolContext___semantize_is_lazy].s = p0; /* _semantize_is_lazy on <self:ToolContext> */
593 RET_LABEL:;
594 }
595 /* method phase#ToolContext#phased_modules for (self: ToolContext): HashSet[AModule] */
596 val* nit__phase___ToolContext___phased_modules(val* self) {
597 val* var /* : HashSet[AModule] */;
598 val* var1 /* : HashSet[AModule] */;
599 var1 = self->attrs[COLOR_nit__phase__ToolContext___phased_modules].val; /* _phased_modules on <self:ToolContext> */
600 if (unlikely(var1 == NULL)) {
601 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phased_modules");
602 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 86);
603 show_backtrace(1);
604 }
605 var = var1;
606 RET_LABEL:;
607 return var;
608 }
609 /* method phase#ToolContext#run_phases for (self: ToolContext, Collection[AModule]) */
610 void nit__phase___ToolContext___run_phases(val* self, val* p0) {
611 val* var_nmodules /* var nmodules: Collection[AModule] */;
612 long var /* : Int */;
613 long var2 /* : Int for extern */;
614 long var_time0 /* var time0: Int */;
615 static val* varonce;
616 val* var3 /* : String */;
617 char* var4 /* : NativeString */;
618 long var5 /* : Int */;
619 val* var6 /* : FlatString */;
620 long var7 /* : Int */;
621 val* var8 /* : Sequence[Phase] */;
622 val* var_phases /* var phases: Sequence[Phase] */;
623 val* var_ /* var : Sequence[Phase] */;
624 val* var9 /* : Iterator[nullable Object] */;
625 val* var_10 /* var : IndexedIterator[Phase] */;
626 short int var11 /* : Bool */;
627 val* var12 /* : nullable Object */;
628 val* var_phase /* var phase: Phase */;
629 static val* varonce13;
630 val* var14 /* : String */;
631 char* var15 /* : NativeString */;
632 long var16 /* : Int */;
633 val* var17 /* : FlatString */;
634 val* var18 /* : Array[Object] */;
635 long var19 /* : Int */;
636 val* var20 /* : NativeArray[Object] */;
637 val* var21 /* : String */;
638 long var22 /* : Int */;
639 val* var_24 /* var : Collection[AModule] */;
640 val* var25 /* : Iterator[nullable Object] */;
641 val* var_26 /* var : Iterator[AModule] */;
642 short int var27 /* : Bool */;
643 val* var28 /* : nullable Object */;
644 val* var_nmodule /* var nmodule: AModule */;
645 val* var29 /* : HashSet[AModule] */;
646 val* var31 /* : HashSet[AModule] */;
647 short int var32 /* : Bool */;
648 val* var34 /* : HashSet[AModule] */;
649 val* var36 /* : HashSet[AModule] */;
650 static val* varonce37;
651 val* var38 /* : String */;
652 char* var39 /* : NativeString */;
653 long var40 /* : Int */;
654 val* var41 /* : FlatString */;
655 val* var42 /* : Location */;
656 val* var44 /* : Location */;
657 val* var45 /* : nullable SourceFile */;
658 val* var47 /* : nullable SourceFile */;
659 val* var48 /* : String */;
660 val* var50 /* : String */;
661 val* var51 /* : Array[Object] */;
662 long var52 /* : Int */;
663 val* var53 /* : NativeArray[Object] */;
664 val* var54 /* : String */;
665 long var55 /* : Int */;
666 val* var56 /* : AnnotationPhaseVisitor */;
667 val* var_vannot /* var vannot: AnnotationPhaseVisitor */;
668 val* var_58 /* var : Sequence[Phase] */;
669 val* var59 /* : Iterator[nullable Object] */;
670 val* var_60 /* var : IndexedIterator[Phase] */;
671 short int var61 /* : Bool */;
672 val* var62 /* : nullable Object */;
673 val* var_phase63 /* var phase: Phase */;
674 short int var64 /* : Bool */;
675 short int var66 /* : Bool */;
676 static val* varonce68;
677 val* var69 /* : String */;
678 char* var70 /* : NativeString */;
679 long var71 /* : Int */;
680 val* var72 /* : FlatString */;
681 val* var73 /* : Array[Object] */;
682 long var74 /* : Int */;
683 val* var75 /* : NativeArray[Object] */;
684 val* var76 /* : String */;
685 long var77 /* : Int */;
686 val* var78 /* : ToolContext */;
687 val* var80 /* : ToolContext */;
688 short int var81 /* : Bool */;
689 val* var_other /* var other: nullable Object */;
690 short int var83 /* : Bool */;
691 short int var85 /* : Bool */;
692 long var86 /* : Int */;
693 long var88 /* : Int */;
694 long var_errcount /* var errcount: Int */;
695 long var89 /* : Int */;
696 long var91 /* : Int */;
697 short int var92 /* : Bool */;
698 short int var94 /* : Bool */;
699 short int var95 /* : Bool */;
700 short int var96 /* : Bool */;
701 long var98 /* : Int */;
702 long var100 /* : Int */;
703 val* var101 /* : ANodes[AClassdef] */;
704 val* var103 /* : ANodes[AClassdef] */;
705 val* var_104 /* var : ANodes[AClassdef] */;
706 val* var105 /* : Iterator[ANode] */;
707 val* var_106 /* var : Iterator[AClassdef] */;
708 short int var107 /* : Bool */;
709 val* var108 /* : nullable Object */;
710 val* var_nclassdef /* var nclassdef: AClassdef */;
711 val* var109 /* : ToolContext */;
712 val* var111 /* : ToolContext */;
713 short int var112 /* : Bool */;
714 short int var114 /* : Bool */;
715 short int var116 /* : Bool */;
716 val* var_nclassdef118 /* var nclassdef: AClassdef */;
717 short int var119 /* : Bool */;
718 short int var121 /* : Bool */;
719 short int var122 /* : Bool */;
720 val* var123 /* : ANodes[APropdef] */;
721 val* var125 /* : ANodes[APropdef] */;
722 val* var_126 /* var : ANodes[APropdef] */;
723 val* var127 /* : Iterator[ANode] */;
724 val* var_128 /* var : Iterator[APropdef] */;
725 short int var129 /* : Bool */;
726 val* var130 /* : nullable Object */;
727 val* var_npropdef /* var npropdef: APropdef */;
728 val* var131 /* : ToolContext */;
729 val* var133 /* : ToolContext */;
730 short int var134 /* : Bool */;
731 short int var136 /* : Bool */;
732 short int var138 /* : Bool */;
733 long var143 /* : Int */;
734 long var145 /* : Int */;
735 short int var146 /* : Bool */;
736 short int var148 /* : Bool */;
737 short int var149 /* : Bool */;
738 short int var150 /* : Bool */;
739 val* var151 /* : Array[AAnnotation] */;
740 val* var153 /* : Array[AAnnotation] */;
741 val* var_154 /* var : Array[AAnnotation] */;
742 val* var155 /* : ArrayIterator[nullable Object] */;
743 val* var_156 /* var : ArrayIterator[AAnnotation] */;
744 short int var157 /* : Bool */;
745 val* var158 /* : nullable Object */;
746 val* var_na /* var na: AAnnotation */;
747 val* var159 /* : nullable ANode */;
748 val* var161 /* : nullable ANode */;
749 val* var162 /* : nullable ANode */;
750 val* var164 /* : nullable ANode */;
751 long var167 /* : Int */;
752 long var169 /* : Int */;
753 short int var170 /* : Bool */;
754 short int var172 /* : Bool */;
755 short int var173 /* : Bool */;
756 short int var174 /* : Bool */;
757 short int var176 /* : Bool */;
758 long var179 /* : Int */;
759 long var181 /* : Int for extern */;
760 long var_time1 /* var time1: Int */;
761 static val* varonce182;
762 val* var183 /* : String */;
763 char* var184 /* : NativeString */;
764 long var185 /* : Int */;
765 val* var186 /* : FlatString */;
766 long var187 /* : Int */;
767 short int var189 /* : Bool */;
768 int cltype;
769 int idtype;
770 const char* var_class_name;
771 long var190 /* : Int */;
772 static val* varonce191;
773 val* var192 /* : String */;
774 char* var193 /* : NativeString */;
775 long var194 /* : Int */;
776 val* var195 /* : FlatString */;
777 val* var196 /* : Array[Object] */;
778 long var197 /* : Int */;
779 val* var198 /* : NativeArray[Object] */;
780 val* var199 /* : Object */;
781 val* var200 /* : String */;
782 long var201 /* : Int */;
783 var_nmodules = p0;
784 {
785 { /* Inline time#Object#get_time (self) on <self:ToolContext> */
786 var2 = kernel_Any_Any_get_time_0(self);
787 var = var2;
788 goto RET_LABEL1;
789 RET_LABEL1:(void)0;
790 }
791 }
792 var_time0 = var;
793 if (varonce) {
794 var3 = varonce;
795 } else {
796 var4 = "*** SEMANTIC ANALYSIS ***";
797 var5 = 25;
798 var6 = standard___standard__NativeString___to_s_with_length(var4, var5);
799 var3 = var6;
800 varonce = var3;
801 }
802 var7 = 1;
803 {
804 nit___nit__ToolContext___info(self, var3, var7); /* Direct call toolcontext#ToolContext#info on <self:ToolContext>*/
805 }
806 {
807 var8 = nit__phase___ToolContext___phases_list(self);
808 }
809 var_phases = var8;
810 var_ = var_phases;
811 {
812 var9 = ((val* (*)(val* self))(var_->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_) /* iterator on <var_:Sequence[Phase]>*/;
813 }
814 var_10 = var9;
815 for(;;) {
816 {
817 var11 = ((short int (*)(val* self))(var_10->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_10) /* is_ok on <var_10:IndexedIterator[Phase]>*/;
818 }
819 if (var11){
820 {
821 var12 = ((val* (*)(val* self))(var_10->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_10) /* item on <var_10:IndexedIterator[Phase]>*/;
822 }
823 var_phase = var12;
824 if (varonce13) {
825 var14 = varonce13;
826 } else {
827 var15 = " registered phases: ";
828 var16 = 20;
829 var17 = standard___standard__NativeString___to_s_with_length(var15, var16);
830 var14 = var17;
831 varonce13 = var14;
832 }
833 var18 = NEW_standard__Array(&type_standard__Array__standard__Object);
834 { /* var18 = array_instance Array[Object] */
835 var19 = 2;
836 var20 = NEW_standard__NativeArray(var19, &type_standard__NativeArray__standard__Object);
837 ((struct instance_standard__NativeArray*)var20)->values[0] = (val*) var14;
838 ((struct instance_standard__NativeArray*)var20)->values[1] = (val*) var_phase;
839 {
840 ((void (*)(val* self, val* p0, long p1))(var18->class->vft[COLOR_standard__array__Array__with_native]))(var18, var20, var19) /* with_native on <var18:Array[Object]>*/;
841 }
842 }
843 {
844 var21 = ((val* (*)(val* self))(var18->class->vft[COLOR_standard__string__Object__to_s]))(var18) /* to_s on <var18:Array[Object]>*/;
845 }
846 var22 = 2;
847 {
848 nit___nit__ToolContext___info(self, var21, var22); /* Direct call toolcontext#ToolContext#info on <self:ToolContext>*/
849 }
850 {
851 ((void (*)(val* self))(var_10->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_10) /* next on <var_10:IndexedIterator[Phase]>*/;
852 }
853 } else {
854 goto BREAK_label;
855 }
856 }
857 BREAK_label: (void)0;
858 {
859 { /* Inline abstract_collection#Iterator#finish (var_10) on <var_10:IndexedIterator[Phase]> */
860 RET_LABEL23:(void)0;
861 }
862 }
863 var_24 = var_nmodules;
864 {
865 var25 = ((val* (*)(val* self))(var_24->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_24) /* iterator on <var_24:Collection[AModule]>*/;
866 }
867 var_26 = var25;
868 for(;;) {
869 {
870 var27 = ((short int (*)(val* self))(var_26->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_26) /* is_ok on <var_26:Iterator[AModule]>*/;
871 }
872 if (var27){
873 {
874 var28 = ((val* (*)(val* self))(var_26->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_26) /* item on <var_26:Iterator[AModule]>*/;
875 }
876 var_nmodule = var28;
877 {
878 { /* Inline phase#ToolContext#phased_modules (self) on <self:ToolContext> */
879 var31 = self->attrs[COLOR_nit__phase__ToolContext___phased_modules].val; /* _phased_modules on <self:ToolContext> */
880 if (unlikely(var31 == NULL)) {
881 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phased_modules");
882 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 86);
883 show_backtrace(1);
884 }
885 var29 = var31;
886 RET_LABEL30:(void)0;
887 }
888 }
889 {
890 var32 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var29, var_nmodule);
891 }
892 if (var32){
893 goto BREAK_label33;
894 } else {
895 }
896 {
897 { /* Inline phase#ToolContext#phased_modules (self) on <self:ToolContext> */
898 var36 = self->attrs[COLOR_nit__phase__ToolContext___phased_modules].val; /* _phased_modules on <self:ToolContext> */
899 if (unlikely(var36 == NULL)) {
900 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phased_modules");
901 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 86);
902 show_backtrace(1);
903 }
904 var34 = var36;
905 RET_LABEL35:(void)0;
906 }
907 }
908 {
909 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var34, var_nmodule); /* Direct call hash_collection#HashSet#add on <var34:HashSet[AModule]>*/
910 }
911 if (varonce37) {
912 var38 = varonce37;
913 } else {
914 var39 = "Semantic analysis module ";
915 var40 = 25;
916 var41 = standard___standard__NativeString___to_s_with_length(var39, var40);
917 var38 = var41;
918 varonce37 = var38;
919 }
920 {
921 { /* Inline parser_nodes#ANode#location (var_nmodule) on <var_nmodule:AModule> */
922 var44 = var_nmodule->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var_nmodule:AModule> */
923 if (unlikely(var44 == NULL)) {
924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
925 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
926 show_backtrace(1);
927 }
928 var42 = var44;
929 RET_LABEL43:(void)0;
930 }
931 }
932 {
933 { /* Inline location#Location#file (var42) on <var42:Location> */
934 var47 = var42->attrs[COLOR_nit__location__Location___file].val; /* _file on <var42:Location> */
935 var45 = var47;
936 RET_LABEL46:(void)0;
937 }
938 }
939 if (var45 == NULL) {
940 PRINT_ERROR("Runtime error: %s", "Receiver is null");
941 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 106);
942 show_backtrace(1);
943 } else {
944 { /* Inline location#SourceFile#filename (var45) on <var45:nullable SourceFile> */
945 if (unlikely(var45 == NULL)) {
946 PRINT_ERROR("Runtime error: %s", "Receiver is null");
947 PRINT_ERROR(" (%s:%d)\n", FILE_nit__location, 22);
948 show_backtrace(1);
949 }
950 var50 = var45->attrs[COLOR_nit__location__SourceFile___filename].val; /* _filename on <var45:nullable SourceFile> */
951 if (unlikely(var50 == NULL)) {
952 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
953 PRINT_ERROR(" (%s:%d)\n", FILE_nit__location, 22);
954 show_backtrace(1);
955 }
956 var48 = var50;
957 RET_LABEL49:(void)0;
958 }
959 }
960 var51 = NEW_standard__Array(&type_standard__Array__standard__Object);
961 { /* var51 = array_instance Array[Object] */
962 var52 = 2;
963 var53 = NEW_standard__NativeArray(var52, &type_standard__NativeArray__standard__Object);
964 ((struct instance_standard__NativeArray*)var53)->values[0] = (val*) var38;
965 ((struct instance_standard__NativeArray*)var53)->values[1] = (val*) var48;
966 {
967 ((void (*)(val* self, val* p0, long p1))(var51->class->vft[COLOR_standard__array__Array__with_native]))(var51, var53, var52) /* with_native on <var51:Array[Object]>*/;
968 }
969 }
970 {
971 var54 = ((val* (*)(val* self))(var51->class->vft[COLOR_standard__string__Object__to_s]))(var51) /* to_s on <var51:Array[Object]>*/;
972 }
973 var55 = 2;
974 {
975 nit___nit__ToolContext___info(self, var54, var55); /* Direct call toolcontext#ToolContext#info on <self:ToolContext>*/
976 }
977 var56 = NEW_nit__phase__AnnotationPhaseVisitor(&type_nit__phase__AnnotationPhaseVisitor);
978 {
979 { /* Inline kernel#Object#init (var56) on <var56:AnnotationPhaseVisitor> */
980 RET_LABEL57:(void)0;
981 }
982 }
983 var_vannot = var56;
984 {
985 nit___nit__Visitor___enter_visit(var_vannot, var_nmodule); /* Direct call parser_nodes#Visitor#enter_visit on <var_vannot:AnnotationPhaseVisitor>*/
986 }
987 var_58 = var_phases;
988 {
989 var59 = ((val* (*)(val* self))(var_58->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_58) /* iterator on <var_58:Sequence[Phase]>*/;
990 }
991 var_60 = var59;
992 for(;;) {
993 {
994 var61 = ((short int (*)(val* self))(var_60->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_60) /* is_ok on <var_60:IndexedIterator[Phase]>*/;
995 }
996 if (var61){
997 {
998 var62 = ((val* (*)(val* self))(var_60->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_60) /* item on <var_60:IndexedIterator[Phase]>*/;
999 }
1000 var_phase63 = var62;
1001 {
1002 { /* Inline phase#Phase#disabled (var_phase63) on <var_phase63:Phase> */
1003 var66 = var_phase63->attrs[COLOR_nit__phase__Phase___disabled].s; /* _disabled on <var_phase63:Phase> */
1004 var64 = var66;
1005 RET_LABEL65:(void)0;
1006 }
1007 }
1008 if (var64){
1009 goto BREAK_label67;
1010 } else {
1011 }
1012 if (varonce68) {
1013 var69 = varonce68;
1014 } else {
1015 var70 = " phase: ";
1016 var71 = 8;
1017 var72 = standard___standard__NativeString___to_s_with_length(var70, var71);
1018 var69 = var72;
1019 varonce68 = var69;
1020 }
1021 var73 = NEW_standard__Array(&type_standard__Array__standard__Object);
1022 { /* var73 = array_instance Array[Object] */
1023 var74 = 2;
1024 var75 = NEW_standard__NativeArray(var74, &type_standard__NativeArray__standard__Object);
1025 ((struct instance_standard__NativeArray*)var75)->values[0] = (val*) var69;
1026 ((struct instance_standard__NativeArray*)var75)->values[1] = (val*) var_phase63;
1027 {
1028 ((void (*)(val* self, val* p0, long p1))(var73->class->vft[COLOR_standard__array__Array__with_native]))(var73, var75, var74) /* with_native on <var73:Array[Object]>*/;
1029 }
1030 }
1031 {
1032 var76 = ((val* (*)(val* self))(var73->class->vft[COLOR_standard__string__Object__to_s]))(var73) /* to_s on <var73:Array[Object]>*/;
1033 }
1034 var77 = 3;
1035 {
1036 nit___nit__ToolContext___info(self, var76, var77); /* Direct call toolcontext#ToolContext#info on <self:ToolContext>*/
1037 }
1038 {
1039 { /* Inline phase#Phase#toolcontext (var_phase63) on <var_phase63:Phase> */
1040 var80 = var_phase63->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on <var_phase63:Phase> */
1041 if (unlikely(var80 == NULL)) {
1042 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1043 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 201);
1044 show_backtrace(1);
1045 }
1046 var78 = var80;
1047 RET_LABEL79:(void)0;
1048 }
1049 }
1050 {
1051 { /* Inline kernel#Object#== (var78,self) on <var78:ToolContext> */
1052 var_other = self;
1053 {
1054 { /* Inline kernel#Object#is_same_instance (var78,var_other) on <var78:ToolContext> */
1055 var85 = var78 == var_other;
1056 var83 = var85;
1057 goto RET_LABEL84;
1058 RET_LABEL84:(void)0;
1059 }
1060 }
1061 var81 = var83;
1062 goto RET_LABEL82;
1063 RET_LABEL82:(void)0;
1064 }
1065 }
1066 if (unlikely(!var81)) {
1067 PRINT_ERROR("Runtime error: %s", "Assert failed");
1068 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 114);
1069 show_backtrace(1);
1070 }
1071 {
1072 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1073 var88 = self->attrs[COLOR_nit__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1074 var86 = var88;
1075 RET_LABEL87:(void)0;
1076 }
1077 }
1078 var_errcount = var86;
1079 {
1080 ((void (*)(val* self, val* p0))(var_phase63->class->vft[COLOR_nit__phase__Phase__process_nmodule]))(var_phase63, var_nmodule) /* process_nmodule on <var_phase63:Phase>*/;
1081 }
1082 {
1083 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1084 var91 = self->attrs[COLOR_nit__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1085 var89 = var91;
1086 RET_LABEL90:(void)0;
1087 }
1088 }
1089 {
1090 { /* Inline kernel#Int#!= (var_errcount,var89) on <var_errcount:Int> */
1091 var94 = var_errcount == var89;
1092 var95 = !var94;
1093 var92 = var95;
1094 goto RET_LABEL93;
1095 RET_LABEL93:(void)0;
1096 }
1097 }
1098 if (var92){
1099 {
1100 var96 = nit___nit__ToolContext___check_errors(self);
1101 }
1102 goto BREAK_label97;
1103 } else {
1104 }
1105 {
1106 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1107 var100 = self->attrs[COLOR_nit__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1108 var98 = var100;
1109 RET_LABEL99:(void)0;
1110 }
1111 }
1112 var_errcount = var98;
1113 {
1114 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
1115 var103 = var_nmodule->attrs[COLOR_nit__parser_nodes__AModule___n_classdefs].val; /* _n_classdefs on <var_nmodule:AModule> */
1116 if (unlikely(var103 == NULL)) {
1117 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
1118 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 919);
1119 show_backtrace(1);
1120 }
1121 var101 = var103;
1122 RET_LABEL102:(void)0;
1123 }
1124 }
1125 var_104 = var101;
1126 {
1127 var105 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_104);
1128 }
1129 var_106 = var105;
1130 for(;;) {
1131 {
1132 var107 = ((short int (*)(val* self))(var_106->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_106) /* is_ok on <var_106:Iterator[AClassdef]>*/;
1133 }
1134 if (var107){
1135 {
1136 var108 = ((val* (*)(val* self))(var_106->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_106) /* item on <var_106:Iterator[AClassdef]>*/;
1137 }
1138 var_nclassdef = var108;
1139 {
1140 { /* Inline phase#Phase#toolcontext (var_phase63) on <var_phase63:Phase> */
1141 var111 = var_phase63->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on <var_phase63:Phase> */
1142 if (unlikely(var111 == NULL)) {
1143 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1144 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 201);
1145 show_backtrace(1);
1146 }
1147 var109 = var111;
1148 RET_LABEL110:(void)0;
1149 }
1150 }
1151 {
1152 { /* Inline kernel#Object#== (var109,self) on <var109:ToolContext> */
1153 var_other = self;
1154 {
1155 { /* Inline kernel#Object#is_same_instance (var109,var_other) on <var109:ToolContext> */
1156 var116 = var109 == var_other;
1157 var114 = var116;
1158 goto RET_LABEL115;
1159 RET_LABEL115:(void)0;
1160 }
1161 }
1162 var112 = var114;
1163 goto RET_LABEL113;
1164 RET_LABEL113:(void)0;
1165 }
1166 }
1167 if (unlikely(!var112)) {
1168 PRINT_ERROR("Runtime error: %s", "Assert failed");
1169 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 123);
1170 show_backtrace(1);
1171 }
1172 {
1173 { /* Inline phase#Phase#process_nclassdef (var_phase63,var_nclassdef) on <var_phase63:Phase> */
1174 var_nclassdef118 = var_nclassdef;
1175 RET_LABEL117:(void)0;
1176 }
1177 }
1178 {
1179 { /* Inline phase#ToolContext#semantize_is_lazy (self) on <self:ToolContext> */
1180 var121 = self->attrs[COLOR_nit__phase__ToolContext___semantize_is_lazy].s; /* _semantize_is_lazy on <self:ToolContext> */
1181 var119 = var121;
1182 RET_LABEL120:(void)0;
1183 }
1184 }
1185 var122 = !var119;
1186 if (var122){
1187 {
1188 { /* Inline parser_nodes#AClassdef#n_propdefs (var_nclassdef) on <var_nclassdef:AClassdef> */
1189 var125 = var_nclassdef->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <var_nclassdef:AClassdef> */
1190 if (unlikely(var125 == NULL)) {
1191 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
1192 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1012);
1193 show_backtrace(1);
1194 }
1195 var123 = var125;
1196 RET_LABEL124:(void)0;
1197 }
1198 }
1199 var_126 = var123;
1200 {
1201 var127 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_126);
1202 }
1203 var_128 = var127;
1204 for(;;) {
1205 {
1206 var129 = ((short int (*)(val* self))(var_128->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_128) /* is_ok on <var_128:Iterator[APropdef]>*/;
1207 }
1208 if (var129){
1209 {
1210 var130 = ((val* (*)(val* self))(var_128->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_128) /* item on <var_128:Iterator[APropdef]>*/;
1211 }
1212 var_npropdef = var130;
1213 {
1214 { /* Inline phase#Phase#toolcontext (var_phase63) on <var_phase63:Phase> */
1215 var133 = var_phase63->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on <var_phase63:Phase> */
1216 if (unlikely(var133 == NULL)) {
1217 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1218 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 201);
1219 show_backtrace(1);
1220 }
1221 var131 = var133;
1222 RET_LABEL132:(void)0;
1223 }
1224 }
1225 {
1226 { /* Inline kernel#Object#== (var131,self) on <var131:ToolContext> */
1227 var_other = self;
1228 {
1229 { /* Inline kernel#Object#is_same_instance (var131,var_other) on <var131:ToolContext> */
1230 var138 = var131 == var_other;
1231 var136 = var138;
1232 goto RET_LABEL137;
1233 RET_LABEL137:(void)0;
1234 }
1235 }
1236 var134 = var136;
1237 goto RET_LABEL135;
1238 RET_LABEL135:(void)0;
1239 }
1240 }
1241 if (unlikely(!var134)) {
1242 PRINT_ERROR("Runtime error: %s", "Assert failed");
1243 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 126);
1244 show_backtrace(1);
1245 }
1246 {
1247 nit__phase___ToolContext___phase_process_npropdef(self, var_phase63, var_npropdef); /* Direct call phase#ToolContext#phase_process_npropdef on <self:ToolContext>*/
1248 }
1249 {
1250 ((void (*)(val* self))(var_128->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_128) /* next on <var_128:Iterator[APropdef]>*/;
1251 }
1252 } else {
1253 goto BREAK_label139;
1254 }
1255 }
1256 BREAK_label139: (void)0;
1257 {
1258 { /* Inline abstract_collection#Iterator#finish (var_128) on <var_128:Iterator[APropdef]> */
1259 RET_LABEL140:(void)0;
1260 }
1261 }
1262 } else {
1263 }
1264 {
1265 ((void (*)(val* self))(var_106->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_106) /* next on <var_106:Iterator[AClassdef]>*/;
1266 }
1267 } else {
1268 goto BREAK_label141;
1269 }
1270 }
1271 BREAK_label141: (void)0;
1272 {
1273 { /* Inline abstract_collection#Iterator#finish (var_106) on <var_106:Iterator[AClassdef]> */
1274 RET_LABEL142:(void)0;
1275 }
1276 }
1277 {
1278 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1279 var145 = self->attrs[COLOR_nit__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1280 var143 = var145;
1281 RET_LABEL144:(void)0;
1282 }
1283 }
1284 {
1285 { /* Inline kernel#Int#!= (var_errcount,var143) on <var_errcount:Int> */
1286 var148 = var_errcount == var143;
1287 var149 = !var148;
1288 var146 = var149;
1289 goto RET_LABEL147;
1290 RET_LABEL147:(void)0;
1291 }
1292 }
1293 if (var146){
1294 {
1295 var150 = nit___nit__ToolContext___check_errors(self);
1296 }
1297 goto BREAK_label97;
1298 } else {
1299 }
1300 {
1301 { /* Inline phase#AnnotationPhaseVisitor#annotations (var_vannot) on <var_vannot:AnnotationPhaseVisitor> */
1302 var153 = var_vannot->attrs[COLOR_nit__phase__AnnotationPhaseVisitor___annotations].val; /* _annotations on <var_vannot:AnnotationPhaseVisitor> */
1303 if (unlikely(var153 == NULL)) {
1304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _annotations");
1305 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 188);
1306 show_backtrace(1);
1307 }
1308 var151 = var153;
1309 RET_LABEL152:(void)0;
1310 }
1311 }
1312 var_154 = var151;
1313 {
1314 var155 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_154);
1315 }
1316 var_156 = var155;
1317 for(;;) {
1318 {
1319 var157 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_156);
1320 }
1321 if (var157){
1322 {
1323 var158 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_156);
1324 }
1325 var_na = var158;
1326 {
1327 { /* Inline parser_nodes#ANode#parent (var_na) on <var_na:AAnnotation> */
1328 var161 = var_na->attrs[COLOR_nit__parser_nodes__ANode___parent].val; /* _parent on <var_na:AAnnotation> */
1329 var159 = var161;
1330 RET_LABEL160:(void)0;
1331 }
1332 }
1333 if (var159 == NULL) {
1334 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1335 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 135);
1336 show_backtrace(1);
1337 } else {
1338 { /* Inline parser_nodes#ANode#parent (var159) on <var159:nullable ANode> */
1339 if (unlikely(var159 == NULL)) {
1340 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1341 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
1342 show_backtrace(1);
1343 }
1344 var164 = var159->attrs[COLOR_nit__parser_nodes__ANode___parent].val; /* _parent on <var159:nullable ANode> */
1345 var162 = var164;
1346 RET_LABEL163:(void)0;
1347 }
1348 }
1349 if (unlikely(var162 == NULL)) {
1350 PRINT_ERROR("Runtime error: %s", "Cast failed");
1351 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 135);
1352 show_backtrace(1);
1353 }
1354 {
1355 ((void (*)(val* self, val* p0, val* p1))(var_phase63->class->vft[COLOR_nit__phase__Phase__process_annotated_node]))(var_phase63, var162, var_na) /* process_annotated_node on <var_phase63:Phase>*/;
1356 }
1357 {
1358 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_156); /* Direct call array#ArrayIterator#next on <var_156:ArrayIterator[AAnnotation]>*/
1359 }
1360 } else {
1361 goto BREAK_label165;
1362 }
1363 }
1364 BREAK_label165: (void)0;
1365 {
1366 { /* Inline abstract_collection#Iterator#finish (var_156) on <var_156:ArrayIterator[AAnnotation]> */
1367 RET_LABEL166:(void)0;
1368 }
1369 }
1370 {
1371 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1372 var169 = self->attrs[COLOR_nit__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1373 var167 = var169;
1374 RET_LABEL168:(void)0;
1375 }
1376 }
1377 {
1378 { /* Inline kernel#Int#!= (var_errcount,var167) on <var_errcount:Int> */
1379 var172 = var_errcount == var167;
1380 var173 = !var172;
1381 var170 = var173;
1382 goto RET_LABEL171;
1383 RET_LABEL171:(void)0;
1384 }
1385 }
1386 if (var170){
1387 {
1388 var174 = nit___nit__ToolContext___check_errors(self);
1389 }
1390 goto BREAK_label97;
1391 } else {
1392 }
1393 BREAK_label67: (void)0;
1394 {
1395 ((void (*)(val* self))(var_60->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_60) /* next on <var_60:IndexedIterator[Phase]>*/;
1396 }
1397 } else {
1398 goto BREAK_label97;
1399 }
1400 }
1401 BREAK_label97: (void)0;
1402 {
1403 { /* Inline abstract_collection#Iterator#finish (var_60) on <var_60:IndexedIterator[Phase]> */
1404 RET_LABEL175:(void)0;
1405 }
1406 }
1407 {
1408 var176 = nit___nit__ToolContext___check_errors(self);
1409 }
1410 BREAK_label33: (void)0;
1411 {
1412 ((void (*)(val* self))(var_26->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_26) /* next on <var_26:Iterator[AModule]>*/;
1413 }
1414 } else {
1415 goto BREAK_label177;
1416 }
1417 }
1418 BREAK_label177: (void)0;
1419 {
1420 { /* Inline abstract_collection#Iterator#finish (var_26) on <var_26:Iterator[AModule]> */
1421 RET_LABEL178:(void)0;
1422 }
1423 }
1424 {
1425 { /* Inline time#Object#get_time (self) on <self:ToolContext> */
1426 var181 = kernel_Any_Any_get_time_0(self);
1427 var179 = var181;
1428 goto RET_LABEL180;
1429 RET_LABEL180:(void)0;
1430 }
1431 }
1432 var_time1 = var179;
1433 if (varonce182) {
1434 var183 = varonce182;
1435 } else {
1436 var184 = "*** END SEMANTIC ANALYSIS: ";
1437 var185 = 27;
1438 var186 = standard___standard__NativeString___to_s_with_length(var184, var185);
1439 var183 = var186;
1440 varonce182 = var183;
1441 }
1442 {
1443 { /* Inline kernel#Int#- (var_time1,var_time0) on <var_time1:Int> */
1444 /* Covariant cast for argument 0 (i) <var_time0:Int> isa OTHER */
1445 /* <var_time0:Int> isa OTHER */
1446 var189 = 1; /* easy <var_time0:Int> isa OTHER*/
1447 if (unlikely(!var189)) {
1448 var_class_name = type_standard__Int.name;
1449 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1450 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
1451 show_backtrace(1);
1452 }
1453 var190 = var_time1 - var_time0;
1454 var187 = var190;
1455 goto RET_LABEL188;
1456 RET_LABEL188:(void)0;
1457 }
1458 }
1459 if (varonce191) {
1460 var192 = varonce191;
1461 } else {
1462 var193 = " ***";
1463 var194 = 4;
1464 var195 = standard___standard__NativeString___to_s_with_length(var193, var194);
1465 var192 = var195;
1466 varonce191 = var192;
1467 }
1468 var196 = NEW_standard__Array(&type_standard__Array__standard__Object);
1469 { /* var196 = array_instance Array[Object] */
1470 var197 = 3;
1471 var198 = NEW_standard__NativeArray(var197, &type_standard__NativeArray__standard__Object);
1472 ((struct instance_standard__NativeArray*)var198)->values[0] = (val*) var183;
1473 var199 = BOX_standard__Int(var187); /* autobox from Int to Object */
1474 ((struct instance_standard__NativeArray*)var198)->values[1] = (val*) var199;
1475 ((struct instance_standard__NativeArray*)var198)->values[2] = (val*) var192;
1476 {
1477 ((void (*)(val* self, val* p0, long p1))(var196->class->vft[COLOR_standard__array__Array__with_native]))(var196, var198, var197) /* with_native on <var196:Array[Object]>*/;
1478 }
1479 }
1480 {
1481 var200 = ((val* (*)(val* self))(var196->class->vft[COLOR_standard__string__Object__to_s]))(var196) /* to_s on <var196:Array[Object]>*/;
1482 }
1483 var201 = 2;
1484 {
1485 nit___nit__ToolContext___info(self, var200, var201); /* Direct call toolcontext#ToolContext#info on <self:ToolContext>*/
1486 }
1487 {
1488 nit___nit__ToolContext___errors_info(self); /* Direct call toolcontext#ToolContext#errors_info on <self:ToolContext>*/
1489 }
1490 RET_LABEL:;
1491 }
1492 /* method phase#ToolContext#phase_process_npropdef for (self: ToolContext, Phase, APropdef) */
1493 void nit__phase___ToolContext___phase_process_npropdef(val* self, val* p0, val* p1) {
1494 val* var_phase /* var phase: Phase */;
1495 val* var_npropdef /* var npropdef: APropdef */;
1496 var_phase = p0;
1497 var_npropdef = p1;
1498 {
1499 ((void (*)(val* self, val* p0))(var_phase->class->vft[COLOR_nit__phase__Phase__process_npropdef]))(var_phase, var_npropdef) /* process_npropdef on <var_phase:Phase>*/;
1500 }
1501 RET_LABEL:;
1502 }
1503 /* method phase#ToolContext#run_phases_on_npropdef for (self: ToolContext, APropdef) */
1504 void nit__phase___ToolContext___run_phases_on_npropdef(val* self, val* p0) {
1505 val* var_npropdef /* var npropdef: APropdef */;
1506 short int var /* : Bool */;
1507 short int var2 /* : Bool */;
1508 short int var3 /* : Bool */;
1509 short int var4 /* : Bool */;
1510 short int var6 /* : Bool */;
1511 short int var7 /* : Bool */;
1512 val* var9 /* : Sequence[Phase] */;
1513 val* var_phases /* var phases: Sequence[Phase] */;
1514 val* var_ /* var : Sequence[Phase] */;
1515 val* var10 /* : Iterator[nullable Object] */;
1516 val* var_11 /* var : IndexedIterator[Phase] */;
1517 short int var12 /* : Bool */;
1518 val* var13 /* : nullable Object */;
1519 val* var_phase /* var phase: Phase */;
1520 short int var14 /* : Bool */;
1521 short int var16 /* : Bool */;
1522 val* var17 /* : ToolContext */;
1523 val* var19 /* : ToolContext */;
1524 short int var20 /* : Bool */;
1525 val* var_other /* var other: nullable Object */;
1526 short int var22 /* : Bool */;
1527 short int var24 /* : Bool */;
1528 short int var25 /* : Bool */;
1529 var_npropdef = p0;
1530 {
1531 { /* Inline phase#ToolContext#semantize_is_lazy (self) on <self:ToolContext> */
1532 var2 = self->attrs[COLOR_nit__phase__ToolContext___semantize_is_lazy].s; /* _semantize_is_lazy on <self:ToolContext> */
1533 var = var2;
1534 RET_LABEL1:(void)0;
1535 }
1536 }
1537 var3 = !var;
1538 if (var3){
1539 goto RET_LABEL;
1540 } else {
1541 }
1542 {
1543 { /* Inline phase#APropdef#is_phased (var_npropdef) on <var_npropdef:APropdef> */
1544 var6 = var_npropdef->attrs[COLOR_nit__phase__APropdef___is_phased].s; /* _is_phased on <var_npropdef:APropdef> */
1545 var4 = var6;
1546 RET_LABEL5:(void)0;
1547 }
1548 }
1549 if (var4){
1550 goto RET_LABEL;
1551 } else {
1552 }
1553 var7 = 1;
1554 {
1555 { /* Inline phase#APropdef#is_phased= (var_npropdef,var7) on <var_npropdef:APropdef> */
1556 var_npropdef->attrs[COLOR_nit__phase__APropdef___is_phased].s = var7; /* _is_phased on <var_npropdef:APropdef> */
1557 RET_LABEL8:(void)0;
1558 }
1559 }
1560 {
1561 var9 = nit__phase___ToolContext___phases_list(self);
1562 }
1563 var_phases = var9;
1564 var_ = var_phases;
1565 {
1566 var10 = ((val* (*)(val* self))(var_->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_) /* iterator on <var_:Sequence[Phase]>*/;
1567 }
1568 var_11 = var10;
1569 for(;;) {
1570 {
1571 var12 = ((short int (*)(val* self))(var_11->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_11) /* is_ok on <var_11:IndexedIterator[Phase]>*/;
1572 }
1573 if (var12){
1574 {
1575 var13 = ((val* (*)(val* self))(var_11->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_11) /* item on <var_11:IndexedIterator[Phase]>*/;
1576 }
1577 var_phase = var13;
1578 {
1579 { /* Inline phase#Phase#disabled (var_phase) on <var_phase:Phase> */
1580 var16 = var_phase->attrs[COLOR_nit__phase__Phase___disabled].s; /* _disabled on <var_phase:Phase> */
1581 var14 = var16;
1582 RET_LABEL15:(void)0;
1583 }
1584 }
1585 if (var14){
1586 goto BREAK_label;
1587 } else {
1588 }
1589 {
1590 { /* Inline phase#Phase#toolcontext (var_phase) on <var_phase:Phase> */
1591 var19 = var_phase->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on <var_phase:Phase> */
1592 if (unlikely(var19 == NULL)) {
1593 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1594 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 201);
1595 show_backtrace(1);
1596 }
1597 var17 = var19;
1598 RET_LABEL18:(void)0;
1599 }
1600 }
1601 {
1602 { /* Inline kernel#Object#== (var17,self) on <var17:ToolContext> */
1603 var_other = self;
1604 {
1605 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:ToolContext> */
1606 var24 = var17 == var_other;
1607 var22 = var24;
1608 goto RET_LABEL23;
1609 RET_LABEL23:(void)0;
1610 }
1611 }
1612 var20 = var22;
1613 goto RET_LABEL21;
1614 RET_LABEL21:(void)0;
1615 }
1616 }
1617 if (unlikely(!var20)) {
1618 PRINT_ERROR("Runtime error: %s", "Assert failed");
1619 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 171);
1620 show_backtrace(1);
1621 }
1622 {
1623 nit__phase___ToolContext___phase_process_npropdef(self, var_phase, var_npropdef); /* Direct call phase#ToolContext#phase_process_npropdef on <self:ToolContext>*/
1624 }
1625 {
1626 var25 = nit___nit__ToolContext___check_errors(self);
1627 }
1628 BREAK_label: (void)0;
1629 {
1630 ((void (*)(val* self))(var_11->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_11) /* next on <var_11:IndexedIterator[Phase]>*/;
1631 }
1632 } else {
1633 goto BREAK_label26;
1634 }
1635 }
1636 BREAK_label26: (void)0;
1637 {
1638 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:IndexedIterator[Phase]> */
1639 RET_LABEL27:(void)0;
1640 }
1641 }
1642 RET_LABEL:;
1643 }
1644 /* method phase#APropdef#is_phased for (self: APropdef): Bool */
1645 short int nit__phase___APropdef___is_phased(val* self) {
1646 short int var /* : Bool */;
1647 short int var1 /* : Bool */;
1648 var1 = self->attrs[COLOR_nit__phase__APropdef___is_phased].s; /* _is_phased on <self:APropdef> */
1649 var = var1;
1650 RET_LABEL:;
1651 return var;
1652 }
1653 /* method phase#APropdef#is_phased= for (self: APropdef, Bool) */
1654 void nit__phase___APropdef___is_phased_61d(val* self, short int p0) {
1655 self->attrs[COLOR_nit__phase__APropdef___is_phased].s = p0; /* _is_phased on <self:APropdef> */
1656 RET_LABEL:;
1657 }
1658 /* method phase#AnnotationPhaseVisitor#annotations for (self: AnnotationPhaseVisitor): Array[AAnnotation] */
1659 val* nit__phase___nit__phase__AnnotationPhaseVisitor___annotations(val* self) {
1660 val* var /* : Array[AAnnotation] */;
1661 val* var1 /* : Array[AAnnotation] */;
1662 var1 = self->attrs[COLOR_nit__phase__AnnotationPhaseVisitor___annotations].val; /* _annotations on <self:AnnotationPhaseVisitor> */
1663 if (unlikely(var1 == NULL)) {
1664 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _annotations");
1665 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 188);
1666 show_backtrace(1);
1667 }
1668 var = var1;
1669 RET_LABEL:;
1670 return var;
1671 }
1672 /* method phase#AnnotationPhaseVisitor#visit for (self: AnnotationPhaseVisitor, ANode) */
1673 void nit__phase___nit__phase__AnnotationPhaseVisitor___nit__parser_nodes__Visitor__visit(val* self, val* p0) {
1674 val* var_n /* var n: ANode */;
1675 short int var /* : Bool */;
1676 int cltype;
1677 int idtype;
1678 val* var1 /* : Array[AAnnotation] */;
1679 val* var3 /* : Array[AAnnotation] */;
1680 var_n = p0;
1681 {
1682 ((void (*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on <var_n:ANode>*/;
1683 }
1684 /* <var_n:ANode> isa AAnnotation */
1685 cltype = type_nit__AAnnotation.color;
1686 idtype = type_nit__AAnnotation.id;
1687 if(cltype >= var_n->type->table_size) {
1688 var = 0;
1689 } else {
1690 var = var_n->type->type_table[cltype] == idtype;
1691 }
1692 if (var){
1693 {
1694 { /* Inline phase#AnnotationPhaseVisitor#annotations (self) on <self:AnnotationPhaseVisitor> */
1695 var3 = self->attrs[COLOR_nit__phase__AnnotationPhaseVisitor___annotations].val; /* _annotations on <self:AnnotationPhaseVisitor> */
1696 if (unlikely(var3 == NULL)) {
1697 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _annotations");
1698 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 188);
1699 show_backtrace(1);
1700 }
1701 var1 = var3;
1702 RET_LABEL2:(void)0;
1703 }
1704 }
1705 {
1706 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var1, var_n); /* Direct call array#Array#add on <var1:Array[AAnnotation]>*/
1707 }
1708 } else {
1709 }
1710 RET_LABEL:;
1711 }
1712 /* method phase#Phase#toolcontext for (self: Phase): ToolContext */
1713 val* nit___nit__Phase___toolcontext(val* self) {
1714 val* var /* : ToolContext */;
1715 val* var1 /* : ToolContext */;
1716 var1 = self->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on <self:Phase> */
1717 if (unlikely(var1 == NULL)) {
1718 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1719 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 201);
1720 show_backtrace(1);
1721 }
1722 var = var1;
1723 RET_LABEL:;
1724 return var;
1725 }
1726 /* method phase#Phase#toolcontext= for (self: Phase, ToolContext) */
1727 void nit___nit__Phase___toolcontext_61d(val* self, val* p0) {
1728 self->attrs[COLOR_nit__phase__Phase___toolcontext].val = p0; /* _toolcontext on <self:Phase> */
1729 RET_LABEL:;
1730 }
1731 /* method phase#Phase#in_hierarchy for (self: Phase): POSetElement[Phase] */
1732 val* nit___nit__Phase___in_hierarchy(val* self) {
1733 val* var /* : POSetElement[Phase] */;
1734 val* var1 /* : POSetElement[Phase] */;
1735 var1 = self->attrs[COLOR_nit__phase__Phase___in_hierarchy].val; /* _in_hierarchy on <self:Phase> */
1736 if (unlikely(var1 == NULL)) {
1737 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_hierarchy");
1738 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 204);
1739 show_backtrace(1);
1740 }
1741 var = var1;
1742 RET_LABEL:;
1743 return var;
1744 }
1745 /* method phase#Phase#in_hierarchy= for (self: Phase, POSetElement[Phase]) */
1746 void nit___nit__Phase___in_hierarchy_61d(val* self, val* p0) {
1747 self->attrs[COLOR_nit__phase__Phase___in_hierarchy].val = p0; /* _in_hierarchy on <self:Phase> */
1748 RET_LABEL:;
1749 }
1750 /* method phase#Phase#depends for (self: Phase): nullable Collection[Phase] */
1751 val* nit___nit__Phase___depends(val* self) {
1752 val* var /* : nullable Collection[Phase] */;
1753 val* var1 /* : nullable Collection[Phase] */;
1754 var1 = self->attrs[COLOR_nit__phase__Phase___depends].val; /* _depends on <self:Phase> */
1755 var = var1;
1756 RET_LABEL:;
1757 return var;
1758 }
1759 /* method phase#Phase#depends= for (self: Phase, nullable Collection[Phase]) */
1760 void nit___nit__Phase___depends_61d(val* self, val* p0) {
1761 self->attrs[COLOR_nit__phase__Phase___depends].val = p0; /* _depends on <self:Phase> */
1762 RET_LABEL:;
1763 }
1764 /* method phase#Phase#init for (self: Phase) */
1765 void nit___nit__Phase___standard__kernel__Object__init(val* self) {
1766 val* var /* : ToolContext */;
1767 val* var2 /* : ToolContext */;
1768 val* var3 /* : POSet[Phase] */;
1769 val* var5 /* : POSet[Phase] */;
1770 val* var6 /* : POSetElement[nullable Object] */;
1771 val* var8 /* : nullable Collection[Phase] */;
1772 val* var10 /* : nullable Collection[Phase] */;
1773 val* var_depends /* var depends: nullable Collection[Phase] */;
1774 val* var11 /* : null */;
1775 short int var12 /* : Bool */;
1776 short int var13 /* : Bool */;
1777 val* var_other /* var other: nullable Object */;
1778 short int var15 /* : Bool */;
1779 short int var16 /* : Bool */;
1780 val* var_ /* var : Collection[Phase] */;
1781 val* var17 /* : Iterator[nullable Object] */;
1782 val* var_18 /* var : Iterator[Phase] */;
1783 short int var19 /* : Bool */;
1784 val* var20 /* : nullable Object */;
1785 val* var_d /* var d: Phase */;
1786 val* var21 /* : ToolContext */;
1787 val* var23 /* : ToolContext */;
1788 val* var24 /* : POSet[Phase] */;
1789 val* var26 /* : POSet[Phase] */;
1790 {
1791 { /* Inline phase#Phase#toolcontext (self) on <self:Phase> */
1792 var2 = self->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on <self:Phase> */
1793 if (unlikely(var2 == NULL)) {
1794 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1795 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 201);
1796 show_backtrace(1);
1797 }
1798 var = var2;
1799 RET_LABEL1:(void)0;
1800 }
1801 }
1802 {
1803 { /* Inline phase#ToolContext#phases (var) on <var:ToolContext> */
1804 var5 = var->attrs[COLOR_nit__phase__ToolContext___phases].val; /* _phases on <var:ToolContext> */
1805 if (unlikely(var5 == NULL)) {
1806 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phases");
1807 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 23);
1808 show_backtrace(1);
1809 }
1810 var3 = var5;
1811 RET_LABEL4:(void)0;
1812 }
1813 }
1814 {
1815 var6 = poset___poset__POSet___add_node(var3, self);
1816 }
1817 {
1818 { /* Inline phase#Phase#in_hierarchy= (self,var6) on <self:Phase> */
1819 self->attrs[COLOR_nit__phase__Phase___in_hierarchy].val = var6; /* _in_hierarchy on <self:Phase> */
1820 RET_LABEL7:(void)0;
1821 }
1822 }
1823 {
1824 { /* Inline phase#Phase#depends (self) on <self:Phase> */
1825 var10 = self->attrs[COLOR_nit__phase__Phase___depends].val; /* _depends on <self:Phase> */
1826 var8 = var10;
1827 RET_LABEL9:(void)0;
1828 }
1829 }
1830 var_depends = var8;
1831 var11 = NULL;
1832 if (var_depends == NULL) {
1833 var12 = 0; /* is null */
1834 } else {
1835 var12 = 1; /* arg is null and recv is not */
1836 }
1837 if (0) {
1838 { /* Inline kernel#Object#!= (var_depends,var11) on <var_depends:nullable Collection[Phase]> */
1839 var_other = var11;
1840 {
1841 var15 = ((short int (*)(val* self, val* p0))(var_depends->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_depends, var_other) /* == on <var_depends:nullable Collection[Phase](Collection[Phase])>*/;
1842 }
1843 var16 = !var15;
1844 var13 = var16;
1845 goto RET_LABEL14;
1846 RET_LABEL14:(void)0;
1847 }
1848 var12 = var13;
1849 }
1850 if (var12){
1851 var_ = var_depends;
1852 {
1853 var17 = ((val* (*)(val* self))(var_->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_) /* iterator on <var_:Collection[Phase]>*/;
1854 }
1855 var_18 = var17;
1856 for(;;) {
1857 {
1858 var19 = ((short int (*)(val* self))(var_18->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_18) /* is_ok on <var_18:Iterator[Phase]>*/;
1859 }
1860 if (var19){
1861 {
1862 var20 = ((val* (*)(val* self))(var_18->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_18) /* item on <var_18:Iterator[Phase]>*/;
1863 }
1864 var_d = var20;
1865 {
1866 { /* Inline phase#Phase#toolcontext (self) on <self:Phase> */
1867 var23 = self->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on <self:Phase> */
1868 if (unlikely(var23 == NULL)) {
1869 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1870 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 201);
1871 show_backtrace(1);
1872 }
1873 var21 = var23;
1874 RET_LABEL22:(void)0;
1875 }
1876 }
1877 {
1878 { /* Inline phase#ToolContext#phases (var21) on <var21:ToolContext> */
1879 var26 = var21->attrs[COLOR_nit__phase__ToolContext___phases].val; /* _phases on <var21:ToolContext> */
1880 if (unlikely(var26 == NULL)) {
1881 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phases");
1882 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 23);
1883 show_backtrace(1);
1884 }
1885 var24 = var26;
1886 RET_LABEL25:(void)0;
1887 }
1888 }
1889 {
1890 poset___poset__POSet___add_edge(var24, self, var_d); /* Direct call poset#POSet#add_edge on <var24:POSet[Phase]>*/
1891 }
1892 {
1893 ((void (*)(val* self))(var_18->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_18) /* next on <var_18:Iterator[Phase]>*/;
1894 }
1895 } else {
1896 goto BREAK_label;
1897 }
1898 }
1899 BREAK_label: (void)0;
1900 {
1901 { /* Inline abstract_collection#Iterator#finish (var_18) on <var_18:Iterator[Phase]> */
1902 RET_LABEL27:(void)0;
1903 }
1904 }
1905 } else {
1906 }
1907 RET_LABEL:;
1908 }
1909 /* method phase#Phase#to_s for (self: Phase): String */
1910 val* nit___nit__Phase___standard__string__Object__to_s(val* self) {
1911 val* var /* : String */;
1912 val* var1 /* : String */;
1913 static val* varonce;
1914 val* var2 /* : String */;
1915 char* var3 /* : NativeString */;
1916 long var4 /* : Int */;
1917 val* var5 /* : FlatString */;
1918 val* var6 /* : String */;
1919 val* var7 /* : String */;
1920 {
1921 var1 = standard__string___Object___class_name(self);
1922 }
1923 if (varonce) {
1924 var2 = varonce;
1925 } else {
1926 var3 = "Phase";
1927 var4 = 5;
1928 var5 = standard___standard__NativeString___to_s_with_length(var3, var4);
1929 var2 = var5;
1930 varonce = var2;
1931 }
1932 {
1933 var6 = standard__file___String___strip_extension(var1, var2);
1934 }
1935 {
1936 var7 = ((val* (*)(val* self))(var6->class->vft[COLOR_standard__string__String__to_lower]))(var6) /* to_lower on <var6:String>*/;
1937 }
1938 var = var7;
1939 goto RET_LABEL;
1940 RET_LABEL:;
1941 return var;
1942 }
1943 /* method phase#Phase#disabled for (self: Phase): Bool */
1944 short int nit___nit__Phase___disabled(val* self) {
1945 short int var /* : Bool */;
1946 short int var1 /* : Bool */;
1947 var1 = self->attrs[COLOR_nit__phase__Phase___disabled].s; /* _disabled on <self:Phase> */
1948 var = var1;
1949 RET_LABEL:;
1950 return var;
1951 }
1952 /* method phase#Phase#disabled= for (self: Phase, Bool) */
1953 void nit___nit__Phase___disabled_61d(val* self, short int p0) {
1954 self->attrs[COLOR_nit__phase__Phase___disabled].s = p0; /* _disabled on <self:Phase> */
1955 RET_LABEL:;
1956 }
1957 /* method phase#Phase#process_nmodule for (self: Phase, AModule) */
1958 void nit___nit__Phase___process_nmodule(val* self, val* p0) {
1959 val* var_nmodule /* var nmodule: AModule */;
1960 var_nmodule = p0;
1961 RET_LABEL:;
1962 }
1963 /* method phase#Phase#process_nclassdef for (self: Phase, AClassdef) */
1964 void nit___nit__Phase___process_nclassdef(val* self, val* p0) {
1965 val* var_nclassdef /* var nclassdef: AClassdef */;
1966 var_nclassdef = p0;
1967 RET_LABEL:;
1968 }
1969 /* method phase#Phase#process_npropdef for (self: Phase, APropdef) */
1970 void nit___nit__Phase___process_npropdef(val* self, val* p0) {
1971 val* var_npropdef /* var npropdef: APropdef */;
1972 var_npropdef = p0;
1973 RET_LABEL:;
1974 }
1975 /* method phase#Phase#process_annotated_node for (self: Phase, ANode, AAnnotation) */
1976 void nit___nit__Phase___process_annotated_node(val* self, val* p0, val* p1) {
1977 val* var_node /* var node: ANode */;
1978 val* var_nat /* var nat: AAnnotation */;
1979 var_node = p0;
1980 var_nat = p1;
1981 RET_LABEL:;
1982 }