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]>*/;
230 CHECK_NEW_array__Array(var16
);
232 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
234 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(self
, var19
, var20
) /* info on <self:ToolContext>*/;
235 CONTINUE_label
: (void)0;
236 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
238 BREAK_label
: (void)0;
239 var21
= ((val
* (*)(val
*))(var_nmodules
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_nmodules
) /* iterator on <var_nmodules:Collection[AModule]>*/;
241 var22
= ((short int (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var21
) /* is_ok on <var21:Iterator[nullable Object]>*/;
243 var23
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var21
) /* item on <var21:Iterator[nullable Object]>*/;
248 var26
= "Semantic analysis module ";
250 var28
= string__NativeString__to_s_with_length(var26
, var27
);
254 var29
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__ANode__location
]))(var_nmodule
) /* location on <var_nmodule:AModule>*/;
255 var30
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_location__Location__file
]))(var29
) /* file on <var29:Location>*/;
257 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
258 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 51);
261 var31
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_location__SourceFile__filename
]))(var30
) /* filename on <var30:nullable SourceFile>*/;
263 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
264 { /* var32 = array_instance Array[Object] */
266 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
267 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var25
;
268 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var31
;
269 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
270 CHECK_NEW_array__Array(var32
);
272 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
274 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(self
, var35
, var36
) /* info on <self:ToolContext>*/;
275 var37
= ((val
* (*)(val
*))(var_phases
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_phases
) /* iterator on <var_phases:Sequence[Phase]>*/;
277 var38
= ((short int (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var37
) /* is_ok on <var37:Iterator[nullable Object]>*/;
279 var39
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var37
) /* item on <var37:Iterator[nullable Object]>*/;
286 var45
= string__NativeString__to_s_with_length(var43
, var44
);
290 var46
= ((val
* (*)(val
*))(var_phase40
->class->vft
[COLOR_string__Object__class_name
]))(var_phase40
) /* class_name on <var_phase40:Phase>*/;
291 var47
= NEW_array__Array(&type_array__Arraykernel__Object
);
292 { /* var47 = array_instance Array[Object] */
294 var49
= NEW_array__NativeArray(var48
, &type_array__NativeArraykernel__Object
);
295 ((struct instance_array__NativeArray
*)var49
)->values
[0] = (val
*) var42
;
296 ((struct instance_array__NativeArray
*)var49
)->values
[1] = (val
*) var46
;
297 ((void (*)(val
*, val
*, long))(var47
->class->vft
[COLOR_array__Array__with_native
]))(var47
, var49
, var48
) /* with_native on <var47:Array[Object]>*/;
298 CHECK_NEW_array__Array(var47
);
300 var50
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_string__Object__to_s
]))(var47
) /* to_s on <var47:Array[Object]>*/;
302 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(self
, var50
, var51
) /* info on <self:ToolContext>*/;
303 var52
= ((val
* (*)(val
*))(var_phase40
->class->vft
[COLOR_phase__Phase__toolcontext
]))(var_phase40
) /* toolcontext on <var_phase40:Phase>*/;
304 var53
= ((short int (*)(val
*, val
*))(var52
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var52
, self
) /* == on <var52:ToolContext>*/;
306 fprintf(stderr
, "Runtime error: %s", "Assert failed");
307 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 54);
310 var54
= ((long (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(self
) /* error_count on <self:ToolContext>*/;
311 var_errcount
= var54
;
312 ((void (*)(val
*, val
*))(var_phase40
->class->vft
[COLOR_phase__Phase__process_nmodule
]))(var_phase40
, var_nmodule
) /* process_nmodule on <var_phase40:Phase>*/;
313 var55
= ((long (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(self
) /* error_count on <self:ToolContext>*/;
314 { /* Inline kernel#Int#!= (var_errcount,var55) */
315 var58
= var_errcount
== var55
;
322 ((void (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__check_errors
]))(self
) /* check_errors on <self:ToolContext>*/;
326 var61
= ((long (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(self
) /* error_count on <self:ToolContext>*/;
327 var_errcount
= var61
;
328 var62
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_parser_nodes__AModule__n_classdefs
]))(var_nmodule
) /* n_classdefs on <var_nmodule:AModule>*/;
329 var63
= ((val
* (*)(val
*))(var62
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var62
) /* iterator on <var62:ANodes[AClassdef]>*/;
331 var64
= ((short int (*)(val
*))(var63
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var63
) /* is_ok on <var63:Iterator[nullable Object]>*/;
333 var65
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var63
) /* item on <var63:Iterator[nullable Object]>*/;
334 var_nclassdef
= var65
;
340 var70
= string__NativeString__to_s_with_length(var68
, var69
);
344 var71
= ((val
* (*)(val
*))(var_phase40
->class->vft
[COLOR_string__Object__class_name
]))(var_phase40
) /* class_name on <var_phase40:Phase>*/;
350 var76
= string__NativeString__to_s_with_length(var74
, var75
);
354 var77
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__ANode__location
]))(var_nclassdef
) /* location on <var_nclassdef:AClassdef>*/;
355 var78
= NEW_array__Array(&type_array__Arraykernel__Object
);
356 { /* var78 = array_instance Array[Object] */
358 var80
= NEW_array__NativeArray(var79
, &type_array__NativeArraykernel__Object
);
359 ((struct instance_array__NativeArray
*)var80
)->values
[0] = (val
*) var67
;
360 ((struct instance_array__NativeArray
*)var80
)->values
[1] = (val
*) var71
;
361 ((struct instance_array__NativeArray
*)var80
)->values
[2] = (val
*) var73
;
362 ((struct instance_array__NativeArray
*)var80
)->values
[3] = (val
*) var77
;
363 ((void (*)(val
*, val
*, long))(var78
->class->vft
[COLOR_array__Array__with_native
]))(var78
, var80
, var79
) /* with_native on <var78:Array[Object]>*/;
364 CHECK_NEW_array__Array(var78
);
366 var81
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_string__Object__to_s
]))(var78
) /* to_s on <var78:Array[Object]>*/;
368 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(self
, var81
, var82
) /* info on <self:ToolContext>*/;
369 var83
= ((val
* (*)(val
*))(var_phase40
->class->vft
[COLOR_phase__Phase__toolcontext
]))(var_phase40
) /* toolcontext on <var_phase40:Phase>*/;
370 var84
= ((short int (*)(val
*, val
*))(var83
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var83
, self
) /* == on <var83:ToolContext>*/;
372 fprintf(stderr
, "Runtime error: %s", "Assert failed");
373 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 64);
376 ((void (*)(val
*, val
*))(var_phase40
->class->vft
[COLOR_phase__Phase__process_nclassdef
]))(var_phase40
, var_nclassdef
) /* process_nclassdef on <var_phase40:Phase>*/;
377 var85
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AClassdef__n_propdefs
]))(var_nclassdef
) /* n_propdefs on <var_nclassdef:AClassdef>*/;
378 var86
= ((val
* (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var85
) /* iterator on <var85:ANodes[APropdef]>*/;
380 var87
= ((short int (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var86
) /* is_ok on <var86:Iterator[nullable Object]>*/;
382 var88
= ((val
* (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var86
) /* item on <var86:Iterator[nullable Object]>*/;
383 var_npropdef
= var88
;
384 var89
= ((val
* (*)(val
*))(var_phase40
->class->vft
[COLOR_phase__Phase__toolcontext
]))(var_phase40
) /* toolcontext on <var_phase40:Phase>*/;
385 var90
= ((short int (*)(val
*, val
*))(var89
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var89
, self
) /* == on <var89:ToolContext>*/;
387 fprintf(stderr
, "Runtime error: %s", "Assert failed");
388 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 67);
391 ((void (*)(val
*, val
*))(var_phase40
->class->vft
[COLOR_phase__Phase__process_npropdef
]))(var_phase40
, var_npropdef
) /* process_npropdef on <var_phase40:Phase>*/;
392 CONTINUE_label91
: (void)0;
393 ((void (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var86
) /* next on <var86:Iterator[nullable Object]>*/;
395 BREAK_label91
: (void)0;
396 CONTINUE_label92
: (void)0;
397 ((void (*)(val
*))(var63
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var63
) /* next on <var63:Iterator[nullable Object]>*/;
399 BREAK_label92
: (void)0;
400 var93
= ((long (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(self
) /* error_count on <self:ToolContext>*/;
401 { /* Inline kernel#Int#!= (var_errcount,var93) */
402 var96
= var_errcount
== var93
;
409 ((void (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__check_errors
]))(self
) /* check_errors on <self:ToolContext>*/;
413 var98
= NEW_phase__AnnotationPhaseVisitor(&type_phase__AnnotationPhaseVisitor
);
414 ((void (*)(val
*, val
*))(var98
->class->vft
[COLOR_phase__AnnotationPhaseVisitor__init
]))(var98
, var_phase40
) /* init on <var98:AnnotationPhaseVisitor>*/;
415 CHECK_NEW_phase__AnnotationPhaseVisitor(var98
);
417 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var_nmodule
) /* enter_visit on <var_v:AnnotationPhaseVisitor>*/;
418 var99
= ((long (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(self
) /* error_count on <self:ToolContext>*/;
419 { /* Inline kernel#Int#!= (var_errcount,var99) */
420 var102
= var_errcount
== var99
;
424 RET_LABEL101
:(void)0;
427 ((void (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__check_errors
]))(self
) /* check_errors on <self:ToolContext>*/;
431 CONTINUE_label60
: (void)0;
432 ((void (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var37
) /* next on <var37:Iterator[nullable Object]>*/;
434 BREAK_label60
: (void)0;
435 ((void (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__check_errors
]))(self
) /* check_errors on <self:ToolContext>*/;
436 CONTINUE_label104
: (void)0;
437 ((void (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var21
) /* next on <var21:Iterator[nullable Object]>*/;
439 BREAK_label104
: (void)0;
440 var105
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ToolContext>*/;
445 var108
= "*** END SEMANTIC ANALYSIS: ";
447 var110
= string__NativeString__to_s_with_length(var108
, var109
);
451 { /* Inline kernel#Int#- (var_time1,var_time0) */
452 var113
= var_time1
- var_time0
;
455 RET_LABEL112
:(void)0;
462 var118
= string__NativeString__to_s_with_length(var116
, var117
);
466 var119
= NEW_array__Array(&type_array__Arraykernel__Object
);
467 { /* var119 = array_instance Array[Object] */
469 var121
= NEW_array__NativeArray(var120
, &type_array__NativeArraykernel__Object
);
470 ((struct instance_array__NativeArray
*)var121
)->values
[0] = (val
*) var107
;
471 var122
= BOX_kernel__Int(var111
); /* autobox from Int to Object */
472 ((struct instance_array__NativeArray
*)var121
)->values
[1] = (val
*) var122
;
473 ((struct instance_array__NativeArray
*)var121
)->values
[2] = (val
*) var115
;
474 ((void (*)(val
*, val
*, long))(var119
->class->vft
[COLOR_array__Array__with_native
]))(var119
, var121
, var120
) /* with_native on <var119:Array[Object]>*/;
475 CHECK_NEW_array__Array(var119
);
477 var123
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_string__Object__to_s
]))(var119
) /* to_s on <var119:Array[Object]>*/;
479 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(self
, var123
, var124
) /* info on <self:ToolContext>*/;
482 /* method phase#ToolContext#run_phases for (self: Object, Collection[AModule]) */
483 void VIRTUAL_phase__ToolContext__run_phases(val
* self
, val
* p0
) {
484 phase__ToolContext__run_phases(self
, p0
);
487 /* method phase#AnnotationPhaseVisitor#phase for (self: AnnotationPhaseVisitor): Phase */
488 val
* phase__AnnotationPhaseVisitor__phase(val
* self
) {
489 val
* var
/* : Phase */;
490 val
* var1
/* : Phase */;
491 var1
= self
->attrs
[COLOR_phase__AnnotationPhaseVisitor___64dphase
].val
; /* @phase on <self:AnnotationPhaseVisitor> */
493 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @phase");
494 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 93);
501 /* method phase#AnnotationPhaseVisitor#phase for (self: Object): Phase */
502 val
* VIRTUAL_phase__AnnotationPhaseVisitor__phase(val
* self
) {
503 val
* var
/* : Phase */;
504 val
* var1
/* : Phase */;
505 var1
= phase__AnnotationPhaseVisitor__phase(self
);
510 /* method phase#AnnotationPhaseVisitor#phase= for (self: AnnotationPhaseVisitor, Phase) */
511 void phase__AnnotationPhaseVisitor__phase_61d(val
* self
, val
* p0
) {
512 self
->attrs
[COLOR_phase__AnnotationPhaseVisitor___64dphase
].val
= p0
; /* @phase on <self:AnnotationPhaseVisitor> */
515 /* method phase#AnnotationPhaseVisitor#phase= for (self: Object, Phase) */
516 void VIRTUAL_phase__AnnotationPhaseVisitor__phase_61d(val
* self
, val
* p0
) {
517 phase__AnnotationPhaseVisitor__phase_61d(self
, p0
);
520 /* method phase#AnnotationPhaseVisitor#init for (self: AnnotationPhaseVisitor, Phase) */
521 void phase__AnnotationPhaseVisitor__init(val
* self
, val
* p0
) {
522 val
* var_phase
/* var phase: Phase */;
524 ((void (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__init
]))(self
) /* init on <self:AnnotationPhaseVisitor>*/;
525 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_phase__AnnotationPhaseVisitor__phase_61d
]))(self
, var_phase
) /* phase= on <self:AnnotationPhaseVisitor>*/;
528 /* method phase#AnnotationPhaseVisitor#init for (self: Object, Phase) */
529 void VIRTUAL_phase__AnnotationPhaseVisitor__init(val
* self
, val
* p0
) {
530 phase__AnnotationPhaseVisitor__init(self
, p0
);
533 /* method phase#AnnotationPhaseVisitor#visit for (self: AnnotationPhaseVisitor, ANode) */
534 void phase__AnnotationPhaseVisitor__visit(val
* self
, val
* p0
) {
535 val
* var_n
/* var n: ANode */;
536 short int var
/* : Bool */;
539 val
* var1
/* : Phase */;
540 val
* var2
/* : nullable ANode */;
541 val
* var3
/* : nullable ANode */;
543 ((void (*)(val
*, val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(var_n
, self
) /* visit_all on <var_n:ANode>*/;
544 /* <var_n:ANode> isa AAnnotation */
545 cltype
= type_parser_nodes__AAnnotation
.color
;
546 idtype
= type_parser_nodes__AAnnotation
.id
;
547 if(cltype
>= var_n
->type
->table_size
) {
550 var
= var_n
->type
->type_table
[cltype
] == idtype
;
553 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__AnnotationPhaseVisitor__phase
]))(self
) /* phase on <self:AnnotationPhaseVisitor>*/;
554 var2
= ((val
* (*)(val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(var_n
) /* parent on <var_n:ANode(AAnnotation)>*/;
556 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
557 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 100);
560 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(var2
) /* parent on <var2:nullable ANode>*/;
563 fprintf(stderr
, "Runtime error: %s", "Cast failed");
564 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 100);
567 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_phase__Phase__process_annotated_node
]))(var1
, var3
, var_n
) /* process_annotated_node on <var1:Phase>*/;
572 /* method phase#AnnotationPhaseVisitor#visit for (self: Object, ANode) */
573 void VIRTUAL_phase__AnnotationPhaseVisitor__visit(val
* self
, val
* p0
) {
574 phase__AnnotationPhaseVisitor__visit(self
, p0
);
577 /* method phase#Phase#toolcontext for (self: Phase): ToolContext */
578 val
* phase__Phase__toolcontext(val
* self
) {
579 val
* var
/* : ToolContext */;
580 val
* var1
/* : ToolContext */;
581 var1
= self
->attrs
[COLOR_phase__Phase___64dtoolcontext
].val
; /* @toolcontext on <self:Phase> */
583 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @toolcontext");
584 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 107);
591 /* method phase#Phase#toolcontext for (self: Object): ToolContext */
592 val
* VIRTUAL_phase__Phase__toolcontext(val
* self
) {
593 val
* var
/* : ToolContext */;
594 val
* var1
/* : ToolContext */;
595 var1
= phase__Phase__toolcontext(self
);
600 /* method phase#Phase#toolcontext= for (self: Phase, ToolContext) */
601 void phase__Phase__toolcontext_61d(val
* self
, val
* p0
) {
602 self
->attrs
[COLOR_phase__Phase___64dtoolcontext
].val
= p0
; /* @toolcontext on <self:Phase> */
605 /* method phase#Phase#toolcontext= for (self: Object, ToolContext) */
606 void VIRTUAL_phase__Phase__toolcontext_61d(val
* self
, val
* p0
) {
607 phase__Phase__toolcontext_61d(self
, p0
);
610 /* method phase#Phase#in_hierarchy for (self: Phase): POSetElement[Phase] */
611 val
* phase__Phase__in_hierarchy(val
* self
) {
612 val
* var
/* : POSetElement[Phase] */;
613 val
* var1
/* : POSetElement[Phase] */;
614 var1
= self
->attrs
[COLOR_phase__Phase___64din_hierarchy
].val
; /* @in_hierarchy on <self:Phase> */
616 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @in_hierarchy");
617 fprintf(stderr
, " (%s:%d)\n", "src/phase.nit", 110);
624 /* method phase#Phase#in_hierarchy for (self: Object): POSetElement[Phase] */
625 val
* VIRTUAL_phase__Phase__in_hierarchy(val
* self
) {
626 val
* var
/* : POSetElement[Phase] */;
627 val
* var1
/* : POSetElement[Phase] */;
628 var1
= phase__Phase__in_hierarchy(self
);
633 /* method phase#Phase#in_hierarchy= for (self: Phase, POSetElement[Phase]) */
634 void phase__Phase__in_hierarchy_61d(val
* self
, val
* p0
) {
635 self
->attrs
[COLOR_phase__Phase___64din_hierarchy
].val
= p0
; /* @in_hierarchy on <self:Phase> */
638 /* method phase#Phase#in_hierarchy= for (self: Object, POSetElement[Phase]) */
639 void VIRTUAL_phase__Phase__in_hierarchy_61d(val
* self
, val
* p0
) {
640 phase__Phase__in_hierarchy_61d(self
, p0
);
643 /* method phase#Phase#init for (self: Phase, ToolContext, nullable Collection[Phase]) */
644 void phase__Phase__init(val
* self
, val
* p0
, val
* p1
) {
645 val
* var_toolcontext
/* var toolcontext: ToolContext */;
646 val
* var_depends
/* var depends: nullable Collection[Phase] */;
647 val
* var
/* : POSet[Phase] */;
648 val
* var1
/* : POSetElement[Object] */;
649 val
* var2
/* : null */;
650 short int var3
/* : Bool */;
651 val
* var4
/* : Iterator[nullable Object] */;
652 short int var5
/* : Bool */;
653 val
* var6
/* : nullable Object */;
654 val
* var_d
/* var d: Phase */;
655 val
* var7
/* : POSet[Phase] */;
656 var_toolcontext
= p0
;
658 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext_61d
]))(self
, var_toolcontext
) /* toolcontext= on <self:Phase>*/;
659 var
= ((val
* (*)(val
*))(var_toolcontext
->class->vft
[COLOR_phase__ToolContext__phases
]))(var_toolcontext
) /* phases on <var_toolcontext:ToolContext>*/;
660 var1
= ((val
* (*)(val
*, val
*))(var
->class->vft
[COLOR_poset__POSet__add_node
]))(var
, self
) /* add_node on <var:POSet[Phase]>*/;
661 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_phase__Phase__in_hierarchy_61d
]))(self
, var1
) /* in_hierarchy= on <self:Phase>*/;
663 if (var_depends
== NULL
) {
664 var3
= 0; /* is null */
666 var3
= 1; /* arg is null and recv is not */
669 var4
= ((val
* (*)(val
*))(var_depends
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_depends
) /* iterator on <var_depends:nullable Collection[Phase](Collection[Phase])>*/;
671 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var4
) /* is_ok on <var4:Iterator[nullable Object]>*/;
673 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var4
) /* item on <var4:Iterator[nullable Object]>*/;
675 var7
= ((val
* (*)(val
*))(var_toolcontext
->class->vft
[COLOR_phase__ToolContext__phases
]))(var_toolcontext
) /* phases on <var_toolcontext:ToolContext>*/;
676 ((void (*)(val
*, val
*, val
*))(var7
->class->vft
[COLOR_poset__POSet__add_edge
]))(var7
, self
, var_d
) /* add_edge on <var7:POSet[Phase]>*/;
677 CONTINUE_label
: (void)0;
678 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var4
) /* next on <var4:Iterator[nullable Object]>*/;
680 BREAK_label
: (void)0;
685 /* method phase#Phase#init for (self: Object, ToolContext, nullable Collection[Phase]) */
686 void VIRTUAL_phase__Phase__init(val
* self
, val
* p0
, val
* p1
) {
687 phase__Phase__init(self
, p0
, p1
);
690 /* method phase#Phase#process_nmodule for (self: Phase, AModule) */
691 void phase__Phase__process_nmodule(val
* self
, val
* p0
) {
692 val
* var_nmodule
/* var nmodule: AModule */;
696 /* method phase#Phase#process_nmodule for (self: Object, AModule) */
697 void VIRTUAL_phase__Phase__process_nmodule(val
* self
, val
* p0
) {
698 phase__Phase__process_nmodule(self
, p0
);
701 /* method phase#Phase#process_nclassdef for (self: Phase, AClassdef) */
702 void phase__Phase__process_nclassdef(val
* self
, val
* p0
) {
703 val
* var_nclassdef
/* var nclassdef: AClassdef */;
707 /* method phase#Phase#process_nclassdef for (self: Object, AClassdef) */
708 void VIRTUAL_phase__Phase__process_nclassdef(val
* self
, val
* p0
) {
709 phase__Phase__process_nclassdef(self
, p0
);
712 /* method phase#Phase#process_npropdef for (self: Phase, APropdef) */
713 void phase__Phase__process_npropdef(val
* self
, val
* p0
) {
714 val
* var_npropdef
/* var npropdef: APropdef */;
718 /* method phase#Phase#process_npropdef for (self: Object, APropdef) */
719 void VIRTUAL_phase__Phase__process_npropdef(val
* self
, val
* p0
) {
720 phase__Phase__process_npropdef(self
, p0
);
723 /* method phase#Phase#process_annotated_node for (self: Phase, ANode, AAnnotation) */
724 void phase__Phase__process_annotated_node(val
* self
, val
* p0
, val
* p1
) {
725 val
* var_node
/* var node: ANode */;
726 val
* var_nat
/* var nat: AAnnotation */;
731 /* method phase#Phase#process_annotated_node for (self: Object, ANode, AAnnotation) */
732 void VIRTUAL_phase__Phase__process_annotated_node(val
* self
, val
* p0
, val
* p1
) {
733 phase__Phase__process_annotated_node(self
, p0
, p1
);