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___64dphases
].val
; /* @phases on <self:ToolContext> */
8 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @phases");
9 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 23);
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 var1
= phase__ToolContext__phases(self
);
25 /* method phase#ToolContext#phases= for (self: ToolContext, POSet[Phase]) */
26 void phase__ToolContext__phases_61d(val
* self
, val
* p0
) {
27 self
->attrs
[COLOR_phase__ToolContext___64dphases
].val
= p0
; /* @phases on <self:ToolContext> */
30 /* method phase#ToolContext#phases= for (self: Object, POSet[Phase]) */
31 void VIRTUAL_phase__ToolContext__phases_61d(val
* self
, val
* p0
) {
32 phase__ToolContext__phases_61d(self
, p0
);
35 /* method phase#ToolContext#phases_list for (self: ToolContext): Sequence[Phase] */
36 val
* phase__ToolContext__phases_list(val
* self
) {
37 val
* var
/* : Sequence[Phase] */;
38 val
* var1
/* : POSet[Phase] */;
39 val
* var2
/* : Array[nullable Object] */;
40 val
* var_phases
/* var phases: Array[Phase] */;
41 val
* var3
/* : POSet[Phase] */;
42 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__ToolContext__phases
]))(self
) /* phases on <self:ToolContext>*/;
43 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_array__Collection__to_a
]))(var1
) /* to_a on <var1:POSet[Phase]>*/;
45 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__ToolContext__phases
]))(self
) /* phases on <self:ToolContext>*/;
46 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_sorter__AbstractSorter__sort
]))(var3
, var_phases
) /* sort on <var3:POSet[Phase]>*/;
52 /* method phase#ToolContext#phases_list for (self: Object): Sequence[Phase] */
53 val
* VIRTUAL_phase__ToolContext__phases_list(val
* self
) {
54 val
* var
/* : Sequence[Phase] */;
55 val
* var1
/* : Sequence[Phase] */;
56 var1
= phase__ToolContext__phases_list(self
);
61 /* method phase#ToolContext#run_phases for (self: ToolContext, Collection[AModule]) */
62 void phase__ToolContext__run_phases(val
* self
, val
* p0
) {
63 val
* var_nmodules
/* var nmodules: Collection[AModule] */;
65 long var_time0
/* var time0: Int */;
67 val
* var1
/* : String */;
68 char* var2
/* : NativeString */;
69 long var3
/* : Int */;
70 val
* var4
/* : String */;
71 long var5
/* : Int */;
72 val
* var6
/* : Sequence[Phase] */;
73 val
* var_phases
/* var phases: Sequence[Phase] */;
74 val
* var7
/* : Iterator[nullable Object] */;
75 short int var8
/* : Bool */;
76 val
* var9
/* : nullable Object */;
77 val
* var_phase
/* var phase: Phase */;
78 static val
* varonce10
;
79 val
* var11
/* : String */;
80 char* var12
/* : NativeString */;
81 long var13
/* : Int */;
82 val
* var14
/* : String */;
83 val
* var15
/* : String */;
84 val
* var16
/* : Array[Object] */;
85 long var17
/* : Int */;
86 val
* var18
/* : NativeArray[Object] */;
87 val
* var19
/* : String */;
88 long var20
/* : Int */;
89 val
* var21
/* : Iterator[nullable Object] */;
90 short int var22
/* : Bool */;
91 val
* var23
/* : nullable Object */;
92 val
* var_nmodule
/* var nmodule: AModule */;
93 static val
* varonce24
;
94 val
* var25
/* : String */;
95 char* var26
/* : NativeString */;
96 long var27
/* : Int */;
97 val
* var28
/* : String */;
98 val
* var29
/* : Location */;
99 val
* var30
/* : nullable SourceFile */;
100 val
* var31
/* : String */;
101 val
* var32
/* : Array[Object] */;
102 long var33
/* : Int */;
103 val
* var34
/* : NativeArray[Object] */;
104 val
* var35
/* : String */;
105 long var36
/* : Int */;
106 val
* var37
/* : Iterator[nullable Object] */;
107 short int var38
/* : Bool */;
108 val
* var39
/* : nullable Object */;
109 val
* var_phase40
/* var phase: Phase */;
110 static val
* varonce41
;
111 val
* var42
/* : String */;
112 char* var43
/* : NativeString */;
113 long var44
/* : Int */;
114 val
* var45
/* : String */;
115 val
* var46
/* : String */;
116 val
* var47
/* : Array[Object] */;
117 long var48
/* : Int */;
118 val
* var49
/* : NativeArray[Object] */;
119 val
* var50
/* : String */;
120 long var51
/* : Int */;
121 val
* var52
/* : ToolContext */;
122 short int var53
/* : Bool */;
123 long var54
/* : Int */;
124 long var_errcount
/* var errcount: Int */;
125 long var55
/* : Int */;
126 short int var56
/* : Bool */;
127 short int var58
/* : Bool */;
128 short int var59
/* : Bool */;
129 long var61
/* : Int */;
130 val
* var62
/* : ANodes[AClassdef] */;
131 val
* var63
/* : Iterator[nullable Object] */;
132 short int var64
/* : Bool */;
133 val
* var65
/* : nullable Object */;
134 val
* var_nclassdef
/* var nclassdef: AClassdef */;
135 static val
* varonce66
;
136 val
* var67
/* : String */;
137 char* var68
/* : NativeString */;
138 long var69
/* : Int */;
139 val
* var70
/* : String */;
140 val
* var71
/* : String */;
141 static val
* varonce72
;
142 val
* var73
/* : String */;
143 char* var74
/* : NativeString */;
144 long var75
/* : Int */;
145 val
* var76
/* : String */;
146 val
* var77
/* : Location */;
147 val
* var78
/* : Array[Object] */;
148 long var79
/* : Int */;
149 val
* var80
/* : NativeArray[Object] */;
150 val
* var81
/* : String */;
151 long var82
/* : Int */;
152 val
* var83
/* : ToolContext */;
153 short int var84
/* : Bool */;
154 val
* var85
/* : ANodes[APropdef] */;
155 val
* var86
/* : Iterator[nullable Object] */;
156 short int var87
/* : Bool */;
157 val
* var88
/* : nullable Object */;
158 val
* var_npropdef
/* var npropdef: APropdef */;
159 val
* var89
/* : ToolContext */;
160 short int var90
/* : Bool */;
161 long var93
/* : Int */;
162 short int var94
/* : Bool */;
163 short int var96
/* : Bool */;
164 short int var97
/* : Bool */;
165 val
* var98
/* : AnnotationPhaseVisitor */;
166 val
* var_v
/* var v: AnnotationPhaseVisitor */;
167 long var99
/* : Int */;
168 short int var100
/* : Bool */;
169 short int var102
/* : Bool */;
170 short int var103
/* : Bool */;
171 long var105
/* : Int */;
172 long var_time1
/* var time1: Int */;
173 static val
* varonce106
;
174 val
* var107
/* : String */;
175 char* var108
/* : NativeString */;
176 long var109
/* : Int */;
177 val
* var110
/* : String */;
178 long var111
/* : Int */;
179 long var113
/* : Int */;
180 static val
* varonce114
;
181 val
* var115
/* : String */;
182 char* var116
/* : NativeString */;
183 long var117
/* : Int */;
184 val
* var118
/* : String */;
185 val
* var119
/* : Array[Object] */;
186 long var120
/* : Int */;
187 val
* var121
/* : NativeArray[Object] */;
188 val
* var122
/* : Object */;
189 val
* var123
/* : String */;
190 long var124
/* : Int */;
192 var
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ToolContext>*/;
197 var2
= "*** SEMANTIC ANALYSIS ***";
199 var4
= string__NativeString__to_s_with_length(var2
, var3
);
204 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(self
, var1
, var5
) /* info on <self:ToolContext>*/;
205 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__ToolContext__phases_list
]))(self
) /* phases_list on <self:ToolContext>*/;
207 var7
= ((val
* (*)(val
*))(var_phases
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_phases
) /* iterator on <var_phases:Sequence[Phase]>*/;
209 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
211 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
216 var12
= " registered phases: ";
218 var14
= string__NativeString__to_s_with_length(var12
, var13
);
222 var15
= ((val
* (*)(val
*))(var_phase
->class->vft
[COLOR_string__Object__class_name
]))(var_phase
) /* class_name on <var_phase:Phase>*/;
223 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
224 { /* var16 = array_instance Array[Object] */
226 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
227 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var11
;
228 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var15
;
229 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
231 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
233 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(self
, var19
, var20
) /* info on <self:ToolContext>*/;
234 CONTINUE_label
: (void)0;
235 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
237 BREAK_label
: (void)0;
238 var21
= ((val
* (*)(val
*))(var_nmodules
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_nmodules
) /* iterator on <var_nmodules:Collection[AModule]>*/;
240 var22
= ((short int (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var21
) /* is_ok on <var21:Iterator[nullable Object]>*/;
242 var23
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var21
) /* item on <var21:Iterator[nullable Object]>*/;
247 var26
= "Semantic analysis module ";
249 var28
= string__NativeString__to_s_with_length(var26
, var27
);
253 var29
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__ANode__location
]))(var_nmodule
) /* location on <var_nmodule:AModule>*/;
254 var30
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_location__Location__file
]))(var29
) /* file on <var29:Location>*/;
256 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
257 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 51);
260 var31
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_location__SourceFile__filename
]))(var30
) /* filename on <var30:nullable SourceFile>*/;
262 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
263 { /* var32 = array_instance Array[Object] */
265 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
266 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var25
;
267 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var31
;
268 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
270 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
272 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(self
, var35
, var36
) /* info on <self:ToolContext>*/;
273 var37
= ((val
* (*)(val
*))(var_phases
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_phases
) /* iterator on <var_phases:Sequence[Phase]>*/;
275 var38
= ((short int (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var37
) /* is_ok on <var37:Iterator[nullable Object]>*/;
277 var39
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var37
) /* item on <var37:Iterator[nullable Object]>*/;
284 var45
= string__NativeString__to_s_with_length(var43
, var44
);
288 var46
= ((val
* (*)(val
*))(var_phase40
->class->vft
[COLOR_string__Object__class_name
]))(var_phase40
) /* class_name on <var_phase40:Phase>*/;
289 var47
= NEW_array__Array(&type_array__Arraykernel__Object
);
290 { /* var47 = array_instance Array[Object] */
292 var49
= NEW_array__NativeArray(var48
, &type_array__NativeArraykernel__Object
);
293 ((struct instance_array__NativeArray
*)var49
)->values
[0] = (val
*) var42
;
294 ((struct instance_array__NativeArray
*)var49
)->values
[1] = (val
*) var46
;
295 ((void (*)(val
*, val
*, long))(var47
->class->vft
[COLOR_array__Array__with_native
]))(var47
, var49
, var48
) /* with_native on <var47:Array[Object]>*/;
297 var50
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_string__Object__to_s
]))(var47
) /* to_s on <var47:Array[Object]>*/;
299 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(self
, var50
, var51
) /* info on <self:ToolContext>*/;
300 var52
= ((val
* (*)(val
*))(var_phase40
->class->vft
[COLOR_phase__Phase__toolcontext
]))(var_phase40
) /* toolcontext on <var_phase40:Phase>*/;
301 var53
= ((short int (*)(val
*, val
*))(var52
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var52
, self
) /* == on <var52:ToolContext>*/;
303 fprintf(stderr
, "Runtime error: %s", "Assert failed");
304 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 54);
307 var54
= ((long (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(self
) /* error_count on <self:ToolContext>*/;
308 var_errcount
= var54
;
309 ((void (*)(val
*, val
*))(var_phase40
->class->vft
[COLOR_phase__Phase__process_nmodule
]))(var_phase40
, var_nmodule
) /* process_nmodule on <var_phase40:Phase>*/;
310 var55
= ((long (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(self
) /* error_count on <self:ToolContext>*/;
311 { /* Inline kernel#Int#!= (var_errcount,var55) */
312 var58
= var_errcount
== var55
;
319 ((void (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__check_errors
]))(self
) /* check_errors on <self:ToolContext>*/;
323 var61
= ((long (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(self
) /* error_count on <self:ToolContext>*/;
324 var_errcount
= var61
;
325 var62
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__AModule__n_classdefs
]))(var_nmodule
) /* n_classdefs on <var_nmodule:AModule>*/;
326 var63
= ((val
* (*)(val
*))(var62
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var62
) /* iterator on <var62:ANodes[AClassdef]>*/;
328 var64
= ((short int (*)(val
*))(var63
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var63
) /* is_ok on <var63:Iterator[nullable Object]>*/;
330 var65
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var63
) /* item on <var63:Iterator[nullable Object]>*/;
331 var_nclassdef
= var65
;
337 var70
= string__NativeString__to_s_with_length(var68
, var69
);
341 var71
= ((val
* (*)(val
*))(var_phase40
->class->vft
[COLOR_string__Object__class_name
]))(var_phase40
) /* class_name on <var_phase40:Phase>*/;
347 var76
= string__NativeString__to_s_with_length(var74
, var75
);
351 var77
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__ANode__location
]))(var_nclassdef
) /* location on <var_nclassdef:AClassdef>*/;
352 var78
= NEW_array__Array(&type_array__Arraykernel__Object
);
353 { /* var78 = array_instance Array[Object] */
355 var80
= NEW_array__NativeArray(var79
, &type_array__NativeArraykernel__Object
);
356 ((struct instance_array__NativeArray
*)var80
)->values
[0] = (val
*) var67
;
357 ((struct instance_array__NativeArray
*)var80
)->values
[1] = (val
*) var71
;
358 ((struct instance_array__NativeArray
*)var80
)->values
[2] = (val
*) var73
;
359 ((struct instance_array__NativeArray
*)var80
)->values
[3] = (val
*) var77
;
360 ((void (*)(val
*, val
*, long))(var78
->class->vft
[COLOR_array__Array__with_native
]))(var78
, var80
, var79
) /* with_native on <var78:Array[Object]>*/;
362 var81
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_string__Object__to_s
]))(var78
) /* to_s on <var78:Array[Object]>*/;
364 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(self
, var81
, var82
) /* info on <self:ToolContext>*/;
365 var83
= ((val
* (*)(val
*))(var_phase40
->class->vft
[COLOR_phase__Phase__toolcontext
]))(var_phase40
) /* toolcontext on <var_phase40:Phase>*/;
366 var84
= ((short int (*)(val
*, val
*))(var83
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var83
, self
) /* == on <var83:ToolContext>*/;
368 fprintf(stderr
, "Runtime error: %s", "Assert failed");
369 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 64);
372 ((void (*)(val
*, val
*))(var_phase40
->class->vft
[COLOR_phase__Phase__process_nclassdef
]))(var_phase40
, var_nclassdef
) /* process_nclassdef on <var_phase40:Phase>*/;
373 var85
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AClassdef__n_propdefs
]))(var_nclassdef
) /* n_propdefs on <var_nclassdef:AClassdef>*/;
374 var86
= ((val
* (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var85
) /* iterator on <var85:ANodes[APropdef]>*/;
376 var87
= ((short int (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var86
) /* is_ok on <var86:Iterator[nullable Object]>*/;
378 var88
= ((val
* (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var86
) /* item on <var86:Iterator[nullable Object]>*/;
379 var_npropdef
= var88
;
380 var89
= ((val
* (*)(val
*))(var_phase40
->class->vft
[COLOR_phase__Phase__toolcontext
]))(var_phase40
) /* toolcontext on <var_phase40:Phase>*/;
381 var90
= ((short int (*)(val
*, val
*))(var89
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var89
, self
) /* == on <var89:ToolContext>*/;
383 fprintf(stderr
, "Runtime error: %s", "Assert failed");
384 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 67);
387 ((void (*)(val
*, val
*))(var_phase40
->class->vft
[COLOR_phase__Phase__process_npropdef
]))(var_phase40
, var_npropdef
) /* process_npropdef on <var_phase40:Phase>*/;
388 CONTINUE_label91
: (void)0;
389 ((void (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var86
) /* next on <var86:Iterator[nullable Object]>*/;
391 BREAK_label91
: (void)0;
392 CONTINUE_label92
: (void)0;
393 ((void (*)(val
*))(var63
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var63
) /* next on <var63:Iterator[nullable Object]>*/;
395 BREAK_label92
: (void)0;
396 var93
= ((long (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(self
) /* error_count on <self:ToolContext>*/;
397 { /* Inline kernel#Int#!= (var_errcount,var93) */
398 var96
= var_errcount
== var93
;
405 ((void (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__check_errors
]))(self
) /* check_errors on <self:ToolContext>*/;
409 var98
= NEW_phase__AnnotationPhaseVisitor(&type_phase__AnnotationPhaseVisitor
);
410 ((void (*)(val
*, val
*))(var98
->class->vft
[COLOR_phase__AnnotationPhaseVisitor__init
]))(var98
, var_phase40
) /* init on <var98:AnnotationPhaseVisitor>*/;
412 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var_nmodule
) /* enter_visit on <var_v:AnnotationPhaseVisitor>*/;
413 var99
= ((long (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(self
) /* error_count on <self:ToolContext>*/;
414 { /* Inline kernel#Int#!= (var_errcount,var99) */
415 var102
= var_errcount
== var99
;
419 RET_LABEL101
:(void)0;
422 ((void (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__check_errors
]))(self
) /* check_errors on <self:ToolContext>*/;
426 CONTINUE_label60
: (void)0;
427 ((void (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var37
) /* next on <var37:Iterator[nullable Object]>*/;
429 BREAK_label60
: (void)0;
430 ((void (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__check_errors
]))(self
) /* check_errors on <self:ToolContext>*/;
431 CONTINUE_label104
: (void)0;
432 ((void (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var21
) /* next on <var21:Iterator[nullable Object]>*/;
434 BREAK_label104
: (void)0;
435 var105
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ToolContext>*/;
440 var108
= "*** END SEMANTIC ANALYSIS: ";
442 var110
= string__NativeString__to_s_with_length(var108
, var109
);
446 { /* Inline kernel#Int#- (var_time1,var_time0) */
447 var113
= var_time1
- var_time0
;
450 RET_LABEL112
:(void)0;
457 var118
= string__NativeString__to_s_with_length(var116
, var117
);
461 var119
= NEW_array__Array(&type_array__Arraykernel__Object
);
462 { /* var119 = array_instance Array[Object] */
464 var121
= NEW_array__NativeArray(var120
, &type_array__NativeArraykernel__Object
);
465 ((struct instance_array__NativeArray
*)var121
)->values
[0] = (val
*) var107
;
466 var122
= BOX_kernel__Int(var111
); /* autobox from Int to Object */
467 ((struct instance_array__NativeArray
*)var121
)->values
[1] = (val
*) var122
;
468 ((struct instance_array__NativeArray
*)var121
)->values
[2] = (val
*) var115
;
469 ((void (*)(val
*, val
*, long))(var119
->class->vft
[COLOR_array__Array__with_native
]))(var119
, var121
, var120
) /* with_native on <var119:Array[Object]>*/;
471 var123
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_string__Object__to_s
]))(var119
) /* to_s on <var119:Array[Object]>*/;
473 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(self
, var123
, var124
) /* info on <self:ToolContext>*/;
476 /* method phase#ToolContext#run_phases for (self: Object, Collection[AModule]) */
477 void VIRTUAL_phase__ToolContext__run_phases(val
* self
, val
* p0
) {
478 phase__ToolContext__run_phases(self
, p0
);
481 /* method phase#AnnotationPhaseVisitor#phase for (self: AnnotationPhaseVisitor): Phase */
482 val
* phase__AnnotationPhaseVisitor__phase(val
* self
) {
483 val
* var
/* : Phase */;
484 val
* var1
/* : Phase */;
485 var1
= self
->attrs
[COLOR_phase__AnnotationPhaseVisitor___64dphase
].val
; /* @phase on <self:AnnotationPhaseVisitor> */
487 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @phase");
488 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 93);
495 /* method phase#AnnotationPhaseVisitor#phase for (self: Object): Phase */
496 val
* VIRTUAL_phase__AnnotationPhaseVisitor__phase(val
* self
) {
497 val
* var
/* : Phase */;
498 val
* var1
/* : Phase */;
499 var1
= phase__AnnotationPhaseVisitor__phase(self
);
504 /* method phase#AnnotationPhaseVisitor#phase= for (self: AnnotationPhaseVisitor, Phase) */
505 void phase__AnnotationPhaseVisitor__phase_61d(val
* self
, val
* p0
) {
506 self
->attrs
[COLOR_phase__AnnotationPhaseVisitor___64dphase
].val
= p0
; /* @phase on <self:AnnotationPhaseVisitor> */
509 /* method phase#AnnotationPhaseVisitor#phase= for (self: Object, Phase) */
510 void VIRTUAL_phase__AnnotationPhaseVisitor__phase_61d(val
* self
, val
* p0
) {
511 phase__AnnotationPhaseVisitor__phase_61d(self
, p0
);
514 /* method phase#AnnotationPhaseVisitor#init for (self: AnnotationPhaseVisitor, Phase) */
515 void phase__AnnotationPhaseVisitor__init(val
* self
, val
* p0
) {
516 val
* var_phase
/* var phase: Phase */;
518 ((void (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__init
]))(self
) /* init on <self:AnnotationPhaseVisitor>*/;
519 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_phase__AnnotationPhaseVisitor__phase_61d
]))(self
, var_phase
) /* phase= on <self:AnnotationPhaseVisitor>*/;
522 /* method phase#AnnotationPhaseVisitor#init for (self: Object, Phase) */
523 void VIRTUAL_phase__AnnotationPhaseVisitor__init(val
* self
, val
* p0
) {
524 phase__AnnotationPhaseVisitor__init(self
, p0
);
527 /* method phase#AnnotationPhaseVisitor#visit for (self: AnnotationPhaseVisitor, ANode) */
528 void phase__AnnotationPhaseVisitor__visit(val
* self
, val
* p0
) {
529 val
* var_n
/* var n: ANode */;
530 short int var
/* : Bool */;
533 val
* var1
/* : Phase */;
534 val
* var2
/* : nullable ANode */;
535 val
* var3
/* : nullable ANode */;
537 ((void (*)(val
*, val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(var_n
, self
) /* visit_all on <var_n:ANode>*/;
538 /* <var_n:ANode> isa AAnnotation */
539 cltype
= type_parser_nodes__AAnnotation
.color
;
540 idtype
= type_parser_nodes__AAnnotation
.id
;
541 if(cltype
>= var_n
->type
->table_size
) {
544 var
= var_n
->type
->type_table
[cltype
] == idtype
;
547 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__AnnotationPhaseVisitor__phase
]))(self
) /* phase on <self:AnnotationPhaseVisitor>*/;
548 var2
= ((val
* (*)(val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(var_n
) /* parent on <var_n:ANode(AAnnotation)>*/;
550 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
551 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 100);
554 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(var2
) /* parent on <var2:nullable ANode>*/;
557 fprintf(stderr
, "Runtime error: %s", "Cast failed");
558 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 100);
561 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_phase__Phase__process_annotated_node
]))(var1
, var3
, var_n
) /* process_annotated_node on <var1:Phase>*/;
566 /* method phase#AnnotationPhaseVisitor#visit for (self: Object, ANode) */
567 void VIRTUAL_phase__AnnotationPhaseVisitor__visit(val
* self
, val
* p0
) {
568 phase__AnnotationPhaseVisitor__visit(self
, p0
);
571 /* method phase#Phase#toolcontext for (self: Phase): ToolContext */
572 val
* phase__Phase__toolcontext(val
* self
) {
573 val
* var
/* : ToolContext */;
574 val
* var1
/* : ToolContext */;
575 var1
= self
->attrs
[COLOR_phase__Phase___64dtoolcontext
].val
; /* @toolcontext on <self:Phase> */
577 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @toolcontext");
578 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 107);
585 /* method phase#Phase#toolcontext for (self: Object): ToolContext */
586 val
* VIRTUAL_phase__Phase__toolcontext(val
* self
) {
587 val
* var
/* : ToolContext */;
588 val
* var1
/* : ToolContext */;
589 var1
= phase__Phase__toolcontext(self
);
594 /* method phase#Phase#toolcontext= for (self: Phase, ToolContext) */
595 void phase__Phase__toolcontext_61d(val
* self
, val
* p0
) {
596 self
->attrs
[COLOR_phase__Phase___64dtoolcontext
].val
= p0
; /* @toolcontext on <self:Phase> */
599 /* method phase#Phase#toolcontext= for (self: Object, ToolContext) */
600 void VIRTUAL_phase__Phase__toolcontext_61d(val
* self
, val
* p0
) {
601 phase__Phase__toolcontext_61d(self
, p0
);
604 /* method phase#Phase#in_hierarchy for (self: Phase): POSetElement[Phase] */
605 val
* phase__Phase__in_hierarchy(val
* self
) {
606 val
* var
/* : POSetElement[Phase] */;
607 val
* var1
/* : POSetElement[Phase] */;
608 var1
= self
->attrs
[COLOR_phase__Phase___64din_hierarchy
].val
; /* @in_hierarchy on <self:Phase> */
610 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @in_hierarchy");
611 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 110);
618 /* method phase#Phase#in_hierarchy for (self: Object): POSetElement[Phase] */
619 val
* VIRTUAL_phase__Phase__in_hierarchy(val
* self
) {
620 val
* var
/* : POSetElement[Phase] */;
621 val
* var1
/* : POSetElement[Phase] */;
622 var1
= phase__Phase__in_hierarchy(self
);
627 /* method phase#Phase#in_hierarchy= for (self: Phase, POSetElement[Phase]) */
628 void phase__Phase__in_hierarchy_61d(val
* self
, val
* p0
) {
629 self
->attrs
[COLOR_phase__Phase___64din_hierarchy
].val
= p0
; /* @in_hierarchy on <self:Phase> */
632 /* method phase#Phase#in_hierarchy= for (self: Object, POSetElement[Phase]) */
633 void VIRTUAL_phase__Phase__in_hierarchy_61d(val
* self
, val
* p0
) {
634 phase__Phase__in_hierarchy_61d(self
, p0
);
637 /* method phase#Phase#init for (self: Phase, ToolContext, nullable Collection[Phase]) */
638 void phase__Phase__init(val
* self
, val
* p0
, val
* p1
) {
639 val
* var_toolcontext
/* var toolcontext: ToolContext */;
640 val
* var_depends
/* var depends: nullable Collection[Phase] */;
641 val
* var
/* : POSet[Phase] */;
642 val
* var1
/* : POSetElement[Object] */;
643 val
* var2
/* : null */;
644 short int var3
/* : Bool */;
645 val
* var4
/* : Iterator[nullable Object] */;
646 short int var5
/* : Bool */;
647 val
* var6
/* : nullable Object */;
648 val
* var_d
/* var d: Phase */;
649 val
* var7
/* : POSet[Phase] */;
650 var_toolcontext
= p0
;
652 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext_61d
]))(self
, var_toolcontext
) /* toolcontext= on <self:Phase>*/;
653 var
= ((val
* (*)(val
*))(var_toolcontext
->class->vft
[COLOR_phase__ToolContext__phases
]))(var_toolcontext
) /* phases on <var_toolcontext:ToolContext>*/;
654 var1
= ((val
* (*)(val
*, val
*))(var
->class->vft
[COLOR_poset__POSet__add_node
]))(var
, self
) /* add_node on <var:POSet[Phase]>*/;
655 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_phase__Phase__in_hierarchy_61d
]))(self
, var1
) /* in_hierarchy= on <self:Phase>*/;
657 if (var_depends
== NULL
) {
658 var3
= 0; /* is null */
660 var3
= 1; /* arg is null and recv is not */
663 var4
= ((val
* (*)(val
*))(var_depends
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_depends
) /* iterator on <var_depends:nullable Collection[Phase](Collection[Phase])>*/;
665 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var4
) /* is_ok on <var4:Iterator[nullable Object]>*/;
667 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var4
) /* item on <var4:Iterator[nullable Object]>*/;
669 var7
= ((val
* (*)(val
*))(var_toolcontext
->class->vft
[COLOR_phase__ToolContext__phases
]))(var_toolcontext
) /* phases on <var_toolcontext:ToolContext>*/;
670 ((void (*)(val
*, val
*, val
*))(var7
->class->vft
[COLOR_poset__POSet__add_edge
]))(var7
, self
, var_d
) /* add_edge on <var7:POSet[Phase]>*/;
671 CONTINUE_label
: (void)0;
672 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var4
) /* next on <var4:Iterator[nullable Object]>*/;
674 BREAK_label
: (void)0;
679 /* method phase#Phase#init for (self: Object, ToolContext, nullable Collection[Phase]) */
680 void VIRTUAL_phase__Phase__init(val
* self
, val
* p0
, val
* p1
) {
681 phase__Phase__init(self
, p0
, p1
);
684 /* method phase#Phase#process_nmodule for (self: Phase, AModule) */
685 void phase__Phase__process_nmodule(val
* self
, val
* p0
) {
686 val
* var_nmodule
/* var nmodule: AModule */;
690 /* method phase#Phase#process_nmodule for (self: Object, AModule) */
691 void VIRTUAL_phase__Phase__process_nmodule(val
* self
, val
* p0
) {
692 phase__Phase__process_nmodule(self
, p0
);
695 /* method phase#Phase#process_nclassdef for (self: Phase, AClassdef) */
696 void phase__Phase__process_nclassdef(val
* self
, val
* p0
) {
697 val
* var_nclassdef
/* var nclassdef: AClassdef */;
701 /* method phase#Phase#process_nclassdef for (self: Object, AClassdef) */
702 void VIRTUAL_phase__Phase__process_nclassdef(val
* self
, val
* p0
) {
703 phase__Phase__process_nclassdef(self
, p0
);
706 /* method phase#Phase#process_npropdef for (self: Phase, APropdef) */
707 void phase__Phase__process_npropdef(val
* self
, val
* p0
) {
708 val
* var_npropdef
/* var npropdef: APropdef */;
712 /* method phase#Phase#process_npropdef for (self: Object, APropdef) */
713 void VIRTUAL_phase__Phase__process_npropdef(val
* self
, val
* p0
) {
714 phase__Phase__process_npropdef(self
, p0
);
717 /* method phase#Phase#process_annotated_node for (self: Phase, ANode, AAnnotation) */
718 void phase__Phase__process_annotated_node(val
* self
, val
* p0
, val
* p1
) {
719 val
* var_node
/* var node: ANode */;
720 val
* var_nat
/* var nat: AAnnotation */;
725 /* method phase#Phase#process_annotated_node for (self: Object, ANode, AAnnotation) */
726 void VIRTUAL_phase__Phase__process_annotated_node(val
* self
, val
* p0
, val
* p1
) {
727 phase__Phase__process_annotated_node(self
, p0
, p1
);