1 #include "global_compiler.sep.0.h"
2 /* method global_compiler#ModelBuilder#run_global_compiler for (self: ModelBuilder, MModule, RapidTypeAnalysis) */
3 void global_compiler__ModelBuilder__run_global_compiler(val
* self
, val
* p0
, val
* p1
) {
4 val
* var_mainmodule
/* var mainmodule: MModule */;
5 val
* var_runtime_type_analysis
/* var runtime_type_analysis: RapidTypeAnalysis */;
7 long var_time0
/* var time0: Int */;
8 val
* var1
/* : ToolContext */;
10 val
* var2
/* : String */;
11 char* var3
/* : NativeString */;
12 long var4
/* : Int */;
13 val
* var5
/* : String */;
14 long var6
/* : Int */;
15 val
* var7
/* : GlobalCompiler */;
16 val
* var_compiler
/* var compiler: GlobalCompiler */;
17 val
* var8
/* : HashSet[MClassType] */;
18 val
* var9
/* : Iterator[nullable Object] */;
19 short int var10
/* : Bool */;
20 val
* var11
/* : nullable Object */;
21 val
* var_t
/* var t: MClassType */;
22 val
* var12
/* : HashSet[MClassType] */;
23 val
* var13
/* : Iterator[nullable Object] */;
24 short int var14
/* : Bool */;
25 val
* var15
/* : nullable Object */;
26 val
* var_t16
/* var t: MClassType */;
27 val
* var17
/* : String */;
28 static val
* varonce18
;
29 val
* var19
/* : String */;
30 char* var20
/* : NativeString */;
31 long var21
/* : Int */;
32 val
* var22
/* : String */;
33 short int var23
/* : Bool */;
34 val
* var25
/* : List[AbstractRuntimeFunction] */;
35 short int var26
/* : Bool */;
36 short int var27
/* : Bool */;
37 val
* var28
/* : List[AbstractRuntimeFunction] */;
38 val
* var29
/* : nullable Object */;
39 val
* var_m
/* var m: AbstractRuntimeFunction */;
40 val
* var30
/* : ToolContext */;
41 static val
* varonce31
;
42 val
* var32
/* : String */;
43 char* var33
/* : NativeString */;
44 long var34
/* : Int */;
45 val
* var35
/* : String */;
46 static val
* varonce36
;
47 val
* var37
/* : String */;
48 char* var38
/* : NativeString */;
49 long var39
/* : Int */;
50 val
* var40
/* : String */;
51 val
* var41
/* : HashSet[AbstractRuntimeFunction] */;
52 long var42
/* : Int */;
53 val
* var43
/* : List[AbstractRuntimeFunction] */;
54 long var44
/* : Int */;
55 long var45
/* : Int */;
56 long var47
/* : Int */;
57 static val
* varonce48
;
58 val
* var49
/* : String */;
59 char* var50
/* : NativeString */;
60 long var51
/* : Int */;
61 val
* var52
/* : String */;
62 val
* var53
/* : HashSet[AbstractRuntimeFunction] */;
63 long var54
/* : Int */;
64 static val
* varonce55
;
65 val
* var56
/* : String */;
66 char* var57
/* : NativeString */;
67 long var58
/* : Int */;
68 val
* var59
/* : String */;
69 val
* var60
/* : Array[Object] */;
70 long var61
/* : Int */;
71 val
* var62
/* : NativeArray[Object] */;
72 val
* var63
/* : Object */;
73 val
* var64
/* : Object */;
74 val
* var65
/* : String */;
75 long var66
/* : Int */;
76 val
* var68
/* : ToolContext */;
77 static val
* varonce69
;
78 val
* var70
/* : String */;
79 char* var71
/* : NativeString */;
80 long var72
/* : Int */;
81 val
* var73
/* : String */;
82 val
* var74
/* : HashSet[AbstractRuntimeFunction] */;
83 long var75
/* : Int */;
84 val
* var76
/* : Array[Object] */;
85 long var77
/* : Int */;
86 val
* var78
/* : NativeArray[Object] */;
87 val
* var79
/* : Object */;
88 val
* var80
/* : String */;
89 long var81
/* : Int */;
90 long var82
/* : Int */;
91 long var_time1
/* var time1: Int */;
92 val
* var83
/* : ToolContext */;
93 static val
* varonce84
;
94 val
* var85
/* : String */;
95 char* var86
/* : NativeString */;
96 long var87
/* : Int */;
97 val
* var88
/* : String */;
98 long var89
/* : Int */;
99 long var91
/* : Int */;
100 static val
* varonce92
;
101 val
* var93
/* : String */;
102 char* var94
/* : NativeString */;
103 long var95
/* : Int */;
104 val
* var96
/* : String */;
105 val
* var97
/* : Array[Object] */;
106 long var98
/* : Int */;
107 val
* var99
/* : NativeArray[Object] */;
108 val
* var100
/* : Object */;
109 val
* var101
/* : String */;
110 long var102
/* : Int */;
112 var_runtime_type_analysis
= p1
;
113 var
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
115 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
119 var3
= "*** GENERATING C ***";
121 var5
= string__NativeString__to_s_with_length(var3
, var4
);
126 ((void (*)(val
*, val
*, long))(var1
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var1
, var2
, var6
) /* info on <var1:ToolContext>*/;
127 var7
= NEW_global_compiler__GlobalCompiler(&type_global_compiler__GlobalCompiler
);
128 ((void (*)(val
*, val
*, val
*, val
*))(var7
->class->vft
[COLOR_global_compiler__GlobalCompiler__init
]))(var7
, var_mainmodule
, self
, var_runtime_type_analysis
) /* init on <var7:GlobalCompiler>*/;
129 CHECK_NEW_global_compiler__GlobalCompiler(var7
);
131 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_header
]))(var_compiler
) /* compile_header on <var_compiler:GlobalCompiler>*/;
132 var8
= ((val
* (*)(val
*))(var_runtime_type_analysis
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var_runtime_type_analysis
) /* live_types on <var_runtime_type_analysis:RapidTypeAnalysis>*/;
133 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:HashSet[MClassType]>*/;
135 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
137 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
139 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__declare_runtimeclass
]))(var_compiler
, var_t
) /* declare_runtimeclass on <var_compiler:GlobalCompiler>*/;
140 CONTINUE_label
: (void)0;
141 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
143 BREAK_label
: (void)0;
144 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__compile_class_names
]))(var_compiler
) /* compile_class_names on <var_compiler:GlobalCompiler>*/;
145 var12
= ((val
* (*)(val
*))(var_runtime_type_analysis
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var_runtime_type_analysis
) /* live_types on <var_runtime_type_analysis:RapidTypeAnalysis>*/;
146 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:HashSet[MClassType]>*/;
148 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
150 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
152 var17
= ((val
* (*)(val
*))(var_t16
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t16
) /* ctype on <var_t16:MClassType>*/;
158 var22
= string__NativeString__to_s_with_length(var20
, var21
);
162 var23
= ((short int (*)(val
*, val
*))(var17
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var17
, var19
) /* == on <var17:String>*/;
164 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__generate_init_instance
]))(var_compiler
, var_t16
) /* generate_init_instance on <var_compiler:GlobalCompiler>*/;
165 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__generate_check_init_instance
]))(var_compiler
, var_t16
) /* generate_check_init_instance on <var_compiler:GlobalCompiler>*/;
167 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__generate_box_instance
]))(var_compiler
, var_t16
) /* generate_box_instance on <var_compiler:GlobalCompiler>*/;
169 CONTINUE_label24
: (void)0;
170 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
172 BREAK_label24
: (void)0;
173 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_main_function
]))(var_compiler
) /* compile_main_function on <var_compiler:GlobalCompiler>*/;
175 var25
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(var_compiler
) /* todos on <var_compiler:GlobalCompiler>*/;
176 var26
= ((short int (*)(val
*))(var25
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var25
) /* is_empty on <var25:List[AbstractRuntimeFunction]>*/;
179 var28
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(var_compiler
) /* todos on <var_compiler:GlobalCompiler>*/;
180 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Sequence__shift
]))(var28
) /* shift on <var28:List[AbstractRuntimeFunction]>*/;
182 var30
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
188 var35
= string__NativeString__to_s_with_length(var33
, var34
);
197 var40
= string__NativeString__to_s_with_length(var38
, var39
);
201 var41
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(var_compiler
) /* seen on <var_compiler:GlobalCompiler>*/;
202 var42
= ((long (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var41
) /* length on <var41:HashSet[AbstractRuntimeFunction]>*/;
203 var43
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(var_compiler
) /* todos on <var_compiler:GlobalCompiler>*/;
204 var44
= ((long (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var43
) /* length on <var43:List[AbstractRuntimeFunction]>*/;
205 { /* Inline kernel#Int#- (var42,var44) */
206 var47
= var42
- var44
;
216 var52
= string__NativeString__to_s_with_length(var50
, var51
);
220 var53
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(var_compiler
) /* seen on <var_compiler:GlobalCompiler>*/;
221 var54
= ((long (*)(val
*))(var53
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var53
) /* length on <var53:HashSet[AbstractRuntimeFunction]>*/;
227 var59
= string__NativeString__to_s_with_length(var57
, var58
);
231 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
232 { /* var60 = array_instance Array[Object] */
234 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
235 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var32
;
236 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var_m
;
237 ((struct instance_array__NativeArray
*)var62
)->values
[2] = (val
*) var37
;
238 var63
= BOX_kernel__Int(var45
); /* autobox from Int to Object */
239 ((struct instance_array__NativeArray
*)var62
)->values
[3] = (val
*) var63
;
240 ((struct instance_array__NativeArray
*)var62
)->values
[4] = (val
*) var49
;
241 var64
= BOX_kernel__Int(var54
); /* autobox from Int to Object */
242 ((struct instance_array__NativeArray
*)var62
)->values
[5] = (val
*) var64
;
243 ((struct instance_array__NativeArray
*)var62
)->values
[6] = (val
*) var56
;
244 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
245 CHECK_NEW_array__Array(var60
);
247 var65
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
249 ((void (*)(val
*, val
*, long))(var30
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var30
, var65
, var66
) /* info on <var30:ToolContext>*/;
250 ((void (*)(val
*, val
*))(var_m
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__compile_to_c
]))(var_m
, var_compiler
) /* compile_to_c on <var_m:AbstractRuntimeFunction>*/;
251 CONTINUE_label67
: (void)0;
253 BREAK_label67
: (void)0;
254 var68
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
258 var71
= "Total methods to compile to C: ";
260 var73
= string__NativeString__to_s_with_length(var71
, var72
);
264 var74
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(var_compiler
) /* seen on <var_compiler:GlobalCompiler>*/;
265 var75
= ((long (*)(val
*))(var74
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var74
) /* length on <var74:HashSet[AbstractRuntimeFunction]>*/;
266 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
267 { /* var76 = array_instance Array[Object] */
269 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
270 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var70
;
271 var79
= BOX_kernel__Int(var75
); /* autobox from Int to Object */
272 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var79
;
273 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
274 CHECK_NEW_array__Array(var76
);
276 var80
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
278 ((void (*)(val
*, val
*, long))(var68
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var68
, var80
, var81
) /* info on <var68:ToolContext>*/;
279 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__display_stats
]))(var_compiler
) /* display_stats on <var_compiler:GlobalCompiler>*/;
280 var82
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
282 var83
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
286 var86
= "*** END GENERATING C: ";
288 var88
= string__NativeString__to_s_with_length(var86
, var87
);
292 { /* Inline kernel#Int#- (var_time1,var_time0) */
293 var91
= var_time1
- var_time0
;
303 var96
= string__NativeString__to_s_with_length(var94
, var95
);
307 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
308 { /* var97 = array_instance Array[Object] */
310 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
311 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var85
;
312 var100
= BOX_kernel__Int(var89
); /* autobox from Int to Object */
313 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var100
;
314 ((struct instance_array__NativeArray
*)var99
)->values
[2] = (val
*) var93
;
315 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
316 CHECK_NEW_array__Array(var97
);
318 var101
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
320 ((void (*)(val
*, val
*, long))(var83
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var83
, var101
, var102
) /* info on <var83:ToolContext>*/;
321 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__ModelBuilder__write_and_make
]))(self
, var_compiler
) /* write_and_make on <self:ModelBuilder>*/;
324 /* method global_compiler#ModelBuilder#run_global_compiler for (self: Object, MModule, RapidTypeAnalysis) */
325 void VIRTUAL_global_compiler__ModelBuilder__run_global_compiler(val
* self
, val
* p0
, val
* p1
) {
326 global_compiler__ModelBuilder__run_global_compiler(self
, p0
, p1
);
329 /* method global_compiler#GlobalCompiler#runtime_type_analysis for (self: GlobalCompiler): RapidTypeAnalysis */
330 val
* global_compiler__GlobalCompiler__runtime_type_analysis(val
* self
) {
331 val
* var
/* : RapidTypeAnalysis */;
332 val
* var1
/* : RapidTypeAnalysis */;
333 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64druntime_type_analysis
].val
; /* @runtime_type_analysis on <self:GlobalCompiler> */
335 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @runtime_type_analysis", "src/global_compiler.nit", 85);
342 /* method global_compiler#GlobalCompiler#runtime_type_analysis for (self: Object): RapidTypeAnalysis */
343 val
* VIRTUAL_global_compiler__GlobalCompiler__runtime_type_analysis(val
* self
) {
344 val
* var
/* : RapidTypeAnalysis */;
345 val
* var1
/* : RapidTypeAnalysis */;
346 var1
= global_compiler__GlobalCompiler__runtime_type_analysis(self
);
351 /* method global_compiler#GlobalCompiler#runtime_type_analysis= for (self: GlobalCompiler, RapidTypeAnalysis) */
352 void global_compiler__GlobalCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
353 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64druntime_type_analysis
].val
= p0
; /* @runtime_type_analysis on <self:GlobalCompiler> */
356 /* method global_compiler#GlobalCompiler#runtime_type_analysis= for (self: Object, RapidTypeAnalysis) */
357 void VIRTUAL_global_compiler__GlobalCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
358 global_compiler__GlobalCompiler__runtime_type_analysis_61d(self
, p0
);
361 /* method global_compiler#GlobalCompiler#init for (self: GlobalCompiler, MModule, ModelBuilder, RapidTypeAnalysis) */
362 void global_compiler__GlobalCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
363 val
* var_mainmodule
/* var mainmodule: MModule */;
364 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
365 val
* var_runtime_type_analysis
/* var runtime_type_analysis: RapidTypeAnalysis */;
366 val
* var
/* : String */;
368 val
* var1
/* : String */;
369 char* var2
/* : NativeString */;
370 long var3
/* : Int */;
371 val
* var4
/* : String */;
372 val
* var5
/* : Array[Object] */;
373 long var6
/* : Int */;
374 val
* var7
/* : NativeArray[Object] */;
375 val
* var8
/* : String */;
376 val
* var9
/* : CodeFile */;
377 val
* var_file
/* var file: CodeFile */;
378 val
* var10
/* : CodeWriter */;
379 val
* var11
/* : Array[MClassType] */;
380 val
* var12
/* : HashSet[MClassType] */;
381 val
* var13
/* : Iterator[nullable Object] */;
382 short int var14
/* : Bool */;
383 val
* var15
/* : nullable Object */;
384 val
* var_t
/* var t: MClassType */;
385 val
* var16
/* : String */;
386 static val
* varonce17
;
387 val
* var18
/* : String */;
388 char* var19
/* : NativeString */;
389 long var20
/* : Int */;
390 val
* var21
/* : String */;
391 short int var22
/* : Bool */;
392 val
* var23
/* : Array[MClassType] */;
394 var_modelbuilder
= p1
;
395 var_runtime_type_analysis
= p2
;
396 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__init
]))(self
, var_mainmodule
, var_modelbuilder
) /* init on <self:GlobalCompiler>*/;
397 var
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_model_base__MModule__name
]))(var_mainmodule
) /* name on <var_mainmodule:MModule>*/;
403 var4
= string__NativeString__to_s_with_length(var2
, var3
);
407 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
408 { /* var5 = array_instance Array[Object] */
410 var7
= NEW_array__NativeArray(var6
, &type_array__NativeArraykernel__Object
);
411 ((struct instance_array__NativeArray
*)var7
)->values
[0] = (val
*) var
;
412 ((struct instance_array__NativeArray
*)var7
)->values
[1] = (val
*) var1
;
413 ((void (*)(val
*, val
*, long))(var5
->class->vft
[COLOR_array__Array__with_native
]))(var5
, var7
, var6
) /* with_native on <var5:Array[Object]>*/;
414 CHECK_NEW_array__Array(var5
);
416 var8
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_string__Object__to_s
]))(var5
) /* to_s on <var5:Array[Object]>*/;
417 var9
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(self
, var8
) /* new_file on <self:GlobalCompiler>*/;
419 var10
= NEW_abstract_compiler__CodeWriter(&type_abstract_compiler__CodeWriter
);
420 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_compiler__CodeWriter__init
]))(var10
, var_file
) /* init on <var10:CodeWriter>*/;
421 CHECK_NEW_abstract_compiler__CodeWriter(var10
);
422 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header_61d
]))(self
, var10
) /* header= on <self:GlobalCompiler>*/;
423 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis_61d
]))(self
, var_runtime_type_analysis
) /* runtime_type_analysis= on <self:GlobalCompiler>*/;
424 var11
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
425 ((void (*)(val
*))(var11
->class->vft
[COLOR_array__Array__init
]))(var11
) /* init on <var11:Array[MClassType]>*/;
426 CHECK_NEW_array__Array(var11
);
427 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__live_primitive_types_61d
]))(self
, var11
) /* live_primitive_types= on <self:GlobalCompiler>*/;
428 var12
= ((val
* (*)(val
*))(var_runtime_type_analysis
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var_runtime_type_analysis
) /* live_types on <var_runtime_type_analysis:RapidTypeAnalysis>*/;
429 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:HashSet[MClassType]>*/;
431 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
433 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
435 var16
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t
) /* ctype on <var_t:MClassType>*/;
441 var21
= string__NativeString__to_s_with_length(var19
, var20
);
445 var22
= ((short int (*)(val
*, val
*))(var16
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var16
, var18
) /* != on <var16:String>*/;
447 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__live_primitive_types
]))(self
) /* live_primitive_types on <self:GlobalCompiler>*/;
448 ((void (*)(val
*, val
*))(var23
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var23
, var_t
) /* add on <var23:Array[MClassType]>*/;
451 CONTINUE_label
: (void)0;
452 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
454 BREAK_label
: (void)0;
457 /* method global_compiler#GlobalCompiler#init for (self: Object, MModule, ModelBuilder, RapidTypeAnalysis) */
458 void VIRTUAL_global_compiler__GlobalCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
459 global_compiler__GlobalCompiler__init(self
, p0
, p1
, p2
);
462 /* method global_compiler#GlobalCompiler#compile_class_names for (self: GlobalCompiler) */
463 void global_compiler__GlobalCompiler__compile_class_names(val
* self
) {
464 val
* var
/* : AbstractCompilerVisitor */;
465 val
* var_v
/* var v: GlobalCompilerVisitor */;
466 val
* var1
/* : CodeWriter */;
468 val
* var2
/* : String */;
469 char* var3
/* : NativeString */;
470 long var4
/* : Int */;
471 val
* var5
/* : String */;
472 static val
* varonce6
;
473 val
* var7
/* : String */;
474 char* var8
/* : NativeString */;
475 long var9
/* : Int */;
476 val
* var10
/* : String */;
477 val
* var11
/* : RapidTypeAnalysis */;
478 val
* var12
/* : HashSet[MClassType] */;
479 val
* var13
/* : Iterator[nullable Object] */;
480 short int var14
/* : Bool */;
481 val
* var15
/* : nullable Object */;
482 val
* var_t
/* var t: MClassType */;
483 static val
* varonce16
;
484 val
* var17
/* : String */;
485 char* var18
/* : NativeString */;
486 long var19
/* : Int */;
487 val
* var20
/* : String */;
488 static val
* varonce21
;
489 val
* var22
/* : String */;
490 char* var23
/* : NativeString */;
491 long var24
/* : Int */;
492 val
* var25
/* : String */;
493 val
* var26
/* : String */;
494 static val
* varonce27
;
495 val
* var28
/* : String */;
496 char* var29
/* : NativeString */;
497 long var30
/* : Int */;
498 val
* var31
/* : String */;
499 val
* var32
/* : Array[Object] */;
500 long var33
/* : Int */;
501 val
* var34
/* : NativeArray[Object] */;
502 val
* var35
/* : String */;
503 static val
* varonce36
;
504 val
* var37
/* : String */;
505 char* var38
/* : NativeString */;
506 long var39
/* : Int */;
507 val
* var40
/* : String */;
508 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:GlobalCompiler>*/;
510 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
514 var3
= "extern const char const * class_names[];";
516 var5
= string__NativeString__to_s_with_length(var3
, var4
);
520 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var1
, var2
) /* add_decl on <var1:CodeWriter>*/;
524 var8
= "const char const * class_names[] = {";
526 var10
= string__NativeString__to_s_with_length(var8
, var9
);
530 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var7
) /* add on <var_v:GlobalCompilerVisitor>*/;
531 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
532 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var11
) /* live_types on <var11:RapidTypeAnalysis>*/;
533 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:HashSet[MClassType]>*/;
535 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
537 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
544 var20
= string__NativeString__to_s_with_length(var18
, var19
);
553 var25
= string__NativeString__to_s_with_length(var23
, var24
);
557 var26
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(self
, var_t
) /* classid on <self:GlobalCompiler>*/;
563 var31
= string__NativeString__to_s_with_length(var29
, var30
);
567 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
568 { /* var32 = array_instance Array[Object] */
570 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
571 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var17
;
572 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_t
;
573 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var22
;
574 ((struct instance_array__NativeArray
*)var34
)->values
[3] = (val
*) var26
;
575 ((struct instance_array__NativeArray
*)var34
)->values
[4] = (val
*) var28
;
576 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
577 CHECK_NEW_array__Array(var32
);
579 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
580 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var35
) /* add on <var_v:GlobalCompilerVisitor>*/;
581 CONTINUE_label
: (void)0;
582 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
584 BREAK_label
: (void)0;
590 var40
= string__NativeString__to_s_with_length(var38
, var39
);
594 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var37
) /* add on <var_v:GlobalCompilerVisitor>*/;
597 /* method global_compiler#GlobalCompiler#compile_class_names for (self: Object) */
598 void VIRTUAL_global_compiler__GlobalCompiler__compile_class_names(val
* self
) {
599 global_compiler__GlobalCompiler__compile_class_names(self
);
602 /* method global_compiler#GlobalCompiler#classid for (self: GlobalCompiler, MClassType): String */
603 val
* global_compiler__GlobalCompiler__classid(val
* self
, val
* p0
) {
604 val
* var
/* : String */;
605 val
* var_mtype
/* var mtype: MClassType */;
606 val
* var1
/* : HashMap[MClassType, String] */;
607 short int var2
/* : Bool */;
608 val
* var3
/* : HashMap[MClassType, String] */;
609 val
* var4
/* : nullable Object */;
611 val
* var5
/* : String */;
612 char* var6
/* : NativeString */;
613 long var7
/* : Int */;
614 val
* var8
/* : String */;
615 val
* var9
/* : Array[Object] */;
616 long var10
/* : Int */;
617 val
* var11
/* : NativeArray[Object] */;
618 val
* var12
/* : String */;
620 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
621 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var1
, var_mtype
) /* has_key on <var1:HashMap[MClassType, String]>*/;
623 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
624 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var3
, var_mtype
) /* [] on <var3:HashMap[MClassType, String]>*/;
632 var6
= "No classid for ";
634 var8
= string__NativeString__to_s_with_length(var6
, var7
);
638 var9
= NEW_array__Array(&type_array__Arraykernel__Object
);
639 { /* var9 = array_instance Array[Object] */
641 var11
= NEW_array__NativeArray(var10
, &type_array__NativeArraykernel__Object
);
642 ((struct instance_array__NativeArray
*)var11
)->values
[0] = (val
*) var5
;
643 ((struct instance_array__NativeArray
*)var11
)->values
[1] = (val
*) var_mtype
;
644 ((void (*)(val
*, val
*, long))(var9
->class->vft
[COLOR_array__Array__with_native
]))(var9
, var11
, var10
) /* with_native on <var9:Array[Object]>*/;
645 CHECK_NEW_array__Array(var9
);
647 var12
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_string__Object__to_s
]))(var9
) /* to_s on <var9:Array[Object]>*/;
648 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var12
) /* print on <self:GlobalCompiler>*/;
649 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Aborted", "src/global_compiler.nit", 121);
654 /* method global_compiler#GlobalCompiler#classid for (self: Object, MClassType): String */
655 val
* VIRTUAL_global_compiler__GlobalCompiler__classid(val
* self
, val
* p0
) {
656 val
* var
/* : String */;
657 val
* var1
/* : String */;
658 var1
= global_compiler__GlobalCompiler__classid(self
, p0
);
663 /* method global_compiler#GlobalCompiler#classids for (self: GlobalCompiler): HashMap[MClassType, String] */
664 val
* global_compiler__GlobalCompiler__classids(val
* self
) {
665 val
* var
/* : HashMap[MClassType, String] */;
666 val
* var1
/* : HashMap[MClassType, String] */;
667 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dclassids
].val
; /* @classids on <self:GlobalCompiler> */
669 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @classids", "src/global_compiler.nit", 124);
676 /* method global_compiler#GlobalCompiler#classids for (self: Object): HashMap[MClassType, String] */
677 val
* VIRTUAL_global_compiler__GlobalCompiler__classids(val
* self
) {
678 val
* var
/* : HashMap[MClassType, String] */;
679 val
* var1
/* : HashMap[MClassType, String] */;
680 var1
= global_compiler__GlobalCompiler__classids(self
);
685 /* method global_compiler#GlobalCompiler#classids= for (self: GlobalCompiler, HashMap[MClassType, String]) */
686 void global_compiler__GlobalCompiler__classids_61d(val
* self
, val
* p0
) {
687 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dclassids
].val
= p0
; /* @classids on <self:GlobalCompiler> */
690 /* method global_compiler#GlobalCompiler#classids= for (self: Object, HashMap[MClassType, String]) */
691 void VIRTUAL_global_compiler__GlobalCompiler__classids_61d(val
* self
, val
* p0
) {
692 global_compiler__GlobalCompiler__classids_61d(self
, p0
);
695 /* method global_compiler#GlobalCompiler#compile_header_structs for (self: GlobalCompiler) */
696 void global_compiler__GlobalCompiler__compile_header_structs(val
* self
) {
697 val
* var
/* : CodeWriter */;
699 val
* var1
/* : String */;
700 char* var2
/* : NativeString */;
701 long var3
/* : Int */;
702 val
* var4
/* : String */;
703 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
707 var2
= "typedef struct {int classid;} val; /* general C type representing a Nit instance. */";
709 var4
= string__NativeString__to_s_with_length(var2
, var3
);
713 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var
, var1
) /* add_decl on <var:CodeWriter>*/;
716 /* method global_compiler#GlobalCompiler#compile_header_structs for (self: Object) */
717 void VIRTUAL_global_compiler__GlobalCompiler__compile_header_structs(val
* self
) {
718 global_compiler__GlobalCompiler__compile_header_structs(self
);
721 /* method global_compiler#GlobalCompiler#live_primitive_types for (self: GlobalCompiler): Array[MClassType] */
722 val
* global_compiler__GlobalCompiler__live_primitive_types(val
* self
) {
723 val
* var
/* : Array[MClassType] */;
724 val
* var1
/* : Array[MClassType] */;
725 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dlive_primitive_types
].val
; /* @live_primitive_types on <self:GlobalCompiler> */
727 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @live_primitive_types", "src/global_compiler.nit", 135);
734 /* method global_compiler#GlobalCompiler#live_primitive_types for (self: Object): Array[MClassType] */
735 val
* VIRTUAL_global_compiler__GlobalCompiler__live_primitive_types(val
* self
) {
736 val
* var
/* : Array[MClassType] */;
737 val
* var1
/* : Array[MClassType] */;
738 var1
= global_compiler__GlobalCompiler__live_primitive_types(self
);
743 /* method global_compiler#GlobalCompiler#live_primitive_types= for (self: GlobalCompiler, Array[MClassType]) */
744 void global_compiler__GlobalCompiler__live_primitive_types_61d(val
* self
, val
* p0
) {
745 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dlive_primitive_types
].val
= p0
; /* @live_primitive_types on <self:GlobalCompiler> */
748 /* method global_compiler#GlobalCompiler#live_primitive_types= for (self: Object, Array[MClassType]) */
749 void VIRTUAL_global_compiler__GlobalCompiler__live_primitive_types_61d(val
* self
, val
* p0
) {
750 global_compiler__GlobalCompiler__live_primitive_types_61d(self
, p0
);
753 /* method global_compiler#GlobalCompiler#todo for (self: GlobalCompiler, AbstractRuntimeFunction) */
754 void global_compiler__GlobalCompiler__todo(val
* self
, val
* p0
) {
755 val
* var_m
/* var m: AbstractRuntimeFunction */;
756 val
* var
/* : HashSet[AbstractRuntimeFunction] */;
757 short int var1
/* : Bool */;
758 val
* var2
/* : List[AbstractRuntimeFunction] */;
759 val
* var3
/* : HashSet[AbstractRuntimeFunction] */;
761 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(self
) /* seen on <self:GlobalCompiler>*/;
762 var1
= ((short int (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var
, var_m
) /* has on <var:HashSet[AbstractRuntimeFunction]>*/;
767 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(self
) /* todos on <self:GlobalCompiler>*/;
768 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_m
) /* add on <var2:List[AbstractRuntimeFunction]>*/;
769 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(self
) /* seen on <self:GlobalCompiler>*/;
770 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var3
, var_m
) /* add on <var3:HashSet[AbstractRuntimeFunction]>*/;
773 /* method global_compiler#GlobalCompiler#todo for (self: Object, AbstractRuntimeFunction) */
774 void VIRTUAL_global_compiler__GlobalCompiler__todo(val
* self
, val
* p0
) {
775 global_compiler__GlobalCompiler__todo(self
, p0
);
778 /* method global_compiler#GlobalCompiler#todos for (self: GlobalCompiler): List[AbstractRuntimeFunction] */
779 val
* global_compiler__GlobalCompiler__todos(val
* self
) {
780 val
* var
/* : List[AbstractRuntimeFunction] */;
781 val
* var1
/* : List[AbstractRuntimeFunction] */;
782 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dtodos
].val
; /* @todos on <self:GlobalCompiler> */
784 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @todos", "src/global_compiler.nit", 147);
791 /* method global_compiler#GlobalCompiler#todos for (self: Object): List[AbstractRuntimeFunction] */
792 val
* VIRTUAL_global_compiler__GlobalCompiler__todos(val
* self
) {
793 val
* var
/* : List[AbstractRuntimeFunction] */;
794 val
* var1
/* : List[AbstractRuntimeFunction] */;
795 var1
= global_compiler__GlobalCompiler__todos(self
);
800 /* method global_compiler#GlobalCompiler#todos= for (self: GlobalCompiler, List[AbstractRuntimeFunction]) */
801 void global_compiler__GlobalCompiler__todos_61d(val
* self
, val
* p0
) {
802 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dtodos
].val
= p0
; /* @todos on <self:GlobalCompiler> */
805 /* method global_compiler#GlobalCompiler#todos= for (self: Object, List[AbstractRuntimeFunction]) */
806 void VIRTUAL_global_compiler__GlobalCompiler__todos_61d(val
* self
, val
* p0
) {
807 global_compiler__GlobalCompiler__todos_61d(self
, p0
);
810 /* method global_compiler#GlobalCompiler#seen for (self: GlobalCompiler): HashSet[AbstractRuntimeFunction] */
811 val
* global_compiler__GlobalCompiler__seen(val
* self
) {
812 val
* var
/* : HashSet[AbstractRuntimeFunction] */;
813 val
* var1
/* : HashSet[AbstractRuntimeFunction] */;
814 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dseen
].val
; /* @seen on <self:GlobalCompiler> */
816 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @seen", "src/global_compiler.nit", 150);
823 /* method global_compiler#GlobalCompiler#seen for (self: Object): HashSet[AbstractRuntimeFunction] */
824 val
* VIRTUAL_global_compiler__GlobalCompiler__seen(val
* self
) {
825 val
* var
/* : HashSet[AbstractRuntimeFunction] */;
826 val
* var1
/* : HashSet[AbstractRuntimeFunction] */;
827 var1
= global_compiler__GlobalCompiler__seen(self
);
832 /* method global_compiler#GlobalCompiler#seen= for (self: GlobalCompiler, HashSet[AbstractRuntimeFunction]) */
833 void global_compiler__GlobalCompiler__seen_61d(val
* self
, val
* p0
) {
834 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dseen
].val
= p0
; /* @seen on <self:GlobalCompiler> */
837 /* method global_compiler#GlobalCompiler#seen= for (self: Object, HashSet[AbstractRuntimeFunction]) */
838 void VIRTUAL_global_compiler__GlobalCompiler__seen_61d(val
* self
, val
* p0
) {
839 global_compiler__GlobalCompiler__seen_61d(self
, p0
);
842 /* method global_compiler#GlobalCompiler#declare_runtimeclass for (self: GlobalCompiler, MClassType) */
843 void global_compiler__GlobalCompiler__declare_runtimeclass(val
* self
, val
* p0
) {
844 val
* var_mtype
/* var mtype: MClassType */;
845 val
* var
/* : CodeWriter */;
846 val
* var_v
/* var v: CodeWriter */;
847 val
* var1
/* : RapidTypeAnalysis */;
848 val
* var2
/* : HashSet[MClassType] */;
849 short int var3
/* : Bool */;
851 val
* var4
/* : String */;
852 char* var5
/* : NativeString */;
853 long var6
/* : Int */;
854 val
* var7
/* : String */;
855 static val
* varonce8
;
856 val
* var9
/* : String */;
857 char* var10
/* : NativeString */;
858 long var11
/* : Int */;
859 val
* var12
/* : String */;
860 val
* var13
/* : Array[Object] */;
861 long var14
/* : Int */;
862 val
* var15
/* : NativeArray[Object] */;
863 val
* var16
/* : String */;
864 val
* var17
/* : HashMap[MClassType, String] */;
865 long var18
/* : Int */;
866 long var_idnum
/* var idnum: Int */;
867 static val
* varonce19
;
868 val
* var20
/* : String */;
869 char* var21
/* : NativeString */;
870 long var22
/* : Int */;
871 val
* var23
/* : String */;
872 val
* var24
/* : String */;
873 val
* var25
/* : String */;
874 val
* var_idname
/* var idname: String */;
875 val
* var26
/* : HashMap[MClassType, String] */;
876 static val
* varonce27
;
877 val
* var28
/* : String */;
878 char* var29
/* : NativeString */;
879 long var30
/* : Int */;
880 val
* var31
/* : String */;
881 static val
* varonce32
;
882 val
* var33
/* : String */;
883 char* var34
/* : NativeString */;
884 long var35
/* : Int */;
885 val
* var36
/* : String */;
886 static val
* varonce37
;
887 val
* var38
/* : String */;
888 char* var39
/* : NativeString */;
889 long var40
/* : Int */;
890 val
* var41
/* : String */;
891 static val
* varonce42
;
892 val
* var43
/* : String */;
893 char* var44
/* : NativeString */;
894 long var45
/* : Int */;
895 val
* var46
/* : String */;
896 val
* var47
/* : Array[Object] */;
897 long var48
/* : Int */;
898 val
* var49
/* : NativeArray[Object] */;
899 val
* var50
/* : Object */;
900 val
* var51
/* : String */;
901 static val
* varonce52
;
902 val
* var53
/* : String */;
903 char* var54
/* : NativeString */;
904 long var55
/* : Int */;
905 val
* var56
/* : String */;
906 val
* var57
/* : String */;
907 static val
* varonce58
;
908 val
* var59
/* : String */;
909 char* var60
/* : NativeString */;
910 long var61
/* : Int */;
911 val
* var62
/* : String */;
912 val
* var63
/* : Array[Object] */;
913 long var64
/* : Int */;
914 val
* var65
/* : NativeArray[Object] */;
915 val
* var66
/* : String */;
916 static val
* varonce67
;
917 val
* var68
/* : String */;
918 char* var69
/* : NativeString */;
919 long var70
/* : Int */;
920 val
* var71
/* : String */;
921 static val
* varonce72
;
922 val
* var73
/* : String */;
923 char* var74
/* : NativeString */;
924 long var75
/* : Int */;
925 val
* var76
/* : String */;
926 val
* var77
/* : Array[Object] */;
927 long var78
/* : Int */;
928 val
* var79
/* : NativeArray[Object] */;
929 val
* var80
/* : String */;
930 val
* var81
/* : MClass */;
931 val
* var82
/* : String */;
932 static val
* varonce83
;
933 val
* var84
/* : String */;
934 char* var85
/* : NativeString */;
935 long var86
/* : Int */;
936 val
* var87
/* : String */;
937 short int var88
/* : Bool */;
938 val
* var89
/* : Array[MType] */;
939 val
* var90
/* : nullable Object */;
940 val
* var91
/* : String */;
941 static val
* varonce92
;
942 val
* var93
/* : String */;
943 char* var94
/* : NativeString */;
944 long var95
/* : Int */;
945 val
* var96
/* : String */;
946 val
* var97
/* : Array[Object] */;
947 long var98
/* : Int */;
948 val
* var99
/* : NativeArray[Object] */;
949 val
* var100
/* : String */;
950 val
* var101
/* : String */;
951 static val
* varonce102
;
952 val
* var103
/* : String */;
953 char* var104
/* : NativeString */;
954 long var105
/* : Int */;
955 val
* var106
/* : String */;
956 short int var107
/* : Bool */;
957 val
* var108
/* : String */;
958 static val
* varonce109
;
959 val
* var110
/* : String */;
960 char* var111
/* : NativeString */;
961 long var112
/* : Int */;
962 val
* var113
/* : String */;
963 val
* var114
/* : Array[Object] */;
964 long var115
/* : Int */;
965 val
* var116
/* : NativeArray[Object] */;
966 val
* var117
/* : String */;
967 val
* var118
/* : MModule */;
968 val
* var119
/* : Set[MClassDef] */;
969 val
* var120
/* : Iterator[nullable Object] */;
970 short int var121
/* : Bool */;
971 val
* var122
/* : nullable Object */;
972 val
* var_cd
/* var cd: MClassDef */;
973 val
* var123
/* : Array[MProperty] */;
974 val
* var124
/* : Iterator[nullable Object] */;
975 short int var125
/* : Bool */;
976 val
* var126
/* : nullable Object */;
977 val
* var_p
/* var p: MProperty */;
978 short int var127
/* : Bool */;
981 short int var128
/* : Bool */;
982 val
* var129
/* : MPropDef */;
983 val
* var130
/* : nullable MType */;
984 val
* var_t
/* var t: MType */;
985 val
* var131
/* : MModule */;
986 val
* var132
/* : MType */;
987 val
* var133
/* : String */;
988 static val
* varonce134
;
989 val
* var135
/* : String */;
990 char* var136
/* : NativeString */;
991 long var137
/* : Int */;
992 val
* var138
/* : String */;
993 val
* var139
/* : MPropDef */;
994 val
* var140
/* : String */;
995 static val
* varonce141
;
996 val
* var142
/* : String */;
997 char* var143
/* : NativeString */;
998 long var144
/* : Int */;
999 val
* var145
/* : String */;
1000 static val
* varonce146
;
1001 val
* var147
/* : String */;
1002 char* var148
/* : NativeString */;
1003 long var149
/* : Int */;
1004 val
* var150
/* : String */;
1005 static val
* varonce151
;
1006 val
* var152
/* : String */;
1007 char* var153
/* : NativeString */;
1008 long var154
/* : Int */;
1009 val
* var155
/* : String */;
1010 val
* var156
/* : Array[Object] */;
1011 long var157
/* : Int */;
1012 val
* var158
/* : NativeArray[Object] */;
1013 val
* var159
/* : String */;
1014 static val
* varonce161
;
1015 val
* var162
/* : String */;
1016 char* var163
/* : NativeString */;
1017 long var164
/* : Int */;
1018 val
* var165
/* : String */;
1020 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
1022 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
1023 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var1
) /* live_types on <var1:RapidTypeAnalysis>*/;
1024 var3
= ((short int (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var2
, var_mtype
) /* has on <var2:HashSet[MClassType]>*/;
1026 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/global_compiler.nit", 157);
1032 var5
= "/* runtime class ";
1034 var7
= string__NativeString__to_s_with_length(var5
, var6
);
1043 var12
= string__NativeString__to_s_with_length(var10
, var11
);
1047 var13
= NEW_array__Array(&type_array__Arraykernel__Object
);
1048 { /* var13 = array_instance Array[Object] */
1050 var15
= NEW_array__NativeArray(var14
, &type_array__NativeArraykernel__Object
);
1051 ((struct instance_array__NativeArray
*)var15
)->values
[0] = (val
*) var4
;
1052 ((struct instance_array__NativeArray
*)var15
)->values
[1] = (val
*) var_mtype
;
1053 ((struct instance_array__NativeArray
*)var15
)->values
[2] = (val
*) var9
;
1054 ((void (*)(val
*, val
*, long))(var13
->class->vft
[COLOR_array__Array__with_native
]))(var13
, var15
, var14
) /* with_native on <var13:Array[Object]>*/;
1055 CHECK_NEW_array__Array(var13
);
1057 var16
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_string__Object__to_s
]))(var13
) /* to_s on <var13:Array[Object]>*/;
1058 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var16
) /* add_decl on <var_v:CodeWriter>*/;
1059 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
1060 var18
= ((long (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__MapRead__length
]))(var17
) /* length on <var17:HashMap[MClassType, String]>*/;
1067 var23
= string__NativeString__to_s_with_length(var21
, var22
);
1071 var24
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1072 var25
= ((val
* (*)(val
*, val
*))(var20
->class->vft
[COLOR_string__String___43d
]))(var20
, var24
) /* + on <var20:String>*/;
1074 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
1075 ((void (*)(val
*, val
*, val
*))(var26
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var26
, var_mtype
, var_idname
) /* []= on <var26:HashMap[MClassType, String]>*/;
1081 var31
= string__NativeString__to_s_with_length(var29
, var30
);
1090 var36
= string__NativeString__to_s_with_length(var34
, var35
);
1099 var41
= string__NativeString__to_s_with_length(var39
, var40
);
1108 var46
= string__NativeString__to_s_with_length(var44
, var45
);
1112 var47
= NEW_array__Array(&type_array__Arraykernel__Object
);
1113 { /* var47 = array_instance Array[Object] */
1115 var49
= NEW_array__NativeArray(var48
, &type_array__NativeArraykernel__Object
);
1116 ((struct instance_array__NativeArray
*)var49
)->values
[0] = (val
*) var28
;
1117 ((struct instance_array__NativeArray
*)var49
)->values
[1] = (val
*) var_idname
;
1118 ((struct instance_array__NativeArray
*)var49
)->values
[2] = (val
*) var33
;
1119 var50
= BOX_kernel__Int(var_idnum
); /* autobox from Int to Object */
1120 ((struct instance_array__NativeArray
*)var49
)->values
[3] = (val
*) var50
;
1121 ((struct instance_array__NativeArray
*)var49
)->values
[4] = (val
*) var38
;
1122 ((struct instance_array__NativeArray
*)var49
)->values
[5] = (val
*) var_mtype
;
1123 ((struct instance_array__NativeArray
*)var49
)->values
[6] = (val
*) var43
;
1124 ((void (*)(val
*, val
*, long))(var47
->class->vft
[COLOR_array__Array__with_native
]))(var47
, var49
, var48
) /* with_native on <var47:Array[Object]>*/;
1125 CHECK_NEW_array__Array(var47
);
1127 var51
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_string__Object__to_s
]))(var47
) /* to_s on <var47:Array[Object]>*/;
1128 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var51
) /* add_decl on <var_v:CodeWriter>*/;
1134 var56
= string__NativeString__to_s_with_length(var54
, var55
);
1138 var57
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1144 var62
= string__NativeString__to_s_with_length(var60
, var61
);
1148 var63
= NEW_array__Array(&type_array__Arraykernel__Object
);
1149 { /* var63 = array_instance Array[Object] */
1151 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArraykernel__Object
);
1152 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var53
;
1153 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var57
;
1154 ((struct instance_array__NativeArray
*)var65
)->values
[2] = (val
*) var59
;
1155 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Object]>*/;
1156 CHECK_NEW_array__Array(var63
);
1158 var66
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_string__Object__to_s
]))(var63
) /* to_s on <var63:Array[Object]>*/;
1159 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var66
) /* add_decl on <var_v:CodeWriter>*/;
1163 var69
= "int classid; /* must be ";
1165 var71
= string__NativeString__to_s_with_length(var69
, var70
);
1174 var76
= string__NativeString__to_s_with_length(var74
, var75
);
1178 var77
= NEW_array__Array(&type_array__Arraykernel__Object
);
1179 { /* var77 = array_instance Array[Object] */
1181 var79
= NEW_array__NativeArray(var78
, &type_array__NativeArraykernel__Object
);
1182 ((struct instance_array__NativeArray
*)var79
)->values
[0] = (val
*) var68
;
1183 ((struct instance_array__NativeArray
*)var79
)->values
[1] = (val
*) var_idname
;
1184 ((struct instance_array__NativeArray
*)var79
)->values
[2] = (val
*) var73
;
1185 ((void (*)(val
*, val
*, long))(var77
->class->vft
[COLOR_array__Array__with_native
]))(var77
, var79
, var78
) /* with_native on <var77:Array[Object]>*/;
1186 CHECK_NEW_array__Array(var77
);
1188 var80
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_string__Object__to_s
]))(var77
) /* to_s on <var77:Array[Object]>*/;
1189 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var80
) /* add_decl on <var_v:CodeWriter>*/;
1190 var81
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
1191 var82
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_model__MClass__name
]))(var81
) /* name on <var81:MClass>*/;
1195 var85
= "NativeArray";
1197 var87
= string__NativeString__to_s_with_length(var85
, var86
);
1201 var88
= ((short int (*)(val
*, val
*))(var82
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var82
, var84
) /* == on <var82:String>*/;
1203 var89
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
1204 var90
= ((val
* (*)(val
*))(var89
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var89
) /* first on <var89:Array[MType]>*/;
1205 var91
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var90
) /* ctype on <var90:nullable Object(MType)>*/;
1209 var94
= " values[1];";
1211 var96
= string__NativeString__to_s_with_length(var94
, var95
);
1215 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
1216 { /* var97 = array_instance Array[Object] */
1218 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
1219 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var91
;
1220 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var93
;
1221 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
1222 CHECK_NEW_array__Array(var97
);
1224 var100
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
1225 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var100
) /* add_decl on <var_v:CodeWriter>*/;
1228 var101
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1230 var103
= varonce102
;
1234 var106
= string__NativeString__to_s_with_length(var104
, var105
);
1236 varonce102
= var103
;
1238 var107
= ((short int (*)(val
*, val
*))(var101
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var101
, var103
) /* != on <var101:String>*/;
1240 var108
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1242 var110
= varonce109
;
1246 var113
= string__NativeString__to_s_with_length(var111
, var112
);
1248 varonce109
= var110
;
1250 var114
= NEW_array__Array(&type_array__Arraykernel__Object
);
1251 { /* var114 = array_instance Array[Object] */
1253 var116
= NEW_array__NativeArray(var115
, &type_array__NativeArraykernel__Object
);
1254 ((struct instance_array__NativeArray
*)var116
)->values
[0] = (val
*) var108
;
1255 ((struct instance_array__NativeArray
*)var116
)->values
[1] = (val
*) var110
;
1256 ((void (*)(val
*, val
*, long))(var114
->class->vft
[COLOR_array__Array__with_native
]))(var114
, var116
, var115
) /* with_native on <var114:Array[Object]>*/;
1257 CHECK_NEW_array__Array(var114
);
1259 var117
= ((val
* (*)(val
*))(var114
->class->vft
[COLOR_string__Object__to_s
]))(var114
) /* to_s on <var114:Array[Object]>*/;
1260 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var117
) /* add_decl on <var_v:CodeWriter>*/;
1263 var118
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:GlobalCompiler>*/;
1264 var119
= ((val
* (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var_mtype
, var118
) /* collect_mclassdefs on <var_mtype:MClassType>*/;
1265 var120
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var119
) /* iterator on <var119:Set[MClassDef]>*/;
1267 var121
= ((short int (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var120
) /* is_ok on <var120:Iterator[nullable Object]>*/;
1269 var122
= ((val
* (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var120
) /* item on <var120:Iterator[nullable Object]>*/;
1271 var123
= ((val
* (*)(val
*))(var_cd
->class->vft
[COLOR_model__MClassDef__intro_mproperties
]))(var_cd
) /* intro_mproperties on <var_cd:MClassDef>*/;
1272 var124
= ((val
* (*)(val
*))(var123
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var123
) /* iterator on <var123:Array[MProperty]>*/;
1274 var125
= ((short int (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var124
) /* is_ok on <var124:Iterator[nullable Object]>*/;
1276 var126
= ((val
* (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var124
) /* item on <var124:Iterator[nullable Object]>*/;
1278 /* <var_p:MProperty> isa MAttribute */
1279 cltype
= type_model__MAttribute
.color
;
1280 idtype
= type_model__MAttribute
.id
;
1281 if(cltype
>= var_p
->type
->table_size
) {
1284 var127
= var_p
->type
->type_table
[cltype
] == idtype
;
1288 goto CONTINUE_label
;
1291 var129
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MProperty__intro
]))(var_p
) /* intro on <var_p:MProperty(MAttribute)>*/;
1292 var130
= ((val
* (*)(val
*))(var129
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var129
) /* static_mtype on <var129:MPropDef(MAttributeDef)>*/;
1293 if (var130
== NULL
) {
1294 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 184);
1298 var131
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:GlobalCompiler>*/;
1299 var132
= ((val
* (*)(val
*, val
*, val
*))(var_t
->class->vft
[COLOR_model__MType__anchor_to
]))(var_t
, var131
, var_mtype
) /* anchor_to on <var_t:MType>*/;
1301 var133
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t
) /* ctype on <var_t:MType>*/;
1303 var135
= varonce134
;
1307 var138
= string__NativeString__to_s_with_length(var136
, var137
);
1309 varonce134
= var135
;
1311 var139
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MProperty__intro
]))(var_p
) /* intro on <var_p:MProperty(MAttribute)>*/;
1312 var140
= ((val
* (*)(val
*))(var139
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var139
) /* c_name on <var139:MPropDef(MAttributeDef)>*/;
1314 var142
= varonce141
;
1318 var145
= string__NativeString__to_s_with_length(var143
, var144
);
1320 varonce141
= var142
;
1323 var147
= varonce146
;
1327 var150
= string__NativeString__to_s_with_length(var148
, var149
);
1329 varonce146
= var147
;
1332 var152
= varonce151
;
1336 var155
= string__NativeString__to_s_with_length(var153
, var154
);
1338 varonce151
= var152
;
1340 var156
= NEW_array__Array(&type_array__Arraykernel__Object
);
1341 { /* var156 = array_instance Array[Object] */
1343 var158
= NEW_array__NativeArray(var157
, &type_array__NativeArraykernel__Object
);
1344 ((struct instance_array__NativeArray
*)var158
)->values
[0] = (val
*) var133
;
1345 ((struct instance_array__NativeArray
*)var158
)->values
[1] = (val
*) var135
;
1346 ((struct instance_array__NativeArray
*)var158
)->values
[2] = (val
*) var140
;
1347 ((struct instance_array__NativeArray
*)var158
)->values
[3] = (val
*) var142
;
1348 ((struct instance_array__NativeArray
*)var158
)->values
[4] = (val
*) var_p
;
1349 ((struct instance_array__NativeArray
*)var158
)->values
[5] = (val
*) var147
;
1350 ((struct instance_array__NativeArray
*)var158
)->values
[6] = (val
*) var_t
;
1351 ((struct instance_array__NativeArray
*)var158
)->values
[7] = (val
*) var152
;
1352 ((void (*)(val
*, val
*, long))(var156
->class->vft
[COLOR_array__Array__with_native
]))(var156
, var158
, var157
) /* with_native on <var156:Array[Object]>*/;
1353 CHECK_NEW_array__Array(var156
);
1355 var159
= ((val
* (*)(val
*))(var156
->class->vft
[COLOR_string__Object__to_s
]))(var156
) /* to_s on <var156:Array[Object]>*/;
1356 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var159
) /* add_decl on <var_v:CodeWriter>*/;
1357 CONTINUE_label
: (void)0;
1358 ((void (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var124
) /* next on <var124:Iterator[nullable Object]>*/;
1360 BREAK_label
: (void)0;
1361 CONTINUE_label160
: (void)0;
1362 ((void (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var120
) /* next on <var120:Iterator[nullable Object]>*/;
1364 BREAK_label160
: (void)0;
1366 var162
= varonce161
;
1370 var165
= string__NativeString__to_s_with_length(var163
, var164
);
1372 varonce161
= var162
;
1374 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var162
) /* add_decl on <var_v:CodeWriter>*/;
1377 /* method global_compiler#GlobalCompiler#declare_runtimeclass for (self: Object, MClassType) */
1378 void VIRTUAL_global_compiler__GlobalCompiler__declare_runtimeclass(val
* self
, val
* p0
) {
1379 global_compiler__GlobalCompiler__declare_runtimeclass(self
, p0
);
1382 /* method global_compiler#GlobalCompiler#generate_init_instance for (self: GlobalCompiler, MClassType) */
1383 void global_compiler__GlobalCompiler__generate_init_instance(val
* self
, val
* p0
) {
1384 val
* var_mtype
/* var mtype: MClassType */;
1385 val
* var
/* : RapidTypeAnalysis */;
1386 val
* var1
/* : HashSet[MClassType] */;
1387 short int var2
/* : Bool */;
1388 val
* var3
/* : String */;
1389 static val
* varonce
;
1390 val
* var4
/* : String */;
1391 char* var5
/* : NativeString */;
1392 long var6
/* : Int */;
1393 val
* var7
/* : String */;
1394 short int var8
/* : Bool */;
1395 val
* var9
/* : AbstractCompilerVisitor */;
1396 val
* var_v
/* var v: GlobalCompilerVisitor */;
1397 val
* var10
/* : MClass */;
1398 val
* var11
/* : String */;
1399 static val
* varonce12
;
1400 val
* var13
/* : String */;
1401 char* var14
/* : NativeString */;
1402 long var15
/* : Int */;
1403 val
* var16
/* : String */;
1404 short int var17
/* : Bool */;
1405 short int var_is_native_array
/* var is_native_array: Bool */;
1406 static val
* varonce18
;
1407 val
* var19
/* : String */;
1408 char* var20
/* : NativeString */;
1409 long var21
/* : Int */;
1410 val
* var22
/* : String */;
1411 val
* var_sig
/* var sig: nullable Object */;
1412 static val
* varonce23
;
1413 val
* var24
/* : String */;
1414 char* var25
/* : NativeString */;
1415 long var26
/* : Int */;
1416 val
* var27
/* : String */;
1417 val
* var28
/* : CodeWriter */;
1418 val
* var29
/* : String */;
1419 static val
* varonce30
;
1420 val
* var31
/* : String */;
1421 char* var32
/* : NativeString */;
1422 long var33
/* : Int */;
1423 val
* var34
/* : String */;
1424 val
* var35
/* : String */;
1425 static val
* varonce36
;
1426 val
* var37
/* : String */;
1427 char* var38
/* : NativeString */;
1428 long var39
/* : Int */;
1429 val
* var40
/* : String */;
1430 static val
* varonce41
;
1431 val
* var42
/* : String */;
1432 char* var43
/* : NativeString */;
1433 long var44
/* : Int */;
1434 val
* var45
/* : String */;
1435 val
* var46
/* : Array[Object] */;
1436 long var47
/* : Int */;
1437 val
* var48
/* : NativeArray[Object] */;
1438 val
* var49
/* : String */;
1439 static val
* varonce50
;
1440 val
* var51
/* : String */;
1441 char* var52
/* : NativeString */;
1442 long var53
/* : Int */;
1443 val
* var54
/* : String */;
1444 static val
* varonce55
;
1445 val
* var56
/* : String */;
1446 char* var57
/* : NativeString */;
1447 long var58
/* : Int */;
1448 val
* var59
/* : String */;
1449 val
* var60
/* : Array[Object] */;
1450 long var61
/* : Int */;
1451 val
* var62
/* : NativeArray[Object] */;
1452 val
* var63
/* : String */;
1453 val
* var64
/* : String */;
1454 static val
* varonce65
;
1455 val
* var66
/* : String */;
1456 char* var67
/* : NativeString */;
1457 long var68
/* : Int */;
1458 val
* var69
/* : String */;
1459 val
* var70
/* : String */;
1460 static val
* varonce71
;
1461 val
* var72
/* : String */;
1462 char* var73
/* : NativeString */;
1463 long var74
/* : Int */;
1464 val
* var75
/* : String */;
1465 static val
* varonce76
;
1466 val
* var77
/* : String */;
1467 char* var78
/* : NativeString */;
1468 long var79
/* : Int */;
1469 val
* var80
/* : String */;
1470 val
* var81
/* : Array[Object] */;
1471 long var82
/* : Int */;
1472 val
* var83
/* : NativeArray[Object] */;
1473 val
* var84
/* : String */;
1474 val
* var85
/* : RuntimeVariable */;
1475 val
* var_res
/* var res: RuntimeVariable */;
1476 short int var86
/* : Bool */;
1477 val
* var87
/* : Array[MType] */;
1478 val
* var88
/* : nullable Object */;
1479 val
* var_mtype_elt
/* var mtype_elt: MType */;
1480 static val
* varonce89
;
1481 val
* var90
/* : String */;
1482 char* var91
/* : NativeString */;
1483 long var92
/* : Int */;
1484 val
* var93
/* : String */;
1485 val
* var94
/* : String */;
1486 static val
* varonce95
;
1487 val
* var96
/* : String */;
1488 char* var97
/* : NativeString */;
1489 long var98
/* : Int */;
1490 val
* var99
/* : String */;
1491 val
* var100
/* : String */;
1492 static val
* varonce101
;
1493 val
* var102
/* : String */;
1494 char* var103
/* : NativeString */;
1495 long var104
/* : Int */;
1496 val
* var105
/* : String */;
1497 val
* var106
/* : Array[Object] */;
1498 long var107
/* : Int */;
1499 val
* var108
/* : NativeArray[Object] */;
1500 val
* var109
/* : String */;
1501 static val
* varonce110
;
1502 val
* var111
/* : String */;
1503 char* var112
/* : NativeString */;
1504 long var113
/* : Int */;
1505 val
* var114
/* : String */;
1506 val
* var115
/* : String */;
1507 static val
* varonce116
;
1508 val
* var117
/* : String */;
1509 char* var118
/* : NativeString */;
1510 long var119
/* : Int */;
1511 val
* var120
/* : String */;
1512 val
* var121
/* : Array[Object] */;
1513 long var122
/* : Int */;
1514 val
* var123
/* : NativeArray[Object] */;
1515 val
* var124
/* : String */;
1516 static val
* varonce125
;
1517 val
* var126
/* : String */;
1518 char* var127
/* : NativeString */;
1519 long var128
/* : Int */;
1520 val
* var129
/* : String */;
1521 val
* var130
/* : String */;
1522 static val
* varonce131
;
1523 val
* var132
/* : String */;
1524 char* var133
/* : NativeString */;
1525 long var134
/* : Int */;
1526 val
* var135
/* : String */;
1527 val
* var136
/* : Array[Object] */;
1528 long var137
/* : Int */;
1529 val
* var138
/* : NativeArray[Object] */;
1530 val
* var139
/* : String */;
1531 static val
* varonce140
;
1532 val
* var141
/* : String */;
1533 char* var142
/* : NativeString */;
1534 long var143
/* : Int */;
1535 val
* var144
/* : String */;
1536 static val
* varonce145
;
1537 val
* var146
/* : String */;
1538 char* var147
/* : NativeString */;
1539 long var148
/* : Int */;
1540 val
* var149
/* : String */;
1541 val
* var150
/* : Array[Object] */;
1542 long var151
/* : Int */;
1543 val
* var152
/* : NativeArray[Object] */;
1544 val
* var153
/* : String */;
1545 static val
* varonce154
;
1546 val
* var155
/* : String */;
1547 char* var156
/* : NativeString */;
1548 long var157
/* : Int */;
1549 val
* var158
/* : String */;
1551 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
1552 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var
) /* live_types on <var:RapidTypeAnalysis>*/;
1553 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var1
, var_mtype
) /* has on <var1:HashSet[MClassType]>*/;
1555 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/global_compiler.nit", 195);
1558 var3
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1564 var7
= string__NativeString__to_s_with_length(var5
, var6
);
1568 var8
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var3
, var4
) /* == on <var3:String>*/;
1570 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/global_compiler.nit", 196);
1573 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:GlobalCompiler>*/;
1575 var10
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
1576 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_model__MClass__name
]))(var10
) /* name on <var10:MClass>*/;
1580 var14
= "NativeArray";
1582 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1586 var17
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var11
, var13
) /* == on <var11:String>*/;
1587 var_is_native_array
= var17
;
1588 if (var_is_native_array
){
1592 var20
= "int length";
1594 var22
= string__NativeString__to_s_with_length(var20
, var21
);
1605 var27
= string__NativeString__to_s_with_length(var25
, var26
);
1611 var28
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
1612 var29
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1618 var34
= string__NativeString__to_s_with_length(var32
, var33
);
1622 var35
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1628 var40
= string__NativeString__to_s_with_length(var38
, var39
);
1637 var45
= string__NativeString__to_s_with_length(var43
, var44
);
1641 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
1642 { /* var46 = array_instance Array[Object] */
1644 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
1645 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var29
;
1646 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var31
;
1647 ((struct instance_array__NativeArray
*)var48
)->values
[2] = (val
*) var35
;
1648 ((struct instance_array__NativeArray
*)var48
)->values
[3] = (val
*) var37
;
1649 ((struct instance_array__NativeArray
*)var48
)->values
[4] = (val
*) var_sig
;
1650 ((struct instance_array__NativeArray
*)var48
)->values
[5] = (val
*) var42
;
1651 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
1652 CHECK_NEW_array__Array(var46
);
1654 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
1655 ((void (*)(val
*, val
*))(var28
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var28
, var49
) /* add_decl on <var28:CodeWriter>*/;
1659 var52
= "/* allocate ";
1661 var54
= string__NativeString__to_s_with_length(var52
, var53
);
1670 var59
= string__NativeString__to_s_with_length(var57
, var58
);
1674 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
1675 { /* var60 = array_instance Array[Object] */
1677 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
1678 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var51
;
1679 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var_mtype
;
1680 ((struct instance_array__NativeArray
*)var62
)->values
[2] = (val
*) var56
;
1681 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
1682 CHECK_NEW_array__Array(var60
);
1684 var63
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
1685 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var63
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
1686 var64
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1692 var69
= string__NativeString__to_s_with_length(var67
, var68
);
1696 var70
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1702 var75
= string__NativeString__to_s_with_length(var73
, var74
);
1711 var80
= string__NativeString__to_s_with_length(var78
, var79
);
1715 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
1716 { /* var81 = array_instance Array[Object] */
1718 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
1719 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var64
;
1720 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var66
;
1721 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var70
;
1722 ((struct instance_array__NativeArray
*)var83
)->values
[3] = (val
*) var72
;
1723 ((struct instance_array__NativeArray
*)var83
)->values
[4] = (val
*) var_sig
;
1724 ((struct instance_array__NativeArray
*)var83
)->values
[5] = (val
*) var77
;
1725 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
1726 CHECK_NEW_array__Array(var81
);
1728 var84
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
1729 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var84
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
1730 var85
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(var_v
, var_mtype
) /* new_var on <var_v:GlobalCompilerVisitor>*/;
1733 ((void (*)(val
*, short int))(var_res
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res
, var86
) /* is_exact= on <var_res:RuntimeVariable>*/;
1734 if (var_is_native_array
){
1735 var87
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
1736 var88
= ((val
* (*)(val
*))(var87
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var87
) /* first on <var87:Array[MType]>*/;
1737 var_mtype_elt
= var88
;
1741 var91
= " = nit_alloc(sizeof(struct ";
1743 var93
= string__NativeString__to_s_with_length(var91
, var92
);
1747 var94
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1751 var97
= ") + length*sizeof(";
1753 var99
= string__NativeString__to_s_with_length(var97
, var98
);
1757 var100
= ((val
* (*)(val
*))(var_mtype_elt
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype_elt
) /* ctype on <var_mtype_elt:MType>*/;
1759 var102
= varonce101
;
1763 var105
= string__NativeString__to_s_with_length(var103
, var104
);
1765 varonce101
= var102
;
1767 var106
= NEW_array__Array(&type_array__Arraykernel__Object
);
1768 { /* var106 = array_instance Array[Object] */
1770 var108
= NEW_array__NativeArray(var107
, &type_array__NativeArraykernel__Object
);
1771 ((struct instance_array__NativeArray
*)var108
)->values
[0] = (val
*) var_res
;
1772 ((struct instance_array__NativeArray
*)var108
)->values
[1] = (val
*) var90
;
1773 ((struct instance_array__NativeArray
*)var108
)->values
[2] = (val
*) var94
;
1774 ((struct instance_array__NativeArray
*)var108
)->values
[3] = (val
*) var96
;
1775 ((struct instance_array__NativeArray
*)var108
)->values
[4] = (val
*) var100
;
1776 ((struct instance_array__NativeArray
*)var108
)->values
[5] = (val
*) var102
;
1777 ((void (*)(val
*, val
*, long))(var106
->class->vft
[COLOR_array__Array__with_native
]))(var106
, var108
, var107
) /* with_native on <var106:Array[Object]>*/;
1778 CHECK_NEW_array__Array(var106
);
1780 var109
= ((val
* (*)(val
*))(var106
->class->vft
[COLOR_string__Object__to_s
]))(var106
) /* to_s on <var106:Array[Object]>*/;
1781 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var109
) /* add on <var_v:GlobalCompilerVisitor>*/;
1784 var111
= varonce110
;
1786 var112
= " = nit_alloc(sizeof(struct ";
1788 var114
= string__NativeString__to_s_with_length(var112
, var113
);
1790 varonce110
= var111
;
1792 var115
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1794 var117
= varonce116
;
1798 var120
= string__NativeString__to_s_with_length(var118
, var119
);
1800 varonce116
= var117
;
1802 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
1803 { /* var121 = array_instance Array[Object] */
1805 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
1806 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var_res
;
1807 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var111
;
1808 ((struct instance_array__NativeArray
*)var123
)->values
[2] = (val
*) var115
;
1809 ((struct instance_array__NativeArray
*)var123
)->values
[3] = (val
*) var117
;
1810 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
1811 CHECK_NEW_array__Array(var121
);
1813 var124
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
1814 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var124
) /* add on <var_v:GlobalCompilerVisitor>*/;
1817 var126
= varonce125
;
1819 var127
= "->classid = ";
1821 var129
= string__NativeString__to_s_with_length(var127
, var128
);
1823 varonce125
= var126
;
1825 var130
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(self
, var_mtype
) /* classid on <self:GlobalCompiler>*/;
1827 var132
= varonce131
;
1831 var135
= string__NativeString__to_s_with_length(var133
, var134
);
1833 varonce131
= var132
;
1835 var136
= NEW_array__Array(&type_array__Arraykernel__Object
);
1836 { /* var136 = array_instance Array[Object] */
1838 var138
= NEW_array__NativeArray(var137
, &type_array__NativeArraykernel__Object
);
1839 ((struct instance_array__NativeArray
*)var138
)->values
[0] = (val
*) var_res
;
1840 ((struct instance_array__NativeArray
*)var138
)->values
[1] = (val
*) var126
;
1841 ((struct instance_array__NativeArray
*)var138
)->values
[2] = (val
*) var130
;
1842 ((struct instance_array__NativeArray
*)var138
)->values
[3] = (val
*) var132
;
1843 ((void (*)(val
*, val
*, long))(var136
->class->vft
[COLOR_array__Array__with_native
]))(var136
, var138
, var137
) /* with_native on <var136:Array[Object]>*/;
1844 CHECK_NEW_array__Array(var136
);
1846 var139
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_string__Object__to_s
]))(var136
) /* to_s on <var136:Array[Object]>*/;
1847 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var139
) /* add on <var_v:GlobalCompilerVisitor>*/;
1848 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__generate_init_attr
]))(self
, var_v
, var_res
, var_mtype
) /* generate_init_attr on <self:GlobalCompiler>*/;
1850 var141
= varonce140
;
1854 var144
= string__NativeString__to_s_with_length(var142
, var143
);
1856 varonce140
= var141
;
1859 var146
= varonce145
;
1863 var149
= string__NativeString__to_s_with_length(var147
, var148
);
1865 varonce145
= var146
;
1867 var150
= NEW_array__Array(&type_array__Arraykernel__Object
);
1868 { /* var150 = array_instance Array[Object] */
1870 var152
= NEW_array__NativeArray(var151
, &type_array__NativeArraykernel__Object
);
1871 ((struct instance_array__NativeArray
*)var152
)->values
[0] = (val
*) var141
;
1872 ((struct instance_array__NativeArray
*)var152
)->values
[1] = (val
*) var_res
;
1873 ((struct instance_array__NativeArray
*)var152
)->values
[2] = (val
*) var146
;
1874 ((void (*)(val
*, val
*, long))(var150
->class->vft
[COLOR_array__Array__with_native
]))(var150
, var152
, var151
) /* with_native on <var150:Array[Object]>*/;
1875 CHECK_NEW_array__Array(var150
);
1877 var153
= ((val
* (*)(val
*))(var150
->class->vft
[COLOR_string__Object__to_s
]))(var150
) /* to_s on <var150:Array[Object]>*/;
1878 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var153
) /* add on <var_v:GlobalCompilerVisitor>*/;
1880 var155
= varonce154
;
1884 var158
= string__NativeString__to_s_with_length(var156
, var157
);
1886 varonce154
= var155
;
1888 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var155
) /* add on <var_v:GlobalCompilerVisitor>*/;
1891 /* method global_compiler#GlobalCompiler#generate_init_instance for (self: Object, MClassType) */
1892 void VIRTUAL_global_compiler__GlobalCompiler__generate_init_instance(val
* self
, val
* p0
) {
1893 global_compiler__GlobalCompiler__generate_init_instance(self
, p0
);
1896 /* method global_compiler#GlobalCompiler#generate_check_init_instance for (self: GlobalCompiler, MClassType) */
1897 void global_compiler__GlobalCompiler__generate_check_init_instance(val
* self
, val
* p0
) {
1898 val
* var_mtype
/* var mtype: MClassType */;
1899 val
* var
/* : ModelBuilder */;
1900 val
* var1
/* : ToolContext */;
1901 val
* var2
/* : OptionBool */;
1902 val
* var3
/* : nullable Object */;
1903 short int var4
/* : Bool */;
1904 val
* var5
/* : AbstractCompilerVisitor */;
1905 val
* var_v
/* var v: GlobalCompilerVisitor */;
1906 val
* var6
/* : RuntimeVariable */;
1907 static val
* varonce
;
1908 val
* var7
/* : String */;
1909 char* var8
/* : NativeString */;
1910 long var9
/* : Int */;
1911 val
* var10
/* : String */;
1912 val
* var_res
/* var res: RuntimeVariable */;
1913 val
* var11
/* : CodeWriter */;
1914 static val
* varonce12
;
1915 val
* var13
/* : String */;
1916 char* var14
/* : NativeString */;
1917 long var15
/* : Int */;
1918 val
* var16
/* : String */;
1919 val
* var17
/* : String */;
1920 static val
* varonce18
;
1921 val
* var19
/* : String */;
1922 char* var20
/* : NativeString */;
1923 long var21
/* : Int */;
1924 val
* var22
/* : String */;
1925 val
* var23
/* : String */;
1926 static val
* varonce24
;
1927 val
* var25
/* : String */;
1928 char* var26
/* : NativeString */;
1929 long var27
/* : Int */;
1930 val
* var28
/* : String */;
1931 val
* var29
/* : Array[Object] */;
1932 long var30
/* : Int */;
1933 val
* var31
/* : NativeArray[Object] */;
1934 val
* var32
/* : String */;
1935 static val
* varonce33
;
1936 val
* var34
/* : String */;
1937 char* var35
/* : NativeString */;
1938 long var36
/* : Int */;
1939 val
* var37
/* : String */;
1940 static val
* varonce38
;
1941 val
* var39
/* : String */;
1942 char* var40
/* : NativeString */;
1943 long var41
/* : Int */;
1944 val
* var42
/* : String */;
1945 val
* var43
/* : Array[Object] */;
1946 long var44
/* : Int */;
1947 val
* var45
/* : NativeArray[Object] */;
1948 val
* var46
/* : String */;
1949 static val
* varonce47
;
1950 val
* var48
/* : String */;
1951 char* var49
/* : NativeString */;
1952 long var50
/* : Int */;
1953 val
* var51
/* : String */;
1954 val
* var52
/* : String */;
1955 static val
* varonce53
;
1956 val
* var54
/* : String */;
1957 char* var55
/* : NativeString */;
1958 long var56
/* : Int */;
1959 val
* var57
/* : String */;
1960 val
* var58
/* : String */;
1961 static val
* varonce59
;
1962 val
* var60
/* : String */;
1963 char* var61
/* : NativeString */;
1964 long var62
/* : Int */;
1965 val
* var63
/* : String */;
1966 static val
* varonce64
;
1967 val
* var65
/* : String */;
1968 char* var66
/* : NativeString */;
1969 long var67
/* : Int */;
1970 val
* var68
/* : String */;
1971 val
* var69
/* : Array[Object] */;
1972 long var70
/* : Int */;
1973 val
* var71
/* : NativeArray[Object] */;
1974 val
* var72
/* : String */;
1975 static val
* varonce73
;
1976 val
* var74
/* : String */;
1977 char* var75
/* : NativeString */;
1978 long var76
/* : Int */;
1979 val
* var77
/* : String */;
1981 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:GlobalCompiler>*/;
1982 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var
) /* toolcontext on <var:ModelBuilder>*/;
1983 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_no_check_initialization
]))(var1
) /* opt_no_check_initialization on <var1:ToolContext>*/;
1984 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_opts__Option__value
]))(var2
) /* value on <var2:OptionBool>*/;
1985 var4
= ((struct instance_kernel__Bool
*)var3
)->value
; /* autounbox from nullable Object to Bool */;
1990 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:GlobalCompiler>*/;
1992 var6
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
1998 var10
= string__NativeString__to_s_with_length(var8
, var9
);
2002 ((void (*)(val
*, val
*, val
*, val
*))(var6
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__init
]))(var6
, var7
, var_mtype
, var_mtype
) /* init on <var6:RuntimeVariable>*/;
2003 CHECK_NEW_abstract_compiler__RuntimeVariable(var6
);
2005 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
2009 var14
= "void CHECK_NEW_";
2011 var16
= string__NativeString__to_s_with_length(var14
, var15
);
2015 var17
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2021 var22
= string__NativeString__to_s_with_length(var20
, var21
);
2025 var23
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2031 var28
= string__NativeString__to_s_with_length(var26
, var27
);
2035 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
2036 { /* var29 = array_instance Array[Object] */
2038 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
2039 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var13
;
2040 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var17
;
2041 ((struct instance_array__NativeArray
*)var31
)->values
[2] = (val
*) var19
;
2042 ((struct instance_array__NativeArray
*)var31
)->values
[3] = (val
*) var23
;
2043 ((struct instance_array__NativeArray
*)var31
)->values
[4] = (val
*) var25
;
2044 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
2045 CHECK_NEW_array__Array(var29
);
2047 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
2048 ((void (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var11
, var32
) /* add_decl on <var11:CodeWriter>*/;
2052 var35
= "/* allocate ";
2054 var37
= string__NativeString__to_s_with_length(var35
, var36
);
2063 var42
= string__NativeString__to_s_with_length(var40
, var41
);
2067 var43
= NEW_array__Array(&type_array__Arraykernel__Object
);
2068 { /* var43 = array_instance Array[Object] */
2070 var45
= NEW_array__NativeArray(var44
, &type_array__NativeArraykernel__Object
);
2071 ((struct instance_array__NativeArray
*)var45
)->values
[0] = (val
*) var34
;
2072 ((struct instance_array__NativeArray
*)var45
)->values
[1] = (val
*) var_mtype
;
2073 ((struct instance_array__NativeArray
*)var45
)->values
[2] = (val
*) var39
;
2074 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[Object]>*/;
2075 CHECK_NEW_array__Array(var43
);
2077 var46
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_string__Object__to_s
]))(var43
) /* to_s on <var43:Array[Object]>*/;
2078 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var46
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
2082 var49
= "void CHECK_NEW_";
2084 var51
= string__NativeString__to_s_with_length(var49
, var50
);
2088 var52
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2094 var57
= string__NativeString__to_s_with_length(var55
, var56
);
2098 var58
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2104 var63
= string__NativeString__to_s_with_length(var61
, var62
);
2113 var68
= string__NativeString__to_s_with_length(var66
, var67
);
2117 var69
= NEW_array__Array(&type_array__Arraykernel__Object
);
2118 { /* var69 = array_instance Array[Object] */
2120 var71
= NEW_array__NativeArray(var70
, &type_array__NativeArraykernel__Object
);
2121 ((struct instance_array__NativeArray
*)var71
)->values
[0] = (val
*) var48
;
2122 ((struct instance_array__NativeArray
*)var71
)->values
[1] = (val
*) var52
;
2123 ((struct instance_array__NativeArray
*)var71
)->values
[2] = (val
*) var54
;
2124 ((struct instance_array__NativeArray
*)var71
)->values
[3] = (val
*) var58
;
2125 ((struct instance_array__NativeArray
*)var71
)->values
[4] = (val
*) var60
;
2126 ((struct instance_array__NativeArray
*)var71
)->values
[5] = (val
*) var_res
;
2127 ((struct instance_array__NativeArray
*)var71
)->values
[6] = (val
*) var65
;
2128 ((void (*)(val
*, val
*, long))(var69
->class->vft
[COLOR_array__Array__with_native
]))(var69
, var71
, var70
) /* with_native on <var69:Array[Object]>*/;
2129 CHECK_NEW_array__Array(var69
);
2131 var72
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_string__Object__to_s
]))(var69
) /* to_s on <var69:Array[Object]>*/;
2132 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var72
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
2133 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__generate_check_attr
]))(self
, var_v
, var_res
, var_mtype
) /* generate_check_attr on <self:GlobalCompiler>*/;
2139 var77
= string__NativeString__to_s_with_length(var75
, var76
);
2143 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var74
) /* add on <var_v:GlobalCompilerVisitor>*/;
2146 /* method global_compiler#GlobalCompiler#generate_check_init_instance for (self: Object, MClassType) */
2147 void VIRTUAL_global_compiler__GlobalCompiler__generate_check_init_instance(val
* self
, val
* p0
) {
2148 global_compiler__GlobalCompiler__generate_check_init_instance(self
, p0
);
2151 /* method global_compiler#GlobalCompiler#generate_box_instance for (self: GlobalCompiler, MClassType) */
2152 void global_compiler__GlobalCompiler__generate_box_instance(val
* self
, val
* p0
) {
2153 val
* var_mtype
/* var mtype: MClassType */;
2154 val
* var
/* : RapidTypeAnalysis */;
2155 val
* var1
/* : HashSet[MClassType] */;
2156 short int var2
/* : Bool */;
2157 val
* var3
/* : String */;
2158 static val
* varonce
;
2159 val
* var4
/* : String */;
2160 char* var5
/* : NativeString */;
2161 long var6
/* : Int */;
2162 val
* var7
/* : String */;
2163 short int var8
/* : Bool */;
2164 val
* var9
/* : AbstractCompilerVisitor */;
2165 val
* var_v
/* var v: GlobalCompilerVisitor */;
2166 val
* var10
/* : CodeWriter */;
2167 static val
* varonce11
;
2168 val
* var12
/* : String */;
2169 char* var13
/* : NativeString */;
2170 long var14
/* : Int */;
2171 val
* var15
/* : String */;
2172 val
* var16
/* : String */;
2173 static val
* varonce17
;
2174 val
* var18
/* : String */;
2175 char* var19
/* : NativeString */;
2176 long var20
/* : Int */;
2177 val
* var21
/* : String */;
2178 val
* var22
/* : String */;
2179 static val
* varonce23
;
2180 val
* var24
/* : String */;
2181 char* var25
/* : NativeString */;
2182 long var26
/* : Int */;
2183 val
* var27
/* : String */;
2184 val
* var28
/* : Array[Object] */;
2185 long var29
/* : Int */;
2186 val
* var30
/* : NativeArray[Object] */;
2187 val
* var31
/* : String */;
2188 static val
* varonce32
;
2189 val
* var33
/* : String */;
2190 char* var34
/* : NativeString */;
2191 long var35
/* : Int */;
2192 val
* var36
/* : String */;
2193 static val
* varonce37
;
2194 val
* var38
/* : String */;
2195 char* var39
/* : NativeString */;
2196 long var40
/* : Int */;
2197 val
* var41
/* : String */;
2198 val
* var42
/* : Array[Object] */;
2199 long var43
/* : Int */;
2200 val
* var44
/* : NativeArray[Object] */;
2201 val
* var45
/* : String */;
2202 static val
* varonce46
;
2203 val
* var47
/* : String */;
2204 char* var48
/* : NativeString */;
2205 long var49
/* : Int */;
2206 val
* var50
/* : String */;
2207 val
* var51
/* : String */;
2208 static val
* varonce52
;
2209 val
* var53
/* : String */;
2210 char* var54
/* : NativeString */;
2211 long var55
/* : Int */;
2212 val
* var56
/* : String */;
2213 val
* var57
/* : String */;
2214 static val
* varonce58
;
2215 val
* var59
/* : String */;
2216 char* var60
/* : NativeString */;
2217 long var61
/* : Int */;
2218 val
* var62
/* : String */;
2219 val
* var63
/* : Array[Object] */;
2220 long var64
/* : Int */;
2221 val
* var65
/* : NativeArray[Object] */;
2222 val
* var66
/* : String */;
2223 static val
* varonce67
;
2224 val
* var68
/* : String */;
2225 char* var69
/* : NativeString */;
2226 long var70
/* : Int */;
2227 val
* var71
/* : String */;
2228 val
* var72
/* : String */;
2229 static val
* varonce73
;
2230 val
* var74
/* : String */;
2231 char* var75
/* : NativeString */;
2232 long var76
/* : Int */;
2233 val
* var77
/* : String */;
2234 val
* var78
/* : String */;
2235 static val
* varonce79
;
2236 val
* var80
/* : String */;
2237 char* var81
/* : NativeString */;
2238 long var82
/* : Int */;
2239 val
* var83
/* : String */;
2240 val
* var84
/* : Array[Object] */;
2241 long var85
/* : Int */;
2242 val
* var86
/* : NativeArray[Object] */;
2243 val
* var87
/* : String */;
2244 static val
* varonce88
;
2245 val
* var89
/* : String */;
2246 char* var90
/* : NativeString */;
2247 long var91
/* : Int */;
2248 val
* var92
/* : String */;
2249 val
* var93
/* : String */;
2250 static val
* varonce94
;
2251 val
* var95
/* : String */;
2252 char* var96
/* : NativeString */;
2253 long var97
/* : Int */;
2254 val
* var98
/* : String */;
2255 val
* var99
/* : Array[Object] */;
2256 long var100
/* : Int */;
2257 val
* var101
/* : NativeArray[Object] */;
2258 val
* var102
/* : String */;
2259 static val
* varonce103
;
2260 val
* var104
/* : String */;
2261 char* var105
/* : NativeString */;
2262 long var106
/* : Int */;
2263 val
* var107
/* : String */;
2264 static val
* varonce108
;
2265 val
* var109
/* : String */;
2266 char* var110
/* : NativeString */;
2267 long var111
/* : Int */;
2268 val
* var112
/* : String */;
2269 static val
* varonce113
;
2270 val
* var114
/* : String */;
2271 char* var115
/* : NativeString */;
2272 long var116
/* : Int */;
2273 val
* var117
/* : String */;
2275 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
2276 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var
) /* live_types on <var:RapidTypeAnalysis>*/;
2277 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var1
, var_mtype
) /* has on <var1:HashSet[MClassType]>*/;
2279 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/global_compiler.nit", 241);
2282 var3
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2288 var7
= string__NativeString__to_s_with_length(var5
, var6
);
2292 var8
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var3
, var4
) /* != on <var3:String>*/;
2294 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/global_compiler.nit", 242);
2297 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:GlobalCompiler>*/;
2299 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
2303 var13
= "val* BOX_";
2305 var15
= string__NativeString__to_s_with_length(var13
, var14
);
2309 var16
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2315 var21
= string__NativeString__to_s_with_length(var19
, var20
);
2319 var22
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2325 var27
= string__NativeString__to_s_with_length(var25
, var26
);
2329 var28
= NEW_array__Array(&type_array__Arraykernel__Object
);
2330 { /* var28 = array_instance Array[Object] */
2332 var30
= NEW_array__NativeArray(var29
, &type_array__NativeArraykernel__Object
);
2333 ((struct instance_array__NativeArray
*)var30
)->values
[0] = (val
*) var12
;
2334 ((struct instance_array__NativeArray
*)var30
)->values
[1] = (val
*) var16
;
2335 ((struct instance_array__NativeArray
*)var30
)->values
[2] = (val
*) var18
;
2336 ((struct instance_array__NativeArray
*)var30
)->values
[3] = (val
*) var22
;
2337 ((struct instance_array__NativeArray
*)var30
)->values
[4] = (val
*) var24
;
2338 ((void (*)(val
*, val
*, long))(var28
->class->vft
[COLOR_array__Array__with_native
]))(var28
, var30
, var29
) /* with_native on <var28:Array[Object]>*/;
2339 CHECK_NEW_array__Array(var28
);
2341 var31
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_string__Object__to_s
]))(var28
) /* to_s on <var28:Array[Object]>*/;
2342 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var10
, var31
) /* add_decl on <var10:CodeWriter>*/;
2346 var34
= "/* allocate ";
2348 var36
= string__NativeString__to_s_with_length(var34
, var35
);
2357 var41
= string__NativeString__to_s_with_length(var39
, var40
);
2361 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
2362 { /* var42 = array_instance Array[Object] */
2364 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
2365 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var33
;
2366 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_mtype
;
2367 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var38
;
2368 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
2369 CHECK_NEW_array__Array(var42
);
2371 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
2372 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var45
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
2376 var48
= "val* BOX_";
2378 var50
= string__NativeString__to_s_with_length(var48
, var49
);
2382 var51
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2388 var56
= string__NativeString__to_s_with_length(var54
, var55
);
2392 var57
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2396 var60
= " value) {";
2398 var62
= string__NativeString__to_s_with_length(var60
, var61
);
2402 var63
= NEW_array__Array(&type_array__Arraykernel__Object
);
2403 { /* var63 = array_instance Array[Object] */
2405 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArraykernel__Object
);
2406 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var47
;
2407 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var51
;
2408 ((struct instance_array__NativeArray
*)var65
)->values
[2] = (val
*) var53
;
2409 ((struct instance_array__NativeArray
*)var65
)->values
[3] = (val
*) var57
;
2410 ((struct instance_array__NativeArray
*)var65
)->values
[4] = (val
*) var59
;
2411 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Object]>*/;
2412 CHECK_NEW_array__Array(var63
);
2414 var66
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_string__Object__to_s
]))(var63
) /* to_s on <var63:Array[Object]>*/;
2415 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var66
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
2421 var71
= string__NativeString__to_s_with_length(var69
, var70
);
2425 var72
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2429 var75
= "*res = nit_alloc(sizeof(struct ";
2431 var77
= string__NativeString__to_s_with_length(var75
, var76
);
2435 var78
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2441 var83
= string__NativeString__to_s_with_length(var81
, var82
);
2445 var84
= NEW_array__Array(&type_array__Arraykernel__Object
);
2446 { /* var84 = array_instance Array[Object] */
2448 var86
= NEW_array__NativeArray(var85
, &type_array__NativeArraykernel__Object
);
2449 ((struct instance_array__NativeArray
*)var86
)->values
[0] = (val
*) var68
;
2450 ((struct instance_array__NativeArray
*)var86
)->values
[1] = (val
*) var72
;
2451 ((struct instance_array__NativeArray
*)var86
)->values
[2] = (val
*) var74
;
2452 ((struct instance_array__NativeArray
*)var86
)->values
[3] = (val
*) var78
;
2453 ((struct instance_array__NativeArray
*)var86
)->values
[4] = (val
*) var80
;
2454 ((void (*)(val
*, val
*, long))(var84
->class->vft
[COLOR_array__Array__with_native
]))(var84
, var86
, var85
) /* with_native on <var84:Array[Object]>*/;
2455 CHECK_NEW_array__Array(var84
);
2457 var87
= ((val
* (*)(val
*))(var84
->class->vft
[COLOR_string__Object__to_s
]))(var84
) /* to_s on <var84:Array[Object]>*/;
2458 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var87
) /* add on <var_v:GlobalCompilerVisitor>*/;
2462 var90
= "res->classid = ";
2464 var92
= string__NativeString__to_s_with_length(var90
, var91
);
2468 var93
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(self
, var_mtype
) /* classid on <self:GlobalCompiler>*/;
2474 var98
= string__NativeString__to_s_with_length(var96
, var97
);
2478 var99
= NEW_array__Array(&type_array__Arraykernel__Object
);
2479 { /* var99 = array_instance Array[Object] */
2481 var101
= NEW_array__NativeArray(var100
, &type_array__NativeArraykernel__Object
);
2482 ((struct instance_array__NativeArray
*)var101
)->values
[0] = (val
*) var89
;
2483 ((struct instance_array__NativeArray
*)var101
)->values
[1] = (val
*) var93
;
2484 ((struct instance_array__NativeArray
*)var101
)->values
[2] = (val
*) var95
;
2485 ((void (*)(val
*, val
*, long))(var99
->class->vft
[COLOR_array__Array__with_native
]))(var99
, var101
, var100
) /* with_native on <var99:Array[Object]>*/;
2486 CHECK_NEW_array__Array(var99
);
2488 var102
= ((val
* (*)(val
*))(var99
->class->vft
[COLOR_string__Object__to_s
]))(var99
) /* to_s on <var99:Array[Object]>*/;
2489 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var102
) /* add on <var_v:GlobalCompilerVisitor>*/;
2491 var104
= varonce103
;
2493 var105
= "res->value = value;";
2495 var107
= string__NativeString__to_s_with_length(var105
, var106
);
2497 varonce103
= var104
;
2499 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var104
) /* add on <var_v:GlobalCompilerVisitor>*/;
2501 var109
= varonce108
;
2503 var110
= "return (val*)res;";
2505 var112
= string__NativeString__to_s_with_length(var110
, var111
);
2507 varonce108
= var109
;
2509 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var109
) /* add on <var_v:GlobalCompilerVisitor>*/;
2511 var114
= varonce113
;
2515 var117
= string__NativeString__to_s_with_length(var115
, var116
);
2517 varonce113
= var114
;
2519 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var114
) /* add on <var_v:GlobalCompilerVisitor>*/;
2522 /* method global_compiler#GlobalCompiler#generate_box_instance for (self: Object, MClassType) */
2523 void VIRTUAL_global_compiler__GlobalCompiler__generate_box_instance(val
* self
, val
* p0
) {
2524 global_compiler__GlobalCompiler__generate_box_instance(self
, p0
);
2527 /* method global_compiler#GlobalCompiler#new_visitor for (self: GlobalCompiler): GlobalCompilerVisitor */
2528 val
* global_compiler__GlobalCompiler__new_visitor(val
* self
) {
2529 val
* var
/* : GlobalCompilerVisitor */;
2530 val
* var1
/* : GlobalCompilerVisitor */;
2531 short int var2
/* : Bool */;
2534 const struct type
* type_struct
;
2535 var1
= NEW_global_compiler__GlobalCompilerVisitor(&type_global_compiler__GlobalCompilerVisitor
);
2536 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init
]))(var1
, self
) /* init on <var1:GlobalCompilerVisitor>*/;
2537 CHECK_NEW_global_compiler__GlobalCompilerVisitor(var1
);
2538 /* <var1:GlobalCompilerVisitor> isa VISITOR */
2539 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
2540 cltype
= type_struct
->color
;
2541 idtype
= type_struct
->id
;
2542 if(cltype
>= var1
->type
->table_size
) {
2545 var2
= var1
->type
->type_table
[cltype
] == idtype
;
2548 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 256);
2556 /* method global_compiler#GlobalCompiler#new_visitor for (self: Object): AbstractCompilerVisitor */
2557 val
* VIRTUAL_global_compiler__GlobalCompiler__new_visitor(val
* self
) {
2558 val
* var
/* : AbstractCompilerVisitor */;
2559 val
* var1
/* : GlobalCompilerVisitor */;
2560 var1
= global_compiler__GlobalCompiler__new_visitor(self
);
2565 /* method global_compiler#GlobalCompiler#collect_types_cache for (self: GlobalCompiler): HashMap[MType, Array[MClassType]] */
2566 val
* global_compiler__GlobalCompiler__collect_types_cache(val
* self
) {
2567 val
* var
/* : HashMap[MType, Array[MClassType]] */;
2568 val
* var1
/* : HashMap[MType, Array[MClassType]] */;
2569 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dcollect_types_cache
].val
; /* @collect_types_cache on <self:GlobalCompiler> */
2571 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @collect_types_cache", "src/global_compiler.nit", 258);
2578 /* method global_compiler#GlobalCompiler#collect_types_cache for (self: Object): HashMap[MType, Array[MClassType]] */
2579 val
* VIRTUAL_global_compiler__GlobalCompiler__collect_types_cache(val
* self
) {
2580 val
* var
/* : HashMap[MType, Array[MClassType]] */;
2581 val
* var1
/* : HashMap[MType, Array[MClassType]] */;
2582 var1
= global_compiler__GlobalCompiler__collect_types_cache(self
);
2587 /* method global_compiler#GlobalCompiler#collect_types_cache= for (self: GlobalCompiler, HashMap[MType, Array[MClassType]]) */
2588 void global_compiler__GlobalCompiler__collect_types_cache_61d(val
* self
, val
* p0
) {
2589 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dcollect_types_cache
].val
= p0
; /* @collect_types_cache on <self:GlobalCompiler> */
2592 /* method global_compiler#GlobalCompiler#collect_types_cache= for (self: Object, HashMap[MType, Array[MClassType]]) */
2593 void VIRTUAL_global_compiler__GlobalCompiler__collect_types_cache_61d(val
* self
, val
* p0
) {
2594 global_compiler__GlobalCompiler__collect_types_cache_61d(self
, p0
);
2597 /* method global_compiler#GlobalCompilerVisitor#autobox for (self: GlobalCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
2598 val
* global_compiler__GlobalCompilerVisitor__autobox(val
* self
, val
* p0
, val
* p1
) {
2599 val
* var
/* : RuntimeVariable */;
2600 val
* var_value
/* var value: RuntimeVariable */;
2601 val
* var_mtype
/* var mtype: MType */;
2602 val
* var1
/* : MType */;
2603 short int var2
/* : Bool */;
2604 short int var3
/* : Bool */;
2605 val
* var4
/* : MType */;
2606 val
* var5
/* : String */;
2607 static val
* varonce
;
2608 val
* var6
/* : String */;
2609 char* var7
/* : NativeString */;
2610 long var8
/* : Int */;
2611 val
* var9
/* : String */;
2612 short int var10
/* : Bool */;
2613 short int var_
/* var : Bool */;
2614 val
* var11
/* : String */;
2615 static val
* varonce12
;
2616 val
* var13
/* : String */;
2617 char* var14
/* : NativeString */;
2618 long var15
/* : Int */;
2619 val
* var16
/* : String */;
2620 short int var17
/* : Bool */;
2621 val
* var18
/* : MType */;
2622 val
* var19
/* : String */;
2623 static val
* varonce20
;
2624 val
* var21
/* : String */;
2625 char* var22
/* : NativeString */;
2626 long var23
/* : Int */;
2627 val
* var24
/* : String */;
2628 short int var25
/* : Bool */;
2629 static val
* varonce26
;
2630 val
* var27
/* : String */;
2631 char* var28
/* : NativeString */;
2632 long var29
/* : Int */;
2633 val
* var30
/* : String */;
2634 val
* var31
/* : String */;
2635 static val
* varonce32
;
2636 val
* var33
/* : String */;
2637 char* var34
/* : NativeString */;
2638 long var35
/* : Int */;
2639 val
* var36
/* : String */;
2640 static val
* varonce37
;
2641 val
* var38
/* : String */;
2642 char* var39
/* : NativeString */;
2643 long var40
/* : Int */;
2644 val
* var41
/* : String */;
2645 val
* var42
/* : MType */;
2646 static val
* varonce43
;
2647 val
* var44
/* : String */;
2648 char* var45
/* : NativeString */;
2649 long var46
/* : Int */;
2650 val
* var47
/* : String */;
2651 static val
* varonce48
;
2652 val
* var49
/* : String */;
2653 char* var50
/* : NativeString */;
2654 long var51
/* : Int */;
2655 val
* var52
/* : String */;
2656 val
* var53
/* : Array[Object] */;
2657 long var54
/* : Int */;
2658 val
* var55
/* : NativeArray[Object] */;
2659 val
* var56
/* : String */;
2660 val
* var57
/* : RuntimeVariable */;
2661 val
* var58
/* : String */;
2662 static val
* varonce59
;
2663 val
* var60
/* : String */;
2664 char* var61
/* : NativeString */;
2665 long var62
/* : Int */;
2666 val
* var63
/* : String */;
2667 short int var64
/* : Bool */;
2668 val
* var65
/* : MType */;
2669 short int var66
/* : Bool */;
2672 val
* var_valtype
/* var valtype: MClassType */;
2673 val
* var67
/* : RuntimeVariable */;
2674 val
* var_res
/* var res: RuntimeVariable */;
2675 val
* var68
/* : AbstractCompiler */;
2676 val
* var69
/* : RapidTypeAnalysis */;
2677 val
* var70
/* : HashSet[MClassType] */;
2678 short int var71
/* : Bool */;
2679 short int var72
/* : Bool */;
2680 static val
* varonce73
;
2681 val
* var74
/* : String */;
2682 char* var75
/* : NativeString */;
2683 long var76
/* : Int */;
2684 val
* var77
/* : String */;
2685 val
* var78
/* : MType */;
2686 static val
* varonce79
;
2687 val
* var80
/* : String */;
2688 char* var81
/* : NativeString */;
2689 long var82
/* : Int */;
2690 val
* var83
/* : String */;
2691 static val
* varonce84
;
2692 val
* var85
/* : String */;
2693 char* var86
/* : NativeString */;
2694 long var87
/* : Int */;
2695 val
* var88
/* : String */;
2696 val
* var89
/* : MType */;
2697 static val
* varonce90
;
2698 val
* var91
/* : String */;
2699 char* var92
/* : NativeString */;
2700 long var93
/* : Int */;
2701 val
* var94
/* : String */;
2702 val
* var95
/* : Array[Object] */;
2703 long var96
/* : Int */;
2704 val
* var97
/* : NativeArray[Object] */;
2705 val
* var98
/* : String */;
2706 static val
* varonce99
;
2707 val
* var100
/* : String */;
2708 char* var101
/* : NativeString */;
2709 long var102
/* : Int */;
2710 val
* var103
/* : String */;
2711 static val
* varonce104
;
2712 val
* var105
/* : String */;
2713 char* var106
/* : NativeString */;
2714 long var107
/* : Int */;
2715 val
* var108
/* : String */;
2716 val
* var109
/* : String */;
2717 static val
* varonce110
;
2718 val
* var111
/* : String */;
2719 char* var112
/* : NativeString */;
2720 long var113
/* : Int */;
2721 val
* var114
/* : String */;
2722 static val
* varonce115
;
2723 val
* var116
/* : String */;
2724 char* var117
/* : NativeString */;
2725 long var118
/* : Int */;
2726 val
* var119
/* : String */;
2727 val
* var120
/* : MType */;
2728 static val
* varonce121
;
2729 val
* var122
/* : String */;
2730 char* var123
/* : NativeString */;
2731 long var124
/* : Int */;
2732 val
* var125
/* : String */;
2733 static val
* varonce126
;
2734 val
* var127
/* : String */;
2735 char* var128
/* : NativeString */;
2736 long var129
/* : Int */;
2737 val
* var130
/* : String */;
2738 val
* var131
/* : Array[Object] */;
2739 long var132
/* : Int */;
2740 val
* var133
/* : NativeArray[Object] */;
2741 val
* var134
/* : String */;
2742 val
* var135
/* : RuntimeVariable */;
2743 val
* var_res136
/* var res: RuntimeVariable */;
2744 static val
* varonce137
;
2745 val
* var138
/* : String */;
2746 char* var139
/* : NativeString */;
2747 long var140
/* : Int */;
2748 val
* var141
/* : String */;
2749 static val
* varonce142
;
2750 val
* var143
/* : String */;
2751 char* var144
/* : NativeString */;
2752 long var145
/* : Int */;
2753 val
* var146
/* : String */;
2754 val
* var147
/* : MType */;
2755 static val
* varonce148
;
2756 val
* var149
/* : String */;
2757 char* var150
/* : NativeString */;
2758 long var151
/* : Int */;
2759 val
* var152
/* : String */;
2760 static val
* varonce153
;
2761 val
* var154
/* : String */;
2762 char* var155
/* : NativeString */;
2763 long var156
/* : Int */;
2764 val
* var157
/* : String */;
2765 val
* var158
/* : Array[Object] */;
2766 long var159
/* : Int */;
2767 val
* var160
/* : NativeArray[Object] */;
2768 val
* var161
/* : String */;
2769 static val
* varonce162
;
2770 val
* var163
/* : String */;
2771 char* var164
/* : NativeString */;
2772 long var165
/* : Int */;
2773 val
* var166
/* : String */;
2774 val
* var167
/* : MType */;
2775 static val
* varonce168
;
2776 val
* var169
/* : String */;
2777 char* var170
/* : NativeString */;
2778 long var171
/* : Int */;
2779 val
* var172
/* : String */;
2780 static val
* varonce173
;
2781 val
* var174
/* : String */;
2782 char* var175
/* : NativeString */;
2783 long var176
/* : Int */;
2784 val
* var177
/* : String */;
2785 val
* var178
/* : Array[Object] */;
2786 long var179
/* : Int */;
2787 val
* var180
/* : NativeArray[Object] */;
2788 val
* var181
/* : String */;
2791 var1
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2792 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var1
, var_mtype
) /* == on <var1:MType>*/;
2797 var4
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2798 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var4
) /* ctype on <var4:MType>*/;
2804 var9
= string__NativeString__to_s_with_length(var7
, var8
);
2808 var10
= ((short int (*)(val
*, val
*))(var5
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var5
, var6
) /* == on <var5:String>*/;
2811 var11
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
2817 var16
= string__NativeString__to_s_with_length(var14
, var15
);
2821 var17
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var11
, var13
) /* == on <var11:String>*/;
2830 var18
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2831 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var18
) /* ctype on <var18:MType>*/;
2837 var24
= string__NativeString__to_s_with_length(var22
, var23
);
2841 var25
= ((short int (*)(val
*, val
*))(var19
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var19
, var21
) /* == on <var19:String>*/;
2846 var28
= "((struct ";
2848 var30
= string__NativeString__to_s_with_length(var28
, var29
);
2852 var31
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
2858 var36
= string__NativeString__to_s_with_length(var34
, var35
);
2865 var39
= ")->value; /* autounbox from ";
2867 var41
= string__NativeString__to_s_with_length(var39
, var40
);
2871 var42
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2877 var47
= string__NativeString__to_s_with_length(var45
, var46
);
2886 var52
= string__NativeString__to_s_with_length(var50
, var51
);
2890 var53
= NEW_array__Array(&type_array__Arraykernel__Object
);
2891 { /* var53 = array_instance Array[Object] */
2893 var55
= NEW_array__NativeArray(var54
, &type_array__NativeArraykernel__Object
);
2894 ((struct instance_array__NativeArray
*)var55
)->values
[0] = (val
*) var27
;
2895 ((struct instance_array__NativeArray
*)var55
)->values
[1] = (val
*) var31
;
2896 ((struct instance_array__NativeArray
*)var55
)->values
[2] = (val
*) var33
;
2897 ((struct instance_array__NativeArray
*)var55
)->values
[3] = (val
*) var_value
;
2898 ((struct instance_array__NativeArray
*)var55
)->values
[4] = (val
*) var38
;
2899 ((struct instance_array__NativeArray
*)var55
)->values
[5] = (val
*) var42
;
2900 ((struct instance_array__NativeArray
*)var55
)->values
[6] = (val
*) var44
;
2901 ((struct instance_array__NativeArray
*)var55
)->values
[7] = (val
*) var_mtype
;
2902 ((struct instance_array__NativeArray
*)var55
)->values
[8] = (val
*) var49
;
2903 ((void (*)(val
*, val
*, long))(var53
->class->vft
[COLOR_array__Array__with_native
]))(var53
, var55
, var54
) /* with_native on <var53:Array[Object]>*/;
2904 CHECK_NEW_array__Array(var53
);
2906 var56
= ((val
* (*)(val
*))(var53
->class->vft
[COLOR_string__Object__to_s
]))(var53
) /* to_s on <var53:Array[Object]>*/;
2907 var57
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var56
, var_mtype
) /* new_expr on <self:GlobalCompilerVisitor>*/;
2911 var58
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
2917 var63
= string__NativeString__to_s_with_length(var61
, var62
);
2921 var64
= ((short int (*)(val
*, val
*))(var58
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var58
, var60
) /* == on <var58:String>*/;
2923 var65
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2924 /* <var65:MType> isa MClassType */
2925 cltype
= type_model__MClassType
.color
;
2926 idtype
= type_model__MClassType
.id
;
2927 if(cltype
>= var65
->type
->table_size
) {
2930 var66
= var65
->type
->type_table
[cltype
] == idtype
;
2933 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 277);
2936 var_valtype
= var65
;
2937 var67
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_mtype
) /* new_var on <self:GlobalCompilerVisitor>*/;
2939 var68
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
2940 var69
= ((val
* (*)(val
*))(var68
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var68
) /* runtime_type_analysis on <var68:AbstractCompiler(GlobalCompiler)>*/;
2941 var70
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var69
) /* live_types on <var69:RapidTypeAnalysis>*/;
2942 var71
= ((short int (*)(val
*, val
*))(var70
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var70
, var_valtype
) /* has on <var70:HashSet[MClassType]>*/;
2948 var75
= "/*no autobox from ";
2950 var77
= string__NativeString__to_s_with_length(var75
, var76
);
2954 var78
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2960 var83
= string__NativeString__to_s_with_length(var81
, var82
);
2969 var88
= string__NativeString__to_s_with_length(var86
, var87
);
2973 var89
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2977 var92
= " is not live! */";
2979 var94
= string__NativeString__to_s_with_length(var92
, var93
);
2983 var95
= NEW_array__Array(&type_array__Arraykernel__Object
);
2984 { /* var95 = array_instance Array[Object] */
2986 var97
= NEW_array__NativeArray(var96
, &type_array__NativeArraykernel__Object
);
2987 ((struct instance_array__NativeArray
*)var97
)->values
[0] = (val
*) var74
;
2988 ((struct instance_array__NativeArray
*)var97
)->values
[1] = (val
*) var78
;
2989 ((struct instance_array__NativeArray
*)var97
)->values
[2] = (val
*) var80
;
2990 ((struct instance_array__NativeArray
*)var97
)->values
[3] = (val
*) var_mtype
;
2991 ((struct instance_array__NativeArray
*)var97
)->values
[4] = (val
*) var85
;
2992 ((struct instance_array__NativeArray
*)var97
)->values
[5] = (val
*) var89
;
2993 ((struct instance_array__NativeArray
*)var97
)->values
[6] = (val
*) var91
;
2994 ((void (*)(val
*, val
*, long))(var95
->class->vft
[COLOR_array__Array__with_native
]))(var95
, var97
, var96
) /* with_native on <var95:Array[Object]>*/;
2995 CHECK_NEW_array__Array(var95
);
2997 var98
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_string__Object__to_s
]))(var95
) /* to_s on <var95:Array[Object]>*/;
2998 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var98
) /* add on <self:GlobalCompilerVisitor>*/;
3002 var101
= "printf(\"Dead code executed!\\n\"); exit(1);";
3004 var103
= string__NativeString__to_s_with_length(var101
, var102
);
3008 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var100
) /* add on <self:GlobalCompilerVisitor>*/;
3014 var105
= varonce104
;
3018 var108
= string__NativeString__to_s_with_length(var106
, var107
);
3020 varonce104
= var105
;
3022 var109
= ((val
* (*)(val
*))(var_valtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_valtype
) /* c_name on <var_valtype:MClassType>*/;
3024 var111
= varonce110
;
3028 var114
= string__NativeString__to_s_with_length(var112
, var113
);
3030 varonce110
= var111
;
3033 var116
= varonce115
;
3035 var117
= "); /* autobox from ";
3037 var119
= string__NativeString__to_s_with_length(var117
, var118
);
3039 varonce115
= var116
;
3041 var120
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
3043 var122
= varonce121
;
3047 var125
= string__NativeString__to_s_with_length(var123
, var124
);
3049 varonce121
= var122
;
3052 var127
= varonce126
;
3056 var130
= string__NativeString__to_s_with_length(var128
, var129
);
3058 varonce126
= var127
;
3060 var131
= NEW_array__Array(&type_array__Arraykernel__Object
);
3061 { /* var131 = array_instance Array[Object] */
3063 var133
= NEW_array__NativeArray(var132
, &type_array__NativeArraykernel__Object
);
3064 ((struct instance_array__NativeArray
*)var133
)->values
[0] = (val
*) var_res
;
3065 ((struct instance_array__NativeArray
*)var133
)->values
[1] = (val
*) var105
;
3066 ((struct instance_array__NativeArray
*)var133
)->values
[2] = (val
*) var109
;
3067 ((struct instance_array__NativeArray
*)var133
)->values
[3] = (val
*) var111
;
3068 ((struct instance_array__NativeArray
*)var133
)->values
[4] = (val
*) var_value
;
3069 ((struct instance_array__NativeArray
*)var133
)->values
[5] = (val
*) var116
;
3070 ((struct instance_array__NativeArray
*)var133
)->values
[6] = (val
*) var120
;
3071 ((struct instance_array__NativeArray
*)var133
)->values
[7] = (val
*) var122
;
3072 ((struct instance_array__NativeArray
*)var133
)->values
[8] = (val
*) var_mtype
;
3073 ((struct instance_array__NativeArray
*)var133
)->values
[9] = (val
*) var127
;
3074 ((void (*)(val
*, val
*, long))(var131
->class->vft
[COLOR_array__Array__with_native
]))(var131
, var133
, var132
) /* with_native on <var131:Array[Object]>*/;
3075 CHECK_NEW_array__Array(var131
);
3077 var134
= ((val
* (*)(val
*))(var131
->class->vft
[COLOR_string__Object__to_s
]))(var131
) /* to_s on <var131:Array[Object]>*/;
3078 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var134
) /* add on <self:GlobalCompilerVisitor>*/;
3082 var135
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_mtype
) /* new_var on <self:GlobalCompilerVisitor>*/;
3083 var_res136
= var135
;
3085 var138
= varonce137
;
3089 var141
= string__NativeString__to_s_with_length(var139
, var140
);
3091 varonce137
= var138
;
3094 var143
= varonce142
;
3096 var144
= " left unintialized (cannot convert ";
3098 var146
= string__NativeString__to_s_with_length(var144
, var145
);
3100 varonce142
= var143
;
3102 var147
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
3104 var149
= varonce148
;
3108 var152
= string__NativeString__to_s_with_length(var150
, var151
);
3110 varonce148
= var149
;
3113 var154
= varonce153
;
3117 var157
= string__NativeString__to_s_with_length(var155
, var156
);
3119 varonce153
= var154
;
3121 var158
= NEW_array__Array(&type_array__Arraykernel__Object
);
3122 { /* var158 = array_instance Array[Object] */
3124 var160
= NEW_array__NativeArray(var159
, &type_array__NativeArraykernel__Object
);
3125 ((struct instance_array__NativeArray
*)var160
)->values
[0] = (val
*) var138
;
3126 ((struct instance_array__NativeArray
*)var160
)->values
[1] = (val
*) var_res136
;
3127 ((struct instance_array__NativeArray
*)var160
)->values
[2] = (val
*) var143
;
3128 ((struct instance_array__NativeArray
*)var160
)->values
[3] = (val
*) var147
;
3129 ((struct instance_array__NativeArray
*)var160
)->values
[4] = (val
*) var149
;
3130 ((struct instance_array__NativeArray
*)var160
)->values
[5] = (val
*) var_mtype
;
3131 ((struct instance_array__NativeArray
*)var160
)->values
[6] = (val
*) var154
;
3132 ((void (*)(val
*, val
*, long))(var158
->class->vft
[COLOR_array__Array__with_native
]))(var158
, var160
, var159
) /* with_native on <var158:Array[Object]>*/;
3133 CHECK_NEW_array__Array(var158
);
3135 var161
= ((val
* (*)(val
*))(var158
->class->vft
[COLOR_string__Object__to_s
]))(var158
) /* to_s on <var158:Array[Object]>*/;
3136 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var161
) /* add on <self:GlobalCompilerVisitor>*/;
3138 var163
= varonce162
;
3140 var164
= "printf(\"Cast error: Cannot cast %s to %s.\\n\", \"";
3142 var166
= string__NativeString__to_s_with_length(var164
, var165
);
3144 varonce162
= var163
;
3146 var167
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
3148 var169
= varonce168
;
3152 var172
= string__NativeString__to_s_with_length(var170
, var171
);
3154 varonce168
= var169
;
3157 var174
= varonce173
;
3159 var175
= "\"); exit(1);";
3161 var177
= string__NativeString__to_s_with_length(var175
, var176
);
3163 varonce173
= var174
;
3165 var178
= NEW_array__Array(&type_array__Arraykernel__Object
);
3166 { /* var178 = array_instance Array[Object] */
3168 var180
= NEW_array__NativeArray(var179
, &type_array__NativeArraykernel__Object
);
3169 ((struct instance_array__NativeArray
*)var180
)->values
[0] = (val
*) var163
;
3170 ((struct instance_array__NativeArray
*)var180
)->values
[1] = (val
*) var167
;
3171 ((struct instance_array__NativeArray
*)var180
)->values
[2] = (val
*) var169
;
3172 ((struct instance_array__NativeArray
*)var180
)->values
[3] = (val
*) var_mtype
;
3173 ((struct instance_array__NativeArray
*)var180
)->values
[4] = (val
*) var174
;
3174 ((void (*)(val
*, val
*, long))(var178
->class->vft
[COLOR_array__Array__with_native
]))(var178
, var180
, var179
) /* with_native on <var178:Array[Object]>*/;
3175 CHECK_NEW_array__Array(var178
);
3177 var181
= ((val
* (*)(val
*))(var178
->class->vft
[COLOR_string__Object__to_s
]))(var178
) /* to_s on <var178:Array[Object]>*/;
3178 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var181
) /* add on <self:GlobalCompilerVisitor>*/;
3188 /* method global_compiler#GlobalCompilerVisitor#autobox for (self: Object, RuntimeVariable, MType): RuntimeVariable */
3189 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__autobox(val
* self
, val
* p0
, val
* p1
) {
3190 val
* var
/* : RuntimeVariable */;
3191 val
* var1
/* : RuntimeVariable */;
3192 var1
= global_compiler__GlobalCompilerVisitor__autobox(self
, p0
, p1
);
3197 /* method global_compiler#GlobalCompilerVisitor#collect_types for (self: GlobalCompilerVisitor, RuntimeVariable): Array[MClassType] */
3198 val
* global_compiler__GlobalCompilerVisitor__collect_types(val
* self
, val
* p0
) {
3199 val
* var
/* : Array[MClassType] */;
3200 val
* var_recv
/* var recv: RuntimeVariable */;
3201 val
* var1
/* : MType */;
3202 val
* var_mtype
/* var mtype: MType */;
3203 short int var2
/* : Bool */;
3204 short int var3
/* : Bool */;
3207 val
* var4
/* : AbstractCompiler */;
3208 val
* var5
/* : RapidTypeAnalysis */;
3209 val
* var6
/* : HashSet[MClassType] */;
3210 short int var7
/* : Bool */;
3211 val
* var8
/* : Array[MClassType] */;
3212 long var9
/* : Int */;
3213 val
* var_
/* var : Array[MClassType] */;
3214 val
* var_types
/* var types: Array[MClassType] */;
3215 val
* var10
/* : AbstractCompiler */;
3216 val
* var11
/* : HashMap[MType, Array[MClassType]] */;
3217 val
* var_cache
/* var cache: HashMap[MType, Array[MClassType]] */;
3218 short int var12
/* : Bool */;
3219 val
* var13
/* : nullable Object */;
3220 val
* var14
/* : Array[MClassType] */;
3221 val
* var_types15
/* var types: Array[MClassType] */;
3222 val
* var16
/* : AbstractCompiler */;
3223 val
* var17
/* : MModule */;
3224 val
* var_mainmodule
/* var mainmodule: MModule */;
3225 val
* var18
/* : AbstractCompiler */;
3226 val
* var19
/* : RapidTypeAnalysis */;
3227 val
* var20
/* : HashSet[MClassType] */;
3228 val
* var21
/* : Iterator[nullable Object] */;
3229 short int var22
/* : Bool */;
3230 val
* var23
/* : nullable Object */;
3231 val
* var_t
/* var t: MClassType */;
3232 val
* var24
/* : null */;
3233 short int var25
/* : Bool */;
3234 short int var26
/* : Bool */;
3236 var1
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_recv
) /* mcasttype on <var_recv:RuntimeVariable>*/;
3238 var2
= ((short int (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact
]))(var_recv
) /* is_exact on <var_recv:RuntimeVariable>*/;
3240 /* <var_mtype:MType> isa MClassType */
3241 cltype
= type_model__MClassType
.color
;
3242 idtype
= type_model__MClassType
.id
;
3243 if(cltype
>= var_mtype
->type
->table_size
) {
3246 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
3249 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/global_compiler.nit", 300);
3252 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
3253 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var4
) /* runtime_type_analysis on <var4:AbstractCompiler(GlobalCompiler)>*/;
3254 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var5
) /* live_types on <var5:RapidTypeAnalysis>*/;
3255 var7
= ((short int (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var6
, var_mtype
) /* has on <var6:HashSet[MClassType]>*/;
3257 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/global_compiler.nit", 301);
3260 var8
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
3262 ((void (*)(val
*, long))(var8
->class->vft
[COLOR_array__Array__with_capacity
]))(var8
, var9
) /* with_capacity on <var8:Array[MClassType]>*/;
3263 CHECK_NEW_array__Array(var8
);
3265 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var_mtype
) /* push on <var_:Array[MClassType]>*/;
3271 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
3272 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_global_compiler__GlobalCompiler__collect_types_cache
]))(var10
) /* collect_types_cache on <var10:AbstractCompiler(GlobalCompiler)>*/;
3274 var12
= ((short int (*)(val
*, val
*))(var_cache
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_cache
, var_mtype
) /* has_key on <var_cache:HashMap[MType, Array[MClassType]]>*/;
3276 var13
= ((val
* (*)(val
*, val
*))(var_cache
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_cache
, var_mtype
) /* [] on <var_cache:HashMap[MType, Array[MClassType]]>*/;
3281 var14
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
3282 ((void (*)(val
*))(var14
->class->vft
[COLOR_array__Array__init
]))(var14
) /* init on <var14:Array[MClassType]>*/;
3283 CHECK_NEW_array__Array(var14
);
3284 var_types15
= var14
;
3285 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
3286 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var16
) /* mainmodule on <var16:AbstractCompiler(GlobalCompiler)>*/;
3287 var_mainmodule
= var17
;
3288 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
3289 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var18
) /* runtime_type_analysis on <var18:AbstractCompiler(GlobalCompiler)>*/;
3290 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var19
) /* live_types on <var19:RapidTypeAnalysis>*/;
3291 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var20
) /* iterator on <var20:HashSet[MClassType]>*/;
3293 var22
= ((short int (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var21
) /* is_ok on <var21:Iterator[nullable Object]>*/;
3295 var23
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var21
) /* item on <var21:Iterator[nullable Object]>*/;
3298 var25
= ((short int (*)(val
*, val
*, val
*, val
*))(var_t
->class->vft
[COLOR_model__MType__is_subtype
]))(var_t
, var_mainmodule
, var24
, var_mtype
) /* is_subtype on <var_t:MClassType>*/;
3301 goto CONTINUE_label
;
3304 ((void (*)(val
*, val
*))(var_types15
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_types15
, var_t
) /* add on <var_types15:Array[MClassType]>*/;
3305 CONTINUE_label
: (void)0;
3306 ((void (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var21
) /* next on <var21:Iterator[nullable Object]>*/;
3308 BREAK_label
: (void)0;
3309 ((void (*)(val
*, val
*, val
*))(var_cache
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_cache
, var_mtype
, var_types15
) /* []= on <var_cache:HashMap[MType, Array[MClassType]]>*/;
3315 /* method global_compiler#GlobalCompilerVisitor#collect_types for (self: Object, RuntimeVariable): Array[MClassType] */
3316 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__collect_types(val
* self
, val
* p0
) {
3317 val
* var
/* : Array[MClassType] */;
3318 val
* var1
/* : Array[MClassType] */;
3319 var1
= global_compiler__GlobalCompilerVisitor__collect_types(self
, p0
);
3324 /* method global_compiler#GlobalCompilerVisitor#native_array_def for (self: GlobalCompilerVisitor, String, nullable MType, Array[RuntimeVariable]) */
3325 void global_compiler__GlobalCompilerVisitor__native_array_def(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3326 val
* var_pname
/* var pname: String */;
3327 val
* var_ret_type
/* var ret_type: nullable MType */;
3328 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
3329 val
* var
/* : nullable Object */;
3330 val
* var1
/* : MType */;
3331 val
* var_elttype
/* var elttype: MType */;
3332 val
* var2
/* : Array[Object] */;
3333 long var3
/* : Int */;
3334 val
* var_
/* var : Array[Object] */;
3335 static val
* varonce
;
3336 val
* var4
/* : String */;
3337 char* var5
/* : NativeString */;
3338 long var6
/* : Int */;
3339 val
* var7
/* : String */;
3340 long var8
/* : Int */;
3341 val
* var9
/* : nullable Object */;
3342 val
* var10
/* : MType */;
3343 val
* var11
/* : String */;
3344 static val
* varonce12
;
3345 val
* var13
/* : String */;
3346 char* var14
/* : NativeString */;
3347 long var15
/* : Int */;
3348 val
* var16
/* : String */;
3349 long var17
/* : Int */;
3350 val
* var18
/* : nullable Object */;
3351 static val
* varonce19
;
3352 val
* var20
/* : String */;
3353 char* var21
/* : NativeString */;
3354 long var22
/* : Int */;
3355 val
* var23
/* : String */;
3356 val
* var24
/* : String */;
3357 val
* var_recv
/* var recv: String */;
3358 static val
* varonce25
;
3359 val
* var26
/* : String */;
3360 char* var27
/* : NativeString */;
3361 long var28
/* : Int */;
3362 val
* var29
/* : String */;
3363 short int var30
/* : Bool */;
3364 static val
* varonce31
;
3365 val
* var32
/* : String */;
3366 char* var33
/* : NativeString */;
3367 long var34
/* : Int */;
3368 val
* var35
/* : String */;
3369 long var36
/* : Int */;
3370 val
* var37
/* : nullable Object */;
3371 static val
* varonce38
;
3372 val
* var39
/* : String */;
3373 char* var40
/* : NativeString */;
3374 long var41
/* : Int */;
3375 val
* var42
/* : String */;
3376 val
* var43
/* : Array[Object] */;
3377 long var44
/* : Int */;
3378 val
* var45
/* : NativeArray[Object] */;
3379 val
* var46
/* : String */;
3380 val
* var47
/* : RuntimeVariable */;
3381 static val
* varonce48
;
3382 val
* var49
/* : String */;
3383 char* var50
/* : NativeString */;
3384 long var51
/* : Int */;
3385 val
* var52
/* : String */;
3386 short int var53
/* : Bool */;
3387 static val
* varonce54
;
3388 val
* var55
/* : String */;
3389 char* var56
/* : NativeString */;
3390 long var57
/* : Int */;
3391 val
* var58
/* : String */;
3392 long var59
/* : Int */;
3393 val
* var60
/* : nullable Object */;
3394 static val
* varonce61
;
3395 val
* var62
/* : String */;
3396 char* var63
/* : NativeString */;
3397 long var64
/* : Int */;
3398 val
* var65
/* : String */;
3399 long var66
/* : Int */;
3400 val
* var67
/* : nullable Object */;
3401 static val
* varonce68
;
3402 val
* var69
/* : String */;
3403 char* var70
/* : NativeString */;
3404 long var71
/* : Int */;
3405 val
* var72
/* : String */;
3406 val
* var73
/* : Array[Object] */;
3407 long var74
/* : Int */;
3408 val
* var75
/* : NativeArray[Object] */;
3409 val
* var76
/* : String */;
3410 static val
* varonce77
;
3411 val
* var78
/* : String */;
3412 char* var79
/* : NativeString */;
3413 long var80
/* : Int */;
3414 val
* var81
/* : String */;
3415 short int var82
/* : Bool */;
3416 val
* var83
/* : Array[Object] */;
3417 long var84
/* : Int */;
3418 val
* var_85
/* var : Array[Object] */;
3419 static val
* varonce86
;
3420 val
* var87
/* : String */;
3421 char* var88
/* : NativeString */;
3422 long var89
/* : Int */;
3423 val
* var90
/* : String */;
3424 long var91
/* : Int */;
3425 val
* var92
/* : nullable Object */;
3426 val
* var93
/* : MType */;
3427 val
* var94
/* : String */;
3428 static val
* varonce95
;
3429 val
* var96
/* : String */;
3430 char* var97
/* : NativeString */;
3431 long var98
/* : Int */;
3432 val
* var99
/* : String */;
3433 long var100
/* : Int */;
3434 val
* var101
/* : nullable Object */;
3435 static val
* varonce102
;
3436 val
* var103
/* : String */;
3437 char* var104
/* : NativeString */;
3438 long var105
/* : Int */;
3439 val
* var106
/* : String */;
3440 val
* var107
/* : String */;
3441 val
* var_recv1
/* var recv1: String */;
3442 static val
* varonce108
;
3443 val
* var109
/* : String */;
3444 char* var110
/* : NativeString */;
3445 long var111
/* : Int */;
3446 val
* var112
/* : String */;
3447 static val
* varonce113
;
3448 val
* var114
/* : String */;
3449 char* var115
/* : NativeString */;
3450 long var116
/* : Int */;
3451 val
* var117
/* : String */;
3452 static val
* varonce118
;
3453 val
* var119
/* : String */;
3454 char* var120
/* : NativeString */;
3455 long var121
/* : Int */;
3456 val
* var122
/* : String */;
3457 long var123
/* : Int */;
3458 val
* var124
/* : nullable Object */;
3459 static val
* varonce125
;
3460 val
* var126
/* : String */;
3461 char* var127
/* : NativeString */;
3462 long var128
/* : Int */;
3463 val
* var129
/* : String */;
3464 val
* var130
/* : String */;
3465 static val
* varonce131
;
3466 val
* var132
/* : String */;
3467 char* var133
/* : NativeString */;
3468 long var134
/* : Int */;
3469 val
* var135
/* : String */;
3470 val
* var136
/* : Array[Object] */;
3471 long var137
/* : Int */;
3472 val
* var138
/* : NativeArray[Object] */;
3473 val
* var139
/* : String */;
3477 var
= ((val
* (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_arguments
) /* first on <var_arguments:Array[RuntimeVariable]>*/;
3478 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var
) /* mtype on <var:nullable Object(RuntimeVariable)>*/;
3480 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
3482 ((void (*)(val
*, long))(var2
->class->vft
[COLOR_array__Array__with_capacity
]))(var2
, var3
) /* with_capacity on <var2:Array[Object]>*/;
3483 CHECK_NEW_array__Array(var2
);
3490 var7
= string__NativeString__to_s_with_length(var5
, var6
);
3494 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var4
) /* add on <var_:Array[Object]>*/;
3496 var9
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var8
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3497 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var9
) /* mcasttype on <var9:nullable Object(RuntimeVariable)>*/;
3498 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var10
) /* c_name on <var10:MType>*/;
3499 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var11
) /* add on <var_:Array[Object]>*/;
3505 var16
= string__NativeString__to_s_with_length(var14
, var15
);
3509 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var13
) /* add on <var_:Array[Object]>*/;
3511 var18
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var17
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3512 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var18
) /* add on <var_:Array[Object]>*/;
3516 var21
= ")->values";
3518 var23
= string__NativeString__to_s_with_length(var21
, var22
);
3522 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var20
) /* add on <var_:Array[Object]>*/;
3523 var24
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
3530 var29
= string__NativeString__to_s_with_length(var27
, var28
);
3534 var30
= ((short int (*)(val
*, val
*))(var_pname
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pname
, var26
) /* == on <var_pname:String>*/;
3541 var35
= string__NativeString__to_s_with_length(var33
, var34
);
3546 var37
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var36
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3552 var42
= string__NativeString__to_s_with_length(var40
, var41
);
3556 var43
= NEW_array__Array(&type_array__Arraykernel__Object
);
3557 { /* var43 = array_instance Array[Object] */
3559 var45
= NEW_array__NativeArray(var44
, &type_array__NativeArraykernel__Object
);
3560 ((struct instance_array__NativeArray
*)var45
)->values
[0] = (val
*) var_recv
;
3561 ((struct instance_array__NativeArray
*)var45
)->values
[1] = (val
*) var32
;
3562 ((struct instance_array__NativeArray
*)var45
)->values
[2] = (val
*) var37
;
3563 ((struct instance_array__NativeArray
*)var45
)->values
[3] = (val
*) var39
;
3564 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[Object]>*/;
3565 CHECK_NEW_array__Array(var43
);
3567 var46
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_string__Object__to_s
]))(var43
) /* to_s on <var43:Array[Object]>*/;
3568 if (var_ret_type
== NULL
) {
3569 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 324);
3572 var47
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var46
, var_ret_type
) /* new_expr on <self:GlobalCompilerVisitor>*/;
3573 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__ret
]))(self
, var47
) /* ret on <self:GlobalCompilerVisitor>*/;
3581 var52
= string__NativeString__to_s_with_length(var50
, var51
);
3585 var53
= ((short int (*)(val
*, val
*))(var_pname
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pname
, var49
) /* == on <var_pname:String>*/;
3592 var58
= string__NativeString__to_s_with_length(var56
, var57
);
3597 var60
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var59
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3603 var65
= string__NativeString__to_s_with_length(var63
, var64
);
3608 var67
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var66
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3614 var72
= string__NativeString__to_s_with_length(var70
, var71
);
3618 var73
= NEW_array__Array(&type_array__Arraykernel__Object
);
3619 { /* var73 = array_instance Array[Object] */
3621 var75
= NEW_array__NativeArray(var74
, &type_array__NativeArraykernel__Object
);
3622 ((struct instance_array__NativeArray
*)var75
)->values
[0] = (val
*) var_recv
;
3623 ((struct instance_array__NativeArray
*)var75
)->values
[1] = (val
*) var55
;
3624 ((struct instance_array__NativeArray
*)var75
)->values
[2] = (val
*) var60
;
3625 ((struct instance_array__NativeArray
*)var75
)->values
[3] = (val
*) var62
;
3626 ((struct instance_array__NativeArray
*)var75
)->values
[4] = (val
*) var67
;
3627 ((struct instance_array__NativeArray
*)var75
)->values
[5] = (val
*) var69
;
3628 ((void (*)(val
*, val
*, long))(var73
->class->vft
[COLOR_array__Array__with_native
]))(var73
, var75
, var74
) /* with_native on <var73:Array[Object]>*/;
3629 CHECK_NEW_array__Array(var73
);
3631 var76
= ((val
* (*)(val
*))(var73
->class->vft
[COLOR_string__Object__to_s
]))(var73
) /* to_s on <var73:Array[Object]>*/;
3632 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var76
) /* add on <self:GlobalCompilerVisitor>*/;
3640 var81
= string__NativeString__to_s_with_length(var79
, var80
);
3644 var82
= ((short int (*)(val
*, val
*))(var_pname
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pname
, var78
) /* == on <var_pname:String>*/;
3646 var83
= NEW_array__Array(&type_array__Arraykernel__Object
);
3648 ((void (*)(val
*, long))(var83
->class->vft
[COLOR_array__Array__with_capacity
]))(var83
, var84
) /* with_capacity on <var83:Array[Object]>*/;
3649 CHECK_NEW_array__Array(var83
);
3654 var88
= "((struct ";
3656 var90
= string__NativeString__to_s_with_length(var88
, var89
);
3660 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var87
) /* add on <var_85:Array[Object]>*/;
3662 var92
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var91
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3663 var93
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var92
) /* mcasttype on <var92:nullable Object(RuntimeVariable)>*/;
3664 var94
= ((val
* (*)(val
*))(var93
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var93
) /* c_name on <var93:MType>*/;
3665 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var94
) /* add on <var_85:Array[Object]>*/;
3671 var99
= string__NativeString__to_s_with_length(var97
, var98
);
3675 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var96
) /* add on <var_85:Array[Object]>*/;
3677 var101
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var100
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3678 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var101
) /* add on <var_85:Array[Object]>*/;
3680 var103
= varonce102
;
3682 var104
= ")->values";
3684 var106
= string__NativeString__to_s_with_length(var104
, var105
);
3686 varonce102
= var103
;
3688 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var103
) /* add on <var_85:Array[Object]>*/;
3689 var107
= ((val
* (*)(val
*))(var_85
->class->vft
[COLOR_string__Object__to_s
]))(var_85
) /* to_s on <var_85:Array[Object]>*/;
3692 var109
= varonce108
;
3696 var112
= string__NativeString__to_s_with_length(var110
, var111
);
3698 varonce108
= var109
;
3701 var114
= varonce113
;
3705 var117
= string__NativeString__to_s_with_length(var115
, var116
);
3707 varonce113
= var114
;
3710 var119
= varonce118
;
3714 var122
= string__NativeString__to_s_with_length(var120
, var121
);
3716 varonce118
= var119
;
3719 var124
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var123
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3721 var126
= varonce125
;
3723 var127
= "*sizeof(";
3725 var129
= string__NativeString__to_s_with_length(var127
, var128
);
3727 varonce125
= var126
;
3729 var130
= ((val
* (*)(val
*))(var_elttype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_elttype
) /* ctype on <var_elttype:MType>*/;
3731 var132
= varonce131
;
3735 var135
= string__NativeString__to_s_with_length(var133
, var134
);
3737 varonce131
= var132
;
3739 var136
= NEW_array__Array(&type_array__Arraykernel__Object
);
3740 { /* var136 = array_instance Array[Object] */
3742 var138
= NEW_array__NativeArray(var137
, &type_array__NativeArraykernel__Object
);
3743 ((struct instance_array__NativeArray
*)var138
)->values
[0] = (val
*) var109
;
3744 ((struct instance_array__NativeArray
*)var138
)->values
[1] = (val
*) var_recv1
;
3745 ((struct instance_array__NativeArray
*)var138
)->values
[2] = (val
*) var114
;
3746 ((struct instance_array__NativeArray
*)var138
)->values
[3] = (val
*) var_recv
;
3747 ((struct instance_array__NativeArray
*)var138
)->values
[4] = (val
*) var119
;
3748 ((struct instance_array__NativeArray
*)var138
)->values
[5] = (val
*) var124
;
3749 ((struct instance_array__NativeArray
*)var138
)->values
[6] = (val
*) var126
;
3750 ((struct instance_array__NativeArray
*)var138
)->values
[7] = (val
*) var130
;
3751 ((struct instance_array__NativeArray
*)var138
)->values
[8] = (val
*) var132
;
3752 ((void (*)(val
*, val
*, long))(var136
->class->vft
[COLOR_array__Array__with_native
]))(var136
, var138
, var137
) /* with_native on <var136:Array[Object]>*/;
3753 CHECK_NEW_array__Array(var136
);
3755 var139
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_string__Object__to_s
]))(var136
) /* to_s on <var136:Array[Object]>*/;
3756 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var139
) /* add on <self:GlobalCompilerVisitor>*/;
3764 /* method global_compiler#GlobalCompilerVisitor#native_array_def for (self: Object, String, nullable MType, Array[RuntimeVariable]) */
3765 void VIRTUAL_global_compiler__GlobalCompilerVisitor__native_array_def(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3766 global_compiler__GlobalCompilerVisitor__native_array_def(self
, p0
, p1
, p2
);
3769 /* method global_compiler#GlobalCompilerVisitor#calloc_array for (self: GlobalCompilerVisitor, MType, Array[RuntimeVariable]) */
3770 void global_compiler__GlobalCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
3771 val
* var_ret_type
/* var ret_type: MType */;
3772 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
3773 static val
* varonce
;
3774 val
* var
/* : String */;
3775 char* var1
/* : NativeString */;
3776 long var2
/* : Int */;
3777 val
* var3
/* : String */;
3778 val
* var4
/* : String */;
3779 static val
* varonce5
;
3780 val
* var6
/* : String */;
3781 char* var7
/* : NativeString */;
3782 long var8
/* : Int */;
3783 val
* var9
/* : String */;
3784 long var10
/* : Int */;
3785 val
* var11
/* : nullable Object */;
3786 static val
* varonce12
;
3787 val
* var13
/* : String */;
3788 char* var14
/* : NativeString */;
3789 long var15
/* : Int */;
3790 val
* var16
/* : String */;
3791 val
* var17
/* : Array[Object] */;
3792 long var18
/* : Int */;
3793 val
* var19
/* : NativeArray[Object] */;
3794 val
* var20
/* : String */;
3795 val
* var21
/* : RuntimeVariable */;
3803 var3
= string__NativeString__to_s_with_length(var1
, var2
);
3807 var4
= ((val
* (*)(val
*))(var_ret_type
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_ret_type
) /* c_name on <var_ret_type:MType>*/;
3813 var9
= string__NativeString__to_s_with_length(var7
, var8
);
3818 var11
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var10
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3824 var16
= string__NativeString__to_s_with_length(var14
, var15
);
3828 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
3829 { /* var17 = array_instance Array[Object] */
3831 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
3832 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var
;
3833 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var4
;
3834 ((struct instance_array__NativeArray
*)var19
)->values
[2] = (val
*) var6
;
3835 ((struct instance_array__NativeArray
*)var19
)->values
[3] = (val
*) var11
;
3836 ((struct instance_array__NativeArray
*)var19
)->values
[4] = (val
*) var13
;
3837 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
3838 CHECK_NEW_array__Array(var17
);
3840 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
3841 var21
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var20
, var_ret_type
) /* new_expr on <self:GlobalCompilerVisitor>*/;
3842 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__ret
]))(self
, var21
) /* ret on <self:GlobalCompilerVisitor>*/;
3845 /* method global_compiler#GlobalCompilerVisitor#calloc_array for (self: Object, MType, Array[RuntimeVariable]) */
3846 void VIRTUAL_global_compiler__GlobalCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
3847 global_compiler__GlobalCompilerVisitor__calloc_array(self
, p0
, p1
);
3850 /* method global_compiler#GlobalCompilerVisitor#send for (self: GlobalCompilerVisitor, MMethod, Array[RuntimeVariable]): nullable RuntimeVariable */
3851 val
* global_compiler__GlobalCompilerVisitor__send(val
* self
, val
* p0
, val
* p1
) {
3852 val
* var
/* : nullable RuntimeVariable */;
3853 val
* var_m
/* var m: MMethod */;
3854 val
* var_args
/* var args: Array[RuntimeVariable] */;
3855 val
* var1
/* : nullable Object */;
3856 val
* var2
/* : Array[MClassType] */;
3857 val
* var_types
/* var types: Array[MClassType] */;
3858 val
* var3
/* : MPropDef */;
3859 val
* var4
/* : nullable MSignature */;
3860 val
* var5
/* : nullable MType */;
3861 val
* var_ret
/* var ret: nullable MType */;
3862 short int var6
/* : Bool */;
3863 val
* var7
/* : nullable Object */;
3864 val
* var8
/* : MType */;
3865 val
* var9
/* : RuntimeVariable */;
3866 val
* var_res
/* var res: nullable RuntimeVariable */;
3867 val
* var10
/* : null */;
3868 short int var11
/* : Bool */;
3869 val
* var12
/* : null */;
3870 val
* var13
/* : nullable Object */;
3871 val
* var14
/* : MType */;
3872 val
* var15
/* : RuntimeVariable */;
3873 static val
* varonce
;
3874 val
* var16
/* : String */;
3875 char* var17
/* : NativeString */;
3876 long var18
/* : Int */;
3877 val
* var19
/* : String */;
3878 static val
* varonce20
;
3879 val
* var21
/* : String */;
3880 char* var22
/* : NativeString */;
3881 long var23
/* : Int */;
3882 val
* var24
/* : String */;
3883 val
* var25
/* : nullable Object */;
3884 val
* var26
/* : String */;
3885 static val
* varonce27
;
3886 val
* var28
/* : String */;
3887 char* var29
/* : NativeString */;
3888 long var30
/* : Int */;
3889 val
* var31
/* : String */;
3890 val
* var32
/* : Array[Object] */;
3891 long var33
/* : Int */;
3892 val
* var34
/* : NativeArray[Object] */;
3893 val
* var35
/* : String */;
3894 val
* var36
/* : nullable Object */;
3895 val
* var37
/* : MType */;
3896 val
* var38
/* : String */;
3897 static val
* varonce39
;
3898 val
* var40
/* : String */;
3899 char* var41
/* : NativeString */;
3900 long var42
/* : Int */;
3901 val
* var43
/* : String */;
3902 short int var44
/* : Bool */;
3903 val
* var45
/* : nullable Object */;
3904 val
* var46
/* : MType */;
3905 short int var47
/* : Bool */;
3908 val
* var_mclasstype
/* var mclasstype: MClassType */;
3909 val
* var48
/* : AbstractCompiler */;
3910 val
* var49
/* : RapidTypeAnalysis */;
3911 val
* var50
/* : HashSet[MClassType] */;
3912 short int var51
/* : Bool */;
3913 short int var52
/* : Bool */;
3914 static val
* varonce53
;
3915 val
* var54
/* : String */;
3916 char* var55
/* : NativeString */;
3917 long var56
/* : Int */;
3918 val
* var57
/* : String */;
3919 static val
* varonce58
;
3920 val
* var59
/* : String */;
3921 char* var60
/* : NativeString */;
3922 long var61
/* : Int */;
3923 val
* var62
/* : String */;
3924 val
* var63
/* : Array[Object] */;
3925 long var64
/* : Int */;
3926 val
* var65
/* : NativeArray[Object] */;
3927 val
* var66
/* : String */;
3928 val
* var67
/* : AbstractCompiler */;
3929 val
* var68
/* : MModule */;
3930 val
* var69
/* : MPropDef */;
3931 val
* var_propdef
/* var propdef: MMethodDef */;
3932 val
* var70
/* : nullable RuntimeVariable */;
3933 val
* var_res2
/* var res2: nullable RuntimeVariable */;
3934 val
* var71
/* : null */;
3935 short int var72
/* : Bool */;
3936 short int var73
/* : Bool */;
3937 short int var74
/* : Bool */;
3938 val
* var75
/* : AbstractCompiler */;
3939 val
* var76
/* : ModelBuilder */;
3940 val
* var77
/* : ToolContext */;
3941 val
* var78
/* : OptionBool */;
3942 val
* var79
/* : nullable Object */;
3943 short int var80
/* : Bool */;
3944 short int var81
/* : Bool */;
3945 short int var_
/* var : Bool */;
3946 val
* var82
/* : String */;
3947 static val
* varonce83
;
3948 val
* var84
/* : String */;
3949 char* var85
/* : NativeString */;
3950 long var86
/* : Int */;
3951 val
* var87
/* : String */;
3952 short int var88
/* : Bool */;
3953 short int var_89
/* var : Bool */;
3954 val
* var90
/* : String */;
3955 static val
* varonce91
;
3956 val
* var92
/* : String */;
3957 char* var93
/* : NativeString */;
3958 long var94
/* : Int */;
3959 val
* var95
/* : String */;
3960 short int var96
/* : Bool */;
3961 short int var_consider_null
/* var consider_null: Bool */;
3962 short int var97
/* : Bool */;
3963 short int var98
/* : Bool */;
3964 val
* var99
/* : nullable Object */;
3965 val
* var100
/* : MType */;
3966 short int var101
/* : Bool */;
3969 short int var_104
/* var : Bool */;
3970 val
* var105
/* : nullable Object */;
3971 val
* var106
/* : MType */;
3972 short int var107
/* : Bool */;
3975 short int var_110
/* var : Bool */;
3976 static val
* varonce111
;
3977 val
* var112
/* : String */;
3978 char* var113
/* : NativeString */;
3979 long var114
/* : Int */;
3980 val
* var115
/* : String */;
3981 val
* var116
/* : nullable Object */;
3982 static val
* varonce117
;
3983 val
* var118
/* : String */;
3984 char* var119
/* : NativeString */;
3985 long var120
/* : Int */;
3986 val
* var121
/* : String */;
3987 val
* var122
/* : Array[Object] */;
3988 long var123
/* : Int */;
3989 val
* var124
/* : NativeArray[Object] */;
3990 val
* var125
/* : String */;
3991 val
* var126
/* : String */;
3992 static val
* varonce127
;
3993 val
* var128
/* : String */;
3994 char* var129
/* : NativeString */;
3995 long var130
/* : Int */;
3996 val
* var131
/* : String */;
3997 short int var132
/* : Bool */;
3998 val
* var133
/* : null */;
3999 short int var134
/* : Bool */;
4000 long var135
/* : Int */;
4001 val
* var136
/* : nullable Object */;
4002 val
* var137
/* : MType */;
4003 short int var138
/* : Bool */;
4006 static val
* varonce141
;
4007 val
* var142
/* : String */;
4008 char* var143
/* : NativeString */;
4009 long var144
/* : Int */;
4010 val
* var145
/* : String */;
4011 long var146
/* : Int */;
4012 val
* var147
/* : nullable Object */;
4013 static val
* varonce148
;
4014 val
* var149
/* : String */;
4015 char* var150
/* : NativeString */;
4016 long var151
/* : Int */;
4017 val
* var152
/* : String */;
4018 val
* var153
/* : Array[Object] */;
4019 long var154
/* : Int */;
4020 val
* var155
/* : NativeArray[Object] */;
4021 val
* var156
/* : String */;
4022 long var157
/* : Int */;
4023 val
* var158
/* : nullable Object */;
4024 val
* var159
/* : MType */;
4025 short int var160
/* : Bool */;
4028 static val
* varonce163
;
4029 val
* var164
/* : String */;
4030 char* var165
/* : NativeString */;
4031 long var166
/* : Int */;
4032 val
* var167
/* : String */;
4033 val
* var168
/* : Array[Object] */;
4034 long var169
/* : Int */;
4035 val
* var170
/* : NativeArray[Object] */;
4036 val
* var171
/* : String */;
4037 static val
* varonce172
;
4038 val
* var173
/* : String */;
4039 char* var174
/* : NativeString */;
4040 long var175
/* : Int */;
4041 val
* var176
/* : String */;
4042 long var177
/* : Int */;
4043 val
* var178
/* : nullable Object */;
4044 val
* var179
/* : String */;
4045 static val
* varonce180
;
4046 val
* var181
/* : String */;
4047 char* var182
/* : NativeString */;
4048 long var183
/* : Int */;
4049 val
* var184
/* : String */;
4050 val
* var185
/* : Array[Object] */;
4051 long var186
/* : Int */;
4052 val
* var187
/* : NativeArray[Object] */;
4053 val
* var188
/* : String */;
4054 val
* var189
/* : String */;
4055 static val
* varonce190
;
4056 val
* var191
/* : String */;
4057 char* var192
/* : NativeString */;
4058 long var193
/* : Int */;
4059 val
* var194
/* : String */;
4060 short int var195
/* : Bool */;
4061 val
* var196
/* : null */;
4062 short int var197
/* : Bool */;
4063 long var198
/* : Int */;
4064 val
* var199
/* : nullable Object */;
4065 val
* var200
/* : MType */;
4066 short int var201
/* : Bool */;
4069 static val
* varonce204
;
4070 val
* var205
/* : String */;
4071 char* var206
/* : NativeString */;
4072 long var207
/* : Int */;
4073 val
* var208
/* : String */;
4074 long var209
/* : Int */;
4075 val
* var210
/* : nullable Object */;
4076 static val
* varonce211
;
4077 val
* var212
/* : String */;
4078 char* var213
/* : NativeString */;
4079 long var214
/* : Int */;
4080 val
* var215
/* : String */;
4081 val
* var216
/* : Array[Object] */;
4082 long var217
/* : Int */;
4083 val
* var218
/* : NativeArray[Object] */;
4084 val
* var219
/* : String */;
4085 long var220
/* : Int */;
4086 val
* var221
/* : nullable Object */;
4087 val
* var222
/* : MType */;
4088 short int var223
/* : Bool */;
4091 static val
* varonce226
;
4092 val
* var227
/* : String */;
4093 char* var228
/* : NativeString */;
4094 long var229
/* : Int */;
4095 val
* var230
/* : String */;
4096 val
* var231
/* : Array[Object] */;
4097 long var232
/* : Int */;
4098 val
* var233
/* : NativeArray[Object] */;
4099 val
* var234
/* : String */;
4100 static val
* varonce235
;
4101 val
* var236
/* : String */;
4102 char* var237
/* : NativeString */;
4103 long var238
/* : Int */;
4104 val
* var239
/* : String */;
4105 long var240
/* : Int */;
4106 val
* var241
/* : nullable Object */;
4107 val
* var242
/* : String */;
4108 static val
* varonce243
;
4109 val
* var244
/* : String */;
4110 char* var245
/* : NativeString */;
4111 long var246
/* : Int */;
4112 val
* var247
/* : String */;
4113 val
* var248
/* : Array[Object] */;
4114 long var249
/* : Int */;
4115 val
* var250
/* : NativeArray[Object] */;
4116 val
* var251
/* : String */;
4117 static val
* varonce252
;
4118 val
* var253
/* : String */;
4119 char* var254
/* : NativeString */;
4120 long var255
/* : Int */;
4121 val
* var256
/* : String */;
4122 static val
* varonce257
;
4123 val
* var258
/* : String */;
4124 char* var259
/* : NativeString */;
4125 long var260
/* : Int */;
4126 val
* var261
/* : String */;
4127 short int var262
/* : Bool */;
4128 static val
* varonce263
;
4129 val
* var264
/* : String */;
4130 char* var265
/* : NativeString */;
4131 long var266
/* : Int */;
4132 val
* var267
/* : String */;
4133 static val
* varonce268
;
4134 val
* var269
/* : String */;
4135 char* var270
/* : NativeString */;
4136 long var271
/* : Int */;
4137 val
* var272
/* : String */;
4138 val
* var273
/* : nullable Object */;
4139 val
* var274
/* : String */;
4140 static val
* varonce275
;
4141 val
* var276
/* : String */;
4142 char* var277
/* : NativeString */;
4143 long var278
/* : Int */;
4144 val
* var279
/* : String */;
4145 static val
* varonce280
;
4146 val
* var281
/* : String */;
4147 char* var282
/* : NativeString */;
4148 long var283
/* : Int */;
4149 val
* var284
/* : String */;
4150 val
* var285
/* : Array[Object] */;
4151 long var286
/* : Int */;
4152 val
* var287
/* : NativeArray[Object] */;
4153 val
* var288
/* : String */;
4154 val
* var289
/* : nullable Object */;
4155 static val
* varonce290
;
4156 val
* var291
/* : String */;
4157 char* var292
/* : NativeString */;
4158 long var293
/* : Int */;
4159 val
* var294
/* : String */;
4160 static val
* varonce295
;
4161 val
* var296
/* : String */;
4162 char* var297
/* : NativeString */;
4163 long var298
/* : Int */;
4164 val
* var299
/* : String */;
4165 val
* var300
/* : nullable Object */;
4166 static val
* varonce301
;
4167 val
* var302
/* : String */;
4168 char* var303
/* : NativeString */;
4169 long var304
/* : Int */;
4170 val
* var305
/* : String */;
4171 val
* var306
/* : Array[Object] */;
4172 long var307
/* : Int */;
4173 val
* var308
/* : NativeArray[Object] */;
4174 val
* var309
/* : String */;
4175 val
* var310
/* : nullable Object */;
4176 val
* var_last
/* var last: MClassType */;
4177 val
* var311
/* : null */;
4178 val
* var_defaultpropdef
/* var defaultpropdef: nullable MMethodDef */;
4179 val
* var312
/* : Iterator[nullable Object] */;
4180 short int var313
/* : Bool */;
4181 val
* var314
/* : nullable Object */;
4182 val
* var_t
/* var t: MClassType */;
4183 val
* var315
/* : AbstractCompiler */;
4184 val
* var316
/* : MModule */;
4185 val
* var317
/* : MPropDef */;
4186 val
* var_propdef318
/* var propdef: MMethodDef */;
4187 short int var319
/* : Bool */;
4188 val
* var320
/* : MClassDef */;
4189 val
* var321
/* : MClass */;
4190 val
* var322
/* : String */;
4191 static val
* varonce323
;
4192 val
* var324
/* : String */;
4193 char* var325
/* : NativeString */;
4194 long var326
/* : Int */;
4195 val
* var327
/* : String */;
4196 short int var328
/* : Bool */;
4197 short int var_329
/* var : Bool */;
4198 val
* var330
/* : String */;
4199 static val
* varonce331
;
4200 val
* var332
/* : String */;
4201 char* var333
/* : NativeString */;
4202 long var334
/* : Int */;
4203 val
* var335
/* : String */;
4204 short int var336
/* : Bool */;
4205 short int var337
/* : Bool */;
4206 short int var338
/* : Bool */;
4207 val
* var339
/* : AbstractCompiler */;
4208 short int var340
/* : Bool */;
4209 short int var341
/* : Bool */;
4210 short int var_342
/* var : Bool */;
4211 short int var343
/* : Bool */;
4212 short int var_344
/* var : Bool */;
4213 val
* var345
/* : null */;
4214 short int var346
/* : Bool */;
4215 static val
* varonce347
;
4216 val
* var348
/* : String */;
4217 char* var349
/* : NativeString */;
4218 long var350
/* : Int */;
4219 val
* var351
/* : String */;
4220 static val
* varonce352
;
4221 val
* var353
/* : String */;
4222 char* var354
/* : NativeString */;
4223 long var355
/* : Int */;
4224 val
* var356
/* : String */;
4225 val
* var357
/* : Array[Object] */;
4226 long var358
/* : Int */;
4227 val
* var359
/* : NativeArray[Object] */;
4228 val
* var360
/* : String */;
4229 static val
* varonce361
;
4230 val
* var362
/* : String */;
4231 char* var363
/* : NativeString */;
4232 long var364
/* : Int */;
4233 val
* var365
/* : String */;
4234 val
* var366
/* : AbstractCompiler */;
4235 val
* var367
/* : String */;
4236 static val
* varonce368
;
4237 val
* var369
/* : String */;
4238 char* var370
/* : NativeString */;
4239 long var371
/* : Int */;
4240 val
* var372
/* : String */;
4241 static val
* varonce373
;
4242 val
* var374
/* : String */;
4243 char* var375
/* : NativeString */;
4244 long var376
/* : Int */;
4245 val
* var377
/* : String */;
4246 val
* var378
/* : Array[Object] */;
4247 long var379
/* : Int */;
4248 val
* var380
/* : NativeArray[Object] */;
4249 val
* var381
/* : String */;
4250 val
* var382
/* : nullable RuntimeVariable */;
4251 val
* var_res2383
/* var res2: nullable RuntimeVariable */;
4252 val
* var384
/* : null */;
4253 short int var385
/* : Bool */;
4254 static val
* varonce386
;
4255 val
* var387
/* : String */;
4256 char* var388
/* : NativeString */;
4257 long var389
/* : Int */;
4258 val
* var390
/* : String */;
4259 val
* var391
/* : null */;
4260 short int var392
/* : Bool */;
4261 static val
* varonce393
;
4262 val
* var394
/* : String */;
4263 char* var395
/* : NativeString */;
4264 long var396
/* : Int */;
4265 val
* var397
/* : String */;
4266 val
* var398
/* : MClassDef */;
4267 val
* var399
/* : MClassType */;
4268 val
* var400
/* : nullable RuntimeVariable */;
4269 val
* var_res2401
/* var res2: nullable RuntimeVariable */;
4270 val
* var402
/* : null */;
4271 short int var403
/* : Bool */;
4272 val
* var404
/* : AbstractCompiler */;
4273 short int var405
/* : Bool */;
4274 static val
* varonce406
;
4275 val
* var407
/* : String */;
4276 char* var408
/* : NativeString */;
4277 long var409
/* : Int */;
4278 val
* var410
/* : String */;
4279 val
* var411
/* : nullable Object */;
4280 static val
* varonce412
;
4281 val
* var413
/* : String */;
4282 char* var414
/* : NativeString */;
4283 long var415
/* : Int */;
4284 val
* var416
/* : String */;
4287 var1
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4288 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var1
) /* collect_types on <self:GlobalCompilerVisitor>*/;
4290 var3
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__intro
]))(var_m
) /* intro on <var_m:MMethod>*/;
4291 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var3
) /* msignature on <var3:MPropDef(MMethodDef)>*/;
4293 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/global_compiler.nit", 346);
4296 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var4
) /* return_mtype on <var4:nullable MSignature>*/;
4299 var6
= ((short int (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethod__is_new
]))(var_m
) /* is_new on <var_m:MMethod>*/;
4301 var7
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4302 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var7
) /* mtype on <var7:nullable Object(RuntimeVariable)>*/;
4304 var9
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
4308 if (var_ret
== NULL
) {
4309 var11
= 1; /* is null */
4311 var11
= 0; /* arg is null but recv is not */
4317 var13
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4318 var14
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ret
, var13
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
4320 var15
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
4329 var19
= string__NativeString__to_s_with_length(var17
, var18
);
4338 var24
= string__NativeString__to_s_with_length(var22
, var23
);
4342 var25
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4343 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_string__Object__inspect
]))(var25
) /* inspect on <var25:nullable Object(RuntimeVariable)>*/;
4349 var31
= string__NativeString__to_s_with_length(var29
, var30
);
4353 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
4354 { /* var32 = array_instance Array[Object] */
4356 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
4357 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var16
;
4358 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_m
;
4359 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var21
;
4360 ((struct instance_array__NativeArray
*)var34
)->values
[3] = (val
*) var26
;
4361 ((struct instance_array__NativeArray
*)var34
)->values
[4] = (val
*) var28
;
4362 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
4363 CHECK_NEW_array__Array(var32
);
4365 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
4366 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var35
) /* add on <self:GlobalCompilerVisitor>*/;
4367 var36
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4368 var37
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var36
) /* mtype on <var36:nullable Object(RuntimeVariable)>*/;
4369 var38
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var37
) /* ctype on <var37:MType>*/;
4375 var43
= string__NativeString__to_s_with_length(var41
, var42
);
4379 var44
= ((short int (*)(val
*, val
*))(var38
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var38
, var40
) /* != on <var38:String>*/;
4381 var45
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4382 var46
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var45
) /* mtype on <var45:nullable Object(RuntimeVariable)>*/;
4383 /* <var46:MType> isa MClassType */
4384 cltype
= type_model__MClassType
.color
;
4385 idtype
= type_model__MClassType
.id
;
4386 if(cltype
>= var46
->type
->table_size
) {
4389 var47
= var46
->type
->type_table
[cltype
] == idtype
;
4392 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 359);
4395 var_mclasstype
= var46
;
4396 var48
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4397 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var48
) /* runtime_type_analysis on <var48:AbstractCompiler(GlobalCompiler)>*/;
4398 var50
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var49
) /* live_types on <var49:RapidTypeAnalysis>*/;
4399 var51
= ((short int (*)(val
*, val
*))(var50
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var50
, var_mclasstype
) /* has on <var50:HashSet[MClassType]>*/;
4405 var55
= "/* skip, no method ";
4407 var57
= string__NativeString__to_s_with_length(var55
, var56
);
4416 var62
= string__NativeString__to_s_with_length(var60
, var61
);
4420 var63
= NEW_array__Array(&type_array__Arraykernel__Object
);
4421 { /* var63 = array_instance Array[Object] */
4423 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArraykernel__Object
);
4424 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var54
;
4425 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var_m
;
4426 ((struct instance_array__NativeArray
*)var65
)->values
[2] = (val
*) var59
;
4427 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Object]>*/;
4428 CHECK_NEW_array__Array(var63
);
4430 var66
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_string__Object__to_s
]))(var63
) /* to_s on <var63:Array[Object]>*/;
4431 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var66
) /* add on <self:GlobalCompilerVisitor>*/;
4436 var67
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4437 var68
= ((val
* (*)(val
*))(var67
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var67
) /* mainmodule on <var67:AbstractCompiler(GlobalCompiler)>*/;
4438 var69
= ((val
* (*)(val
*, val
*, val
*))(var_m
->class->vft
[COLOR_model__MProperty__lookup_first_definition
]))(var_m
, var68
, var_mclasstype
) /* lookup_first_definition on <var_m:MMethod>*/;
4439 var_propdef
= var69
;
4440 var70
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__call
]))(self
, var_propdef
, var_mclasstype
, var_args
) /* call on <self:GlobalCompilerVisitor>*/;
4443 if (var_res
== NULL
) {
4444 var72
= 0; /* is null */
4446 var72
= 1; /* arg is null and recv is not */
4449 if (var_res2
== NULL
) {
4450 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 366);
4453 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2
) /* assign on <self:GlobalCompilerVisitor>*/;
4460 var75
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4461 var76
= ((val
* (*)(val
*))(var75
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var75
) /* modelbuilder on <var75:AbstractCompiler(GlobalCompiler)>*/;
4462 var77
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var76
) /* toolcontext on <var76:ModelBuilder>*/;
4463 var78
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_no_check_other
]))(var77
) /* opt_no_check_other on <var77:ToolContext>*/;
4464 var79
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_opts__Option__value
]))(var78
) /* value on <var78:OptionBool>*/;
4465 var80
= ((struct instance_kernel__Bool
*)var79
)->value
; /* autounbox from nullable Object to Bool */;
4471 var82
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4477 var87
= string__NativeString__to_s_with_length(var85
, var86
);
4481 var88
= ((short int (*)(val
*, val
*))(var82
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var82
, var84
) /* == on <var82:String>*/;
4488 var90
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4494 var95
= string__NativeString__to_s_with_length(var93
, var94
);
4498 var96
= ((short int (*)(val
*, val
*))(var90
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var90
, var92
) /* == on <var90:String>*/;
4501 var_consider_null
= var73
;
4502 var99
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4503 var100
= ((val
* (*)(val
*))(var99
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var99
) /* mcasttype on <var99:nullable Object(RuntimeVariable)>*/;
4504 /* <var100:MType> isa MNullableType */
4505 cltype102
= type_model__MNullableType
.color
;
4506 idtype103
= type_model__MNullableType
.id
;
4507 if(cltype102
>= var100
->type
->table_size
) {
4510 var101
= var100
->type
->type_table
[cltype102
] == idtype103
;
4516 var105
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4517 var106
= ((val
* (*)(val
*))(var105
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var105
) /* mcasttype on <var105:nullable Object(RuntimeVariable)>*/;
4518 /* <var106:MType> isa MNullType */
4519 cltype108
= type_model__MNullType
.color
;
4520 idtype109
= type_model__MNullType
.id
;
4521 if(cltype108
>= var106
->type
->table_size
) {
4524 var107
= var106
->type
->type_table
[cltype108
] == idtype109
;
4530 var97
= var_consider_null
;
4536 var112
= varonce111
;
4540 var115
= string__NativeString__to_s_with_length(var113
, var114
);
4542 varonce111
= var112
;
4544 var116
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4546 var118
= varonce117
;
4548 var119
= " == NULL) { /* Special null case */";
4550 var121
= string__NativeString__to_s_with_length(var119
, var120
);
4552 varonce117
= var118
;
4554 var122
= NEW_array__Array(&type_array__Arraykernel__Object
);
4555 { /* var122 = array_instance Array[Object] */
4557 var124
= NEW_array__NativeArray(var123
, &type_array__NativeArraykernel__Object
);
4558 ((struct instance_array__NativeArray
*)var124
)->values
[0] = (val
*) var112
;
4559 ((struct instance_array__NativeArray
*)var124
)->values
[1] = (val
*) var116
;
4560 ((struct instance_array__NativeArray
*)var124
)->values
[2] = (val
*) var118
;
4561 ((void (*)(val
*, val
*, long))(var122
->class->vft
[COLOR_array__Array__with_native
]))(var122
, var124
, var123
) /* with_native on <var122:Array[Object]>*/;
4562 CHECK_NEW_array__Array(var122
);
4564 var125
= ((val
* (*)(val
*))(var122
->class->vft
[COLOR_string__Object__to_s
]))(var122
) /* to_s on <var122:Array[Object]>*/;
4565 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var125
) /* add on <self:GlobalCompilerVisitor>*/;
4566 var126
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4568 var128
= varonce127
;
4572 var131
= string__NativeString__to_s_with_length(var129
, var130
);
4574 varonce127
= var128
;
4576 var132
= ((short int (*)(val
*, val
*))(var126
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var126
, var128
) /* == on <var126:String>*/;
4579 if (var_res
== NULL
) {
4580 var134
= 0; /* is null */
4582 var134
= 1; /* arg is null and recv is not */
4585 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/global_compiler.nit", 374);
4589 var136
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var135
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4590 var137
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var136
) /* mcasttype on <var136:nullable Object(RuntimeVariable)>*/;
4591 /* <var137:MType> isa MNullableType */
4592 cltype139
= type_model__MNullableType
.color
;
4593 idtype140
= type_model__MNullableType
.id
;
4594 if(cltype139
>= var137
->type
->table_size
) {
4597 var138
= var137
->type
->type_table
[cltype139
] == idtype140
;
4601 var142
= varonce141
;
4605 var145
= string__NativeString__to_s_with_length(var143
, var144
);
4607 varonce141
= var142
;
4610 var147
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var146
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4612 var149
= varonce148
;
4614 var150
= " == NULL);";
4616 var152
= string__NativeString__to_s_with_length(var150
, var151
);
4618 varonce148
= var149
;
4620 var153
= NEW_array__Array(&type_array__Arraykernel__Object
);
4621 { /* var153 = array_instance Array[Object] */
4623 var155
= NEW_array__NativeArray(var154
, &type_array__NativeArraykernel__Object
);
4624 ((struct instance_array__NativeArray
*)var155
)->values
[0] = (val
*) var_res
;
4625 ((struct instance_array__NativeArray
*)var155
)->values
[1] = (val
*) var142
;
4626 ((struct instance_array__NativeArray
*)var155
)->values
[2] = (val
*) var147
;
4627 ((struct instance_array__NativeArray
*)var155
)->values
[3] = (val
*) var149
;
4628 ((void (*)(val
*, val
*, long))(var153
->class->vft
[COLOR_array__Array__with_native
]))(var153
, var155
, var154
) /* with_native on <var153:Array[Object]>*/;
4629 CHECK_NEW_array__Array(var153
);
4631 var156
= ((val
* (*)(val
*))(var153
->class->vft
[COLOR_string__Object__to_s
]))(var153
) /* to_s on <var153:Array[Object]>*/;
4632 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var156
) /* add on <self:GlobalCompilerVisitor>*/;
4635 var158
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var157
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4636 var159
= ((val
* (*)(val
*))(var158
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var158
) /* mcasttype on <var158:nullable Object(RuntimeVariable)>*/;
4637 /* <var159:MType> isa MNullType */
4638 cltype161
= type_model__MNullType
.color
;
4639 idtype162
= type_model__MNullType
.id
;
4640 if(cltype161
>= var159
->type
->table_size
) {
4643 var160
= var159
->type
->type_table
[cltype161
] == idtype162
;
4647 var164
= varonce163
;
4649 var165
= " = 1; /* is null */";
4651 var167
= string__NativeString__to_s_with_length(var165
, var166
);
4653 varonce163
= var164
;
4655 var168
= NEW_array__Array(&type_array__Arraykernel__Object
);
4656 { /* var168 = array_instance Array[Object] */
4658 var170
= NEW_array__NativeArray(var169
, &type_array__NativeArraykernel__Object
);
4659 ((struct instance_array__NativeArray
*)var170
)->values
[0] = (val
*) var_res
;
4660 ((struct instance_array__NativeArray
*)var170
)->values
[1] = (val
*) var164
;
4661 ((void (*)(val
*, val
*, long))(var168
->class->vft
[COLOR_array__Array__with_native
]))(var168
, var170
, var169
) /* with_native on <var168:Array[Object]>*/;
4662 CHECK_NEW_array__Array(var168
);
4664 var171
= ((val
* (*)(val
*))(var168
->class->vft
[COLOR_string__Object__to_s
]))(var168
) /* to_s on <var168:Array[Object]>*/;
4665 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
4668 var173
= varonce172
;
4670 var174
= " = 0; /* ";
4672 var176
= string__NativeString__to_s_with_length(var174
, var175
);
4674 varonce172
= var173
;
4677 var178
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var177
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4678 var179
= ((val
* (*)(val
*))(var178
->class->vft
[COLOR_string__Object__inspect
]))(var178
) /* inspect on <var178:nullable Object(RuntimeVariable)>*/;
4680 var181
= varonce180
;
4682 var182
= " cannot be null */";
4684 var184
= string__NativeString__to_s_with_length(var182
, var183
);
4686 varonce180
= var181
;
4688 var185
= NEW_array__Array(&type_array__Arraykernel__Object
);
4689 { /* var185 = array_instance Array[Object] */
4691 var187
= NEW_array__NativeArray(var186
, &type_array__NativeArraykernel__Object
);
4692 ((struct instance_array__NativeArray
*)var187
)->values
[0] = (val
*) var_res
;
4693 ((struct instance_array__NativeArray
*)var187
)->values
[1] = (val
*) var173
;
4694 ((struct instance_array__NativeArray
*)var187
)->values
[2] = (val
*) var179
;
4695 ((struct instance_array__NativeArray
*)var187
)->values
[3] = (val
*) var181
;
4696 ((void (*)(val
*, val
*, long))(var185
->class->vft
[COLOR_array__Array__with_native
]))(var185
, var187
, var186
) /* with_native on <var185:Array[Object]>*/;
4697 CHECK_NEW_array__Array(var185
);
4699 var188
= ((val
* (*)(val
*))(var185
->class->vft
[COLOR_string__Object__to_s
]))(var185
) /* to_s on <var185:Array[Object]>*/;
4700 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var188
) /* add on <self:GlobalCompilerVisitor>*/;
4704 var189
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4706 var191
= varonce190
;
4710 var194
= string__NativeString__to_s_with_length(var192
, var193
);
4712 varonce190
= var191
;
4714 var195
= ((short int (*)(val
*, val
*))(var189
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var189
, var191
) /* == on <var189:String>*/;
4717 if (var_res
== NULL
) {
4718 var197
= 0; /* is null */
4720 var197
= 1; /* arg is null and recv is not */
4723 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/global_compiler.nit", 383);
4727 var199
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var198
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4728 var200
= ((val
* (*)(val
*))(var199
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var199
) /* mcasttype on <var199:nullable Object(RuntimeVariable)>*/;
4729 /* <var200:MType> isa MNullableType */
4730 cltype202
= type_model__MNullableType
.color
;
4731 idtype203
= type_model__MNullableType
.id
;
4732 if(cltype202
>= var200
->type
->table_size
) {
4735 var201
= var200
->type
->type_table
[cltype202
] == idtype203
;
4739 var205
= varonce204
;
4743 var208
= string__NativeString__to_s_with_length(var206
, var207
);
4745 varonce204
= var205
;
4748 var210
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var209
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4750 var212
= varonce211
;
4752 var213
= " != NULL);";
4754 var215
= string__NativeString__to_s_with_length(var213
, var214
);
4756 varonce211
= var212
;
4758 var216
= NEW_array__Array(&type_array__Arraykernel__Object
);
4759 { /* var216 = array_instance Array[Object] */
4761 var218
= NEW_array__NativeArray(var217
, &type_array__NativeArraykernel__Object
);
4762 ((struct instance_array__NativeArray
*)var218
)->values
[0] = (val
*) var_res
;
4763 ((struct instance_array__NativeArray
*)var218
)->values
[1] = (val
*) var205
;
4764 ((struct instance_array__NativeArray
*)var218
)->values
[2] = (val
*) var210
;
4765 ((struct instance_array__NativeArray
*)var218
)->values
[3] = (val
*) var212
;
4766 ((void (*)(val
*, val
*, long))(var216
->class->vft
[COLOR_array__Array__with_native
]))(var216
, var218
, var217
) /* with_native on <var216:Array[Object]>*/;
4767 CHECK_NEW_array__Array(var216
);
4769 var219
= ((val
* (*)(val
*))(var216
->class->vft
[COLOR_string__Object__to_s
]))(var216
) /* to_s on <var216:Array[Object]>*/;
4770 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var219
) /* add on <self:GlobalCompilerVisitor>*/;
4773 var221
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var220
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4774 var222
= ((val
* (*)(val
*))(var221
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var221
) /* mcasttype on <var221:nullable Object(RuntimeVariable)>*/;
4775 /* <var222:MType> isa MNullType */
4776 cltype224
= type_model__MNullType
.color
;
4777 idtype225
= type_model__MNullType
.id
;
4778 if(cltype224
>= var222
->type
->table_size
) {
4781 var223
= var222
->type
->type_table
[cltype224
] == idtype225
;
4785 var227
= varonce226
;
4787 var228
= " = 0; /* is null */";
4789 var230
= string__NativeString__to_s_with_length(var228
, var229
);
4791 varonce226
= var227
;
4793 var231
= NEW_array__Array(&type_array__Arraykernel__Object
);
4794 { /* var231 = array_instance Array[Object] */
4796 var233
= NEW_array__NativeArray(var232
, &type_array__NativeArraykernel__Object
);
4797 ((struct instance_array__NativeArray
*)var233
)->values
[0] = (val
*) var_res
;
4798 ((struct instance_array__NativeArray
*)var233
)->values
[1] = (val
*) var227
;
4799 ((void (*)(val
*, val
*, long))(var231
->class->vft
[COLOR_array__Array__with_native
]))(var231
, var233
, var232
) /* with_native on <var231:Array[Object]>*/;
4800 CHECK_NEW_array__Array(var231
);
4802 var234
= ((val
* (*)(val
*))(var231
->class->vft
[COLOR_string__Object__to_s
]))(var231
) /* to_s on <var231:Array[Object]>*/;
4803 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var234
) /* add on <self:GlobalCompilerVisitor>*/;
4806 var236
= varonce235
;
4808 var237
= " = 1; /* ";
4810 var239
= string__NativeString__to_s_with_length(var237
, var238
);
4812 varonce235
= var236
;
4815 var241
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var240
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4816 var242
= ((val
* (*)(val
*))(var241
->class->vft
[COLOR_string__Object__inspect
]))(var241
) /* inspect on <var241:nullable Object(RuntimeVariable)>*/;
4818 var244
= varonce243
;
4820 var245
= " cannot be null */";
4822 var247
= string__NativeString__to_s_with_length(var245
, var246
);
4824 varonce243
= var244
;
4826 var248
= NEW_array__Array(&type_array__Arraykernel__Object
);
4827 { /* var248 = array_instance Array[Object] */
4829 var250
= NEW_array__NativeArray(var249
, &type_array__NativeArraykernel__Object
);
4830 ((struct instance_array__NativeArray
*)var250
)->values
[0] = (val
*) var_res
;
4831 ((struct instance_array__NativeArray
*)var250
)->values
[1] = (val
*) var236
;
4832 ((struct instance_array__NativeArray
*)var250
)->values
[2] = (val
*) var242
;
4833 ((struct instance_array__NativeArray
*)var250
)->values
[3] = (val
*) var244
;
4834 ((void (*)(val
*, val
*, long))(var248
->class->vft
[COLOR_array__Array__with_native
]))(var248
, var250
, var249
) /* with_native on <var248:Array[Object]>*/;
4835 CHECK_NEW_array__Array(var248
);
4837 var251
= ((val
* (*)(val
*))(var248
->class->vft
[COLOR_string__Object__to_s
]))(var248
) /* to_s on <var248:Array[Object]>*/;
4838 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var251
) /* add on <self:GlobalCompilerVisitor>*/;
4843 var253
= varonce252
;
4845 var254
= "Reciever is null";
4847 var256
= string__NativeString__to_s_with_length(var254
, var255
);
4849 varonce252
= var253
;
4851 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(self
, var253
) /* add_abort on <self:GlobalCompilerVisitor>*/;
4855 var258
= varonce257
;
4859 var261
= string__NativeString__to_s_with_length(var259
, var260
);
4861 varonce257
= var258
;
4863 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var258
) /* add on <self:GlobalCompilerVisitor>*/;
4866 var262
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
4869 var264
= varonce263
;
4873 var267
= string__NativeString__to_s_with_length(var265
, var266
);
4875 varonce263
= var264
;
4877 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var264
) /* add on <self:GlobalCompilerVisitor>*/;
4879 var269
= varonce268
;
4881 var270
= "/*BUG: no live types for ";
4883 var272
= string__NativeString__to_s_with_length(var270
, var271
);
4885 varonce268
= var269
;
4887 var273
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4888 var274
= ((val
* (*)(val
*))(var273
->class->vft
[COLOR_string__Object__inspect
]))(var273
) /* inspect on <var273:nullable Object(RuntimeVariable)>*/;
4890 var276
= varonce275
;
4894 var279
= string__NativeString__to_s_with_length(var277
, var278
);
4896 varonce275
= var276
;
4899 var281
= varonce280
;
4903 var284
= string__NativeString__to_s_with_length(var282
, var283
);
4905 varonce280
= var281
;
4907 var285
= NEW_array__Array(&type_array__Arraykernel__Object
);
4908 { /* var285 = array_instance Array[Object] */
4910 var287
= NEW_array__NativeArray(var286
, &type_array__NativeArraykernel__Object
);
4911 ((struct instance_array__NativeArray
*)var287
)->values
[0] = (val
*) var269
;
4912 ((struct instance_array__NativeArray
*)var287
)->values
[1] = (val
*) var274
;
4913 ((struct instance_array__NativeArray
*)var287
)->values
[2] = (val
*) var276
;
4914 ((struct instance_array__NativeArray
*)var287
)->values
[3] = (val
*) var_m
;
4915 ((struct instance_array__NativeArray
*)var287
)->values
[4] = (val
*) var281
;
4916 ((void (*)(val
*, val
*, long))(var285
->class->vft
[COLOR_array__Array__with_native
]))(var285
, var287
, var286
) /* with_native on <var285:Array[Object]>*/;
4917 CHECK_NEW_array__Array(var285
);
4919 var288
= ((val
* (*)(val
*))(var285
->class->vft
[COLOR_string__Object__to_s
]))(var285
) /* to_s on <var285:Array[Object]>*/;
4920 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var288
) /* add on <self:GlobalCompilerVisitor>*/;
4921 var289
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4922 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var289
) /* bugtype on <self:GlobalCompilerVisitor>*/;
4924 var291
= varonce290
;
4928 var294
= string__NativeString__to_s_with_length(var292
, var293
);
4930 varonce290
= var291
;
4932 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var291
) /* add on <self:GlobalCompilerVisitor>*/;
4938 var296
= varonce295
;
4942 var299
= string__NativeString__to_s_with_length(var297
, var298
);
4944 varonce295
= var296
;
4946 var300
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4948 var302
= varonce301
;
4950 var303
= "->classid) {";
4952 var305
= string__NativeString__to_s_with_length(var303
, var304
);
4954 varonce301
= var302
;
4956 var306
= NEW_array__Array(&type_array__Arraykernel__Object
);
4957 { /* var306 = array_instance Array[Object] */
4959 var308
= NEW_array__NativeArray(var307
, &type_array__NativeArraykernel__Object
);
4960 ((struct instance_array__NativeArray
*)var308
)->values
[0] = (val
*) var296
;
4961 ((struct instance_array__NativeArray
*)var308
)->values
[1] = (val
*) var300
;
4962 ((struct instance_array__NativeArray
*)var308
)->values
[2] = (val
*) var302
;
4963 ((void (*)(val
*, val
*, long))(var306
->class->vft
[COLOR_array__Array__with_native
]))(var306
, var308
, var307
) /* with_native on <var306:Array[Object]>*/;
4964 CHECK_NEW_array__Array(var306
);
4966 var309
= ((val
* (*)(val
*))(var306
->class->vft
[COLOR_string__Object__to_s
]))(var306
) /* to_s on <var306:Array[Object]>*/;
4967 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var309
) /* add on <self:GlobalCompilerVisitor>*/;
4968 var310
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
4971 var_defaultpropdef
= var311
;
4972 var312
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
4974 var313
= ((short int (*)(val
*))(var312
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var312
) /* is_ok on <var312:Iterator[nullable Object]>*/;
4976 var314
= ((val
* (*)(val
*))(var312
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var312
) /* item on <var312:Iterator[nullable Object]>*/;
4978 var315
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4979 var316
= ((val
* (*)(val
*))(var315
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var315
) /* mainmodule on <var315:AbstractCompiler(GlobalCompiler)>*/;
4980 var317
= ((val
* (*)(val
*, val
*, val
*))(var_m
->class->vft
[COLOR_model__MProperty__lookup_first_definition
]))(var_m
, var316
, var_t
) /* lookup_first_definition on <var_m:MMethod>*/;
4981 var_propdef318
= var317
;
4982 var320
= ((val
* (*)(val
*))(var_propdef318
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_propdef318
) /* mclassdef on <var_propdef318:MMethodDef>*/;
4983 var321
= ((val
* (*)(val
*))(var320
->class->vft
[COLOR_model__MClassDef__mclass
]))(var320
) /* mclass on <var320:MClassDef>*/;
4984 var322
= ((val
* (*)(val
*))(var321
->class->vft
[COLOR_model__MClass__name
]))(var321
) /* name on <var321:MClass>*/;
4986 var324
= varonce323
;
4990 var327
= string__NativeString__to_s_with_length(var325
, var326
);
4992 varonce323
= var324
;
4994 var328
= ((short int (*)(val
*, val
*))(var322
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var322
, var324
) /* == on <var322:String>*/;
4997 var330
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t
) /* ctype on <var_t:MClassType>*/;
4999 var332
= varonce331
;
5003 var335
= string__NativeString__to_s_with_length(var333
, var334
);
5005 varonce331
= var332
;
5007 var336
= ((short int (*)(val
*, val
*))(var330
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var330
, var332
) /* == on <var330:String>*/;
5013 var_defaultpropdef
= var_propdef318
;
5014 goto CONTINUE_label
;
5017 var339
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5018 var340
= ((short int (*)(val
*))(var339
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var339
) /* hardening on <var339:AbstractCompiler(GlobalCompiler)>*/;
5022 var343
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
5030 if (var_defaultpropdef
== NULL
) {
5031 var346
= 1; /* is null */
5033 var346
= 0; /* arg is null but recv is not */
5041 var348
= varonce347
;
5043 var349
= "default: /* test ";
5045 var351
= string__NativeString__to_s_with_length(var349
, var350
);
5047 varonce347
= var348
;
5050 var353
= varonce352
;
5054 var356
= string__NativeString__to_s_with_length(var354
, var355
);
5056 varonce352
= var353
;
5058 var357
= NEW_array__Array(&type_array__Arraykernel__Object
);
5059 { /* var357 = array_instance Array[Object] */
5061 var359
= NEW_array__NativeArray(var358
, &type_array__NativeArraykernel__Object
);
5062 ((struct instance_array__NativeArray
*)var359
)->values
[0] = (val
*) var348
;
5063 ((struct instance_array__NativeArray
*)var359
)->values
[1] = (val
*) var_t
;
5064 ((struct instance_array__NativeArray
*)var359
)->values
[2] = (val
*) var353
;
5065 ((void (*)(val
*, val
*, long))(var357
->class->vft
[COLOR_array__Array__with_native
]))(var357
, var359
, var358
) /* with_native on <var357:Array[Object]>*/;
5066 CHECK_NEW_array__Array(var357
);
5068 var360
= ((val
* (*)(val
*))(var357
->class->vft
[COLOR_string__Object__to_s
]))(var357
) /* to_s on <var357:Array[Object]>*/;
5069 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var360
) /* add on <self:GlobalCompilerVisitor>*/;
5072 var362
= varonce361
;
5076 var365
= string__NativeString__to_s_with_length(var363
, var364
);
5078 varonce361
= var362
;
5080 var366
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5081 var367
= ((val
* (*)(val
*, val
*))(var366
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var366
, var_t
) /* classid on <var366:AbstractCompiler(GlobalCompiler)>*/;
5083 var369
= varonce368
;
5085 var370
= ": /* test ";
5087 var372
= string__NativeString__to_s_with_length(var370
, var371
);
5089 varonce368
= var369
;
5092 var374
= varonce373
;
5096 var377
= string__NativeString__to_s_with_length(var375
, var376
);
5098 varonce373
= var374
;
5100 var378
= NEW_array__Array(&type_array__Arraykernel__Object
);
5101 { /* var378 = array_instance Array[Object] */
5103 var380
= NEW_array__NativeArray(var379
, &type_array__NativeArraykernel__Object
);
5104 ((struct instance_array__NativeArray
*)var380
)->values
[0] = (val
*) var362
;
5105 ((struct instance_array__NativeArray
*)var380
)->values
[1] = (val
*) var367
;
5106 ((struct instance_array__NativeArray
*)var380
)->values
[2] = (val
*) var369
;
5107 ((struct instance_array__NativeArray
*)var380
)->values
[3] = (val
*) var_t
;
5108 ((struct instance_array__NativeArray
*)var380
)->values
[4] = (val
*) var374
;
5109 ((void (*)(val
*, val
*, long))(var378
->class->vft
[COLOR_array__Array__with_native
]))(var378
, var380
, var379
) /* with_native on <var378:Array[Object]>*/;
5110 CHECK_NEW_array__Array(var378
);
5112 var381
= ((val
* (*)(val
*))(var378
->class->vft
[COLOR_string__Object__to_s
]))(var378
) /* to_s on <var378:Array[Object]>*/;
5113 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var381
) /* add on <self:GlobalCompilerVisitor>*/;
5115 var382
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__call
]))(self
, var_propdef318
, var_t
, var_args
) /* call on <self:GlobalCompilerVisitor>*/;
5116 var_res2383
= var382
;
5118 if (var_res
== NULL
) {
5119 var385
= 0; /* is null */
5121 var385
= 1; /* arg is null and recv is not */
5124 if (var_res2383
== NULL
) {
5125 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 419);
5128 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2383
) /* assign on <self:GlobalCompilerVisitor>*/;
5132 var387
= varonce386
;
5136 var390
= string__NativeString__to_s_with_length(var388
, var389
);
5138 varonce386
= var387
;
5140 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var387
) /* add on <self:GlobalCompilerVisitor>*/;
5141 CONTINUE_label
: (void)0;
5142 ((void (*)(val
*))(var312
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var312
) /* next on <var312:Iterator[nullable Object]>*/;
5144 BREAK_label
: (void)0;
5146 if (var_defaultpropdef
== NULL
) {
5147 var392
= 0; /* is null */
5149 var392
= 1; /* arg is null and recv is not */
5153 var394
= varonce393
;
5155 var395
= "default: /* default is Object */";
5157 var397
= string__NativeString__to_s_with_length(var395
, var396
);
5159 varonce393
= var394
;
5161 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var394
) /* add on <self:GlobalCompilerVisitor>*/;
5162 var398
= ((val
* (*)(val
*))(var_defaultpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_defaultpropdef
) /* mclassdef on <var_defaultpropdef:nullable MMethodDef(MMethodDef)>*/;
5163 var399
= ((val
* (*)(val
*))(var398
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var398
) /* bound_mtype on <var398:MClassDef>*/;
5164 var400
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__call
]))(self
, var_defaultpropdef
, var399
, var_args
) /* call on <self:GlobalCompilerVisitor>*/;
5165 var_res2401
= var400
;
5167 if (var_res
== NULL
) {
5168 var403
= 0; /* is null */
5170 var403
= 1; /* arg is null and recv is not */
5173 if (var_res2401
== NULL
) {
5174 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 425);
5177 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2401
) /* assign on <self:GlobalCompilerVisitor>*/;
5181 var404
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5182 var405
= ((short int (*)(val
*))(var404
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var404
) /* hardening on <var404:AbstractCompiler(GlobalCompiler)>*/;
5185 var407
= varonce406
;
5187 var408
= "default: /* bug */";
5189 var410
= string__NativeString__to_s_with_length(var408
, var409
);
5191 varonce406
= var407
;
5193 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var407
) /* add on <self:GlobalCompilerVisitor>*/;
5194 var411
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5195 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var411
) /* bugtype on <self:GlobalCompilerVisitor>*/;
5200 var413
= varonce412
;
5204 var416
= string__NativeString__to_s_with_length(var414
, var415
);
5206 varonce412
= var413
;
5208 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var413
) /* add on <self:GlobalCompilerVisitor>*/;
5214 /* method global_compiler#GlobalCompilerVisitor#send for (self: Object, MMethod, Array[RuntimeVariable]): nullable RuntimeVariable */
5215 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__send(val
* self
, val
* p0
, val
* p1
) {
5216 val
* var
/* : nullable RuntimeVariable */;
5217 val
* var1
/* : nullable RuntimeVariable */;
5218 var1
= global_compiler__GlobalCompilerVisitor__send(self
, p0
, p1
);
5223 /* method global_compiler#GlobalCompilerVisitor#check_valid_reciever for (self: GlobalCompilerVisitor, MClassType) */
5224 void global_compiler__GlobalCompilerVisitor__check_valid_reciever(val
* self
, val
* p0
) {
5225 val
* var_recvtype
/* var recvtype: MClassType */;
5226 short int var
/* : Bool */;
5227 val
* var1
/* : AbstractCompiler */;
5228 val
* var2
/* : RapidTypeAnalysis */;
5229 val
* var3
/* : HashSet[MClassType] */;
5230 short int var4
/* : Bool */;
5231 short int var_
/* var : Bool */;
5232 val
* var5
/* : MClass */;
5233 val
* var6
/* : String */;
5234 static val
* varonce
;
5235 val
* var7
/* : String */;
5236 char* var8
/* : NativeString */;
5237 long var9
/* : Int */;
5238 val
* var10
/* : String */;
5239 short int var11
/* : Bool */;
5240 static val
* varonce12
;
5241 val
* var13
/* : String */;
5242 char* var14
/* : NativeString */;
5243 long var15
/* : Int */;
5244 val
* var16
/* : String */;
5245 val
* var17
/* : Array[Object] */;
5246 long var18
/* : Int */;
5247 val
* var19
/* : NativeArray[Object] */;
5248 val
* var20
/* : String */;
5250 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5251 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var1
) /* runtime_type_analysis on <var1:AbstractCompiler(GlobalCompiler)>*/;
5252 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var2
) /* live_types on <var2:RapidTypeAnalysis>*/;
5253 var4
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var3
, var_recvtype
) /* has on <var3:HashSet[MClassType]>*/;
5258 var5
= ((val
* (*)(val
*))(var_recvtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_recvtype
) /* mclass on <var_recvtype:MClassType>*/;
5259 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClass__name
]))(var5
) /* name on <var5:MClass>*/;
5265 var10
= string__NativeString__to_s_with_length(var8
, var9
);
5269 var11
= ((short int (*)(val
*, val
*))(var6
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var6
, var7
) /* == on <var6:String>*/;
5279 var14
= " is not a live type";
5281 var16
= string__NativeString__to_s_with_length(var14
, var15
);
5285 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
5286 { /* var17 = array_instance Array[Object] */
5288 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
5289 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var_recvtype
;
5290 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var13
;
5291 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
5292 CHECK_NEW_array__Array(var17
);
5294 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
5295 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var20
) /* print on <self:GlobalCompilerVisitor>*/;
5296 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Aborted", "src/global_compiler.nit", 438);
5300 /* method global_compiler#GlobalCompilerVisitor#check_valid_reciever for (self: Object, MClassType) */
5301 void VIRTUAL_global_compiler__GlobalCompilerVisitor__check_valid_reciever(val
* self
, val
* p0
) {
5302 global_compiler__GlobalCompilerVisitor__check_valid_reciever(self
, p0
);
5305 /* method global_compiler#GlobalCompilerVisitor#get_recvtype for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): MClassType */
5306 val
* global_compiler__GlobalCompilerVisitor__get_recvtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5307 val
* var
/* : MClassType */;
5308 val
* var_m
/* var m: MMethodDef */;
5309 val
* var_recvtype
/* var recvtype: MClassType */;
5310 val
* var_args
/* var args: Array[RuntimeVariable] */;
5311 short int var1
/* : Bool */;
5312 val
* var2
/* : MClassDef */;
5313 val
* var3
/* : MClass */;
5314 val
* var4
/* : String */;
5315 static val
* varonce
;
5316 val
* var5
/* : String */;
5317 char* var6
/* : NativeString */;
5318 long var7
/* : Int */;
5319 val
* var8
/* : String */;
5320 short int var9
/* : Bool */;
5321 short int var_
/* var : Bool */;
5322 val
* var10
/* : String */;
5323 static val
* varonce11
;
5324 val
* var12
/* : String */;
5325 char* var13
/* : NativeString */;
5326 long var14
/* : Int */;
5327 val
* var15
/* : String */;
5328 short int var16
/* : Bool */;
5329 val
* var17
/* : MClassDef */;
5330 val
* var18
/* : MClassType */;
5334 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__check_valid_reciever
]))(self
, var_recvtype
) /* check_valid_reciever on <self:GlobalCompilerVisitor>*/;
5335 var2
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
5336 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mclass
]))(var2
) /* mclass on <var2:MClassDef>*/;
5337 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MClass__name
]))(var3
) /* name on <var3:MClass>*/;
5343 var8
= string__NativeString__to_s_with_length(var6
, var7
);
5347 var9
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var4
, var5
) /* == on <var4:String>*/;
5350 var10
= ((val
* (*)(val
*))(var_recvtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_recvtype
) /* ctype on <var_recvtype:MClassType>*/;
5356 var15
= string__NativeString__to_s_with_length(var13
, var14
);
5360 var16
= ((short int (*)(val
*, val
*))(var10
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var10
, var12
) /* == on <var10:String>*/;
5366 var17
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
5367 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var17
) /* bound_mtype on <var17:MClassDef>*/;
5368 var_recvtype
= var18
;
5376 /* method global_compiler#GlobalCompilerVisitor#get_recvtype for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): MClassType */
5377 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__get_recvtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5378 val
* var
/* : MClassType */;
5379 val
* var1
/* : MClassType */;
5380 var1
= global_compiler__GlobalCompilerVisitor__get_recvtype(self
, p0
, p1
, p2
);
5385 /* method global_compiler#GlobalCompilerVisitor#get_recv for (self: GlobalCompilerVisitor, MClassType, Array[RuntimeVariable]): RuntimeVariable */
5386 val
* global_compiler__GlobalCompilerVisitor__get_recv(val
* self
, val
* p0
, val
* p1
) {
5387 val
* var
/* : RuntimeVariable */;
5388 val
* var_recvtype
/* var recvtype: MClassType */;
5389 val
* var_args
/* var args: Array[RuntimeVariable] */;
5390 val
* var1
/* : nullable Object */;
5391 val
* var2
/* : RuntimeVariable */;
5392 val
* var3
/* : RuntimeVariable */;
5395 var1
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5396 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var1
, var_recvtype
) /* autobox on <self:GlobalCompilerVisitor>*/;
5397 var3
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var2
, var_recvtype
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
5403 /* method global_compiler#GlobalCompilerVisitor#get_recv for (self: Object, MClassType, Array[RuntimeVariable]): RuntimeVariable */
5404 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__get_recv(val
* self
, val
* p0
, val
* p1
) {
5405 val
* var
/* : RuntimeVariable */;
5406 val
* var1
/* : RuntimeVariable */;
5407 var1
= global_compiler__GlobalCompilerVisitor__get_recv(self
, p0
, p1
);
5412 /* method global_compiler#GlobalCompilerVisitor#finalize_call for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5413 val
* global_compiler__GlobalCompilerVisitor__finalize_call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5414 val
* var
/* : nullable RuntimeVariable */;
5415 val
* var_m
/* var m: MMethodDef */;
5416 val
* var_recvtype
/* var recvtype: MClassType */;
5417 val
* var_args
/* var args: Array[RuntimeVariable] */;
5418 long var1
/* : Int */;
5419 val
* var2
/* : nullable MSignature */;
5420 long var3
/* : Int */;
5421 long var4
/* : Int */;
5422 long var5
/* : Int */;
5423 long var7
/* : Int */;
5424 short int var8
/* : Bool */;
5425 short int var10
/* : Bool */;
5426 short int var11
/* : Bool */;
5427 static val
* varonce
;
5428 val
* var12
/* : String */;
5429 char* var13
/* : NativeString */;
5430 long var14
/* : Int */;
5431 val
* var15
/* : String */;
5432 static val
* varonce16
;
5433 val
* var17
/* : String */;
5434 char* var18
/* : NativeString */;
5435 long var19
/* : Int */;
5436 val
* var20
/* : String */;
5437 long var21
/* : Int */;
5438 static val
* varonce22
;
5439 val
* var23
/* : String */;
5440 char* var24
/* : NativeString */;
5441 long var25
/* : Int */;
5442 val
* var26
/* : String */;
5443 val
* var27
/* : Array[Object] */;
5444 long var28
/* : Int */;
5445 val
* var29
/* : NativeArray[Object] */;
5446 val
* var30
/* : Object */;
5447 val
* var31
/* : String */;
5448 static val
* varonce32
;
5449 val
* var33
/* : String */;
5450 char* var34
/* : NativeString */;
5451 long var35
/* : Int */;
5452 val
* var36
/* : String */;
5453 static val
* varonce37
;
5454 val
* var38
/* : String */;
5455 char* var39
/* : NativeString */;
5456 long var40
/* : Int */;
5457 val
* var41
/* : String */;
5458 long var42
/* : Int */;
5459 static val
* varonce43
;
5460 val
* var44
/* : String */;
5461 char* var45
/* : NativeString */;
5462 long var46
/* : Int */;
5463 val
* var47
/* : String */;
5464 val
* var48
/* : Array[Object] */;
5465 long var49
/* : Int */;
5466 val
* var50
/* : NativeArray[Object] */;
5467 val
* var51
/* : Object */;
5468 val
* var52
/* : String */;
5469 val
* var53
/* : null */;
5470 val
* var54
/* : CustomizedRuntimeFunction */;
5471 val
* var_rm
/* var rm: CustomizedRuntimeFunction */;
5472 val
* var55
/* : nullable RuntimeVariable */;
5476 var1
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[RuntimeVariable]>*/;
5477 var2
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
5479 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/global_compiler.nit", 464);
5482 var3
= ((long (*)(val
*))(var2
->class->vft
[COLOR_model__MSignature__arity
]))(var2
) /* arity on <var2:nullable MSignature>*/;
5485 { /* Inline kernel#Int#+ (var3,var4) */
5491 { /* Inline kernel#Int#!= (var1,var5) */
5492 var10
= var1
== var5
;
5502 var13
= "printf(\"NOT YET IMPLEMENTED: Invalid arity for ";
5504 var15
= string__NativeString__to_s_with_length(var13
, var14
);
5513 var20
= string__NativeString__to_s_with_length(var18
, var19
);
5517 var21
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[RuntimeVariable]>*/;
5521 var24
= " arguments given.\\n\"); exit(1);";
5523 var26
= string__NativeString__to_s_with_length(var24
, var25
);
5527 var27
= NEW_array__Array(&type_array__Arraykernel__Object
);
5528 { /* var27 = array_instance Array[Object] */
5530 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraykernel__Object
);
5531 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var12
;
5532 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var_m
;
5533 ((struct instance_array__NativeArray
*)var29
)->values
[2] = (val
*) var17
;
5534 var30
= BOX_kernel__Int(var21
); /* autobox from Int to Object */
5535 ((struct instance_array__NativeArray
*)var29
)->values
[3] = (val
*) var30
;
5536 ((struct instance_array__NativeArray
*)var29
)->values
[4] = (val
*) var23
;
5537 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
5538 CHECK_NEW_array__Array(var27
);
5540 var31
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
5541 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var31
) /* add on <self:GlobalCompilerVisitor>*/;
5545 var34
= "NOT YET IMPLEMENTED: Invalid arity for ";
5547 var36
= string__NativeString__to_s_with_length(var34
, var35
);
5556 var41
= string__NativeString__to_s_with_length(var39
, var40
);
5560 var42
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[RuntimeVariable]>*/;
5564 var45
= " arguments given.";
5566 var47
= string__NativeString__to_s_with_length(var45
, var46
);
5570 var48
= NEW_array__Array(&type_array__Arraykernel__Object
);
5571 { /* var48 = array_instance Array[Object] */
5573 var50
= NEW_array__NativeArray(var49
, &type_array__NativeArraykernel__Object
);
5574 ((struct instance_array__NativeArray
*)var50
)->values
[0] = (val
*) var33
;
5575 ((struct instance_array__NativeArray
*)var50
)->values
[1] = (val
*) var_m
;
5576 ((struct instance_array__NativeArray
*)var50
)->values
[2] = (val
*) var38
;
5577 var51
= BOX_kernel__Int(var42
); /* autobox from Int to Object */
5578 ((struct instance_array__NativeArray
*)var50
)->values
[3] = (val
*) var51
;
5579 ((struct instance_array__NativeArray
*)var50
)->values
[4] = (val
*) var44
;
5580 ((void (*)(val
*, val
*, long))(var48
->class->vft
[COLOR_array__Array__with_native
]))(var48
, var50
, var49
) /* with_native on <var48:Array[Object]>*/;
5581 CHECK_NEW_array__Array(var48
);
5583 var52
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_string__Object__to_s
]))(var48
) /* to_s on <var48:Array[Object]>*/;
5584 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__debug
]))(self
, var52
) /* debug on <self:GlobalCompilerVisitor>*/;
5590 var54
= NEW_global_compiler__CustomizedRuntimeFunction(&type_global_compiler__CustomizedRuntimeFunction
);
5591 ((void (*)(val
*, val
*, val
*))(var54
->class->vft
[COLOR_global_compiler__CustomizedRuntimeFunction__init
]))(var54
, var_m
, var_recvtype
) /* init on <var54:CustomizedRuntimeFunction>*/;
5592 CHECK_NEW_global_compiler__CustomizedRuntimeFunction(var54
);
5594 var55
= ((val
* (*)(val
*, val
*, val
*))(var_rm
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__call
]))(var_rm
, self
, var_args
) /* call on <var_rm:CustomizedRuntimeFunction>*/;
5600 /* method global_compiler#GlobalCompilerVisitor#finalize_call for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5601 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__finalize_call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5602 val
* var
/* : nullable RuntimeVariable */;
5603 val
* var1
/* : nullable RuntimeVariable */;
5604 var1
= global_compiler__GlobalCompilerVisitor__finalize_call(self
, p0
, p1
, p2
);
5609 /* method global_compiler#GlobalCompilerVisitor#call for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5610 val
* global_compiler__GlobalCompilerVisitor__call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5611 val
* var
/* : nullable RuntimeVariable */;
5612 val
* var_m
/* var m: MMethodDef */;
5613 val
* var_recvtype
/* var recvtype: MClassType */;
5614 val
* var_args
/* var args: Array[RuntimeVariable] */;
5615 val
* var1
/* : MClassType */;
5616 val
* var_recv_type
/* var recv_type: MClassType */;
5617 val
* var2
/* : RuntimeVariable */;
5618 val
* var_recv
/* var recv: RuntimeVariable */;
5619 val
* var3
/* : Array[nullable Object] */;
5620 val
* var_new_args
/* var new_args: Array[RuntimeVariable] */;
5621 val
* var4
/* : nullable MSignature */;
5622 val
* var5
/* : nullable RuntimeVariable */;
5626 var1
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__get_recvtype
]))(self
, var_m
, var_recvtype
, var_args
) /* get_recvtype on <self:GlobalCompilerVisitor>*/;
5627 var_recv_type
= var1
;
5628 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__get_recv
]))(self
, var_recv_type
, var_args
) /* get_recv on <self:GlobalCompilerVisitor>*/;
5630 var3
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_array__Collection__to_a
]))(var_args
) /* to_a on <var_args:Array[RuntimeVariable]>*/;
5631 var_new_args
= var3
;
5632 var4
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
5634 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 479);
5637 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__varargize
]))(self
, var_m
, var4
, var_new_args
) /* varargize on <self:GlobalCompilerVisitor>*/;
5638 ((void (*)(val
*, val
*))(var_new_args
->class->vft
[COLOR_abstract_collection__Sequence__first_61d
]))(var_new_args
, var_recv
) /* first= on <var_new_args:Array[RuntimeVariable]>*/;
5639 var5
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__finalize_call
]))(self
, var_m
, var_recv_type
, var_new_args
) /* finalize_call on <self:GlobalCompilerVisitor>*/;
5645 /* method global_compiler#GlobalCompilerVisitor#call for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5646 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5647 val
* var
/* : nullable RuntimeVariable */;
5648 val
* var1
/* : nullable RuntimeVariable */;
5649 var1
= global_compiler__GlobalCompilerVisitor__call(self
, p0
, p1
, p2
);
5654 /* method global_compiler#GlobalCompilerVisitor#call_without_varargize for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5655 val
* global_compiler__GlobalCompilerVisitor__call_without_varargize(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5656 val
* var
/* : nullable RuntimeVariable */;
5657 val
* var_m
/* var m: MMethodDef */;
5658 val
* var_recvtype
/* var recvtype: MClassType */;
5659 val
* var_args
/* var args: Array[RuntimeVariable] */;
5660 val
* var1
/* : MClassType */;
5661 val
* var_recv_type
/* var recv_type: MClassType */;
5662 val
* var2
/* : RuntimeVariable */;
5663 val
* var_recv
/* var recv: RuntimeVariable */;
5664 val
* var3
/* : Array[nullable Object] */;
5665 val
* var_new_args
/* var new_args: Array[RuntimeVariable] */;
5666 val
* var4
/* : nullable RuntimeVariable */;
5670 var1
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__get_recvtype
]))(self
, var_m
, var_recvtype
, var_args
) /* get_recvtype on <self:GlobalCompilerVisitor>*/;
5671 var_recv_type
= var1
;
5672 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__get_recv
]))(self
, var_recv_type
, var_args
) /* get_recv on <self:GlobalCompilerVisitor>*/;
5674 var3
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_array__Collection__to_a
]))(var_args
) /* to_a on <var_args:Array[RuntimeVariable]>*/;
5675 var_new_args
= var3
;
5676 ((void (*)(val
*, val
*))(var_new_args
->class->vft
[COLOR_abstract_collection__Sequence__first_61d
]))(var_new_args
, var_recv
) /* first= on <var_new_args:Array[RuntimeVariable]>*/;
5677 var4
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__finalize_call
]))(self
, var_m
, var_recv_type
, var_new_args
) /* finalize_call on <self:GlobalCompilerVisitor>*/;
5683 /* method global_compiler#GlobalCompilerVisitor#call_without_varargize for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5684 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__call_without_varargize(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5685 val
* var
/* : nullable RuntimeVariable */;
5686 val
* var1
/* : nullable RuntimeVariable */;
5687 var1
= global_compiler__GlobalCompilerVisitor__call_without_varargize(self
, p0
, p1
, p2
);
5692 /* method global_compiler#GlobalCompilerVisitor#supercall for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5693 val
* global_compiler__GlobalCompilerVisitor__supercall(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5694 val
* var
/* : nullable RuntimeVariable */;
5695 val
* var_m
/* var m: MMethodDef */;
5696 val
* var_recvtype
/* var recvtype: MClassType */;
5697 val
* var_args
/* var args: Array[RuntimeVariable] */;
5698 val
* var1
/* : nullable Object */;
5699 val
* var2
/* : Array[MClassType] */;
5700 val
* var_types
/* var types: Array[MClassType] */;
5701 val
* var3
/* : MProperty */;
5702 val
* var4
/* : MPropDef */;
5703 val
* var5
/* : nullable MSignature */;
5704 val
* var6
/* : nullable MType */;
5705 val
* var_ret
/* var ret: nullable MType */;
5706 val
* var7
/* : null */;
5707 short int var8
/* : Bool */;
5708 val
* var9
/* : null */;
5709 val
* var_res
/* var res: nullable RuntimeVariable */;
5710 val
* var10
/* : nullable Object */;
5711 val
* var11
/* : MType */;
5712 val
* var12
/* : RuntimeVariable */;
5713 static val
* varonce
;
5714 val
* var13
/* : String */;
5715 char* var14
/* : NativeString */;
5716 long var15
/* : Int */;
5717 val
* var16
/* : String */;
5718 static val
* varonce17
;
5719 val
* var18
/* : String */;
5720 char* var19
/* : NativeString */;
5721 long var20
/* : Int */;
5722 val
* var21
/* : String */;
5723 val
* var22
/* : nullable Object */;
5724 val
* var23
/* : String */;
5725 static val
* varonce24
;
5726 val
* var25
/* : String */;
5727 char* var26
/* : NativeString */;
5728 long var27
/* : Int */;
5729 val
* var28
/* : String */;
5730 val
* var29
/* : Array[Object] */;
5731 long var30
/* : Int */;
5732 val
* var31
/* : NativeArray[Object] */;
5733 val
* var32
/* : String */;
5734 val
* var33
/* : nullable Object */;
5735 val
* var34
/* : MType */;
5736 val
* var35
/* : String */;
5737 static val
* varonce36
;
5738 val
* var37
/* : String */;
5739 char* var38
/* : NativeString */;
5740 long var39
/* : Int */;
5741 val
* var40
/* : String */;
5742 short int var41
/* : Bool */;
5743 val
* var42
/* : nullable Object */;
5744 val
* var43
/* : MType */;
5745 short int var44
/* : Bool */;
5748 val
* var_mclasstype
/* var mclasstype: MClassType */;
5749 val
* var45
/* : AbstractCompiler */;
5750 val
* var46
/* : RapidTypeAnalysis */;
5751 val
* var47
/* : HashSet[MClassType] */;
5752 short int var48
/* : Bool */;
5753 short int var49
/* : Bool */;
5754 static val
* varonce50
;
5755 val
* var51
/* : String */;
5756 char* var52
/* : NativeString */;
5757 long var53
/* : Int */;
5758 val
* var54
/* : String */;
5759 static val
* varonce55
;
5760 val
* var56
/* : String */;
5761 char* var57
/* : NativeString */;
5762 long var58
/* : Int */;
5763 val
* var59
/* : String */;
5764 val
* var60
/* : Array[Object] */;
5765 long var61
/* : Int */;
5766 val
* var62
/* : NativeArray[Object] */;
5767 val
* var63
/* : String */;
5768 val
* var64
/* : AbstractCompiler */;
5769 val
* var65
/* : MModule */;
5770 val
* var66
/* : MPropDef */;
5771 val
* var_propdef
/* var propdef: MMethodDef */;
5772 val
* var67
/* : nullable RuntimeVariable */;
5773 val
* var_res2
/* var res2: nullable RuntimeVariable */;
5774 val
* var68
/* : null */;
5775 short int var69
/* : Bool */;
5776 short int var70
/* : Bool */;
5777 static val
* varonce71
;
5778 val
* var72
/* : String */;
5779 char* var73
/* : NativeString */;
5780 long var74
/* : Int */;
5781 val
* var75
/* : String */;
5782 static val
* varonce76
;
5783 val
* var77
/* : String */;
5784 char* var78
/* : NativeString */;
5785 long var79
/* : Int */;
5786 val
* var80
/* : String */;
5787 val
* var81
/* : nullable Object */;
5788 val
* var82
/* : String */;
5789 static val
* varonce83
;
5790 val
* var84
/* : String */;
5791 char* var85
/* : NativeString */;
5792 long var86
/* : Int */;
5793 val
* var87
/* : String */;
5794 static val
* varonce88
;
5795 val
* var89
/* : String */;
5796 char* var90
/* : NativeString */;
5797 long var91
/* : Int */;
5798 val
* var92
/* : String */;
5799 val
* var93
/* : Array[Object] */;
5800 long var94
/* : Int */;
5801 val
* var95
/* : NativeArray[Object] */;
5802 val
* var96
/* : String */;
5803 val
* var97
/* : nullable Object */;
5804 static val
* varonce98
;
5805 val
* var99
/* : String */;
5806 char* var100
/* : NativeString */;
5807 long var101
/* : Int */;
5808 val
* var102
/* : String */;
5809 static val
* varonce103
;
5810 val
* var104
/* : String */;
5811 char* var105
/* : NativeString */;
5812 long var106
/* : Int */;
5813 val
* var107
/* : String */;
5814 val
* var108
/* : nullable Object */;
5815 static val
* varonce109
;
5816 val
* var110
/* : String */;
5817 char* var111
/* : NativeString */;
5818 long var112
/* : Int */;
5819 val
* var113
/* : String */;
5820 val
* var114
/* : Array[Object] */;
5821 long var115
/* : Int */;
5822 val
* var116
/* : NativeArray[Object] */;
5823 val
* var117
/* : String */;
5824 val
* var118
/* : nullable Object */;
5825 val
* var_last
/* var last: MClassType */;
5826 val
* var119
/* : Iterator[nullable Object] */;
5827 short int var120
/* : Bool */;
5828 val
* var121
/* : nullable Object */;
5829 val
* var_t
/* var t: MClassType */;
5830 val
* var122
/* : AbstractCompiler */;
5831 val
* var123
/* : MModule */;
5832 val
* var124
/* : MPropDef */;
5833 val
* var_propdef125
/* var propdef: MMethodDef */;
5834 short int var126
/* : Bool */;
5835 val
* var127
/* : AbstractCompiler */;
5836 short int var128
/* : Bool */;
5837 short int var129
/* : Bool */;
5838 short int var_
/* var : Bool */;
5839 short int var130
/* : Bool */;
5840 static val
* varonce131
;
5841 val
* var132
/* : String */;
5842 char* var133
/* : NativeString */;
5843 long var134
/* : Int */;
5844 val
* var135
/* : String */;
5845 static val
* varonce136
;
5846 val
* var137
/* : String */;
5847 char* var138
/* : NativeString */;
5848 long var139
/* : Int */;
5849 val
* var140
/* : String */;
5850 val
* var141
/* : Array[Object] */;
5851 long var142
/* : Int */;
5852 val
* var143
/* : NativeArray[Object] */;
5853 val
* var144
/* : String */;
5854 static val
* varonce145
;
5855 val
* var146
/* : String */;
5856 char* var147
/* : NativeString */;
5857 long var148
/* : Int */;
5858 val
* var149
/* : String */;
5859 val
* var150
/* : AbstractCompiler */;
5860 val
* var151
/* : String */;
5861 static val
* varonce152
;
5862 val
* var153
/* : String */;
5863 char* var154
/* : NativeString */;
5864 long var155
/* : Int */;
5865 val
* var156
/* : String */;
5866 static val
* varonce157
;
5867 val
* var158
/* : String */;
5868 char* var159
/* : NativeString */;
5869 long var160
/* : Int */;
5870 val
* var161
/* : String */;
5871 val
* var162
/* : Array[Object] */;
5872 long var163
/* : Int */;
5873 val
* var164
/* : NativeArray[Object] */;
5874 val
* var165
/* : String */;
5875 val
* var166
/* : nullable RuntimeVariable */;
5876 val
* var_res2167
/* var res2: nullable RuntimeVariable */;
5877 val
* var168
/* : null */;
5878 short int var169
/* : Bool */;
5879 static val
* varonce170
;
5880 val
* var171
/* : String */;
5881 char* var172
/* : NativeString */;
5882 long var173
/* : Int */;
5883 val
* var174
/* : String */;
5884 val
* var175
/* : AbstractCompiler */;
5885 short int var176
/* : Bool */;
5886 static val
* varonce177
;
5887 val
* var178
/* : String */;
5888 char* var179
/* : NativeString */;
5889 long var180
/* : Int */;
5890 val
* var181
/* : String */;
5891 val
* var182
/* : nullable Object */;
5892 static val
* varonce183
;
5893 val
* var184
/* : String */;
5894 char* var185
/* : NativeString */;
5895 long var186
/* : Int */;
5896 val
* var187
/* : String */;
5900 var1
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5901 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var1
) /* collect_types on <self:GlobalCompilerVisitor>*/;
5903 var3
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_m
) /* mproperty on <var_m:MMethodDef>*/;
5904 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MProperty__intro
]))(var3
) /* intro on <var3:MProperty(MMethod)>*/;
5905 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var4
) /* msignature on <var4:MPropDef(MMethodDef)>*/;
5907 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/global_compiler.nit", 500);
5910 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var5
) /* return_mtype on <var5:nullable MSignature>*/;
5914 if (var_ret
== NULL
) {
5915 var8
= 1; /* is null */
5917 var8
= 0; /* arg is null but recv is not */
5923 var10
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5924 var11
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ret
, var10
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
5926 var12
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
5932 var14
= "/* super ";
5934 var16
= string__NativeString__to_s_with_length(var14
, var15
);
5943 var21
= string__NativeString__to_s_with_length(var19
, var20
);
5947 var22
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5948 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_string__Object__inspect
]))(var22
) /* inspect on <var22:nullable Object(RuntimeVariable)>*/;
5954 var28
= string__NativeString__to_s_with_length(var26
, var27
);
5958 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
5959 { /* var29 = array_instance Array[Object] */
5961 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
5962 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var13
;
5963 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var_m
;
5964 ((struct instance_array__NativeArray
*)var31
)->values
[2] = (val
*) var18
;
5965 ((struct instance_array__NativeArray
*)var31
)->values
[3] = (val
*) var23
;
5966 ((struct instance_array__NativeArray
*)var31
)->values
[4] = (val
*) var25
;
5967 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
5968 CHECK_NEW_array__Array(var29
);
5970 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
5971 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var32
) /* add on <self:GlobalCompilerVisitor>*/;
5972 var33
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5973 var34
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var33
) /* mtype on <var33:nullable Object(RuntimeVariable)>*/;
5974 var35
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var34
) /* ctype on <var34:MType>*/;
5980 var40
= string__NativeString__to_s_with_length(var38
, var39
);
5984 var41
= ((short int (*)(val
*, val
*))(var35
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var35
, var37
) /* != on <var35:String>*/;
5986 var42
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5987 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var42
) /* mtype on <var42:nullable Object(RuntimeVariable)>*/;
5988 /* <var43:MType> isa MClassType */
5989 cltype
= type_model__MClassType
.color
;
5990 idtype
= type_model__MClassType
.id
;
5991 if(cltype
>= var43
->type
->table_size
) {
5994 var44
= var43
->type
->type_table
[cltype
] == idtype
;
5997 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 510);
6000 var_mclasstype
= var43
;
6001 var45
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6002 var46
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var45
) /* runtime_type_analysis on <var45:AbstractCompiler(GlobalCompiler)>*/;
6003 var47
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var46
) /* live_types on <var46:RapidTypeAnalysis>*/;
6004 var48
= ((short int (*)(val
*, val
*))(var47
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var47
, var_mclasstype
) /* has on <var47:HashSet[MClassType]>*/;
6010 var52
= "/* skip, no method ";
6012 var54
= string__NativeString__to_s_with_length(var52
, var53
);
6021 var59
= string__NativeString__to_s_with_length(var57
, var58
);
6025 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
6026 { /* var60 = array_instance Array[Object] */
6028 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
6029 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var51
;
6030 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var_m
;
6031 ((struct instance_array__NativeArray
*)var62
)->values
[2] = (val
*) var56
;
6032 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
6033 CHECK_NEW_array__Array(var60
);
6035 var63
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
6036 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var63
) /* add on <self:GlobalCompilerVisitor>*/;
6041 var64
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6042 var65
= ((val
* (*)(val
*))(var64
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var64
) /* mainmodule on <var64:AbstractCompiler(GlobalCompiler)>*/;
6043 var66
= ((val
* (*)(val
*, val
*, val
*))(var_m
->class->vft
[COLOR_model__MPropDef__lookup_next_definition
]))(var_m
, var65
, var_mclasstype
) /* lookup_next_definition on <var_m:MMethodDef>*/;
6044 var_propdef
= var66
;
6045 var67
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__call_without_varargize
]))(self
, var_propdef
, var_mclasstype
, var_args
) /* call_without_varargize on <self:GlobalCompilerVisitor>*/;
6048 if (var_res
== NULL
) {
6049 var69
= 0; /* is null */
6051 var69
= 1; /* arg is null and recv is not */
6054 if (var_res2
== NULL
) {
6055 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 517);
6058 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2
) /* assign on <self:GlobalCompilerVisitor>*/;
6065 var70
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
6072 var75
= string__NativeString__to_s_with_length(var73
, var74
);
6076 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var72
) /* add on <self:GlobalCompilerVisitor>*/;
6080 var78
= "/*BUG: no live types for ";
6082 var80
= string__NativeString__to_s_with_length(var78
, var79
);
6086 var81
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6087 var82
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__inspect
]))(var81
) /* inspect on <var81:nullable Object(RuntimeVariable)>*/;
6093 var87
= string__NativeString__to_s_with_length(var85
, var86
);
6102 var92
= string__NativeString__to_s_with_length(var90
, var91
);
6106 var93
= NEW_array__Array(&type_array__Arraykernel__Object
);
6107 { /* var93 = array_instance Array[Object] */
6109 var95
= NEW_array__NativeArray(var94
, &type_array__NativeArraykernel__Object
);
6110 ((struct instance_array__NativeArray
*)var95
)->values
[0] = (val
*) var77
;
6111 ((struct instance_array__NativeArray
*)var95
)->values
[1] = (val
*) var82
;
6112 ((struct instance_array__NativeArray
*)var95
)->values
[2] = (val
*) var84
;
6113 ((struct instance_array__NativeArray
*)var95
)->values
[3] = (val
*) var_m
;
6114 ((struct instance_array__NativeArray
*)var95
)->values
[4] = (val
*) var89
;
6115 ((void (*)(val
*, val
*, long))(var93
->class->vft
[COLOR_array__Array__with_native
]))(var93
, var95
, var94
) /* with_native on <var93:Array[Object]>*/;
6116 CHECK_NEW_array__Array(var93
);
6118 var96
= ((val
* (*)(val
*))(var93
->class->vft
[COLOR_string__Object__to_s
]))(var93
) /* to_s on <var93:Array[Object]>*/;
6119 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var96
) /* add on <self:GlobalCompilerVisitor>*/;
6120 var97
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6121 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var97
) /* bugtype on <self:GlobalCompilerVisitor>*/;
6127 var102
= string__NativeString__to_s_with_length(var100
, var101
);
6131 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var99
) /* add on <self:GlobalCompilerVisitor>*/;
6137 var104
= varonce103
;
6141 var107
= string__NativeString__to_s_with_length(var105
, var106
);
6143 varonce103
= var104
;
6145 var108
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6147 var110
= varonce109
;
6149 var111
= "->classid) {";
6151 var113
= string__NativeString__to_s_with_length(var111
, var112
);
6153 varonce109
= var110
;
6155 var114
= NEW_array__Array(&type_array__Arraykernel__Object
);
6156 { /* var114 = array_instance Array[Object] */
6158 var116
= NEW_array__NativeArray(var115
, &type_array__NativeArraykernel__Object
);
6159 ((struct instance_array__NativeArray
*)var116
)->values
[0] = (val
*) var104
;
6160 ((struct instance_array__NativeArray
*)var116
)->values
[1] = (val
*) var108
;
6161 ((struct instance_array__NativeArray
*)var116
)->values
[2] = (val
*) var110
;
6162 ((void (*)(val
*, val
*, long))(var114
->class->vft
[COLOR_array__Array__with_native
]))(var114
, var116
, var115
) /* with_native on <var114:Array[Object]>*/;
6163 CHECK_NEW_array__Array(var114
);
6165 var117
= ((val
* (*)(val
*))(var114
->class->vft
[COLOR_string__Object__to_s
]))(var114
) /* to_s on <var114:Array[Object]>*/;
6166 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var117
) /* add on <self:GlobalCompilerVisitor>*/;
6167 var118
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
6169 var119
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
6171 var120
= ((short int (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var119
) /* is_ok on <var119:Iterator[nullable Object]>*/;
6173 var121
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var119
) /* item on <var119:Iterator[nullable Object]>*/;
6175 var122
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6176 var123
= ((val
* (*)(val
*))(var122
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var122
) /* mainmodule on <var122:AbstractCompiler(GlobalCompiler)>*/;
6177 var124
= ((val
* (*)(val
*, val
*, val
*))(var_m
->class->vft
[COLOR_model__MPropDef__lookup_next_definition
]))(var_m
, var123
, var_t
) /* lookup_next_definition on <var_m:MMethodDef>*/;
6178 var_propdef125
= var124
;
6179 var127
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6180 var128
= ((short int (*)(val
*))(var127
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var127
) /* hardening on <var127:AbstractCompiler(GlobalCompiler)>*/;
6184 var130
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
6191 var132
= varonce131
;
6193 var133
= "default: /* test ";
6195 var135
= string__NativeString__to_s_with_length(var133
, var134
);
6197 varonce131
= var132
;
6200 var137
= varonce136
;
6204 var140
= string__NativeString__to_s_with_length(var138
, var139
);
6206 varonce136
= var137
;
6208 var141
= NEW_array__Array(&type_array__Arraykernel__Object
);
6209 { /* var141 = array_instance Array[Object] */
6211 var143
= NEW_array__NativeArray(var142
, &type_array__NativeArraykernel__Object
);
6212 ((struct instance_array__NativeArray
*)var143
)->values
[0] = (val
*) var132
;
6213 ((struct instance_array__NativeArray
*)var143
)->values
[1] = (val
*) var_t
;
6214 ((struct instance_array__NativeArray
*)var143
)->values
[2] = (val
*) var137
;
6215 ((void (*)(val
*, val
*, long))(var141
->class->vft
[COLOR_array__Array__with_native
]))(var141
, var143
, var142
) /* with_native on <var141:Array[Object]>*/;
6216 CHECK_NEW_array__Array(var141
);
6218 var144
= ((val
* (*)(val
*))(var141
->class->vft
[COLOR_string__Object__to_s
]))(var141
) /* to_s on <var141:Array[Object]>*/;
6219 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var144
) /* add on <self:GlobalCompilerVisitor>*/;
6222 var146
= varonce145
;
6226 var149
= string__NativeString__to_s_with_length(var147
, var148
);
6228 varonce145
= var146
;
6230 var150
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6231 var151
= ((val
* (*)(val
*, val
*))(var150
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var150
, var_t
) /* classid on <var150:AbstractCompiler(GlobalCompiler)>*/;
6233 var153
= varonce152
;
6235 var154
= ": /* test ";
6237 var156
= string__NativeString__to_s_with_length(var154
, var155
);
6239 varonce152
= var153
;
6242 var158
= varonce157
;
6246 var161
= string__NativeString__to_s_with_length(var159
, var160
);
6248 varonce157
= var158
;
6250 var162
= NEW_array__Array(&type_array__Arraykernel__Object
);
6251 { /* var162 = array_instance Array[Object] */
6253 var164
= NEW_array__NativeArray(var163
, &type_array__NativeArraykernel__Object
);
6254 ((struct instance_array__NativeArray
*)var164
)->values
[0] = (val
*) var146
;
6255 ((struct instance_array__NativeArray
*)var164
)->values
[1] = (val
*) var151
;
6256 ((struct instance_array__NativeArray
*)var164
)->values
[2] = (val
*) var153
;
6257 ((struct instance_array__NativeArray
*)var164
)->values
[3] = (val
*) var_t
;
6258 ((struct instance_array__NativeArray
*)var164
)->values
[4] = (val
*) var158
;
6259 ((void (*)(val
*, val
*, long))(var162
->class->vft
[COLOR_array__Array__with_native
]))(var162
, var164
, var163
) /* with_native on <var162:Array[Object]>*/;
6260 CHECK_NEW_array__Array(var162
);
6262 var165
= ((val
* (*)(val
*))(var162
->class->vft
[COLOR_string__Object__to_s
]))(var162
) /* to_s on <var162:Array[Object]>*/;
6263 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var165
) /* add on <self:GlobalCompilerVisitor>*/;
6265 var166
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__call_without_varargize
]))(self
, var_propdef125
, var_t
, var_args
) /* call_without_varargize on <self:GlobalCompilerVisitor>*/;
6266 var_res2167
= var166
;
6268 if (var_res
== NULL
) {
6269 var169
= 0; /* is null */
6271 var169
= 1; /* arg is null and recv is not */
6274 if (var_res2167
== NULL
) {
6275 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 539);
6278 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2167
) /* assign on <self:GlobalCompilerVisitor>*/;
6282 var171
= varonce170
;
6286 var174
= string__NativeString__to_s_with_length(var172
, var173
);
6288 varonce170
= var171
;
6290 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
6291 CONTINUE_label
: (void)0;
6292 ((void (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var119
) /* next on <var119:Iterator[nullable Object]>*/;
6294 BREAK_label
: (void)0;
6295 var175
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6296 var176
= ((short int (*)(val
*))(var175
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var175
) /* hardening on <var175:AbstractCompiler(GlobalCompiler)>*/;
6299 var178
= varonce177
;
6301 var179
= "default: /* bug */";
6303 var181
= string__NativeString__to_s_with_length(var179
, var180
);
6305 varonce177
= var178
;
6307 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var178
) /* add on <self:GlobalCompilerVisitor>*/;
6308 var182
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6309 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var182
) /* bugtype on <self:GlobalCompilerVisitor>*/;
6313 var184
= varonce183
;
6317 var187
= string__NativeString__to_s_with_length(var185
, var186
);
6319 varonce183
= var184
;
6321 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var184
) /* add on <self:GlobalCompilerVisitor>*/;
6327 /* method global_compiler#GlobalCompilerVisitor#supercall for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
6328 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__supercall(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6329 val
* var
/* : nullable RuntimeVariable */;
6330 val
* var1
/* : nullable RuntimeVariable */;
6331 var1
= global_compiler__GlobalCompilerVisitor__supercall(self
, p0
, p1
, p2
);
6336 /* method global_compiler#GlobalCompilerVisitor#adapt_signature for (self: GlobalCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
6337 void global_compiler__GlobalCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
6338 val
* var_m
/* var m: MMethodDef */;
6339 val
* var_args
/* var args: Array[RuntimeVariable] */;
6340 val
* var
/* : nullable Object */;
6341 val
* var_recv
/* var recv: RuntimeVariable */;
6342 val
* var1
/* : Range[Int] */;
6343 long var2
/* : Int */;
6344 val
* var3
/* : nullable MSignature */;
6345 long var4
/* : Int */;
6346 val
* var5
/* : Discrete */;
6347 val
* var6
/* : Discrete */;
6348 val
* var7
/* : Iterator[nullable Object] */;
6349 short int var8
/* : Bool */;
6350 val
* var9
/* : nullable Object */;
6351 long var_i
/* var i: Int */;
6352 long var10
/* : Int */;
6353 val
* var11
/* : nullable MSignature */;
6354 val
* var12
/* : Array[MParameter] */;
6355 val
* var13
/* : nullable Object */;
6356 val
* var14
/* : MType */;
6357 val
* var_t
/* var t: MType */;
6358 val
* var15
/* : nullable MSignature */;
6359 long var16
/* : Int */;
6360 short int var17
/* : Bool */;
6361 short int var19
/* : Bool */;
6362 long var20
/* : Int */;
6363 long var21
/* : Int */;
6364 long var23
/* : Int */;
6365 val
* var24
/* : nullable Object */;
6366 val
* var25
/* : MType */;
6367 val
* var26
/* : MType */;
6368 long var27
/* : Int */;
6369 long var28
/* : Int */;
6370 long var30
/* : Int */;
6371 long var31
/* : Int */;
6372 long var32
/* : Int */;
6373 long var34
/* : Int */;
6374 val
* var35
/* : nullable Object */;
6375 val
* var36
/* : RuntimeVariable */;
6378 var
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6380 var1
= NEW_range__Range(&type_range__Rangekernel__Int
);
6382 var3
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
6384 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/global_compiler.nit", 553);
6387 var4
= ((long (*)(val
*))(var3
->class->vft
[COLOR_model__MSignature__arity
]))(var3
) /* arity on <var3:nullable MSignature>*/;
6389 var5
= BOX_kernel__Int(var2
); /* autobox from Int to Discrete */
6390 var6
= BOX_kernel__Int(var4
); /* autobox from Int to Discrete */
6391 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_range__Range__without_last
]))(var1
, var5
, var6
) /* without_last on <var1:Range[Int]>*/;
6392 CHECK_NEW_range__Range(var1
);
6393 var7
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var1
) /* iterator on <var1:Range[Int]>*/;
6395 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
6397 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
6398 var10
= ((struct instance_kernel__Int
*)var9
)->value
; /* autounbox from nullable Object to Int */;
6400 var11
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
6401 if (var11
== NULL
) {
6402 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/global_compiler.nit", 554);
6405 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_model__MSignature__mparameters
]))(var11
) /* mparameters on <var11:nullable MSignature>*/;
6407 var13
= ((val
* (*)(val
*, long))(var12
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var12
, var_i
) /* [] on <var12:Array[MParameter]>*/;
6408 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__MParameter__mtype
]))(var13
) /* mtype on <var13:nullable Object(MParameter)>*/;
6410 var15
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
6411 if (var15
== NULL
) {
6412 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/global_compiler.nit", 555);
6415 var16
= ((long (*)(val
*))(var15
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var15
) /* vararg_rank on <var15:nullable MSignature>*/;
6417 { /* Inline kernel#Int#== (var_i,var16) */
6418 var19
= var_i
== var16
;
6421 RET_LABEL18
:(void)0;
6425 { /* Inline kernel#Int#+ (var_i,var20) */
6426 var23
= var_i
+ var20
;
6429 RET_LABEL22
:(void)0;
6431 var24
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var21
) /* [] on <var_args:Array[RuntimeVariable]>*/;
6432 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var24
) /* mtype on <var24:nullable Object(RuntimeVariable)>*/;
6436 var26
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_t
, var_recv
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
6439 { /* Inline kernel#Int#+ (var_i,var27) */
6440 var30
= var_i
+ var27
;
6443 RET_LABEL29
:(void)0;
6446 { /* Inline kernel#Int#+ (var_i,var31) */
6447 var34
= var_i
+ var31
;
6450 RET_LABEL33
:(void)0;
6452 var35
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var32
) /* [] on <var_args:Array[RuntimeVariable]>*/;
6453 var36
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var35
, var_t
) /* autobox on <self:GlobalCompilerVisitor>*/;
6454 ((void (*)(val
*, long, val
*))(var_args
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_args
, var28
, var36
) /* []= on <var_args:Array[RuntimeVariable]>*/;
6455 CONTINUE_label
: (void)0;
6456 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
6458 BREAK_label
: (void)0;
6461 /* method global_compiler#GlobalCompilerVisitor#adapt_signature for (self: Object, MMethodDef, Array[RuntimeVariable]) */
6462 void VIRTUAL_global_compiler__GlobalCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
6463 global_compiler__GlobalCompilerVisitor__adapt_signature(self
, p0
, p1
);
6466 /* method global_compiler#GlobalCompilerVisitor#vararg_instance for (self: GlobalCompilerVisitor, MPropDef, RuntimeVariable, Array[RuntimeVariable], MType): RuntimeVariable */
6467 val
* global_compiler__GlobalCompilerVisitor__vararg_instance(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
6468 val
* var
/* : RuntimeVariable */;
6469 val
* var_mpropdef
/* var mpropdef: MPropDef */;
6470 val
* var_recv
/* var recv: RuntimeVariable */;
6471 val
* var_varargs
/* var varargs: Array[RuntimeVariable] */;
6472 val
* var_elttype
/* var elttype: MType */;
6473 val
* var1
/* : MType */;
6474 val
* var2
/* : RuntimeVariable */;
6479 var1
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_elttype
, var_recv
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
6481 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__array_instance
]))(self
, var_varargs
, var_elttype
) /* array_instance on <self:GlobalCompilerVisitor>*/;
6487 /* method global_compiler#GlobalCompilerVisitor#vararg_instance for (self: Object, MPropDef, RuntimeVariable, Array[RuntimeVariable], MType): RuntimeVariable */
6488 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__vararg_instance(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
6489 val
* var
/* : RuntimeVariable */;
6490 val
* var1
/* : RuntimeVariable */;
6491 var1
= global_compiler__GlobalCompilerVisitor__vararg_instance(self
, p0
, p1
, p2
, p3
);
6496 /* method global_compiler#GlobalCompilerVisitor#bugtype for (self: GlobalCompilerVisitor, RuntimeVariable) */
6497 void global_compiler__GlobalCompilerVisitor__bugtype(val
* self
, val
* p0
) {
6498 val
* var_recv
/* var recv: RuntimeVariable */;
6499 val
* var
/* : MType */;
6500 val
* var1
/* : String */;
6501 static val
* varonce
;
6502 val
* var2
/* : String */;
6503 char* var3
/* : NativeString */;
6504 long var4
/* : Int */;
6505 val
* var5
/* : String */;
6506 short int var6
/* : Bool */;
6507 static val
* varonce7
;
6508 val
* var8
/* : String */;
6509 char* var9
/* : NativeString */;
6510 long var10
/* : Int */;
6511 val
* var11
/* : String */;
6512 static val
* varonce12
;
6513 val
* var13
/* : String */;
6514 char* var14
/* : NativeString */;
6515 long var15
/* : Int */;
6516 val
* var16
/* : String */;
6517 val
* var17
/* : MType */;
6518 static val
* varonce18
;
6519 val
* var19
/* : String */;
6520 char* var20
/* : NativeString */;
6521 long var21
/* : Int */;
6522 val
* var22
/* : String */;
6523 val
* var23
/* : Array[Object] */;
6524 long var24
/* : Int */;
6525 val
* var25
/* : NativeArray[Object] */;
6526 val
* var26
/* : String */;
6527 static val
* varonce27
;
6528 val
* var28
/* : String */;
6529 char* var29
/* : NativeString */;
6530 long var30
/* : Int */;
6531 val
* var31
/* : String */;
6533 var
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_recv
) /* mtype on <var_recv:RuntimeVariable>*/;
6534 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var
) /* ctype on <var:MType>*/;
6540 var5
= string__NativeString__to_s_with_length(var3
, var4
);
6544 var6
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var1
, var2
) /* != on <var1:String>*/;
6552 var9
= "fprintf(stderr, \"BTD BUG: Dynamic type is %s, static type is %s\\n\", class_names[";
6554 var11
= string__NativeString__to_s_with_length(var9
, var10
);
6561 var14
= "->classid], \"";
6563 var16
= string__NativeString__to_s_with_length(var14
, var15
);
6567 var17
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_recv
) /* mcasttype on <var_recv:RuntimeVariable>*/;
6573 var22
= string__NativeString__to_s_with_length(var20
, var21
);
6577 var23
= NEW_array__Array(&type_array__Arraykernel__Object
);
6578 { /* var23 = array_instance Array[Object] */
6580 var25
= NEW_array__NativeArray(var24
, &type_array__NativeArraykernel__Object
);
6581 ((struct instance_array__NativeArray
*)var25
)->values
[0] = (val
*) var8
;
6582 ((struct instance_array__NativeArray
*)var25
)->values
[1] = (val
*) var_recv
;
6583 ((struct instance_array__NativeArray
*)var25
)->values
[2] = (val
*) var13
;
6584 ((struct instance_array__NativeArray
*)var25
)->values
[3] = (val
*) var17
;
6585 ((struct instance_array__NativeArray
*)var25
)->values
[4] = (val
*) var19
;
6586 ((void (*)(val
*, val
*, long))(var23
->class->vft
[COLOR_array__Array__with_native
]))(var23
, var25
, var24
) /* with_native on <var23:Array[Object]>*/;
6587 CHECK_NEW_array__Array(var23
);
6589 var26
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_string__Object__to_s
]))(var23
) /* to_s on <var23:Array[Object]>*/;
6590 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var26
) /* add on <self:GlobalCompilerVisitor>*/;
6596 var31
= string__NativeString__to_s_with_length(var29
, var30
);
6600 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var28
) /* add on <self:GlobalCompilerVisitor>*/;
6603 /* method global_compiler#GlobalCompilerVisitor#bugtype for (self: Object, RuntimeVariable) */
6604 void VIRTUAL_global_compiler__GlobalCompilerVisitor__bugtype(val
* self
, val
* p0
) {
6605 global_compiler__GlobalCompilerVisitor__bugtype(self
, p0
);
6608 /* method global_compiler#GlobalCompilerVisitor#isset_attribute for (self: GlobalCompilerVisitor, MAttribute, RuntimeVariable): RuntimeVariable */
6609 val
* global_compiler__GlobalCompilerVisitor__isset_attribute(val
* self
, val
* p0
, val
* p1
) {
6610 val
* var
/* : RuntimeVariable */;
6611 val
* var_a
/* var a: MAttribute */;
6612 val
* var_recv
/* var recv: RuntimeVariable */;
6613 val
* var1
/* : Array[MClassType] */;
6614 val
* var_types
/* var types: Array[MClassType] */;
6615 val
* var2
/* : MClassType */;
6616 val
* var3
/* : RuntimeVariable */;
6617 val
* var_res
/* var res: RuntimeVariable */;
6618 short int var4
/* : Bool */;
6619 static val
* varonce
;
6620 val
* var5
/* : String */;
6621 char* var6
/* : NativeString */;
6622 long var7
/* : Int */;
6623 val
* var8
/* : String */;
6624 val
* var9
/* : String */;
6625 static val
* varonce10
;
6626 val
* var11
/* : String */;
6627 char* var12
/* : NativeString */;
6628 long var13
/* : Int */;
6629 val
* var14
/* : String */;
6630 static val
* varonce15
;
6631 val
* var16
/* : String */;
6632 char* var17
/* : NativeString */;
6633 long var18
/* : Int */;
6634 val
* var19
/* : String */;
6635 val
* var20
/* : Array[Object] */;
6636 long var21
/* : Int */;
6637 val
* var22
/* : NativeArray[Object] */;
6638 val
* var23
/* : String */;
6639 static val
* varonce24
;
6640 val
* var25
/* : String */;
6641 char* var26
/* : NativeString */;
6642 long var27
/* : Int */;
6643 val
* var28
/* : String */;
6644 static val
* varonce29
;
6645 val
* var30
/* : String */;
6646 char* var31
/* : NativeString */;
6647 long var32
/* : Int */;
6648 val
* var33
/* : String */;
6649 val
* var34
/* : String */;
6650 static val
* varonce35
;
6651 val
* var36
/* : String */;
6652 char* var37
/* : NativeString */;
6653 long var38
/* : Int */;
6654 val
* var39
/* : String */;
6655 val
* var40
/* : Array[Object] */;
6656 long var41
/* : Int */;
6657 val
* var42
/* : NativeArray[Object] */;
6658 val
* var43
/* : String */;
6659 static val
* varonce44
;
6660 val
* var45
/* : String */;
6661 char* var46
/* : NativeString */;
6662 long var47
/* : Int */;
6663 val
* var48
/* : String */;
6664 static val
* varonce49
;
6665 val
* var50
/* : String */;
6666 char* var51
/* : NativeString */;
6667 long var52
/* : Int */;
6668 val
* var53
/* : String */;
6669 val
* var54
/* : Array[Object] */;
6670 long var55
/* : Int */;
6671 val
* var56
/* : NativeArray[Object] */;
6672 val
* var57
/* : String */;
6673 val
* var58
/* : nullable Object */;
6674 val
* var_last
/* var last: MClassType */;
6675 val
* var59
/* : Iterator[nullable Object] */;
6676 short int var60
/* : Bool */;
6677 val
* var61
/* : nullable Object */;
6678 val
* var_t
/* var t: MClassType */;
6679 short int var62
/* : Bool */;
6680 val
* var63
/* : AbstractCompiler */;
6681 short int var64
/* : Bool */;
6682 short int var65
/* : Bool */;
6683 short int var_
/* var : Bool */;
6684 short int var66
/* : Bool */;
6685 static val
* varonce67
;
6686 val
* var68
/* : String */;
6687 char* var69
/* : NativeString */;
6688 long var70
/* : Int */;
6689 val
* var71
/* : String */;
6690 val
* var72
/* : AbstractCompiler */;
6691 val
* var73
/* : String */;
6692 static val
* varonce74
;
6693 val
* var75
/* : String */;
6694 char* var76
/* : NativeString */;
6695 long var77
/* : Int */;
6696 val
* var78
/* : String */;
6697 val
* var79
/* : Array[Object] */;
6698 long var80
/* : Int */;
6699 val
* var81
/* : NativeArray[Object] */;
6700 val
* var82
/* : String */;
6701 static val
* varonce83
;
6702 val
* var84
/* : String */;
6703 char* var85
/* : NativeString */;
6704 long var86
/* : Int */;
6705 val
* var87
/* : String */;
6706 val
* var88
/* : AbstractCompiler */;
6707 val
* var89
/* : String */;
6708 static val
* varonce90
;
6709 val
* var91
/* : String */;
6710 char* var92
/* : NativeString */;
6711 long var93
/* : Int */;
6712 val
* var94
/* : String */;
6713 val
* var95
/* : Array[Object] */;
6714 long var96
/* : Int */;
6715 val
* var97
/* : NativeArray[Object] */;
6716 val
* var98
/* : String */;
6717 val
* var99
/* : RuntimeVariable */;
6718 val
* var_recv2
/* var recv2: RuntimeVariable */;
6719 val
* var100
/* : MPropDef */;
6720 val
* var101
/* : nullable MType */;
6721 val
* var_ta
/* var ta: MType */;
6722 val
* var102
/* : MType */;
6723 static val
* varonce103
;
6724 val
* var104
/* : String */;
6725 char* var105
/* : NativeString */;
6726 long var106
/* : Int */;
6727 val
* var107
/* : String */;
6728 val
* var108
/* : String */;
6729 static val
* varonce109
;
6730 val
* var110
/* : String */;
6731 char* var111
/* : NativeString */;
6732 long var112
/* : Int */;
6733 val
* var113
/* : String */;
6734 static val
* varonce114
;
6735 val
* var115
/* : String */;
6736 char* var116
/* : NativeString */;
6737 long var117
/* : Int */;
6738 val
* var118
/* : String */;
6739 val
* var119
/* : MPropDef */;
6740 val
* var120
/* : String */;
6741 val
* var121
/* : Array[Object] */;
6742 long var122
/* : Int */;
6743 val
* var123
/* : NativeArray[Object] */;
6744 val
* var124
/* : String */;
6745 val
* var125
/* : RuntimeVariable */;
6746 val
* var_attr
/* var attr: RuntimeVariable */;
6747 short int var126
/* : Bool */;
6750 short int var127
/* : Bool */;
6751 val
* var128
/* : String */;
6752 static val
* varonce129
;
6753 val
* var130
/* : String */;
6754 char* var131
/* : NativeString */;
6755 long var132
/* : Int */;
6756 val
* var133
/* : String */;
6757 short int var134
/* : Bool */;
6758 static val
* varonce135
;
6759 val
* var136
/* : String */;
6760 char* var137
/* : NativeString */;
6761 long var138
/* : Int */;
6762 val
* var139
/* : String */;
6763 static val
* varonce140
;
6764 val
* var141
/* : String */;
6765 char* var142
/* : NativeString */;
6766 long var143
/* : Int */;
6767 val
* var144
/* : String */;
6768 val
* var145
/* : Array[Object] */;
6769 long var146
/* : Int */;
6770 val
* var147
/* : NativeArray[Object] */;
6771 val
* var148
/* : String */;
6772 static val
* varonce149
;
6773 val
* var150
/* : String */;
6774 char* var151
/* : NativeString */;
6775 long var152
/* : Int */;
6776 val
* var153
/* : String */;
6777 val
* var154
/* : Array[Object] */;
6778 long var155
/* : Int */;
6779 val
* var156
/* : NativeArray[Object] */;
6780 val
* var157
/* : String */;
6781 static val
* varonce158
;
6782 val
* var159
/* : String */;
6783 char* var160
/* : NativeString */;
6784 long var161
/* : Int */;
6785 val
* var162
/* : String */;
6786 val
* var163
/* : AbstractCompiler */;
6787 short int var164
/* : Bool */;
6788 static val
* varonce165
;
6789 val
* var166
/* : String */;
6790 char* var167
/* : NativeString */;
6791 long var168
/* : Int */;
6792 val
* var169
/* : String */;
6793 static val
* varonce170
;
6794 val
* var171
/* : String */;
6795 char* var172
/* : NativeString */;
6796 long var173
/* : Int */;
6797 val
* var174
/* : String */;
6800 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__check_recv_notnull
]))(self
, var_recv
) /* check_recv_notnull on <self:GlobalCompilerVisitor>*/;
6801 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_recv
) /* collect_types on <self:GlobalCompilerVisitor>*/;
6803 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type
]))(self
) /* bool_type on <self:GlobalCompilerVisitor>*/;
6804 var3
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var2
) /* new_var on <self:GlobalCompilerVisitor>*/;
6806 var4
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
6811 var6
= "/*BUG: no live types for ";
6813 var8
= string__NativeString__to_s_with_length(var6
, var7
);
6817 var9
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
6823 var14
= string__NativeString__to_s_with_length(var12
, var13
);
6832 var19
= string__NativeString__to_s_with_length(var17
, var18
);
6836 var20
= NEW_array__Array(&type_array__Arraykernel__Object
);
6837 { /* var20 = array_instance Array[Object] */
6839 var22
= NEW_array__NativeArray(var21
, &type_array__NativeArraykernel__Object
);
6840 ((struct instance_array__NativeArray
*)var22
)->values
[0] = (val
*) var5
;
6841 ((struct instance_array__NativeArray
*)var22
)->values
[1] = (val
*) var9
;
6842 ((struct instance_array__NativeArray
*)var22
)->values
[2] = (val
*) var11
;
6843 ((struct instance_array__NativeArray
*)var22
)->values
[3] = (val
*) var_a
;
6844 ((struct instance_array__NativeArray
*)var22
)->values
[4] = (val
*) var16
;
6845 ((void (*)(val
*, val
*, long))(var20
->class->vft
[COLOR_array__Array__with_native
]))(var20
, var22
, var21
) /* with_native on <var20:Array[Object]>*/;
6846 CHECK_NEW_array__Array(var20
);
6848 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_string__Object__to_s
]))(var20
) /* to_s on <var20:Array[Object]>*/;
6849 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var23
) /* add on <self:GlobalCompilerVisitor>*/;
6850 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
6858 var26
= "/* isset ";
6860 var28
= string__NativeString__to_s_with_length(var26
, var27
);
6869 var33
= string__NativeString__to_s_with_length(var31
, var32
);
6873 var34
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
6879 var39
= string__NativeString__to_s_with_length(var37
, var38
);
6883 var40
= NEW_array__Array(&type_array__Arraykernel__Object
);
6884 { /* var40 = array_instance Array[Object] */
6886 var42
= NEW_array__NativeArray(var41
, &type_array__NativeArraykernel__Object
);
6887 ((struct instance_array__NativeArray
*)var42
)->values
[0] = (val
*) var25
;
6888 ((struct instance_array__NativeArray
*)var42
)->values
[1] = (val
*) var_a
;
6889 ((struct instance_array__NativeArray
*)var42
)->values
[2] = (val
*) var30
;
6890 ((struct instance_array__NativeArray
*)var42
)->values
[3] = (val
*) var34
;
6891 ((struct instance_array__NativeArray
*)var42
)->values
[4] = (val
*) var36
;
6892 ((void (*)(val
*, val
*, long))(var40
->class->vft
[COLOR_array__Array__with_native
]))(var40
, var42
, var41
) /* with_native on <var40:Array[Object]>*/;
6893 CHECK_NEW_array__Array(var40
);
6895 var43
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_string__Object__to_s
]))(var40
) /* to_s on <var40:Array[Object]>*/;
6896 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var43
) /* add on <self:GlobalCompilerVisitor>*/;
6902 var48
= string__NativeString__to_s_with_length(var46
, var47
);
6909 var51
= "->classid) {";
6911 var53
= string__NativeString__to_s_with_length(var51
, var52
);
6915 var54
= NEW_array__Array(&type_array__Arraykernel__Object
);
6916 { /* var54 = array_instance Array[Object] */
6918 var56
= NEW_array__NativeArray(var55
, &type_array__NativeArraykernel__Object
);
6919 ((struct instance_array__NativeArray
*)var56
)->values
[0] = (val
*) var45
;
6920 ((struct instance_array__NativeArray
*)var56
)->values
[1] = (val
*) var_recv
;
6921 ((struct instance_array__NativeArray
*)var56
)->values
[2] = (val
*) var50
;
6922 ((void (*)(val
*, val
*, long))(var54
->class->vft
[COLOR_array__Array__with_native
]))(var54
, var56
, var55
) /* with_native on <var54:Array[Object]>*/;
6923 CHECK_NEW_array__Array(var54
);
6925 var57
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_string__Object__to_s
]))(var54
) /* to_s on <var54:Array[Object]>*/;
6926 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var57
) /* add on <self:GlobalCompilerVisitor>*/;
6927 var58
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
6929 var59
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
6931 var60
= ((short int (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var59
) /* is_ok on <var59:Iterator[nullable Object]>*/;
6933 var61
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var59
) /* item on <var59:Iterator[nullable Object]>*/;
6935 var63
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6936 var64
= ((short int (*)(val
*))(var63
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var63
) /* hardening on <var63:AbstractCompiler(GlobalCompiler)>*/;
6940 var66
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
6949 var69
= "default: /*";
6951 var71
= string__NativeString__to_s_with_length(var69
, var70
);
6955 var72
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6956 var73
= ((val
* (*)(val
*, val
*))(var72
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var72
, var_t
) /* classid on <var72:AbstractCompiler(GlobalCompiler)>*/;
6962 var78
= string__NativeString__to_s_with_length(var76
, var77
);
6966 var79
= NEW_array__Array(&type_array__Arraykernel__Object
);
6967 { /* var79 = array_instance Array[Object] */
6969 var81
= NEW_array__NativeArray(var80
, &type_array__NativeArraykernel__Object
);
6970 ((struct instance_array__NativeArray
*)var81
)->values
[0] = (val
*) var68
;
6971 ((struct instance_array__NativeArray
*)var81
)->values
[1] = (val
*) var73
;
6972 ((struct instance_array__NativeArray
*)var81
)->values
[2] = (val
*) var75
;
6973 ((void (*)(val
*, val
*, long))(var79
->class->vft
[COLOR_array__Array__with_native
]))(var79
, var81
, var80
) /* with_native on <var79:Array[Object]>*/;
6974 CHECK_NEW_array__Array(var79
);
6976 var82
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_string__Object__to_s
]))(var79
) /* to_s on <var79:Array[Object]>*/;
6977 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var82
) /* add on <self:GlobalCompilerVisitor>*/;
6984 var87
= string__NativeString__to_s_with_length(var85
, var86
);
6988 var88
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6989 var89
= ((val
* (*)(val
*, val
*))(var88
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var88
, var_t
) /* classid on <var88:AbstractCompiler(GlobalCompiler)>*/;
6995 var94
= string__NativeString__to_s_with_length(var92
, var93
);
6999 var95
= NEW_array__Array(&type_array__Arraykernel__Object
);
7000 { /* var95 = array_instance Array[Object] */
7002 var97
= NEW_array__NativeArray(var96
, &type_array__NativeArraykernel__Object
);
7003 ((struct instance_array__NativeArray
*)var97
)->values
[0] = (val
*) var84
;
7004 ((struct instance_array__NativeArray
*)var97
)->values
[1] = (val
*) var89
;
7005 ((struct instance_array__NativeArray
*)var97
)->values
[2] = (val
*) var91
;
7006 ((void (*)(val
*, val
*, long))(var95
->class->vft
[COLOR_array__Array__with_native
]))(var95
, var97
, var96
) /* with_native on <var95:Array[Object]>*/;
7007 CHECK_NEW_array__Array(var95
);
7009 var98
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_string__Object__to_s
]))(var95
) /* to_s on <var95:Array[Object]>*/;
7010 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var98
) /* add on <self:GlobalCompilerVisitor>*/;
7012 var99
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var_recv
, var_t
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
7014 var100
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7015 var101
= ((val
* (*)(val
*))(var100
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var100
) /* static_mtype on <var100:MPropDef(MAttributeDef)>*/;
7016 if (var101
== NULL
) {
7017 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 599);
7021 var102
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ta
, var_recv2
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
7024 var104
= varonce103
;
7026 var105
= "((struct ";
7028 var107
= string__NativeString__to_s_with_length(var105
, var106
);
7030 varonce103
= var104
;
7032 var108
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_t
) /* c_name on <var_t:MClassType>*/;
7034 var110
= varonce109
;
7038 var113
= string__NativeString__to_s_with_length(var111
, var112
);
7040 varonce109
= var110
;
7043 var115
= varonce114
;
7047 var118
= string__NativeString__to_s_with_length(var116
, var117
);
7049 varonce114
= var115
;
7051 var119
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7052 var120
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var119
) /* c_name on <var119:MPropDef(MAttributeDef)>*/;
7053 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
7054 { /* var121 = array_instance Array[Object] */
7056 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
7057 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var104
;
7058 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var108
;
7059 ((struct instance_array__NativeArray
*)var123
)->values
[2] = (val
*) var110
;
7060 ((struct instance_array__NativeArray
*)var123
)->values
[3] = (val
*) var_recv
;
7061 ((struct instance_array__NativeArray
*)var123
)->values
[4] = (val
*) var115
;
7062 ((struct instance_array__NativeArray
*)var123
)->values
[5] = (val
*) var120
;
7063 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
7064 CHECK_NEW_array__Array(var121
);
7066 var124
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
7067 var125
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var124
, var_ta
) /* new_expr on <self:GlobalCompilerVisitor>*/;
7069 /* <var_ta:MType> isa MNullableType */
7070 cltype
= type_model__MNullableType
.color
;
7071 idtype
= type_model__MNullableType
.id
;
7072 if(cltype
>= var_ta
->type
->table_size
) {
7075 var126
= var_ta
->type
->type_table
[cltype
] == idtype
;
7079 var128
= ((val
* (*)(val
*))(var_ta
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_ta
) /* ctype on <var_ta:MType>*/;
7081 var130
= varonce129
;
7085 var133
= string__NativeString__to_s_with_length(var131
, var132
);
7087 varonce129
= var130
;
7089 var134
= ((short int (*)(val
*, val
*))(var128
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var128
, var130
) /* == on <var128:String>*/;
7092 var136
= varonce135
;
7096 var139
= string__NativeString__to_s_with_length(var137
, var138
);
7098 varonce135
= var136
;
7101 var141
= varonce140
;
7103 var142
= " != NULL);";
7105 var144
= string__NativeString__to_s_with_length(var142
, var143
);
7107 varonce140
= var141
;
7109 var145
= NEW_array__Array(&type_array__Arraykernel__Object
);
7110 { /* var145 = array_instance Array[Object] */
7112 var147
= NEW_array__NativeArray(var146
, &type_array__NativeArraykernel__Object
);
7113 ((struct instance_array__NativeArray
*)var147
)->values
[0] = (val
*) var_res
;
7114 ((struct instance_array__NativeArray
*)var147
)->values
[1] = (val
*) var136
;
7115 ((struct instance_array__NativeArray
*)var147
)->values
[2] = (val
*) var_attr
;
7116 ((struct instance_array__NativeArray
*)var147
)->values
[3] = (val
*) var141
;
7117 ((void (*)(val
*, val
*, long))(var145
->class->vft
[COLOR_array__Array__with_native
]))(var145
, var147
, var146
) /* with_native on <var145:Array[Object]>*/;
7118 CHECK_NEW_array__Array(var145
);
7120 var148
= ((val
* (*)(val
*))(var145
->class->vft
[COLOR_string__Object__to_s
]))(var145
) /* to_s on <var145:Array[Object]>*/;
7121 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var148
) /* add on <self:GlobalCompilerVisitor>*/;
7124 var150
= varonce149
;
7126 var151
= " = 1; /*NOTYET isset on primitive attributes*/";
7128 var153
= string__NativeString__to_s_with_length(var151
, var152
);
7130 varonce149
= var150
;
7132 var154
= NEW_array__Array(&type_array__Arraykernel__Object
);
7133 { /* var154 = array_instance Array[Object] */
7135 var156
= NEW_array__NativeArray(var155
, &type_array__NativeArraykernel__Object
);
7136 ((struct instance_array__NativeArray
*)var156
)->values
[0] = (val
*) var_res
;
7137 ((struct instance_array__NativeArray
*)var156
)->values
[1] = (val
*) var150
;
7138 ((void (*)(val
*, val
*, long))(var154
->class->vft
[COLOR_array__Array__with_native
]))(var154
, var156
, var155
) /* with_native on <var154:Array[Object]>*/;
7139 CHECK_NEW_array__Array(var154
);
7141 var157
= ((val
* (*)(val
*))(var154
->class->vft
[COLOR_string__Object__to_s
]))(var154
) /* to_s on <var154:Array[Object]>*/;
7142 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var157
) /* add on <self:GlobalCompilerVisitor>*/;
7147 var159
= varonce158
;
7151 var162
= string__NativeString__to_s_with_length(var160
, var161
);
7153 varonce158
= var159
;
7155 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var159
) /* add on <self:GlobalCompilerVisitor>*/;
7156 CONTINUE_label
: (void)0;
7157 ((void (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var59
) /* next on <var59:Iterator[nullable Object]>*/;
7159 BREAK_label
: (void)0;
7160 var163
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7161 var164
= ((short int (*)(val
*))(var163
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var163
) /* hardening on <var163:AbstractCompiler(GlobalCompiler)>*/;
7164 var166
= varonce165
;
7166 var167
= "default: /* Bug */";
7168 var169
= string__NativeString__to_s_with_length(var167
, var168
);
7170 varonce165
= var166
;
7172 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var166
) /* add on <self:GlobalCompilerVisitor>*/;
7173 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
7177 var171
= varonce170
;
7181 var174
= string__NativeString__to_s_with_length(var172
, var173
);
7183 varonce170
= var171
;
7185 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
7191 /* method global_compiler#GlobalCompilerVisitor#isset_attribute for (self: Object, MAttribute, RuntimeVariable): RuntimeVariable */
7192 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__isset_attribute(val
* self
, val
* p0
, val
* p1
) {
7193 val
* var
/* : RuntimeVariable */;
7194 val
* var1
/* : RuntimeVariable */;
7195 var1
= global_compiler__GlobalCompilerVisitor__isset_attribute(self
, p0
, p1
);
7200 /* method global_compiler#GlobalCompilerVisitor#read_attribute for (self: GlobalCompilerVisitor, MAttribute, RuntimeVariable): RuntimeVariable */
7201 val
* global_compiler__GlobalCompilerVisitor__read_attribute(val
* self
, val
* p0
, val
* p1
) {
7202 val
* var
/* : RuntimeVariable */;
7203 val
* var_a
/* var a: MAttribute */;
7204 val
* var_recv
/* var recv: RuntimeVariable */;
7205 val
* var1
/* : Array[MClassType] */;
7206 val
* var_types
/* var types: Array[MClassType] */;
7207 val
* var2
/* : MPropDef */;
7208 val
* var3
/* : nullable MType */;
7209 val
* var_ret
/* var ret: MType */;
7210 val
* var4
/* : MType */;
7211 val
* var5
/* : RuntimeVariable */;
7212 val
* var_res
/* var res: RuntimeVariable */;
7213 short int var6
/* : Bool */;
7214 static val
* varonce
;
7215 val
* var7
/* : String */;
7216 char* var8
/* : NativeString */;
7217 long var9
/* : Int */;
7218 val
* var10
/* : String */;
7219 val
* var11
/* : String */;
7220 static val
* varonce12
;
7221 val
* var13
/* : String */;
7222 char* var14
/* : NativeString */;
7223 long var15
/* : Int */;
7224 val
* var16
/* : String */;
7225 static val
* varonce17
;
7226 val
* var18
/* : String */;
7227 char* var19
/* : NativeString */;
7228 long var20
/* : Int */;
7229 val
* var21
/* : String */;
7230 val
* var22
/* : Array[Object] */;
7231 long var23
/* : Int */;
7232 val
* var24
/* : NativeArray[Object] */;
7233 val
* var25
/* : String */;
7234 static val
* varonce26
;
7235 val
* var27
/* : String */;
7236 char* var28
/* : NativeString */;
7237 long var29
/* : Int */;
7238 val
* var30
/* : String */;
7239 static val
* varonce31
;
7240 val
* var32
/* : String */;
7241 char* var33
/* : NativeString */;
7242 long var34
/* : Int */;
7243 val
* var35
/* : String */;
7244 val
* var36
/* : String */;
7245 static val
* varonce37
;
7246 val
* var38
/* : String */;
7247 char* var39
/* : NativeString */;
7248 long var40
/* : Int */;
7249 val
* var41
/* : String */;
7250 val
* var42
/* : Array[Object] */;
7251 long var43
/* : Int */;
7252 val
* var44
/* : NativeArray[Object] */;
7253 val
* var45
/* : String */;
7254 static val
* varonce46
;
7255 val
* var47
/* : String */;
7256 char* var48
/* : NativeString */;
7257 long var49
/* : Int */;
7258 val
* var50
/* : String */;
7259 static val
* varonce51
;
7260 val
* var52
/* : String */;
7261 char* var53
/* : NativeString */;
7262 long var54
/* : Int */;
7263 val
* var55
/* : String */;
7264 val
* var56
/* : Array[Object] */;
7265 long var57
/* : Int */;
7266 val
* var58
/* : NativeArray[Object] */;
7267 val
* var59
/* : String */;
7268 val
* var60
/* : nullable Object */;
7269 val
* var_last
/* var last: MClassType */;
7270 val
* var61
/* : Iterator[nullable Object] */;
7271 short int var62
/* : Bool */;
7272 val
* var63
/* : nullable Object */;
7273 val
* var_t
/* var t: MClassType */;
7274 short int var64
/* : Bool */;
7275 val
* var65
/* : AbstractCompiler */;
7276 short int var66
/* : Bool */;
7277 short int var67
/* : Bool */;
7278 short int var_
/* var : Bool */;
7279 short int var68
/* : Bool */;
7280 static val
* varonce69
;
7281 val
* var70
/* : String */;
7282 char* var71
/* : NativeString */;
7283 long var72
/* : Int */;
7284 val
* var73
/* : String */;
7285 val
* var74
/* : AbstractCompiler */;
7286 val
* var75
/* : String */;
7287 static val
* varonce76
;
7288 val
* var77
/* : String */;
7289 char* var78
/* : NativeString */;
7290 long var79
/* : Int */;
7291 val
* var80
/* : String */;
7292 val
* var81
/* : Array[Object] */;
7293 long var82
/* : Int */;
7294 val
* var83
/* : NativeArray[Object] */;
7295 val
* var84
/* : String */;
7296 static val
* varonce85
;
7297 val
* var86
/* : String */;
7298 char* var87
/* : NativeString */;
7299 long var88
/* : Int */;
7300 val
* var89
/* : String */;
7301 val
* var90
/* : AbstractCompiler */;
7302 val
* var91
/* : String */;
7303 static val
* varonce92
;
7304 val
* var93
/* : String */;
7305 char* var94
/* : NativeString */;
7306 long var95
/* : Int */;
7307 val
* var96
/* : String */;
7308 val
* var97
/* : Array[Object] */;
7309 long var98
/* : Int */;
7310 val
* var99
/* : NativeArray[Object] */;
7311 val
* var100
/* : String */;
7312 val
* var101
/* : RuntimeVariable */;
7313 val
* var_recv2
/* var recv2: RuntimeVariable */;
7314 val
* var102
/* : MPropDef */;
7315 val
* var103
/* : nullable MType */;
7316 val
* var_ta
/* var ta: MType */;
7317 val
* var104
/* : MType */;
7318 static val
* varonce105
;
7319 val
* var106
/* : String */;
7320 char* var107
/* : NativeString */;
7321 long var108
/* : Int */;
7322 val
* var109
/* : String */;
7323 val
* var110
/* : String */;
7324 static val
* varonce111
;
7325 val
* var112
/* : String */;
7326 char* var113
/* : NativeString */;
7327 long var114
/* : Int */;
7328 val
* var115
/* : String */;
7329 static val
* varonce116
;
7330 val
* var117
/* : String */;
7331 char* var118
/* : NativeString */;
7332 long var119
/* : Int */;
7333 val
* var120
/* : String */;
7334 val
* var121
/* : MPropDef */;
7335 val
* var122
/* : String */;
7336 val
* var123
/* : Array[Object] */;
7337 long var124
/* : Int */;
7338 val
* var125
/* : NativeArray[Object] */;
7339 val
* var126
/* : String */;
7340 val
* var127
/* : RuntimeVariable */;
7341 val
* var_res2
/* var res2: RuntimeVariable */;
7342 short int var128
/* : Bool */;
7343 short int var129
/* : Bool */;
7346 short int var130
/* : Bool */;
7347 short int var_131
/* var : Bool */;
7348 val
* var132
/* : AbstractCompiler */;
7349 val
* var133
/* : ModelBuilder */;
7350 val
* var134
/* : ToolContext */;
7351 val
* var135
/* : OptionBool */;
7352 val
* var136
/* : nullable Object */;
7353 short int var137
/* : Bool */;
7354 short int var138
/* : Bool */;
7355 val
* var139
/* : String */;
7356 static val
* varonce140
;
7357 val
* var141
/* : String */;
7358 char* var142
/* : NativeString */;
7359 long var143
/* : Int */;
7360 val
* var144
/* : String */;
7361 short int var145
/* : Bool */;
7362 static val
* varonce146
;
7363 val
* var147
/* : String */;
7364 char* var148
/* : NativeString */;
7365 long var149
/* : Int */;
7366 val
* var150
/* : String */;
7367 static val
* varonce151
;
7368 val
* var152
/* : String */;
7369 char* var153
/* : NativeString */;
7370 long var154
/* : Int */;
7371 val
* var155
/* : String */;
7372 val
* var156
/* : Array[Object] */;
7373 long var157
/* : Int */;
7374 val
* var158
/* : NativeArray[Object] */;
7375 val
* var159
/* : String */;
7376 static val
* varonce160
;
7377 val
* var161
/* : String */;
7378 char* var162
/* : NativeString */;
7379 long var163
/* : Int */;
7380 val
* var164
/* : String */;
7381 val
* var165
/* : String */;
7382 val
* var166
/* : Array[Object] */;
7383 long var167
/* : Int */;
7384 val
* var168
/* : NativeArray[Object] */;
7385 val
* var169
/* : String */;
7386 static val
* varonce170
;
7387 val
* var171
/* : String */;
7388 char* var172
/* : NativeString */;
7389 long var173
/* : Int */;
7390 val
* var174
/* : String */;
7391 static val
* varonce175
;
7392 val
* var176
/* : String */;
7393 char* var177
/* : NativeString */;
7394 long var178
/* : Int */;
7395 val
* var179
/* : String */;
7396 static val
* varonce180
;
7397 val
* var181
/* : String */;
7398 char* var182
/* : NativeString */;
7399 long var183
/* : Int */;
7400 val
* var184
/* : String */;
7401 val
* var185
/* : AbstractCompiler */;
7402 short int var186
/* : Bool */;
7403 static val
* varonce187
;
7404 val
* var188
/* : String */;
7405 char* var189
/* : NativeString */;
7406 long var190
/* : Int */;
7407 val
* var191
/* : String */;
7408 static val
* varonce192
;
7409 val
* var193
/* : String */;
7410 char* var194
/* : NativeString */;
7411 long var195
/* : Int */;
7412 val
* var196
/* : String */;
7415 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__check_recv_notnull
]))(self
, var_recv
) /* check_recv_notnull on <self:GlobalCompilerVisitor>*/;
7416 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_recv
) /* collect_types on <self:GlobalCompilerVisitor>*/;
7418 var2
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7419 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var2
) /* static_mtype on <var2:MPropDef(MAttributeDef)>*/;
7421 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 626);
7425 var4
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ret
, var_recv
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
7427 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
7429 var6
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
7434 var8
= "/*BUG: no live types for ";
7436 var10
= string__NativeString__to_s_with_length(var8
, var9
);
7440 var11
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
7446 var16
= string__NativeString__to_s_with_length(var14
, var15
);
7455 var21
= string__NativeString__to_s_with_length(var19
, var20
);
7459 var22
= NEW_array__Array(&type_array__Arraykernel__Object
);
7460 { /* var22 = array_instance Array[Object] */
7462 var24
= NEW_array__NativeArray(var23
, &type_array__NativeArraykernel__Object
);
7463 ((struct instance_array__NativeArray
*)var24
)->values
[0] = (val
*) var7
;
7464 ((struct instance_array__NativeArray
*)var24
)->values
[1] = (val
*) var11
;
7465 ((struct instance_array__NativeArray
*)var24
)->values
[2] = (val
*) var13
;
7466 ((struct instance_array__NativeArray
*)var24
)->values
[3] = (val
*) var_a
;
7467 ((struct instance_array__NativeArray
*)var24
)->values
[4] = (val
*) var18
;
7468 ((void (*)(val
*, val
*, long))(var22
->class->vft
[COLOR_array__Array__with_native
]))(var22
, var24
, var23
) /* with_native on <var22:Array[Object]>*/;
7469 CHECK_NEW_array__Array(var22
);
7471 var25
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_string__Object__to_s
]))(var22
) /* to_s on <var22:Array[Object]>*/;
7472 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var25
) /* add on <self:GlobalCompilerVisitor>*/;
7473 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
7483 var30
= string__NativeString__to_s_with_length(var28
, var29
);
7492 var35
= string__NativeString__to_s_with_length(var33
, var34
);
7496 var36
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
7502 var41
= string__NativeString__to_s_with_length(var39
, var40
);
7506 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
7507 { /* var42 = array_instance Array[Object] */
7509 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
7510 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var27
;
7511 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_a
;
7512 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var32
;
7513 ((struct instance_array__NativeArray
*)var44
)->values
[3] = (val
*) var36
;
7514 ((struct instance_array__NativeArray
*)var44
)->values
[4] = (val
*) var38
;
7515 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
7516 CHECK_NEW_array__Array(var42
);
7518 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
7519 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var45
) /* add on <self:GlobalCompilerVisitor>*/;
7525 var50
= string__NativeString__to_s_with_length(var48
, var49
);
7532 var53
= "->classid) {";
7534 var55
= string__NativeString__to_s_with_length(var53
, var54
);
7538 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
7539 { /* var56 = array_instance Array[Object] */
7541 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
7542 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var47
;
7543 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var_recv
;
7544 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var52
;
7545 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
7546 CHECK_NEW_array__Array(var56
);
7548 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
7549 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var59
) /* add on <self:GlobalCompilerVisitor>*/;
7550 var60
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
7552 var61
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
7554 var62
= ((short int (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var61
) /* is_ok on <var61:Iterator[nullable Object]>*/;
7556 var63
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var61
) /* item on <var61:Iterator[nullable Object]>*/;
7558 var65
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7559 var66
= ((short int (*)(val
*))(var65
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var65
) /* hardening on <var65:AbstractCompiler(GlobalCompiler)>*/;
7563 var68
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
7572 var71
= "default: /*";
7574 var73
= string__NativeString__to_s_with_length(var71
, var72
);
7578 var74
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7579 var75
= ((val
* (*)(val
*, val
*))(var74
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var74
, var_t
) /* classid on <var74:AbstractCompiler(GlobalCompiler)>*/;
7585 var80
= string__NativeString__to_s_with_length(var78
, var79
);
7589 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
7590 { /* var81 = array_instance Array[Object] */
7592 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
7593 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var70
;
7594 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var75
;
7595 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var77
;
7596 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
7597 CHECK_NEW_array__Array(var81
);
7599 var84
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
7600 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var84
) /* add on <self:GlobalCompilerVisitor>*/;
7607 var89
= string__NativeString__to_s_with_length(var87
, var88
);
7611 var90
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7612 var91
= ((val
* (*)(val
*, val
*))(var90
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var90
, var_t
) /* classid on <var90:AbstractCompiler(GlobalCompiler)>*/;
7618 var96
= string__NativeString__to_s_with_length(var94
, var95
);
7622 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
7623 { /* var97 = array_instance Array[Object] */
7625 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
7626 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var86
;
7627 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var91
;
7628 ((struct instance_array__NativeArray
*)var99
)->values
[2] = (val
*) var93
;
7629 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
7630 CHECK_NEW_array__Array(var97
);
7632 var100
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
7633 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var100
) /* add on <self:GlobalCompilerVisitor>*/;
7635 var101
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var_recv
, var_t
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
7637 var102
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7638 var103
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var102
) /* static_mtype on <var102:MPropDef(MAttributeDef)>*/;
7639 if (var103
== NULL
) {
7640 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 645);
7644 var104
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ta
, var_recv2
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
7647 var106
= varonce105
;
7649 var107
= "((struct ";
7651 var109
= string__NativeString__to_s_with_length(var107
, var108
);
7653 varonce105
= var106
;
7655 var110
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_t
) /* c_name on <var_t:MClassType>*/;
7657 var112
= varonce111
;
7661 var115
= string__NativeString__to_s_with_length(var113
, var114
);
7663 varonce111
= var112
;
7666 var117
= varonce116
;
7670 var120
= string__NativeString__to_s_with_length(var118
, var119
);
7672 varonce116
= var117
;
7674 var121
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7675 var122
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var121
) /* c_name on <var121:MPropDef(MAttributeDef)>*/;
7676 var123
= NEW_array__Array(&type_array__Arraykernel__Object
);
7677 { /* var123 = array_instance Array[Object] */
7679 var125
= NEW_array__NativeArray(var124
, &type_array__NativeArraykernel__Object
);
7680 ((struct instance_array__NativeArray
*)var125
)->values
[0] = (val
*) var106
;
7681 ((struct instance_array__NativeArray
*)var125
)->values
[1] = (val
*) var110
;
7682 ((struct instance_array__NativeArray
*)var125
)->values
[2] = (val
*) var112
;
7683 ((struct instance_array__NativeArray
*)var125
)->values
[3] = (val
*) var_recv
;
7684 ((struct instance_array__NativeArray
*)var125
)->values
[4] = (val
*) var117
;
7685 ((struct instance_array__NativeArray
*)var125
)->values
[5] = (val
*) var122
;
7686 ((void (*)(val
*, val
*, long))(var123
->class->vft
[COLOR_array__Array__with_native
]))(var123
, var125
, var124
) /* with_native on <var123:Array[Object]>*/;
7687 CHECK_NEW_array__Array(var123
);
7689 var126
= ((val
* (*)(val
*))(var123
->class->vft
[COLOR_string__Object__to_s
]))(var123
) /* to_s on <var123:Array[Object]>*/;
7690 var127
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var126
, var_ta
) /* new_expr on <self:GlobalCompilerVisitor>*/;
7692 /* <var_ta:MType> isa MNullableType */
7693 cltype
= type_model__MNullableType
.color
;
7694 idtype
= type_model__MNullableType
.id
;
7695 if(cltype
>= var_ta
->type
->table_size
) {
7698 var129
= var_ta
->type
->type_table
[cltype
] == idtype
;
7703 var132
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7704 var133
= ((val
* (*)(val
*))(var132
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var132
) /* modelbuilder on <var132:AbstractCompiler(GlobalCompiler)>*/;
7705 var134
= ((val
* (*)(val
*))(var133
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var133
) /* toolcontext on <var133:ModelBuilder>*/;
7706 var135
= ((val
* (*)(val
*))(var134
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_no_check_other
]))(var134
) /* opt_no_check_other on <var134:ToolContext>*/;
7707 var136
= ((val
* (*)(val
*))(var135
->class->vft
[COLOR_opts__Option__value
]))(var135
) /* value on <var135:OptionBool>*/;
7708 var137
= ((struct instance_kernel__Bool
*)var136
)->value
; /* autounbox from nullable Object to Bool */;
7715 var139
= ((val
* (*)(val
*))(var_ta
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_ta
) /* ctype on <var_ta:MType>*/;
7717 var141
= varonce140
;
7721 var144
= string__NativeString__to_s_with_length(var142
, var143
);
7723 varonce140
= var141
;
7725 var145
= ((short int (*)(val
*, val
*))(var139
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var139
, var141
) /* == on <var139:String>*/;
7728 var147
= varonce146
;
7732 var150
= string__NativeString__to_s_with_length(var148
, var149
);
7734 varonce146
= var147
;
7737 var152
= varonce151
;
7739 var153
= " == NULL) {";
7741 var155
= string__NativeString__to_s_with_length(var153
, var154
);
7743 varonce151
= var152
;
7745 var156
= NEW_array__Array(&type_array__Arraykernel__Object
);
7746 { /* var156 = array_instance Array[Object] */
7748 var158
= NEW_array__NativeArray(var157
, &type_array__NativeArraykernel__Object
);
7749 ((struct instance_array__NativeArray
*)var158
)->values
[0] = (val
*) var147
;
7750 ((struct instance_array__NativeArray
*)var158
)->values
[1] = (val
*) var_res2
;
7751 ((struct instance_array__NativeArray
*)var158
)->values
[2] = (val
*) var152
;
7752 ((void (*)(val
*, val
*, long))(var156
->class->vft
[COLOR_array__Array__with_native
]))(var156
, var158
, var157
) /* with_native on <var156:Array[Object]>*/;
7753 CHECK_NEW_array__Array(var156
);
7755 var159
= ((val
* (*)(val
*))(var156
->class->vft
[COLOR_string__Object__to_s
]))(var156
) /* to_s on <var156:Array[Object]>*/;
7756 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var159
) /* add on <self:GlobalCompilerVisitor>*/;
7758 var161
= varonce160
;
7760 var162
= "Uninitialized attribute ";
7762 var164
= string__NativeString__to_s_with_length(var162
, var163
);
7764 varonce160
= var161
;
7766 var165
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__name
]))(var_a
) /* name on <var_a:MAttribute>*/;
7767 var166
= NEW_array__Array(&type_array__Arraykernel__Object
);
7768 { /* var166 = array_instance Array[Object] */
7770 var168
= NEW_array__NativeArray(var167
, &type_array__NativeArraykernel__Object
);
7771 ((struct instance_array__NativeArray
*)var168
)->values
[0] = (val
*) var161
;
7772 ((struct instance_array__NativeArray
*)var168
)->values
[1] = (val
*) var165
;
7773 ((void (*)(val
*, val
*, long))(var166
->class->vft
[COLOR_array__Array__with_native
]))(var166
, var168
, var167
) /* with_native on <var166:Array[Object]>*/;
7774 CHECK_NEW_array__Array(var166
);
7776 var169
= ((val
* (*)(val
*))(var166
->class->vft
[COLOR_string__Object__to_s
]))(var166
) /* to_s on <var166:Array[Object]>*/;
7777 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(self
, var169
) /* add_abort on <self:GlobalCompilerVisitor>*/;
7779 var171
= varonce170
;
7783 var174
= string__NativeString__to_s_with_length(var172
, var173
);
7785 varonce170
= var171
;
7787 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
7790 var176
= varonce175
;
7792 var177
= "/*NOTYET isset on primitive attributes*/";
7794 var179
= string__NativeString__to_s_with_length(var177
, var178
);
7796 varonce175
= var176
;
7798 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var176
) /* add on <self:GlobalCompilerVisitor>*/;
7802 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2
) /* assign on <self:GlobalCompilerVisitor>*/;
7804 var181
= varonce180
;
7808 var184
= string__NativeString__to_s_with_length(var182
, var183
);
7810 varonce180
= var181
;
7812 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var181
) /* add on <self:GlobalCompilerVisitor>*/;
7813 CONTINUE_label
: (void)0;
7814 ((void (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var61
) /* next on <var61:Iterator[nullable Object]>*/;
7816 BREAK_label
: (void)0;
7817 var185
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7818 var186
= ((short int (*)(val
*))(var185
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var185
) /* hardening on <var185:AbstractCompiler(GlobalCompiler)>*/;
7821 var188
= varonce187
;
7823 var189
= "default: /* Bug */";
7825 var191
= string__NativeString__to_s_with_length(var189
, var190
);
7827 varonce187
= var188
;
7829 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var188
) /* add on <self:GlobalCompilerVisitor>*/;
7830 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
7834 var193
= varonce192
;
7838 var196
= string__NativeString__to_s_with_length(var194
, var195
);
7840 varonce192
= var193
;
7842 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var193
) /* add on <self:GlobalCompilerVisitor>*/;
7848 /* method global_compiler#GlobalCompilerVisitor#read_attribute for (self: Object, MAttribute, RuntimeVariable): RuntimeVariable */
7849 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__read_attribute(val
* self
, val
* p0
, val
* p1
) {
7850 val
* var
/* : RuntimeVariable */;
7851 val
* var1
/* : RuntimeVariable */;
7852 var1
= global_compiler__GlobalCompilerVisitor__read_attribute(self
, p0
, p1
);
7857 /* method global_compiler#GlobalCompilerVisitor#write_attribute for (self: GlobalCompilerVisitor, MAttribute, RuntimeVariable, RuntimeVariable) */
7858 void global_compiler__GlobalCompilerVisitor__write_attribute(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7859 val
* var_a
/* var a: MAttribute */;
7860 val
* var_recv
/* var recv: RuntimeVariable */;
7861 val
* var_value
/* var value: RuntimeVariable */;
7862 val
* var
/* : Array[MClassType] */;
7863 val
* var_types
/* var types: Array[MClassType] */;
7864 short int var1
/* : Bool */;
7865 static val
* varonce
;
7866 val
* var2
/* : String */;
7867 char* var3
/* : NativeString */;
7868 long var4
/* : Int */;
7869 val
* var5
/* : String */;
7870 val
* var6
/* : String */;
7871 static val
* varonce7
;
7872 val
* var8
/* : String */;
7873 char* var9
/* : NativeString */;
7874 long var10
/* : Int */;
7875 val
* var11
/* : String */;
7876 static val
* varonce12
;
7877 val
* var13
/* : String */;
7878 char* var14
/* : NativeString */;
7879 long var15
/* : Int */;
7880 val
* var16
/* : String */;
7881 val
* var17
/* : Array[Object] */;
7882 long var18
/* : Int */;
7883 val
* var19
/* : NativeArray[Object] */;
7884 val
* var20
/* : String */;
7885 static val
* varonce21
;
7886 val
* var22
/* : String */;
7887 char* var23
/* : NativeString */;
7888 long var24
/* : Int */;
7889 val
* var25
/* : String */;
7890 static val
* varonce26
;
7891 val
* var27
/* : String */;
7892 char* var28
/* : NativeString */;
7893 long var29
/* : Int */;
7894 val
* var30
/* : String */;
7895 val
* var31
/* : String */;
7896 static val
* varonce32
;
7897 val
* var33
/* : String */;
7898 char* var34
/* : NativeString */;
7899 long var35
/* : Int */;
7900 val
* var36
/* : String */;
7901 val
* var37
/* : Array[Object] */;
7902 long var38
/* : Int */;
7903 val
* var39
/* : NativeArray[Object] */;
7904 val
* var40
/* : String */;
7905 static val
* varonce41
;
7906 val
* var42
/* : String */;
7907 char* var43
/* : NativeString */;
7908 long var44
/* : Int */;
7909 val
* var45
/* : String */;
7910 static val
* varonce46
;
7911 val
* var47
/* : String */;
7912 char* var48
/* : NativeString */;
7913 long var49
/* : Int */;
7914 val
* var50
/* : String */;
7915 val
* var51
/* : Array[Object] */;
7916 long var52
/* : Int */;
7917 val
* var53
/* : NativeArray[Object] */;
7918 val
* var54
/* : String */;
7919 val
* var55
/* : nullable Object */;
7920 val
* var_last
/* var last: MClassType */;
7921 val
* var56
/* : Iterator[nullable Object] */;
7922 short int var57
/* : Bool */;
7923 val
* var58
/* : nullable Object */;
7924 val
* var_t
/* var t: MClassType */;
7925 short int var59
/* : Bool */;
7926 val
* var60
/* : AbstractCompiler */;
7927 short int var61
/* : Bool */;
7928 short int var62
/* : Bool */;
7929 short int var_
/* var : Bool */;
7930 short int var63
/* : Bool */;
7931 static val
* varonce64
;
7932 val
* var65
/* : String */;
7933 char* var66
/* : NativeString */;
7934 long var67
/* : Int */;
7935 val
* var68
/* : String */;
7936 val
* var69
/* : AbstractCompiler */;
7937 val
* var70
/* : String */;
7938 static val
* varonce71
;
7939 val
* var72
/* : String */;
7940 char* var73
/* : NativeString */;
7941 long var74
/* : Int */;
7942 val
* var75
/* : String */;
7943 val
* var76
/* : Array[Object] */;
7944 long var77
/* : Int */;
7945 val
* var78
/* : NativeArray[Object] */;
7946 val
* var79
/* : String */;
7947 static val
* varonce80
;
7948 val
* var81
/* : String */;
7949 char* var82
/* : NativeString */;
7950 long var83
/* : Int */;
7951 val
* var84
/* : String */;
7952 val
* var85
/* : AbstractCompiler */;
7953 val
* var86
/* : String */;
7954 static val
* varonce87
;
7955 val
* var88
/* : String */;
7956 char* var89
/* : NativeString */;
7957 long var90
/* : Int */;
7958 val
* var91
/* : String */;
7959 val
* var92
/* : Array[Object] */;
7960 long var93
/* : Int */;
7961 val
* var94
/* : NativeArray[Object] */;
7962 val
* var95
/* : String */;
7963 val
* var96
/* : RuntimeVariable */;
7964 val
* var_recv2
/* var recv2: RuntimeVariable */;
7965 val
* var97
/* : MPropDef */;
7966 val
* var98
/* : nullable MType */;
7967 val
* var_ta
/* var ta: MType */;
7968 val
* var99
/* : MType */;
7969 static val
* varonce100
;
7970 val
* var101
/* : String */;
7971 char* var102
/* : NativeString */;
7972 long var103
/* : Int */;
7973 val
* var104
/* : String */;
7974 val
* var105
/* : String */;
7975 static val
* varonce106
;
7976 val
* var107
/* : String */;
7977 char* var108
/* : NativeString */;
7978 long var109
/* : Int */;
7979 val
* var110
/* : String */;
7980 static val
* varonce111
;
7981 val
* var112
/* : String */;
7982 char* var113
/* : NativeString */;
7983 long var114
/* : Int */;
7984 val
* var115
/* : String */;
7985 val
* var116
/* : MPropDef */;
7986 val
* var117
/* : String */;
7987 static val
* varonce118
;
7988 val
* var119
/* : String */;
7989 char* var120
/* : NativeString */;
7990 long var121
/* : Int */;
7991 val
* var122
/* : String */;
7992 val
* var123
/* : RuntimeVariable */;
7993 static val
* varonce124
;
7994 val
* var125
/* : String */;
7995 char* var126
/* : NativeString */;
7996 long var127
/* : Int */;
7997 val
* var128
/* : String */;
7998 val
* var129
/* : Array[Object] */;
7999 long var130
/* : Int */;
8000 val
* var131
/* : NativeArray[Object] */;
8001 val
* var132
/* : String */;
8002 static val
* varonce133
;
8003 val
* var134
/* : String */;
8004 char* var135
/* : NativeString */;
8005 long var136
/* : Int */;
8006 val
* var137
/* : String */;
8007 val
* var138
/* : AbstractCompiler */;
8008 short int var139
/* : Bool */;
8009 static val
* varonce140
;
8010 val
* var141
/* : String */;
8011 char* var142
/* : NativeString */;
8012 long var143
/* : Int */;
8013 val
* var144
/* : String */;
8014 static val
* varonce145
;
8015 val
* var146
/* : String */;
8016 char* var147
/* : NativeString */;
8017 long var148
/* : Int */;
8018 val
* var149
/* : String */;
8022 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__check_recv_notnull
]))(self
, var_recv
) /* check_recv_notnull on <self:GlobalCompilerVisitor>*/;
8023 var
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_recv
) /* collect_types on <self:GlobalCompilerVisitor>*/;
8025 var1
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
8030 var3
= "/*BUG: no live types for ";
8032 var5
= string__NativeString__to_s_with_length(var3
, var4
);
8036 var6
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
8042 var11
= string__NativeString__to_s_with_length(var9
, var10
);
8051 var16
= string__NativeString__to_s_with_length(var14
, var15
);
8055 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
8056 { /* var17 = array_instance Array[Object] */
8058 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
8059 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var2
;
8060 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var6
;
8061 ((struct instance_array__NativeArray
*)var19
)->values
[2] = (val
*) var8
;
8062 ((struct instance_array__NativeArray
*)var19
)->values
[3] = (val
*) var_a
;
8063 ((struct instance_array__NativeArray
*)var19
)->values
[4] = (val
*) var13
;
8064 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
8065 CHECK_NEW_array__Array(var17
);
8067 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
8068 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var20
) /* add on <self:GlobalCompilerVisitor>*/;
8069 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
8076 var23
= "/* write ";
8078 var25
= string__NativeString__to_s_with_length(var23
, var24
);
8087 var30
= string__NativeString__to_s_with_length(var28
, var29
);
8091 var31
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
8097 var36
= string__NativeString__to_s_with_length(var34
, var35
);
8101 var37
= NEW_array__Array(&type_array__Arraykernel__Object
);
8102 { /* var37 = array_instance Array[Object] */
8104 var39
= NEW_array__NativeArray(var38
, &type_array__NativeArraykernel__Object
);
8105 ((struct instance_array__NativeArray
*)var39
)->values
[0] = (val
*) var22
;
8106 ((struct instance_array__NativeArray
*)var39
)->values
[1] = (val
*) var_a
;
8107 ((struct instance_array__NativeArray
*)var39
)->values
[2] = (val
*) var27
;
8108 ((struct instance_array__NativeArray
*)var39
)->values
[3] = (val
*) var31
;
8109 ((struct instance_array__NativeArray
*)var39
)->values
[4] = (val
*) var33
;
8110 ((void (*)(val
*, val
*, long))(var37
->class->vft
[COLOR_array__Array__with_native
]))(var37
, var39
, var38
) /* with_native on <var37:Array[Object]>*/;
8111 CHECK_NEW_array__Array(var37
);
8113 var40
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_string__Object__to_s
]))(var37
) /* to_s on <var37:Array[Object]>*/;
8114 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var40
) /* add on <self:GlobalCompilerVisitor>*/;
8120 var45
= string__NativeString__to_s_with_length(var43
, var44
);
8127 var48
= "->classid) {";
8129 var50
= string__NativeString__to_s_with_length(var48
, var49
);
8133 var51
= NEW_array__Array(&type_array__Arraykernel__Object
);
8134 { /* var51 = array_instance Array[Object] */
8136 var53
= NEW_array__NativeArray(var52
, &type_array__NativeArraykernel__Object
);
8137 ((struct instance_array__NativeArray
*)var53
)->values
[0] = (val
*) var42
;
8138 ((struct instance_array__NativeArray
*)var53
)->values
[1] = (val
*) var_recv
;
8139 ((struct instance_array__NativeArray
*)var53
)->values
[2] = (val
*) var47
;
8140 ((void (*)(val
*, val
*, long))(var51
->class->vft
[COLOR_array__Array__with_native
]))(var51
, var53
, var52
) /* with_native on <var51:Array[Object]>*/;
8141 CHECK_NEW_array__Array(var51
);
8143 var54
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_string__Object__to_s
]))(var51
) /* to_s on <var51:Array[Object]>*/;
8144 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var54
) /* add on <self:GlobalCompilerVisitor>*/;
8145 var55
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
8147 var56
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
8149 var57
= ((short int (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var56
) /* is_ok on <var56:Iterator[nullable Object]>*/;
8151 var58
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var56
) /* item on <var56:Iterator[nullable Object]>*/;
8153 var60
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8154 var61
= ((short int (*)(val
*))(var60
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var60
) /* hardening on <var60:AbstractCompiler(GlobalCompiler)>*/;
8158 var63
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
8167 var66
= "default: /*";
8169 var68
= string__NativeString__to_s_with_length(var66
, var67
);
8173 var69
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8174 var70
= ((val
* (*)(val
*, val
*))(var69
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var69
, var_t
) /* classid on <var69:AbstractCompiler(GlobalCompiler)>*/;
8180 var75
= string__NativeString__to_s_with_length(var73
, var74
);
8184 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
8185 { /* var76 = array_instance Array[Object] */
8187 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
8188 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var65
;
8189 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var70
;
8190 ((struct instance_array__NativeArray
*)var78
)->values
[2] = (val
*) var72
;
8191 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
8192 CHECK_NEW_array__Array(var76
);
8194 var79
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
8195 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var79
) /* add on <self:GlobalCompilerVisitor>*/;
8202 var84
= string__NativeString__to_s_with_length(var82
, var83
);
8206 var85
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8207 var86
= ((val
* (*)(val
*, val
*))(var85
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var85
, var_t
) /* classid on <var85:AbstractCompiler(GlobalCompiler)>*/;
8213 var91
= string__NativeString__to_s_with_length(var89
, var90
);
8217 var92
= NEW_array__Array(&type_array__Arraykernel__Object
);
8218 { /* var92 = array_instance Array[Object] */
8220 var94
= NEW_array__NativeArray(var93
, &type_array__NativeArraykernel__Object
);
8221 ((struct instance_array__NativeArray
*)var94
)->values
[0] = (val
*) var81
;
8222 ((struct instance_array__NativeArray
*)var94
)->values
[1] = (val
*) var86
;
8223 ((struct instance_array__NativeArray
*)var94
)->values
[2] = (val
*) var88
;
8224 ((void (*)(val
*, val
*, long))(var92
->class->vft
[COLOR_array__Array__with_native
]))(var92
, var94
, var93
) /* with_native on <var92:Array[Object]>*/;
8225 CHECK_NEW_array__Array(var92
);
8227 var95
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_string__Object__to_s
]))(var92
) /* to_s on <var92:Array[Object]>*/;
8228 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var95
) /* add on <self:GlobalCompilerVisitor>*/;
8230 var96
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var_recv
, var_t
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
8232 var97
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
8233 var98
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var97
) /* static_mtype on <var97:MPropDef(MAttributeDef)>*/;
8234 if (var98
== NULL
) {
8235 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 690);
8239 var99
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ta
, var_recv2
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
8242 var101
= varonce100
;
8244 var102
= "((struct ";
8246 var104
= string__NativeString__to_s_with_length(var102
, var103
);
8248 varonce100
= var101
;
8250 var105
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_t
) /* c_name on <var_t:MClassType>*/;
8252 var107
= varonce106
;
8256 var110
= string__NativeString__to_s_with_length(var108
, var109
);
8258 varonce106
= var107
;
8261 var112
= varonce111
;
8265 var115
= string__NativeString__to_s_with_length(var113
, var114
);
8267 varonce111
= var112
;
8269 var116
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
8270 var117
= ((val
* (*)(val
*))(var116
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var116
) /* c_name on <var116:MPropDef(MAttributeDef)>*/;
8272 var119
= varonce118
;
8276 var122
= string__NativeString__to_s_with_length(var120
, var121
);
8278 varonce118
= var119
;
8280 var123
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var_value
, var_ta
) /* autobox on <self:GlobalCompilerVisitor>*/;
8282 var125
= varonce124
;
8286 var128
= string__NativeString__to_s_with_length(var126
, var127
);
8288 varonce124
= var125
;
8290 var129
= NEW_array__Array(&type_array__Arraykernel__Object
);
8291 { /* var129 = array_instance Array[Object] */
8293 var131
= NEW_array__NativeArray(var130
, &type_array__NativeArraykernel__Object
);
8294 ((struct instance_array__NativeArray
*)var131
)->values
[0] = (val
*) var101
;
8295 ((struct instance_array__NativeArray
*)var131
)->values
[1] = (val
*) var105
;
8296 ((struct instance_array__NativeArray
*)var131
)->values
[2] = (val
*) var107
;
8297 ((struct instance_array__NativeArray
*)var131
)->values
[3] = (val
*) var_recv
;
8298 ((struct instance_array__NativeArray
*)var131
)->values
[4] = (val
*) var112
;
8299 ((struct instance_array__NativeArray
*)var131
)->values
[5] = (val
*) var117
;
8300 ((struct instance_array__NativeArray
*)var131
)->values
[6] = (val
*) var119
;
8301 ((struct instance_array__NativeArray
*)var131
)->values
[7] = (val
*) var123
;
8302 ((struct instance_array__NativeArray
*)var131
)->values
[8] = (val
*) var125
;
8303 ((void (*)(val
*, val
*, long))(var129
->class->vft
[COLOR_array__Array__with_native
]))(var129
, var131
, var130
) /* with_native on <var129:Array[Object]>*/;
8304 CHECK_NEW_array__Array(var129
);
8306 var132
= ((val
* (*)(val
*))(var129
->class->vft
[COLOR_string__Object__to_s
]))(var129
) /* to_s on <var129:Array[Object]>*/;
8307 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var132
) /* add on <self:GlobalCompilerVisitor>*/;
8309 var134
= varonce133
;
8313 var137
= string__NativeString__to_s_with_length(var135
, var136
);
8315 varonce133
= var134
;
8317 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var134
) /* add on <self:GlobalCompilerVisitor>*/;
8318 CONTINUE_label
: (void)0;
8319 ((void (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var56
) /* next on <var56:Iterator[nullable Object]>*/;
8321 BREAK_label
: (void)0;
8322 var138
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8323 var139
= ((short int (*)(val
*))(var138
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var138
) /* hardening on <var138:AbstractCompiler(GlobalCompiler)>*/;
8326 var141
= varonce140
;
8328 var142
= "default: /* Bug*/";
8330 var144
= string__NativeString__to_s_with_length(var142
, var143
);
8332 varonce140
= var141
;
8334 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var141
) /* add on <self:GlobalCompilerVisitor>*/;
8335 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
8339 var146
= varonce145
;
8343 var149
= string__NativeString__to_s_with_length(var147
, var148
);
8345 varonce145
= var146
;
8347 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var146
) /* add on <self:GlobalCompilerVisitor>*/;
8350 /* method global_compiler#GlobalCompilerVisitor#write_attribute for (self: Object, MAttribute, RuntimeVariable, RuntimeVariable) */
8351 void VIRTUAL_global_compiler__GlobalCompilerVisitor__write_attribute(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8352 global_compiler__GlobalCompilerVisitor__write_attribute(self
, p0
, p1
, p2
);
8355 /* method global_compiler#GlobalCompilerVisitor#init_instance for (self: GlobalCompilerVisitor, MClassType): RuntimeVariable */
8356 val
* global_compiler__GlobalCompilerVisitor__init_instance(val
* self
, val
* p0
) {
8357 val
* var
/* : RuntimeVariable */;
8358 val
* var_mtype
/* var mtype: MClassType */;
8359 val
* var1
/* : MType */;
8360 short int var2
/* : Bool */;
8363 val
* var3
/* : AbstractCompiler */;
8364 val
* var4
/* : RapidTypeAnalysis */;
8365 val
* var5
/* : HashSet[MClassType] */;
8366 short int var6
/* : Bool */;
8367 short int var7
/* : Bool */;
8368 static val
* varonce
;
8369 val
* var8
/* : String */;
8370 char* var9
/* : NativeString */;
8371 long var10
/* : Int */;
8372 val
* var11
/* : String */;
8373 static val
* varonce12
;
8374 val
* var13
/* : String */;
8375 char* var14
/* : NativeString */;
8376 long var15
/* : Int */;
8377 val
* var16
/* : String */;
8378 val
* var17
/* : Array[Object] */;
8379 long var18
/* : Int */;
8380 val
* var19
/* : NativeArray[Object] */;
8381 val
* var20
/* : String */;
8382 static val
* varonce21
;
8383 val
* var22
/* : String */;
8384 char* var23
/* : NativeString */;
8385 long var24
/* : Int */;
8386 val
* var25
/* : String */;
8387 val
* var26
/* : String */;
8388 static val
* varonce27
;
8389 val
* var28
/* : String */;
8390 char* var29
/* : NativeString */;
8391 long var30
/* : Int */;
8392 val
* var31
/* : String */;
8393 val
* var32
/* : Array[Object] */;
8394 long var33
/* : Int */;
8395 val
* var34
/* : NativeArray[Object] */;
8396 val
* var35
/* : String */;
8397 val
* var36
/* : RuntimeVariable */;
8398 val
* var_res
/* var res: RuntimeVariable */;
8399 short int var37
/* : Bool */;
8401 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__anchor
]))(self
, var_mtype
) /* anchor on <self:GlobalCompilerVisitor>*/;
8402 /* <var1:MType> isa MClassType */
8403 cltype
= type_model__MClassType
.color
;
8404 idtype
= type_model__MClassType
.id
;
8405 if(cltype
>= var1
->type
->table_size
) {
8408 var2
= var1
->type
->type_table
[cltype
] == idtype
;
8411 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 704);
8415 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8416 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var3
) /* runtime_type_analysis on <var3:AbstractCompiler(GlobalCompiler)>*/;
8417 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var4
) /* live_types on <var4:RapidTypeAnalysis>*/;
8418 var6
= ((short int (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var5
, var_mtype
) /* has on <var5:HashSet[MClassType]>*/;
8426 var11
= string__NativeString__to_s_with_length(var9
, var10
);
8433 var14
= " was detected dead";
8435 var16
= string__NativeString__to_s_with_length(var14
, var15
);
8439 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
8440 { /* var17 = array_instance Array[Object] */
8442 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
8443 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var8
;
8444 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var_mtype
;
8445 ((struct instance_array__NativeArray
*)var19
)->values
[2] = (val
*) var13
;
8446 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
8447 CHECK_NEW_array__Array(var17
);
8449 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
8450 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__debug
]))(self
, var20
) /* debug on <self:GlobalCompilerVisitor>*/;
8458 var25
= string__NativeString__to_s_with_length(var23
, var24
);
8462 var26
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
8468 var31
= string__NativeString__to_s_with_length(var29
, var30
);
8472 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
8473 { /* var32 = array_instance Array[Object] */
8475 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
8476 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var22
;
8477 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var26
;
8478 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var28
;
8479 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
8480 CHECK_NEW_array__Array(var32
);
8482 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
8483 var36
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var35
, var_mtype
) /* new_expr on <self:GlobalCompilerVisitor>*/;
8486 ((void (*)(val
*, short int))(var_res
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res
, var37
) /* is_exact= on <var_res:RuntimeVariable>*/;
8492 /* method global_compiler#GlobalCompilerVisitor#init_instance for (self: Object, MClassType): RuntimeVariable */
8493 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__init_instance(val
* self
, val
* p0
) {
8494 val
* var
/* : RuntimeVariable */;
8495 val
* var1
/* : RuntimeVariable */;
8496 var1
= global_compiler__GlobalCompilerVisitor__init_instance(self
, p0
);
8501 /* method global_compiler#GlobalCompilerVisitor#type_test for (self: GlobalCompilerVisitor, RuntimeVariable, MType, String): RuntimeVariable */
8502 val
* global_compiler__GlobalCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8503 val
* var
/* : RuntimeVariable */;
8504 val
* var_value
/* var value: RuntimeVariable */;
8505 val
* var_mtype
/* var mtype: MType */;
8506 val
* var_tag
/* var tag: String */;
8507 val
* var1
/* : MType */;
8508 val
* var_mclasstype
/* var mclasstype: MType */;
8509 short int var2
/* : Bool */;
8512 val
* var3
/* : MType */;
8513 short int var4
/* : Bool */;
8516 val
* var7
/* : AbstractCompiler */;
8517 val
* var8
/* : RapidTypeAnalysis */;
8518 val
* var9
/* : HashSet[MClassType] */;
8519 short int var10
/* : Bool */;
8520 short int var11
/* : Bool */;
8521 static val
* varonce
;
8522 val
* var12
/* : String */;
8523 char* var13
/* : NativeString */;
8524 long var14
/* : Int */;
8525 val
* var15
/* : String */;
8526 static val
* varonce16
;
8527 val
* var17
/* : String */;
8528 char* var18
/* : NativeString */;
8529 long var19
/* : Int */;
8530 val
* var20
/* : String */;
8531 val
* var21
/* : Array[Object] */;
8532 long var22
/* : Int */;
8533 val
* var23
/* : NativeArray[Object] */;
8534 val
* var24
/* : String */;
8535 val
* var25
/* : Array[MClassType] */;
8536 val
* var_types
/* var types: Array[MClassType] */;
8537 val
* var26
/* : MClassType */;
8538 val
* var27
/* : RuntimeVariable */;
8539 val
* var_res
/* var res: RuntimeVariable */;
8540 static val
* varonce28
;
8541 val
* var29
/* : String */;
8542 char* var30
/* : NativeString */;
8543 long var31
/* : Int */;
8544 val
* var32
/* : String */;
8545 static val
* varonce33
;
8546 val
* var34
/* : String */;
8547 char* var35
/* : NativeString */;
8548 long var36
/* : Int */;
8549 val
* var37
/* : String */;
8550 val
* var38
/* : String */;
8551 static val
* varonce39
;
8552 val
* var40
/* : String */;
8553 char* var41
/* : NativeString */;
8554 long var42
/* : Int */;
8555 val
* var43
/* : String */;
8556 val
* var44
/* : Array[Object] */;
8557 long var45
/* : Int */;
8558 val
* var46
/* : NativeArray[Object] */;
8559 val
* var47
/* : String */;
8560 val
* var48
/* : MType */;
8561 val
* var49
/* : String */;
8562 static val
* varonce50
;
8563 val
* var51
/* : String */;
8564 char* var52
/* : NativeString */;
8565 long var53
/* : Int */;
8566 val
* var54
/* : String */;
8567 short int var55
/* : Bool */;
8568 val
* var56
/* : MType */;
8569 val
* var57
/* : AbstractCompiler */;
8570 val
* var58
/* : MModule */;
8571 val
* var59
/* : null */;
8572 short int var60
/* : Bool */;
8573 static val
* varonce61
;
8574 val
* var62
/* : String */;
8575 char* var63
/* : NativeString */;
8576 long var64
/* : Int */;
8577 val
* var65
/* : String */;
8578 val
* var66
/* : Array[Object] */;
8579 long var67
/* : Int */;
8580 val
* var68
/* : NativeArray[Object] */;
8581 val
* var69
/* : String */;
8582 static val
* varonce70
;
8583 val
* var71
/* : String */;
8584 char* var72
/* : NativeString */;
8585 long var73
/* : Int */;
8586 val
* var74
/* : String */;
8587 val
* var75
/* : Array[Object] */;
8588 long var76
/* : Int */;
8589 val
* var77
/* : NativeArray[Object] */;
8590 val
* var78
/* : String */;
8591 short int var79
/* : Bool */;
8592 val
* var80
/* : MType */;
8593 short int var81
/* : Bool */;
8596 short int var_
/* var : Bool */;
8597 val
* var84
/* : MType */;
8598 short int var85
/* : Bool */;
8601 static val
* varonce88
;
8602 val
* var89
/* : String */;
8603 char* var90
/* : NativeString */;
8604 long var91
/* : Int */;
8605 val
* var92
/* : String */;
8606 static val
* varonce93
;
8607 val
* var94
/* : String */;
8608 char* var95
/* : NativeString */;
8609 long var96
/* : Int */;
8610 val
* var97
/* : String */;
8611 val
* var98
/* : Array[Object] */;
8612 long var99
/* : Int */;
8613 val
* var100
/* : NativeArray[Object] */;
8614 val
* var101
/* : String */;
8615 short int var102
/* : Bool */;
8618 static val
* varonce105
;
8619 val
* var106
/* : String */;
8620 char* var107
/* : NativeString */;
8621 long var108
/* : Int */;
8622 val
* var109
/* : String */;
8623 static val
* varonce110
;
8624 val
* var111
/* : String */;
8625 char* var112
/* : NativeString */;
8626 long var113
/* : Int */;
8627 val
* var114
/* : String */;
8628 val
* var115
/* : Array[Object] */;
8629 long var116
/* : Int */;
8630 val
* var117
/* : NativeArray[Object] */;
8631 val
* var118
/* : String */;
8632 static val
* varonce119
;
8633 val
* var120
/* : String */;
8634 char* var121
/* : NativeString */;
8635 long var122
/* : Int */;
8636 val
* var123
/* : String */;
8637 static val
* varonce124
;
8638 val
* var125
/* : String */;
8639 char* var126
/* : NativeString */;
8640 long var127
/* : Int */;
8641 val
* var128
/* : String */;
8642 val
* var129
/* : Array[Object] */;
8643 long var130
/* : Int */;
8644 val
* var131
/* : NativeArray[Object] */;
8645 val
* var132
/* : String */;
8646 static val
* varonce133
;
8647 val
* var134
/* : String */;
8648 char* var135
/* : NativeString */;
8649 long var136
/* : Int */;
8650 val
* var137
/* : String */;
8651 static val
* varonce138
;
8652 val
* var139
/* : String */;
8653 char* var140
/* : NativeString */;
8654 long var141
/* : Int */;
8655 val
* var142
/* : String */;
8656 static val
* varonce143
;
8657 val
* var144
/* : String */;
8658 char* var145
/* : NativeString */;
8659 long var146
/* : Int */;
8660 val
* var147
/* : String */;
8661 val
* var148
/* : Array[Object] */;
8662 long var149
/* : Int */;
8663 val
* var150
/* : NativeArray[Object] */;
8664 val
* var151
/* : String */;
8665 val
* var152
/* : Iterator[nullable Object] */;
8666 short int var153
/* : Bool */;
8667 val
* var154
/* : nullable Object */;
8668 val
* var_t
/* var t: MClassType */;
8669 val
* var155
/* : AbstractCompiler */;
8670 val
* var156
/* : MModule */;
8671 val
* var157
/* : null */;
8672 short int var158
/* : Bool */;
8673 static val
* varonce159
;
8674 val
* var160
/* : String */;
8675 char* var161
/* : NativeString */;
8676 long var162
/* : Int */;
8677 val
* var163
/* : String */;
8678 val
* var164
/* : AbstractCompiler */;
8679 val
* var165
/* : String */;
8680 static val
* varonce166
;
8681 val
* var167
/* : String */;
8682 char* var168
/* : NativeString */;
8683 long var169
/* : Int */;
8684 val
* var170
/* : String */;
8685 static val
* varonce171
;
8686 val
* var172
/* : String */;
8687 char* var173
/* : NativeString */;
8688 long var174
/* : Int */;
8689 val
* var175
/* : String */;
8690 val
* var176
/* : Array[Object] */;
8691 long var177
/* : Int */;
8692 val
* var178
/* : NativeArray[Object] */;
8693 val
* var179
/* : String */;
8694 static val
* varonce180
;
8695 val
* var181
/* : String */;
8696 char* var182
/* : NativeString */;
8697 long var183
/* : Int */;
8698 val
* var184
/* : String */;
8699 val
* var185
/* : Array[Object] */;
8700 long var186
/* : Int */;
8701 val
* var187
/* : NativeArray[Object] */;
8702 val
* var188
/* : String */;
8703 static val
* varonce189
;
8704 val
* var190
/* : String */;
8705 char* var191
/* : NativeString */;
8706 long var192
/* : Int */;
8707 val
* var193
/* : String */;
8708 static val
* varonce194
;
8709 val
* var195
/* : String */;
8710 char* var196
/* : NativeString */;
8711 long var197
/* : Int */;
8712 val
* var198
/* : String */;
8713 static val
* varonce199
;
8714 val
* var200
/* : String */;
8715 char* var201
/* : NativeString */;
8716 long var202
/* : Int */;
8717 val
* var203
/* : String */;
8718 val
* var204
/* : Array[Object] */;
8719 long var205
/* : Int */;
8720 val
* var206
/* : NativeArray[Object] */;
8721 val
* var207
/* : String */;
8722 static val
* varonce208
;
8723 val
* var209
/* : String */;
8724 char* var210
/* : NativeString */;
8725 long var211
/* : Int */;
8726 val
* var212
/* : String */;
8730 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__anchor
]))(self
, var_mtype
) /* anchor on <self:GlobalCompilerVisitor>*/;
8732 var_mclasstype
= var_mtype
;
8733 /* <var_mtype:MType> isa MNullableType */
8734 cltype
= type_model__MNullableType
.color
;
8735 idtype
= type_model__MNullableType
.id
;
8736 if(cltype
>= var_mtype
->type
->table_size
) {
8739 var2
= var_mtype
->type
->type_table
[cltype
] == idtype
;
8742 var3
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
8743 var_mclasstype
= var3
;
8746 /* <var_mclasstype:MType> isa MClassType */
8747 cltype5
= type_model__MClassType
.color
;
8748 idtype6
= type_model__MClassType
.id
;
8749 if(cltype5
>= var_mclasstype
->type
->table_size
) {
8752 var4
= var_mclasstype
->type
->type_table
[cltype5
] == idtype6
;
8755 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/global_compiler.nit", 718);
8758 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8759 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var7
) /* runtime_type_analysis on <var7:AbstractCompiler(GlobalCompiler)>*/;
8760 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_cast_types
]))(var8
) /* live_cast_types on <var8:RapidTypeAnalysis>*/;
8761 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var9
, var_mclasstype
) /* has on <var9:HashSet[MClassType]>*/;
8767 var13
= "problem: ";
8769 var15
= string__NativeString__to_s_with_length(var13
, var14
);
8776 var18
= " was detected cast-dead";
8778 var20
= string__NativeString__to_s_with_length(var18
, var19
);
8782 var21
= NEW_array__Array(&type_array__Arraykernel__Object
);
8783 { /* var21 = array_instance Array[Object] */
8785 var23
= NEW_array__NativeArray(var22
, &type_array__NativeArraykernel__Object
);
8786 ((struct instance_array__NativeArray
*)var23
)->values
[0] = (val
*) var12
;
8787 ((struct instance_array__NativeArray
*)var23
)->values
[1] = (val
*) var_mtype
;
8788 ((struct instance_array__NativeArray
*)var23
)->values
[2] = (val
*) var17
;
8789 ((void (*)(val
*, val
*, long))(var21
->class->vft
[COLOR_array__Array__with_native
]))(var21
, var23
, var22
) /* with_native on <var21:Array[Object]>*/;
8790 CHECK_NEW_array__Array(var21
);
8792 var24
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_string__Object__to_s
]))(var21
) /* to_s on <var21:Array[Object]>*/;
8793 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__debug
]))(self
, var24
) /* debug on <self:GlobalCompilerVisitor>*/;
8794 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Aborted", "src/global_compiler.nit", 721);
8798 var25
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_value
) /* collect_types on <self:GlobalCompilerVisitor>*/;
8800 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type
]))(self
) /* bool_type on <self:GlobalCompilerVisitor>*/;
8801 var27
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var26
) /* new_var on <self:GlobalCompilerVisitor>*/;
8808 var32
= string__NativeString__to_s_with_length(var30
, var31
);
8817 var37
= string__NativeString__to_s_with_length(var35
, var36
);
8821 var38
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_string__Object__inspect
]))(var_value
) /* inspect on <var_value:RuntimeVariable>*/;
8827 var43
= string__NativeString__to_s_with_length(var41
, var42
);
8831 var44
= NEW_array__Array(&type_array__Arraykernel__Object
);
8832 { /* var44 = array_instance Array[Object] */
8834 var46
= NEW_array__NativeArray(var45
, &type_array__NativeArraykernel__Object
);
8835 ((struct instance_array__NativeArray
*)var46
)->values
[0] = (val
*) var29
;
8836 ((struct instance_array__NativeArray
*)var46
)->values
[1] = (val
*) var_mtype
;
8837 ((struct instance_array__NativeArray
*)var46
)->values
[2] = (val
*) var34
;
8838 ((struct instance_array__NativeArray
*)var46
)->values
[3] = (val
*) var38
;
8839 ((struct instance_array__NativeArray
*)var46
)->values
[4] = (val
*) var40
;
8840 ((void (*)(val
*, val
*, long))(var44
->class->vft
[COLOR_array__Array__with_native
]))(var44
, var46
, var45
) /* with_native on <var44:Array[Object]>*/;
8841 CHECK_NEW_array__Array(var44
);
8843 var47
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_string__Object__to_s
]))(var44
) /* to_s on <var44:Array[Object]>*/;
8844 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var47
) /* add on <self:GlobalCompilerVisitor>*/;
8845 var48
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
8846 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var48
) /* ctype on <var48:MType>*/;
8852 var54
= string__NativeString__to_s_with_length(var52
, var53
);
8856 var55
= ((short int (*)(val
*, val
*))(var49
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var49
, var51
) /* != on <var49:String>*/;
8858 var56
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
8859 var57
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8860 var58
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var57
) /* mainmodule on <var57:AbstractCompiler(GlobalCompiler)>*/;
8862 var60
= ((short int (*)(val
*, val
*, val
*, val
*))(var56
->class->vft
[COLOR_model__MType__is_subtype
]))(var56
, var58
, var59
, var_mtype
) /* is_subtype on <var56:MType>*/;
8869 var65
= string__NativeString__to_s_with_length(var63
, var64
);
8873 var66
= NEW_array__Array(&type_array__Arraykernel__Object
);
8874 { /* var66 = array_instance Array[Object] */
8876 var68
= NEW_array__NativeArray(var67
, &type_array__NativeArraykernel__Object
);
8877 ((struct instance_array__NativeArray
*)var68
)->values
[0] = (val
*) var_res
;
8878 ((struct instance_array__NativeArray
*)var68
)->values
[1] = (val
*) var62
;
8879 ((void (*)(val
*, val
*, long))(var66
->class->vft
[COLOR_array__Array__with_native
]))(var66
, var68
, var67
) /* with_native on <var66:Array[Object]>*/;
8880 CHECK_NEW_array__Array(var66
);
8882 var69
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_string__Object__to_s
]))(var66
) /* to_s on <var66:Array[Object]>*/;
8883 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var69
) /* add on <self:GlobalCompilerVisitor>*/;
8890 var74
= string__NativeString__to_s_with_length(var72
, var73
);
8894 var75
= NEW_array__Array(&type_array__Arraykernel__Object
);
8895 { /* var75 = array_instance Array[Object] */
8897 var77
= NEW_array__NativeArray(var76
, &type_array__NativeArraykernel__Object
);
8898 ((struct instance_array__NativeArray
*)var77
)->values
[0] = (val
*) var_res
;
8899 ((struct instance_array__NativeArray
*)var77
)->values
[1] = (val
*) var71
;
8900 ((void (*)(val
*, val
*, long))(var75
->class->vft
[COLOR_array__Array__with_native
]))(var75
, var77
, var76
) /* with_native on <var75:Array[Object]>*/;
8901 CHECK_NEW_array__Array(var75
);
8903 var78
= ((val
* (*)(val
*))(var75
->class->vft
[COLOR_string__Object__to_s
]))(var75
) /* to_s on <var75:Array[Object]>*/;
8904 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var78
) /* add on <self:GlobalCompilerVisitor>*/;
8910 var80
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value
) /* mcasttype on <var_value:RuntimeVariable>*/;
8911 /* <var80:MType> isa MNullableType */
8912 cltype82
= type_model__MNullableType
.color
;
8913 idtype83
= type_model__MNullableType
.id
;
8914 if(cltype82
>= var80
->type
->table_size
) {
8917 var81
= var80
->type
->type_table
[cltype82
] == idtype83
;
8923 var84
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value
) /* mcasttype on <var_value:RuntimeVariable>*/;
8924 /* <var84:MType> isa MNullType */
8925 cltype86
= type_model__MNullType
.color
;
8926 idtype87
= type_model__MNullType
.id
;
8927 if(cltype86
>= var84
->type
->table_size
) {
8930 var85
= var84
->type
->type_table
[cltype86
] == idtype87
;
8940 var92
= string__NativeString__to_s_with_length(var90
, var91
);
8947 var95
= " == NULL) {";
8949 var97
= string__NativeString__to_s_with_length(var95
, var96
);
8953 var98
= NEW_array__Array(&type_array__Arraykernel__Object
);
8954 { /* var98 = array_instance Array[Object] */
8956 var100
= NEW_array__NativeArray(var99
, &type_array__NativeArraykernel__Object
);
8957 ((struct instance_array__NativeArray
*)var100
)->values
[0] = (val
*) var89
;
8958 ((struct instance_array__NativeArray
*)var100
)->values
[1] = (val
*) var_value
;
8959 ((struct instance_array__NativeArray
*)var100
)->values
[2] = (val
*) var94
;
8960 ((void (*)(val
*, val
*, long))(var98
->class->vft
[COLOR_array__Array__with_native
]))(var98
, var100
, var99
) /* with_native on <var98:Array[Object]>*/;
8961 CHECK_NEW_array__Array(var98
);
8963 var101
= ((val
* (*)(val
*))(var98
->class->vft
[COLOR_string__Object__to_s
]))(var98
) /* to_s on <var98:Array[Object]>*/;
8964 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var101
) /* add on <self:GlobalCompilerVisitor>*/;
8965 /* <var_mtype:MType> isa MNullableType */
8966 cltype103
= type_model__MNullableType
.color
;
8967 idtype104
= type_model__MNullableType
.id
;
8968 if(cltype103
>= var_mtype
->type
->table_size
) {
8971 var102
= var_mtype
->type
->type_table
[cltype103
] == idtype104
;
8975 var106
= varonce105
;
8977 var107
= " = 1; /* isa ";
8979 var109
= string__NativeString__to_s_with_length(var107
, var108
);
8981 varonce105
= var106
;
8984 var111
= varonce110
;
8988 var114
= string__NativeString__to_s_with_length(var112
, var113
);
8990 varonce110
= var111
;
8992 var115
= NEW_array__Array(&type_array__Arraykernel__Object
);
8993 { /* var115 = array_instance Array[Object] */
8995 var117
= NEW_array__NativeArray(var116
, &type_array__NativeArraykernel__Object
);
8996 ((struct instance_array__NativeArray
*)var117
)->values
[0] = (val
*) var_res
;
8997 ((struct instance_array__NativeArray
*)var117
)->values
[1] = (val
*) var106
;
8998 ((struct instance_array__NativeArray
*)var117
)->values
[2] = (val
*) var_mtype
;
8999 ((struct instance_array__NativeArray
*)var117
)->values
[3] = (val
*) var111
;
9000 ((void (*)(val
*, val
*, long))(var115
->class->vft
[COLOR_array__Array__with_native
]))(var115
, var117
, var116
) /* with_native on <var115:Array[Object]>*/;
9001 CHECK_NEW_array__Array(var115
);
9003 var118
= ((val
* (*)(val
*))(var115
->class->vft
[COLOR_string__Object__to_s
]))(var115
) /* to_s on <var115:Array[Object]>*/;
9004 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var118
) /* add on <self:GlobalCompilerVisitor>*/;
9007 var120
= varonce119
;
9009 var121
= " = 0; /* not isa ";
9011 var123
= string__NativeString__to_s_with_length(var121
, var122
);
9013 varonce119
= var120
;
9016 var125
= varonce124
;
9020 var128
= string__NativeString__to_s_with_length(var126
, var127
);
9022 varonce124
= var125
;
9024 var129
= NEW_array__Array(&type_array__Arraykernel__Object
);
9025 { /* var129 = array_instance Array[Object] */
9027 var131
= NEW_array__NativeArray(var130
, &type_array__NativeArraykernel__Object
);
9028 ((struct instance_array__NativeArray
*)var131
)->values
[0] = (val
*) var_res
;
9029 ((struct instance_array__NativeArray
*)var131
)->values
[1] = (val
*) var120
;
9030 ((struct instance_array__NativeArray
*)var131
)->values
[2] = (val
*) var_mtype
;
9031 ((struct instance_array__NativeArray
*)var131
)->values
[3] = (val
*) var125
;
9032 ((void (*)(val
*, val
*, long))(var129
->class->vft
[COLOR_array__Array__with_native
]))(var129
, var131
, var130
) /* with_native on <var129:Array[Object]>*/;
9033 CHECK_NEW_array__Array(var129
);
9035 var132
= ((val
* (*)(val
*))(var129
->class->vft
[COLOR_string__Object__to_s
]))(var129
) /* to_s on <var129:Array[Object]>*/;
9036 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var132
) /* add on <self:GlobalCompilerVisitor>*/;
9039 var134
= varonce133
;
9043 var137
= string__NativeString__to_s_with_length(var135
, var136
);
9045 varonce133
= var134
;
9047 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var134
) /* add on <self:GlobalCompilerVisitor>*/;
9051 var139
= varonce138
;
9055 var142
= string__NativeString__to_s_with_length(var140
, var141
);
9057 varonce138
= var139
;
9060 var144
= varonce143
;
9062 var145
= "->classid) {";
9064 var147
= string__NativeString__to_s_with_length(var145
, var146
);
9066 varonce143
= var144
;
9068 var148
= NEW_array__Array(&type_array__Arraykernel__Object
);
9069 { /* var148 = array_instance Array[Object] */
9071 var150
= NEW_array__NativeArray(var149
, &type_array__NativeArraykernel__Object
);
9072 ((struct instance_array__NativeArray
*)var150
)->values
[0] = (val
*) var139
;
9073 ((struct instance_array__NativeArray
*)var150
)->values
[1] = (val
*) var_value
;
9074 ((struct instance_array__NativeArray
*)var150
)->values
[2] = (val
*) var144
;
9075 ((void (*)(val
*, val
*, long))(var148
->class->vft
[COLOR_array__Array__with_native
]))(var148
, var150
, var149
) /* with_native on <var148:Array[Object]>*/;
9076 CHECK_NEW_array__Array(var148
);
9078 var151
= ((val
* (*)(val
*))(var148
->class->vft
[COLOR_string__Object__to_s
]))(var148
) /* to_s on <var148:Array[Object]>*/;
9079 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var151
) /* add on <self:GlobalCompilerVisitor>*/;
9080 var152
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
9082 var153
= ((short int (*)(val
*))(var152
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var152
) /* is_ok on <var152:Iterator[nullable Object]>*/;
9084 var154
= ((val
* (*)(val
*))(var152
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var152
) /* item on <var152:Iterator[nullable Object]>*/;
9086 var155
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9087 var156
= ((val
* (*)(val
*))(var155
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var155
) /* mainmodule on <var155:AbstractCompiler(GlobalCompiler)>*/;
9089 var158
= ((short int (*)(val
*, val
*, val
*, val
*))(var_t
->class->vft
[COLOR_model__MType__is_subtype
]))(var_t
, var156
, var157
, var_mtype
) /* is_subtype on <var_t:MClassType>*/;
9092 var160
= varonce159
;
9096 var163
= string__NativeString__to_s_with_length(var161
, var162
);
9098 varonce159
= var160
;
9100 var164
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9101 var165
= ((val
* (*)(val
*, val
*))(var164
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var164
, var_t
) /* classid on <var164:AbstractCompiler(GlobalCompiler)>*/;
9103 var167
= varonce166
;
9107 var170
= string__NativeString__to_s_with_length(var168
, var169
);
9109 varonce166
= var167
;
9112 var172
= varonce171
;
9116 var175
= string__NativeString__to_s_with_length(var173
, var174
);
9118 varonce171
= var172
;
9120 var176
= NEW_array__Array(&type_array__Arraykernel__Object
);
9121 { /* var176 = array_instance Array[Object] */
9123 var178
= NEW_array__NativeArray(var177
, &type_array__NativeArraykernel__Object
);
9124 ((struct instance_array__NativeArray
*)var178
)->values
[0] = (val
*) var160
;
9125 ((struct instance_array__NativeArray
*)var178
)->values
[1] = (val
*) var165
;
9126 ((struct instance_array__NativeArray
*)var178
)->values
[2] = (val
*) var167
;
9127 ((struct instance_array__NativeArray
*)var178
)->values
[3] = (val
*) var_t
;
9128 ((struct instance_array__NativeArray
*)var178
)->values
[4] = (val
*) var172
;
9129 ((void (*)(val
*, val
*, long))(var176
->class->vft
[COLOR_array__Array__with_native
]))(var176
, var178
, var177
) /* with_native on <var176:Array[Object]>*/;
9130 CHECK_NEW_array__Array(var176
);
9132 var179
= ((val
* (*)(val
*))(var176
->class->vft
[COLOR_string__Object__to_s
]))(var176
) /* to_s on <var176:Array[Object]>*/;
9133 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var179
) /* add on <self:GlobalCompilerVisitor>*/;
9136 CONTINUE_label
: (void)0;
9137 ((void (*)(val
*))(var152
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var152
) /* next on <var152:Iterator[nullable Object]>*/;
9139 BREAK_label
: (void)0;
9141 var181
= varonce180
;
9145 var184
= string__NativeString__to_s_with_length(var182
, var183
);
9147 varonce180
= var181
;
9149 var185
= NEW_array__Array(&type_array__Arraykernel__Object
);
9150 { /* var185 = array_instance Array[Object] */
9152 var187
= NEW_array__NativeArray(var186
, &type_array__NativeArraykernel__Object
);
9153 ((struct instance_array__NativeArray
*)var187
)->values
[0] = (val
*) var_res
;
9154 ((struct instance_array__NativeArray
*)var187
)->values
[1] = (val
*) var181
;
9155 ((void (*)(val
*, val
*, long))(var185
->class->vft
[COLOR_array__Array__with_native
]))(var185
, var187
, var186
) /* with_native on <var185:Array[Object]>*/;
9156 CHECK_NEW_array__Array(var185
);
9158 var188
= ((val
* (*)(val
*))(var185
->class->vft
[COLOR_string__Object__to_s
]))(var185
) /* to_s on <var185:Array[Object]>*/;
9159 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var188
) /* add on <self:GlobalCompilerVisitor>*/;
9161 var190
= varonce189
;
9165 var193
= string__NativeString__to_s_with_length(var191
, var192
);
9167 varonce189
= var190
;
9169 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var190
) /* add on <self:GlobalCompilerVisitor>*/;
9171 var195
= varonce194
;
9173 var196
= "default:";
9175 var198
= string__NativeString__to_s_with_length(var196
, var197
);
9177 varonce194
= var195
;
9179 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var195
) /* add on <self:GlobalCompilerVisitor>*/;
9181 var200
= varonce199
;
9185 var203
= string__NativeString__to_s_with_length(var201
, var202
);
9187 varonce199
= var200
;
9189 var204
= NEW_array__Array(&type_array__Arraykernel__Object
);
9190 { /* var204 = array_instance Array[Object] */
9192 var206
= NEW_array__NativeArray(var205
, &type_array__NativeArraykernel__Object
);
9193 ((struct instance_array__NativeArray
*)var206
)->values
[0] = (val
*) var_res
;
9194 ((struct instance_array__NativeArray
*)var206
)->values
[1] = (val
*) var200
;
9195 ((void (*)(val
*, val
*, long))(var204
->class->vft
[COLOR_array__Array__with_native
]))(var204
, var206
, var205
) /* with_native on <var204:Array[Object]>*/;
9196 CHECK_NEW_array__Array(var204
);
9198 var207
= ((val
* (*)(val
*))(var204
->class->vft
[COLOR_string__Object__to_s
]))(var204
) /* to_s on <var204:Array[Object]>*/;
9199 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var207
) /* add on <self:GlobalCompilerVisitor>*/;
9201 var209
= varonce208
;
9205 var212
= string__NativeString__to_s_with_length(var210
, var211
);
9207 varonce208
= var209
;
9209 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var209
) /* add on <self:GlobalCompilerVisitor>*/;
9215 /* method global_compiler#GlobalCompilerVisitor#type_test for (self: Object, RuntimeVariable, MType, String): RuntimeVariable */
9216 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
9217 val
* var
/* : RuntimeVariable */;
9218 val
* var1
/* : RuntimeVariable */;
9219 var1
= global_compiler__GlobalCompilerVisitor__type_test(self
, p0
, p1
, p2
);
9224 /* method global_compiler#GlobalCompilerVisitor#is_same_type_test for (self: GlobalCompilerVisitor, RuntimeVariable, RuntimeVariable): RuntimeVariable */
9225 val
* global_compiler__GlobalCompilerVisitor__is_same_type_test(val
* self
, val
* p0
, val
* p1
) {
9226 val
* var
/* : RuntimeVariable */;
9227 val
* var_value1
/* var value1: RuntimeVariable */;
9228 val
* var_value2
/* var value2: RuntimeVariable */;
9229 val
* var1
/* : MClassType */;
9230 val
* var2
/* : RuntimeVariable */;
9231 val
* var_res
/* var res: RuntimeVariable */;
9232 val
* var3
/* : MType */;
9233 val
* var4
/* : String */;
9234 static val
* varonce
;
9235 val
* var5
/* : String */;
9236 char* var6
/* : NativeString */;
9237 long var7
/* : Int */;
9238 val
* var8
/* : String */;
9239 short int var9
/* : Bool */;
9240 val
* var10
/* : MType */;
9241 val
* var11
/* : String */;
9242 static val
* varonce12
;
9243 val
* var13
/* : String */;
9244 char* var14
/* : NativeString */;
9245 long var15
/* : Int */;
9246 val
* var16
/* : String */;
9247 short int var17
/* : Bool */;
9248 static val
* varonce18
;
9249 val
* var19
/* : String */;
9250 char* var20
/* : NativeString */;
9251 long var21
/* : Int */;
9252 val
* var22
/* : String */;
9253 static val
* varonce23
;
9254 val
* var24
/* : String */;
9255 char* var25
/* : NativeString */;
9256 long var26
/* : Int */;
9257 val
* var27
/* : String */;
9258 static val
* varonce28
;
9259 val
* var29
/* : String */;
9260 char* var30
/* : NativeString */;
9261 long var31
/* : Int */;
9262 val
* var32
/* : String */;
9263 val
* var33
/* : Array[Object] */;
9264 long var34
/* : Int */;
9265 val
* var35
/* : NativeArray[Object] */;
9266 val
* var36
/* : String */;
9267 static val
* varonce37
;
9268 val
* var38
/* : String */;
9269 char* var39
/* : NativeString */;
9270 long var40
/* : Int */;
9271 val
* var41
/* : String */;
9272 val
* var42
/* : AbstractCompiler */;
9273 val
* var43
/* : MType */;
9274 short int var44
/* : Bool */;
9277 val
* var45
/* : String */;
9278 static val
* varonce46
;
9279 val
* var47
/* : String */;
9280 char* var48
/* : NativeString */;
9281 long var49
/* : Int */;
9282 val
* var50
/* : String */;
9283 static val
* varonce51
;
9284 val
* var52
/* : String */;
9285 char* var53
/* : NativeString */;
9286 long var54
/* : Int */;
9287 val
* var55
/* : String */;
9288 val
* var56
/* : Array[Object] */;
9289 long var57
/* : Int */;
9290 val
* var58
/* : NativeArray[Object] */;
9291 val
* var59
/* : String */;
9292 val
* var60
/* : MType */;
9293 val
* var61
/* : String */;
9294 static val
* varonce62
;
9295 val
* var63
/* : String */;
9296 char* var64
/* : NativeString */;
9297 long var65
/* : Int */;
9298 val
* var66
/* : String */;
9299 short int var67
/* : Bool */;
9300 static val
* varonce68
;
9301 val
* var69
/* : String */;
9302 char* var70
/* : NativeString */;
9303 long var71
/* : Int */;
9304 val
* var72
/* : String */;
9305 static val
* varonce73
;
9306 val
* var74
/* : String */;
9307 char* var75
/* : NativeString */;
9308 long var76
/* : Int */;
9309 val
* var77
/* : String */;
9310 val
* var78
/* : AbstractCompiler */;
9311 val
* var79
/* : MType */;
9312 short int var80
/* : Bool */;
9315 val
* var83
/* : String */;
9316 static val
* varonce84
;
9317 val
* var85
/* : String */;
9318 char* var86
/* : NativeString */;
9319 long var87
/* : Int */;
9320 val
* var88
/* : String */;
9321 val
* var89
/* : Array[Object] */;
9322 long var90
/* : Int */;
9323 val
* var91
/* : NativeArray[Object] */;
9324 val
* var92
/* : String */;
9325 val
* var93
/* : MType */;
9326 val
* var94
/* : MType */;
9327 short int var95
/* : Bool */;
9328 static val
* varonce96
;
9329 val
* var97
/* : String */;
9330 char* var98
/* : NativeString */;
9331 long var99
/* : Int */;
9332 val
* var100
/* : String */;
9333 val
* var101
/* : Array[Object] */;
9334 long var102
/* : Int */;
9335 val
* var103
/* : NativeArray[Object] */;
9336 val
* var104
/* : String */;
9337 static val
* varonce105
;
9338 val
* var106
/* : String */;
9339 char* var107
/* : NativeString */;
9340 long var108
/* : Int */;
9341 val
* var109
/* : String */;
9342 val
* var110
/* : Array[Object] */;
9343 long var111
/* : Int */;
9344 val
* var112
/* : NativeArray[Object] */;
9345 val
* var113
/* : String */;
9348 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type
]))(self
) /* bool_type on <self:GlobalCompilerVisitor>*/;
9349 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var1
) /* new_var on <self:GlobalCompilerVisitor>*/;
9351 var3
= ((val
* (*)(val
*))(var_value2
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value2
) /* mtype on <var_value2:RuntimeVariable>*/;
9352 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var3
) /* ctype on <var3:MType>*/;
9358 var8
= string__NativeString__to_s_with_length(var6
, var7
);
9362 var9
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var4
, var5
) /* == on <var4:String>*/;
9364 var10
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value1
) /* mtype on <var_value1:RuntimeVariable>*/;
9365 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var10
) /* ctype on <var10:MType>*/;
9371 var16
= string__NativeString__to_s_with_length(var14
, var15
);
9375 var17
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var11
, var13
) /* == on <var11:String>*/;
9382 var22
= string__NativeString__to_s_with_length(var20
, var21
);
9389 var25
= "->classid == ";
9391 var27
= string__NativeString__to_s_with_length(var25
, var26
);
9398 var30
= "->classid;";
9400 var32
= string__NativeString__to_s_with_length(var30
, var31
);
9404 var33
= NEW_array__Array(&type_array__Arraykernel__Object
);
9405 { /* var33 = array_instance Array[Object] */
9407 var35
= NEW_array__NativeArray(var34
, &type_array__NativeArraykernel__Object
);
9408 ((struct instance_array__NativeArray
*)var35
)->values
[0] = (val
*) var_res
;
9409 ((struct instance_array__NativeArray
*)var35
)->values
[1] = (val
*) var19
;
9410 ((struct instance_array__NativeArray
*)var35
)->values
[2] = (val
*) var_value1
;
9411 ((struct instance_array__NativeArray
*)var35
)->values
[3] = (val
*) var24
;
9412 ((struct instance_array__NativeArray
*)var35
)->values
[4] = (val
*) var_value2
;
9413 ((struct instance_array__NativeArray
*)var35
)->values
[5] = (val
*) var29
;
9414 ((void (*)(val
*, val
*, long))(var33
->class->vft
[COLOR_array__Array__with_native
]))(var33
, var35
, var34
) /* with_native on <var33:Array[Object]>*/;
9415 CHECK_NEW_array__Array(var33
);
9417 var36
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_string__Object__to_s
]))(var33
) /* to_s on <var33:Array[Object]>*/;
9418 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var36
) /* add on <self:GlobalCompilerVisitor>*/;
9425 var41
= string__NativeString__to_s_with_length(var39
, var40
);
9429 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9430 var43
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value1
) /* mtype on <var_value1:RuntimeVariable>*/;
9431 /* <var43:MType> isa MClassType */
9432 cltype
= type_model__MClassType
.color
;
9433 idtype
= type_model__MClassType
.id
;
9434 if(cltype
>= var43
->type
->table_size
) {
9437 var44
= var43
->type
->type_table
[cltype
] == idtype
;
9440 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 767);
9443 var45
= ((val
* (*)(val
*, val
*))(var42
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var42
, var43
) /* classid on <var42:AbstractCompiler(GlobalCompiler)>*/;
9449 var50
= string__NativeString__to_s_with_length(var48
, var49
);
9456 var53
= "->classid;";
9458 var55
= string__NativeString__to_s_with_length(var53
, var54
);
9462 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
9463 { /* var56 = array_instance Array[Object] */
9465 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
9466 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var_res
;
9467 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var38
;
9468 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var45
;
9469 ((struct instance_array__NativeArray
*)var58
)->values
[3] = (val
*) var47
;
9470 ((struct instance_array__NativeArray
*)var58
)->values
[4] = (val
*) var_value2
;
9471 ((struct instance_array__NativeArray
*)var58
)->values
[5] = (val
*) var52
;
9472 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
9473 CHECK_NEW_array__Array(var56
);
9475 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
9476 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var59
) /* add on <self:GlobalCompilerVisitor>*/;
9479 var60
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value1
) /* mtype on <var_value1:RuntimeVariable>*/;
9480 var61
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var60
) /* ctype on <var60:MType>*/;
9486 var66
= string__NativeString__to_s_with_length(var64
, var65
);
9490 var67
= ((short int (*)(val
*, val
*))(var61
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var61
, var63
) /* == on <var61:String>*/;
9497 var72
= string__NativeString__to_s_with_length(var70
, var71
);
9504 var75
= "->classid == ";
9506 var77
= string__NativeString__to_s_with_length(var75
, var76
);
9510 var78
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9511 var79
= ((val
* (*)(val
*))(var_value2
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value2
) /* mtype on <var_value2:RuntimeVariable>*/;
9512 /* <var79:MType> isa MClassType */
9513 cltype81
= type_model__MClassType
.color
;
9514 idtype82
= type_model__MClassType
.id
;
9515 if(cltype81
>= var79
->type
->table_size
) {
9518 var80
= var79
->type
->type_table
[cltype81
] == idtype82
;
9521 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 771);
9524 var83
= ((val
* (*)(val
*, val
*))(var78
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var78
, var79
) /* classid on <var78:AbstractCompiler(GlobalCompiler)>*/;
9530 var88
= string__NativeString__to_s_with_length(var86
, var87
);
9534 var89
= NEW_array__Array(&type_array__Arraykernel__Object
);
9535 { /* var89 = array_instance Array[Object] */
9537 var91
= NEW_array__NativeArray(var90
, &type_array__NativeArraykernel__Object
);
9538 ((struct instance_array__NativeArray
*)var91
)->values
[0] = (val
*) var_res
;
9539 ((struct instance_array__NativeArray
*)var91
)->values
[1] = (val
*) var69
;
9540 ((struct instance_array__NativeArray
*)var91
)->values
[2] = (val
*) var_value1
;
9541 ((struct instance_array__NativeArray
*)var91
)->values
[3] = (val
*) var74
;
9542 ((struct instance_array__NativeArray
*)var91
)->values
[4] = (val
*) var83
;
9543 ((struct instance_array__NativeArray
*)var91
)->values
[5] = (val
*) var85
;
9544 ((void (*)(val
*, val
*, long))(var89
->class->vft
[COLOR_array__Array__with_native
]))(var89
, var91
, var90
) /* with_native on <var89:Array[Object]>*/;
9545 CHECK_NEW_array__Array(var89
);
9547 var92
= ((val
* (*)(val
*))(var89
->class->vft
[COLOR_string__Object__to_s
]))(var89
) /* to_s on <var89:Array[Object]>*/;
9548 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var92
) /* add on <self:GlobalCompilerVisitor>*/;
9550 var93
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value1
) /* mcasttype on <var_value1:RuntimeVariable>*/;
9551 var94
= ((val
* (*)(val
*))(var_value2
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value2
) /* mcasttype on <var_value2:RuntimeVariable>*/;
9552 var95
= ((short int (*)(val
*, val
*))(var93
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var93
, var94
) /* == on <var93:MType>*/;
9559 var100
= string__NativeString__to_s_with_length(var98
, var99
);
9563 var101
= NEW_array__Array(&type_array__Arraykernel__Object
);
9564 { /* var101 = array_instance Array[Object] */
9566 var103
= NEW_array__NativeArray(var102
, &type_array__NativeArraykernel__Object
);
9567 ((struct instance_array__NativeArray
*)var103
)->values
[0] = (val
*) var_res
;
9568 ((struct instance_array__NativeArray
*)var103
)->values
[1] = (val
*) var97
;
9569 ((void (*)(val
*, val
*, long))(var101
->class->vft
[COLOR_array__Array__with_native
]))(var101
, var103
, var102
) /* with_native on <var101:Array[Object]>*/;
9570 CHECK_NEW_array__Array(var101
);
9572 var104
= ((val
* (*)(val
*))(var101
->class->vft
[COLOR_string__Object__to_s
]))(var101
) /* to_s on <var101:Array[Object]>*/;
9573 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var104
) /* add on <self:GlobalCompilerVisitor>*/;
9576 var106
= varonce105
;
9580 var109
= string__NativeString__to_s_with_length(var107
, var108
);
9582 varonce105
= var106
;
9584 var110
= NEW_array__Array(&type_array__Arraykernel__Object
);
9585 { /* var110 = array_instance Array[Object] */
9587 var112
= NEW_array__NativeArray(var111
, &type_array__NativeArraykernel__Object
);
9588 ((struct instance_array__NativeArray
*)var112
)->values
[0] = (val
*) var_res
;
9589 ((struct instance_array__NativeArray
*)var112
)->values
[1] = (val
*) var106
;
9590 ((void (*)(val
*, val
*, long))(var110
->class->vft
[COLOR_array__Array__with_native
]))(var110
, var112
, var111
) /* with_native on <var110:Array[Object]>*/;
9591 CHECK_NEW_array__Array(var110
);
9593 var113
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_string__Object__to_s
]))(var110
) /* to_s on <var110:Array[Object]>*/;
9594 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var113
) /* add on <self:GlobalCompilerVisitor>*/;
9603 /* method global_compiler#GlobalCompilerVisitor#is_same_type_test for (self: Object, RuntimeVariable, RuntimeVariable): RuntimeVariable */
9604 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__is_same_type_test(val
* self
, val
* p0
, val
* p1
) {
9605 val
* var
/* : RuntimeVariable */;
9606 val
* var1
/* : RuntimeVariable */;
9607 var1
= global_compiler__GlobalCompilerVisitor__is_same_type_test(self
, p0
, p1
);
9612 /* method global_compiler#GlobalCompilerVisitor#class_name_string for (self: GlobalCompilerVisitor, RuntimeVariable): String */
9613 val
* global_compiler__GlobalCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
9614 val
* var
/* : String */;
9615 val
* var_value
/* var value: RuntimeVariable */;
9616 static val
* varonce
;
9617 val
* var1
/* : String */;
9618 char* var2
/* : NativeString */;
9619 long var3
/* : Int */;
9620 val
* var4
/* : String */;
9621 val
* var5
/* : String */;
9622 val
* var_res
/* var res: String */;
9623 static val
* varonce6
;
9624 val
* var7
/* : String */;
9625 char* var8
/* : NativeString */;
9626 long var9
/* : Int */;
9627 val
* var10
/* : String */;
9628 static val
* varonce11
;
9629 val
* var12
/* : String */;
9630 char* var13
/* : NativeString */;
9631 long var14
/* : Int */;
9632 val
* var15
/* : String */;
9633 val
* var16
/* : Array[Object] */;
9634 long var17
/* : Int */;
9635 val
* var18
/* : NativeArray[Object] */;
9636 val
* var19
/* : String */;
9637 val
* var20
/* : MType */;
9638 val
* var21
/* : String */;
9639 static val
* varonce22
;
9640 val
* var23
/* : String */;
9641 char* var24
/* : NativeString */;
9642 long var25
/* : Int */;
9643 val
* var26
/* : String */;
9644 short int var27
/* : Bool */;
9645 static val
* varonce28
;
9646 val
* var29
/* : String */;
9647 char* var30
/* : NativeString */;
9648 long var31
/* : Int */;
9649 val
* var32
/* : String */;
9650 static val
* varonce33
;
9651 val
* var34
/* : String */;
9652 char* var35
/* : NativeString */;
9653 long var36
/* : Int */;
9654 val
* var37
/* : String */;
9655 val
* var38
/* : Array[Object] */;
9656 long var39
/* : Int */;
9657 val
* var40
/* : NativeArray[Object] */;
9658 val
* var41
/* : String */;
9659 static val
* varonce42
;
9660 val
* var43
/* : String */;
9661 char* var44
/* : NativeString */;
9662 long var45
/* : Int */;
9663 val
* var46
/* : String */;
9664 val
* var47
/* : AbstractCompiler */;
9665 val
* var48
/* : MType */;
9666 short int var49
/* : Bool */;
9669 val
* var50
/* : String */;
9670 static val
* varonce51
;
9671 val
* var52
/* : String */;
9672 char* var53
/* : NativeString */;
9673 long var54
/* : Int */;
9674 val
* var55
/* : String */;
9675 val
* var56
/* : Array[Object] */;
9676 long var57
/* : Int */;
9677 val
* var58
/* : NativeArray[Object] */;
9678 val
* var59
/* : String */;
9683 var2
= "var_class_name";
9685 var4
= string__NativeString__to_s_with_length(var2
, var3
);
9689 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var1
) /* get_name on <self:GlobalCompilerVisitor>*/;
9694 var8
= "const char* ";
9696 var10
= string__NativeString__to_s_with_length(var8
, var9
);
9705 var15
= string__NativeString__to_s_with_length(var13
, var14
);
9709 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
9710 { /* var16 = array_instance Array[Object] */
9712 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
9713 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
9714 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var_res
;
9715 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
9716 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
9717 CHECK_NEW_array__Array(var16
);
9719 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
9720 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var19
) /* add_decl on <self:GlobalCompilerVisitor>*/;
9721 var20
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9722 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var20
) /* ctype on <var20:MType>*/;
9728 var26
= string__NativeString__to_s_with_length(var24
, var25
);
9732 var27
= ((short int (*)(val
*, val
*))(var21
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var21
, var23
) /* == on <var21:String>*/;
9737 var30
= " = class_names[";
9739 var32
= string__NativeString__to_s_with_length(var30
, var31
);
9746 var35
= "->classid];";
9748 var37
= string__NativeString__to_s_with_length(var35
, var36
);
9752 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
9753 { /* var38 = array_instance Array[Object] */
9755 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
9756 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var_res
;
9757 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var29
;
9758 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var_value
;
9759 ((struct instance_array__NativeArray
*)var40
)->values
[3] = (val
*) var34
;
9760 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
9761 CHECK_NEW_array__Array(var38
);
9763 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
9764 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var41
) /* add on <self:GlobalCompilerVisitor>*/;
9769 var44
= " = class_names[";
9771 var46
= string__NativeString__to_s_with_length(var44
, var45
);
9775 var47
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9776 var48
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9777 /* <var48:MType> isa MClassType */
9778 cltype
= type_model__MClassType
.color
;
9779 idtype
= type_model__MClassType
.id
;
9780 if(cltype
>= var48
->type
->table_size
) {
9783 var49
= var48
->type
->type_table
[cltype
] == idtype
;
9786 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/global_compiler.nit", 788);
9789 var50
= ((val
* (*)(val
*, val
*))(var47
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var47
, var48
) /* classid on <var47:AbstractCompiler(GlobalCompiler)>*/;
9795 var55
= string__NativeString__to_s_with_length(var53
, var54
);
9799 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
9800 { /* var56 = array_instance Array[Object] */
9802 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
9803 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var_res
;
9804 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var43
;
9805 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var50
;
9806 ((struct instance_array__NativeArray
*)var58
)->values
[3] = (val
*) var52
;
9807 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
9808 CHECK_NEW_array__Array(var56
);
9810 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
9811 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var59
) /* add on <self:GlobalCompilerVisitor>*/;
9818 /* method global_compiler#GlobalCompilerVisitor#class_name_string for (self: Object, RuntimeVariable): String */
9819 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
9820 val
* var
/* : String */;
9821 val
* var1
/* : String */;
9822 var1
= global_compiler__GlobalCompilerVisitor__class_name_string(self
, p0
);