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 (%s:%d)\n", "Uninitialized attribute @phases", "src/phase.nit", 23);
15 /* method phase#ToolContext#phases for (self: Object): POSet[Phase] */
16 val
* VIRTUAL_phase__ToolContext__phases(val
* self
) {
17 val
* var
/* : POSet[Phase] */;
18 val
* var1
/* : POSet[Phase] */;
19 var1
= phase__ToolContext__phases(self
);
24 /* method phase#ToolContext#phases= for (self: ToolContext, POSet[Phase]) */
25 void phase__ToolContext__phases_61d(val
* self
, val
* p0
) {
26 self
->attrs
[COLOR_phase__ToolContext___64dphases
].val
= p0
; /* @phases on <self:ToolContext> */
29 /* method phase#ToolContext#phases= for (self: Object, POSet[Phase]) */
30 void VIRTUAL_phase__ToolContext__phases_61d(val
* self
, val
* p0
) {
31 phase__ToolContext__phases_61d(self
, p0
);
34 /* method phase#ToolContext#phases_list for (self: ToolContext): Sequence[Phase] */
35 val
* phase__ToolContext__phases_list(val
* self
) {
36 val
* var
/* : Sequence[Phase] */;
37 val
* var1
/* : POSet[Phase] */;
38 val
* var2
/* : Array[nullable Object] */;
39 val
* var_phases
/* var phases: Array[Phase] */;
40 val
* var3
/* : POSet[Phase] */;
41 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__ToolContext__phases
]))(self
) /* phases on <self:ToolContext>*/;
42 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_array__Collection__to_a
]))(var1
) /* to_a on <var1:POSet[Phase]>*/;
44 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__ToolContext__phases
]))(self
) /* phases on <self:ToolContext>*/;
45 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_sorter__AbstractSorter__sort
]))(var3
, var_phases
) /* sort on <var3:POSet[Phase]>*/;
51 /* method phase#ToolContext#phases_list for (self: Object): Sequence[Phase] */
52 val
* VIRTUAL_phase__ToolContext__phases_list(val
* self
) {
53 val
* var
/* : Sequence[Phase] */;
54 val
* var1
/* : Sequence[Phase] */;
55 var1
= phase__ToolContext__phases_list(self
);
60 /* method phase#ToolContext#run_phases for (self: ToolContext, Collection[AModule]) */
61 void phase__ToolContext__run_phases(val
* self
, val
* p0
) {
62 val
* var_nmodules
/* var nmodules: Collection[AModule] */;
64 long var_time0
/* var time0: Int */;
66 val
* var1
/* : String */;
67 char* var2
/* : NativeString */;
68 long var3
/* : Int */;
69 val
* var4
/* : String */;
70 long var5
/* : Int */;
71 val
* var6
/* : Sequence[Phase] */;
72 val
* var_phases
/* var phases: Sequence[Phase] */;
73 val
* var7
/* : Iterator[nullable Object] */;
74 short int var8
/* : Bool */;
75 val
* var9
/* : nullable Object */;
76 val
* var_phase
/* var phase: Phase */;
77 static val
* varonce10
;
78 val
* var11
/* : String */;
79 char* var12
/* : NativeString */;
80 long var13
/* : Int */;
81 val
* var14
/* : String */;
82 val
* var15
/* : String */;
83 val
* var16
/* : Array[Object] */;
84 long var17
/* : Int */;
85 val
* var18
/* : NativeArray[Object] */;
86 val
* var19
/* : String */;
87 long var20
/* : Int */;
88 val
* var21
/* : Iterator[nullable Object] */;
89 short int var22
/* : Bool */;
90 val
* var23
/* : nullable Object */;
91 val
* var_nmodule
/* var nmodule: AModule */;
92 static val
* varonce24
;
93 val
* var25
/* : String */;
94 char* var26
/* : NativeString */;
95 long var27
/* : Int */;
96 val
* var28
/* : String */;
97 val
* var29
/* : Location */;
98 val
* var30
/* : nullable SourceFile */;
99 val
* var31
/* : String */;
100 val
* var32
/* : Array[Object] */;
101 long var33
/* : Int */;
102 val
* var34
/* : NativeArray[Object] */;
103 val
* var35
/* : String */;
104 long var36
/* : Int */;
105 val
* var37
/* : Iterator[nullable Object] */;
106 short int var38
/* : Bool */;
107 val
* var39
/* : nullable Object */;
108 val
* var_phase40
/* var phase: Phase */;
109 static val
* varonce41
;
110 val
* var42
/* : String */;
111 char* var43
/* : NativeString */;
112 long var44
/* : Int */;
113 val
* var45
/* : String */;
114 val
* var46
/* : String */;
115 val
* var47
/* : Array[Object] */;
116 long var48
/* : Int */;
117 val
* var49
/* : NativeArray[Object] */;
118 val
* var50
/* : String */;
119 long var51
/* : Int */;
120 val
* var52
/* : ToolContext */;
121 short int var53
/* : Bool */;
122 long var54
/* : Int */;
123 long var_errcount
/* var errcount: Int */;
124 long var55
/* : Int */;
125 short int var56
/* : Bool */;
126 short int var58
/* : Bool */;
127 short int var59
/* : Bool */;
128 long var61
/* : Int */;
129 val
* var62
/* : ANodes[AClassdef] */;
130 val
* var63
/* : Iterator[nullable Object] */;
131 short int var64
/* : Bool */;
132 val
* var65
/* : nullable Object */;
133 val
* var_nclassdef
/* var nclassdef: AClassdef */;
134 static val
* varonce66
;
135 val
* var67
/* : String */;
136 char* var68
/* : NativeString */;
137 long var69
/* : Int */;
138 val
* var70
/* : String */;
139 val
* var71
/* : String */;
140 static val
* varonce72
;
141 val
* var73
/* : String */;
142 char* var74
/* : NativeString */;
143 long var75
/* : Int */;
144 val
* var76
/* : String */;
145 val
* var77
/* : Location */;
146 val
* var78
/* : Array[Object] */;
147 long var79
/* : Int */;
148 val
* var80
/* : NativeArray[Object] */;
149 val
* var81
/* : String */;
150 long var82
/* : Int */;
151 val
* var83
/* : ToolContext */;
152 short int var84
/* : Bool */;
153 val
* var85
/* : ANodes[APropdef] */;
154 val
* var86
/* : Iterator[nullable Object] */;
155 short int var87
/* : Bool */;
156 val
* var88
/* : nullable Object */;
157 val
* var_npropdef
/* var npropdef: APropdef */;
158 val
* var89
/* : ToolContext */;
159 short int var90
/* : Bool */;
160 long var93
/* : Int */;
161 short int var94
/* : Bool */;
162 short int var96
/* : Bool */;
163 short int var97
/* : Bool */;
164 val
* var98
/* : AnnotationPhaseVisitor */;
165 val
* var_v
/* var v: AnnotationPhaseVisitor */;
166 long var99
/* : Int */;
167 short int var100
/* : Bool */;
168 short int var102
/* : Bool */;
169 short int var103
/* : Bool */;
170 long var105
/* : Int */;
171 long var_time1
/* var time1: Int */;
172 static val
* varonce106
;
173 val
* var107
/* : String */;
174 char* var108
/* : NativeString */;
175 long var109
/* : Int */;
176 val
* var110
/* : String */;
177 long var111
/* : Int */;
178 long var113
/* : Int */;
179 static val
* varonce114
;
180 val
* var115
/* : String */;
181 char* var116
/* : NativeString */;
182 long var117
/* : Int */;
183 val
* var118
/* : String */;
184 val
* var119
/* : Array[Object] */;
185 long var120
/* : Int */;
186 val
* var121
/* : NativeArray[Object] */;
187 val
* var122
/* : Object */;
188 val
* var123
/* : String */;
189 long var124
/* : Int */;
191 var
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ToolContext>*/;
196 var2
= "*** SEMANTIC ANALYSIS ***";
198 var4
= string__NativeString__to_s_with_length(var2
, var3
);
203 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(self
, var1
, var5
) /* info on <self:ToolContext>*/;
204 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__ToolContext__phases_list
]))(self
) /* phases_list on <self:ToolContext>*/;
206 var7
= ((val
* (*)(val
*))(var_phases
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_phases
) /* iterator on <var_phases:Sequence[Phase]>*/;
208 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
210 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
215 var12
= " registered phases: ";
217 var14
= string__NativeString__to_s_with_length(var12
, var13
);
221 var15
= ((val
* (*)(val
*))(var_phase
->class->vft
[COLOR_string__Object__class_name
]))(var_phase
) /* class_name on <var_phase:Phase>*/;
222 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
223 { /* var16 = array_instance Array[Object] */
225 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
226 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var11
;
227 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var15
;
228 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
229 CHECK_NEW_array__Array(var16
);
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 (%s:%d)\n", "Reciever is null", "src/phase.nit", 51);
259 var31
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_location__SourceFile__filename
]))(var30
) /* filename on <var30:nullable SourceFile>*/;
261 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
262 { /* var32 = array_instance Array[Object] */
264 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
265 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var25
;
266 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var31
;
267 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
268 CHECK_NEW_array__Array(var32
);
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]>*/;
296 CHECK_NEW_array__Array(var47
);
298 var50
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_string__Object__to_s
]))(var47
) /* to_s on <var47:Array[Object]>*/;
300 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(self
, var50
, var51
) /* info on <self:ToolContext>*/;
301 var52
= ((val
* (*)(val
*))(var_phase40
->class->vft
[COLOR_phase__Phase__toolcontext
]))(var_phase40
) /* toolcontext on <var_phase40:Phase>*/;
302 var53
= ((short int (*)(val
*, val
*))(var52
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var52
, self
) /* == on <var52:ToolContext>*/;
304 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "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]>*/;
361 CHECK_NEW_array__Array(var78
);
363 var81
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_string__Object__to_s
]))(var78
) /* to_s on <var78:Array[Object]>*/;
365 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(self
, var81
, var82
) /* info on <self:ToolContext>*/;
366 var83
= ((val
* (*)(val
*))(var_phase40
->class->vft
[COLOR_phase__Phase__toolcontext
]))(var_phase40
) /* toolcontext on <var_phase40:Phase>*/;
367 var84
= ((short int (*)(val
*, val
*))(var83
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var83
, self
) /* == on <var83:ToolContext>*/;
369 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "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 (%s:%d)\n", "Assert failed", "src/phase.nit", 67);
386 ((void (*)(val
*, val
*))(var_phase40
->class->vft
[COLOR_phase__Phase__process_npropdef
]))(var_phase40
, var_npropdef
) /* process_npropdef on <var_phase40:Phase>*/;
387 CONTINUE_label91
: (void)0;
388 ((void (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var86
) /* next on <var86:Iterator[nullable Object]>*/;
390 BREAK_label91
: (void)0;
391 CONTINUE_label92
: (void)0;
392 ((void (*)(val
*))(var63
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var63
) /* next on <var63:Iterator[nullable Object]>*/;
394 BREAK_label92
: (void)0;
395 var93
= ((long (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(self
) /* error_count on <self:ToolContext>*/;
396 { /* Inline kernel#Int#!= (var_errcount,var93) */
397 var96
= var_errcount
== var93
;
404 ((void (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__check_errors
]))(self
) /* check_errors on <self:ToolContext>*/;
408 var98
= NEW_phase__AnnotationPhaseVisitor(&type_phase__AnnotationPhaseVisitor
);
409 ((void (*)(val
*, val
*))(var98
->class->vft
[COLOR_phase__AnnotationPhaseVisitor__init
]))(var98
, var_phase40
) /* init on <var98:AnnotationPhaseVisitor>*/;
410 CHECK_NEW_phase__AnnotationPhaseVisitor(var98
);
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]>*/;
470 CHECK_NEW_array__Array(var119
);
472 var123
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_string__Object__to_s
]))(var119
) /* to_s on <var119:Array[Object]>*/;
474 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(self
, var123
, var124
) /* info on <self:ToolContext>*/;
477 /* method phase#ToolContext#run_phases for (self: Object, Collection[AModule]) */
478 void VIRTUAL_phase__ToolContext__run_phases(val
* self
, val
* p0
) {
479 phase__ToolContext__run_phases(self
, p0
);
482 /* method phase#AnnotationPhaseVisitor#phase for (self: AnnotationPhaseVisitor): Phase */
483 val
* phase__AnnotationPhaseVisitor__phase(val
* self
) {
484 val
* var
/* : Phase */;
485 val
* var1
/* : Phase */;
486 var1
= self
->attrs
[COLOR_phase__AnnotationPhaseVisitor___64dphase
].val
; /* @phase on <self:AnnotationPhaseVisitor> */
488 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @phase", "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 (%s:%d)\n", "Reciever is null", "src/phase.nit", 100);
553 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(var2
) /* parent on <var2:nullable ANode>*/;
556 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/phase.nit", 100);
559 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_phase__Phase__process_annotated_node
]))(var1
, var3
, var_n
) /* process_annotated_node on <var1:Phase>*/;
564 /* method phase#AnnotationPhaseVisitor#visit for (self: Object, ANode) */
565 void VIRTUAL_phase__AnnotationPhaseVisitor__visit(val
* self
, val
* p0
) {
566 phase__AnnotationPhaseVisitor__visit(self
, p0
);
569 /* method phase#Phase#toolcontext for (self: Phase): ToolContext */
570 val
* phase__Phase__toolcontext(val
* self
) {
571 val
* var
/* : ToolContext */;
572 val
* var1
/* : ToolContext */;
573 var1
= self
->attrs
[COLOR_phase__Phase___64dtoolcontext
].val
; /* @toolcontext on <self:Phase> */
575 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/phase.nit", 107);
582 /* method phase#Phase#toolcontext for (self: Object): ToolContext */
583 val
* VIRTUAL_phase__Phase__toolcontext(val
* self
) {
584 val
* var
/* : ToolContext */;
585 val
* var1
/* : ToolContext */;
586 var1
= phase__Phase__toolcontext(self
);
591 /* method phase#Phase#toolcontext= for (self: Phase, ToolContext) */
592 void phase__Phase__toolcontext_61d(val
* self
, val
* p0
) {
593 self
->attrs
[COLOR_phase__Phase___64dtoolcontext
].val
= p0
; /* @toolcontext on <self:Phase> */
596 /* method phase#Phase#toolcontext= for (self: Object, ToolContext) */
597 void VIRTUAL_phase__Phase__toolcontext_61d(val
* self
, val
* p0
) {
598 phase__Phase__toolcontext_61d(self
, p0
);
601 /* method phase#Phase#in_hierarchy for (self: Phase): POSetElement[Phase] */
602 val
* phase__Phase__in_hierarchy(val
* self
) {
603 val
* var
/* : POSetElement[Phase] */;
604 val
* var1
/* : POSetElement[Phase] */;
605 var1
= self
->attrs
[COLOR_phase__Phase___64din_hierarchy
].val
; /* @in_hierarchy on <self:Phase> */
607 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @in_hierarchy", "src/phase.nit", 110);
614 /* method phase#Phase#in_hierarchy for (self: Object): POSetElement[Phase] */
615 val
* VIRTUAL_phase__Phase__in_hierarchy(val
* self
) {
616 val
* var
/* : POSetElement[Phase] */;
617 val
* var1
/* : POSetElement[Phase] */;
618 var1
= phase__Phase__in_hierarchy(self
);
623 /* method phase#Phase#in_hierarchy= for (self: Phase, POSetElement[Phase]) */
624 void phase__Phase__in_hierarchy_61d(val
* self
, val
* p0
) {
625 self
->attrs
[COLOR_phase__Phase___64din_hierarchy
].val
= p0
; /* @in_hierarchy on <self:Phase> */
628 /* method phase#Phase#in_hierarchy= for (self: Object, POSetElement[Phase]) */
629 void VIRTUAL_phase__Phase__in_hierarchy_61d(val
* self
, val
* p0
) {
630 phase__Phase__in_hierarchy_61d(self
, p0
);
633 /* method phase#Phase#init for (self: Phase, ToolContext, nullable Collection[Phase]) */
634 void phase__Phase__init(val
* self
, val
* p0
, val
* p1
) {
635 val
* var_toolcontext
/* var toolcontext: ToolContext */;
636 val
* var_depends
/* var depends: nullable Collection[Phase] */;
637 val
* var
/* : POSet[Phase] */;
638 val
* var1
/* : POSetElement[Object] */;
639 val
* var2
/* : null */;
640 short int var3
/* : Bool */;
641 val
* var4
/* : Iterator[nullable Object] */;
642 short int var5
/* : Bool */;
643 val
* var6
/* : nullable Object */;
644 val
* var_d
/* var d: Phase */;
645 val
* var7
/* : POSet[Phase] */;
646 var_toolcontext
= p0
;
648 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext_61d
]))(self
, var_toolcontext
) /* toolcontext= on <self:Phase>*/;
649 var
= ((val
* (*)(val
*))(var_toolcontext
->class->vft
[COLOR_phase__ToolContext__phases
]))(var_toolcontext
) /* phases on <var_toolcontext:ToolContext>*/;
650 var1
= ((val
* (*)(val
*, val
*))(var
->class->vft
[COLOR_poset__POSet__add_node
]))(var
, self
) /* add_node on <var:POSet[Phase]>*/;
651 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_phase__Phase__in_hierarchy_61d
]))(self
, var1
) /* in_hierarchy= on <self:Phase>*/;
653 if (var_depends
== NULL
) {
654 var3
= 0; /* is null */
656 var3
= 1; /* arg is null and recv is not */
659 var4
= ((val
* (*)(val
*))(var_depends
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_depends
) /* iterator on <var_depends:nullable Collection[Phase](Collection[Phase])>*/;
661 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var4
) /* is_ok on <var4:Iterator[nullable Object]>*/;
663 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var4
) /* item on <var4:Iterator[nullable Object]>*/;
665 var7
= ((val
* (*)(val
*))(var_toolcontext
->class->vft
[COLOR_phase__ToolContext__phases
]))(var_toolcontext
) /* phases on <var_toolcontext:ToolContext>*/;
666 ((void (*)(val
*, val
*, val
*))(var7
->class->vft
[COLOR_poset__POSet__add_edge
]))(var7
, self
, var_d
) /* add_edge on <var7:POSet[Phase]>*/;
667 CONTINUE_label
: (void)0;
668 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var4
) /* next on <var4:Iterator[nullable Object]>*/;
670 BREAK_label
: (void)0;
675 /* method phase#Phase#init for (self: Object, ToolContext, nullable Collection[Phase]) */
676 void VIRTUAL_phase__Phase__init(val
* self
, val
* p0
, val
* p1
) {
677 phase__Phase__init(self
, p0
, p1
);
680 /* method phase#Phase#process_nmodule for (self: Phase, AModule) */
681 void phase__Phase__process_nmodule(val
* self
, val
* p0
) {
682 val
* var_nmodule
/* var nmodule: AModule */;
686 /* method phase#Phase#process_nmodule for (self: Object, AModule) */
687 void VIRTUAL_phase__Phase__process_nmodule(val
* self
, val
* p0
) {
688 phase__Phase__process_nmodule(self
, p0
);
691 /* method phase#Phase#process_nclassdef for (self: Phase, AClassdef) */
692 void phase__Phase__process_nclassdef(val
* self
, val
* p0
) {
693 val
* var_nclassdef
/* var nclassdef: AClassdef */;
697 /* method phase#Phase#process_nclassdef for (self: Object, AClassdef) */
698 void VIRTUAL_phase__Phase__process_nclassdef(val
* self
, val
* p0
) {
699 phase__Phase__process_nclassdef(self
, p0
);
702 /* method phase#Phase#process_npropdef for (self: Phase, APropdef) */
703 void phase__Phase__process_npropdef(val
* self
, val
* p0
) {
704 val
* var_npropdef
/* var npropdef: APropdef */;
708 /* method phase#Phase#process_npropdef for (self: Object, APropdef) */
709 void VIRTUAL_phase__Phase__process_npropdef(val
* self
, val
* p0
) {
710 phase__Phase__process_npropdef(self
, p0
);
713 /* method phase#Phase#process_annotated_node for (self: Phase, ANode, AAnnotation) */
714 void phase__Phase__process_annotated_node(val
* self
, val
* p0
, val
* p1
) {
715 val
* var_node
/* var node: ANode */;
716 val
* var_nat
/* var nat: AAnnotation */;
721 /* method phase#Phase#process_annotated_node for (self: Object, ANode, AAnnotation) */
722 void VIRTUAL_phase__Phase__process_annotated_node(val
* self
, val
* p0
, val
* p1
) {
723 phase__Phase__process_annotated_node(self
, p0
, p1
);