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>*/;
130 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_header
]))(var_compiler
) /* compile_header on <var_compiler:GlobalCompiler>*/;
131 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>*/;
132 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:HashSet[MClassType]>*/;
134 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
136 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
138 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__declare_runtimeclass
]))(var_compiler
, var_t
) /* declare_runtimeclass on <var_compiler:GlobalCompiler>*/;
139 CONTINUE_label
: (void)0;
140 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
142 BREAK_label
: (void)0;
143 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__compile_class_names
]))(var_compiler
) /* compile_class_names on <var_compiler:GlobalCompiler>*/;
144 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>*/;
145 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:HashSet[MClassType]>*/;
147 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
149 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
151 var17
= ((val
* (*)(val
*))(var_t16
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t16
) /* ctype on <var_t16:MClassType>*/;
157 var22
= string__NativeString__to_s_with_length(var20
, var21
);
161 var23
= ((short int (*)(val
*, val
*))(var17
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var17
, var19
) /* == on <var17:String>*/;
163 ((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_global_compiler__GlobalCompiler__generate_box_instance
]))(var_compiler
, var_t16
) /* generate_box_instance on <var_compiler:GlobalCompiler>*/;
167 CONTINUE_label24
: (void)0;
168 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
170 BREAK_label24
: (void)0;
171 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_main_function
]))(var_compiler
) /* compile_main_function on <var_compiler:GlobalCompiler>*/;
173 var25
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(var_compiler
) /* todos on <var_compiler:GlobalCompiler>*/;
174 var26
= ((short int (*)(val
*))(var25
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var25
) /* is_empty on <var25:List[AbstractRuntimeFunction]>*/;
177 var28
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(var_compiler
) /* todos on <var_compiler:GlobalCompiler>*/;
178 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Sequence__shift
]))(var28
) /* shift on <var28:List[AbstractRuntimeFunction]>*/;
180 var30
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
186 var35
= string__NativeString__to_s_with_length(var33
, var34
);
195 var40
= string__NativeString__to_s_with_length(var38
, var39
);
199 var41
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(var_compiler
) /* seen on <var_compiler:GlobalCompiler>*/;
200 var42
= ((long (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var41
) /* length on <var41:HashSet[AbstractRuntimeFunction]>*/;
201 var43
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(var_compiler
) /* todos on <var_compiler:GlobalCompiler>*/;
202 var44
= ((long (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var43
) /* length on <var43:List[AbstractRuntimeFunction]>*/;
203 { /* Inline kernel#Int#- (var42,var44) */
204 var47
= var42
- var44
;
214 var52
= string__NativeString__to_s_with_length(var50
, var51
);
218 var53
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(var_compiler
) /* seen on <var_compiler:GlobalCompiler>*/;
219 var54
= ((long (*)(val
*))(var53
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var53
) /* length on <var53:HashSet[AbstractRuntimeFunction]>*/;
225 var59
= string__NativeString__to_s_with_length(var57
, var58
);
229 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
230 { /* var60 = array_instance Array[Object] */
232 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
233 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var32
;
234 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var_m
;
235 ((struct instance_array__NativeArray
*)var62
)->values
[2] = (val
*) var37
;
236 var63
= BOX_kernel__Int(var45
); /* autobox from Int to Object */
237 ((struct instance_array__NativeArray
*)var62
)->values
[3] = (val
*) var63
;
238 ((struct instance_array__NativeArray
*)var62
)->values
[4] = (val
*) var49
;
239 var64
= BOX_kernel__Int(var54
); /* autobox from Int to Object */
240 ((struct instance_array__NativeArray
*)var62
)->values
[5] = (val
*) var64
;
241 ((struct instance_array__NativeArray
*)var62
)->values
[6] = (val
*) var56
;
242 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
244 var65
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
246 ((void (*)(val
*, val
*, long))(var30
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var30
, var65
, var66
) /* info on <var30:ToolContext>*/;
247 ((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>*/;
248 CONTINUE_label67
: (void)0;
250 BREAK_label67
: (void)0;
251 var68
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
255 var71
= "Total methods to compile to C: ";
257 var73
= string__NativeString__to_s_with_length(var71
, var72
);
261 var74
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(var_compiler
) /* seen on <var_compiler:GlobalCompiler>*/;
262 var75
= ((long (*)(val
*))(var74
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var74
) /* length on <var74:HashSet[AbstractRuntimeFunction]>*/;
263 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
264 { /* var76 = array_instance Array[Object] */
266 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
267 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var70
;
268 var79
= BOX_kernel__Int(var75
); /* autobox from Int to Object */
269 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var79
;
270 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
272 var80
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
274 ((void (*)(val
*, val
*, long))(var68
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var68
, var80
, var81
) /* info on <var68:ToolContext>*/;
275 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__display_stats
]))(var_compiler
) /* display_stats on <var_compiler:GlobalCompiler>*/;
276 var82
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
278 var83
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
282 var86
= "*** END GENERATING C: ";
284 var88
= string__NativeString__to_s_with_length(var86
, var87
);
288 { /* Inline kernel#Int#- (var_time1,var_time0) */
289 var91
= var_time1
- var_time0
;
299 var96
= string__NativeString__to_s_with_length(var94
, var95
);
303 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
304 { /* var97 = array_instance Array[Object] */
306 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
307 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var85
;
308 var100
= BOX_kernel__Int(var89
); /* autobox from Int to Object */
309 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var100
;
310 ((struct instance_array__NativeArray
*)var99
)->values
[2] = (val
*) var93
;
311 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
313 var101
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
315 ((void (*)(val
*, val
*, long))(var83
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var83
, var101
, var102
) /* info on <var83:ToolContext>*/;
316 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__ModelBuilder__write_and_make
]))(self
, var_compiler
) /* write_and_make on <self:ModelBuilder>*/;
319 /* method global_compiler#ModelBuilder#run_global_compiler for (self: Object, MModule, RapidTypeAnalysis) */
320 void VIRTUAL_global_compiler__ModelBuilder__run_global_compiler(val
* self
, val
* p0
, val
* p1
) {
321 global_compiler__ModelBuilder__run_global_compiler(self
, p0
, p1
);
324 /* method global_compiler#GlobalCompiler#runtime_type_analysis for (self: GlobalCompiler): RapidTypeAnalysis */
325 val
* global_compiler__GlobalCompiler__runtime_type_analysis(val
* self
) {
326 val
* var
/* : RapidTypeAnalysis */;
327 val
* var1
/* : RapidTypeAnalysis */;
328 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64druntime_type_analysis
].val
; /* @runtime_type_analysis on <self:GlobalCompiler> */
330 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @runtime_type_analysis");
331 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 84);
338 /* method global_compiler#GlobalCompiler#runtime_type_analysis for (self: Object): RapidTypeAnalysis */
339 val
* VIRTUAL_global_compiler__GlobalCompiler__runtime_type_analysis(val
* self
) {
340 val
* var
/* : RapidTypeAnalysis */;
341 val
* var1
/* : RapidTypeAnalysis */;
342 var1
= global_compiler__GlobalCompiler__runtime_type_analysis(self
);
347 /* method global_compiler#GlobalCompiler#runtime_type_analysis= for (self: GlobalCompiler, RapidTypeAnalysis) */
348 void global_compiler__GlobalCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
349 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64druntime_type_analysis
].val
= p0
; /* @runtime_type_analysis on <self:GlobalCompiler> */
352 /* method global_compiler#GlobalCompiler#runtime_type_analysis= for (self: Object, RapidTypeAnalysis) */
353 void VIRTUAL_global_compiler__GlobalCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
354 global_compiler__GlobalCompiler__runtime_type_analysis_61d(self
, p0
);
357 /* method global_compiler#GlobalCompiler#init for (self: GlobalCompiler, MModule, ModelBuilder, RapidTypeAnalysis) */
358 void global_compiler__GlobalCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
359 val
* var_mainmodule
/* var mainmodule: MModule */;
360 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
361 val
* var_runtime_type_analysis
/* var runtime_type_analysis: RapidTypeAnalysis */;
362 val
* var
/* : String */;
364 val
* var1
/* : String */;
365 char* var2
/* : NativeString */;
366 long var3
/* : Int */;
367 val
* var4
/* : String */;
368 val
* var5
/* : Array[Object] */;
369 long var6
/* : Int */;
370 val
* var7
/* : NativeArray[Object] */;
371 val
* var8
/* : String */;
372 val
* var9
/* : CodeFile */;
373 val
* var_file
/* var file: CodeFile */;
374 val
* var10
/* : CodeWriter */;
375 val
* var11
/* : Array[MClassType] */;
376 val
* var12
/* : HashSet[MClassType] */;
377 val
* var13
/* : Iterator[nullable Object] */;
378 short int var14
/* : Bool */;
379 val
* var15
/* : nullable Object */;
380 val
* var_t
/* var t: MClassType */;
381 val
* var16
/* : String */;
382 static val
* varonce17
;
383 val
* var18
/* : String */;
384 char* var19
/* : NativeString */;
385 long var20
/* : Int */;
386 val
* var21
/* : String */;
387 short int var22
/* : Bool */;
388 val
* var23
/* : Array[MClassType] */;
390 var_modelbuilder
= p1
;
391 var_runtime_type_analysis
= p2
;
392 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__init
]))(self
, var_mainmodule
, var_modelbuilder
) /* init on <self:GlobalCompiler>*/;
393 var
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__name
]))(var_mainmodule
) /* name on <var_mainmodule:MModule>*/;
399 var4
= string__NativeString__to_s_with_length(var2
, var3
);
403 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
404 { /* var5 = array_instance Array[Object] */
406 var7
= NEW_array__NativeArray(var6
, &type_array__NativeArraykernel__Object
);
407 ((struct instance_array__NativeArray
*)var7
)->values
[0] = (val
*) var
;
408 ((struct instance_array__NativeArray
*)var7
)->values
[1] = (val
*) var1
;
409 ((void (*)(val
*, val
*, long))(var5
->class->vft
[COLOR_array__Array__with_native
]))(var5
, var7
, var6
) /* with_native on <var5:Array[Object]>*/;
411 var8
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_string__Object__to_s
]))(var5
) /* to_s on <var5:Array[Object]>*/;
412 var9
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(self
, var8
) /* new_file on <self:GlobalCompiler>*/;
414 var10
= NEW_abstract_compiler__CodeWriter(&type_abstract_compiler__CodeWriter
);
415 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_compiler__CodeWriter__init
]))(var10
, var_file
) /* init on <var10:CodeWriter>*/;
416 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header_61d
]))(self
, var10
) /* header= on <self:GlobalCompiler>*/;
417 ((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>*/;
418 var11
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
419 ((void (*)(val
*))(var11
->class->vft
[COLOR_array__Array__init
]))(var11
) /* init on <var11:Array[MClassType]>*/;
420 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__live_primitive_types_61d
]))(self
, var11
) /* live_primitive_types= on <self:GlobalCompiler>*/;
421 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>*/;
422 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:HashSet[MClassType]>*/;
424 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
426 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
428 var16
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t
) /* ctype on <var_t:MClassType>*/;
434 var21
= string__NativeString__to_s_with_length(var19
, var20
);
438 var22
= ((short int (*)(val
*, val
*))(var16
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var16
, var18
) /* != on <var16:String>*/;
440 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__live_primitive_types
]))(self
) /* live_primitive_types on <self:GlobalCompiler>*/;
441 ((void (*)(val
*, val
*))(var23
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var23
, var_t
) /* add on <var23:Array[MClassType]>*/;
444 CONTINUE_label
: (void)0;
445 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
447 BREAK_label
: (void)0;
450 /* method global_compiler#GlobalCompiler#init for (self: Object, MModule, ModelBuilder, RapidTypeAnalysis) */
451 void VIRTUAL_global_compiler__GlobalCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
452 global_compiler__GlobalCompiler__init(self
, p0
, p1
, p2
);
455 /* method global_compiler#GlobalCompiler#compile_class_names for (self: GlobalCompiler) */
456 void global_compiler__GlobalCompiler__compile_class_names(val
* self
) {
457 val
* var
/* : AbstractCompilerVisitor */;
458 val
* var_v
/* var v: GlobalCompilerVisitor */;
459 val
* var1
/* : CodeWriter */;
461 val
* var2
/* : String */;
462 char* var3
/* : NativeString */;
463 long var4
/* : Int */;
464 val
* var5
/* : String */;
465 static val
* varonce6
;
466 val
* var7
/* : String */;
467 char* var8
/* : NativeString */;
468 long var9
/* : Int */;
469 val
* var10
/* : String */;
470 val
* var11
/* : RapidTypeAnalysis */;
471 val
* var12
/* : HashSet[MClassType] */;
472 val
* var13
/* : Iterator[nullable Object] */;
473 short int var14
/* : Bool */;
474 val
* var15
/* : nullable Object */;
475 val
* var_t
/* var t: MClassType */;
476 static val
* varonce16
;
477 val
* var17
/* : String */;
478 char* var18
/* : NativeString */;
479 long var19
/* : Int */;
480 val
* var20
/* : String */;
481 static val
* varonce21
;
482 val
* var22
/* : String */;
483 char* var23
/* : NativeString */;
484 long var24
/* : Int */;
485 val
* var25
/* : String */;
486 val
* var26
/* : String */;
487 static val
* varonce27
;
488 val
* var28
/* : String */;
489 char* var29
/* : NativeString */;
490 long var30
/* : Int */;
491 val
* var31
/* : String */;
492 val
* var32
/* : Array[Object] */;
493 long var33
/* : Int */;
494 val
* var34
/* : NativeArray[Object] */;
495 val
* var35
/* : String */;
496 static val
* varonce36
;
497 val
* var37
/* : String */;
498 char* var38
/* : NativeString */;
499 long var39
/* : Int */;
500 val
* var40
/* : String */;
501 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:GlobalCompiler>*/;
503 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
507 var3
= "extern const char const * class_names[];";
509 var5
= string__NativeString__to_s_with_length(var3
, var4
);
513 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var1
, var2
) /* add_decl on <var1:CodeWriter>*/;
517 var8
= "const char const * class_names[] = {";
519 var10
= string__NativeString__to_s_with_length(var8
, var9
);
523 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var7
) /* add on <var_v:GlobalCompilerVisitor>*/;
524 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
525 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var11
) /* live_types on <var11:RapidTypeAnalysis>*/;
526 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:HashSet[MClassType]>*/;
528 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
530 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
537 var20
= string__NativeString__to_s_with_length(var18
, var19
);
546 var25
= string__NativeString__to_s_with_length(var23
, var24
);
550 var26
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(self
, var_t
) /* classid on <self:GlobalCompiler>*/;
556 var31
= string__NativeString__to_s_with_length(var29
, var30
);
560 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
561 { /* var32 = array_instance Array[Object] */
563 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
564 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var17
;
565 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_t
;
566 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var22
;
567 ((struct instance_array__NativeArray
*)var34
)->values
[3] = (val
*) var26
;
568 ((struct instance_array__NativeArray
*)var34
)->values
[4] = (val
*) var28
;
569 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
571 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
572 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var35
) /* add on <var_v:GlobalCompilerVisitor>*/;
573 CONTINUE_label
: (void)0;
574 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
576 BREAK_label
: (void)0;
582 var40
= string__NativeString__to_s_with_length(var38
, var39
);
586 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var37
) /* add on <var_v:GlobalCompilerVisitor>*/;
589 /* method global_compiler#GlobalCompiler#compile_class_names for (self: Object) */
590 void VIRTUAL_global_compiler__GlobalCompiler__compile_class_names(val
* self
) {
591 global_compiler__GlobalCompiler__compile_class_names(self
);
594 /* method global_compiler#GlobalCompiler#classid for (self: GlobalCompiler, MClassType): String */
595 val
* global_compiler__GlobalCompiler__classid(val
* self
, val
* p0
) {
596 val
* var
/* : String */;
597 val
* var_mtype
/* var mtype: MClassType */;
598 val
* var1
/* : HashMap[MClassType, String] */;
599 short int var2
/* : Bool */;
600 val
* var3
/* : HashMap[MClassType, String] */;
601 val
* var4
/* : nullable Object */;
603 val
* var5
/* : String */;
604 char* var6
/* : NativeString */;
605 long var7
/* : Int */;
606 val
* var8
/* : String */;
607 val
* var9
/* : Array[Object] */;
608 long var10
/* : Int */;
609 val
* var11
/* : NativeArray[Object] */;
610 val
* var12
/* : String */;
612 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
613 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var1
, var_mtype
) /* has_key on <var1:HashMap[MClassType, String]>*/;
615 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
616 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var3
, var_mtype
) /* [] on <var3:HashMap[MClassType, String]>*/;
624 var6
= "No classid for ";
626 var8
= string__NativeString__to_s_with_length(var6
, var7
);
630 var9
= NEW_array__Array(&type_array__Arraykernel__Object
);
631 { /* var9 = array_instance Array[Object] */
633 var11
= NEW_array__NativeArray(var10
, &type_array__NativeArraykernel__Object
);
634 ((struct instance_array__NativeArray
*)var11
)->values
[0] = (val
*) var5
;
635 ((struct instance_array__NativeArray
*)var11
)->values
[1] = (val
*) var_mtype
;
636 ((void (*)(val
*, val
*, long))(var9
->class->vft
[COLOR_array__Array__with_native
]))(var9
, var11
, var10
) /* with_native on <var9:Array[Object]>*/;
638 var12
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_string__Object__to_s
]))(var9
) /* to_s on <var9:Array[Object]>*/;
639 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var12
) /* print on <self:GlobalCompiler>*/;
640 fprintf(stderr
, "Runtime error: %s", "Aborted");
641 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 120);
646 /* method global_compiler#GlobalCompiler#classid for (self: Object, MClassType): String */
647 val
* VIRTUAL_global_compiler__GlobalCompiler__classid(val
* self
, val
* p0
) {
648 val
* var
/* : String */;
649 val
* var1
/* : String */;
650 var1
= global_compiler__GlobalCompiler__classid(self
, p0
);
655 /* method global_compiler#GlobalCompiler#classids for (self: GlobalCompiler): HashMap[MClassType, String] */
656 val
* global_compiler__GlobalCompiler__classids(val
* self
) {
657 val
* var
/* : HashMap[MClassType, String] */;
658 val
* var1
/* : HashMap[MClassType, String] */;
659 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dclassids
].val
; /* @classids on <self:GlobalCompiler> */
661 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @classids");
662 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 123);
669 /* method global_compiler#GlobalCompiler#classids for (self: Object): HashMap[MClassType, String] */
670 val
* VIRTUAL_global_compiler__GlobalCompiler__classids(val
* self
) {
671 val
* var
/* : HashMap[MClassType, String] */;
672 val
* var1
/* : HashMap[MClassType, String] */;
673 var1
= global_compiler__GlobalCompiler__classids(self
);
678 /* method global_compiler#GlobalCompiler#classids= for (self: GlobalCompiler, HashMap[MClassType, String]) */
679 void global_compiler__GlobalCompiler__classids_61d(val
* self
, val
* p0
) {
680 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dclassids
].val
= p0
; /* @classids on <self:GlobalCompiler> */
683 /* method global_compiler#GlobalCompiler#classids= for (self: Object, HashMap[MClassType, String]) */
684 void VIRTUAL_global_compiler__GlobalCompiler__classids_61d(val
* self
, val
* p0
) {
685 global_compiler__GlobalCompiler__classids_61d(self
, p0
);
688 /* method global_compiler#GlobalCompiler#compile_header_structs for (self: GlobalCompiler) */
689 void global_compiler__GlobalCompiler__compile_header_structs(val
* self
) {
690 val
* var
/* : CodeWriter */;
692 val
* var1
/* : String */;
693 char* var2
/* : NativeString */;
694 long var3
/* : Int */;
695 val
* var4
/* : String */;
696 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
700 var2
= "typedef struct {int classid;} val; /* general C type representing a Nit instance. */";
702 var4
= string__NativeString__to_s_with_length(var2
, var3
);
706 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var
, var1
) /* add_decl on <var:CodeWriter>*/;
709 /* method global_compiler#GlobalCompiler#compile_header_structs for (self: Object) */
710 void VIRTUAL_global_compiler__GlobalCompiler__compile_header_structs(val
* self
) {
711 global_compiler__GlobalCompiler__compile_header_structs(self
);
714 /* method global_compiler#GlobalCompiler#live_primitive_types for (self: GlobalCompiler): Array[MClassType] */
715 val
* global_compiler__GlobalCompiler__live_primitive_types(val
* self
) {
716 val
* var
/* : Array[MClassType] */;
717 val
* var1
/* : Array[MClassType] */;
718 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dlive_primitive_types
].val
; /* @live_primitive_types on <self:GlobalCompiler> */
720 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @live_primitive_types");
721 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 134);
728 /* method global_compiler#GlobalCompiler#live_primitive_types for (self: Object): Array[MClassType] */
729 val
* VIRTUAL_global_compiler__GlobalCompiler__live_primitive_types(val
* self
) {
730 val
* var
/* : Array[MClassType] */;
731 val
* var1
/* : Array[MClassType] */;
732 var1
= global_compiler__GlobalCompiler__live_primitive_types(self
);
737 /* method global_compiler#GlobalCompiler#live_primitive_types= for (self: GlobalCompiler, Array[MClassType]) */
738 void global_compiler__GlobalCompiler__live_primitive_types_61d(val
* self
, val
* p0
) {
739 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dlive_primitive_types
].val
= p0
; /* @live_primitive_types on <self:GlobalCompiler> */
742 /* method global_compiler#GlobalCompiler#live_primitive_types= for (self: Object, Array[MClassType]) */
743 void VIRTUAL_global_compiler__GlobalCompiler__live_primitive_types_61d(val
* self
, val
* p0
) {
744 global_compiler__GlobalCompiler__live_primitive_types_61d(self
, p0
);
747 /* method global_compiler#GlobalCompiler#todo for (self: GlobalCompiler, AbstractRuntimeFunction) */
748 void global_compiler__GlobalCompiler__todo(val
* self
, val
* p0
) {
749 val
* var_m
/* var m: AbstractRuntimeFunction */;
750 val
* var
/* : HashSet[AbstractRuntimeFunction] */;
751 short int var1
/* : Bool */;
752 val
* var2
/* : List[AbstractRuntimeFunction] */;
753 val
* var3
/* : HashSet[AbstractRuntimeFunction] */;
755 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(self
) /* seen on <self:GlobalCompiler>*/;
756 var1
= ((short int (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var
, var_m
) /* has on <var:HashSet[AbstractRuntimeFunction]>*/;
761 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(self
) /* todos on <self:GlobalCompiler>*/;
762 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_m
) /* add on <var2:List[AbstractRuntimeFunction]>*/;
763 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(self
) /* seen on <self:GlobalCompiler>*/;
764 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var3
, var_m
) /* add on <var3:HashSet[AbstractRuntimeFunction]>*/;
767 /* method global_compiler#GlobalCompiler#todo for (self: Object, AbstractRuntimeFunction) */
768 void VIRTUAL_global_compiler__GlobalCompiler__todo(val
* self
, val
* p0
) {
769 global_compiler__GlobalCompiler__todo(self
, p0
);
772 /* method global_compiler#GlobalCompiler#todos for (self: GlobalCompiler): List[AbstractRuntimeFunction] */
773 val
* global_compiler__GlobalCompiler__todos(val
* self
) {
774 val
* var
/* : List[AbstractRuntimeFunction] */;
775 val
* var1
/* : List[AbstractRuntimeFunction] */;
776 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dtodos
].val
; /* @todos on <self:GlobalCompiler> */
778 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @todos");
779 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 146);
786 /* method global_compiler#GlobalCompiler#todos for (self: Object): List[AbstractRuntimeFunction] */
787 val
* VIRTUAL_global_compiler__GlobalCompiler__todos(val
* self
) {
788 val
* var
/* : List[AbstractRuntimeFunction] */;
789 val
* var1
/* : List[AbstractRuntimeFunction] */;
790 var1
= global_compiler__GlobalCompiler__todos(self
);
795 /* method global_compiler#GlobalCompiler#todos= for (self: GlobalCompiler, List[AbstractRuntimeFunction]) */
796 void global_compiler__GlobalCompiler__todos_61d(val
* self
, val
* p0
) {
797 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dtodos
].val
= p0
; /* @todos on <self:GlobalCompiler> */
800 /* method global_compiler#GlobalCompiler#todos= for (self: Object, List[AbstractRuntimeFunction]) */
801 void VIRTUAL_global_compiler__GlobalCompiler__todos_61d(val
* self
, val
* p0
) {
802 global_compiler__GlobalCompiler__todos_61d(self
, p0
);
805 /* method global_compiler#GlobalCompiler#seen for (self: GlobalCompiler): HashSet[AbstractRuntimeFunction] */
806 val
* global_compiler__GlobalCompiler__seen(val
* self
) {
807 val
* var
/* : HashSet[AbstractRuntimeFunction] */;
808 val
* var1
/* : HashSet[AbstractRuntimeFunction] */;
809 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dseen
].val
; /* @seen on <self:GlobalCompiler> */
811 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @seen");
812 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 149);
819 /* method global_compiler#GlobalCompiler#seen for (self: Object): HashSet[AbstractRuntimeFunction] */
820 val
* VIRTUAL_global_compiler__GlobalCompiler__seen(val
* self
) {
821 val
* var
/* : HashSet[AbstractRuntimeFunction] */;
822 val
* var1
/* : HashSet[AbstractRuntimeFunction] */;
823 var1
= global_compiler__GlobalCompiler__seen(self
);
828 /* method global_compiler#GlobalCompiler#seen= for (self: GlobalCompiler, HashSet[AbstractRuntimeFunction]) */
829 void global_compiler__GlobalCompiler__seen_61d(val
* self
, val
* p0
) {
830 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dseen
].val
= p0
; /* @seen on <self:GlobalCompiler> */
833 /* method global_compiler#GlobalCompiler#seen= for (self: Object, HashSet[AbstractRuntimeFunction]) */
834 void VIRTUAL_global_compiler__GlobalCompiler__seen_61d(val
* self
, val
* p0
) {
835 global_compiler__GlobalCompiler__seen_61d(self
, p0
);
838 /* method global_compiler#GlobalCompiler#declare_runtimeclass for (self: GlobalCompiler, MClassType) */
839 void global_compiler__GlobalCompiler__declare_runtimeclass(val
* self
, val
* p0
) {
840 val
* var_mtype
/* var mtype: MClassType */;
841 val
* var
/* : CodeWriter */;
842 val
* var_v
/* var v: CodeWriter */;
843 val
* var1
/* : RapidTypeAnalysis */;
844 val
* var2
/* : HashSet[MClassType] */;
845 short int var3
/* : Bool */;
847 val
* var4
/* : String */;
848 char* var5
/* : NativeString */;
849 long var6
/* : Int */;
850 val
* var7
/* : String */;
851 static val
* varonce8
;
852 val
* var9
/* : String */;
853 char* var10
/* : NativeString */;
854 long var11
/* : Int */;
855 val
* var12
/* : String */;
856 val
* var13
/* : Array[Object] */;
857 long var14
/* : Int */;
858 val
* var15
/* : NativeArray[Object] */;
859 val
* var16
/* : String */;
860 val
* var17
/* : HashMap[MClassType, String] */;
861 long var18
/* : Int */;
862 long var_idnum
/* var idnum: Int */;
863 static val
* varonce19
;
864 val
* var20
/* : String */;
865 char* var21
/* : NativeString */;
866 long var22
/* : Int */;
867 val
* var23
/* : String */;
868 val
* var24
/* : String */;
869 val
* var25
/* : String */;
870 val
* var_idname
/* var idname: String */;
871 val
* var26
/* : HashMap[MClassType, String] */;
872 static val
* varonce27
;
873 val
* var28
/* : String */;
874 char* var29
/* : NativeString */;
875 long var30
/* : Int */;
876 val
* var31
/* : String */;
877 static val
* varonce32
;
878 val
* var33
/* : String */;
879 char* var34
/* : NativeString */;
880 long var35
/* : Int */;
881 val
* var36
/* : String */;
882 static val
* varonce37
;
883 val
* var38
/* : String */;
884 char* var39
/* : NativeString */;
885 long var40
/* : Int */;
886 val
* var41
/* : String */;
887 static val
* varonce42
;
888 val
* var43
/* : String */;
889 char* var44
/* : NativeString */;
890 long var45
/* : Int */;
891 val
* var46
/* : String */;
892 val
* var47
/* : Array[Object] */;
893 long var48
/* : Int */;
894 val
* var49
/* : NativeArray[Object] */;
895 val
* var50
/* : Object */;
896 val
* var51
/* : String */;
897 static val
* varonce52
;
898 val
* var53
/* : String */;
899 char* var54
/* : NativeString */;
900 long var55
/* : Int */;
901 val
* var56
/* : String */;
902 val
* var57
/* : String */;
903 static val
* varonce58
;
904 val
* var59
/* : String */;
905 char* var60
/* : NativeString */;
906 long var61
/* : Int */;
907 val
* var62
/* : String */;
908 val
* var63
/* : Array[Object] */;
909 long var64
/* : Int */;
910 val
* var65
/* : NativeArray[Object] */;
911 val
* var66
/* : String */;
912 static val
* varonce67
;
913 val
* var68
/* : String */;
914 char* var69
/* : NativeString */;
915 long var70
/* : Int */;
916 val
* var71
/* : String */;
917 static val
* varonce72
;
918 val
* var73
/* : String */;
919 char* var74
/* : NativeString */;
920 long var75
/* : Int */;
921 val
* var76
/* : String */;
922 val
* var77
/* : Array[Object] */;
923 long var78
/* : Int */;
924 val
* var79
/* : NativeArray[Object] */;
925 val
* var80
/* : String */;
926 val
* var81
/* : MClass */;
927 val
* var82
/* : String */;
928 static val
* varonce83
;
929 val
* var84
/* : String */;
930 char* var85
/* : NativeString */;
931 long var86
/* : Int */;
932 val
* var87
/* : String */;
933 short int var88
/* : Bool */;
934 val
* var89
/* : Array[MType] */;
935 val
* var90
/* : nullable Object */;
936 val
* var91
/* : String */;
937 static val
* varonce92
;
938 val
* var93
/* : String */;
939 char* var94
/* : NativeString */;
940 long var95
/* : Int */;
941 val
* var96
/* : String */;
942 val
* var97
/* : Array[Object] */;
943 long var98
/* : Int */;
944 val
* var99
/* : NativeArray[Object] */;
945 val
* var100
/* : String */;
946 val
* var101
/* : String */;
947 static val
* varonce102
;
948 val
* var103
/* : String */;
949 char* var104
/* : NativeString */;
950 long var105
/* : Int */;
951 val
* var106
/* : String */;
952 short int var107
/* : Bool */;
953 val
* var108
/* : String */;
954 static val
* varonce109
;
955 val
* var110
/* : String */;
956 char* var111
/* : NativeString */;
957 long var112
/* : Int */;
958 val
* var113
/* : String */;
959 val
* var114
/* : Array[Object] */;
960 long var115
/* : Int */;
961 val
* var116
/* : NativeArray[Object] */;
962 val
* var117
/* : String */;
963 val
* var118
/* : MModule */;
964 val
* var119
/* : Set[MClassDef] */;
965 val
* var120
/* : Iterator[nullable Object] */;
966 short int var121
/* : Bool */;
967 val
* var122
/* : nullable Object */;
968 val
* var_cd
/* var cd: MClassDef */;
969 val
* var123
/* : Array[MProperty] */;
970 val
* var124
/* : Iterator[nullable Object] */;
971 short int var125
/* : Bool */;
972 val
* var126
/* : nullable Object */;
973 val
* var_p
/* var p: MProperty */;
974 short int var127
/* : Bool */;
977 short int var128
/* : Bool */;
978 val
* var129
/* : MPropDef */;
979 val
* var130
/* : nullable MType */;
980 val
* var_t
/* var t: MType */;
981 val
* var131
/* : MModule */;
982 val
* var132
/* : MType */;
983 val
* var133
/* : String */;
984 static val
* varonce134
;
985 val
* var135
/* : String */;
986 char* var136
/* : NativeString */;
987 long var137
/* : Int */;
988 val
* var138
/* : String */;
989 val
* var139
/* : MPropDef */;
990 val
* var140
/* : String */;
991 static val
* varonce141
;
992 val
* var142
/* : String */;
993 char* var143
/* : NativeString */;
994 long var144
/* : Int */;
995 val
* var145
/* : String */;
996 static val
* varonce146
;
997 val
* var147
/* : String */;
998 char* var148
/* : NativeString */;
999 long var149
/* : Int */;
1000 val
* var150
/* : String */;
1001 static val
* varonce151
;
1002 val
* var152
/* : String */;
1003 char* var153
/* : NativeString */;
1004 long var154
/* : Int */;
1005 val
* var155
/* : String */;
1006 val
* var156
/* : Array[Object] */;
1007 long var157
/* : Int */;
1008 val
* var158
/* : NativeArray[Object] */;
1009 val
* var159
/* : String */;
1010 static val
* varonce161
;
1011 val
* var162
/* : String */;
1012 char* var163
/* : NativeString */;
1013 long var164
/* : Int */;
1014 val
* var165
/* : String */;
1016 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
1018 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
1019 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var1
) /* live_types on <var1:RapidTypeAnalysis>*/;
1020 var3
= ((short int (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var2
, var_mtype
) /* has on <var2:HashSet[MClassType]>*/;
1022 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1023 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 156);
1029 var5
= "/* runtime class ";
1031 var7
= string__NativeString__to_s_with_length(var5
, var6
);
1040 var12
= string__NativeString__to_s_with_length(var10
, var11
);
1044 var13
= NEW_array__Array(&type_array__Arraykernel__Object
);
1045 { /* var13 = array_instance Array[Object] */
1047 var15
= NEW_array__NativeArray(var14
, &type_array__NativeArraykernel__Object
);
1048 ((struct instance_array__NativeArray
*)var15
)->values
[0] = (val
*) var4
;
1049 ((struct instance_array__NativeArray
*)var15
)->values
[1] = (val
*) var_mtype
;
1050 ((struct instance_array__NativeArray
*)var15
)->values
[2] = (val
*) var9
;
1051 ((void (*)(val
*, val
*, long))(var13
->class->vft
[COLOR_array__Array__with_native
]))(var13
, var15
, var14
) /* with_native on <var13:Array[Object]>*/;
1053 var16
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_string__Object__to_s
]))(var13
) /* to_s on <var13:Array[Object]>*/;
1054 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var16
) /* add_decl on <var_v:CodeWriter>*/;
1055 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
1056 var18
= ((long (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__MapRead__length
]))(var17
) /* length on <var17:HashMap[MClassType, String]>*/;
1063 var23
= string__NativeString__to_s_with_length(var21
, var22
);
1067 var24
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1068 var25
= ((val
* (*)(val
*, val
*))(var20
->class->vft
[COLOR_string__String___43d
]))(var20
, var24
) /* + on <var20:String>*/;
1070 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
1071 ((void (*)(val
*, val
*, val
*))(var26
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var26
, var_mtype
, var_idname
) /* []= on <var26:HashMap[MClassType, String]>*/;
1077 var31
= string__NativeString__to_s_with_length(var29
, var30
);
1086 var36
= string__NativeString__to_s_with_length(var34
, var35
);
1095 var41
= string__NativeString__to_s_with_length(var39
, var40
);
1104 var46
= string__NativeString__to_s_with_length(var44
, var45
);
1108 var47
= NEW_array__Array(&type_array__Arraykernel__Object
);
1109 { /* var47 = array_instance Array[Object] */
1111 var49
= NEW_array__NativeArray(var48
, &type_array__NativeArraykernel__Object
);
1112 ((struct instance_array__NativeArray
*)var49
)->values
[0] = (val
*) var28
;
1113 ((struct instance_array__NativeArray
*)var49
)->values
[1] = (val
*) var_idname
;
1114 ((struct instance_array__NativeArray
*)var49
)->values
[2] = (val
*) var33
;
1115 var50
= BOX_kernel__Int(var_idnum
); /* autobox from Int to Object */
1116 ((struct instance_array__NativeArray
*)var49
)->values
[3] = (val
*) var50
;
1117 ((struct instance_array__NativeArray
*)var49
)->values
[4] = (val
*) var38
;
1118 ((struct instance_array__NativeArray
*)var49
)->values
[5] = (val
*) var_mtype
;
1119 ((struct instance_array__NativeArray
*)var49
)->values
[6] = (val
*) var43
;
1120 ((void (*)(val
*, val
*, long))(var47
->class->vft
[COLOR_array__Array__with_native
]))(var47
, var49
, var48
) /* with_native on <var47:Array[Object]>*/;
1122 var51
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_string__Object__to_s
]))(var47
) /* to_s on <var47:Array[Object]>*/;
1123 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var51
) /* add_decl on <var_v:CodeWriter>*/;
1129 var56
= string__NativeString__to_s_with_length(var54
, var55
);
1133 var57
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1139 var62
= string__NativeString__to_s_with_length(var60
, var61
);
1143 var63
= NEW_array__Array(&type_array__Arraykernel__Object
);
1144 { /* var63 = array_instance Array[Object] */
1146 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArraykernel__Object
);
1147 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var53
;
1148 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var57
;
1149 ((struct instance_array__NativeArray
*)var65
)->values
[2] = (val
*) var59
;
1150 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Object]>*/;
1152 var66
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_string__Object__to_s
]))(var63
) /* to_s on <var63:Array[Object]>*/;
1153 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var66
) /* add_decl on <var_v:CodeWriter>*/;
1157 var69
= "int classid; /* must be ";
1159 var71
= string__NativeString__to_s_with_length(var69
, var70
);
1168 var76
= string__NativeString__to_s_with_length(var74
, var75
);
1172 var77
= NEW_array__Array(&type_array__Arraykernel__Object
);
1173 { /* var77 = array_instance Array[Object] */
1175 var79
= NEW_array__NativeArray(var78
, &type_array__NativeArraykernel__Object
);
1176 ((struct instance_array__NativeArray
*)var79
)->values
[0] = (val
*) var68
;
1177 ((struct instance_array__NativeArray
*)var79
)->values
[1] = (val
*) var_idname
;
1178 ((struct instance_array__NativeArray
*)var79
)->values
[2] = (val
*) var73
;
1179 ((void (*)(val
*, val
*, long))(var77
->class->vft
[COLOR_array__Array__with_native
]))(var77
, var79
, var78
) /* with_native on <var77:Array[Object]>*/;
1181 var80
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_string__Object__to_s
]))(var77
) /* to_s on <var77:Array[Object]>*/;
1182 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var80
) /* add_decl on <var_v:CodeWriter>*/;
1183 var81
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
1184 var82
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_model__MClass__name
]))(var81
) /* name on <var81:MClass>*/;
1188 var85
= "NativeArray";
1190 var87
= string__NativeString__to_s_with_length(var85
, var86
);
1194 var88
= ((short int (*)(val
*, val
*))(var82
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var82
, var84
) /* == on <var82:String>*/;
1196 var89
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
1197 var90
= ((val
* (*)(val
*))(var89
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var89
) /* first on <var89:Array[MType]>*/;
1198 var91
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var90
) /* ctype on <var90:nullable Object(MType)>*/;
1202 var94
= " values[1];";
1204 var96
= string__NativeString__to_s_with_length(var94
, var95
);
1208 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
1209 { /* var97 = array_instance Array[Object] */
1211 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
1212 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var91
;
1213 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var93
;
1214 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
1216 var100
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
1217 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var100
) /* add_decl on <var_v:CodeWriter>*/;
1220 var101
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1222 var103
= varonce102
;
1226 var106
= string__NativeString__to_s_with_length(var104
, var105
);
1228 varonce102
= var103
;
1230 var107
= ((short int (*)(val
*, val
*))(var101
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var101
, var103
) /* != on <var101:String>*/;
1232 var108
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1234 var110
= varonce109
;
1238 var113
= string__NativeString__to_s_with_length(var111
, var112
);
1240 varonce109
= var110
;
1242 var114
= NEW_array__Array(&type_array__Arraykernel__Object
);
1243 { /* var114 = array_instance Array[Object] */
1245 var116
= NEW_array__NativeArray(var115
, &type_array__NativeArraykernel__Object
);
1246 ((struct instance_array__NativeArray
*)var116
)->values
[0] = (val
*) var108
;
1247 ((struct instance_array__NativeArray
*)var116
)->values
[1] = (val
*) var110
;
1248 ((void (*)(val
*, val
*, long))(var114
->class->vft
[COLOR_array__Array__with_native
]))(var114
, var116
, var115
) /* with_native on <var114:Array[Object]>*/;
1250 var117
= ((val
* (*)(val
*))(var114
->class->vft
[COLOR_string__Object__to_s
]))(var114
) /* to_s on <var114:Array[Object]>*/;
1251 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var117
) /* add_decl on <var_v:CodeWriter>*/;
1254 var118
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:GlobalCompiler>*/;
1255 var119
= ((val
* (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var_mtype
, var118
) /* collect_mclassdefs on <var_mtype:MClassType>*/;
1256 var120
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var119
) /* iterator on <var119:Set[MClassDef]>*/;
1258 var121
= ((short int (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var120
) /* is_ok on <var120:Iterator[nullable Object]>*/;
1260 var122
= ((val
* (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var120
) /* item on <var120:Iterator[nullable Object]>*/;
1262 var123
= ((val
* (*)(val
*))(var_cd
->class->vft
[COLOR_model__MClassDef__intro_mproperties
]))(var_cd
) /* intro_mproperties on <var_cd:MClassDef>*/;
1263 var124
= ((val
* (*)(val
*))(var123
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var123
) /* iterator on <var123:Array[MProperty]>*/;
1265 var125
= ((short int (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var124
) /* is_ok on <var124:Iterator[nullable Object]>*/;
1267 var126
= ((val
* (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var124
) /* item on <var124:Iterator[nullable Object]>*/;
1269 /* <var_p:MProperty> isa MAttribute */
1270 cltype
= type_model__MAttribute
.color
;
1271 idtype
= type_model__MAttribute
.id
;
1272 if(cltype
>= var_p
->type
->table_size
) {
1275 var127
= var_p
->type
->type_table
[cltype
] == idtype
;
1279 goto CONTINUE_label
;
1282 var129
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MProperty__intro
]))(var_p
) /* intro on <var_p:MProperty(MAttribute)>*/;
1283 var130
= ((val
* (*)(val
*))(var129
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var129
) /* static_mtype on <var129:MPropDef(MAttributeDef)>*/;
1284 if (var130
== NULL
) {
1285 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1286 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 183);
1290 var131
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:GlobalCompiler>*/;
1291 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>*/;
1293 var133
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t
) /* ctype on <var_t:MType>*/;
1295 var135
= varonce134
;
1299 var138
= string__NativeString__to_s_with_length(var136
, var137
);
1301 varonce134
= var135
;
1303 var139
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MProperty__intro
]))(var_p
) /* intro on <var_p:MProperty(MAttribute)>*/;
1304 var140
= ((val
* (*)(val
*))(var139
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var139
) /* c_name on <var139:MPropDef(MAttributeDef)>*/;
1306 var142
= varonce141
;
1310 var145
= string__NativeString__to_s_with_length(var143
, var144
);
1312 varonce141
= var142
;
1315 var147
= varonce146
;
1319 var150
= string__NativeString__to_s_with_length(var148
, var149
);
1321 varonce146
= var147
;
1324 var152
= varonce151
;
1328 var155
= string__NativeString__to_s_with_length(var153
, var154
);
1330 varonce151
= var152
;
1332 var156
= NEW_array__Array(&type_array__Arraykernel__Object
);
1333 { /* var156 = array_instance Array[Object] */
1335 var158
= NEW_array__NativeArray(var157
, &type_array__NativeArraykernel__Object
);
1336 ((struct instance_array__NativeArray
*)var158
)->values
[0] = (val
*) var133
;
1337 ((struct instance_array__NativeArray
*)var158
)->values
[1] = (val
*) var135
;
1338 ((struct instance_array__NativeArray
*)var158
)->values
[2] = (val
*) var140
;
1339 ((struct instance_array__NativeArray
*)var158
)->values
[3] = (val
*) var142
;
1340 ((struct instance_array__NativeArray
*)var158
)->values
[4] = (val
*) var_p
;
1341 ((struct instance_array__NativeArray
*)var158
)->values
[5] = (val
*) var147
;
1342 ((struct instance_array__NativeArray
*)var158
)->values
[6] = (val
*) var_t
;
1343 ((struct instance_array__NativeArray
*)var158
)->values
[7] = (val
*) var152
;
1344 ((void (*)(val
*, val
*, long))(var156
->class->vft
[COLOR_array__Array__with_native
]))(var156
, var158
, var157
) /* with_native on <var156:Array[Object]>*/;
1346 var159
= ((val
* (*)(val
*))(var156
->class->vft
[COLOR_string__Object__to_s
]))(var156
) /* to_s on <var156:Array[Object]>*/;
1347 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var159
) /* add_decl on <var_v:CodeWriter>*/;
1348 CONTINUE_label
: (void)0;
1349 ((void (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var124
) /* next on <var124:Iterator[nullable Object]>*/;
1351 BREAK_label
: (void)0;
1352 CONTINUE_label160
: (void)0;
1353 ((void (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var120
) /* next on <var120:Iterator[nullable Object]>*/;
1355 BREAK_label160
: (void)0;
1357 var162
= varonce161
;
1361 var165
= string__NativeString__to_s_with_length(var163
, var164
);
1363 varonce161
= var162
;
1365 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var162
) /* add_decl on <var_v:CodeWriter>*/;
1368 /* method global_compiler#GlobalCompiler#declare_runtimeclass for (self: Object, MClassType) */
1369 void VIRTUAL_global_compiler__GlobalCompiler__declare_runtimeclass(val
* self
, val
* p0
) {
1370 global_compiler__GlobalCompiler__declare_runtimeclass(self
, p0
);
1373 /* method global_compiler#GlobalCompiler#generate_init_instance for (self: GlobalCompiler, MClassType) */
1374 void global_compiler__GlobalCompiler__generate_init_instance(val
* self
, val
* p0
) {
1375 val
* var_mtype
/* var mtype: MClassType */;
1376 val
* var
/* : RapidTypeAnalysis */;
1377 val
* var1
/* : HashSet[MClassType] */;
1378 short int var2
/* : Bool */;
1379 val
* var3
/* : String */;
1380 static val
* varonce
;
1381 val
* var4
/* : String */;
1382 char* var5
/* : NativeString */;
1383 long var6
/* : Int */;
1384 val
* var7
/* : String */;
1385 short int var8
/* : Bool */;
1386 val
* var9
/* : AbstractCompilerVisitor */;
1387 val
* var_v
/* var v: GlobalCompilerVisitor */;
1388 val
* var10
/* : MClass */;
1389 val
* var11
/* : String */;
1390 static val
* varonce12
;
1391 val
* var13
/* : String */;
1392 char* var14
/* : NativeString */;
1393 long var15
/* : Int */;
1394 val
* var16
/* : String */;
1395 short int var17
/* : Bool */;
1396 short int var_is_native_array
/* var is_native_array: Bool */;
1397 static val
* varonce18
;
1398 val
* var19
/* : String */;
1399 char* var20
/* : NativeString */;
1400 long var21
/* : Int */;
1401 val
* var22
/* : String */;
1402 val
* var_sig
/* var sig: nullable Object */;
1403 static val
* varonce23
;
1404 val
* var24
/* : String */;
1405 char* var25
/* : NativeString */;
1406 long var26
/* : Int */;
1407 val
* var27
/* : String */;
1408 val
* var28
/* : CodeWriter */;
1409 val
* var29
/* : String */;
1410 static val
* varonce30
;
1411 val
* var31
/* : String */;
1412 char* var32
/* : NativeString */;
1413 long var33
/* : Int */;
1414 val
* var34
/* : String */;
1415 val
* var35
/* : String */;
1416 static val
* varonce36
;
1417 val
* var37
/* : String */;
1418 char* var38
/* : NativeString */;
1419 long var39
/* : Int */;
1420 val
* var40
/* : String */;
1421 static val
* varonce41
;
1422 val
* var42
/* : String */;
1423 char* var43
/* : NativeString */;
1424 long var44
/* : Int */;
1425 val
* var45
/* : String */;
1426 val
* var46
/* : Array[Object] */;
1427 long var47
/* : Int */;
1428 val
* var48
/* : NativeArray[Object] */;
1429 val
* var49
/* : String */;
1430 static val
* varonce50
;
1431 val
* var51
/* : String */;
1432 char* var52
/* : NativeString */;
1433 long var53
/* : Int */;
1434 val
* var54
/* : String */;
1435 static val
* varonce55
;
1436 val
* var56
/* : String */;
1437 char* var57
/* : NativeString */;
1438 long var58
/* : Int */;
1439 val
* var59
/* : String */;
1440 val
* var60
/* : Array[Object] */;
1441 long var61
/* : Int */;
1442 val
* var62
/* : NativeArray[Object] */;
1443 val
* var63
/* : String */;
1444 val
* var64
/* : String */;
1445 static val
* varonce65
;
1446 val
* var66
/* : String */;
1447 char* var67
/* : NativeString */;
1448 long var68
/* : Int */;
1449 val
* var69
/* : String */;
1450 val
* var70
/* : String */;
1451 static val
* varonce71
;
1452 val
* var72
/* : String */;
1453 char* var73
/* : NativeString */;
1454 long var74
/* : Int */;
1455 val
* var75
/* : String */;
1456 static val
* varonce76
;
1457 val
* var77
/* : String */;
1458 char* var78
/* : NativeString */;
1459 long var79
/* : Int */;
1460 val
* var80
/* : String */;
1461 val
* var81
/* : Array[Object] */;
1462 long var82
/* : Int */;
1463 val
* var83
/* : NativeArray[Object] */;
1464 val
* var84
/* : String */;
1465 val
* var85
/* : RuntimeVariable */;
1466 val
* var_res
/* var res: RuntimeVariable */;
1467 short int var86
/* : Bool */;
1468 val
* var87
/* : Array[MType] */;
1469 val
* var88
/* : nullable Object */;
1470 val
* var_mtype_elt
/* var mtype_elt: MType */;
1471 static val
* varonce89
;
1472 val
* var90
/* : String */;
1473 char* var91
/* : NativeString */;
1474 long var92
/* : Int */;
1475 val
* var93
/* : String */;
1476 val
* var94
/* : String */;
1477 static val
* varonce95
;
1478 val
* var96
/* : String */;
1479 char* var97
/* : NativeString */;
1480 long var98
/* : Int */;
1481 val
* var99
/* : String */;
1482 val
* var100
/* : String */;
1483 static val
* varonce101
;
1484 val
* var102
/* : String */;
1485 char* var103
/* : NativeString */;
1486 long var104
/* : Int */;
1487 val
* var105
/* : String */;
1488 val
* var106
/* : Array[Object] */;
1489 long var107
/* : Int */;
1490 val
* var108
/* : NativeArray[Object] */;
1491 val
* var109
/* : String */;
1492 static val
* varonce110
;
1493 val
* var111
/* : String */;
1494 char* var112
/* : NativeString */;
1495 long var113
/* : Int */;
1496 val
* var114
/* : String */;
1497 val
* var115
/* : String */;
1498 static val
* varonce116
;
1499 val
* var117
/* : String */;
1500 char* var118
/* : NativeString */;
1501 long var119
/* : Int */;
1502 val
* var120
/* : String */;
1503 val
* var121
/* : Array[Object] */;
1504 long var122
/* : Int */;
1505 val
* var123
/* : NativeArray[Object] */;
1506 val
* var124
/* : String */;
1507 static val
* varonce125
;
1508 val
* var126
/* : String */;
1509 char* var127
/* : NativeString */;
1510 long var128
/* : Int */;
1511 val
* var129
/* : String */;
1512 val
* var130
/* : String */;
1513 static val
* varonce131
;
1514 val
* var132
/* : String */;
1515 char* var133
/* : NativeString */;
1516 long var134
/* : Int */;
1517 val
* var135
/* : String */;
1518 val
* var136
/* : Array[Object] */;
1519 long var137
/* : Int */;
1520 val
* var138
/* : NativeArray[Object] */;
1521 val
* var139
/* : String */;
1522 static val
* varonce140
;
1523 val
* var141
/* : String */;
1524 char* var142
/* : NativeString */;
1525 long var143
/* : Int */;
1526 val
* var144
/* : String */;
1527 static val
* varonce145
;
1528 val
* var146
/* : String */;
1529 char* var147
/* : NativeString */;
1530 long var148
/* : Int */;
1531 val
* var149
/* : String */;
1532 val
* var150
/* : Array[Object] */;
1533 long var151
/* : Int */;
1534 val
* var152
/* : NativeArray[Object] */;
1535 val
* var153
/* : String */;
1536 static val
* varonce154
;
1537 val
* var155
/* : String */;
1538 char* var156
/* : NativeString */;
1539 long var157
/* : Int */;
1540 val
* var158
/* : String */;
1542 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
1543 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var
) /* live_types on <var:RapidTypeAnalysis>*/;
1544 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var1
, var_mtype
) /* has on <var1:HashSet[MClassType]>*/;
1546 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1547 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 194);
1550 var3
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1556 var7
= string__NativeString__to_s_with_length(var5
, var6
);
1560 var8
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var3
, var4
) /* == on <var3:String>*/;
1562 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1563 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 195);
1566 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:GlobalCompiler>*/;
1568 var10
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
1569 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_model__MClass__name
]))(var10
) /* name on <var10:MClass>*/;
1573 var14
= "NativeArray";
1575 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1579 var17
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var11
, var13
) /* == on <var11:String>*/;
1580 var_is_native_array
= var17
;
1581 if (var_is_native_array
){
1585 var20
= "int length";
1587 var22
= string__NativeString__to_s_with_length(var20
, var21
);
1598 var27
= string__NativeString__to_s_with_length(var25
, var26
);
1604 var28
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
1605 var29
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1611 var34
= string__NativeString__to_s_with_length(var32
, var33
);
1615 var35
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1621 var40
= string__NativeString__to_s_with_length(var38
, var39
);
1630 var45
= string__NativeString__to_s_with_length(var43
, var44
);
1634 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
1635 { /* var46 = array_instance Array[Object] */
1637 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
1638 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var29
;
1639 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var31
;
1640 ((struct instance_array__NativeArray
*)var48
)->values
[2] = (val
*) var35
;
1641 ((struct instance_array__NativeArray
*)var48
)->values
[3] = (val
*) var37
;
1642 ((struct instance_array__NativeArray
*)var48
)->values
[4] = (val
*) var_sig
;
1643 ((struct instance_array__NativeArray
*)var48
)->values
[5] = (val
*) var42
;
1644 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
1646 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
1647 ((void (*)(val
*, val
*))(var28
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var28
, var49
) /* add_decl on <var28:CodeWriter>*/;
1651 var52
= "/* allocate ";
1653 var54
= string__NativeString__to_s_with_length(var52
, var53
);
1662 var59
= string__NativeString__to_s_with_length(var57
, var58
);
1666 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
1667 { /* var60 = array_instance Array[Object] */
1669 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
1670 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var51
;
1671 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var_mtype
;
1672 ((struct instance_array__NativeArray
*)var62
)->values
[2] = (val
*) var56
;
1673 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
1675 var63
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
1676 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var63
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
1677 var64
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1683 var69
= string__NativeString__to_s_with_length(var67
, var68
);
1687 var70
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1693 var75
= string__NativeString__to_s_with_length(var73
, var74
);
1702 var80
= string__NativeString__to_s_with_length(var78
, var79
);
1706 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
1707 { /* var81 = array_instance Array[Object] */
1709 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
1710 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var64
;
1711 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var66
;
1712 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var70
;
1713 ((struct instance_array__NativeArray
*)var83
)->values
[3] = (val
*) var72
;
1714 ((struct instance_array__NativeArray
*)var83
)->values
[4] = (val
*) var_sig
;
1715 ((struct instance_array__NativeArray
*)var83
)->values
[5] = (val
*) var77
;
1716 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
1718 var84
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
1719 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var84
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
1720 var85
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(var_v
, var_mtype
) /* new_var on <var_v:GlobalCompilerVisitor>*/;
1723 ((void (*)(val
*, short int))(var_res
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res
, var86
) /* is_exact= on <var_res:RuntimeVariable>*/;
1724 if (var_is_native_array
){
1725 var87
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
1726 var88
= ((val
* (*)(val
*))(var87
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var87
) /* first on <var87:Array[MType]>*/;
1727 var_mtype_elt
= var88
;
1731 var91
= " = nit_alloc(sizeof(struct ";
1733 var93
= string__NativeString__to_s_with_length(var91
, var92
);
1737 var94
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1741 var97
= ") + length*sizeof(";
1743 var99
= string__NativeString__to_s_with_length(var97
, var98
);
1747 var100
= ((val
* (*)(val
*))(var_mtype_elt
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype_elt
) /* ctype on <var_mtype_elt:MType>*/;
1749 var102
= varonce101
;
1753 var105
= string__NativeString__to_s_with_length(var103
, var104
);
1755 varonce101
= var102
;
1757 var106
= NEW_array__Array(&type_array__Arraykernel__Object
);
1758 { /* var106 = array_instance Array[Object] */
1760 var108
= NEW_array__NativeArray(var107
, &type_array__NativeArraykernel__Object
);
1761 ((struct instance_array__NativeArray
*)var108
)->values
[0] = (val
*) var_res
;
1762 ((struct instance_array__NativeArray
*)var108
)->values
[1] = (val
*) var90
;
1763 ((struct instance_array__NativeArray
*)var108
)->values
[2] = (val
*) var94
;
1764 ((struct instance_array__NativeArray
*)var108
)->values
[3] = (val
*) var96
;
1765 ((struct instance_array__NativeArray
*)var108
)->values
[4] = (val
*) var100
;
1766 ((struct instance_array__NativeArray
*)var108
)->values
[5] = (val
*) var102
;
1767 ((void (*)(val
*, val
*, long))(var106
->class->vft
[COLOR_array__Array__with_native
]))(var106
, var108
, var107
) /* with_native on <var106:Array[Object]>*/;
1769 var109
= ((val
* (*)(val
*))(var106
->class->vft
[COLOR_string__Object__to_s
]))(var106
) /* to_s on <var106:Array[Object]>*/;
1770 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var109
) /* add on <var_v:GlobalCompilerVisitor>*/;
1773 var111
= varonce110
;
1775 var112
= " = nit_alloc(sizeof(struct ";
1777 var114
= string__NativeString__to_s_with_length(var112
, var113
);
1779 varonce110
= var111
;
1781 var115
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1783 var117
= varonce116
;
1787 var120
= string__NativeString__to_s_with_length(var118
, var119
);
1789 varonce116
= var117
;
1791 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
1792 { /* var121 = array_instance Array[Object] */
1794 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
1795 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var_res
;
1796 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var111
;
1797 ((struct instance_array__NativeArray
*)var123
)->values
[2] = (val
*) var115
;
1798 ((struct instance_array__NativeArray
*)var123
)->values
[3] = (val
*) var117
;
1799 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
1801 var124
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
1802 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var124
) /* add on <var_v:GlobalCompilerVisitor>*/;
1805 var126
= varonce125
;
1807 var127
= "->classid = ";
1809 var129
= string__NativeString__to_s_with_length(var127
, var128
);
1811 varonce125
= var126
;
1813 var130
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(self
, var_mtype
) /* classid on <self:GlobalCompiler>*/;
1815 var132
= varonce131
;
1819 var135
= string__NativeString__to_s_with_length(var133
, var134
);
1821 varonce131
= var132
;
1823 var136
= NEW_array__Array(&type_array__Arraykernel__Object
);
1824 { /* var136 = array_instance Array[Object] */
1826 var138
= NEW_array__NativeArray(var137
, &type_array__NativeArraykernel__Object
);
1827 ((struct instance_array__NativeArray
*)var138
)->values
[0] = (val
*) var_res
;
1828 ((struct instance_array__NativeArray
*)var138
)->values
[1] = (val
*) var126
;
1829 ((struct instance_array__NativeArray
*)var138
)->values
[2] = (val
*) var130
;
1830 ((struct instance_array__NativeArray
*)var138
)->values
[3] = (val
*) var132
;
1831 ((void (*)(val
*, val
*, long))(var136
->class->vft
[COLOR_array__Array__with_native
]))(var136
, var138
, var137
) /* with_native on <var136:Array[Object]>*/;
1833 var139
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_string__Object__to_s
]))(var136
) /* to_s on <var136:Array[Object]>*/;
1834 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var139
) /* add on <var_v:GlobalCompilerVisitor>*/;
1835 ((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>*/;
1837 var141
= varonce140
;
1841 var144
= string__NativeString__to_s_with_length(var142
, var143
);
1843 varonce140
= var141
;
1846 var146
= varonce145
;
1850 var149
= string__NativeString__to_s_with_length(var147
, var148
);
1852 varonce145
= var146
;
1854 var150
= NEW_array__Array(&type_array__Arraykernel__Object
);
1855 { /* var150 = array_instance Array[Object] */
1857 var152
= NEW_array__NativeArray(var151
, &type_array__NativeArraykernel__Object
);
1858 ((struct instance_array__NativeArray
*)var152
)->values
[0] = (val
*) var141
;
1859 ((struct instance_array__NativeArray
*)var152
)->values
[1] = (val
*) var_res
;
1860 ((struct instance_array__NativeArray
*)var152
)->values
[2] = (val
*) var146
;
1861 ((void (*)(val
*, val
*, long))(var150
->class->vft
[COLOR_array__Array__with_native
]))(var150
, var152
, var151
) /* with_native on <var150:Array[Object]>*/;
1863 var153
= ((val
* (*)(val
*))(var150
->class->vft
[COLOR_string__Object__to_s
]))(var150
) /* to_s on <var150:Array[Object]>*/;
1864 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var153
) /* add on <var_v:GlobalCompilerVisitor>*/;
1866 var155
= varonce154
;
1870 var158
= string__NativeString__to_s_with_length(var156
, var157
);
1872 varonce154
= var155
;
1874 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var155
) /* add on <var_v:GlobalCompilerVisitor>*/;
1877 /* method global_compiler#GlobalCompiler#generate_init_instance for (self: Object, MClassType) */
1878 void VIRTUAL_global_compiler__GlobalCompiler__generate_init_instance(val
* self
, val
* p0
) {
1879 global_compiler__GlobalCompiler__generate_init_instance(self
, p0
);
1882 /* method global_compiler#GlobalCompiler#generate_box_instance for (self: GlobalCompiler, MClassType) */
1883 void global_compiler__GlobalCompiler__generate_box_instance(val
* self
, val
* p0
) {
1884 val
* var_mtype
/* var mtype: MClassType */;
1885 val
* var
/* : RapidTypeAnalysis */;
1886 val
* var1
/* : HashSet[MClassType] */;
1887 short int var2
/* : Bool */;
1888 val
* var3
/* : String */;
1889 static val
* varonce
;
1890 val
* var4
/* : String */;
1891 char* var5
/* : NativeString */;
1892 long var6
/* : Int */;
1893 val
* var7
/* : String */;
1894 short int var8
/* : Bool */;
1895 val
* var9
/* : AbstractCompilerVisitor */;
1896 val
* var_v
/* var v: GlobalCompilerVisitor */;
1897 val
* var10
/* : CodeWriter */;
1898 static val
* varonce11
;
1899 val
* var12
/* : String */;
1900 char* var13
/* : NativeString */;
1901 long var14
/* : Int */;
1902 val
* var15
/* : String */;
1903 val
* var16
/* : String */;
1904 static val
* varonce17
;
1905 val
* var18
/* : String */;
1906 char* var19
/* : NativeString */;
1907 long var20
/* : Int */;
1908 val
* var21
/* : String */;
1909 val
* var22
/* : String */;
1910 static val
* varonce23
;
1911 val
* var24
/* : String */;
1912 char* var25
/* : NativeString */;
1913 long var26
/* : Int */;
1914 val
* var27
/* : String */;
1915 val
* var28
/* : Array[Object] */;
1916 long var29
/* : Int */;
1917 val
* var30
/* : NativeArray[Object] */;
1918 val
* var31
/* : String */;
1919 static val
* varonce32
;
1920 val
* var33
/* : String */;
1921 char* var34
/* : NativeString */;
1922 long var35
/* : Int */;
1923 val
* var36
/* : String */;
1924 static val
* varonce37
;
1925 val
* var38
/* : String */;
1926 char* var39
/* : NativeString */;
1927 long var40
/* : Int */;
1928 val
* var41
/* : String */;
1929 val
* var42
/* : Array[Object] */;
1930 long var43
/* : Int */;
1931 val
* var44
/* : NativeArray[Object] */;
1932 val
* var45
/* : String */;
1933 static val
* varonce46
;
1934 val
* var47
/* : String */;
1935 char* var48
/* : NativeString */;
1936 long var49
/* : Int */;
1937 val
* var50
/* : String */;
1938 val
* var51
/* : String */;
1939 static val
* varonce52
;
1940 val
* var53
/* : String */;
1941 char* var54
/* : NativeString */;
1942 long var55
/* : Int */;
1943 val
* var56
/* : String */;
1944 val
* var57
/* : String */;
1945 static val
* varonce58
;
1946 val
* var59
/* : String */;
1947 char* var60
/* : NativeString */;
1948 long var61
/* : Int */;
1949 val
* var62
/* : String */;
1950 val
* var63
/* : Array[Object] */;
1951 long var64
/* : Int */;
1952 val
* var65
/* : NativeArray[Object] */;
1953 val
* var66
/* : String */;
1954 static val
* varonce67
;
1955 val
* var68
/* : String */;
1956 char* var69
/* : NativeString */;
1957 long var70
/* : Int */;
1958 val
* var71
/* : String */;
1959 val
* var72
/* : String */;
1960 static val
* varonce73
;
1961 val
* var74
/* : String */;
1962 char* var75
/* : NativeString */;
1963 long var76
/* : Int */;
1964 val
* var77
/* : String */;
1965 val
* var78
/* : String */;
1966 static val
* varonce79
;
1967 val
* var80
/* : String */;
1968 char* var81
/* : NativeString */;
1969 long var82
/* : Int */;
1970 val
* var83
/* : String */;
1971 val
* var84
/* : Array[Object] */;
1972 long var85
/* : Int */;
1973 val
* var86
/* : NativeArray[Object] */;
1974 val
* var87
/* : String */;
1975 static val
* varonce88
;
1976 val
* var89
/* : String */;
1977 char* var90
/* : NativeString */;
1978 long var91
/* : Int */;
1979 val
* var92
/* : String */;
1980 val
* var93
/* : String */;
1981 static val
* varonce94
;
1982 val
* var95
/* : String */;
1983 char* var96
/* : NativeString */;
1984 long var97
/* : Int */;
1985 val
* var98
/* : String */;
1986 val
* var99
/* : Array[Object] */;
1987 long var100
/* : Int */;
1988 val
* var101
/* : NativeArray[Object] */;
1989 val
* var102
/* : String */;
1990 static val
* varonce103
;
1991 val
* var104
/* : String */;
1992 char* var105
/* : NativeString */;
1993 long var106
/* : Int */;
1994 val
* var107
/* : String */;
1995 static val
* varonce108
;
1996 val
* var109
/* : String */;
1997 char* var110
/* : NativeString */;
1998 long var111
/* : Int */;
1999 val
* var112
/* : String */;
2000 static val
* varonce113
;
2001 val
* var114
/* : String */;
2002 char* var115
/* : NativeString */;
2003 long var116
/* : Int */;
2004 val
* var117
/* : String */;
2006 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
2007 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var
) /* live_types on <var:RapidTypeAnalysis>*/;
2008 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var1
, var_mtype
) /* has on <var1:HashSet[MClassType]>*/;
2010 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2011 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 227);
2014 var3
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2020 var7
= string__NativeString__to_s_with_length(var5
, var6
);
2024 var8
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var3
, var4
) /* != on <var3:String>*/;
2026 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2027 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 228);
2030 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:GlobalCompiler>*/;
2032 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
2036 var13
= "val* BOX_";
2038 var15
= string__NativeString__to_s_with_length(var13
, var14
);
2042 var16
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2048 var21
= string__NativeString__to_s_with_length(var19
, var20
);
2052 var22
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2058 var27
= string__NativeString__to_s_with_length(var25
, var26
);
2062 var28
= NEW_array__Array(&type_array__Arraykernel__Object
);
2063 { /* var28 = array_instance Array[Object] */
2065 var30
= NEW_array__NativeArray(var29
, &type_array__NativeArraykernel__Object
);
2066 ((struct instance_array__NativeArray
*)var30
)->values
[0] = (val
*) var12
;
2067 ((struct instance_array__NativeArray
*)var30
)->values
[1] = (val
*) var16
;
2068 ((struct instance_array__NativeArray
*)var30
)->values
[2] = (val
*) var18
;
2069 ((struct instance_array__NativeArray
*)var30
)->values
[3] = (val
*) var22
;
2070 ((struct instance_array__NativeArray
*)var30
)->values
[4] = (val
*) var24
;
2071 ((void (*)(val
*, val
*, long))(var28
->class->vft
[COLOR_array__Array__with_native
]))(var28
, var30
, var29
) /* with_native on <var28:Array[Object]>*/;
2073 var31
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_string__Object__to_s
]))(var28
) /* to_s on <var28:Array[Object]>*/;
2074 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var10
, var31
) /* add_decl on <var10:CodeWriter>*/;
2078 var34
= "/* allocate ";
2080 var36
= string__NativeString__to_s_with_length(var34
, var35
);
2089 var41
= string__NativeString__to_s_with_length(var39
, var40
);
2093 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
2094 { /* var42 = array_instance Array[Object] */
2096 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
2097 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var33
;
2098 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_mtype
;
2099 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var38
;
2100 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
2102 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
2103 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var45
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
2107 var48
= "val* BOX_";
2109 var50
= string__NativeString__to_s_with_length(var48
, var49
);
2113 var51
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2119 var56
= string__NativeString__to_s_with_length(var54
, var55
);
2123 var57
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2127 var60
= " value) {";
2129 var62
= string__NativeString__to_s_with_length(var60
, var61
);
2133 var63
= NEW_array__Array(&type_array__Arraykernel__Object
);
2134 { /* var63 = array_instance Array[Object] */
2136 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArraykernel__Object
);
2137 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var47
;
2138 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var51
;
2139 ((struct instance_array__NativeArray
*)var65
)->values
[2] = (val
*) var53
;
2140 ((struct instance_array__NativeArray
*)var65
)->values
[3] = (val
*) var57
;
2141 ((struct instance_array__NativeArray
*)var65
)->values
[4] = (val
*) var59
;
2142 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Object]>*/;
2144 var66
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_string__Object__to_s
]))(var63
) /* to_s on <var63:Array[Object]>*/;
2145 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var66
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
2151 var71
= string__NativeString__to_s_with_length(var69
, var70
);
2155 var72
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2159 var75
= "*res = nit_alloc(sizeof(struct ";
2161 var77
= string__NativeString__to_s_with_length(var75
, var76
);
2165 var78
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2171 var83
= string__NativeString__to_s_with_length(var81
, var82
);
2175 var84
= NEW_array__Array(&type_array__Arraykernel__Object
);
2176 { /* var84 = array_instance Array[Object] */
2178 var86
= NEW_array__NativeArray(var85
, &type_array__NativeArraykernel__Object
);
2179 ((struct instance_array__NativeArray
*)var86
)->values
[0] = (val
*) var68
;
2180 ((struct instance_array__NativeArray
*)var86
)->values
[1] = (val
*) var72
;
2181 ((struct instance_array__NativeArray
*)var86
)->values
[2] = (val
*) var74
;
2182 ((struct instance_array__NativeArray
*)var86
)->values
[3] = (val
*) var78
;
2183 ((struct instance_array__NativeArray
*)var86
)->values
[4] = (val
*) var80
;
2184 ((void (*)(val
*, val
*, long))(var84
->class->vft
[COLOR_array__Array__with_native
]))(var84
, var86
, var85
) /* with_native on <var84:Array[Object]>*/;
2186 var87
= ((val
* (*)(val
*))(var84
->class->vft
[COLOR_string__Object__to_s
]))(var84
) /* to_s on <var84:Array[Object]>*/;
2187 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var87
) /* add on <var_v:GlobalCompilerVisitor>*/;
2191 var90
= "res->classid = ";
2193 var92
= string__NativeString__to_s_with_length(var90
, var91
);
2197 var93
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(self
, var_mtype
) /* classid on <self:GlobalCompiler>*/;
2203 var98
= string__NativeString__to_s_with_length(var96
, var97
);
2207 var99
= NEW_array__Array(&type_array__Arraykernel__Object
);
2208 { /* var99 = array_instance Array[Object] */
2210 var101
= NEW_array__NativeArray(var100
, &type_array__NativeArraykernel__Object
);
2211 ((struct instance_array__NativeArray
*)var101
)->values
[0] = (val
*) var89
;
2212 ((struct instance_array__NativeArray
*)var101
)->values
[1] = (val
*) var93
;
2213 ((struct instance_array__NativeArray
*)var101
)->values
[2] = (val
*) var95
;
2214 ((void (*)(val
*, val
*, long))(var99
->class->vft
[COLOR_array__Array__with_native
]))(var99
, var101
, var100
) /* with_native on <var99:Array[Object]>*/;
2216 var102
= ((val
* (*)(val
*))(var99
->class->vft
[COLOR_string__Object__to_s
]))(var99
) /* to_s on <var99:Array[Object]>*/;
2217 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var102
) /* add on <var_v:GlobalCompilerVisitor>*/;
2219 var104
= varonce103
;
2221 var105
= "res->value = value;";
2223 var107
= string__NativeString__to_s_with_length(var105
, var106
);
2225 varonce103
= var104
;
2227 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var104
) /* add on <var_v:GlobalCompilerVisitor>*/;
2229 var109
= varonce108
;
2231 var110
= "return (val*)res;";
2233 var112
= string__NativeString__to_s_with_length(var110
, var111
);
2235 varonce108
= var109
;
2237 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var109
) /* add on <var_v:GlobalCompilerVisitor>*/;
2239 var114
= varonce113
;
2243 var117
= string__NativeString__to_s_with_length(var115
, var116
);
2245 varonce113
= var114
;
2247 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var114
) /* add on <var_v:GlobalCompilerVisitor>*/;
2250 /* method global_compiler#GlobalCompiler#generate_box_instance for (self: Object, MClassType) */
2251 void VIRTUAL_global_compiler__GlobalCompiler__generate_box_instance(val
* self
, val
* p0
) {
2252 global_compiler__GlobalCompiler__generate_box_instance(self
, p0
);
2255 /* method global_compiler#GlobalCompiler#new_visitor for (self: GlobalCompiler): GlobalCompilerVisitor */
2256 val
* global_compiler__GlobalCompiler__new_visitor(val
* self
) {
2257 val
* var
/* : GlobalCompilerVisitor */;
2258 val
* var1
/* : GlobalCompilerVisitor */;
2259 short int var2
/* : Bool */;
2262 const struct type
* type_struct
;
2263 const char* var_class_name
;
2264 var1
= NEW_global_compiler__GlobalCompilerVisitor(&type_global_compiler__GlobalCompilerVisitor
);
2265 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init
]))(var1
, self
) /* init on <var1:GlobalCompilerVisitor>*/;
2266 /* <var1:GlobalCompilerVisitor> isa VISITOR */
2267 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
2268 cltype
= type_struct
->color
;
2269 idtype
= type_struct
->id
;
2270 if(cltype
>= var1
->type
->table_size
) {
2273 var2
= var1
->type
->type_table
[cltype
] == idtype
;
2276 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
2277 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
2278 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 242);
2286 /* method global_compiler#GlobalCompiler#new_visitor for (self: Object): AbstractCompilerVisitor */
2287 val
* VIRTUAL_global_compiler__GlobalCompiler__new_visitor(val
* self
) {
2288 val
* var
/* : AbstractCompilerVisitor */;
2289 val
* var1
/* : GlobalCompilerVisitor */;
2290 var1
= global_compiler__GlobalCompiler__new_visitor(self
);
2295 /* method global_compiler#GlobalCompiler#collect_types_cache for (self: GlobalCompiler): HashMap[MType, Array[MClassType]] */
2296 val
* global_compiler__GlobalCompiler__collect_types_cache(val
* self
) {
2297 val
* var
/* : HashMap[MType, Array[MClassType]] */;
2298 val
* var1
/* : HashMap[MType, Array[MClassType]] */;
2299 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dcollect_types_cache
].val
; /* @collect_types_cache on <self:GlobalCompiler> */
2301 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @collect_types_cache");
2302 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 244);
2309 /* method global_compiler#GlobalCompiler#collect_types_cache for (self: Object): HashMap[MType, Array[MClassType]] */
2310 val
* VIRTUAL_global_compiler__GlobalCompiler__collect_types_cache(val
* self
) {
2311 val
* var
/* : HashMap[MType, Array[MClassType]] */;
2312 val
* var1
/* : HashMap[MType, Array[MClassType]] */;
2313 var1
= global_compiler__GlobalCompiler__collect_types_cache(self
);
2318 /* method global_compiler#GlobalCompiler#collect_types_cache= for (self: GlobalCompiler, HashMap[MType, Array[MClassType]]) */
2319 void global_compiler__GlobalCompiler__collect_types_cache_61d(val
* self
, val
* p0
) {
2320 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dcollect_types_cache
].val
= p0
; /* @collect_types_cache on <self:GlobalCompiler> */
2323 /* method global_compiler#GlobalCompiler#collect_types_cache= for (self: Object, HashMap[MType, Array[MClassType]]) */
2324 void VIRTUAL_global_compiler__GlobalCompiler__collect_types_cache_61d(val
* self
, val
* p0
) {
2325 global_compiler__GlobalCompiler__collect_types_cache_61d(self
, p0
);
2328 /* method global_compiler#GlobalCompilerVisitor#autobox for (self: GlobalCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
2329 val
* global_compiler__GlobalCompilerVisitor__autobox(val
* self
, val
* p0
, val
* p1
) {
2330 val
* var
/* : RuntimeVariable */;
2331 val
* var_value
/* var value: RuntimeVariable */;
2332 val
* var_mtype
/* var mtype: MType */;
2333 val
* var1
/* : MType */;
2334 short int var2
/* : Bool */;
2335 short int var3
/* : Bool */;
2336 val
* var4
/* : MType */;
2337 val
* var5
/* : String */;
2338 static val
* varonce
;
2339 val
* var6
/* : String */;
2340 char* var7
/* : NativeString */;
2341 long var8
/* : Int */;
2342 val
* var9
/* : String */;
2343 short int var10
/* : Bool */;
2344 short int var_
/* var : Bool */;
2345 val
* var11
/* : String */;
2346 static val
* varonce12
;
2347 val
* var13
/* : String */;
2348 char* var14
/* : NativeString */;
2349 long var15
/* : Int */;
2350 val
* var16
/* : String */;
2351 short int var17
/* : Bool */;
2352 val
* var18
/* : MType */;
2353 val
* var19
/* : String */;
2354 static val
* varonce20
;
2355 val
* var21
/* : String */;
2356 char* var22
/* : NativeString */;
2357 long var23
/* : Int */;
2358 val
* var24
/* : String */;
2359 short int var25
/* : Bool */;
2360 static val
* varonce26
;
2361 val
* var27
/* : String */;
2362 char* var28
/* : NativeString */;
2363 long var29
/* : Int */;
2364 val
* var30
/* : String */;
2365 val
* var31
/* : String */;
2366 static val
* varonce32
;
2367 val
* var33
/* : String */;
2368 char* var34
/* : NativeString */;
2369 long var35
/* : Int */;
2370 val
* var36
/* : String */;
2371 static val
* varonce37
;
2372 val
* var38
/* : String */;
2373 char* var39
/* : NativeString */;
2374 long var40
/* : Int */;
2375 val
* var41
/* : String */;
2376 val
* var42
/* : MType */;
2377 static val
* varonce43
;
2378 val
* var44
/* : String */;
2379 char* var45
/* : NativeString */;
2380 long var46
/* : Int */;
2381 val
* var47
/* : String */;
2382 static val
* varonce48
;
2383 val
* var49
/* : String */;
2384 char* var50
/* : NativeString */;
2385 long var51
/* : Int */;
2386 val
* var52
/* : String */;
2387 val
* var53
/* : Array[Object] */;
2388 long var54
/* : Int */;
2389 val
* var55
/* : NativeArray[Object] */;
2390 val
* var56
/* : String */;
2391 val
* var57
/* : RuntimeVariable */;
2392 val
* var58
/* : String */;
2393 static val
* varonce59
;
2394 val
* var60
/* : String */;
2395 char* var61
/* : NativeString */;
2396 long var62
/* : Int */;
2397 val
* var63
/* : String */;
2398 short int var64
/* : Bool */;
2399 val
* var65
/* : MType */;
2400 short int var66
/* : Bool */;
2403 const char* var_class_name
;
2404 val
* var_valtype
/* var valtype: MClassType */;
2405 val
* var67
/* : RuntimeVariable */;
2406 val
* var_res
/* var res: RuntimeVariable */;
2407 val
* var68
/* : AbstractCompiler */;
2408 val
* var69
/* : RapidTypeAnalysis */;
2409 val
* var70
/* : HashSet[MClassType] */;
2410 short int var71
/* : Bool */;
2411 short int var72
/* : Bool */;
2412 static val
* varonce73
;
2413 val
* var74
/* : String */;
2414 char* var75
/* : NativeString */;
2415 long var76
/* : Int */;
2416 val
* var77
/* : String */;
2417 val
* var78
/* : MType */;
2418 static val
* varonce79
;
2419 val
* var80
/* : String */;
2420 char* var81
/* : NativeString */;
2421 long var82
/* : Int */;
2422 val
* var83
/* : String */;
2423 static val
* varonce84
;
2424 val
* var85
/* : String */;
2425 char* var86
/* : NativeString */;
2426 long var87
/* : Int */;
2427 val
* var88
/* : String */;
2428 val
* var89
/* : MType */;
2429 static val
* varonce90
;
2430 val
* var91
/* : String */;
2431 char* var92
/* : NativeString */;
2432 long var93
/* : Int */;
2433 val
* var94
/* : String */;
2434 val
* var95
/* : Array[Object] */;
2435 long var96
/* : Int */;
2436 val
* var97
/* : NativeArray[Object] */;
2437 val
* var98
/* : String */;
2438 static val
* varonce99
;
2439 val
* var100
/* : String */;
2440 char* var101
/* : NativeString */;
2441 long var102
/* : Int */;
2442 val
* var103
/* : String */;
2443 static val
* varonce104
;
2444 val
* var105
/* : String */;
2445 char* var106
/* : NativeString */;
2446 long var107
/* : Int */;
2447 val
* var108
/* : String */;
2448 val
* var109
/* : String */;
2449 static val
* varonce110
;
2450 val
* var111
/* : String */;
2451 char* var112
/* : NativeString */;
2452 long var113
/* : Int */;
2453 val
* var114
/* : String */;
2454 static val
* varonce115
;
2455 val
* var116
/* : String */;
2456 char* var117
/* : NativeString */;
2457 long var118
/* : Int */;
2458 val
* var119
/* : String */;
2459 val
* var120
/* : MType */;
2460 static val
* varonce121
;
2461 val
* var122
/* : String */;
2462 char* var123
/* : NativeString */;
2463 long var124
/* : Int */;
2464 val
* var125
/* : String */;
2465 static val
* varonce126
;
2466 val
* var127
/* : String */;
2467 char* var128
/* : NativeString */;
2468 long var129
/* : Int */;
2469 val
* var130
/* : String */;
2470 val
* var131
/* : Array[Object] */;
2471 long var132
/* : Int */;
2472 val
* var133
/* : NativeArray[Object] */;
2473 val
* var134
/* : String */;
2474 val
* var135
/* : RuntimeVariable */;
2475 val
* var_res136
/* var res: RuntimeVariable */;
2476 static val
* varonce137
;
2477 val
* var138
/* : String */;
2478 char* var139
/* : NativeString */;
2479 long var140
/* : Int */;
2480 val
* var141
/* : String */;
2481 static val
* varonce142
;
2482 val
* var143
/* : String */;
2483 char* var144
/* : NativeString */;
2484 long var145
/* : Int */;
2485 val
* var146
/* : String */;
2486 val
* var147
/* : MType */;
2487 static val
* varonce148
;
2488 val
* var149
/* : String */;
2489 char* var150
/* : NativeString */;
2490 long var151
/* : Int */;
2491 val
* var152
/* : String */;
2492 static val
* varonce153
;
2493 val
* var154
/* : String */;
2494 char* var155
/* : NativeString */;
2495 long var156
/* : Int */;
2496 val
* var157
/* : String */;
2497 val
* var158
/* : Array[Object] */;
2498 long var159
/* : Int */;
2499 val
* var160
/* : NativeArray[Object] */;
2500 val
* var161
/* : String */;
2501 static val
* varonce162
;
2502 val
* var163
/* : String */;
2503 char* var164
/* : NativeString */;
2504 long var165
/* : Int */;
2505 val
* var166
/* : String */;
2506 val
* var167
/* : MType */;
2507 static val
* varonce168
;
2508 val
* var169
/* : String */;
2509 char* var170
/* : NativeString */;
2510 long var171
/* : Int */;
2511 val
* var172
/* : String */;
2512 static val
* varonce173
;
2513 val
* var174
/* : String */;
2514 char* var175
/* : NativeString */;
2515 long var176
/* : Int */;
2516 val
* var177
/* : String */;
2517 val
* var178
/* : Array[Object] */;
2518 long var179
/* : Int */;
2519 val
* var180
/* : NativeArray[Object] */;
2520 val
* var181
/* : String */;
2523 var1
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2524 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var1
, var_mtype
) /* == on <var1:MType>*/;
2529 var4
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2530 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var4
) /* ctype on <var4:MType>*/;
2536 var9
= string__NativeString__to_s_with_length(var7
, var8
);
2540 var10
= ((short int (*)(val
*, val
*))(var5
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var5
, var6
) /* == on <var5:String>*/;
2543 var11
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
2549 var16
= string__NativeString__to_s_with_length(var14
, var15
);
2553 var17
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var11
, var13
) /* == on <var11:String>*/;
2562 var18
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2563 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var18
) /* ctype on <var18:MType>*/;
2569 var24
= string__NativeString__to_s_with_length(var22
, var23
);
2573 var25
= ((short int (*)(val
*, val
*))(var19
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var19
, var21
) /* == on <var19:String>*/;
2578 var28
= "((struct ";
2580 var30
= string__NativeString__to_s_with_length(var28
, var29
);
2584 var31
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
2590 var36
= string__NativeString__to_s_with_length(var34
, var35
);
2597 var39
= ")->value; /* autounbox from ";
2599 var41
= string__NativeString__to_s_with_length(var39
, var40
);
2603 var42
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2609 var47
= string__NativeString__to_s_with_length(var45
, var46
);
2618 var52
= string__NativeString__to_s_with_length(var50
, var51
);
2622 var53
= NEW_array__Array(&type_array__Arraykernel__Object
);
2623 { /* var53 = array_instance Array[Object] */
2625 var55
= NEW_array__NativeArray(var54
, &type_array__NativeArraykernel__Object
);
2626 ((struct instance_array__NativeArray
*)var55
)->values
[0] = (val
*) var27
;
2627 ((struct instance_array__NativeArray
*)var55
)->values
[1] = (val
*) var31
;
2628 ((struct instance_array__NativeArray
*)var55
)->values
[2] = (val
*) var33
;
2629 ((struct instance_array__NativeArray
*)var55
)->values
[3] = (val
*) var_value
;
2630 ((struct instance_array__NativeArray
*)var55
)->values
[4] = (val
*) var38
;
2631 ((struct instance_array__NativeArray
*)var55
)->values
[5] = (val
*) var42
;
2632 ((struct instance_array__NativeArray
*)var55
)->values
[6] = (val
*) var44
;
2633 ((struct instance_array__NativeArray
*)var55
)->values
[7] = (val
*) var_mtype
;
2634 ((struct instance_array__NativeArray
*)var55
)->values
[8] = (val
*) var49
;
2635 ((void (*)(val
*, val
*, long))(var53
->class->vft
[COLOR_array__Array__with_native
]))(var53
, var55
, var54
) /* with_native on <var53:Array[Object]>*/;
2637 var56
= ((val
* (*)(val
*))(var53
->class->vft
[COLOR_string__Object__to_s
]))(var53
) /* to_s on <var53:Array[Object]>*/;
2638 var57
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var56
, var_mtype
) /* new_expr on <self:GlobalCompilerVisitor>*/;
2642 var58
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
2648 var63
= string__NativeString__to_s_with_length(var61
, var62
);
2652 var64
= ((short int (*)(val
*, val
*))(var58
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var58
, var60
) /* == on <var58:String>*/;
2654 var65
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2655 /* <var65:MType> isa MClassType */
2656 cltype
= type_model__MClassType
.color
;
2657 idtype
= type_model__MClassType
.id
;
2658 if(cltype
>= var65
->type
->table_size
) {
2661 var66
= var65
->type
->type_table
[cltype
] == idtype
;
2664 var_class_name
= var65
== NULL ?
"null" : var65
->type
->name
;
2665 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
2666 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 263);
2669 var_valtype
= var65
;
2670 var67
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_mtype
) /* new_var on <self:GlobalCompilerVisitor>*/;
2672 var68
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
2673 var69
= ((val
* (*)(val
*))(var68
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var68
) /* runtime_type_analysis on <var68:AbstractCompiler(GlobalCompiler)>*/;
2674 var70
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var69
) /* live_types on <var69:RapidTypeAnalysis>*/;
2675 var71
= ((short int (*)(val
*, val
*))(var70
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var70
, var_valtype
) /* has on <var70:HashSet[MClassType]>*/;
2681 var75
= "/*no autobox from ";
2683 var77
= string__NativeString__to_s_with_length(var75
, var76
);
2687 var78
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2693 var83
= string__NativeString__to_s_with_length(var81
, var82
);
2702 var88
= string__NativeString__to_s_with_length(var86
, var87
);
2706 var89
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2710 var92
= " is not live! */";
2712 var94
= string__NativeString__to_s_with_length(var92
, var93
);
2716 var95
= NEW_array__Array(&type_array__Arraykernel__Object
);
2717 { /* var95 = array_instance Array[Object] */
2719 var97
= NEW_array__NativeArray(var96
, &type_array__NativeArraykernel__Object
);
2720 ((struct instance_array__NativeArray
*)var97
)->values
[0] = (val
*) var74
;
2721 ((struct instance_array__NativeArray
*)var97
)->values
[1] = (val
*) var78
;
2722 ((struct instance_array__NativeArray
*)var97
)->values
[2] = (val
*) var80
;
2723 ((struct instance_array__NativeArray
*)var97
)->values
[3] = (val
*) var_mtype
;
2724 ((struct instance_array__NativeArray
*)var97
)->values
[4] = (val
*) var85
;
2725 ((struct instance_array__NativeArray
*)var97
)->values
[5] = (val
*) var89
;
2726 ((struct instance_array__NativeArray
*)var97
)->values
[6] = (val
*) var91
;
2727 ((void (*)(val
*, val
*, long))(var95
->class->vft
[COLOR_array__Array__with_native
]))(var95
, var97
, var96
) /* with_native on <var95:Array[Object]>*/;
2729 var98
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_string__Object__to_s
]))(var95
) /* to_s on <var95:Array[Object]>*/;
2730 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var98
) /* add on <self:GlobalCompilerVisitor>*/;
2734 var101
= "printf(\"Dead code executed!\\n\"); show_backtrace(1);";
2736 var103
= string__NativeString__to_s_with_length(var101
, var102
);
2740 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var100
) /* add on <self:GlobalCompilerVisitor>*/;
2746 var105
= varonce104
;
2750 var108
= string__NativeString__to_s_with_length(var106
, var107
);
2752 varonce104
= var105
;
2754 var109
= ((val
* (*)(val
*))(var_valtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_valtype
) /* c_name on <var_valtype:MClassType>*/;
2756 var111
= varonce110
;
2760 var114
= string__NativeString__to_s_with_length(var112
, var113
);
2762 varonce110
= var111
;
2765 var116
= varonce115
;
2767 var117
= "); /* autobox from ";
2769 var119
= string__NativeString__to_s_with_length(var117
, var118
);
2771 varonce115
= var116
;
2773 var120
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2775 var122
= varonce121
;
2779 var125
= string__NativeString__to_s_with_length(var123
, var124
);
2781 varonce121
= var122
;
2784 var127
= varonce126
;
2788 var130
= string__NativeString__to_s_with_length(var128
, var129
);
2790 varonce126
= var127
;
2792 var131
= NEW_array__Array(&type_array__Arraykernel__Object
);
2793 { /* var131 = array_instance Array[Object] */
2795 var133
= NEW_array__NativeArray(var132
, &type_array__NativeArraykernel__Object
);
2796 ((struct instance_array__NativeArray
*)var133
)->values
[0] = (val
*) var_res
;
2797 ((struct instance_array__NativeArray
*)var133
)->values
[1] = (val
*) var105
;
2798 ((struct instance_array__NativeArray
*)var133
)->values
[2] = (val
*) var109
;
2799 ((struct instance_array__NativeArray
*)var133
)->values
[3] = (val
*) var111
;
2800 ((struct instance_array__NativeArray
*)var133
)->values
[4] = (val
*) var_value
;
2801 ((struct instance_array__NativeArray
*)var133
)->values
[5] = (val
*) var116
;
2802 ((struct instance_array__NativeArray
*)var133
)->values
[6] = (val
*) var120
;
2803 ((struct instance_array__NativeArray
*)var133
)->values
[7] = (val
*) var122
;
2804 ((struct instance_array__NativeArray
*)var133
)->values
[8] = (val
*) var_mtype
;
2805 ((struct instance_array__NativeArray
*)var133
)->values
[9] = (val
*) var127
;
2806 ((void (*)(val
*, val
*, long))(var131
->class->vft
[COLOR_array__Array__with_native
]))(var131
, var133
, var132
) /* with_native on <var131:Array[Object]>*/;
2808 var134
= ((val
* (*)(val
*))(var131
->class->vft
[COLOR_string__Object__to_s
]))(var131
) /* to_s on <var131:Array[Object]>*/;
2809 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var134
) /* add on <self:GlobalCompilerVisitor>*/;
2813 var135
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_mtype
) /* new_var on <self:GlobalCompilerVisitor>*/;
2814 var_res136
= var135
;
2816 var138
= varonce137
;
2820 var141
= string__NativeString__to_s_with_length(var139
, var140
);
2822 varonce137
= var138
;
2825 var143
= varonce142
;
2827 var144
= " left unintialized (cannot convert ";
2829 var146
= string__NativeString__to_s_with_length(var144
, var145
);
2831 varonce142
= var143
;
2833 var147
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2835 var149
= varonce148
;
2839 var152
= string__NativeString__to_s_with_length(var150
, var151
);
2841 varonce148
= var149
;
2844 var154
= varonce153
;
2848 var157
= string__NativeString__to_s_with_length(var155
, var156
);
2850 varonce153
= var154
;
2852 var158
= NEW_array__Array(&type_array__Arraykernel__Object
);
2853 { /* var158 = array_instance Array[Object] */
2855 var160
= NEW_array__NativeArray(var159
, &type_array__NativeArraykernel__Object
);
2856 ((struct instance_array__NativeArray
*)var160
)->values
[0] = (val
*) var138
;
2857 ((struct instance_array__NativeArray
*)var160
)->values
[1] = (val
*) var_res136
;
2858 ((struct instance_array__NativeArray
*)var160
)->values
[2] = (val
*) var143
;
2859 ((struct instance_array__NativeArray
*)var160
)->values
[3] = (val
*) var147
;
2860 ((struct instance_array__NativeArray
*)var160
)->values
[4] = (val
*) var149
;
2861 ((struct instance_array__NativeArray
*)var160
)->values
[5] = (val
*) var_mtype
;
2862 ((struct instance_array__NativeArray
*)var160
)->values
[6] = (val
*) var154
;
2863 ((void (*)(val
*, val
*, long))(var158
->class->vft
[COLOR_array__Array__with_native
]))(var158
, var160
, var159
) /* with_native on <var158:Array[Object]>*/;
2865 var161
= ((val
* (*)(val
*))(var158
->class->vft
[COLOR_string__Object__to_s
]))(var158
) /* to_s on <var158:Array[Object]>*/;
2866 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var161
) /* add on <self:GlobalCompilerVisitor>*/;
2868 var163
= varonce162
;
2870 var164
= "printf(\"Cast error: Cannot cast %s to %s.\\n\", \"";
2872 var166
= string__NativeString__to_s_with_length(var164
, var165
);
2874 varonce162
= var163
;
2876 var167
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2878 var169
= varonce168
;
2882 var172
= string__NativeString__to_s_with_length(var170
, var171
);
2884 varonce168
= var169
;
2887 var174
= varonce173
;
2889 var175
= "\"); show_backtrace(1);";
2891 var177
= string__NativeString__to_s_with_length(var175
, var176
);
2893 varonce173
= var174
;
2895 var178
= NEW_array__Array(&type_array__Arraykernel__Object
);
2896 { /* var178 = array_instance Array[Object] */
2898 var180
= NEW_array__NativeArray(var179
, &type_array__NativeArraykernel__Object
);
2899 ((struct instance_array__NativeArray
*)var180
)->values
[0] = (val
*) var163
;
2900 ((struct instance_array__NativeArray
*)var180
)->values
[1] = (val
*) var167
;
2901 ((struct instance_array__NativeArray
*)var180
)->values
[2] = (val
*) var169
;
2902 ((struct instance_array__NativeArray
*)var180
)->values
[3] = (val
*) var_mtype
;
2903 ((struct instance_array__NativeArray
*)var180
)->values
[4] = (val
*) var174
;
2904 ((void (*)(val
*, val
*, long))(var178
->class->vft
[COLOR_array__Array__with_native
]))(var178
, var180
, var179
) /* with_native on <var178:Array[Object]>*/;
2906 var181
= ((val
* (*)(val
*))(var178
->class->vft
[COLOR_string__Object__to_s
]))(var178
) /* to_s on <var178:Array[Object]>*/;
2907 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var181
) /* add on <self:GlobalCompilerVisitor>*/;
2917 /* method global_compiler#GlobalCompilerVisitor#autobox for (self: Object, RuntimeVariable, MType): RuntimeVariable */
2918 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__autobox(val
* self
, val
* p0
, val
* p1
) {
2919 val
* var
/* : RuntimeVariable */;
2920 val
* var1
/* : RuntimeVariable */;
2921 var1
= global_compiler__GlobalCompilerVisitor__autobox(self
, p0
, p1
);
2926 /* method global_compiler#GlobalCompilerVisitor#collect_types for (self: GlobalCompilerVisitor, RuntimeVariable): Array[MClassType] */
2927 val
* global_compiler__GlobalCompilerVisitor__collect_types(val
* self
, val
* p0
) {
2928 val
* var
/* : Array[MClassType] */;
2929 val
* var_recv
/* var recv: RuntimeVariable */;
2930 val
* var1
/* : MType */;
2931 val
* var_mtype
/* var mtype: MType */;
2932 short int var2
/* : Bool */;
2933 short int var3
/* : Bool */;
2936 val
* var4
/* : AbstractCompiler */;
2937 val
* var5
/* : RapidTypeAnalysis */;
2938 val
* var6
/* : HashSet[MClassType] */;
2939 short int var7
/* : Bool */;
2940 val
* var8
/* : Array[MClassType] */;
2941 long var9
/* : Int */;
2942 val
* var_
/* var : Array[MClassType] */;
2943 val
* var_types
/* var types: Array[MClassType] */;
2944 val
* var10
/* : AbstractCompiler */;
2945 val
* var11
/* : HashMap[MType, Array[MClassType]] */;
2946 val
* var_cache
/* var cache: HashMap[MType, Array[MClassType]] */;
2947 short int var12
/* : Bool */;
2948 val
* var13
/* : nullable Object */;
2949 val
* var14
/* : Array[MClassType] */;
2950 val
* var_types15
/* var types: Array[MClassType] */;
2951 val
* var16
/* : AbstractCompiler */;
2952 val
* var17
/* : MModule */;
2953 val
* var_mainmodule
/* var mainmodule: MModule */;
2954 val
* var18
/* : AbstractCompiler */;
2955 val
* var19
/* : RapidTypeAnalysis */;
2956 val
* var20
/* : HashSet[MClassType] */;
2957 val
* var21
/* : Iterator[nullable Object] */;
2958 short int var22
/* : Bool */;
2959 val
* var23
/* : nullable Object */;
2960 val
* var_t
/* var t: MClassType */;
2961 val
* var24
/* : null */;
2962 short int var25
/* : Bool */;
2963 short int var26
/* : Bool */;
2965 var1
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_recv
) /* mcasttype on <var_recv:RuntimeVariable>*/;
2967 var2
= ((short int (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact
]))(var_recv
) /* is_exact on <var_recv:RuntimeVariable>*/;
2969 /* <var_mtype:MType> isa MClassType */
2970 cltype
= type_model__MClassType
.color
;
2971 idtype
= type_model__MClassType
.id
;
2972 if(cltype
>= var_mtype
->type
->table_size
) {
2975 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
2978 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2979 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 286);
2982 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
2983 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var4
) /* runtime_type_analysis on <var4:AbstractCompiler(GlobalCompiler)>*/;
2984 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var5
) /* live_types on <var5:RapidTypeAnalysis>*/;
2985 var7
= ((short int (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var6
, var_mtype
) /* has on <var6:HashSet[MClassType]>*/;
2987 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2988 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 287);
2991 var8
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
2993 ((void (*)(val
*, long))(var8
->class->vft
[COLOR_array__Array__with_capacity
]))(var8
, var9
) /* with_capacity on <var8:Array[MClassType]>*/;
2995 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var_mtype
) /* push on <var_:Array[MClassType]>*/;
3001 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
3002 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_global_compiler__GlobalCompiler__collect_types_cache
]))(var10
) /* collect_types_cache on <var10:AbstractCompiler(GlobalCompiler)>*/;
3004 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]]>*/;
3006 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]]>*/;
3011 var14
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
3012 ((void (*)(val
*))(var14
->class->vft
[COLOR_array__Array__init
]))(var14
) /* init on <var14:Array[MClassType]>*/;
3013 var_types15
= var14
;
3014 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
3015 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var16
) /* mainmodule on <var16:AbstractCompiler(GlobalCompiler)>*/;
3016 var_mainmodule
= var17
;
3017 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
3018 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var18
) /* runtime_type_analysis on <var18:AbstractCompiler(GlobalCompiler)>*/;
3019 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var19
) /* live_types on <var19:RapidTypeAnalysis>*/;
3020 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var20
) /* iterator on <var20:HashSet[MClassType]>*/;
3022 var22
= ((short int (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var21
) /* is_ok on <var21:Iterator[nullable Object]>*/;
3024 var23
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var21
) /* item on <var21:Iterator[nullable Object]>*/;
3027 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>*/;
3030 goto CONTINUE_label
;
3033 ((void (*)(val
*, val
*))(var_types15
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_types15
, var_t
) /* add on <var_types15:Array[MClassType]>*/;
3034 CONTINUE_label
: (void)0;
3035 ((void (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var21
) /* next on <var21:Iterator[nullable Object]>*/;
3037 BREAK_label
: (void)0;
3038 ((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]]>*/;
3044 /* method global_compiler#GlobalCompilerVisitor#collect_types for (self: Object, RuntimeVariable): Array[MClassType] */
3045 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__collect_types(val
* self
, val
* p0
) {
3046 val
* var
/* : Array[MClassType] */;
3047 val
* var1
/* : Array[MClassType] */;
3048 var1
= global_compiler__GlobalCompilerVisitor__collect_types(self
, p0
);
3053 /* method global_compiler#GlobalCompilerVisitor#native_array_def for (self: GlobalCompilerVisitor, String, nullable MType, Array[RuntimeVariable]) */
3054 void global_compiler__GlobalCompilerVisitor__native_array_def(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3055 val
* var_pname
/* var pname: String */;
3056 val
* var_ret_type
/* var ret_type: nullable MType */;
3057 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
3058 val
* var
/* : nullable Object */;
3059 val
* var1
/* : MType */;
3060 val
* var_elttype
/* var elttype: MType */;
3061 val
* var2
/* : Array[Object] */;
3062 long var3
/* : Int */;
3063 val
* var_
/* var : Array[Object] */;
3064 static val
* varonce
;
3065 val
* var4
/* : String */;
3066 char* var5
/* : NativeString */;
3067 long var6
/* : Int */;
3068 val
* var7
/* : String */;
3069 long var8
/* : Int */;
3070 val
* var9
/* : nullable Object */;
3071 val
* var10
/* : MType */;
3072 val
* var11
/* : String */;
3073 static val
* varonce12
;
3074 val
* var13
/* : String */;
3075 char* var14
/* : NativeString */;
3076 long var15
/* : Int */;
3077 val
* var16
/* : String */;
3078 long var17
/* : Int */;
3079 val
* var18
/* : nullable Object */;
3080 static val
* varonce19
;
3081 val
* var20
/* : String */;
3082 char* var21
/* : NativeString */;
3083 long var22
/* : Int */;
3084 val
* var23
/* : String */;
3085 val
* var24
/* : String */;
3086 val
* var_recv
/* var recv: String */;
3087 static val
* varonce25
;
3088 val
* var26
/* : String */;
3089 char* var27
/* : NativeString */;
3090 long var28
/* : Int */;
3091 val
* var29
/* : String */;
3092 short int var30
/* : Bool */;
3093 static val
* varonce31
;
3094 val
* var32
/* : String */;
3095 char* var33
/* : NativeString */;
3096 long var34
/* : Int */;
3097 val
* var35
/* : String */;
3098 long var36
/* : Int */;
3099 val
* var37
/* : nullable Object */;
3100 static val
* varonce38
;
3101 val
* var39
/* : String */;
3102 char* var40
/* : NativeString */;
3103 long var41
/* : Int */;
3104 val
* var42
/* : String */;
3105 val
* var43
/* : Array[Object] */;
3106 long var44
/* : Int */;
3107 val
* var45
/* : NativeArray[Object] */;
3108 val
* var46
/* : String */;
3109 val
* var47
/* : RuntimeVariable */;
3110 static val
* varonce48
;
3111 val
* var49
/* : String */;
3112 char* var50
/* : NativeString */;
3113 long var51
/* : Int */;
3114 val
* var52
/* : String */;
3115 short int var53
/* : Bool */;
3116 static val
* varonce54
;
3117 val
* var55
/* : String */;
3118 char* var56
/* : NativeString */;
3119 long var57
/* : Int */;
3120 val
* var58
/* : String */;
3121 long var59
/* : Int */;
3122 val
* var60
/* : nullable Object */;
3123 static val
* varonce61
;
3124 val
* var62
/* : String */;
3125 char* var63
/* : NativeString */;
3126 long var64
/* : Int */;
3127 val
* var65
/* : String */;
3128 long var66
/* : Int */;
3129 val
* var67
/* : nullable Object */;
3130 static val
* varonce68
;
3131 val
* var69
/* : String */;
3132 char* var70
/* : NativeString */;
3133 long var71
/* : Int */;
3134 val
* var72
/* : String */;
3135 val
* var73
/* : Array[Object] */;
3136 long var74
/* : Int */;
3137 val
* var75
/* : NativeArray[Object] */;
3138 val
* var76
/* : String */;
3139 static val
* varonce77
;
3140 val
* var78
/* : String */;
3141 char* var79
/* : NativeString */;
3142 long var80
/* : Int */;
3143 val
* var81
/* : String */;
3144 short int var82
/* : Bool */;
3145 val
* var83
/* : Array[Object] */;
3146 long var84
/* : Int */;
3147 val
* var_85
/* var : Array[Object] */;
3148 static val
* varonce86
;
3149 val
* var87
/* : String */;
3150 char* var88
/* : NativeString */;
3151 long var89
/* : Int */;
3152 val
* var90
/* : String */;
3153 long var91
/* : Int */;
3154 val
* var92
/* : nullable Object */;
3155 val
* var93
/* : MType */;
3156 val
* var94
/* : String */;
3157 static val
* varonce95
;
3158 val
* var96
/* : String */;
3159 char* var97
/* : NativeString */;
3160 long var98
/* : Int */;
3161 val
* var99
/* : String */;
3162 long var100
/* : Int */;
3163 val
* var101
/* : nullable Object */;
3164 static val
* varonce102
;
3165 val
* var103
/* : String */;
3166 char* var104
/* : NativeString */;
3167 long var105
/* : Int */;
3168 val
* var106
/* : String */;
3169 val
* var107
/* : String */;
3170 val
* var_recv1
/* var recv1: String */;
3171 static val
* varonce108
;
3172 val
* var109
/* : String */;
3173 char* var110
/* : NativeString */;
3174 long var111
/* : Int */;
3175 val
* var112
/* : String */;
3176 static val
* varonce113
;
3177 val
* var114
/* : String */;
3178 char* var115
/* : NativeString */;
3179 long var116
/* : Int */;
3180 val
* var117
/* : String */;
3181 static val
* varonce118
;
3182 val
* var119
/* : String */;
3183 char* var120
/* : NativeString */;
3184 long var121
/* : Int */;
3185 val
* var122
/* : String */;
3186 long var123
/* : Int */;
3187 val
* var124
/* : nullable Object */;
3188 static val
* varonce125
;
3189 val
* var126
/* : String */;
3190 char* var127
/* : NativeString */;
3191 long var128
/* : Int */;
3192 val
* var129
/* : String */;
3193 val
* var130
/* : String */;
3194 static val
* varonce131
;
3195 val
* var132
/* : String */;
3196 char* var133
/* : NativeString */;
3197 long var134
/* : Int */;
3198 val
* var135
/* : String */;
3199 val
* var136
/* : Array[Object] */;
3200 long var137
/* : Int */;
3201 val
* var138
/* : NativeArray[Object] */;
3202 val
* var139
/* : String */;
3206 var
= ((val
* (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_arguments
) /* first on <var_arguments:Array[RuntimeVariable]>*/;
3207 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var
) /* mtype on <var:nullable Object(RuntimeVariable)>*/;
3209 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
3211 ((void (*)(val
*, long))(var2
->class->vft
[COLOR_array__Array__with_capacity
]))(var2
, var3
) /* with_capacity on <var2:Array[Object]>*/;
3218 var7
= string__NativeString__to_s_with_length(var5
, var6
);
3222 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var4
) /* add on <var_:Array[Object]>*/;
3224 var9
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var8
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3225 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var9
) /* mcasttype on <var9:nullable Object(RuntimeVariable)>*/;
3226 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var10
) /* c_name on <var10:MType>*/;
3227 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var11
) /* add on <var_:Array[Object]>*/;
3233 var16
= string__NativeString__to_s_with_length(var14
, var15
);
3237 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var13
) /* add on <var_:Array[Object]>*/;
3239 var18
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var17
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3240 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var18
) /* add on <var_:Array[Object]>*/;
3244 var21
= ")->values";
3246 var23
= string__NativeString__to_s_with_length(var21
, var22
);
3250 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var20
) /* add on <var_:Array[Object]>*/;
3251 var24
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
3258 var29
= string__NativeString__to_s_with_length(var27
, var28
);
3262 var30
= ((short int (*)(val
*, val
*))(var_pname
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pname
, var26
) /* == on <var_pname:String>*/;
3269 var35
= string__NativeString__to_s_with_length(var33
, var34
);
3274 var37
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var36
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3280 var42
= string__NativeString__to_s_with_length(var40
, var41
);
3284 var43
= NEW_array__Array(&type_array__Arraykernel__Object
);
3285 { /* var43 = array_instance Array[Object] */
3287 var45
= NEW_array__NativeArray(var44
, &type_array__NativeArraykernel__Object
);
3288 ((struct instance_array__NativeArray
*)var45
)->values
[0] = (val
*) var_recv
;
3289 ((struct instance_array__NativeArray
*)var45
)->values
[1] = (val
*) var32
;
3290 ((struct instance_array__NativeArray
*)var45
)->values
[2] = (val
*) var37
;
3291 ((struct instance_array__NativeArray
*)var45
)->values
[3] = (val
*) var39
;
3292 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[Object]>*/;
3294 var46
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_string__Object__to_s
]))(var43
) /* to_s on <var43:Array[Object]>*/;
3295 if (var_ret_type
== NULL
) {
3296 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3297 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 310);
3300 var47
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var46
, var_ret_type
) /* new_expr on <self:GlobalCompilerVisitor>*/;
3301 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__ret
]))(self
, var47
) /* ret on <self:GlobalCompilerVisitor>*/;
3309 var52
= string__NativeString__to_s_with_length(var50
, var51
);
3313 var53
= ((short int (*)(val
*, val
*))(var_pname
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pname
, var49
) /* == on <var_pname:String>*/;
3320 var58
= string__NativeString__to_s_with_length(var56
, var57
);
3325 var60
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var59
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3331 var65
= string__NativeString__to_s_with_length(var63
, var64
);
3336 var67
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var66
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3342 var72
= string__NativeString__to_s_with_length(var70
, var71
);
3346 var73
= NEW_array__Array(&type_array__Arraykernel__Object
);
3347 { /* var73 = array_instance Array[Object] */
3349 var75
= NEW_array__NativeArray(var74
, &type_array__NativeArraykernel__Object
);
3350 ((struct instance_array__NativeArray
*)var75
)->values
[0] = (val
*) var_recv
;
3351 ((struct instance_array__NativeArray
*)var75
)->values
[1] = (val
*) var55
;
3352 ((struct instance_array__NativeArray
*)var75
)->values
[2] = (val
*) var60
;
3353 ((struct instance_array__NativeArray
*)var75
)->values
[3] = (val
*) var62
;
3354 ((struct instance_array__NativeArray
*)var75
)->values
[4] = (val
*) var67
;
3355 ((struct instance_array__NativeArray
*)var75
)->values
[5] = (val
*) var69
;
3356 ((void (*)(val
*, val
*, long))(var73
->class->vft
[COLOR_array__Array__with_native
]))(var73
, var75
, var74
) /* with_native on <var73:Array[Object]>*/;
3358 var76
= ((val
* (*)(val
*))(var73
->class->vft
[COLOR_string__Object__to_s
]))(var73
) /* to_s on <var73:Array[Object]>*/;
3359 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var76
) /* add on <self:GlobalCompilerVisitor>*/;
3367 var81
= string__NativeString__to_s_with_length(var79
, var80
);
3371 var82
= ((short int (*)(val
*, val
*))(var_pname
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pname
, var78
) /* == on <var_pname:String>*/;
3373 var83
= NEW_array__Array(&type_array__Arraykernel__Object
);
3375 ((void (*)(val
*, long))(var83
->class->vft
[COLOR_array__Array__with_capacity
]))(var83
, var84
) /* with_capacity on <var83:Array[Object]>*/;
3380 var88
= "((struct ";
3382 var90
= string__NativeString__to_s_with_length(var88
, var89
);
3386 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var87
) /* add on <var_85:Array[Object]>*/;
3388 var92
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var91
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3389 var93
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var92
) /* mcasttype on <var92:nullable Object(RuntimeVariable)>*/;
3390 var94
= ((val
* (*)(val
*))(var93
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var93
) /* c_name on <var93:MType>*/;
3391 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var94
) /* add on <var_85:Array[Object]>*/;
3397 var99
= string__NativeString__to_s_with_length(var97
, var98
);
3401 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var96
) /* add on <var_85:Array[Object]>*/;
3403 var101
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var100
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3404 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var101
) /* add on <var_85:Array[Object]>*/;
3406 var103
= varonce102
;
3408 var104
= ")->values";
3410 var106
= string__NativeString__to_s_with_length(var104
, var105
);
3412 varonce102
= var103
;
3414 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var103
) /* add on <var_85:Array[Object]>*/;
3415 var107
= ((val
* (*)(val
*))(var_85
->class->vft
[COLOR_string__Object__to_s
]))(var_85
) /* to_s on <var_85:Array[Object]>*/;
3418 var109
= varonce108
;
3422 var112
= string__NativeString__to_s_with_length(var110
, var111
);
3424 varonce108
= var109
;
3427 var114
= varonce113
;
3431 var117
= string__NativeString__to_s_with_length(var115
, var116
);
3433 varonce113
= var114
;
3436 var119
= varonce118
;
3440 var122
= string__NativeString__to_s_with_length(var120
, var121
);
3442 varonce118
= var119
;
3445 var124
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var123
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3447 var126
= varonce125
;
3449 var127
= "*sizeof(";
3451 var129
= string__NativeString__to_s_with_length(var127
, var128
);
3453 varonce125
= var126
;
3455 var130
= ((val
* (*)(val
*))(var_elttype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_elttype
) /* ctype on <var_elttype:MType>*/;
3457 var132
= varonce131
;
3461 var135
= string__NativeString__to_s_with_length(var133
, var134
);
3463 varonce131
= var132
;
3465 var136
= NEW_array__Array(&type_array__Arraykernel__Object
);
3466 { /* var136 = array_instance Array[Object] */
3468 var138
= NEW_array__NativeArray(var137
, &type_array__NativeArraykernel__Object
);
3469 ((struct instance_array__NativeArray
*)var138
)->values
[0] = (val
*) var109
;
3470 ((struct instance_array__NativeArray
*)var138
)->values
[1] = (val
*) var_recv1
;
3471 ((struct instance_array__NativeArray
*)var138
)->values
[2] = (val
*) var114
;
3472 ((struct instance_array__NativeArray
*)var138
)->values
[3] = (val
*) var_recv
;
3473 ((struct instance_array__NativeArray
*)var138
)->values
[4] = (val
*) var119
;
3474 ((struct instance_array__NativeArray
*)var138
)->values
[5] = (val
*) var124
;
3475 ((struct instance_array__NativeArray
*)var138
)->values
[6] = (val
*) var126
;
3476 ((struct instance_array__NativeArray
*)var138
)->values
[7] = (val
*) var130
;
3477 ((struct instance_array__NativeArray
*)var138
)->values
[8] = (val
*) var132
;
3478 ((void (*)(val
*, val
*, long))(var136
->class->vft
[COLOR_array__Array__with_native
]))(var136
, var138
, var137
) /* with_native on <var136:Array[Object]>*/;
3480 var139
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_string__Object__to_s
]))(var136
) /* to_s on <var136:Array[Object]>*/;
3481 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var139
) /* add on <self:GlobalCompilerVisitor>*/;
3489 /* method global_compiler#GlobalCompilerVisitor#native_array_def for (self: Object, String, nullable MType, Array[RuntimeVariable]) */
3490 void VIRTUAL_global_compiler__GlobalCompilerVisitor__native_array_def(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3491 global_compiler__GlobalCompilerVisitor__native_array_def(self
, p0
, p1
, p2
);
3494 /* method global_compiler#GlobalCompilerVisitor#calloc_array for (self: GlobalCompilerVisitor, MType, Array[RuntimeVariable]) */
3495 void global_compiler__GlobalCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
3496 val
* var_ret_type
/* var ret_type: MType */;
3497 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
3498 static val
* varonce
;
3499 val
* var
/* : String */;
3500 char* var1
/* : NativeString */;
3501 long var2
/* : Int */;
3502 val
* var3
/* : String */;
3503 val
* var4
/* : String */;
3504 static val
* varonce5
;
3505 val
* var6
/* : String */;
3506 char* var7
/* : NativeString */;
3507 long var8
/* : Int */;
3508 val
* var9
/* : String */;
3509 long var10
/* : Int */;
3510 val
* var11
/* : nullable Object */;
3511 static val
* varonce12
;
3512 val
* var13
/* : String */;
3513 char* var14
/* : NativeString */;
3514 long var15
/* : Int */;
3515 val
* var16
/* : String */;
3516 val
* var17
/* : Array[Object] */;
3517 long var18
/* : Int */;
3518 val
* var19
/* : NativeArray[Object] */;
3519 val
* var20
/* : String */;
3520 val
* var21
/* : RuntimeVariable */;
3528 var3
= string__NativeString__to_s_with_length(var1
, var2
);
3532 var4
= ((val
* (*)(val
*))(var_ret_type
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_ret_type
) /* c_name on <var_ret_type:MType>*/;
3538 var9
= string__NativeString__to_s_with_length(var7
, var8
);
3543 var11
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var10
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3549 var16
= string__NativeString__to_s_with_length(var14
, var15
);
3553 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
3554 { /* var17 = array_instance Array[Object] */
3556 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
3557 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var
;
3558 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var4
;
3559 ((struct instance_array__NativeArray
*)var19
)->values
[2] = (val
*) var6
;
3560 ((struct instance_array__NativeArray
*)var19
)->values
[3] = (val
*) var11
;
3561 ((struct instance_array__NativeArray
*)var19
)->values
[4] = (val
*) var13
;
3562 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
3564 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
3565 var21
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var20
, var_ret_type
) /* new_expr on <self:GlobalCompilerVisitor>*/;
3566 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__ret
]))(self
, var21
) /* ret on <self:GlobalCompilerVisitor>*/;
3569 /* method global_compiler#GlobalCompilerVisitor#calloc_array for (self: Object, MType, Array[RuntimeVariable]) */
3570 void VIRTUAL_global_compiler__GlobalCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
3571 global_compiler__GlobalCompilerVisitor__calloc_array(self
, p0
, p1
);
3574 /* method global_compiler#GlobalCompilerVisitor#send for (self: GlobalCompilerVisitor, MMethod, Array[RuntimeVariable]): nullable RuntimeVariable */
3575 val
* global_compiler__GlobalCompilerVisitor__send(val
* self
, val
* p0
, val
* p1
) {
3576 val
* var
/* : nullable RuntimeVariable */;
3577 val
* var_m
/* var m: MMethod */;
3578 val
* var_args
/* var args: Array[RuntimeVariable] */;
3579 val
* var1
/* : nullable Object */;
3580 val
* var2
/* : Array[MClassType] */;
3581 val
* var_types
/* var types: Array[MClassType] */;
3582 val
* var3
/* : MPropDef */;
3583 val
* var4
/* : nullable MSignature */;
3584 val
* var5
/* : nullable MType */;
3585 val
* var_ret
/* var ret: nullable MType */;
3586 short int var6
/* : Bool */;
3587 val
* var7
/* : nullable Object */;
3588 val
* var8
/* : MType */;
3589 val
* var9
/* : RuntimeVariable */;
3590 val
* var_res
/* var res: nullable RuntimeVariable */;
3591 val
* var10
/* : null */;
3592 short int var11
/* : Bool */;
3593 val
* var12
/* : null */;
3594 val
* var13
/* : nullable Object */;
3595 val
* var14
/* : MType */;
3596 val
* var15
/* : RuntimeVariable */;
3597 static val
* varonce
;
3598 val
* var16
/* : String */;
3599 char* var17
/* : NativeString */;
3600 long var18
/* : Int */;
3601 val
* var19
/* : String */;
3602 static val
* varonce20
;
3603 val
* var21
/* : String */;
3604 char* var22
/* : NativeString */;
3605 long var23
/* : Int */;
3606 val
* var24
/* : String */;
3607 val
* var25
/* : nullable Object */;
3608 val
* var26
/* : String */;
3609 static val
* varonce27
;
3610 val
* var28
/* : String */;
3611 char* var29
/* : NativeString */;
3612 long var30
/* : Int */;
3613 val
* var31
/* : String */;
3614 val
* var32
/* : Array[Object] */;
3615 long var33
/* : Int */;
3616 val
* var34
/* : NativeArray[Object] */;
3617 val
* var35
/* : String */;
3618 val
* var36
/* : nullable Object */;
3619 val
* var37
/* : MType */;
3620 val
* var38
/* : String */;
3621 static val
* varonce39
;
3622 val
* var40
/* : String */;
3623 char* var41
/* : NativeString */;
3624 long var42
/* : Int */;
3625 val
* var43
/* : String */;
3626 short int var44
/* : Bool */;
3627 val
* var45
/* : nullable Object */;
3628 val
* var46
/* : MType */;
3629 short int var47
/* : Bool */;
3632 const char* var_class_name
;
3633 val
* var_mclasstype
/* var mclasstype: MClassType */;
3634 val
* var48
/* : AbstractCompiler */;
3635 val
* var49
/* : RapidTypeAnalysis */;
3636 val
* var50
/* : HashSet[MClassType] */;
3637 short int var51
/* : Bool */;
3638 short int var52
/* : Bool */;
3639 static val
* varonce53
;
3640 val
* var54
/* : String */;
3641 char* var55
/* : NativeString */;
3642 long var56
/* : Int */;
3643 val
* var57
/* : String */;
3644 static val
* varonce58
;
3645 val
* var59
/* : String */;
3646 char* var60
/* : NativeString */;
3647 long var61
/* : Int */;
3648 val
* var62
/* : String */;
3649 val
* var63
/* : Array[Object] */;
3650 long var64
/* : Int */;
3651 val
* var65
/* : NativeArray[Object] */;
3652 val
* var66
/* : String */;
3653 val
* var67
/* : AbstractCompiler */;
3654 val
* var68
/* : MModule */;
3655 val
* var69
/* : MPropDef */;
3656 val
* var_propdef
/* var propdef: MMethodDef */;
3657 val
* var70
/* : nullable RuntimeVariable */;
3658 val
* var_res2
/* var res2: nullable RuntimeVariable */;
3659 val
* var71
/* : null */;
3660 short int var72
/* : Bool */;
3661 short int var73
/* : Bool */;
3662 short int var74
/* : Bool */;
3663 val
* var75
/* : AbstractCompiler */;
3664 val
* var76
/* : ModelBuilder */;
3665 val
* var77
/* : ToolContext */;
3666 val
* var78
/* : OptionBool */;
3667 val
* var79
/* : nullable Object */;
3668 short int var80
/* : Bool */;
3669 short int var81
/* : Bool */;
3670 short int var_
/* var : Bool */;
3671 val
* var82
/* : String */;
3672 static val
* varonce83
;
3673 val
* var84
/* : String */;
3674 char* var85
/* : NativeString */;
3675 long var86
/* : Int */;
3676 val
* var87
/* : String */;
3677 short int var88
/* : Bool */;
3678 short int var_89
/* var : Bool */;
3679 val
* var90
/* : String */;
3680 static val
* varonce91
;
3681 val
* var92
/* : String */;
3682 char* var93
/* : NativeString */;
3683 long var94
/* : Int */;
3684 val
* var95
/* : String */;
3685 short int var96
/* : Bool */;
3686 short int var_consider_null
/* var consider_null: Bool */;
3687 short int var97
/* : Bool */;
3688 short int var98
/* : Bool */;
3689 val
* var99
/* : nullable Object */;
3690 val
* var100
/* : MType */;
3691 short int var101
/* : Bool */;
3694 short int var_104
/* var : Bool */;
3695 val
* var105
/* : nullable Object */;
3696 val
* var106
/* : MType */;
3697 short int var107
/* : Bool */;
3700 short int var_110
/* var : Bool */;
3701 static val
* varonce111
;
3702 val
* var112
/* : String */;
3703 char* var113
/* : NativeString */;
3704 long var114
/* : Int */;
3705 val
* var115
/* : String */;
3706 val
* var116
/* : nullable Object */;
3707 static val
* varonce117
;
3708 val
* var118
/* : String */;
3709 char* var119
/* : NativeString */;
3710 long var120
/* : Int */;
3711 val
* var121
/* : String */;
3712 val
* var122
/* : Array[Object] */;
3713 long var123
/* : Int */;
3714 val
* var124
/* : NativeArray[Object] */;
3715 val
* var125
/* : String */;
3716 val
* var126
/* : String */;
3717 static val
* varonce127
;
3718 val
* var128
/* : String */;
3719 char* var129
/* : NativeString */;
3720 long var130
/* : Int */;
3721 val
* var131
/* : String */;
3722 short int var132
/* : Bool */;
3723 val
* var133
/* : null */;
3724 short int var134
/* : Bool */;
3725 long var135
/* : Int */;
3726 val
* var136
/* : nullable Object */;
3727 val
* var137
/* : MType */;
3728 short int var138
/* : Bool */;
3731 static val
* varonce141
;
3732 val
* var142
/* : String */;
3733 char* var143
/* : NativeString */;
3734 long var144
/* : Int */;
3735 val
* var145
/* : String */;
3736 long var146
/* : Int */;
3737 val
* var147
/* : nullable Object */;
3738 static val
* varonce148
;
3739 val
* var149
/* : String */;
3740 char* var150
/* : NativeString */;
3741 long var151
/* : Int */;
3742 val
* var152
/* : String */;
3743 val
* var153
/* : Array[Object] */;
3744 long var154
/* : Int */;
3745 val
* var155
/* : NativeArray[Object] */;
3746 val
* var156
/* : String */;
3747 long var157
/* : Int */;
3748 val
* var158
/* : nullable Object */;
3749 val
* var159
/* : MType */;
3750 short int var160
/* : Bool */;
3753 static val
* varonce163
;
3754 val
* var164
/* : String */;
3755 char* var165
/* : NativeString */;
3756 long var166
/* : Int */;
3757 val
* var167
/* : String */;
3758 val
* var168
/* : Array[Object] */;
3759 long var169
/* : Int */;
3760 val
* var170
/* : NativeArray[Object] */;
3761 val
* var171
/* : String */;
3762 static val
* varonce172
;
3763 val
* var173
/* : String */;
3764 char* var174
/* : NativeString */;
3765 long var175
/* : Int */;
3766 val
* var176
/* : String */;
3767 long var177
/* : Int */;
3768 val
* var178
/* : nullable Object */;
3769 val
* var179
/* : String */;
3770 static val
* varonce180
;
3771 val
* var181
/* : String */;
3772 char* var182
/* : NativeString */;
3773 long var183
/* : Int */;
3774 val
* var184
/* : String */;
3775 val
* var185
/* : Array[Object] */;
3776 long var186
/* : Int */;
3777 val
* var187
/* : NativeArray[Object] */;
3778 val
* var188
/* : String */;
3779 val
* var189
/* : String */;
3780 static val
* varonce190
;
3781 val
* var191
/* : String */;
3782 char* var192
/* : NativeString */;
3783 long var193
/* : Int */;
3784 val
* var194
/* : String */;
3785 short int var195
/* : Bool */;
3786 val
* var196
/* : null */;
3787 short int var197
/* : Bool */;
3788 long var198
/* : Int */;
3789 val
* var199
/* : nullable Object */;
3790 val
* var200
/* : MType */;
3791 short int var201
/* : Bool */;
3794 static val
* varonce204
;
3795 val
* var205
/* : String */;
3796 char* var206
/* : NativeString */;
3797 long var207
/* : Int */;
3798 val
* var208
/* : String */;
3799 long var209
/* : Int */;
3800 val
* var210
/* : nullable Object */;
3801 static val
* varonce211
;
3802 val
* var212
/* : String */;
3803 char* var213
/* : NativeString */;
3804 long var214
/* : Int */;
3805 val
* var215
/* : String */;
3806 val
* var216
/* : Array[Object] */;
3807 long var217
/* : Int */;
3808 val
* var218
/* : NativeArray[Object] */;
3809 val
* var219
/* : String */;
3810 long var220
/* : Int */;
3811 val
* var221
/* : nullable Object */;
3812 val
* var222
/* : MType */;
3813 short int var223
/* : Bool */;
3816 static val
* varonce226
;
3817 val
* var227
/* : String */;
3818 char* var228
/* : NativeString */;
3819 long var229
/* : Int */;
3820 val
* var230
/* : String */;
3821 val
* var231
/* : Array[Object] */;
3822 long var232
/* : Int */;
3823 val
* var233
/* : NativeArray[Object] */;
3824 val
* var234
/* : String */;
3825 static val
* varonce235
;
3826 val
* var236
/* : String */;
3827 char* var237
/* : NativeString */;
3828 long var238
/* : Int */;
3829 val
* var239
/* : String */;
3830 long var240
/* : Int */;
3831 val
* var241
/* : nullable Object */;
3832 val
* var242
/* : String */;
3833 static val
* varonce243
;
3834 val
* var244
/* : String */;
3835 char* var245
/* : NativeString */;
3836 long var246
/* : Int */;
3837 val
* var247
/* : String */;
3838 val
* var248
/* : Array[Object] */;
3839 long var249
/* : Int */;
3840 val
* var250
/* : NativeArray[Object] */;
3841 val
* var251
/* : String */;
3842 static val
* varonce252
;
3843 val
* var253
/* : String */;
3844 char* var254
/* : NativeString */;
3845 long var255
/* : Int */;
3846 val
* var256
/* : String */;
3847 static val
* varonce257
;
3848 val
* var258
/* : String */;
3849 char* var259
/* : NativeString */;
3850 long var260
/* : Int */;
3851 val
* var261
/* : String */;
3852 short int var262
/* : Bool */;
3853 static val
* varonce263
;
3854 val
* var264
/* : String */;
3855 char* var265
/* : NativeString */;
3856 long var266
/* : Int */;
3857 val
* var267
/* : String */;
3858 static val
* varonce268
;
3859 val
* var269
/* : String */;
3860 char* var270
/* : NativeString */;
3861 long var271
/* : Int */;
3862 val
* var272
/* : String */;
3863 val
* var273
/* : nullable Object */;
3864 val
* var274
/* : String */;
3865 static val
* varonce275
;
3866 val
* var276
/* : String */;
3867 char* var277
/* : NativeString */;
3868 long var278
/* : Int */;
3869 val
* var279
/* : String */;
3870 static val
* varonce280
;
3871 val
* var281
/* : String */;
3872 char* var282
/* : NativeString */;
3873 long var283
/* : Int */;
3874 val
* var284
/* : String */;
3875 val
* var285
/* : Array[Object] */;
3876 long var286
/* : Int */;
3877 val
* var287
/* : NativeArray[Object] */;
3878 val
* var288
/* : String */;
3879 val
* var289
/* : nullable Object */;
3880 static val
* varonce290
;
3881 val
* var291
/* : String */;
3882 char* var292
/* : NativeString */;
3883 long var293
/* : Int */;
3884 val
* var294
/* : String */;
3885 static val
* varonce295
;
3886 val
* var296
/* : String */;
3887 char* var297
/* : NativeString */;
3888 long var298
/* : Int */;
3889 val
* var299
/* : String */;
3890 val
* var300
/* : nullable Object */;
3891 static val
* varonce301
;
3892 val
* var302
/* : String */;
3893 char* var303
/* : NativeString */;
3894 long var304
/* : Int */;
3895 val
* var305
/* : String */;
3896 val
* var306
/* : Array[Object] */;
3897 long var307
/* : Int */;
3898 val
* var308
/* : NativeArray[Object] */;
3899 val
* var309
/* : String */;
3900 val
* var310
/* : nullable Object */;
3901 val
* var_last
/* var last: MClassType */;
3902 val
* var311
/* : null */;
3903 val
* var_defaultpropdef
/* var defaultpropdef: nullable MMethodDef */;
3904 val
* var312
/* : Iterator[nullable Object] */;
3905 short int var313
/* : Bool */;
3906 val
* var314
/* : nullable Object */;
3907 val
* var_t
/* var t: MClassType */;
3908 val
* var315
/* : AbstractCompiler */;
3909 val
* var316
/* : MModule */;
3910 val
* var317
/* : MPropDef */;
3911 val
* var_propdef318
/* var propdef: MMethodDef */;
3912 short int var319
/* : Bool */;
3913 val
* var320
/* : MClassDef */;
3914 val
* var321
/* : MClass */;
3915 val
* var322
/* : String */;
3916 static val
* varonce323
;
3917 val
* var324
/* : String */;
3918 char* var325
/* : NativeString */;
3919 long var326
/* : Int */;
3920 val
* var327
/* : String */;
3921 short int var328
/* : Bool */;
3922 short int var_329
/* var : Bool */;
3923 val
* var330
/* : String */;
3924 static val
* varonce331
;
3925 val
* var332
/* : String */;
3926 char* var333
/* : NativeString */;
3927 long var334
/* : Int */;
3928 val
* var335
/* : String */;
3929 short int var336
/* : Bool */;
3930 short int var337
/* : Bool */;
3931 short int var338
/* : Bool */;
3932 val
* var339
/* : AbstractCompiler */;
3933 short int var340
/* : Bool */;
3934 short int var341
/* : Bool */;
3935 short int var_342
/* var : Bool */;
3936 short int var343
/* : Bool */;
3937 short int var_344
/* var : Bool */;
3938 val
* var345
/* : null */;
3939 short int var346
/* : Bool */;
3940 static val
* varonce347
;
3941 val
* var348
/* : String */;
3942 char* var349
/* : NativeString */;
3943 long var350
/* : Int */;
3944 val
* var351
/* : String */;
3945 static val
* varonce352
;
3946 val
* var353
/* : String */;
3947 char* var354
/* : NativeString */;
3948 long var355
/* : Int */;
3949 val
* var356
/* : String */;
3950 val
* var357
/* : Array[Object] */;
3951 long var358
/* : Int */;
3952 val
* var359
/* : NativeArray[Object] */;
3953 val
* var360
/* : String */;
3954 static val
* varonce361
;
3955 val
* var362
/* : String */;
3956 char* var363
/* : NativeString */;
3957 long var364
/* : Int */;
3958 val
* var365
/* : String */;
3959 val
* var366
/* : AbstractCompiler */;
3960 val
* var367
/* : String */;
3961 static val
* varonce368
;
3962 val
* var369
/* : String */;
3963 char* var370
/* : NativeString */;
3964 long var371
/* : Int */;
3965 val
* var372
/* : String */;
3966 static val
* varonce373
;
3967 val
* var374
/* : String */;
3968 char* var375
/* : NativeString */;
3969 long var376
/* : Int */;
3970 val
* var377
/* : String */;
3971 val
* var378
/* : Array[Object] */;
3972 long var379
/* : Int */;
3973 val
* var380
/* : NativeArray[Object] */;
3974 val
* var381
/* : String */;
3975 val
* var382
/* : nullable RuntimeVariable */;
3976 val
* var_res2383
/* var res2: nullable RuntimeVariable */;
3977 val
* var384
/* : null */;
3978 short int var385
/* : Bool */;
3979 static val
* varonce386
;
3980 val
* var387
/* : String */;
3981 char* var388
/* : NativeString */;
3982 long var389
/* : Int */;
3983 val
* var390
/* : String */;
3984 val
* var391
/* : null */;
3985 short int var392
/* : Bool */;
3986 static val
* varonce393
;
3987 val
* var394
/* : String */;
3988 char* var395
/* : NativeString */;
3989 long var396
/* : Int */;
3990 val
* var397
/* : String */;
3991 val
* var398
/* : MClassDef */;
3992 val
* var399
/* : MClassType */;
3993 val
* var400
/* : nullable RuntimeVariable */;
3994 val
* var_res2401
/* var res2: nullable RuntimeVariable */;
3995 val
* var402
/* : null */;
3996 short int var403
/* : Bool */;
3997 val
* var404
/* : AbstractCompiler */;
3998 short int var405
/* : Bool */;
3999 static val
* varonce406
;
4000 val
* var407
/* : String */;
4001 char* var408
/* : NativeString */;
4002 long var409
/* : Int */;
4003 val
* var410
/* : String */;
4004 val
* var411
/* : nullable Object */;
4005 static val
* varonce412
;
4006 val
* var413
/* : String */;
4007 char* var414
/* : NativeString */;
4008 long var415
/* : Int */;
4009 val
* var416
/* : String */;
4012 var1
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4013 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var1
) /* collect_types on <self:GlobalCompilerVisitor>*/;
4015 var3
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__intro
]))(var_m
) /* intro on <var_m:MMethod>*/;
4016 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var3
) /* msignature on <var3:MPropDef(MMethodDef)>*/;
4018 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4019 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 332);
4022 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var4
) /* return_mtype on <var4:nullable MSignature>*/;
4025 var6
= ((short int (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethod__is_new
]))(var_m
) /* is_new on <var_m:MMethod>*/;
4027 var7
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4028 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var7
) /* mtype on <var7:nullable Object(RuntimeVariable)>*/;
4030 var9
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
4034 if (var_ret
== NULL
) {
4035 var11
= 1; /* is null */
4037 var11
= 0; /* arg is null but recv is not */
4043 var13
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4044 var14
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ret
, var13
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
4046 var15
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
4055 var19
= string__NativeString__to_s_with_length(var17
, var18
);
4064 var24
= string__NativeString__to_s_with_length(var22
, var23
);
4068 var25
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4069 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_string__Object__inspect
]))(var25
) /* inspect on <var25:nullable Object(RuntimeVariable)>*/;
4075 var31
= string__NativeString__to_s_with_length(var29
, var30
);
4079 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
4080 { /* var32 = array_instance Array[Object] */
4082 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
4083 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var16
;
4084 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_m
;
4085 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var21
;
4086 ((struct instance_array__NativeArray
*)var34
)->values
[3] = (val
*) var26
;
4087 ((struct instance_array__NativeArray
*)var34
)->values
[4] = (val
*) var28
;
4088 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
4090 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
4091 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var35
) /* add on <self:GlobalCompilerVisitor>*/;
4092 var36
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4093 var37
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var36
) /* mtype on <var36:nullable Object(RuntimeVariable)>*/;
4094 var38
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var37
) /* ctype on <var37:MType>*/;
4100 var43
= string__NativeString__to_s_with_length(var41
, var42
);
4104 var44
= ((short int (*)(val
*, val
*))(var38
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var38
, var40
) /* != on <var38:String>*/;
4106 var45
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4107 var46
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var45
) /* mtype on <var45:nullable Object(RuntimeVariable)>*/;
4108 /* <var46:MType> isa MClassType */
4109 cltype
= type_model__MClassType
.color
;
4110 idtype
= type_model__MClassType
.id
;
4111 if(cltype
>= var46
->type
->table_size
) {
4114 var47
= var46
->type
->type_table
[cltype
] == idtype
;
4117 var_class_name
= var46
== NULL ?
"null" : var46
->type
->name
;
4118 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
4119 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 345);
4122 var_mclasstype
= var46
;
4123 var48
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4124 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var48
) /* runtime_type_analysis on <var48:AbstractCompiler(GlobalCompiler)>*/;
4125 var50
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var49
) /* live_types on <var49:RapidTypeAnalysis>*/;
4126 var51
= ((short int (*)(val
*, val
*))(var50
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var50
, var_mclasstype
) /* has on <var50:HashSet[MClassType]>*/;
4132 var55
= "/* skip, no method ";
4134 var57
= string__NativeString__to_s_with_length(var55
, var56
);
4143 var62
= string__NativeString__to_s_with_length(var60
, var61
);
4147 var63
= NEW_array__Array(&type_array__Arraykernel__Object
);
4148 { /* var63 = array_instance Array[Object] */
4150 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArraykernel__Object
);
4151 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var54
;
4152 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var_m
;
4153 ((struct instance_array__NativeArray
*)var65
)->values
[2] = (val
*) var59
;
4154 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Object]>*/;
4156 var66
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_string__Object__to_s
]))(var63
) /* to_s on <var63:Array[Object]>*/;
4157 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var66
) /* add on <self:GlobalCompilerVisitor>*/;
4162 var67
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4163 var68
= ((val
* (*)(val
*))(var67
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var67
) /* mainmodule on <var67:AbstractCompiler(GlobalCompiler)>*/;
4164 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>*/;
4165 var_propdef
= var69
;
4166 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>*/;
4169 if (var_res
== NULL
) {
4170 var72
= 0; /* is null */
4172 var72
= 1; /* arg is null and recv is not */
4175 if (var_res2
== NULL
) {
4176 fprintf(stderr
, "Runtime error: %s", "Cast failed");
4177 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 352);
4180 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2
) /* assign on <self:GlobalCompilerVisitor>*/;
4187 var75
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4188 var76
= ((val
* (*)(val
*))(var75
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var75
) /* modelbuilder on <var75:AbstractCompiler(GlobalCompiler)>*/;
4189 var77
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var76
) /* toolcontext on <var76:ModelBuilder>*/;
4190 var78
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_no_check_other
]))(var77
) /* opt_no_check_other on <var77:ToolContext>*/;
4191 var79
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_opts__Option__value
]))(var78
) /* value on <var78:OptionBool>*/;
4192 var80
= ((struct instance_kernel__Bool
*)var79
)->value
; /* autounbox from nullable Object to Bool */;
4198 var82
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4204 var87
= string__NativeString__to_s_with_length(var85
, var86
);
4208 var88
= ((short int (*)(val
*, val
*))(var82
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var82
, var84
) /* == on <var82:String>*/;
4215 var90
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4221 var95
= string__NativeString__to_s_with_length(var93
, var94
);
4225 var96
= ((short int (*)(val
*, val
*))(var90
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var90
, var92
) /* == on <var90:String>*/;
4228 var_consider_null
= var73
;
4229 var99
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4230 var100
= ((val
* (*)(val
*))(var99
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var99
) /* mcasttype on <var99:nullable Object(RuntimeVariable)>*/;
4231 /* <var100:MType> isa MNullableType */
4232 cltype102
= type_model__MNullableType
.color
;
4233 idtype103
= type_model__MNullableType
.id
;
4234 if(cltype102
>= var100
->type
->table_size
) {
4237 var101
= var100
->type
->type_table
[cltype102
] == idtype103
;
4243 var105
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4244 var106
= ((val
* (*)(val
*))(var105
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var105
) /* mcasttype on <var105:nullable Object(RuntimeVariable)>*/;
4245 /* <var106:MType> isa MNullType */
4246 cltype108
= type_model__MNullType
.color
;
4247 idtype109
= type_model__MNullType
.id
;
4248 if(cltype108
>= var106
->type
->table_size
) {
4251 var107
= var106
->type
->type_table
[cltype108
] == idtype109
;
4257 var97
= var_consider_null
;
4263 var112
= varonce111
;
4267 var115
= string__NativeString__to_s_with_length(var113
, var114
);
4269 varonce111
= var112
;
4271 var116
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4273 var118
= varonce117
;
4275 var119
= " == NULL) { /* Special null case */";
4277 var121
= string__NativeString__to_s_with_length(var119
, var120
);
4279 varonce117
= var118
;
4281 var122
= NEW_array__Array(&type_array__Arraykernel__Object
);
4282 { /* var122 = array_instance Array[Object] */
4284 var124
= NEW_array__NativeArray(var123
, &type_array__NativeArraykernel__Object
);
4285 ((struct instance_array__NativeArray
*)var124
)->values
[0] = (val
*) var112
;
4286 ((struct instance_array__NativeArray
*)var124
)->values
[1] = (val
*) var116
;
4287 ((struct instance_array__NativeArray
*)var124
)->values
[2] = (val
*) var118
;
4288 ((void (*)(val
*, val
*, long))(var122
->class->vft
[COLOR_array__Array__with_native
]))(var122
, var124
, var123
) /* with_native on <var122:Array[Object]>*/;
4290 var125
= ((val
* (*)(val
*))(var122
->class->vft
[COLOR_string__Object__to_s
]))(var122
) /* to_s on <var122:Array[Object]>*/;
4291 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var125
) /* add on <self:GlobalCompilerVisitor>*/;
4292 var126
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4294 var128
= varonce127
;
4298 var131
= string__NativeString__to_s_with_length(var129
, var130
);
4300 varonce127
= var128
;
4302 var132
= ((short int (*)(val
*, val
*))(var126
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var126
, var128
) /* == on <var126:String>*/;
4305 if (var_res
== NULL
) {
4306 var134
= 0; /* is null */
4308 var134
= 1; /* arg is null and recv is not */
4311 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4312 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 360);
4316 var136
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var135
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4317 var137
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var136
) /* mcasttype on <var136:nullable Object(RuntimeVariable)>*/;
4318 /* <var137:MType> isa MNullableType */
4319 cltype139
= type_model__MNullableType
.color
;
4320 idtype140
= type_model__MNullableType
.id
;
4321 if(cltype139
>= var137
->type
->table_size
) {
4324 var138
= var137
->type
->type_table
[cltype139
] == idtype140
;
4328 var142
= varonce141
;
4332 var145
= string__NativeString__to_s_with_length(var143
, var144
);
4334 varonce141
= var142
;
4337 var147
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var146
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4339 var149
= varonce148
;
4341 var150
= " == NULL);";
4343 var152
= string__NativeString__to_s_with_length(var150
, var151
);
4345 varonce148
= var149
;
4347 var153
= NEW_array__Array(&type_array__Arraykernel__Object
);
4348 { /* var153 = array_instance Array[Object] */
4350 var155
= NEW_array__NativeArray(var154
, &type_array__NativeArraykernel__Object
);
4351 ((struct instance_array__NativeArray
*)var155
)->values
[0] = (val
*) var_res
;
4352 ((struct instance_array__NativeArray
*)var155
)->values
[1] = (val
*) var142
;
4353 ((struct instance_array__NativeArray
*)var155
)->values
[2] = (val
*) var147
;
4354 ((struct instance_array__NativeArray
*)var155
)->values
[3] = (val
*) var149
;
4355 ((void (*)(val
*, val
*, long))(var153
->class->vft
[COLOR_array__Array__with_native
]))(var153
, var155
, var154
) /* with_native on <var153:Array[Object]>*/;
4357 var156
= ((val
* (*)(val
*))(var153
->class->vft
[COLOR_string__Object__to_s
]))(var153
) /* to_s on <var153:Array[Object]>*/;
4358 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var156
) /* add on <self:GlobalCompilerVisitor>*/;
4361 var158
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var157
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4362 var159
= ((val
* (*)(val
*))(var158
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var158
) /* mcasttype on <var158:nullable Object(RuntimeVariable)>*/;
4363 /* <var159:MType> isa MNullType */
4364 cltype161
= type_model__MNullType
.color
;
4365 idtype162
= type_model__MNullType
.id
;
4366 if(cltype161
>= var159
->type
->table_size
) {
4369 var160
= var159
->type
->type_table
[cltype161
] == idtype162
;
4373 var164
= varonce163
;
4375 var165
= " = 1; /* is null */";
4377 var167
= string__NativeString__to_s_with_length(var165
, var166
);
4379 varonce163
= var164
;
4381 var168
= NEW_array__Array(&type_array__Arraykernel__Object
);
4382 { /* var168 = array_instance Array[Object] */
4384 var170
= NEW_array__NativeArray(var169
, &type_array__NativeArraykernel__Object
);
4385 ((struct instance_array__NativeArray
*)var170
)->values
[0] = (val
*) var_res
;
4386 ((struct instance_array__NativeArray
*)var170
)->values
[1] = (val
*) var164
;
4387 ((void (*)(val
*, val
*, long))(var168
->class->vft
[COLOR_array__Array__with_native
]))(var168
, var170
, var169
) /* with_native on <var168:Array[Object]>*/;
4389 var171
= ((val
* (*)(val
*))(var168
->class->vft
[COLOR_string__Object__to_s
]))(var168
) /* to_s on <var168:Array[Object]>*/;
4390 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
4393 var173
= varonce172
;
4395 var174
= " = 0; /* ";
4397 var176
= string__NativeString__to_s_with_length(var174
, var175
);
4399 varonce172
= var173
;
4402 var178
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var177
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4403 var179
= ((val
* (*)(val
*))(var178
->class->vft
[COLOR_string__Object__inspect
]))(var178
) /* inspect on <var178:nullable Object(RuntimeVariable)>*/;
4405 var181
= varonce180
;
4407 var182
= " cannot be null */";
4409 var184
= string__NativeString__to_s_with_length(var182
, var183
);
4411 varonce180
= var181
;
4413 var185
= NEW_array__Array(&type_array__Arraykernel__Object
);
4414 { /* var185 = array_instance Array[Object] */
4416 var187
= NEW_array__NativeArray(var186
, &type_array__NativeArraykernel__Object
);
4417 ((struct instance_array__NativeArray
*)var187
)->values
[0] = (val
*) var_res
;
4418 ((struct instance_array__NativeArray
*)var187
)->values
[1] = (val
*) var173
;
4419 ((struct instance_array__NativeArray
*)var187
)->values
[2] = (val
*) var179
;
4420 ((struct instance_array__NativeArray
*)var187
)->values
[3] = (val
*) var181
;
4421 ((void (*)(val
*, val
*, long))(var185
->class->vft
[COLOR_array__Array__with_native
]))(var185
, var187
, var186
) /* with_native on <var185:Array[Object]>*/;
4423 var188
= ((val
* (*)(val
*))(var185
->class->vft
[COLOR_string__Object__to_s
]))(var185
) /* to_s on <var185:Array[Object]>*/;
4424 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var188
) /* add on <self:GlobalCompilerVisitor>*/;
4428 var189
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4430 var191
= varonce190
;
4434 var194
= string__NativeString__to_s_with_length(var192
, var193
);
4436 varonce190
= var191
;
4438 var195
= ((short int (*)(val
*, val
*))(var189
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var189
, var191
) /* == on <var189:String>*/;
4441 if (var_res
== NULL
) {
4442 var197
= 0; /* is null */
4444 var197
= 1; /* arg is null and recv is not */
4447 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4448 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 369);
4452 var199
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var198
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4453 var200
= ((val
* (*)(val
*))(var199
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var199
) /* mcasttype on <var199:nullable Object(RuntimeVariable)>*/;
4454 /* <var200:MType> isa MNullableType */
4455 cltype202
= type_model__MNullableType
.color
;
4456 idtype203
= type_model__MNullableType
.id
;
4457 if(cltype202
>= var200
->type
->table_size
) {
4460 var201
= var200
->type
->type_table
[cltype202
] == idtype203
;
4464 var205
= varonce204
;
4468 var208
= string__NativeString__to_s_with_length(var206
, var207
);
4470 varonce204
= var205
;
4473 var210
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var209
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4475 var212
= varonce211
;
4477 var213
= " != NULL);";
4479 var215
= string__NativeString__to_s_with_length(var213
, var214
);
4481 varonce211
= var212
;
4483 var216
= NEW_array__Array(&type_array__Arraykernel__Object
);
4484 { /* var216 = array_instance Array[Object] */
4486 var218
= NEW_array__NativeArray(var217
, &type_array__NativeArraykernel__Object
);
4487 ((struct instance_array__NativeArray
*)var218
)->values
[0] = (val
*) var_res
;
4488 ((struct instance_array__NativeArray
*)var218
)->values
[1] = (val
*) var205
;
4489 ((struct instance_array__NativeArray
*)var218
)->values
[2] = (val
*) var210
;
4490 ((struct instance_array__NativeArray
*)var218
)->values
[3] = (val
*) var212
;
4491 ((void (*)(val
*, val
*, long))(var216
->class->vft
[COLOR_array__Array__with_native
]))(var216
, var218
, var217
) /* with_native on <var216:Array[Object]>*/;
4493 var219
= ((val
* (*)(val
*))(var216
->class->vft
[COLOR_string__Object__to_s
]))(var216
) /* to_s on <var216:Array[Object]>*/;
4494 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var219
) /* add on <self:GlobalCompilerVisitor>*/;
4497 var221
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var220
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4498 var222
= ((val
* (*)(val
*))(var221
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var221
) /* mcasttype on <var221:nullable Object(RuntimeVariable)>*/;
4499 /* <var222:MType> isa MNullType */
4500 cltype224
= type_model__MNullType
.color
;
4501 idtype225
= type_model__MNullType
.id
;
4502 if(cltype224
>= var222
->type
->table_size
) {
4505 var223
= var222
->type
->type_table
[cltype224
] == idtype225
;
4509 var227
= varonce226
;
4511 var228
= " = 0; /* is null */";
4513 var230
= string__NativeString__to_s_with_length(var228
, var229
);
4515 varonce226
= var227
;
4517 var231
= NEW_array__Array(&type_array__Arraykernel__Object
);
4518 { /* var231 = array_instance Array[Object] */
4520 var233
= NEW_array__NativeArray(var232
, &type_array__NativeArraykernel__Object
);
4521 ((struct instance_array__NativeArray
*)var233
)->values
[0] = (val
*) var_res
;
4522 ((struct instance_array__NativeArray
*)var233
)->values
[1] = (val
*) var227
;
4523 ((void (*)(val
*, val
*, long))(var231
->class->vft
[COLOR_array__Array__with_native
]))(var231
, var233
, var232
) /* with_native on <var231:Array[Object]>*/;
4525 var234
= ((val
* (*)(val
*))(var231
->class->vft
[COLOR_string__Object__to_s
]))(var231
) /* to_s on <var231:Array[Object]>*/;
4526 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var234
) /* add on <self:GlobalCompilerVisitor>*/;
4529 var236
= varonce235
;
4531 var237
= " = 1; /* ";
4533 var239
= string__NativeString__to_s_with_length(var237
, var238
);
4535 varonce235
= var236
;
4538 var241
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var240
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4539 var242
= ((val
* (*)(val
*))(var241
->class->vft
[COLOR_string__Object__inspect
]))(var241
) /* inspect on <var241:nullable Object(RuntimeVariable)>*/;
4541 var244
= varonce243
;
4543 var245
= " cannot be null */";
4545 var247
= string__NativeString__to_s_with_length(var245
, var246
);
4547 varonce243
= var244
;
4549 var248
= NEW_array__Array(&type_array__Arraykernel__Object
);
4550 { /* var248 = array_instance Array[Object] */
4552 var250
= NEW_array__NativeArray(var249
, &type_array__NativeArraykernel__Object
);
4553 ((struct instance_array__NativeArray
*)var250
)->values
[0] = (val
*) var_res
;
4554 ((struct instance_array__NativeArray
*)var250
)->values
[1] = (val
*) var236
;
4555 ((struct instance_array__NativeArray
*)var250
)->values
[2] = (val
*) var242
;
4556 ((struct instance_array__NativeArray
*)var250
)->values
[3] = (val
*) var244
;
4557 ((void (*)(val
*, val
*, long))(var248
->class->vft
[COLOR_array__Array__with_native
]))(var248
, var250
, var249
) /* with_native on <var248:Array[Object]>*/;
4559 var251
= ((val
* (*)(val
*))(var248
->class->vft
[COLOR_string__Object__to_s
]))(var248
) /* to_s on <var248:Array[Object]>*/;
4560 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var251
) /* add on <self:GlobalCompilerVisitor>*/;
4565 var253
= varonce252
;
4567 var254
= "Reciever is null";
4569 var256
= string__NativeString__to_s_with_length(var254
, var255
);
4571 varonce252
= var253
;
4573 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(self
, var253
) /* add_abort on <self:GlobalCompilerVisitor>*/;
4577 var258
= varonce257
;
4581 var261
= string__NativeString__to_s_with_length(var259
, var260
);
4583 varonce257
= var258
;
4585 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var258
) /* add on <self:GlobalCompilerVisitor>*/;
4588 var262
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
4591 var264
= varonce263
;
4595 var267
= string__NativeString__to_s_with_length(var265
, var266
);
4597 varonce263
= var264
;
4599 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var264
) /* add on <self:GlobalCompilerVisitor>*/;
4601 var269
= varonce268
;
4603 var270
= "/*BUG: no live types for ";
4605 var272
= string__NativeString__to_s_with_length(var270
, var271
);
4607 varonce268
= var269
;
4609 var273
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4610 var274
= ((val
* (*)(val
*))(var273
->class->vft
[COLOR_string__Object__inspect
]))(var273
) /* inspect on <var273:nullable Object(RuntimeVariable)>*/;
4612 var276
= varonce275
;
4616 var279
= string__NativeString__to_s_with_length(var277
, var278
);
4618 varonce275
= var276
;
4621 var281
= varonce280
;
4625 var284
= string__NativeString__to_s_with_length(var282
, var283
);
4627 varonce280
= var281
;
4629 var285
= NEW_array__Array(&type_array__Arraykernel__Object
);
4630 { /* var285 = array_instance Array[Object] */
4632 var287
= NEW_array__NativeArray(var286
, &type_array__NativeArraykernel__Object
);
4633 ((struct instance_array__NativeArray
*)var287
)->values
[0] = (val
*) var269
;
4634 ((struct instance_array__NativeArray
*)var287
)->values
[1] = (val
*) var274
;
4635 ((struct instance_array__NativeArray
*)var287
)->values
[2] = (val
*) var276
;
4636 ((struct instance_array__NativeArray
*)var287
)->values
[3] = (val
*) var_m
;
4637 ((struct instance_array__NativeArray
*)var287
)->values
[4] = (val
*) var281
;
4638 ((void (*)(val
*, val
*, long))(var285
->class->vft
[COLOR_array__Array__with_native
]))(var285
, var287
, var286
) /* with_native on <var285:Array[Object]>*/;
4640 var288
= ((val
* (*)(val
*))(var285
->class->vft
[COLOR_string__Object__to_s
]))(var285
) /* to_s on <var285:Array[Object]>*/;
4641 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var288
) /* add on <self:GlobalCompilerVisitor>*/;
4642 var289
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4643 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var289
) /* bugtype on <self:GlobalCompilerVisitor>*/;
4645 var291
= varonce290
;
4649 var294
= string__NativeString__to_s_with_length(var292
, var293
);
4651 varonce290
= var291
;
4653 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var291
) /* add on <self:GlobalCompilerVisitor>*/;
4659 var296
= varonce295
;
4663 var299
= string__NativeString__to_s_with_length(var297
, var298
);
4665 varonce295
= var296
;
4667 var300
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4669 var302
= varonce301
;
4671 var303
= "->classid) {";
4673 var305
= string__NativeString__to_s_with_length(var303
, var304
);
4675 varonce301
= var302
;
4677 var306
= NEW_array__Array(&type_array__Arraykernel__Object
);
4678 { /* var306 = array_instance Array[Object] */
4680 var308
= NEW_array__NativeArray(var307
, &type_array__NativeArraykernel__Object
);
4681 ((struct instance_array__NativeArray
*)var308
)->values
[0] = (val
*) var296
;
4682 ((struct instance_array__NativeArray
*)var308
)->values
[1] = (val
*) var300
;
4683 ((struct instance_array__NativeArray
*)var308
)->values
[2] = (val
*) var302
;
4684 ((void (*)(val
*, val
*, long))(var306
->class->vft
[COLOR_array__Array__with_native
]))(var306
, var308
, var307
) /* with_native on <var306:Array[Object]>*/;
4686 var309
= ((val
* (*)(val
*))(var306
->class->vft
[COLOR_string__Object__to_s
]))(var306
) /* to_s on <var306:Array[Object]>*/;
4687 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var309
) /* add on <self:GlobalCompilerVisitor>*/;
4688 var310
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
4691 var_defaultpropdef
= var311
;
4692 var312
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
4694 var313
= ((short int (*)(val
*))(var312
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var312
) /* is_ok on <var312:Iterator[nullable Object]>*/;
4696 var314
= ((val
* (*)(val
*))(var312
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var312
) /* item on <var312:Iterator[nullable Object]>*/;
4698 var315
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4699 var316
= ((val
* (*)(val
*))(var315
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var315
) /* mainmodule on <var315:AbstractCompiler(GlobalCompiler)>*/;
4700 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>*/;
4701 var_propdef318
= var317
;
4702 var320
= ((val
* (*)(val
*))(var_propdef318
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_propdef318
) /* mclassdef on <var_propdef318:MMethodDef>*/;
4703 var321
= ((val
* (*)(val
*))(var320
->class->vft
[COLOR_model__MClassDef__mclass
]))(var320
) /* mclass on <var320:MClassDef>*/;
4704 var322
= ((val
* (*)(val
*))(var321
->class->vft
[COLOR_model__MClass__name
]))(var321
) /* name on <var321:MClass>*/;
4706 var324
= varonce323
;
4710 var327
= string__NativeString__to_s_with_length(var325
, var326
);
4712 varonce323
= var324
;
4714 var328
= ((short int (*)(val
*, val
*))(var322
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var322
, var324
) /* == on <var322:String>*/;
4717 var330
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t
) /* ctype on <var_t:MClassType>*/;
4719 var332
= varonce331
;
4723 var335
= string__NativeString__to_s_with_length(var333
, var334
);
4725 varonce331
= var332
;
4727 var336
= ((short int (*)(val
*, val
*))(var330
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var330
, var332
) /* == on <var330:String>*/;
4733 var_defaultpropdef
= var_propdef318
;
4734 goto CONTINUE_label
;
4737 var339
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4738 var340
= ((short int (*)(val
*))(var339
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var339
) /* hardening on <var339:AbstractCompiler(GlobalCompiler)>*/;
4742 var343
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
4750 if (var_defaultpropdef
== NULL
) {
4751 var346
= 1; /* is null */
4753 var346
= 0; /* arg is null but recv is not */
4761 var348
= varonce347
;
4763 var349
= "default: /* test ";
4765 var351
= string__NativeString__to_s_with_length(var349
, var350
);
4767 varonce347
= var348
;
4770 var353
= varonce352
;
4774 var356
= string__NativeString__to_s_with_length(var354
, var355
);
4776 varonce352
= var353
;
4778 var357
= NEW_array__Array(&type_array__Arraykernel__Object
);
4779 { /* var357 = array_instance Array[Object] */
4781 var359
= NEW_array__NativeArray(var358
, &type_array__NativeArraykernel__Object
);
4782 ((struct instance_array__NativeArray
*)var359
)->values
[0] = (val
*) var348
;
4783 ((struct instance_array__NativeArray
*)var359
)->values
[1] = (val
*) var_t
;
4784 ((struct instance_array__NativeArray
*)var359
)->values
[2] = (val
*) var353
;
4785 ((void (*)(val
*, val
*, long))(var357
->class->vft
[COLOR_array__Array__with_native
]))(var357
, var359
, var358
) /* with_native on <var357:Array[Object]>*/;
4787 var360
= ((val
* (*)(val
*))(var357
->class->vft
[COLOR_string__Object__to_s
]))(var357
) /* to_s on <var357:Array[Object]>*/;
4788 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var360
) /* add on <self:GlobalCompilerVisitor>*/;
4791 var362
= varonce361
;
4795 var365
= string__NativeString__to_s_with_length(var363
, var364
);
4797 varonce361
= var362
;
4799 var366
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4800 var367
= ((val
* (*)(val
*, val
*))(var366
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var366
, var_t
) /* classid on <var366:AbstractCompiler(GlobalCompiler)>*/;
4802 var369
= varonce368
;
4804 var370
= ": /* test ";
4806 var372
= string__NativeString__to_s_with_length(var370
, var371
);
4808 varonce368
= var369
;
4811 var374
= varonce373
;
4815 var377
= string__NativeString__to_s_with_length(var375
, var376
);
4817 varonce373
= var374
;
4819 var378
= NEW_array__Array(&type_array__Arraykernel__Object
);
4820 { /* var378 = array_instance Array[Object] */
4822 var380
= NEW_array__NativeArray(var379
, &type_array__NativeArraykernel__Object
);
4823 ((struct instance_array__NativeArray
*)var380
)->values
[0] = (val
*) var362
;
4824 ((struct instance_array__NativeArray
*)var380
)->values
[1] = (val
*) var367
;
4825 ((struct instance_array__NativeArray
*)var380
)->values
[2] = (val
*) var369
;
4826 ((struct instance_array__NativeArray
*)var380
)->values
[3] = (val
*) var_t
;
4827 ((struct instance_array__NativeArray
*)var380
)->values
[4] = (val
*) var374
;
4828 ((void (*)(val
*, val
*, long))(var378
->class->vft
[COLOR_array__Array__with_native
]))(var378
, var380
, var379
) /* with_native on <var378:Array[Object]>*/;
4830 var381
= ((val
* (*)(val
*))(var378
->class->vft
[COLOR_string__Object__to_s
]))(var378
) /* to_s on <var378:Array[Object]>*/;
4831 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var381
) /* add on <self:GlobalCompilerVisitor>*/;
4833 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>*/;
4834 var_res2383
= var382
;
4836 if (var_res
== NULL
) {
4837 var385
= 0; /* is null */
4839 var385
= 1; /* arg is null and recv is not */
4842 if (var_res2383
== NULL
) {
4843 fprintf(stderr
, "Runtime error: %s", "Cast failed");
4844 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 405);
4847 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2383
) /* assign on <self:GlobalCompilerVisitor>*/;
4851 var387
= varonce386
;
4855 var390
= string__NativeString__to_s_with_length(var388
, var389
);
4857 varonce386
= var387
;
4859 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var387
) /* add on <self:GlobalCompilerVisitor>*/;
4860 CONTINUE_label
: (void)0;
4861 ((void (*)(val
*))(var312
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var312
) /* next on <var312:Iterator[nullable Object]>*/;
4863 BREAK_label
: (void)0;
4865 if (var_defaultpropdef
== NULL
) {
4866 var392
= 0; /* is null */
4868 var392
= 1; /* arg is null and recv is not */
4872 var394
= varonce393
;
4874 var395
= "default: /* default is Object */";
4876 var397
= string__NativeString__to_s_with_length(var395
, var396
);
4878 varonce393
= var394
;
4880 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var394
) /* add on <self:GlobalCompilerVisitor>*/;
4881 var398
= ((val
* (*)(val
*))(var_defaultpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_defaultpropdef
) /* mclassdef on <var_defaultpropdef:nullable MMethodDef(MMethodDef)>*/;
4882 var399
= ((val
* (*)(val
*))(var398
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var398
) /* bound_mtype on <var398:MClassDef>*/;
4883 var400
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__call
]))(self
, var_defaultpropdef
, var399
, var_args
) /* call on <self:GlobalCompilerVisitor>*/;
4884 var_res2401
= var400
;
4886 if (var_res
== NULL
) {
4887 var403
= 0; /* is null */
4889 var403
= 1; /* arg is null and recv is not */
4892 if (var_res2401
== NULL
) {
4893 fprintf(stderr
, "Runtime error: %s", "Cast failed");
4894 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 411);
4897 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2401
) /* assign on <self:GlobalCompilerVisitor>*/;
4901 var404
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4902 var405
= ((short int (*)(val
*))(var404
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var404
) /* hardening on <var404:AbstractCompiler(GlobalCompiler)>*/;
4905 var407
= varonce406
;
4907 var408
= "default: /* bug */";
4909 var410
= string__NativeString__to_s_with_length(var408
, var409
);
4911 varonce406
= var407
;
4913 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var407
) /* add on <self:GlobalCompilerVisitor>*/;
4914 var411
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4915 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var411
) /* bugtype on <self:GlobalCompilerVisitor>*/;
4920 var413
= varonce412
;
4924 var416
= string__NativeString__to_s_with_length(var414
, var415
);
4926 varonce412
= var413
;
4928 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var413
) /* add on <self:GlobalCompilerVisitor>*/;
4934 /* method global_compiler#GlobalCompilerVisitor#send for (self: Object, MMethod, Array[RuntimeVariable]): nullable RuntimeVariable */
4935 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__send(val
* self
, val
* p0
, val
* p1
) {
4936 val
* var
/* : nullable RuntimeVariable */;
4937 val
* var1
/* : nullable RuntimeVariable */;
4938 var1
= global_compiler__GlobalCompilerVisitor__send(self
, p0
, p1
);
4943 /* method global_compiler#GlobalCompilerVisitor#check_valid_reciever for (self: GlobalCompilerVisitor, MClassType) */
4944 void global_compiler__GlobalCompilerVisitor__check_valid_reciever(val
* self
, val
* p0
) {
4945 val
* var_recvtype
/* var recvtype: MClassType */;
4946 short int var
/* : Bool */;
4947 val
* var1
/* : AbstractCompiler */;
4948 val
* var2
/* : RapidTypeAnalysis */;
4949 val
* var3
/* : HashSet[MClassType] */;
4950 short int var4
/* : Bool */;
4951 short int var_
/* var : Bool */;
4952 val
* var5
/* : MClass */;
4953 val
* var6
/* : String */;
4954 static val
* varonce
;
4955 val
* var7
/* : String */;
4956 char* var8
/* : NativeString */;
4957 long var9
/* : Int */;
4958 val
* var10
/* : String */;
4959 short int var11
/* : Bool */;
4960 static val
* varonce12
;
4961 val
* var13
/* : String */;
4962 char* var14
/* : NativeString */;
4963 long var15
/* : Int */;
4964 val
* var16
/* : String */;
4965 val
* var17
/* : Array[Object] */;
4966 long var18
/* : Int */;
4967 val
* var19
/* : NativeArray[Object] */;
4968 val
* var20
/* : String */;
4970 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4971 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var1
) /* runtime_type_analysis on <var1:AbstractCompiler(GlobalCompiler)>*/;
4972 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var2
) /* live_types on <var2:RapidTypeAnalysis>*/;
4973 var4
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var3
, var_recvtype
) /* has on <var3:HashSet[MClassType]>*/;
4978 var5
= ((val
* (*)(val
*))(var_recvtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_recvtype
) /* mclass on <var_recvtype:MClassType>*/;
4979 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClass__name
]))(var5
) /* name on <var5:MClass>*/;
4985 var10
= string__NativeString__to_s_with_length(var8
, var9
);
4989 var11
= ((short int (*)(val
*, val
*))(var6
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var6
, var7
) /* == on <var6:String>*/;
4999 var14
= " is not a live type";
5001 var16
= string__NativeString__to_s_with_length(var14
, var15
);
5005 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
5006 { /* var17 = array_instance Array[Object] */
5008 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
5009 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var_recvtype
;
5010 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var13
;
5011 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
5013 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
5014 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var20
) /* print on <self:GlobalCompilerVisitor>*/;
5015 fprintf(stderr
, "Runtime error: %s", "Aborted");
5016 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 424);
5020 /* method global_compiler#GlobalCompilerVisitor#check_valid_reciever for (self: Object, MClassType) */
5021 void VIRTUAL_global_compiler__GlobalCompilerVisitor__check_valid_reciever(val
* self
, val
* p0
) {
5022 global_compiler__GlobalCompilerVisitor__check_valid_reciever(self
, p0
);
5025 /* method global_compiler#GlobalCompilerVisitor#get_recvtype for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): MClassType */
5026 val
* global_compiler__GlobalCompilerVisitor__get_recvtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5027 val
* var
/* : MClassType */;
5028 val
* var_m
/* var m: MMethodDef */;
5029 val
* var_recvtype
/* var recvtype: MClassType */;
5030 val
* var_args
/* var args: Array[RuntimeVariable] */;
5031 short int var1
/* : Bool */;
5032 val
* var2
/* : MClassDef */;
5033 val
* var3
/* : MClass */;
5034 val
* var4
/* : String */;
5035 static val
* varonce
;
5036 val
* var5
/* : String */;
5037 char* var6
/* : NativeString */;
5038 long var7
/* : Int */;
5039 val
* var8
/* : String */;
5040 short int var9
/* : Bool */;
5041 short int var_
/* var : Bool */;
5042 val
* var10
/* : String */;
5043 static val
* varonce11
;
5044 val
* var12
/* : String */;
5045 char* var13
/* : NativeString */;
5046 long var14
/* : Int */;
5047 val
* var15
/* : String */;
5048 short int var16
/* : Bool */;
5049 val
* var17
/* : MClassDef */;
5050 val
* var18
/* : MClassType */;
5054 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__check_valid_reciever
]))(self
, var_recvtype
) /* check_valid_reciever on <self:GlobalCompilerVisitor>*/;
5055 var2
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
5056 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mclass
]))(var2
) /* mclass on <var2:MClassDef>*/;
5057 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MClass__name
]))(var3
) /* name on <var3:MClass>*/;
5063 var8
= string__NativeString__to_s_with_length(var6
, var7
);
5067 var9
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var4
, var5
) /* == on <var4:String>*/;
5070 var10
= ((val
* (*)(val
*))(var_recvtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_recvtype
) /* ctype on <var_recvtype:MClassType>*/;
5076 var15
= string__NativeString__to_s_with_length(var13
, var14
);
5080 var16
= ((short int (*)(val
*, val
*))(var10
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var10
, var12
) /* == on <var10:String>*/;
5086 var17
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
5087 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var17
) /* bound_mtype on <var17:MClassDef>*/;
5088 var_recvtype
= var18
;
5096 /* method global_compiler#GlobalCompilerVisitor#get_recvtype for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): MClassType */
5097 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__get_recvtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5098 val
* var
/* : MClassType */;
5099 val
* var1
/* : MClassType */;
5100 var1
= global_compiler__GlobalCompilerVisitor__get_recvtype(self
, p0
, p1
, p2
);
5105 /* method global_compiler#GlobalCompilerVisitor#get_recv for (self: GlobalCompilerVisitor, MClassType, Array[RuntimeVariable]): RuntimeVariable */
5106 val
* global_compiler__GlobalCompilerVisitor__get_recv(val
* self
, val
* p0
, val
* p1
) {
5107 val
* var
/* : RuntimeVariable */;
5108 val
* var_recvtype
/* var recvtype: MClassType */;
5109 val
* var_args
/* var args: Array[RuntimeVariable] */;
5110 val
* var1
/* : nullable Object */;
5111 val
* var2
/* : RuntimeVariable */;
5112 val
* var3
/* : RuntimeVariable */;
5115 var1
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5116 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var1
, var_recvtype
) /* autobox on <self:GlobalCompilerVisitor>*/;
5117 var3
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var2
, var_recvtype
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
5123 /* method global_compiler#GlobalCompilerVisitor#get_recv for (self: Object, MClassType, Array[RuntimeVariable]): RuntimeVariable */
5124 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__get_recv(val
* self
, val
* p0
, val
* p1
) {
5125 val
* var
/* : RuntimeVariable */;
5126 val
* var1
/* : RuntimeVariable */;
5127 var1
= global_compiler__GlobalCompilerVisitor__get_recv(self
, p0
, p1
);
5132 /* method global_compiler#GlobalCompilerVisitor#finalize_call for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5133 val
* global_compiler__GlobalCompilerVisitor__finalize_call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5134 val
* var
/* : nullable RuntimeVariable */;
5135 val
* var_m
/* var m: MMethodDef */;
5136 val
* var_recvtype
/* var recvtype: MClassType */;
5137 val
* var_args
/* var args: Array[RuntimeVariable] */;
5138 long var1
/* : Int */;
5139 val
* var2
/* : nullable MSignature */;
5140 long var3
/* : Int */;
5141 long var4
/* : Int */;
5142 long var5
/* : Int */;
5143 long var7
/* : Int */;
5144 short int var8
/* : Bool */;
5145 short int var10
/* : Bool */;
5146 short int var11
/* : Bool */;
5147 static val
* varonce
;
5148 val
* var12
/* : String */;
5149 char* var13
/* : NativeString */;
5150 long var14
/* : Int */;
5151 val
* var15
/* : String */;
5152 static val
* varonce16
;
5153 val
* var17
/* : String */;
5154 char* var18
/* : NativeString */;
5155 long var19
/* : Int */;
5156 val
* var20
/* : String */;
5157 long var21
/* : Int */;
5158 static val
* varonce22
;
5159 val
* var23
/* : String */;
5160 char* var24
/* : NativeString */;
5161 long var25
/* : Int */;
5162 val
* var26
/* : String */;
5163 val
* var27
/* : Array[Object] */;
5164 long var28
/* : Int */;
5165 val
* var29
/* : NativeArray[Object] */;
5166 val
* var30
/* : Object */;
5167 val
* var31
/* : String */;
5168 static val
* varonce32
;
5169 val
* var33
/* : String */;
5170 char* var34
/* : NativeString */;
5171 long var35
/* : Int */;
5172 val
* var36
/* : String */;
5173 static val
* varonce37
;
5174 val
* var38
/* : String */;
5175 char* var39
/* : NativeString */;
5176 long var40
/* : Int */;
5177 val
* var41
/* : String */;
5178 long var42
/* : Int */;
5179 static val
* varonce43
;
5180 val
* var44
/* : String */;
5181 char* var45
/* : NativeString */;
5182 long var46
/* : Int */;
5183 val
* var47
/* : String */;
5184 val
* var48
/* : Array[Object] */;
5185 long var49
/* : Int */;
5186 val
* var50
/* : NativeArray[Object] */;
5187 val
* var51
/* : Object */;
5188 val
* var52
/* : String */;
5189 val
* var53
/* : null */;
5190 val
* var54
/* : CustomizedRuntimeFunction */;
5191 val
* var_rm
/* var rm: CustomizedRuntimeFunction */;
5192 val
* var55
/* : nullable RuntimeVariable */;
5196 var1
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[RuntimeVariable]>*/;
5197 var2
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
5199 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5200 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 450);
5203 var3
= ((long (*)(val
*))(var2
->class->vft
[COLOR_model__MSignature__arity
]))(var2
) /* arity on <var2:nullable MSignature>*/;
5206 { /* Inline kernel#Int#+ (var3,var4) */
5212 { /* Inline kernel#Int#!= (var1,var5) */
5213 var10
= var1
== var5
;
5223 var13
= "printf(\"NOT YET IMPLEMENTED: Invalid arity for ";
5225 var15
= string__NativeString__to_s_with_length(var13
, var14
);
5234 var20
= string__NativeString__to_s_with_length(var18
, var19
);
5238 var21
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[RuntimeVariable]>*/;
5242 var24
= " arguments given.\\n\"); show_backtrace(1);";
5244 var26
= string__NativeString__to_s_with_length(var24
, var25
);
5248 var27
= NEW_array__Array(&type_array__Arraykernel__Object
);
5249 { /* var27 = array_instance Array[Object] */
5251 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraykernel__Object
);
5252 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var12
;
5253 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var_m
;
5254 ((struct instance_array__NativeArray
*)var29
)->values
[2] = (val
*) var17
;
5255 var30
= BOX_kernel__Int(var21
); /* autobox from Int to Object */
5256 ((struct instance_array__NativeArray
*)var29
)->values
[3] = (val
*) var30
;
5257 ((struct instance_array__NativeArray
*)var29
)->values
[4] = (val
*) var23
;
5258 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
5260 var31
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
5261 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var31
) /* add on <self:GlobalCompilerVisitor>*/;
5265 var34
= "NOT YET IMPLEMENTED: Invalid arity for ";
5267 var36
= string__NativeString__to_s_with_length(var34
, var35
);
5276 var41
= string__NativeString__to_s_with_length(var39
, var40
);
5280 var42
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[RuntimeVariable]>*/;
5284 var45
= " arguments given.";
5286 var47
= string__NativeString__to_s_with_length(var45
, var46
);
5290 var48
= NEW_array__Array(&type_array__Arraykernel__Object
);
5291 { /* var48 = array_instance Array[Object] */
5293 var50
= NEW_array__NativeArray(var49
, &type_array__NativeArraykernel__Object
);
5294 ((struct instance_array__NativeArray
*)var50
)->values
[0] = (val
*) var33
;
5295 ((struct instance_array__NativeArray
*)var50
)->values
[1] = (val
*) var_m
;
5296 ((struct instance_array__NativeArray
*)var50
)->values
[2] = (val
*) var38
;
5297 var51
= BOX_kernel__Int(var42
); /* autobox from Int to Object */
5298 ((struct instance_array__NativeArray
*)var50
)->values
[3] = (val
*) var51
;
5299 ((struct instance_array__NativeArray
*)var50
)->values
[4] = (val
*) var44
;
5300 ((void (*)(val
*, val
*, long))(var48
->class->vft
[COLOR_array__Array__with_native
]))(var48
, var50
, var49
) /* with_native on <var48:Array[Object]>*/;
5302 var52
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_string__Object__to_s
]))(var48
) /* to_s on <var48:Array[Object]>*/;
5303 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__debug
]))(self
, var52
) /* debug on <self:GlobalCompilerVisitor>*/;
5309 var54
= NEW_global_compiler__CustomizedRuntimeFunction(&type_global_compiler__CustomizedRuntimeFunction
);
5310 ((void (*)(val
*, val
*, val
*))(var54
->class->vft
[COLOR_global_compiler__CustomizedRuntimeFunction__init
]))(var54
, var_m
, var_recvtype
) /* init on <var54:CustomizedRuntimeFunction>*/;
5312 var55
= ((val
* (*)(val
*, val
*, val
*))(var_rm
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__call
]))(var_rm
, self
, var_args
) /* call on <var_rm:CustomizedRuntimeFunction>*/;
5318 /* method global_compiler#GlobalCompilerVisitor#finalize_call for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5319 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__finalize_call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5320 val
* var
/* : nullable RuntimeVariable */;
5321 val
* var1
/* : nullable RuntimeVariable */;
5322 var1
= global_compiler__GlobalCompilerVisitor__finalize_call(self
, p0
, p1
, p2
);
5327 /* method global_compiler#GlobalCompilerVisitor#call for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5328 val
* global_compiler__GlobalCompilerVisitor__call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5329 val
* var
/* : nullable RuntimeVariable */;
5330 val
* var_m
/* var m: MMethodDef */;
5331 val
* var_recvtype
/* var recvtype: MClassType */;
5332 val
* var_args
/* var args: Array[RuntimeVariable] */;
5333 val
* var1
/* : MClassType */;
5334 val
* var_recv_type
/* var recv_type: MClassType */;
5335 val
* var2
/* : RuntimeVariable */;
5336 val
* var_recv
/* var recv: RuntimeVariable */;
5337 val
* var3
/* : Array[nullable Object] */;
5338 val
* var_new_args
/* var new_args: Array[RuntimeVariable] */;
5339 val
* var4
/* : nullable MSignature */;
5340 val
* var5
/* : nullable RuntimeVariable */;
5344 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>*/;
5345 var_recv_type
= var1
;
5346 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>*/;
5348 var3
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_array__Collection__to_a
]))(var_args
) /* to_a on <var_args:Array[RuntimeVariable]>*/;
5349 var_new_args
= var3
;
5350 var4
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
5352 fprintf(stderr
, "Runtime error: %s", "Cast failed");
5353 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 465);
5356 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__varargize
]))(self
, var_m
, var4
, var_new_args
) /* varargize on <self:GlobalCompilerVisitor>*/;
5357 ((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]>*/;
5358 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>*/;
5364 /* method global_compiler#GlobalCompilerVisitor#call for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5365 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5366 val
* var
/* : nullable RuntimeVariable */;
5367 val
* var1
/* : nullable RuntimeVariable */;
5368 var1
= global_compiler__GlobalCompilerVisitor__call(self
, p0
, p1
, p2
);
5373 /* method global_compiler#GlobalCompilerVisitor#call_without_varargize for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5374 val
* global_compiler__GlobalCompilerVisitor__call_without_varargize(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5375 val
* var
/* : nullable RuntimeVariable */;
5376 val
* var_m
/* var m: MMethodDef */;
5377 val
* var_recvtype
/* var recvtype: MClassType */;
5378 val
* var_args
/* var args: Array[RuntimeVariable] */;
5379 val
* var1
/* : MClassType */;
5380 val
* var_recv_type
/* var recv_type: MClassType */;
5381 val
* var2
/* : RuntimeVariable */;
5382 val
* var_recv
/* var recv: RuntimeVariable */;
5383 val
* var3
/* : Array[nullable Object] */;
5384 val
* var_new_args
/* var new_args: Array[RuntimeVariable] */;
5385 val
* var4
/* : nullable RuntimeVariable */;
5389 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>*/;
5390 var_recv_type
= var1
;
5391 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>*/;
5393 var3
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_array__Collection__to_a
]))(var_args
) /* to_a on <var_args:Array[RuntimeVariable]>*/;
5394 var_new_args
= var3
;
5395 ((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]>*/;
5396 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>*/;
5402 /* method global_compiler#GlobalCompilerVisitor#call_without_varargize for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5403 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__call_without_varargize(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5404 val
* var
/* : nullable RuntimeVariable */;
5405 val
* var1
/* : nullable RuntimeVariable */;
5406 var1
= global_compiler__GlobalCompilerVisitor__call_without_varargize(self
, p0
, p1
, p2
);
5411 /* method global_compiler#GlobalCompilerVisitor#supercall for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5412 val
* global_compiler__GlobalCompilerVisitor__supercall(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5413 val
* var
/* : nullable RuntimeVariable */;
5414 val
* var_m
/* var m: MMethodDef */;
5415 val
* var_recvtype
/* var recvtype: MClassType */;
5416 val
* var_args
/* var args: Array[RuntimeVariable] */;
5417 val
* var1
/* : nullable Object */;
5418 val
* var2
/* : Array[MClassType] */;
5419 val
* var_types
/* var types: Array[MClassType] */;
5420 val
* var3
/* : MProperty */;
5421 val
* var4
/* : MPropDef */;
5422 val
* var5
/* : nullable MSignature */;
5423 val
* var6
/* : nullable MType */;
5424 val
* var_ret
/* var ret: nullable MType */;
5425 val
* var7
/* : null */;
5426 short int var8
/* : Bool */;
5427 val
* var9
/* : null */;
5428 val
* var_res
/* var res: nullable RuntimeVariable */;
5429 val
* var10
/* : nullable Object */;
5430 val
* var11
/* : MType */;
5431 val
* var12
/* : RuntimeVariable */;
5432 static val
* varonce
;
5433 val
* var13
/* : String */;
5434 char* var14
/* : NativeString */;
5435 long var15
/* : Int */;
5436 val
* var16
/* : String */;
5437 static val
* varonce17
;
5438 val
* var18
/* : String */;
5439 char* var19
/* : NativeString */;
5440 long var20
/* : Int */;
5441 val
* var21
/* : String */;
5442 val
* var22
/* : nullable Object */;
5443 val
* var23
/* : String */;
5444 static val
* varonce24
;
5445 val
* var25
/* : String */;
5446 char* var26
/* : NativeString */;
5447 long var27
/* : Int */;
5448 val
* var28
/* : String */;
5449 val
* var29
/* : Array[Object] */;
5450 long var30
/* : Int */;
5451 val
* var31
/* : NativeArray[Object] */;
5452 val
* var32
/* : String */;
5453 val
* var33
/* : nullable Object */;
5454 val
* var34
/* : MType */;
5455 val
* var35
/* : String */;
5456 static val
* varonce36
;
5457 val
* var37
/* : String */;
5458 char* var38
/* : NativeString */;
5459 long var39
/* : Int */;
5460 val
* var40
/* : String */;
5461 short int var41
/* : Bool */;
5462 val
* var42
/* : nullable Object */;
5463 val
* var43
/* : MType */;
5464 short int var44
/* : Bool */;
5467 const char* var_class_name
;
5468 val
* var_mclasstype
/* var mclasstype: MClassType */;
5469 val
* var45
/* : AbstractCompiler */;
5470 val
* var46
/* : RapidTypeAnalysis */;
5471 val
* var47
/* : HashSet[MClassType] */;
5472 short int var48
/* : Bool */;
5473 short int var49
/* : Bool */;
5474 static val
* varonce50
;
5475 val
* var51
/* : String */;
5476 char* var52
/* : NativeString */;
5477 long var53
/* : Int */;
5478 val
* var54
/* : String */;
5479 static val
* varonce55
;
5480 val
* var56
/* : String */;
5481 char* var57
/* : NativeString */;
5482 long var58
/* : Int */;
5483 val
* var59
/* : String */;
5484 val
* var60
/* : Array[Object] */;
5485 long var61
/* : Int */;
5486 val
* var62
/* : NativeArray[Object] */;
5487 val
* var63
/* : String */;
5488 val
* var64
/* : AbstractCompiler */;
5489 val
* var65
/* : MModule */;
5490 val
* var66
/* : MPropDef */;
5491 val
* var_propdef
/* var propdef: MMethodDef */;
5492 val
* var67
/* : nullable RuntimeVariable */;
5493 val
* var_res2
/* var res2: nullable RuntimeVariable */;
5494 val
* var68
/* : null */;
5495 short int var69
/* : Bool */;
5496 short int var70
/* : Bool */;
5497 static val
* varonce71
;
5498 val
* var72
/* : String */;
5499 char* var73
/* : NativeString */;
5500 long var74
/* : Int */;
5501 val
* var75
/* : String */;
5502 static val
* varonce76
;
5503 val
* var77
/* : String */;
5504 char* var78
/* : NativeString */;
5505 long var79
/* : Int */;
5506 val
* var80
/* : String */;
5507 val
* var81
/* : nullable Object */;
5508 val
* var82
/* : String */;
5509 static val
* varonce83
;
5510 val
* var84
/* : String */;
5511 char* var85
/* : NativeString */;
5512 long var86
/* : Int */;
5513 val
* var87
/* : String */;
5514 static val
* varonce88
;
5515 val
* var89
/* : String */;
5516 char* var90
/* : NativeString */;
5517 long var91
/* : Int */;
5518 val
* var92
/* : String */;
5519 val
* var93
/* : Array[Object] */;
5520 long var94
/* : Int */;
5521 val
* var95
/* : NativeArray[Object] */;
5522 val
* var96
/* : String */;
5523 val
* var97
/* : nullable Object */;
5524 static val
* varonce98
;
5525 val
* var99
/* : String */;
5526 char* var100
/* : NativeString */;
5527 long var101
/* : Int */;
5528 val
* var102
/* : String */;
5529 static val
* varonce103
;
5530 val
* var104
/* : String */;
5531 char* var105
/* : NativeString */;
5532 long var106
/* : Int */;
5533 val
* var107
/* : String */;
5534 val
* var108
/* : nullable Object */;
5535 static val
* varonce109
;
5536 val
* var110
/* : String */;
5537 char* var111
/* : NativeString */;
5538 long var112
/* : Int */;
5539 val
* var113
/* : String */;
5540 val
* var114
/* : Array[Object] */;
5541 long var115
/* : Int */;
5542 val
* var116
/* : NativeArray[Object] */;
5543 val
* var117
/* : String */;
5544 val
* var118
/* : nullable Object */;
5545 val
* var_last
/* var last: MClassType */;
5546 val
* var119
/* : Iterator[nullable Object] */;
5547 short int var120
/* : Bool */;
5548 val
* var121
/* : nullable Object */;
5549 val
* var_t
/* var t: MClassType */;
5550 val
* var122
/* : AbstractCompiler */;
5551 val
* var123
/* : MModule */;
5552 val
* var124
/* : MPropDef */;
5553 val
* var_propdef125
/* var propdef: MMethodDef */;
5554 short int var126
/* : Bool */;
5555 val
* var127
/* : AbstractCompiler */;
5556 short int var128
/* : Bool */;
5557 short int var129
/* : Bool */;
5558 short int var_
/* var : Bool */;
5559 short int var130
/* : Bool */;
5560 static val
* varonce131
;
5561 val
* var132
/* : String */;
5562 char* var133
/* : NativeString */;
5563 long var134
/* : Int */;
5564 val
* var135
/* : String */;
5565 static val
* varonce136
;
5566 val
* var137
/* : String */;
5567 char* var138
/* : NativeString */;
5568 long var139
/* : Int */;
5569 val
* var140
/* : String */;
5570 val
* var141
/* : Array[Object] */;
5571 long var142
/* : Int */;
5572 val
* var143
/* : NativeArray[Object] */;
5573 val
* var144
/* : String */;
5574 static val
* varonce145
;
5575 val
* var146
/* : String */;
5576 char* var147
/* : NativeString */;
5577 long var148
/* : Int */;
5578 val
* var149
/* : String */;
5579 val
* var150
/* : AbstractCompiler */;
5580 val
* var151
/* : String */;
5581 static val
* varonce152
;
5582 val
* var153
/* : String */;
5583 char* var154
/* : NativeString */;
5584 long var155
/* : Int */;
5585 val
* var156
/* : String */;
5586 static val
* varonce157
;
5587 val
* var158
/* : String */;
5588 char* var159
/* : NativeString */;
5589 long var160
/* : Int */;
5590 val
* var161
/* : String */;
5591 val
* var162
/* : Array[Object] */;
5592 long var163
/* : Int */;
5593 val
* var164
/* : NativeArray[Object] */;
5594 val
* var165
/* : String */;
5595 val
* var166
/* : nullable RuntimeVariable */;
5596 val
* var_res2167
/* var res2: nullable RuntimeVariable */;
5597 val
* var168
/* : null */;
5598 short int var169
/* : Bool */;
5599 static val
* varonce170
;
5600 val
* var171
/* : String */;
5601 char* var172
/* : NativeString */;
5602 long var173
/* : Int */;
5603 val
* var174
/* : String */;
5604 val
* var175
/* : AbstractCompiler */;
5605 short int var176
/* : Bool */;
5606 static val
* varonce177
;
5607 val
* var178
/* : String */;
5608 char* var179
/* : NativeString */;
5609 long var180
/* : Int */;
5610 val
* var181
/* : String */;
5611 val
* var182
/* : nullable Object */;
5612 static val
* varonce183
;
5613 val
* var184
/* : String */;
5614 char* var185
/* : NativeString */;
5615 long var186
/* : Int */;
5616 val
* var187
/* : String */;
5620 var1
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5621 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var1
) /* collect_types on <self:GlobalCompilerVisitor>*/;
5623 var3
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_m
) /* mproperty on <var_m:MMethodDef>*/;
5624 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MProperty__intro
]))(var3
) /* intro on <var3:MProperty(MMethod)>*/;
5625 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var4
) /* msignature on <var4:MPropDef(MMethodDef)>*/;
5627 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5628 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 486);
5631 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var5
) /* return_mtype on <var5:nullable MSignature>*/;
5635 if (var_ret
== NULL
) {
5636 var8
= 1; /* is null */
5638 var8
= 0; /* arg is null but recv is not */
5644 var10
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5645 var11
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ret
, var10
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
5647 var12
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
5653 var14
= "/* super ";
5655 var16
= string__NativeString__to_s_with_length(var14
, var15
);
5664 var21
= string__NativeString__to_s_with_length(var19
, var20
);
5668 var22
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5669 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_string__Object__inspect
]))(var22
) /* inspect on <var22:nullable Object(RuntimeVariable)>*/;
5675 var28
= string__NativeString__to_s_with_length(var26
, var27
);
5679 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
5680 { /* var29 = array_instance Array[Object] */
5682 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
5683 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var13
;
5684 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var_m
;
5685 ((struct instance_array__NativeArray
*)var31
)->values
[2] = (val
*) var18
;
5686 ((struct instance_array__NativeArray
*)var31
)->values
[3] = (val
*) var23
;
5687 ((struct instance_array__NativeArray
*)var31
)->values
[4] = (val
*) var25
;
5688 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
5690 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
5691 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var32
) /* add on <self:GlobalCompilerVisitor>*/;
5692 var33
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5693 var34
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var33
) /* mtype on <var33:nullable Object(RuntimeVariable)>*/;
5694 var35
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var34
) /* ctype on <var34:MType>*/;
5700 var40
= string__NativeString__to_s_with_length(var38
, var39
);
5704 var41
= ((short int (*)(val
*, val
*))(var35
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var35
, var37
) /* != on <var35:String>*/;
5706 var42
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5707 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var42
) /* mtype on <var42:nullable Object(RuntimeVariable)>*/;
5708 /* <var43:MType> isa MClassType */
5709 cltype
= type_model__MClassType
.color
;
5710 idtype
= type_model__MClassType
.id
;
5711 if(cltype
>= var43
->type
->table_size
) {
5714 var44
= var43
->type
->type_table
[cltype
] == idtype
;
5717 var_class_name
= var43
== NULL ?
"null" : var43
->type
->name
;
5718 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5719 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 496);
5722 var_mclasstype
= var43
;
5723 var45
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5724 var46
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var45
) /* runtime_type_analysis on <var45:AbstractCompiler(GlobalCompiler)>*/;
5725 var47
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var46
) /* live_types on <var46:RapidTypeAnalysis>*/;
5726 var48
= ((short int (*)(val
*, val
*))(var47
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var47
, var_mclasstype
) /* has on <var47:HashSet[MClassType]>*/;
5732 var52
= "/* skip, no method ";
5734 var54
= string__NativeString__to_s_with_length(var52
, var53
);
5743 var59
= string__NativeString__to_s_with_length(var57
, var58
);
5747 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
5748 { /* var60 = array_instance Array[Object] */
5750 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
5751 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var51
;
5752 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var_m
;
5753 ((struct instance_array__NativeArray
*)var62
)->values
[2] = (val
*) var56
;
5754 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
5756 var63
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
5757 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var63
) /* add on <self:GlobalCompilerVisitor>*/;
5762 var64
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5763 var65
= ((val
* (*)(val
*))(var64
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var64
) /* mainmodule on <var64:AbstractCompiler(GlobalCompiler)>*/;
5764 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>*/;
5765 var_propdef
= var66
;
5766 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>*/;
5769 if (var_res
== NULL
) {
5770 var69
= 0; /* is null */
5772 var69
= 1; /* arg is null and recv is not */
5775 if (var_res2
== NULL
) {
5776 fprintf(stderr
, "Runtime error: %s", "Cast failed");
5777 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 503);
5780 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2
) /* assign on <self:GlobalCompilerVisitor>*/;
5787 var70
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
5794 var75
= string__NativeString__to_s_with_length(var73
, var74
);
5798 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var72
) /* add on <self:GlobalCompilerVisitor>*/;
5802 var78
= "/*BUG: no live types for ";
5804 var80
= string__NativeString__to_s_with_length(var78
, var79
);
5808 var81
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5809 var82
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__inspect
]))(var81
) /* inspect on <var81:nullable Object(RuntimeVariable)>*/;
5815 var87
= string__NativeString__to_s_with_length(var85
, var86
);
5824 var92
= string__NativeString__to_s_with_length(var90
, var91
);
5828 var93
= NEW_array__Array(&type_array__Arraykernel__Object
);
5829 { /* var93 = array_instance Array[Object] */
5831 var95
= NEW_array__NativeArray(var94
, &type_array__NativeArraykernel__Object
);
5832 ((struct instance_array__NativeArray
*)var95
)->values
[0] = (val
*) var77
;
5833 ((struct instance_array__NativeArray
*)var95
)->values
[1] = (val
*) var82
;
5834 ((struct instance_array__NativeArray
*)var95
)->values
[2] = (val
*) var84
;
5835 ((struct instance_array__NativeArray
*)var95
)->values
[3] = (val
*) var_m
;
5836 ((struct instance_array__NativeArray
*)var95
)->values
[4] = (val
*) var89
;
5837 ((void (*)(val
*, val
*, long))(var93
->class->vft
[COLOR_array__Array__with_native
]))(var93
, var95
, var94
) /* with_native on <var93:Array[Object]>*/;
5839 var96
= ((val
* (*)(val
*))(var93
->class->vft
[COLOR_string__Object__to_s
]))(var93
) /* to_s on <var93:Array[Object]>*/;
5840 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var96
) /* add on <self:GlobalCompilerVisitor>*/;
5841 var97
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5842 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var97
) /* bugtype on <self:GlobalCompilerVisitor>*/;
5848 var102
= string__NativeString__to_s_with_length(var100
, var101
);
5852 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var99
) /* add on <self:GlobalCompilerVisitor>*/;
5858 var104
= varonce103
;
5862 var107
= string__NativeString__to_s_with_length(var105
, var106
);
5864 varonce103
= var104
;
5866 var108
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5868 var110
= varonce109
;
5870 var111
= "->classid) {";
5872 var113
= string__NativeString__to_s_with_length(var111
, var112
);
5874 varonce109
= var110
;
5876 var114
= NEW_array__Array(&type_array__Arraykernel__Object
);
5877 { /* var114 = array_instance Array[Object] */
5879 var116
= NEW_array__NativeArray(var115
, &type_array__NativeArraykernel__Object
);
5880 ((struct instance_array__NativeArray
*)var116
)->values
[0] = (val
*) var104
;
5881 ((struct instance_array__NativeArray
*)var116
)->values
[1] = (val
*) var108
;
5882 ((struct instance_array__NativeArray
*)var116
)->values
[2] = (val
*) var110
;
5883 ((void (*)(val
*, val
*, long))(var114
->class->vft
[COLOR_array__Array__with_native
]))(var114
, var116
, var115
) /* with_native on <var114:Array[Object]>*/;
5885 var117
= ((val
* (*)(val
*))(var114
->class->vft
[COLOR_string__Object__to_s
]))(var114
) /* to_s on <var114:Array[Object]>*/;
5886 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var117
) /* add on <self:GlobalCompilerVisitor>*/;
5887 var118
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
5889 var119
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
5891 var120
= ((short int (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var119
) /* is_ok on <var119:Iterator[nullable Object]>*/;
5893 var121
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var119
) /* item on <var119:Iterator[nullable Object]>*/;
5895 var122
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5896 var123
= ((val
* (*)(val
*))(var122
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var122
) /* mainmodule on <var122:AbstractCompiler(GlobalCompiler)>*/;
5897 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>*/;
5898 var_propdef125
= var124
;
5899 var127
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5900 var128
= ((short int (*)(val
*))(var127
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var127
) /* hardening on <var127:AbstractCompiler(GlobalCompiler)>*/;
5904 var130
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
5911 var132
= varonce131
;
5913 var133
= "default: /* test ";
5915 var135
= string__NativeString__to_s_with_length(var133
, var134
);
5917 varonce131
= var132
;
5920 var137
= varonce136
;
5924 var140
= string__NativeString__to_s_with_length(var138
, var139
);
5926 varonce136
= var137
;
5928 var141
= NEW_array__Array(&type_array__Arraykernel__Object
);
5929 { /* var141 = array_instance Array[Object] */
5931 var143
= NEW_array__NativeArray(var142
, &type_array__NativeArraykernel__Object
);
5932 ((struct instance_array__NativeArray
*)var143
)->values
[0] = (val
*) var132
;
5933 ((struct instance_array__NativeArray
*)var143
)->values
[1] = (val
*) var_t
;
5934 ((struct instance_array__NativeArray
*)var143
)->values
[2] = (val
*) var137
;
5935 ((void (*)(val
*, val
*, long))(var141
->class->vft
[COLOR_array__Array__with_native
]))(var141
, var143
, var142
) /* with_native on <var141:Array[Object]>*/;
5937 var144
= ((val
* (*)(val
*))(var141
->class->vft
[COLOR_string__Object__to_s
]))(var141
) /* to_s on <var141:Array[Object]>*/;
5938 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var144
) /* add on <self:GlobalCompilerVisitor>*/;
5941 var146
= varonce145
;
5945 var149
= string__NativeString__to_s_with_length(var147
, var148
);
5947 varonce145
= var146
;
5949 var150
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5950 var151
= ((val
* (*)(val
*, val
*))(var150
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var150
, var_t
) /* classid on <var150:AbstractCompiler(GlobalCompiler)>*/;
5952 var153
= varonce152
;
5954 var154
= ": /* test ";
5956 var156
= string__NativeString__to_s_with_length(var154
, var155
);
5958 varonce152
= var153
;
5961 var158
= varonce157
;
5965 var161
= string__NativeString__to_s_with_length(var159
, var160
);
5967 varonce157
= var158
;
5969 var162
= NEW_array__Array(&type_array__Arraykernel__Object
);
5970 { /* var162 = array_instance Array[Object] */
5972 var164
= NEW_array__NativeArray(var163
, &type_array__NativeArraykernel__Object
);
5973 ((struct instance_array__NativeArray
*)var164
)->values
[0] = (val
*) var146
;
5974 ((struct instance_array__NativeArray
*)var164
)->values
[1] = (val
*) var151
;
5975 ((struct instance_array__NativeArray
*)var164
)->values
[2] = (val
*) var153
;
5976 ((struct instance_array__NativeArray
*)var164
)->values
[3] = (val
*) var_t
;
5977 ((struct instance_array__NativeArray
*)var164
)->values
[4] = (val
*) var158
;
5978 ((void (*)(val
*, val
*, long))(var162
->class->vft
[COLOR_array__Array__with_native
]))(var162
, var164
, var163
) /* with_native on <var162:Array[Object]>*/;
5980 var165
= ((val
* (*)(val
*))(var162
->class->vft
[COLOR_string__Object__to_s
]))(var162
) /* to_s on <var162:Array[Object]>*/;
5981 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var165
) /* add on <self:GlobalCompilerVisitor>*/;
5983 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>*/;
5984 var_res2167
= var166
;
5986 if (var_res
== NULL
) {
5987 var169
= 0; /* is null */
5989 var169
= 1; /* arg is null and recv is not */
5992 if (var_res2167
== NULL
) {
5993 fprintf(stderr
, "Runtime error: %s", "Cast failed");
5994 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 525);
5997 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2167
) /* assign on <self:GlobalCompilerVisitor>*/;
6001 var171
= varonce170
;
6005 var174
= string__NativeString__to_s_with_length(var172
, var173
);
6007 varonce170
= var171
;
6009 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
6010 CONTINUE_label
: (void)0;
6011 ((void (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var119
) /* next on <var119:Iterator[nullable Object]>*/;
6013 BREAK_label
: (void)0;
6014 var175
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6015 var176
= ((short int (*)(val
*))(var175
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var175
) /* hardening on <var175:AbstractCompiler(GlobalCompiler)>*/;
6018 var178
= varonce177
;
6020 var179
= "default: /* bug */";
6022 var181
= string__NativeString__to_s_with_length(var179
, var180
);
6024 varonce177
= var178
;
6026 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var178
) /* add on <self:GlobalCompilerVisitor>*/;
6027 var182
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6028 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var182
) /* bugtype on <self:GlobalCompilerVisitor>*/;
6032 var184
= varonce183
;
6036 var187
= string__NativeString__to_s_with_length(var185
, var186
);
6038 varonce183
= var184
;
6040 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var184
) /* add on <self:GlobalCompilerVisitor>*/;
6046 /* method global_compiler#GlobalCompilerVisitor#supercall for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
6047 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__supercall(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6048 val
* var
/* : nullable RuntimeVariable */;
6049 val
* var1
/* : nullable RuntimeVariable */;
6050 var1
= global_compiler__GlobalCompilerVisitor__supercall(self
, p0
, p1
, p2
);
6055 /* method global_compiler#GlobalCompilerVisitor#adapt_signature for (self: GlobalCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
6056 void global_compiler__GlobalCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
6057 val
* var_m
/* var m: MMethodDef */;
6058 val
* var_args
/* var args: Array[RuntimeVariable] */;
6059 val
* var
/* : nullable Object */;
6060 val
* var_recv
/* var recv: RuntimeVariable */;
6061 val
* var1
/* : Range[Int] */;
6062 long var2
/* : Int */;
6063 val
* var3
/* : nullable MSignature */;
6064 long var4
/* : Int */;
6065 val
* var5
/* : Discrete */;
6066 val
* var6
/* : Discrete */;
6067 val
* var7
/* : Iterator[nullable Object] */;
6068 short int var8
/* : Bool */;
6069 val
* var9
/* : nullable Object */;
6070 long var_i
/* var i: Int */;
6071 long var10
/* : Int */;
6072 val
* var11
/* : nullable MSignature */;
6073 val
* var12
/* : Array[MParameter] */;
6074 val
* var13
/* : nullable Object */;
6075 val
* var14
/* : MType */;
6076 val
* var_t
/* var t: MType */;
6077 val
* var15
/* : nullable MSignature */;
6078 long var16
/* : Int */;
6079 short int var17
/* : Bool */;
6080 short int var19
/* : Bool */;
6081 long var20
/* : Int */;
6082 long var21
/* : Int */;
6083 long var23
/* : Int */;
6084 val
* var24
/* : nullable Object */;
6085 val
* var25
/* : MType */;
6086 val
* var26
/* : MType */;
6087 long var27
/* : Int */;
6088 long var28
/* : Int */;
6089 long var30
/* : Int */;
6090 long var31
/* : Int */;
6091 long var32
/* : Int */;
6092 long var34
/* : Int */;
6093 val
* var35
/* : nullable Object */;
6094 val
* var36
/* : RuntimeVariable */;
6097 var
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6099 var1
= NEW_range__Range(&type_range__Rangekernel__Int
);
6101 var3
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
6103 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
6104 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 539);
6107 var4
= ((long (*)(val
*))(var3
->class->vft
[COLOR_model__MSignature__arity
]))(var3
) /* arity on <var3:nullable MSignature>*/;
6109 var5
= BOX_kernel__Int(var2
); /* autobox from Int to Discrete */
6110 var6
= BOX_kernel__Int(var4
); /* autobox from Int to Discrete */
6111 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_range__Range__without_last
]))(var1
, var5
, var6
) /* without_last on <var1:Range[Int]>*/;
6112 var7
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var1
) /* iterator on <var1:Range[Int]>*/;
6114 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
6116 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
6117 var10
= ((struct instance_kernel__Int
*)var9
)->value
; /* autounbox from nullable Object to Int */;
6119 var11
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
6120 if (var11
== NULL
) {
6121 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
6122 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 540);
6125 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_model__MSignature__mparameters
]))(var11
) /* mparameters on <var11:nullable MSignature>*/;
6127 var13
= ((val
* (*)(val
*, long))(var12
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var12
, var_i
) /* [] on <var12:Array[MParameter]>*/;
6128 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__MParameter__mtype
]))(var13
) /* mtype on <var13:nullable Object(MParameter)>*/;
6130 var15
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
6131 if (var15
== NULL
) {
6132 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
6133 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 541);
6136 var16
= ((long (*)(val
*))(var15
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var15
) /* vararg_rank on <var15:nullable MSignature>*/;
6138 { /* Inline kernel#Int#== (var_i,var16) */
6139 var19
= var_i
== var16
;
6142 RET_LABEL18
:(void)0;
6146 { /* Inline kernel#Int#+ (var_i,var20) */
6147 var23
= var_i
+ var20
;
6150 RET_LABEL22
:(void)0;
6152 var24
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var21
) /* [] on <var_args:Array[RuntimeVariable]>*/;
6153 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var24
) /* mtype on <var24:nullable Object(RuntimeVariable)>*/;
6157 var26
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_t
, var_recv
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
6160 { /* Inline kernel#Int#+ (var_i,var27) */
6161 var30
= var_i
+ var27
;
6164 RET_LABEL29
:(void)0;
6167 { /* Inline kernel#Int#+ (var_i,var31) */
6168 var34
= var_i
+ var31
;
6171 RET_LABEL33
:(void)0;
6173 var35
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var32
) /* [] on <var_args:Array[RuntimeVariable]>*/;
6174 var36
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var35
, var_t
) /* autobox on <self:GlobalCompilerVisitor>*/;
6175 ((void (*)(val
*, long, val
*))(var_args
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_args
, var28
, var36
) /* []= on <var_args:Array[RuntimeVariable]>*/;
6176 CONTINUE_label
: (void)0;
6177 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
6179 BREAK_label
: (void)0;
6182 /* method global_compiler#GlobalCompilerVisitor#adapt_signature for (self: Object, MMethodDef, Array[RuntimeVariable]) */
6183 void VIRTUAL_global_compiler__GlobalCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
6184 global_compiler__GlobalCompilerVisitor__adapt_signature(self
, p0
, p1
);
6187 /* method global_compiler#GlobalCompilerVisitor#vararg_instance for (self: GlobalCompilerVisitor, MPropDef, RuntimeVariable, Array[RuntimeVariable], MType): RuntimeVariable */
6188 val
* global_compiler__GlobalCompilerVisitor__vararg_instance(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
6189 val
* var
/* : RuntimeVariable */;
6190 val
* var_mpropdef
/* var mpropdef: MPropDef */;
6191 val
* var_recv
/* var recv: RuntimeVariable */;
6192 val
* var_varargs
/* var varargs: Array[RuntimeVariable] */;
6193 val
* var_elttype
/* var elttype: MType */;
6194 val
* var1
/* : MType */;
6195 val
* var2
/* : RuntimeVariable */;
6200 var1
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_elttype
, var_recv
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
6202 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__array_instance
]))(self
, var_varargs
, var_elttype
) /* array_instance on <self:GlobalCompilerVisitor>*/;
6208 /* method global_compiler#GlobalCompilerVisitor#vararg_instance for (self: Object, MPropDef, RuntimeVariable, Array[RuntimeVariable], MType): RuntimeVariable */
6209 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__vararg_instance(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
6210 val
* var
/* : RuntimeVariable */;
6211 val
* var1
/* : RuntimeVariable */;
6212 var1
= global_compiler__GlobalCompilerVisitor__vararg_instance(self
, p0
, p1
, p2
, p3
);
6217 /* method global_compiler#GlobalCompilerVisitor#bugtype for (self: GlobalCompilerVisitor, RuntimeVariable) */
6218 void global_compiler__GlobalCompilerVisitor__bugtype(val
* self
, val
* p0
) {
6219 val
* var_recv
/* var recv: RuntimeVariable */;
6220 val
* var
/* : MType */;
6221 val
* var1
/* : String */;
6222 static val
* varonce
;
6223 val
* var2
/* : String */;
6224 char* var3
/* : NativeString */;
6225 long var4
/* : Int */;
6226 val
* var5
/* : String */;
6227 short int var6
/* : Bool */;
6228 static val
* varonce7
;
6229 val
* var8
/* : String */;
6230 char* var9
/* : NativeString */;
6231 long var10
/* : Int */;
6232 val
* var11
/* : String */;
6233 static val
* varonce12
;
6234 val
* var13
/* : String */;
6235 char* var14
/* : NativeString */;
6236 long var15
/* : Int */;
6237 val
* var16
/* : String */;
6238 val
* var17
/* : MType */;
6239 static val
* varonce18
;
6240 val
* var19
/* : String */;
6241 char* var20
/* : NativeString */;
6242 long var21
/* : Int */;
6243 val
* var22
/* : String */;
6244 val
* var23
/* : Array[Object] */;
6245 long var24
/* : Int */;
6246 val
* var25
/* : NativeArray[Object] */;
6247 val
* var26
/* : String */;
6248 static val
* varonce27
;
6249 val
* var28
/* : String */;
6250 char* var29
/* : NativeString */;
6251 long var30
/* : Int */;
6252 val
* var31
/* : String */;
6254 var
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_recv
) /* mtype on <var_recv:RuntimeVariable>*/;
6255 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var
) /* ctype on <var:MType>*/;
6261 var5
= string__NativeString__to_s_with_length(var3
, var4
);
6265 var6
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var1
, var2
) /* != on <var1:String>*/;
6273 var9
= "fprintf(stderr, \"BTD BUG: Dynamic type is %s, static type is %s\\n\", class_names[";
6275 var11
= string__NativeString__to_s_with_length(var9
, var10
);
6282 var14
= "->classid], \"";
6284 var16
= string__NativeString__to_s_with_length(var14
, var15
);
6288 var17
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_recv
) /* mcasttype on <var_recv:RuntimeVariable>*/;
6294 var22
= string__NativeString__to_s_with_length(var20
, var21
);
6298 var23
= NEW_array__Array(&type_array__Arraykernel__Object
);
6299 { /* var23 = array_instance Array[Object] */
6301 var25
= NEW_array__NativeArray(var24
, &type_array__NativeArraykernel__Object
);
6302 ((struct instance_array__NativeArray
*)var25
)->values
[0] = (val
*) var8
;
6303 ((struct instance_array__NativeArray
*)var25
)->values
[1] = (val
*) var_recv
;
6304 ((struct instance_array__NativeArray
*)var25
)->values
[2] = (val
*) var13
;
6305 ((struct instance_array__NativeArray
*)var25
)->values
[3] = (val
*) var17
;
6306 ((struct instance_array__NativeArray
*)var25
)->values
[4] = (val
*) var19
;
6307 ((void (*)(val
*, val
*, long))(var23
->class->vft
[COLOR_array__Array__with_native
]))(var23
, var25
, var24
) /* with_native on <var23:Array[Object]>*/;
6309 var26
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_string__Object__to_s
]))(var23
) /* to_s on <var23:Array[Object]>*/;
6310 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var26
) /* add on <self:GlobalCompilerVisitor>*/;
6314 var29
= "show_backtrace(1);";
6316 var31
= string__NativeString__to_s_with_length(var29
, var30
);
6320 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var28
) /* add on <self:GlobalCompilerVisitor>*/;
6323 /* method global_compiler#GlobalCompilerVisitor#bugtype for (self: Object, RuntimeVariable) */
6324 void VIRTUAL_global_compiler__GlobalCompilerVisitor__bugtype(val
* self
, val
* p0
) {
6325 global_compiler__GlobalCompilerVisitor__bugtype(self
, p0
);
6328 /* method global_compiler#GlobalCompilerVisitor#isset_attribute for (self: GlobalCompilerVisitor, MAttribute, RuntimeVariable): RuntimeVariable */
6329 val
* global_compiler__GlobalCompilerVisitor__isset_attribute(val
* self
, val
* p0
, val
* p1
) {
6330 val
* var
/* : RuntimeVariable */;
6331 val
* var_a
/* var a: MAttribute */;
6332 val
* var_recv
/* var recv: RuntimeVariable */;
6333 val
* var1
/* : Array[MClassType] */;
6334 val
* var_types
/* var types: Array[MClassType] */;
6335 val
* var2
/* : MClassType */;
6336 val
* var3
/* : RuntimeVariable */;
6337 val
* var_res
/* var res: RuntimeVariable */;
6338 short int var4
/* : Bool */;
6339 static val
* varonce
;
6340 val
* var5
/* : String */;
6341 char* var6
/* : NativeString */;
6342 long var7
/* : Int */;
6343 val
* var8
/* : String */;
6344 val
* var9
/* : String */;
6345 static val
* varonce10
;
6346 val
* var11
/* : String */;
6347 char* var12
/* : NativeString */;
6348 long var13
/* : Int */;
6349 val
* var14
/* : String */;
6350 static val
* varonce15
;
6351 val
* var16
/* : String */;
6352 char* var17
/* : NativeString */;
6353 long var18
/* : Int */;
6354 val
* var19
/* : String */;
6355 val
* var20
/* : Array[Object] */;
6356 long var21
/* : Int */;
6357 val
* var22
/* : NativeArray[Object] */;
6358 val
* var23
/* : String */;
6359 static val
* varonce24
;
6360 val
* var25
/* : String */;
6361 char* var26
/* : NativeString */;
6362 long var27
/* : Int */;
6363 val
* var28
/* : String */;
6364 static val
* varonce29
;
6365 val
* var30
/* : String */;
6366 char* var31
/* : NativeString */;
6367 long var32
/* : Int */;
6368 val
* var33
/* : String */;
6369 val
* var34
/* : String */;
6370 static val
* varonce35
;
6371 val
* var36
/* : String */;
6372 char* var37
/* : NativeString */;
6373 long var38
/* : Int */;
6374 val
* var39
/* : String */;
6375 val
* var40
/* : Array[Object] */;
6376 long var41
/* : Int */;
6377 val
* var42
/* : NativeArray[Object] */;
6378 val
* var43
/* : String */;
6379 static val
* varonce44
;
6380 val
* var45
/* : String */;
6381 char* var46
/* : NativeString */;
6382 long var47
/* : Int */;
6383 val
* var48
/* : String */;
6384 static val
* varonce49
;
6385 val
* var50
/* : String */;
6386 char* var51
/* : NativeString */;
6387 long var52
/* : Int */;
6388 val
* var53
/* : String */;
6389 val
* var54
/* : Array[Object] */;
6390 long var55
/* : Int */;
6391 val
* var56
/* : NativeArray[Object] */;
6392 val
* var57
/* : String */;
6393 val
* var58
/* : nullable Object */;
6394 val
* var_last
/* var last: MClassType */;
6395 val
* var59
/* : Iterator[nullable Object] */;
6396 short int var60
/* : Bool */;
6397 val
* var61
/* : nullable Object */;
6398 val
* var_t
/* var t: MClassType */;
6399 short int var62
/* : Bool */;
6400 val
* var63
/* : AbstractCompiler */;
6401 short int var64
/* : Bool */;
6402 short int var65
/* : Bool */;
6403 short int var_
/* var : Bool */;
6404 short int var66
/* : Bool */;
6405 static val
* varonce67
;
6406 val
* var68
/* : String */;
6407 char* var69
/* : NativeString */;
6408 long var70
/* : Int */;
6409 val
* var71
/* : String */;
6410 val
* var72
/* : AbstractCompiler */;
6411 val
* var73
/* : String */;
6412 static val
* varonce74
;
6413 val
* var75
/* : String */;
6414 char* var76
/* : NativeString */;
6415 long var77
/* : Int */;
6416 val
* var78
/* : String */;
6417 val
* var79
/* : Array[Object] */;
6418 long var80
/* : Int */;
6419 val
* var81
/* : NativeArray[Object] */;
6420 val
* var82
/* : String */;
6421 static val
* varonce83
;
6422 val
* var84
/* : String */;
6423 char* var85
/* : NativeString */;
6424 long var86
/* : Int */;
6425 val
* var87
/* : String */;
6426 val
* var88
/* : AbstractCompiler */;
6427 val
* var89
/* : String */;
6428 static val
* varonce90
;
6429 val
* var91
/* : String */;
6430 char* var92
/* : NativeString */;
6431 long var93
/* : Int */;
6432 val
* var94
/* : String */;
6433 val
* var95
/* : Array[Object] */;
6434 long var96
/* : Int */;
6435 val
* var97
/* : NativeArray[Object] */;
6436 val
* var98
/* : String */;
6437 val
* var99
/* : RuntimeVariable */;
6438 val
* var_recv2
/* var recv2: RuntimeVariable */;
6439 val
* var100
/* : MPropDef */;
6440 val
* var101
/* : nullable MType */;
6441 val
* var_ta
/* var ta: MType */;
6442 val
* var102
/* : MType */;
6443 static val
* varonce103
;
6444 val
* var104
/* : String */;
6445 char* var105
/* : NativeString */;
6446 long var106
/* : Int */;
6447 val
* var107
/* : String */;
6448 val
* var108
/* : String */;
6449 static val
* varonce109
;
6450 val
* var110
/* : String */;
6451 char* var111
/* : NativeString */;
6452 long var112
/* : Int */;
6453 val
* var113
/* : String */;
6454 static val
* varonce114
;
6455 val
* var115
/* : String */;
6456 char* var116
/* : NativeString */;
6457 long var117
/* : Int */;
6458 val
* var118
/* : String */;
6459 val
* var119
/* : MPropDef */;
6460 val
* var120
/* : String */;
6461 val
* var121
/* : Array[Object] */;
6462 long var122
/* : Int */;
6463 val
* var123
/* : NativeArray[Object] */;
6464 val
* var124
/* : String */;
6465 val
* var125
/* : RuntimeVariable */;
6466 val
* var_attr
/* var attr: RuntimeVariable */;
6467 short int var126
/* : Bool */;
6470 short int var127
/* : Bool */;
6471 val
* var128
/* : String */;
6472 static val
* varonce129
;
6473 val
* var130
/* : String */;
6474 char* var131
/* : NativeString */;
6475 long var132
/* : Int */;
6476 val
* var133
/* : String */;
6477 short int var134
/* : Bool */;
6478 static val
* varonce135
;
6479 val
* var136
/* : String */;
6480 char* var137
/* : NativeString */;
6481 long var138
/* : Int */;
6482 val
* var139
/* : String */;
6483 static val
* varonce140
;
6484 val
* var141
/* : String */;
6485 char* var142
/* : NativeString */;
6486 long var143
/* : Int */;
6487 val
* var144
/* : String */;
6488 val
* var145
/* : Array[Object] */;
6489 long var146
/* : Int */;
6490 val
* var147
/* : NativeArray[Object] */;
6491 val
* var148
/* : String */;
6492 static val
* varonce149
;
6493 val
* var150
/* : String */;
6494 char* var151
/* : NativeString */;
6495 long var152
/* : Int */;
6496 val
* var153
/* : String */;
6497 val
* var154
/* : Array[Object] */;
6498 long var155
/* : Int */;
6499 val
* var156
/* : NativeArray[Object] */;
6500 val
* var157
/* : String */;
6501 static val
* varonce158
;
6502 val
* var159
/* : String */;
6503 char* var160
/* : NativeString */;
6504 long var161
/* : Int */;
6505 val
* var162
/* : String */;
6506 val
* var163
/* : AbstractCompiler */;
6507 short int var164
/* : Bool */;
6508 static val
* varonce165
;
6509 val
* var166
/* : String */;
6510 char* var167
/* : NativeString */;
6511 long var168
/* : Int */;
6512 val
* var169
/* : String */;
6513 static val
* varonce170
;
6514 val
* var171
/* : String */;
6515 char* var172
/* : NativeString */;
6516 long var173
/* : Int */;
6517 val
* var174
/* : String */;
6520 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__check_recv_notnull
]))(self
, var_recv
) /* check_recv_notnull on <self:GlobalCompilerVisitor>*/;
6521 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_recv
) /* collect_types on <self:GlobalCompilerVisitor>*/;
6523 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type
]))(self
) /* bool_type on <self:GlobalCompilerVisitor>*/;
6524 var3
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var2
) /* new_var on <self:GlobalCompilerVisitor>*/;
6526 var4
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
6531 var6
= "/*BUG: no live types for ";
6533 var8
= string__NativeString__to_s_with_length(var6
, var7
);
6537 var9
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
6543 var14
= string__NativeString__to_s_with_length(var12
, var13
);
6552 var19
= string__NativeString__to_s_with_length(var17
, var18
);
6556 var20
= NEW_array__Array(&type_array__Arraykernel__Object
);
6557 { /* var20 = array_instance Array[Object] */
6559 var22
= NEW_array__NativeArray(var21
, &type_array__NativeArraykernel__Object
);
6560 ((struct instance_array__NativeArray
*)var22
)->values
[0] = (val
*) var5
;
6561 ((struct instance_array__NativeArray
*)var22
)->values
[1] = (val
*) var9
;
6562 ((struct instance_array__NativeArray
*)var22
)->values
[2] = (val
*) var11
;
6563 ((struct instance_array__NativeArray
*)var22
)->values
[3] = (val
*) var_a
;
6564 ((struct instance_array__NativeArray
*)var22
)->values
[4] = (val
*) var16
;
6565 ((void (*)(val
*, val
*, long))(var20
->class->vft
[COLOR_array__Array__with_native
]))(var20
, var22
, var21
) /* with_native on <var20:Array[Object]>*/;
6567 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_string__Object__to_s
]))(var20
) /* to_s on <var20:Array[Object]>*/;
6568 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var23
) /* add on <self:GlobalCompilerVisitor>*/;
6569 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
6577 var26
= "/* isset ";
6579 var28
= string__NativeString__to_s_with_length(var26
, var27
);
6588 var33
= string__NativeString__to_s_with_length(var31
, var32
);
6592 var34
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
6598 var39
= string__NativeString__to_s_with_length(var37
, var38
);
6602 var40
= NEW_array__Array(&type_array__Arraykernel__Object
);
6603 { /* var40 = array_instance Array[Object] */
6605 var42
= NEW_array__NativeArray(var41
, &type_array__NativeArraykernel__Object
);
6606 ((struct instance_array__NativeArray
*)var42
)->values
[0] = (val
*) var25
;
6607 ((struct instance_array__NativeArray
*)var42
)->values
[1] = (val
*) var_a
;
6608 ((struct instance_array__NativeArray
*)var42
)->values
[2] = (val
*) var30
;
6609 ((struct instance_array__NativeArray
*)var42
)->values
[3] = (val
*) var34
;
6610 ((struct instance_array__NativeArray
*)var42
)->values
[4] = (val
*) var36
;
6611 ((void (*)(val
*, val
*, long))(var40
->class->vft
[COLOR_array__Array__with_native
]))(var40
, var42
, var41
) /* with_native on <var40:Array[Object]>*/;
6613 var43
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_string__Object__to_s
]))(var40
) /* to_s on <var40:Array[Object]>*/;
6614 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var43
) /* add on <self:GlobalCompilerVisitor>*/;
6620 var48
= string__NativeString__to_s_with_length(var46
, var47
);
6627 var51
= "->classid) {";
6629 var53
= string__NativeString__to_s_with_length(var51
, var52
);
6633 var54
= NEW_array__Array(&type_array__Arraykernel__Object
);
6634 { /* var54 = array_instance Array[Object] */
6636 var56
= NEW_array__NativeArray(var55
, &type_array__NativeArraykernel__Object
);
6637 ((struct instance_array__NativeArray
*)var56
)->values
[0] = (val
*) var45
;
6638 ((struct instance_array__NativeArray
*)var56
)->values
[1] = (val
*) var_recv
;
6639 ((struct instance_array__NativeArray
*)var56
)->values
[2] = (val
*) var50
;
6640 ((void (*)(val
*, val
*, long))(var54
->class->vft
[COLOR_array__Array__with_native
]))(var54
, var56
, var55
) /* with_native on <var54:Array[Object]>*/;
6642 var57
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_string__Object__to_s
]))(var54
) /* to_s on <var54:Array[Object]>*/;
6643 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var57
) /* add on <self:GlobalCompilerVisitor>*/;
6644 var58
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
6646 var59
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
6648 var60
= ((short int (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var59
) /* is_ok on <var59:Iterator[nullable Object]>*/;
6650 var61
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var59
) /* item on <var59:Iterator[nullable Object]>*/;
6652 var63
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6653 var64
= ((short int (*)(val
*))(var63
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var63
) /* hardening on <var63:AbstractCompiler(GlobalCompiler)>*/;
6657 var66
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
6666 var69
= "default: /*";
6668 var71
= string__NativeString__to_s_with_length(var69
, var70
);
6672 var72
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6673 var73
= ((val
* (*)(val
*, val
*))(var72
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var72
, var_t
) /* classid on <var72:AbstractCompiler(GlobalCompiler)>*/;
6679 var78
= string__NativeString__to_s_with_length(var76
, var77
);
6683 var79
= NEW_array__Array(&type_array__Arraykernel__Object
);
6684 { /* var79 = array_instance Array[Object] */
6686 var81
= NEW_array__NativeArray(var80
, &type_array__NativeArraykernel__Object
);
6687 ((struct instance_array__NativeArray
*)var81
)->values
[0] = (val
*) var68
;
6688 ((struct instance_array__NativeArray
*)var81
)->values
[1] = (val
*) var73
;
6689 ((struct instance_array__NativeArray
*)var81
)->values
[2] = (val
*) var75
;
6690 ((void (*)(val
*, val
*, long))(var79
->class->vft
[COLOR_array__Array__with_native
]))(var79
, var81
, var80
) /* with_native on <var79:Array[Object]>*/;
6692 var82
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_string__Object__to_s
]))(var79
) /* to_s on <var79:Array[Object]>*/;
6693 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var82
) /* add on <self:GlobalCompilerVisitor>*/;
6700 var87
= string__NativeString__to_s_with_length(var85
, var86
);
6704 var88
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6705 var89
= ((val
* (*)(val
*, val
*))(var88
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var88
, var_t
) /* classid on <var88:AbstractCompiler(GlobalCompiler)>*/;
6711 var94
= string__NativeString__to_s_with_length(var92
, var93
);
6715 var95
= NEW_array__Array(&type_array__Arraykernel__Object
);
6716 { /* var95 = array_instance Array[Object] */
6718 var97
= NEW_array__NativeArray(var96
, &type_array__NativeArraykernel__Object
);
6719 ((struct instance_array__NativeArray
*)var97
)->values
[0] = (val
*) var84
;
6720 ((struct instance_array__NativeArray
*)var97
)->values
[1] = (val
*) var89
;
6721 ((struct instance_array__NativeArray
*)var97
)->values
[2] = (val
*) var91
;
6722 ((void (*)(val
*, val
*, long))(var95
->class->vft
[COLOR_array__Array__with_native
]))(var95
, var97
, var96
) /* with_native on <var95:Array[Object]>*/;
6724 var98
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_string__Object__to_s
]))(var95
) /* to_s on <var95:Array[Object]>*/;
6725 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var98
) /* add on <self:GlobalCompilerVisitor>*/;
6727 var99
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var_recv
, var_t
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
6729 var100
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
6730 var101
= ((val
* (*)(val
*))(var100
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var100
) /* static_mtype on <var100:MPropDef(MAttributeDef)>*/;
6731 if (var101
== NULL
) {
6732 fprintf(stderr
, "Runtime error: %s", "Cast failed");
6733 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 585);
6737 var102
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ta
, var_recv2
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
6740 var104
= varonce103
;
6742 var105
= "((struct ";
6744 var107
= string__NativeString__to_s_with_length(var105
, var106
);
6746 varonce103
= var104
;
6748 var108
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_t
) /* c_name on <var_t:MClassType>*/;
6750 var110
= varonce109
;
6754 var113
= string__NativeString__to_s_with_length(var111
, var112
);
6756 varonce109
= var110
;
6759 var115
= varonce114
;
6763 var118
= string__NativeString__to_s_with_length(var116
, var117
);
6765 varonce114
= var115
;
6767 var119
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
6768 var120
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var119
) /* c_name on <var119:MPropDef(MAttributeDef)>*/;
6769 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
6770 { /* var121 = array_instance Array[Object] */
6772 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
6773 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var104
;
6774 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var108
;
6775 ((struct instance_array__NativeArray
*)var123
)->values
[2] = (val
*) var110
;
6776 ((struct instance_array__NativeArray
*)var123
)->values
[3] = (val
*) var_recv
;
6777 ((struct instance_array__NativeArray
*)var123
)->values
[4] = (val
*) var115
;
6778 ((struct instance_array__NativeArray
*)var123
)->values
[5] = (val
*) var120
;
6779 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
6781 var124
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
6782 var125
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var124
, var_ta
) /* new_expr on <self:GlobalCompilerVisitor>*/;
6784 /* <var_ta:MType> isa MNullableType */
6785 cltype
= type_model__MNullableType
.color
;
6786 idtype
= type_model__MNullableType
.id
;
6787 if(cltype
>= var_ta
->type
->table_size
) {
6790 var126
= var_ta
->type
->type_table
[cltype
] == idtype
;
6794 var128
= ((val
* (*)(val
*))(var_ta
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_ta
) /* ctype on <var_ta:MType>*/;
6796 var130
= varonce129
;
6800 var133
= string__NativeString__to_s_with_length(var131
, var132
);
6802 varonce129
= var130
;
6804 var134
= ((short int (*)(val
*, val
*))(var128
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var128
, var130
) /* == on <var128:String>*/;
6807 var136
= varonce135
;
6811 var139
= string__NativeString__to_s_with_length(var137
, var138
);
6813 varonce135
= var136
;
6816 var141
= varonce140
;
6818 var142
= " != NULL);";
6820 var144
= string__NativeString__to_s_with_length(var142
, var143
);
6822 varonce140
= var141
;
6824 var145
= NEW_array__Array(&type_array__Arraykernel__Object
);
6825 { /* var145 = array_instance Array[Object] */
6827 var147
= NEW_array__NativeArray(var146
, &type_array__NativeArraykernel__Object
);
6828 ((struct instance_array__NativeArray
*)var147
)->values
[0] = (val
*) var_res
;
6829 ((struct instance_array__NativeArray
*)var147
)->values
[1] = (val
*) var136
;
6830 ((struct instance_array__NativeArray
*)var147
)->values
[2] = (val
*) var_attr
;
6831 ((struct instance_array__NativeArray
*)var147
)->values
[3] = (val
*) var141
;
6832 ((void (*)(val
*, val
*, long))(var145
->class->vft
[COLOR_array__Array__with_native
]))(var145
, var147
, var146
) /* with_native on <var145:Array[Object]>*/;
6834 var148
= ((val
* (*)(val
*))(var145
->class->vft
[COLOR_string__Object__to_s
]))(var145
) /* to_s on <var145:Array[Object]>*/;
6835 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var148
) /* add on <self:GlobalCompilerVisitor>*/;
6838 var150
= varonce149
;
6840 var151
= " = 1; /*NOTYET isset on primitive attributes*/";
6842 var153
= string__NativeString__to_s_with_length(var151
, var152
);
6844 varonce149
= var150
;
6846 var154
= NEW_array__Array(&type_array__Arraykernel__Object
);
6847 { /* var154 = array_instance Array[Object] */
6849 var156
= NEW_array__NativeArray(var155
, &type_array__NativeArraykernel__Object
);
6850 ((struct instance_array__NativeArray
*)var156
)->values
[0] = (val
*) var_res
;
6851 ((struct instance_array__NativeArray
*)var156
)->values
[1] = (val
*) var150
;
6852 ((void (*)(val
*, val
*, long))(var154
->class->vft
[COLOR_array__Array__with_native
]))(var154
, var156
, var155
) /* with_native on <var154:Array[Object]>*/;
6854 var157
= ((val
* (*)(val
*))(var154
->class->vft
[COLOR_string__Object__to_s
]))(var154
) /* to_s on <var154:Array[Object]>*/;
6855 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var157
) /* add on <self:GlobalCompilerVisitor>*/;
6860 var159
= varonce158
;
6864 var162
= string__NativeString__to_s_with_length(var160
, var161
);
6866 varonce158
= var159
;
6868 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var159
) /* add on <self:GlobalCompilerVisitor>*/;
6869 CONTINUE_label
: (void)0;
6870 ((void (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var59
) /* next on <var59:Iterator[nullable Object]>*/;
6872 BREAK_label
: (void)0;
6873 var163
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6874 var164
= ((short int (*)(val
*))(var163
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var163
) /* hardening on <var163:AbstractCompiler(GlobalCompiler)>*/;
6877 var166
= varonce165
;
6879 var167
= "default: /* Bug */";
6881 var169
= string__NativeString__to_s_with_length(var167
, var168
);
6883 varonce165
= var166
;
6885 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var166
) /* add on <self:GlobalCompilerVisitor>*/;
6886 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
6890 var171
= varonce170
;
6894 var174
= string__NativeString__to_s_with_length(var172
, var173
);
6896 varonce170
= var171
;
6898 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
6904 /* method global_compiler#GlobalCompilerVisitor#isset_attribute for (self: Object, MAttribute, RuntimeVariable): RuntimeVariable */
6905 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__isset_attribute(val
* self
, val
* p0
, val
* p1
) {
6906 val
* var
/* : RuntimeVariable */;
6907 val
* var1
/* : RuntimeVariable */;
6908 var1
= global_compiler__GlobalCompilerVisitor__isset_attribute(self
, p0
, p1
);
6913 /* method global_compiler#GlobalCompilerVisitor#read_attribute for (self: GlobalCompilerVisitor, MAttribute, RuntimeVariable): RuntimeVariable */
6914 val
* global_compiler__GlobalCompilerVisitor__read_attribute(val
* self
, val
* p0
, val
* p1
) {
6915 val
* var
/* : RuntimeVariable */;
6916 val
* var_a
/* var a: MAttribute */;
6917 val
* var_recv
/* var recv: RuntimeVariable */;
6918 val
* var1
/* : Array[MClassType] */;
6919 val
* var_types
/* var types: Array[MClassType] */;
6920 val
* var2
/* : MPropDef */;
6921 val
* var3
/* : nullable MType */;
6922 val
* var_ret
/* var ret: MType */;
6923 val
* var4
/* : MType */;
6924 val
* var5
/* : RuntimeVariable */;
6925 val
* var_res
/* var res: RuntimeVariable */;
6926 short int var6
/* : Bool */;
6927 static val
* varonce
;
6928 val
* var7
/* : String */;
6929 char* var8
/* : NativeString */;
6930 long var9
/* : Int */;
6931 val
* var10
/* : String */;
6932 val
* var11
/* : String */;
6933 static val
* varonce12
;
6934 val
* var13
/* : String */;
6935 char* var14
/* : NativeString */;
6936 long var15
/* : Int */;
6937 val
* var16
/* : String */;
6938 static val
* varonce17
;
6939 val
* var18
/* : String */;
6940 char* var19
/* : NativeString */;
6941 long var20
/* : Int */;
6942 val
* var21
/* : String */;
6943 val
* var22
/* : Array[Object] */;
6944 long var23
/* : Int */;
6945 val
* var24
/* : NativeArray[Object] */;
6946 val
* var25
/* : String */;
6947 static val
* varonce26
;
6948 val
* var27
/* : String */;
6949 char* var28
/* : NativeString */;
6950 long var29
/* : Int */;
6951 val
* var30
/* : String */;
6952 static val
* varonce31
;
6953 val
* var32
/* : String */;
6954 char* var33
/* : NativeString */;
6955 long var34
/* : Int */;
6956 val
* var35
/* : String */;
6957 val
* var36
/* : String */;
6958 static val
* varonce37
;
6959 val
* var38
/* : String */;
6960 char* var39
/* : NativeString */;
6961 long var40
/* : Int */;
6962 val
* var41
/* : String */;
6963 val
* var42
/* : Array[Object] */;
6964 long var43
/* : Int */;
6965 val
* var44
/* : NativeArray[Object] */;
6966 val
* var45
/* : String */;
6967 static val
* varonce46
;
6968 val
* var47
/* : String */;
6969 char* var48
/* : NativeString */;
6970 long var49
/* : Int */;
6971 val
* var50
/* : String */;
6972 static val
* varonce51
;
6973 val
* var52
/* : String */;
6974 char* var53
/* : NativeString */;
6975 long var54
/* : Int */;
6976 val
* var55
/* : String */;
6977 val
* var56
/* : Array[Object] */;
6978 long var57
/* : Int */;
6979 val
* var58
/* : NativeArray[Object] */;
6980 val
* var59
/* : String */;
6981 val
* var60
/* : nullable Object */;
6982 val
* var_last
/* var last: MClassType */;
6983 val
* var61
/* : Iterator[nullable Object] */;
6984 short int var62
/* : Bool */;
6985 val
* var63
/* : nullable Object */;
6986 val
* var_t
/* var t: MClassType */;
6987 short int var64
/* : Bool */;
6988 val
* var65
/* : AbstractCompiler */;
6989 short int var66
/* : Bool */;
6990 short int var67
/* : Bool */;
6991 short int var_
/* var : Bool */;
6992 short int var68
/* : Bool */;
6993 static val
* varonce69
;
6994 val
* var70
/* : String */;
6995 char* var71
/* : NativeString */;
6996 long var72
/* : Int */;
6997 val
* var73
/* : String */;
6998 val
* var74
/* : AbstractCompiler */;
6999 val
* var75
/* : String */;
7000 static val
* varonce76
;
7001 val
* var77
/* : String */;
7002 char* var78
/* : NativeString */;
7003 long var79
/* : Int */;
7004 val
* var80
/* : String */;
7005 val
* var81
/* : Array[Object] */;
7006 long var82
/* : Int */;
7007 val
* var83
/* : NativeArray[Object] */;
7008 val
* var84
/* : String */;
7009 static val
* varonce85
;
7010 val
* var86
/* : String */;
7011 char* var87
/* : NativeString */;
7012 long var88
/* : Int */;
7013 val
* var89
/* : String */;
7014 val
* var90
/* : AbstractCompiler */;
7015 val
* var91
/* : String */;
7016 static val
* varonce92
;
7017 val
* var93
/* : String */;
7018 char* var94
/* : NativeString */;
7019 long var95
/* : Int */;
7020 val
* var96
/* : String */;
7021 val
* var97
/* : Array[Object] */;
7022 long var98
/* : Int */;
7023 val
* var99
/* : NativeArray[Object] */;
7024 val
* var100
/* : String */;
7025 val
* var101
/* : RuntimeVariable */;
7026 val
* var_recv2
/* var recv2: RuntimeVariable */;
7027 val
* var102
/* : MPropDef */;
7028 val
* var103
/* : nullable MType */;
7029 val
* var_ta
/* var ta: MType */;
7030 val
* var104
/* : MType */;
7031 static val
* varonce105
;
7032 val
* var106
/* : String */;
7033 char* var107
/* : NativeString */;
7034 long var108
/* : Int */;
7035 val
* var109
/* : String */;
7036 val
* var110
/* : String */;
7037 static val
* varonce111
;
7038 val
* var112
/* : String */;
7039 char* var113
/* : NativeString */;
7040 long var114
/* : Int */;
7041 val
* var115
/* : String */;
7042 static val
* varonce116
;
7043 val
* var117
/* : String */;
7044 char* var118
/* : NativeString */;
7045 long var119
/* : Int */;
7046 val
* var120
/* : String */;
7047 val
* var121
/* : MPropDef */;
7048 val
* var122
/* : String */;
7049 val
* var123
/* : Array[Object] */;
7050 long var124
/* : Int */;
7051 val
* var125
/* : NativeArray[Object] */;
7052 val
* var126
/* : String */;
7053 val
* var127
/* : RuntimeVariable */;
7054 val
* var_res2
/* var res2: RuntimeVariable */;
7055 short int var128
/* : Bool */;
7056 short int var129
/* : Bool */;
7059 short int var130
/* : Bool */;
7060 short int var_131
/* var : Bool */;
7061 val
* var132
/* : AbstractCompiler */;
7062 val
* var133
/* : ModelBuilder */;
7063 val
* var134
/* : ToolContext */;
7064 val
* var135
/* : OptionBool */;
7065 val
* var136
/* : nullable Object */;
7066 short int var137
/* : Bool */;
7067 short int var138
/* : Bool */;
7068 val
* var139
/* : String */;
7069 static val
* varonce140
;
7070 val
* var141
/* : String */;
7071 char* var142
/* : NativeString */;
7072 long var143
/* : Int */;
7073 val
* var144
/* : String */;
7074 short int var145
/* : Bool */;
7075 static val
* varonce146
;
7076 val
* var147
/* : String */;
7077 char* var148
/* : NativeString */;
7078 long var149
/* : Int */;
7079 val
* var150
/* : String */;
7080 static val
* varonce151
;
7081 val
* var152
/* : String */;
7082 char* var153
/* : NativeString */;
7083 long var154
/* : Int */;
7084 val
* var155
/* : String */;
7085 val
* var156
/* : Array[Object] */;
7086 long var157
/* : Int */;
7087 val
* var158
/* : NativeArray[Object] */;
7088 val
* var159
/* : String */;
7089 static val
* varonce160
;
7090 val
* var161
/* : String */;
7091 char* var162
/* : NativeString */;
7092 long var163
/* : Int */;
7093 val
* var164
/* : String */;
7094 val
* var165
/* : String */;
7095 val
* var166
/* : Array[Object] */;
7096 long var167
/* : Int */;
7097 val
* var168
/* : NativeArray[Object] */;
7098 val
* var169
/* : String */;
7099 static val
* varonce170
;
7100 val
* var171
/* : String */;
7101 char* var172
/* : NativeString */;
7102 long var173
/* : Int */;
7103 val
* var174
/* : String */;
7104 static val
* varonce175
;
7105 val
* var176
/* : String */;
7106 char* var177
/* : NativeString */;
7107 long var178
/* : Int */;
7108 val
* var179
/* : String */;
7109 static val
* varonce180
;
7110 val
* var181
/* : String */;
7111 char* var182
/* : NativeString */;
7112 long var183
/* : Int */;
7113 val
* var184
/* : String */;
7114 val
* var185
/* : AbstractCompiler */;
7115 short int var186
/* : Bool */;
7116 static val
* varonce187
;
7117 val
* var188
/* : String */;
7118 char* var189
/* : NativeString */;
7119 long var190
/* : Int */;
7120 val
* var191
/* : String */;
7121 static val
* varonce192
;
7122 val
* var193
/* : String */;
7123 char* var194
/* : NativeString */;
7124 long var195
/* : Int */;
7125 val
* var196
/* : String */;
7128 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__check_recv_notnull
]))(self
, var_recv
) /* check_recv_notnull on <self:GlobalCompilerVisitor>*/;
7129 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_recv
) /* collect_types on <self:GlobalCompilerVisitor>*/;
7131 var2
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7132 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var2
) /* static_mtype on <var2:MPropDef(MAttributeDef)>*/;
7134 fprintf(stderr
, "Runtime error: %s", "Cast failed");
7135 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 612);
7139 var4
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ret
, var_recv
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
7141 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
7143 var6
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
7148 var8
= "/*BUG: no live types for ";
7150 var10
= string__NativeString__to_s_with_length(var8
, var9
);
7154 var11
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
7160 var16
= string__NativeString__to_s_with_length(var14
, var15
);
7169 var21
= string__NativeString__to_s_with_length(var19
, var20
);
7173 var22
= NEW_array__Array(&type_array__Arraykernel__Object
);
7174 { /* var22 = array_instance Array[Object] */
7176 var24
= NEW_array__NativeArray(var23
, &type_array__NativeArraykernel__Object
);
7177 ((struct instance_array__NativeArray
*)var24
)->values
[0] = (val
*) var7
;
7178 ((struct instance_array__NativeArray
*)var24
)->values
[1] = (val
*) var11
;
7179 ((struct instance_array__NativeArray
*)var24
)->values
[2] = (val
*) var13
;
7180 ((struct instance_array__NativeArray
*)var24
)->values
[3] = (val
*) var_a
;
7181 ((struct instance_array__NativeArray
*)var24
)->values
[4] = (val
*) var18
;
7182 ((void (*)(val
*, val
*, long))(var22
->class->vft
[COLOR_array__Array__with_native
]))(var22
, var24
, var23
) /* with_native on <var22:Array[Object]>*/;
7184 var25
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_string__Object__to_s
]))(var22
) /* to_s on <var22:Array[Object]>*/;
7185 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var25
) /* add on <self:GlobalCompilerVisitor>*/;
7186 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
7196 var30
= string__NativeString__to_s_with_length(var28
, var29
);
7205 var35
= string__NativeString__to_s_with_length(var33
, var34
);
7209 var36
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
7215 var41
= string__NativeString__to_s_with_length(var39
, var40
);
7219 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
7220 { /* var42 = array_instance Array[Object] */
7222 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
7223 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var27
;
7224 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_a
;
7225 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var32
;
7226 ((struct instance_array__NativeArray
*)var44
)->values
[3] = (val
*) var36
;
7227 ((struct instance_array__NativeArray
*)var44
)->values
[4] = (val
*) var38
;
7228 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
7230 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
7231 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var45
) /* add on <self:GlobalCompilerVisitor>*/;
7237 var50
= string__NativeString__to_s_with_length(var48
, var49
);
7244 var53
= "->classid) {";
7246 var55
= string__NativeString__to_s_with_length(var53
, var54
);
7250 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
7251 { /* var56 = array_instance Array[Object] */
7253 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
7254 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var47
;
7255 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var_recv
;
7256 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var52
;
7257 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
7259 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
7260 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var59
) /* add on <self:GlobalCompilerVisitor>*/;
7261 var60
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
7263 var61
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
7265 var62
= ((short int (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var61
) /* is_ok on <var61:Iterator[nullable Object]>*/;
7267 var63
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var61
) /* item on <var61:Iterator[nullable Object]>*/;
7269 var65
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7270 var66
= ((short int (*)(val
*))(var65
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var65
) /* hardening on <var65:AbstractCompiler(GlobalCompiler)>*/;
7274 var68
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
7283 var71
= "default: /*";
7285 var73
= string__NativeString__to_s_with_length(var71
, var72
);
7289 var74
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7290 var75
= ((val
* (*)(val
*, val
*))(var74
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var74
, var_t
) /* classid on <var74:AbstractCompiler(GlobalCompiler)>*/;
7296 var80
= string__NativeString__to_s_with_length(var78
, var79
);
7300 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
7301 { /* var81 = array_instance Array[Object] */
7303 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
7304 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var70
;
7305 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var75
;
7306 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var77
;
7307 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
7309 var84
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
7310 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var84
) /* add on <self:GlobalCompilerVisitor>*/;
7317 var89
= string__NativeString__to_s_with_length(var87
, var88
);
7321 var90
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7322 var91
= ((val
* (*)(val
*, val
*))(var90
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var90
, var_t
) /* classid on <var90:AbstractCompiler(GlobalCompiler)>*/;
7328 var96
= string__NativeString__to_s_with_length(var94
, var95
);
7332 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
7333 { /* var97 = array_instance Array[Object] */
7335 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
7336 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var86
;
7337 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var91
;
7338 ((struct instance_array__NativeArray
*)var99
)->values
[2] = (val
*) var93
;
7339 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
7341 var100
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
7342 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var100
) /* add on <self:GlobalCompilerVisitor>*/;
7344 var101
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var_recv
, var_t
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
7346 var102
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7347 var103
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var102
) /* static_mtype on <var102:MPropDef(MAttributeDef)>*/;
7348 if (var103
== NULL
) {
7349 fprintf(stderr
, "Runtime error: %s", "Cast failed");
7350 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 631);
7354 var104
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ta
, var_recv2
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
7357 var106
= varonce105
;
7359 var107
= "((struct ";
7361 var109
= string__NativeString__to_s_with_length(var107
, var108
);
7363 varonce105
= var106
;
7365 var110
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_t
) /* c_name on <var_t:MClassType>*/;
7367 var112
= varonce111
;
7371 var115
= string__NativeString__to_s_with_length(var113
, var114
);
7373 varonce111
= var112
;
7376 var117
= varonce116
;
7380 var120
= string__NativeString__to_s_with_length(var118
, var119
);
7382 varonce116
= var117
;
7384 var121
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7385 var122
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var121
) /* c_name on <var121:MPropDef(MAttributeDef)>*/;
7386 var123
= NEW_array__Array(&type_array__Arraykernel__Object
);
7387 { /* var123 = array_instance Array[Object] */
7389 var125
= NEW_array__NativeArray(var124
, &type_array__NativeArraykernel__Object
);
7390 ((struct instance_array__NativeArray
*)var125
)->values
[0] = (val
*) var106
;
7391 ((struct instance_array__NativeArray
*)var125
)->values
[1] = (val
*) var110
;
7392 ((struct instance_array__NativeArray
*)var125
)->values
[2] = (val
*) var112
;
7393 ((struct instance_array__NativeArray
*)var125
)->values
[3] = (val
*) var_recv
;
7394 ((struct instance_array__NativeArray
*)var125
)->values
[4] = (val
*) var117
;
7395 ((struct instance_array__NativeArray
*)var125
)->values
[5] = (val
*) var122
;
7396 ((void (*)(val
*, val
*, long))(var123
->class->vft
[COLOR_array__Array__with_native
]))(var123
, var125
, var124
) /* with_native on <var123:Array[Object]>*/;
7398 var126
= ((val
* (*)(val
*))(var123
->class->vft
[COLOR_string__Object__to_s
]))(var123
) /* to_s on <var123:Array[Object]>*/;
7399 var127
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var126
, var_ta
) /* new_expr on <self:GlobalCompilerVisitor>*/;
7401 /* <var_ta:MType> isa MNullableType */
7402 cltype
= type_model__MNullableType
.color
;
7403 idtype
= type_model__MNullableType
.id
;
7404 if(cltype
>= var_ta
->type
->table_size
) {
7407 var129
= var_ta
->type
->type_table
[cltype
] == idtype
;
7412 var132
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7413 var133
= ((val
* (*)(val
*))(var132
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var132
) /* modelbuilder on <var132:AbstractCompiler(GlobalCompiler)>*/;
7414 var134
= ((val
* (*)(val
*))(var133
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var133
) /* toolcontext on <var133:ModelBuilder>*/;
7415 var135
= ((val
* (*)(val
*))(var134
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_no_check_other
]))(var134
) /* opt_no_check_other on <var134:ToolContext>*/;
7416 var136
= ((val
* (*)(val
*))(var135
->class->vft
[COLOR_opts__Option__value
]))(var135
) /* value on <var135:OptionBool>*/;
7417 var137
= ((struct instance_kernel__Bool
*)var136
)->value
; /* autounbox from nullable Object to Bool */;
7424 var139
= ((val
* (*)(val
*))(var_ta
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_ta
) /* ctype on <var_ta:MType>*/;
7426 var141
= varonce140
;
7430 var144
= string__NativeString__to_s_with_length(var142
, var143
);
7432 varonce140
= var141
;
7434 var145
= ((short int (*)(val
*, val
*))(var139
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var139
, var141
) /* == on <var139:String>*/;
7437 var147
= varonce146
;
7441 var150
= string__NativeString__to_s_with_length(var148
, var149
);
7443 varonce146
= var147
;
7446 var152
= varonce151
;
7448 var153
= " == NULL) {";
7450 var155
= string__NativeString__to_s_with_length(var153
, var154
);
7452 varonce151
= var152
;
7454 var156
= NEW_array__Array(&type_array__Arraykernel__Object
);
7455 { /* var156 = array_instance Array[Object] */
7457 var158
= NEW_array__NativeArray(var157
, &type_array__NativeArraykernel__Object
);
7458 ((struct instance_array__NativeArray
*)var158
)->values
[0] = (val
*) var147
;
7459 ((struct instance_array__NativeArray
*)var158
)->values
[1] = (val
*) var_res2
;
7460 ((struct instance_array__NativeArray
*)var158
)->values
[2] = (val
*) var152
;
7461 ((void (*)(val
*, val
*, long))(var156
->class->vft
[COLOR_array__Array__with_native
]))(var156
, var158
, var157
) /* with_native on <var156:Array[Object]>*/;
7463 var159
= ((val
* (*)(val
*))(var156
->class->vft
[COLOR_string__Object__to_s
]))(var156
) /* to_s on <var156:Array[Object]>*/;
7464 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var159
) /* add on <self:GlobalCompilerVisitor>*/;
7466 var161
= varonce160
;
7468 var162
= "Uninitialized attribute ";
7470 var164
= string__NativeString__to_s_with_length(var162
, var163
);
7472 varonce160
= var161
;
7474 var165
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__name
]))(var_a
) /* name on <var_a:MAttribute>*/;
7475 var166
= NEW_array__Array(&type_array__Arraykernel__Object
);
7476 { /* var166 = array_instance Array[Object] */
7478 var168
= NEW_array__NativeArray(var167
, &type_array__NativeArraykernel__Object
);
7479 ((struct instance_array__NativeArray
*)var168
)->values
[0] = (val
*) var161
;
7480 ((struct instance_array__NativeArray
*)var168
)->values
[1] = (val
*) var165
;
7481 ((void (*)(val
*, val
*, long))(var166
->class->vft
[COLOR_array__Array__with_native
]))(var166
, var168
, var167
) /* with_native on <var166:Array[Object]>*/;
7483 var169
= ((val
* (*)(val
*))(var166
->class->vft
[COLOR_string__Object__to_s
]))(var166
) /* to_s on <var166:Array[Object]>*/;
7484 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(self
, var169
) /* add_abort on <self:GlobalCompilerVisitor>*/;
7486 var171
= varonce170
;
7490 var174
= string__NativeString__to_s_with_length(var172
, var173
);
7492 varonce170
= var171
;
7494 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
7497 var176
= varonce175
;
7499 var177
= "/*NOTYET isset on primitive attributes*/";
7501 var179
= string__NativeString__to_s_with_length(var177
, var178
);
7503 varonce175
= var176
;
7505 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var176
) /* add on <self:GlobalCompilerVisitor>*/;
7509 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2
) /* assign on <self:GlobalCompilerVisitor>*/;
7511 var181
= varonce180
;
7515 var184
= string__NativeString__to_s_with_length(var182
, var183
);
7517 varonce180
= var181
;
7519 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var181
) /* add on <self:GlobalCompilerVisitor>*/;
7520 CONTINUE_label
: (void)0;
7521 ((void (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var61
) /* next on <var61:Iterator[nullable Object]>*/;
7523 BREAK_label
: (void)0;
7524 var185
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7525 var186
= ((short int (*)(val
*))(var185
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var185
) /* hardening on <var185:AbstractCompiler(GlobalCompiler)>*/;
7528 var188
= varonce187
;
7530 var189
= "default: /* Bug */";
7532 var191
= string__NativeString__to_s_with_length(var189
, var190
);
7534 varonce187
= var188
;
7536 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var188
) /* add on <self:GlobalCompilerVisitor>*/;
7537 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
7541 var193
= varonce192
;
7545 var196
= string__NativeString__to_s_with_length(var194
, var195
);
7547 varonce192
= var193
;
7549 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var193
) /* add on <self:GlobalCompilerVisitor>*/;
7555 /* method global_compiler#GlobalCompilerVisitor#read_attribute for (self: Object, MAttribute, RuntimeVariable): RuntimeVariable */
7556 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__read_attribute(val
* self
, val
* p0
, val
* p1
) {
7557 val
* var
/* : RuntimeVariable */;
7558 val
* var1
/* : RuntimeVariable */;
7559 var1
= global_compiler__GlobalCompilerVisitor__read_attribute(self
, p0
, p1
);
7564 /* method global_compiler#GlobalCompilerVisitor#write_attribute for (self: GlobalCompilerVisitor, MAttribute, RuntimeVariable, RuntimeVariable) */
7565 void global_compiler__GlobalCompilerVisitor__write_attribute(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7566 val
* var_a
/* var a: MAttribute */;
7567 val
* var_recv
/* var recv: RuntimeVariable */;
7568 val
* var_value
/* var value: RuntimeVariable */;
7569 val
* var
/* : Array[MClassType] */;
7570 val
* var_types
/* var types: Array[MClassType] */;
7571 short int var1
/* : Bool */;
7572 static val
* varonce
;
7573 val
* var2
/* : String */;
7574 char* var3
/* : NativeString */;
7575 long var4
/* : Int */;
7576 val
* var5
/* : String */;
7577 val
* var6
/* : String */;
7578 static val
* varonce7
;
7579 val
* var8
/* : String */;
7580 char* var9
/* : NativeString */;
7581 long var10
/* : Int */;
7582 val
* var11
/* : String */;
7583 static val
* varonce12
;
7584 val
* var13
/* : String */;
7585 char* var14
/* : NativeString */;
7586 long var15
/* : Int */;
7587 val
* var16
/* : String */;
7588 val
* var17
/* : Array[Object] */;
7589 long var18
/* : Int */;
7590 val
* var19
/* : NativeArray[Object] */;
7591 val
* var20
/* : String */;
7592 static val
* varonce21
;
7593 val
* var22
/* : String */;
7594 char* var23
/* : NativeString */;
7595 long var24
/* : Int */;
7596 val
* var25
/* : String */;
7597 static val
* varonce26
;
7598 val
* var27
/* : String */;
7599 char* var28
/* : NativeString */;
7600 long var29
/* : Int */;
7601 val
* var30
/* : String */;
7602 val
* var31
/* : String */;
7603 static val
* varonce32
;
7604 val
* var33
/* : String */;
7605 char* var34
/* : NativeString */;
7606 long var35
/* : Int */;
7607 val
* var36
/* : String */;
7608 val
* var37
/* : Array[Object] */;
7609 long var38
/* : Int */;
7610 val
* var39
/* : NativeArray[Object] */;
7611 val
* var40
/* : String */;
7612 static val
* varonce41
;
7613 val
* var42
/* : String */;
7614 char* var43
/* : NativeString */;
7615 long var44
/* : Int */;
7616 val
* var45
/* : String */;
7617 static val
* varonce46
;
7618 val
* var47
/* : String */;
7619 char* var48
/* : NativeString */;
7620 long var49
/* : Int */;
7621 val
* var50
/* : String */;
7622 val
* var51
/* : Array[Object] */;
7623 long var52
/* : Int */;
7624 val
* var53
/* : NativeArray[Object] */;
7625 val
* var54
/* : String */;
7626 val
* var55
/* : nullable Object */;
7627 val
* var_last
/* var last: MClassType */;
7628 val
* var56
/* : Iterator[nullable Object] */;
7629 short int var57
/* : Bool */;
7630 val
* var58
/* : nullable Object */;
7631 val
* var_t
/* var t: MClassType */;
7632 short int var59
/* : Bool */;
7633 val
* var60
/* : AbstractCompiler */;
7634 short int var61
/* : Bool */;
7635 short int var62
/* : Bool */;
7636 short int var_
/* var : Bool */;
7637 short int var63
/* : Bool */;
7638 static val
* varonce64
;
7639 val
* var65
/* : String */;
7640 char* var66
/* : NativeString */;
7641 long var67
/* : Int */;
7642 val
* var68
/* : String */;
7643 val
* var69
/* : AbstractCompiler */;
7644 val
* var70
/* : String */;
7645 static val
* varonce71
;
7646 val
* var72
/* : String */;
7647 char* var73
/* : NativeString */;
7648 long var74
/* : Int */;
7649 val
* var75
/* : String */;
7650 val
* var76
/* : Array[Object] */;
7651 long var77
/* : Int */;
7652 val
* var78
/* : NativeArray[Object] */;
7653 val
* var79
/* : String */;
7654 static val
* varonce80
;
7655 val
* var81
/* : String */;
7656 char* var82
/* : NativeString */;
7657 long var83
/* : Int */;
7658 val
* var84
/* : String */;
7659 val
* var85
/* : AbstractCompiler */;
7660 val
* var86
/* : String */;
7661 static val
* varonce87
;
7662 val
* var88
/* : String */;
7663 char* var89
/* : NativeString */;
7664 long var90
/* : Int */;
7665 val
* var91
/* : String */;
7666 val
* var92
/* : Array[Object] */;
7667 long var93
/* : Int */;
7668 val
* var94
/* : NativeArray[Object] */;
7669 val
* var95
/* : String */;
7670 val
* var96
/* : RuntimeVariable */;
7671 val
* var_recv2
/* var recv2: RuntimeVariable */;
7672 val
* var97
/* : MPropDef */;
7673 val
* var98
/* : nullable MType */;
7674 val
* var_ta
/* var ta: MType */;
7675 val
* var99
/* : MType */;
7676 static val
* varonce100
;
7677 val
* var101
/* : String */;
7678 char* var102
/* : NativeString */;
7679 long var103
/* : Int */;
7680 val
* var104
/* : String */;
7681 val
* var105
/* : String */;
7682 static val
* varonce106
;
7683 val
* var107
/* : String */;
7684 char* var108
/* : NativeString */;
7685 long var109
/* : Int */;
7686 val
* var110
/* : String */;
7687 static val
* varonce111
;
7688 val
* var112
/* : String */;
7689 char* var113
/* : NativeString */;
7690 long var114
/* : Int */;
7691 val
* var115
/* : String */;
7692 val
* var116
/* : MPropDef */;
7693 val
* var117
/* : String */;
7694 static val
* varonce118
;
7695 val
* var119
/* : String */;
7696 char* var120
/* : NativeString */;
7697 long var121
/* : Int */;
7698 val
* var122
/* : String */;
7699 val
* var123
/* : RuntimeVariable */;
7700 static val
* varonce124
;
7701 val
* var125
/* : String */;
7702 char* var126
/* : NativeString */;
7703 long var127
/* : Int */;
7704 val
* var128
/* : String */;
7705 val
* var129
/* : Array[Object] */;
7706 long var130
/* : Int */;
7707 val
* var131
/* : NativeArray[Object] */;
7708 val
* var132
/* : String */;
7709 static val
* varonce133
;
7710 val
* var134
/* : String */;
7711 char* var135
/* : NativeString */;
7712 long var136
/* : Int */;
7713 val
* var137
/* : String */;
7714 val
* var138
/* : AbstractCompiler */;
7715 short int var139
/* : Bool */;
7716 static val
* varonce140
;
7717 val
* var141
/* : String */;
7718 char* var142
/* : NativeString */;
7719 long var143
/* : Int */;
7720 val
* var144
/* : String */;
7721 static val
* varonce145
;
7722 val
* var146
/* : String */;
7723 char* var147
/* : NativeString */;
7724 long var148
/* : Int */;
7725 val
* var149
/* : String */;
7729 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__check_recv_notnull
]))(self
, var_recv
) /* check_recv_notnull on <self:GlobalCompilerVisitor>*/;
7730 var
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_recv
) /* collect_types on <self:GlobalCompilerVisitor>*/;
7732 var1
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
7737 var3
= "/*BUG: no live types for ";
7739 var5
= string__NativeString__to_s_with_length(var3
, var4
);
7743 var6
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
7749 var11
= string__NativeString__to_s_with_length(var9
, var10
);
7758 var16
= string__NativeString__to_s_with_length(var14
, var15
);
7762 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
7763 { /* var17 = array_instance Array[Object] */
7765 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
7766 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var2
;
7767 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var6
;
7768 ((struct instance_array__NativeArray
*)var19
)->values
[2] = (val
*) var8
;
7769 ((struct instance_array__NativeArray
*)var19
)->values
[3] = (val
*) var_a
;
7770 ((struct instance_array__NativeArray
*)var19
)->values
[4] = (val
*) var13
;
7771 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
7773 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
7774 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var20
) /* add on <self:GlobalCompilerVisitor>*/;
7775 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
7782 var23
= "/* write ";
7784 var25
= string__NativeString__to_s_with_length(var23
, var24
);
7793 var30
= string__NativeString__to_s_with_length(var28
, var29
);
7797 var31
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
7803 var36
= string__NativeString__to_s_with_length(var34
, var35
);
7807 var37
= NEW_array__Array(&type_array__Arraykernel__Object
);
7808 { /* var37 = array_instance Array[Object] */
7810 var39
= NEW_array__NativeArray(var38
, &type_array__NativeArraykernel__Object
);
7811 ((struct instance_array__NativeArray
*)var39
)->values
[0] = (val
*) var22
;
7812 ((struct instance_array__NativeArray
*)var39
)->values
[1] = (val
*) var_a
;
7813 ((struct instance_array__NativeArray
*)var39
)->values
[2] = (val
*) var27
;
7814 ((struct instance_array__NativeArray
*)var39
)->values
[3] = (val
*) var31
;
7815 ((struct instance_array__NativeArray
*)var39
)->values
[4] = (val
*) var33
;
7816 ((void (*)(val
*, val
*, long))(var37
->class->vft
[COLOR_array__Array__with_native
]))(var37
, var39
, var38
) /* with_native on <var37:Array[Object]>*/;
7818 var40
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_string__Object__to_s
]))(var37
) /* to_s on <var37:Array[Object]>*/;
7819 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var40
) /* add on <self:GlobalCompilerVisitor>*/;
7825 var45
= string__NativeString__to_s_with_length(var43
, var44
);
7832 var48
= "->classid) {";
7834 var50
= string__NativeString__to_s_with_length(var48
, var49
);
7838 var51
= NEW_array__Array(&type_array__Arraykernel__Object
);
7839 { /* var51 = array_instance Array[Object] */
7841 var53
= NEW_array__NativeArray(var52
, &type_array__NativeArraykernel__Object
);
7842 ((struct instance_array__NativeArray
*)var53
)->values
[0] = (val
*) var42
;
7843 ((struct instance_array__NativeArray
*)var53
)->values
[1] = (val
*) var_recv
;
7844 ((struct instance_array__NativeArray
*)var53
)->values
[2] = (val
*) var47
;
7845 ((void (*)(val
*, val
*, long))(var51
->class->vft
[COLOR_array__Array__with_native
]))(var51
, var53
, var52
) /* with_native on <var51:Array[Object]>*/;
7847 var54
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_string__Object__to_s
]))(var51
) /* to_s on <var51:Array[Object]>*/;
7848 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var54
) /* add on <self:GlobalCompilerVisitor>*/;
7849 var55
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
7851 var56
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
7853 var57
= ((short int (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var56
) /* is_ok on <var56:Iterator[nullable Object]>*/;
7855 var58
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var56
) /* item on <var56:Iterator[nullable Object]>*/;
7857 var60
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7858 var61
= ((short int (*)(val
*))(var60
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var60
) /* hardening on <var60:AbstractCompiler(GlobalCompiler)>*/;
7862 var63
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
7871 var66
= "default: /*";
7873 var68
= string__NativeString__to_s_with_length(var66
, var67
);
7877 var69
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7878 var70
= ((val
* (*)(val
*, val
*))(var69
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var69
, var_t
) /* classid on <var69:AbstractCompiler(GlobalCompiler)>*/;
7884 var75
= string__NativeString__to_s_with_length(var73
, var74
);
7888 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
7889 { /* var76 = array_instance Array[Object] */
7891 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
7892 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var65
;
7893 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var70
;
7894 ((struct instance_array__NativeArray
*)var78
)->values
[2] = (val
*) var72
;
7895 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
7897 var79
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
7898 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var79
) /* add on <self:GlobalCompilerVisitor>*/;
7905 var84
= string__NativeString__to_s_with_length(var82
, var83
);
7909 var85
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7910 var86
= ((val
* (*)(val
*, val
*))(var85
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var85
, var_t
) /* classid on <var85:AbstractCompiler(GlobalCompiler)>*/;
7916 var91
= string__NativeString__to_s_with_length(var89
, var90
);
7920 var92
= NEW_array__Array(&type_array__Arraykernel__Object
);
7921 { /* var92 = array_instance Array[Object] */
7923 var94
= NEW_array__NativeArray(var93
, &type_array__NativeArraykernel__Object
);
7924 ((struct instance_array__NativeArray
*)var94
)->values
[0] = (val
*) var81
;
7925 ((struct instance_array__NativeArray
*)var94
)->values
[1] = (val
*) var86
;
7926 ((struct instance_array__NativeArray
*)var94
)->values
[2] = (val
*) var88
;
7927 ((void (*)(val
*, val
*, long))(var92
->class->vft
[COLOR_array__Array__with_native
]))(var92
, var94
, var93
) /* with_native on <var92:Array[Object]>*/;
7929 var95
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_string__Object__to_s
]))(var92
) /* to_s on <var92:Array[Object]>*/;
7930 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var95
) /* add on <self:GlobalCompilerVisitor>*/;
7932 var96
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var_recv
, var_t
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
7934 var97
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7935 var98
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var97
) /* static_mtype on <var97:MPropDef(MAttributeDef)>*/;
7936 if (var98
== NULL
) {
7937 fprintf(stderr
, "Runtime error: %s", "Cast failed");
7938 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 676);
7942 var99
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ta
, var_recv2
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
7945 var101
= varonce100
;
7947 var102
= "((struct ";
7949 var104
= string__NativeString__to_s_with_length(var102
, var103
);
7951 varonce100
= var101
;
7953 var105
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_t
) /* c_name on <var_t:MClassType>*/;
7955 var107
= varonce106
;
7959 var110
= string__NativeString__to_s_with_length(var108
, var109
);
7961 varonce106
= var107
;
7964 var112
= varonce111
;
7968 var115
= string__NativeString__to_s_with_length(var113
, var114
);
7970 varonce111
= var112
;
7972 var116
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7973 var117
= ((val
* (*)(val
*))(var116
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var116
) /* c_name on <var116:MPropDef(MAttributeDef)>*/;
7975 var119
= varonce118
;
7979 var122
= string__NativeString__to_s_with_length(var120
, var121
);
7981 varonce118
= var119
;
7983 var123
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var_value
, var_ta
) /* autobox on <self:GlobalCompilerVisitor>*/;
7985 var125
= varonce124
;
7989 var128
= string__NativeString__to_s_with_length(var126
, var127
);
7991 varonce124
= var125
;
7993 var129
= NEW_array__Array(&type_array__Arraykernel__Object
);
7994 { /* var129 = array_instance Array[Object] */
7996 var131
= NEW_array__NativeArray(var130
, &type_array__NativeArraykernel__Object
);
7997 ((struct instance_array__NativeArray
*)var131
)->values
[0] = (val
*) var101
;
7998 ((struct instance_array__NativeArray
*)var131
)->values
[1] = (val
*) var105
;
7999 ((struct instance_array__NativeArray
*)var131
)->values
[2] = (val
*) var107
;
8000 ((struct instance_array__NativeArray
*)var131
)->values
[3] = (val
*) var_recv
;
8001 ((struct instance_array__NativeArray
*)var131
)->values
[4] = (val
*) var112
;
8002 ((struct instance_array__NativeArray
*)var131
)->values
[5] = (val
*) var117
;
8003 ((struct instance_array__NativeArray
*)var131
)->values
[6] = (val
*) var119
;
8004 ((struct instance_array__NativeArray
*)var131
)->values
[7] = (val
*) var123
;
8005 ((struct instance_array__NativeArray
*)var131
)->values
[8] = (val
*) var125
;
8006 ((void (*)(val
*, val
*, long))(var129
->class->vft
[COLOR_array__Array__with_native
]))(var129
, var131
, var130
) /* with_native on <var129:Array[Object]>*/;
8008 var132
= ((val
* (*)(val
*))(var129
->class->vft
[COLOR_string__Object__to_s
]))(var129
) /* to_s on <var129:Array[Object]>*/;
8009 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var132
) /* add on <self:GlobalCompilerVisitor>*/;
8011 var134
= varonce133
;
8015 var137
= string__NativeString__to_s_with_length(var135
, var136
);
8017 varonce133
= var134
;
8019 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var134
) /* add on <self:GlobalCompilerVisitor>*/;
8020 CONTINUE_label
: (void)0;
8021 ((void (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var56
) /* next on <var56:Iterator[nullable Object]>*/;
8023 BREAK_label
: (void)0;
8024 var138
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8025 var139
= ((short int (*)(val
*))(var138
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var138
) /* hardening on <var138:AbstractCompiler(GlobalCompiler)>*/;
8028 var141
= varonce140
;
8030 var142
= "default: /* Bug*/";
8032 var144
= string__NativeString__to_s_with_length(var142
, var143
);
8034 varonce140
= var141
;
8036 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var141
) /* add on <self:GlobalCompilerVisitor>*/;
8037 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
8041 var146
= varonce145
;
8045 var149
= string__NativeString__to_s_with_length(var147
, var148
);
8047 varonce145
= var146
;
8049 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var146
) /* add on <self:GlobalCompilerVisitor>*/;
8052 /* method global_compiler#GlobalCompilerVisitor#write_attribute for (self: Object, MAttribute, RuntimeVariable, RuntimeVariable) */
8053 void VIRTUAL_global_compiler__GlobalCompilerVisitor__write_attribute(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8054 global_compiler__GlobalCompilerVisitor__write_attribute(self
, p0
, p1
, p2
);
8057 /* method global_compiler#GlobalCompilerVisitor#init_instance for (self: GlobalCompilerVisitor, MClassType): RuntimeVariable */
8058 val
* global_compiler__GlobalCompilerVisitor__init_instance(val
* self
, val
* p0
) {
8059 val
* var
/* : RuntimeVariable */;
8060 val
* var_mtype
/* var mtype: MClassType */;
8061 val
* var1
/* : MType */;
8062 short int var2
/* : Bool */;
8065 const char* var_class_name
;
8066 val
* var3
/* : AbstractCompiler */;
8067 val
* var4
/* : RapidTypeAnalysis */;
8068 val
* var5
/* : HashSet[MClassType] */;
8069 short int var6
/* : Bool */;
8070 short int var7
/* : Bool */;
8071 static val
* varonce
;
8072 val
* var8
/* : String */;
8073 char* var9
/* : NativeString */;
8074 long var10
/* : Int */;
8075 val
* var11
/* : String */;
8076 static val
* varonce12
;
8077 val
* var13
/* : String */;
8078 char* var14
/* : NativeString */;
8079 long var15
/* : Int */;
8080 val
* var16
/* : String */;
8081 val
* var17
/* : Array[Object] */;
8082 long var18
/* : Int */;
8083 val
* var19
/* : NativeArray[Object] */;
8084 val
* var20
/* : String */;
8085 static val
* varonce21
;
8086 val
* var22
/* : String */;
8087 char* var23
/* : NativeString */;
8088 long var24
/* : Int */;
8089 val
* var25
/* : String */;
8090 val
* var26
/* : String */;
8091 static val
* varonce27
;
8092 val
* var28
/* : String */;
8093 char* var29
/* : NativeString */;
8094 long var30
/* : Int */;
8095 val
* var31
/* : String */;
8096 val
* var32
/* : Array[Object] */;
8097 long var33
/* : Int */;
8098 val
* var34
/* : NativeArray[Object] */;
8099 val
* var35
/* : String */;
8100 val
* var36
/* : RuntimeVariable */;
8101 val
* var_res
/* var res: RuntimeVariable */;
8102 short int var37
/* : Bool */;
8104 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__anchor
]))(self
, var_mtype
) /* anchor on <self:GlobalCompilerVisitor>*/;
8105 /* <var1:MType> isa MClassType */
8106 cltype
= type_model__MClassType
.color
;
8107 idtype
= type_model__MClassType
.id
;
8108 if(cltype
>= var1
->type
->table_size
) {
8111 var2
= var1
->type
->type_table
[cltype
] == idtype
;
8114 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
8115 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
8116 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 690);
8120 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8121 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var3
) /* runtime_type_analysis on <var3:AbstractCompiler(GlobalCompiler)>*/;
8122 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var4
) /* live_types on <var4:RapidTypeAnalysis>*/;
8123 var6
= ((short int (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var5
, var_mtype
) /* has on <var5:HashSet[MClassType]>*/;
8131 var11
= string__NativeString__to_s_with_length(var9
, var10
);
8138 var14
= " was detected dead";
8140 var16
= string__NativeString__to_s_with_length(var14
, var15
);
8144 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
8145 { /* var17 = array_instance Array[Object] */
8147 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
8148 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var8
;
8149 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var_mtype
;
8150 ((struct instance_array__NativeArray
*)var19
)->values
[2] = (val
*) var13
;
8151 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
8153 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
8154 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__debug
]))(self
, var20
) /* debug on <self:GlobalCompilerVisitor>*/;
8162 var25
= string__NativeString__to_s_with_length(var23
, var24
);
8166 var26
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
8172 var31
= string__NativeString__to_s_with_length(var29
, var30
);
8176 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
8177 { /* var32 = array_instance Array[Object] */
8179 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
8180 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var22
;
8181 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var26
;
8182 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var28
;
8183 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
8185 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
8186 var36
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var35
, var_mtype
) /* new_expr on <self:GlobalCompilerVisitor>*/;
8189 ((void (*)(val
*, short int))(var_res
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res
, var37
) /* is_exact= on <var_res:RuntimeVariable>*/;
8195 /* method global_compiler#GlobalCompilerVisitor#init_instance for (self: Object, MClassType): RuntimeVariable */
8196 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__init_instance(val
* self
, val
* p0
) {
8197 val
* var
/* : RuntimeVariable */;
8198 val
* var1
/* : RuntimeVariable */;
8199 var1
= global_compiler__GlobalCompilerVisitor__init_instance(self
, p0
);
8204 /* method global_compiler#GlobalCompilerVisitor#type_test for (self: GlobalCompilerVisitor, RuntimeVariable, MType, String): RuntimeVariable */
8205 val
* global_compiler__GlobalCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8206 val
* var
/* : RuntimeVariable */;
8207 val
* var_value
/* var value: RuntimeVariable */;
8208 val
* var_mtype
/* var mtype: MType */;
8209 val
* var_tag
/* var tag: String */;
8210 val
* var1
/* : MType */;
8211 val
* var_mclasstype
/* var mclasstype: MType */;
8212 short int var2
/* : Bool */;
8215 val
* var3
/* : MType */;
8216 short int var4
/* : Bool */;
8219 val
* var7
/* : AbstractCompiler */;
8220 val
* var8
/* : RapidTypeAnalysis */;
8221 val
* var9
/* : HashSet[MClassType] */;
8222 short int var10
/* : Bool */;
8223 short int var11
/* : Bool */;
8224 static val
* varonce
;
8225 val
* var12
/* : String */;
8226 char* var13
/* : NativeString */;
8227 long var14
/* : Int */;
8228 val
* var15
/* : String */;
8229 static val
* varonce16
;
8230 val
* var17
/* : String */;
8231 char* var18
/* : NativeString */;
8232 long var19
/* : Int */;
8233 val
* var20
/* : String */;
8234 val
* var21
/* : Array[Object] */;
8235 long var22
/* : Int */;
8236 val
* var23
/* : NativeArray[Object] */;
8237 val
* var24
/* : String */;
8238 val
* var25
/* : Array[MClassType] */;
8239 val
* var_types
/* var types: Array[MClassType] */;
8240 val
* var26
/* : MClassType */;
8241 val
* var27
/* : RuntimeVariable */;
8242 val
* var_res
/* var res: RuntimeVariable */;
8243 static val
* varonce28
;
8244 val
* var29
/* : String */;
8245 char* var30
/* : NativeString */;
8246 long var31
/* : Int */;
8247 val
* var32
/* : String */;
8248 static val
* varonce33
;
8249 val
* var34
/* : String */;
8250 char* var35
/* : NativeString */;
8251 long var36
/* : Int */;
8252 val
* var37
/* : String */;
8253 val
* var38
/* : String */;
8254 static val
* varonce39
;
8255 val
* var40
/* : String */;
8256 char* var41
/* : NativeString */;
8257 long var42
/* : Int */;
8258 val
* var43
/* : String */;
8259 val
* var44
/* : Array[Object] */;
8260 long var45
/* : Int */;
8261 val
* var46
/* : NativeArray[Object] */;
8262 val
* var47
/* : String */;
8263 val
* var48
/* : MType */;
8264 val
* var49
/* : String */;
8265 static val
* varonce50
;
8266 val
* var51
/* : String */;
8267 char* var52
/* : NativeString */;
8268 long var53
/* : Int */;
8269 val
* var54
/* : String */;
8270 short int var55
/* : Bool */;
8271 val
* var56
/* : MType */;
8272 val
* var57
/* : AbstractCompiler */;
8273 val
* var58
/* : MModule */;
8274 val
* var59
/* : null */;
8275 short int var60
/* : Bool */;
8276 static val
* varonce61
;
8277 val
* var62
/* : String */;
8278 char* var63
/* : NativeString */;
8279 long var64
/* : Int */;
8280 val
* var65
/* : String */;
8281 val
* var66
/* : Array[Object] */;
8282 long var67
/* : Int */;
8283 val
* var68
/* : NativeArray[Object] */;
8284 val
* var69
/* : String */;
8285 static val
* varonce70
;
8286 val
* var71
/* : String */;
8287 char* var72
/* : NativeString */;
8288 long var73
/* : Int */;
8289 val
* var74
/* : String */;
8290 val
* var75
/* : Array[Object] */;
8291 long var76
/* : Int */;
8292 val
* var77
/* : NativeArray[Object] */;
8293 val
* var78
/* : String */;
8294 short int var79
/* : Bool */;
8295 val
* var80
/* : MType */;
8296 short int var81
/* : Bool */;
8299 short int var_
/* var : Bool */;
8300 val
* var84
/* : MType */;
8301 short int var85
/* : Bool */;
8304 static val
* varonce88
;
8305 val
* var89
/* : String */;
8306 char* var90
/* : NativeString */;
8307 long var91
/* : Int */;
8308 val
* var92
/* : String */;
8309 static val
* varonce93
;
8310 val
* var94
/* : String */;
8311 char* var95
/* : NativeString */;
8312 long var96
/* : Int */;
8313 val
* var97
/* : String */;
8314 val
* var98
/* : Array[Object] */;
8315 long var99
/* : Int */;
8316 val
* var100
/* : NativeArray[Object] */;
8317 val
* var101
/* : String */;
8318 short int var102
/* : Bool */;
8321 static val
* varonce105
;
8322 val
* var106
/* : String */;
8323 char* var107
/* : NativeString */;
8324 long var108
/* : Int */;
8325 val
* var109
/* : String */;
8326 static val
* varonce110
;
8327 val
* var111
/* : String */;
8328 char* var112
/* : NativeString */;
8329 long var113
/* : Int */;
8330 val
* var114
/* : String */;
8331 val
* var115
/* : Array[Object] */;
8332 long var116
/* : Int */;
8333 val
* var117
/* : NativeArray[Object] */;
8334 val
* var118
/* : String */;
8335 static val
* varonce119
;
8336 val
* var120
/* : String */;
8337 char* var121
/* : NativeString */;
8338 long var122
/* : Int */;
8339 val
* var123
/* : String */;
8340 static val
* varonce124
;
8341 val
* var125
/* : String */;
8342 char* var126
/* : NativeString */;
8343 long var127
/* : Int */;
8344 val
* var128
/* : String */;
8345 val
* var129
/* : Array[Object] */;
8346 long var130
/* : Int */;
8347 val
* var131
/* : NativeArray[Object] */;
8348 val
* var132
/* : String */;
8349 static val
* varonce133
;
8350 val
* var134
/* : String */;
8351 char* var135
/* : NativeString */;
8352 long var136
/* : Int */;
8353 val
* var137
/* : String */;
8354 static val
* varonce138
;
8355 val
* var139
/* : String */;
8356 char* var140
/* : NativeString */;
8357 long var141
/* : Int */;
8358 val
* var142
/* : String */;
8359 static val
* varonce143
;
8360 val
* var144
/* : String */;
8361 char* var145
/* : NativeString */;
8362 long var146
/* : Int */;
8363 val
* var147
/* : String */;
8364 val
* var148
/* : Array[Object] */;
8365 long var149
/* : Int */;
8366 val
* var150
/* : NativeArray[Object] */;
8367 val
* var151
/* : String */;
8368 val
* var152
/* : Iterator[nullable Object] */;
8369 short int var153
/* : Bool */;
8370 val
* var154
/* : nullable Object */;
8371 val
* var_t
/* var t: MClassType */;
8372 val
* var155
/* : AbstractCompiler */;
8373 val
* var156
/* : MModule */;
8374 val
* var157
/* : null */;
8375 short int var158
/* : Bool */;
8376 static val
* varonce159
;
8377 val
* var160
/* : String */;
8378 char* var161
/* : NativeString */;
8379 long var162
/* : Int */;
8380 val
* var163
/* : String */;
8381 val
* var164
/* : AbstractCompiler */;
8382 val
* var165
/* : String */;
8383 static val
* varonce166
;
8384 val
* var167
/* : String */;
8385 char* var168
/* : NativeString */;
8386 long var169
/* : Int */;
8387 val
* var170
/* : String */;
8388 static val
* varonce171
;
8389 val
* var172
/* : String */;
8390 char* var173
/* : NativeString */;
8391 long var174
/* : Int */;
8392 val
* var175
/* : String */;
8393 val
* var176
/* : Array[Object] */;
8394 long var177
/* : Int */;
8395 val
* var178
/* : NativeArray[Object] */;
8396 val
* var179
/* : String */;
8397 static val
* varonce180
;
8398 val
* var181
/* : String */;
8399 char* var182
/* : NativeString */;
8400 long var183
/* : Int */;
8401 val
* var184
/* : String */;
8402 val
* var185
/* : Array[Object] */;
8403 long var186
/* : Int */;
8404 val
* var187
/* : NativeArray[Object] */;
8405 val
* var188
/* : String */;
8406 static val
* varonce189
;
8407 val
* var190
/* : String */;
8408 char* var191
/* : NativeString */;
8409 long var192
/* : Int */;
8410 val
* var193
/* : String */;
8411 static val
* varonce194
;
8412 val
* var195
/* : String */;
8413 char* var196
/* : NativeString */;
8414 long var197
/* : Int */;
8415 val
* var198
/* : String */;
8416 static val
* varonce199
;
8417 val
* var200
/* : String */;
8418 char* var201
/* : NativeString */;
8419 long var202
/* : Int */;
8420 val
* var203
/* : String */;
8421 val
* var204
/* : Array[Object] */;
8422 long var205
/* : Int */;
8423 val
* var206
/* : NativeArray[Object] */;
8424 val
* var207
/* : String */;
8425 static val
* varonce208
;
8426 val
* var209
/* : String */;
8427 char* var210
/* : NativeString */;
8428 long var211
/* : Int */;
8429 val
* var212
/* : String */;
8433 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__anchor
]))(self
, var_mtype
) /* anchor on <self:GlobalCompilerVisitor>*/;
8435 var_mclasstype
= var_mtype
;
8436 /* <var_mtype:MType> isa MNullableType */
8437 cltype
= type_model__MNullableType
.color
;
8438 idtype
= type_model__MNullableType
.id
;
8439 if(cltype
>= var_mtype
->type
->table_size
) {
8442 var2
= var_mtype
->type
->type_table
[cltype
] == idtype
;
8445 var3
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
8446 var_mclasstype
= var3
;
8449 /* <var_mclasstype:MType> isa MClassType */
8450 cltype5
= type_model__MClassType
.color
;
8451 idtype6
= type_model__MClassType
.id
;
8452 if(cltype5
>= var_mclasstype
->type
->table_size
) {
8455 var4
= var_mclasstype
->type
->type_table
[cltype5
] == idtype6
;
8458 fprintf(stderr
, "Runtime error: %s", "Assert failed");
8459 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 704);
8462 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8463 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var7
) /* runtime_type_analysis on <var7:AbstractCompiler(GlobalCompiler)>*/;
8464 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_cast_types
]))(var8
) /* live_cast_types on <var8:RapidTypeAnalysis>*/;
8465 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var9
, var_mclasstype
) /* has on <var9:HashSet[MClassType]>*/;
8471 var13
= "problem: ";
8473 var15
= string__NativeString__to_s_with_length(var13
, var14
);
8480 var18
= " was detected cast-dead";
8482 var20
= string__NativeString__to_s_with_length(var18
, var19
);
8486 var21
= NEW_array__Array(&type_array__Arraykernel__Object
);
8487 { /* var21 = array_instance Array[Object] */
8489 var23
= NEW_array__NativeArray(var22
, &type_array__NativeArraykernel__Object
);
8490 ((struct instance_array__NativeArray
*)var23
)->values
[0] = (val
*) var12
;
8491 ((struct instance_array__NativeArray
*)var23
)->values
[1] = (val
*) var_mtype
;
8492 ((struct instance_array__NativeArray
*)var23
)->values
[2] = (val
*) var17
;
8493 ((void (*)(val
*, val
*, long))(var21
->class->vft
[COLOR_array__Array__with_native
]))(var21
, var23
, var22
) /* with_native on <var21:Array[Object]>*/;
8495 var24
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_string__Object__to_s
]))(var21
) /* to_s on <var21:Array[Object]>*/;
8496 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__debug
]))(self
, var24
) /* debug on <self:GlobalCompilerVisitor>*/;
8497 fprintf(stderr
, "Runtime error: %s", "Aborted");
8498 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 707);
8502 var25
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_value
) /* collect_types on <self:GlobalCompilerVisitor>*/;
8504 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type
]))(self
) /* bool_type on <self:GlobalCompilerVisitor>*/;
8505 var27
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var26
) /* new_var on <self:GlobalCompilerVisitor>*/;
8512 var32
= string__NativeString__to_s_with_length(var30
, var31
);
8521 var37
= string__NativeString__to_s_with_length(var35
, var36
);
8525 var38
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_string__Object__inspect
]))(var_value
) /* inspect on <var_value:RuntimeVariable>*/;
8531 var43
= string__NativeString__to_s_with_length(var41
, var42
);
8535 var44
= NEW_array__Array(&type_array__Arraykernel__Object
);
8536 { /* var44 = array_instance Array[Object] */
8538 var46
= NEW_array__NativeArray(var45
, &type_array__NativeArraykernel__Object
);
8539 ((struct instance_array__NativeArray
*)var46
)->values
[0] = (val
*) var29
;
8540 ((struct instance_array__NativeArray
*)var46
)->values
[1] = (val
*) var_mtype
;
8541 ((struct instance_array__NativeArray
*)var46
)->values
[2] = (val
*) var34
;
8542 ((struct instance_array__NativeArray
*)var46
)->values
[3] = (val
*) var38
;
8543 ((struct instance_array__NativeArray
*)var46
)->values
[4] = (val
*) var40
;
8544 ((void (*)(val
*, val
*, long))(var44
->class->vft
[COLOR_array__Array__with_native
]))(var44
, var46
, var45
) /* with_native on <var44:Array[Object]>*/;
8546 var47
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_string__Object__to_s
]))(var44
) /* to_s on <var44:Array[Object]>*/;
8547 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var47
) /* add on <self:GlobalCompilerVisitor>*/;
8548 var48
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
8549 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var48
) /* ctype on <var48:MType>*/;
8555 var54
= string__NativeString__to_s_with_length(var52
, var53
);
8559 var55
= ((short int (*)(val
*, val
*))(var49
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var49
, var51
) /* != on <var49:String>*/;
8561 var56
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
8562 var57
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8563 var58
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var57
) /* mainmodule on <var57:AbstractCompiler(GlobalCompiler)>*/;
8565 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>*/;
8572 var65
= string__NativeString__to_s_with_length(var63
, var64
);
8576 var66
= NEW_array__Array(&type_array__Arraykernel__Object
);
8577 { /* var66 = array_instance Array[Object] */
8579 var68
= NEW_array__NativeArray(var67
, &type_array__NativeArraykernel__Object
);
8580 ((struct instance_array__NativeArray
*)var68
)->values
[0] = (val
*) var_res
;
8581 ((struct instance_array__NativeArray
*)var68
)->values
[1] = (val
*) var62
;
8582 ((void (*)(val
*, val
*, long))(var66
->class->vft
[COLOR_array__Array__with_native
]))(var66
, var68
, var67
) /* with_native on <var66:Array[Object]>*/;
8584 var69
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_string__Object__to_s
]))(var66
) /* to_s on <var66:Array[Object]>*/;
8585 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var69
) /* add on <self:GlobalCompilerVisitor>*/;
8592 var74
= string__NativeString__to_s_with_length(var72
, var73
);
8596 var75
= NEW_array__Array(&type_array__Arraykernel__Object
);
8597 { /* var75 = array_instance Array[Object] */
8599 var77
= NEW_array__NativeArray(var76
, &type_array__NativeArraykernel__Object
);
8600 ((struct instance_array__NativeArray
*)var77
)->values
[0] = (val
*) var_res
;
8601 ((struct instance_array__NativeArray
*)var77
)->values
[1] = (val
*) var71
;
8602 ((void (*)(val
*, val
*, long))(var75
->class->vft
[COLOR_array__Array__with_native
]))(var75
, var77
, var76
) /* with_native on <var75:Array[Object]>*/;
8604 var78
= ((val
* (*)(val
*))(var75
->class->vft
[COLOR_string__Object__to_s
]))(var75
) /* to_s on <var75:Array[Object]>*/;
8605 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var78
) /* add on <self:GlobalCompilerVisitor>*/;
8611 var80
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value
) /* mcasttype on <var_value:RuntimeVariable>*/;
8612 /* <var80:MType> isa MNullableType */
8613 cltype82
= type_model__MNullableType
.color
;
8614 idtype83
= type_model__MNullableType
.id
;
8615 if(cltype82
>= var80
->type
->table_size
) {
8618 var81
= var80
->type
->type_table
[cltype82
] == idtype83
;
8624 var84
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value
) /* mcasttype on <var_value:RuntimeVariable>*/;
8625 /* <var84:MType> isa MNullType */
8626 cltype86
= type_model__MNullType
.color
;
8627 idtype87
= type_model__MNullType
.id
;
8628 if(cltype86
>= var84
->type
->table_size
) {
8631 var85
= var84
->type
->type_table
[cltype86
] == idtype87
;
8641 var92
= string__NativeString__to_s_with_length(var90
, var91
);
8648 var95
= " == NULL) {";
8650 var97
= string__NativeString__to_s_with_length(var95
, var96
);
8654 var98
= NEW_array__Array(&type_array__Arraykernel__Object
);
8655 { /* var98 = array_instance Array[Object] */
8657 var100
= NEW_array__NativeArray(var99
, &type_array__NativeArraykernel__Object
);
8658 ((struct instance_array__NativeArray
*)var100
)->values
[0] = (val
*) var89
;
8659 ((struct instance_array__NativeArray
*)var100
)->values
[1] = (val
*) var_value
;
8660 ((struct instance_array__NativeArray
*)var100
)->values
[2] = (val
*) var94
;
8661 ((void (*)(val
*, val
*, long))(var98
->class->vft
[COLOR_array__Array__with_native
]))(var98
, var100
, var99
) /* with_native on <var98:Array[Object]>*/;
8663 var101
= ((val
* (*)(val
*))(var98
->class->vft
[COLOR_string__Object__to_s
]))(var98
) /* to_s on <var98:Array[Object]>*/;
8664 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var101
) /* add on <self:GlobalCompilerVisitor>*/;
8665 /* <var_mtype:MType> isa MNullableType */
8666 cltype103
= type_model__MNullableType
.color
;
8667 idtype104
= type_model__MNullableType
.id
;
8668 if(cltype103
>= var_mtype
->type
->table_size
) {
8671 var102
= var_mtype
->type
->type_table
[cltype103
] == idtype104
;
8675 var106
= varonce105
;
8677 var107
= " = 1; /* isa ";
8679 var109
= string__NativeString__to_s_with_length(var107
, var108
);
8681 varonce105
= var106
;
8684 var111
= varonce110
;
8688 var114
= string__NativeString__to_s_with_length(var112
, var113
);
8690 varonce110
= var111
;
8692 var115
= NEW_array__Array(&type_array__Arraykernel__Object
);
8693 { /* var115 = array_instance Array[Object] */
8695 var117
= NEW_array__NativeArray(var116
, &type_array__NativeArraykernel__Object
);
8696 ((struct instance_array__NativeArray
*)var117
)->values
[0] = (val
*) var_res
;
8697 ((struct instance_array__NativeArray
*)var117
)->values
[1] = (val
*) var106
;
8698 ((struct instance_array__NativeArray
*)var117
)->values
[2] = (val
*) var_mtype
;
8699 ((struct instance_array__NativeArray
*)var117
)->values
[3] = (val
*) var111
;
8700 ((void (*)(val
*, val
*, long))(var115
->class->vft
[COLOR_array__Array__with_native
]))(var115
, var117
, var116
) /* with_native on <var115:Array[Object]>*/;
8702 var118
= ((val
* (*)(val
*))(var115
->class->vft
[COLOR_string__Object__to_s
]))(var115
) /* to_s on <var115:Array[Object]>*/;
8703 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var118
) /* add on <self:GlobalCompilerVisitor>*/;
8706 var120
= varonce119
;
8708 var121
= " = 0; /* not isa ";
8710 var123
= string__NativeString__to_s_with_length(var121
, var122
);
8712 varonce119
= var120
;
8715 var125
= varonce124
;
8719 var128
= string__NativeString__to_s_with_length(var126
, var127
);
8721 varonce124
= var125
;
8723 var129
= NEW_array__Array(&type_array__Arraykernel__Object
);
8724 { /* var129 = array_instance Array[Object] */
8726 var131
= NEW_array__NativeArray(var130
, &type_array__NativeArraykernel__Object
);
8727 ((struct instance_array__NativeArray
*)var131
)->values
[0] = (val
*) var_res
;
8728 ((struct instance_array__NativeArray
*)var131
)->values
[1] = (val
*) var120
;
8729 ((struct instance_array__NativeArray
*)var131
)->values
[2] = (val
*) var_mtype
;
8730 ((struct instance_array__NativeArray
*)var131
)->values
[3] = (val
*) var125
;
8731 ((void (*)(val
*, val
*, long))(var129
->class->vft
[COLOR_array__Array__with_native
]))(var129
, var131
, var130
) /* with_native on <var129:Array[Object]>*/;
8733 var132
= ((val
* (*)(val
*))(var129
->class->vft
[COLOR_string__Object__to_s
]))(var129
) /* to_s on <var129:Array[Object]>*/;
8734 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var132
) /* add on <self:GlobalCompilerVisitor>*/;
8737 var134
= varonce133
;
8741 var137
= string__NativeString__to_s_with_length(var135
, var136
);
8743 varonce133
= var134
;
8745 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var134
) /* add on <self:GlobalCompilerVisitor>*/;
8749 var139
= varonce138
;
8753 var142
= string__NativeString__to_s_with_length(var140
, var141
);
8755 varonce138
= var139
;
8758 var144
= varonce143
;
8760 var145
= "->classid) {";
8762 var147
= string__NativeString__to_s_with_length(var145
, var146
);
8764 varonce143
= var144
;
8766 var148
= NEW_array__Array(&type_array__Arraykernel__Object
);
8767 { /* var148 = array_instance Array[Object] */
8769 var150
= NEW_array__NativeArray(var149
, &type_array__NativeArraykernel__Object
);
8770 ((struct instance_array__NativeArray
*)var150
)->values
[0] = (val
*) var139
;
8771 ((struct instance_array__NativeArray
*)var150
)->values
[1] = (val
*) var_value
;
8772 ((struct instance_array__NativeArray
*)var150
)->values
[2] = (val
*) var144
;
8773 ((void (*)(val
*, val
*, long))(var148
->class->vft
[COLOR_array__Array__with_native
]))(var148
, var150
, var149
) /* with_native on <var148:Array[Object]>*/;
8775 var151
= ((val
* (*)(val
*))(var148
->class->vft
[COLOR_string__Object__to_s
]))(var148
) /* to_s on <var148:Array[Object]>*/;
8776 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var151
) /* add on <self:GlobalCompilerVisitor>*/;
8777 var152
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
8779 var153
= ((short int (*)(val
*))(var152
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var152
) /* is_ok on <var152:Iterator[nullable Object]>*/;
8781 var154
= ((val
* (*)(val
*))(var152
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var152
) /* item on <var152:Iterator[nullable Object]>*/;
8783 var155
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8784 var156
= ((val
* (*)(val
*))(var155
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var155
) /* mainmodule on <var155:AbstractCompiler(GlobalCompiler)>*/;
8786 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>*/;
8789 var160
= varonce159
;
8793 var163
= string__NativeString__to_s_with_length(var161
, var162
);
8795 varonce159
= var160
;
8797 var164
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8798 var165
= ((val
* (*)(val
*, val
*))(var164
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var164
, var_t
) /* classid on <var164:AbstractCompiler(GlobalCompiler)>*/;
8800 var167
= varonce166
;
8804 var170
= string__NativeString__to_s_with_length(var168
, var169
);
8806 varonce166
= var167
;
8809 var172
= varonce171
;
8813 var175
= string__NativeString__to_s_with_length(var173
, var174
);
8815 varonce171
= var172
;
8817 var176
= NEW_array__Array(&type_array__Arraykernel__Object
);
8818 { /* var176 = array_instance Array[Object] */
8820 var178
= NEW_array__NativeArray(var177
, &type_array__NativeArraykernel__Object
);
8821 ((struct instance_array__NativeArray
*)var178
)->values
[0] = (val
*) var160
;
8822 ((struct instance_array__NativeArray
*)var178
)->values
[1] = (val
*) var165
;
8823 ((struct instance_array__NativeArray
*)var178
)->values
[2] = (val
*) var167
;
8824 ((struct instance_array__NativeArray
*)var178
)->values
[3] = (val
*) var_t
;
8825 ((struct instance_array__NativeArray
*)var178
)->values
[4] = (val
*) var172
;
8826 ((void (*)(val
*, val
*, long))(var176
->class->vft
[COLOR_array__Array__with_native
]))(var176
, var178
, var177
) /* with_native on <var176:Array[Object]>*/;
8828 var179
= ((val
* (*)(val
*))(var176
->class->vft
[COLOR_string__Object__to_s
]))(var176
) /* to_s on <var176:Array[Object]>*/;
8829 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var179
) /* add on <self:GlobalCompilerVisitor>*/;
8832 CONTINUE_label
: (void)0;
8833 ((void (*)(val
*))(var152
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var152
) /* next on <var152:Iterator[nullable Object]>*/;
8835 BREAK_label
: (void)0;
8837 var181
= varonce180
;
8841 var184
= string__NativeString__to_s_with_length(var182
, var183
);
8843 varonce180
= var181
;
8845 var185
= NEW_array__Array(&type_array__Arraykernel__Object
);
8846 { /* var185 = array_instance Array[Object] */
8848 var187
= NEW_array__NativeArray(var186
, &type_array__NativeArraykernel__Object
);
8849 ((struct instance_array__NativeArray
*)var187
)->values
[0] = (val
*) var_res
;
8850 ((struct instance_array__NativeArray
*)var187
)->values
[1] = (val
*) var181
;
8851 ((void (*)(val
*, val
*, long))(var185
->class->vft
[COLOR_array__Array__with_native
]))(var185
, var187
, var186
) /* with_native on <var185:Array[Object]>*/;
8853 var188
= ((val
* (*)(val
*))(var185
->class->vft
[COLOR_string__Object__to_s
]))(var185
) /* to_s on <var185:Array[Object]>*/;
8854 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var188
) /* add on <self:GlobalCompilerVisitor>*/;
8856 var190
= varonce189
;
8860 var193
= string__NativeString__to_s_with_length(var191
, var192
);
8862 varonce189
= var190
;
8864 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var190
) /* add on <self:GlobalCompilerVisitor>*/;
8866 var195
= varonce194
;
8868 var196
= "default:";
8870 var198
= string__NativeString__to_s_with_length(var196
, var197
);
8872 varonce194
= var195
;
8874 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var195
) /* add on <self:GlobalCompilerVisitor>*/;
8876 var200
= varonce199
;
8880 var203
= string__NativeString__to_s_with_length(var201
, var202
);
8882 varonce199
= var200
;
8884 var204
= NEW_array__Array(&type_array__Arraykernel__Object
);
8885 { /* var204 = array_instance Array[Object] */
8887 var206
= NEW_array__NativeArray(var205
, &type_array__NativeArraykernel__Object
);
8888 ((struct instance_array__NativeArray
*)var206
)->values
[0] = (val
*) var_res
;
8889 ((struct instance_array__NativeArray
*)var206
)->values
[1] = (val
*) var200
;
8890 ((void (*)(val
*, val
*, long))(var204
->class->vft
[COLOR_array__Array__with_native
]))(var204
, var206
, var205
) /* with_native on <var204:Array[Object]>*/;
8892 var207
= ((val
* (*)(val
*))(var204
->class->vft
[COLOR_string__Object__to_s
]))(var204
) /* to_s on <var204:Array[Object]>*/;
8893 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var207
) /* add on <self:GlobalCompilerVisitor>*/;
8895 var209
= varonce208
;
8899 var212
= string__NativeString__to_s_with_length(var210
, var211
);
8901 varonce208
= var209
;
8903 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var209
) /* add on <self:GlobalCompilerVisitor>*/;
8909 /* method global_compiler#GlobalCompilerVisitor#type_test for (self: Object, RuntimeVariable, MType, String): RuntimeVariable */
8910 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8911 val
* var
/* : RuntimeVariable */;
8912 val
* var1
/* : RuntimeVariable */;
8913 var1
= global_compiler__GlobalCompilerVisitor__type_test(self
, p0
, p1
, p2
);
8918 /* method global_compiler#GlobalCompilerVisitor#is_same_type_test for (self: GlobalCompilerVisitor, RuntimeVariable, RuntimeVariable): RuntimeVariable */
8919 val
* global_compiler__GlobalCompilerVisitor__is_same_type_test(val
* self
, val
* p0
, val
* p1
) {
8920 val
* var
/* : RuntimeVariable */;
8921 val
* var_value1
/* var value1: RuntimeVariable */;
8922 val
* var_value2
/* var value2: RuntimeVariable */;
8923 val
* var1
/* : MClassType */;
8924 val
* var2
/* : RuntimeVariable */;
8925 val
* var_res
/* var res: RuntimeVariable */;
8926 val
* var3
/* : MType */;
8927 val
* var4
/* : String */;
8928 static val
* varonce
;
8929 val
* var5
/* : String */;
8930 char* var6
/* : NativeString */;
8931 long var7
/* : Int */;
8932 val
* var8
/* : String */;
8933 short int var9
/* : Bool */;
8934 val
* var10
/* : MType */;
8935 val
* var11
/* : String */;
8936 static val
* varonce12
;
8937 val
* var13
/* : String */;
8938 char* var14
/* : NativeString */;
8939 long var15
/* : Int */;
8940 val
* var16
/* : String */;
8941 short int var17
/* : Bool */;
8942 static val
* varonce18
;
8943 val
* var19
/* : String */;
8944 char* var20
/* : NativeString */;
8945 long var21
/* : Int */;
8946 val
* var22
/* : String */;
8947 static val
* varonce23
;
8948 val
* var24
/* : String */;
8949 char* var25
/* : NativeString */;
8950 long var26
/* : Int */;
8951 val
* var27
/* : String */;
8952 static val
* varonce28
;
8953 val
* var29
/* : String */;
8954 char* var30
/* : NativeString */;
8955 long var31
/* : Int */;
8956 val
* var32
/* : String */;
8957 val
* var33
/* : Array[Object] */;
8958 long var34
/* : Int */;
8959 val
* var35
/* : NativeArray[Object] */;
8960 val
* var36
/* : String */;
8961 static val
* varonce37
;
8962 val
* var38
/* : String */;
8963 char* var39
/* : NativeString */;
8964 long var40
/* : Int */;
8965 val
* var41
/* : String */;
8966 val
* var42
/* : AbstractCompiler */;
8967 val
* var43
/* : MType */;
8968 short int var44
/* : Bool */;
8971 const char* var_class_name
;
8972 val
* var45
/* : String */;
8973 static val
* varonce46
;
8974 val
* var47
/* : String */;
8975 char* var48
/* : NativeString */;
8976 long var49
/* : Int */;
8977 val
* var50
/* : String */;
8978 static val
* varonce51
;
8979 val
* var52
/* : String */;
8980 char* var53
/* : NativeString */;
8981 long var54
/* : Int */;
8982 val
* var55
/* : String */;
8983 val
* var56
/* : Array[Object] */;
8984 long var57
/* : Int */;
8985 val
* var58
/* : NativeArray[Object] */;
8986 val
* var59
/* : String */;
8987 val
* var60
/* : MType */;
8988 val
* var61
/* : String */;
8989 static val
* varonce62
;
8990 val
* var63
/* : String */;
8991 char* var64
/* : NativeString */;
8992 long var65
/* : Int */;
8993 val
* var66
/* : String */;
8994 short int var67
/* : Bool */;
8995 static val
* varonce68
;
8996 val
* var69
/* : String */;
8997 char* var70
/* : NativeString */;
8998 long var71
/* : Int */;
8999 val
* var72
/* : String */;
9000 static val
* varonce73
;
9001 val
* var74
/* : String */;
9002 char* var75
/* : NativeString */;
9003 long var76
/* : Int */;
9004 val
* var77
/* : String */;
9005 val
* var78
/* : AbstractCompiler */;
9006 val
* var79
/* : MType */;
9007 short int var80
/* : Bool */;
9010 const char* var_class_name83
;
9011 val
* var84
/* : String */;
9012 static val
* varonce85
;
9013 val
* var86
/* : String */;
9014 char* var87
/* : NativeString */;
9015 long var88
/* : Int */;
9016 val
* var89
/* : String */;
9017 val
* var90
/* : Array[Object] */;
9018 long var91
/* : Int */;
9019 val
* var92
/* : NativeArray[Object] */;
9020 val
* var93
/* : String */;
9021 val
* var94
/* : MType */;
9022 val
* var95
/* : MType */;
9023 short int var96
/* : Bool */;
9024 static val
* varonce97
;
9025 val
* var98
/* : String */;
9026 char* var99
/* : NativeString */;
9027 long var100
/* : Int */;
9028 val
* var101
/* : String */;
9029 val
* var102
/* : Array[Object] */;
9030 long var103
/* : Int */;
9031 val
* var104
/* : NativeArray[Object] */;
9032 val
* var105
/* : String */;
9033 static val
* varonce106
;
9034 val
* var107
/* : String */;
9035 char* var108
/* : NativeString */;
9036 long var109
/* : Int */;
9037 val
* var110
/* : String */;
9038 val
* var111
/* : Array[Object] */;
9039 long var112
/* : Int */;
9040 val
* var113
/* : NativeArray[Object] */;
9041 val
* var114
/* : String */;
9044 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type
]))(self
) /* bool_type on <self:GlobalCompilerVisitor>*/;
9045 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var1
) /* new_var on <self:GlobalCompilerVisitor>*/;
9047 var3
= ((val
* (*)(val
*))(var_value2
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value2
) /* mtype on <var_value2:RuntimeVariable>*/;
9048 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var3
) /* ctype on <var3:MType>*/;
9054 var8
= string__NativeString__to_s_with_length(var6
, var7
);
9058 var9
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var4
, var5
) /* == on <var4:String>*/;
9060 var10
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value1
) /* mtype on <var_value1:RuntimeVariable>*/;
9061 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var10
) /* ctype on <var10:MType>*/;
9067 var16
= string__NativeString__to_s_with_length(var14
, var15
);
9071 var17
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var11
, var13
) /* == on <var11:String>*/;
9078 var22
= string__NativeString__to_s_with_length(var20
, var21
);
9085 var25
= "->classid == ";
9087 var27
= string__NativeString__to_s_with_length(var25
, var26
);
9094 var30
= "->classid;";
9096 var32
= string__NativeString__to_s_with_length(var30
, var31
);
9100 var33
= NEW_array__Array(&type_array__Arraykernel__Object
);
9101 { /* var33 = array_instance Array[Object] */
9103 var35
= NEW_array__NativeArray(var34
, &type_array__NativeArraykernel__Object
);
9104 ((struct instance_array__NativeArray
*)var35
)->values
[0] = (val
*) var_res
;
9105 ((struct instance_array__NativeArray
*)var35
)->values
[1] = (val
*) var19
;
9106 ((struct instance_array__NativeArray
*)var35
)->values
[2] = (val
*) var_value1
;
9107 ((struct instance_array__NativeArray
*)var35
)->values
[3] = (val
*) var24
;
9108 ((struct instance_array__NativeArray
*)var35
)->values
[4] = (val
*) var_value2
;
9109 ((struct instance_array__NativeArray
*)var35
)->values
[5] = (val
*) var29
;
9110 ((void (*)(val
*, val
*, long))(var33
->class->vft
[COLOR_array__Array__with_native
]))(var33
, var35
, var34
) /* with_native on <var33:Array[Object]>*/;
9112 var36
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_string__Object__to_s
]))(var33
) /* to_s on <var33:Array[Object]>*/;
9113 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var36
) /* add on <self:GlobalCompilerVisitor>*/;
9120 var41
= string__NativeString__to_s_with_length(var39
, var40
);
9124 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9125 var43
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value1
) /* mtype on <var_value1:RuntimeVariable>*/;
9126 /* <var43:MType> isa MClassType */
9127 cltype
= type_model__MClassType
.color
;
9128 idtype
= type_model__MClassType
.id
;
9129 if(cltype
>= var43
->type
->table_size
) {
9132 var44
= var43
->type
->type_table
[cltype
] == idtype
;
9135 var_class_name
= var43
== NULL ?
"null" : var43
->type
->name
;
9136 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
9137 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 753);
9140 var45
= ((val
* (*)(val
*, val
*))(var42
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var42
, var43
) /* classid on <var42:AbstractCompiler(GlobalCompiler)>*/;
9146 var50
= string__NativeString__to_s_with_length(var48
, var49
);
9153 var53
= "->classid;";
9155 var55
= string__NativeString__to_s_with_length(var53
, var54
);
9159 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
9160 { /* var56 = array_instance Array[Object] */
9162 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
9163 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var_res
;
9164 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var38
;
9165 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var45
;
9166 ((struct instance_array__NativeArray
*)var58
)->values
[3] = (val
*) var47
;
9167 ((struct instance_array__NativeArray
*)var58
)->values
[4] = (val
*) var_value2
;
9168 ((struct instance_array__NativeArray
*)var58
)->values
[5] = (val
*) var52
;
9169 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
9171 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
9172 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var59
) /* add on <self:GlobalCompilerVisitor>*/;
9175 var60
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value1
) /* mtype on <var_value1:RuntimeVariable>*/;
9176 var61
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var60
) /* ctype on <var60:MType>*/;
9182 var66
= string__NativeString__to_s_with_length(var64
, var65
);
9186 var67
= ((short int (*)(val
*, val
*))(var61
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var61
, var63
) /* == on <var61:String>*/;
9193 var72
= string__NativeString__to_s_with_length(var70
, var71
);
9200 var75
= "->classid == ";
9202 var77
= string__NativeString__to_s_with_length(var75
, var76
);
9206 var78
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9207 var79
= ((val
* (*)(val
*))(var_value2
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value2
) /* mtype on <var_value2:RuntimeVariable>*/;
9208 /* <var79:MType> isa MClassType */
9209 cltype81
= type_model__MClassType
.color
;
9210 idtype82
= type_model__MClassType
.id
;
9211 if(cltype81
>= var79
->type
->table_size
) {
9214 var80
= var79
->type
->type_table
[cltype81
] == idtype82
;
9217 var_class_name83
= var79
== NULL ?
"null" : var79
->type
->name
;
9218 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name83
);
9219 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 757);
9222 var84
= ((val
* (*)(val
*, val
*))(var78
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var78
, var79
) /* classid on <var78:AbstractCompiler(GlobalCompiler)>*/;
9228 var89
= string__NativeString__to_s_with_length(var87
, var88
);
9232 var90
= NEW_array__Array(&type_array__Arraykernel__Object
);
9233 { /* var90 = array_instance Array[Object] */
9235 var92
= NEW_array__NativeArray(var91
, &type_array__NativeArraykernel__Object
);
9236 ((struct instance_array__NativeArray
*)var92
)->values
[0] = (val
*) var_res
;
9237 ((struct instance_array__NativeArray
*)var92
)->values
[1] = (val
*) var69
;
9238 ((struct instance_array__NativeArray
*)var92
)->values
[2] = (val
*) var_value1
;
9239 ((struct instance_array__NativeArray
*)var92
)->values
[3] = (val
*) var74
;
9240 ((struct instance_array__NativeArray
*)var92
)->values
[4] = (val
*) var84
;
9241 ((struct instance_array__NativeArray
*)var92
)->values
[5] = (val
*) var86
;
9242 ((void (*)(val
*, val
*, long))(var90
->class->vft
[COLOR_array__Array__with_native
]))(var90
, var92
, var91
) /* with_native on <var90:Array[Object]>*/;
9244 var93
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_string__Object__to_s
]))(var90
) /* to_s on <var90:Array[Object]>*/;
9245 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var93
) /* add on <self:GlobalCompilerVisitor>*/;
9247 var94
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value1
) /* mcasttype on <var_value1:RuntimeVariable>*/;
9248 var95
= ((val
* (*)(val
*))(var_value2
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value2
) /* mcasttype on <var_value2:RuntimeVariable>*/;
9249 var96
= ((short int (*)(val
*, val
*))(var94
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var94
, var95
) /* == on <var94:MType>*/;
9256 var101
= string__NativeString__to_s_with_length(var99
, var100
);
9260 var102
= NEW_array__Array(&type_array__Arraykernel__Object
);
9261 { /* var102 = array_instance Array[Object] */
9263 var104
= NEW_array__NativeArray(var103
, &type_array__NativeArraykernel__Object
);
9264 ((struct instance_array__NativeArray
*)var104
)->values
[0] = (val
*) var_res
;
9265 ((struct instance_array__NativeArray
*)var104
)->values
[1] = (val
*) var98
;
9266 ((void (*)(val
*, val
*, long))(var102
->class->vft
[COLOR_array__Array__with_native
]))(var102
, var104
, var103
) /* with_native on <var102:Array[Object]>*/;
9268 var105
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_string__Object__to_s
]))(var102
) /* to_s on <var102:Array[Object]>*/;
9269 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var105
) /* add on <self:GlobalCompilerVisitor>*/;
9272 var107
= varonce106
;
9276 var110
= string__NativeString__to_s_with_length(var108
, var109
);
9278 varonce106
= var107
;
9280 var111
= NEW_array__Array(&type_array__Arraykernel__Object
);
9281 { /* var111 = array_instance Array[Object] */
9283 var113
= NEW_array__NativeArray(var112
, &type_array__NativeArraykernel__Object
);
9284 ((struct instance_array__NativeArray
*)var113
)->values
[0] = (val
*) var_res
;
9285 ((struct instance_array__NativeArray
*)var113
)->values
[1] = (val
*) var107
;
9286 ((void (*)(val
*, val
*, long))(var111
->class->vft
[COLOR_array__Array__with_native
]))(var111
, var113
, var112
) /* with_native on <var111:Array[Object]>*/;
9288 var114
= ((val
* (*)(val
*))(var111
->class->vft
[COLOR_string__Object__to_s
]))(var111
) /* to_s on <var111:Array[Object]>*/;
9289 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var114
) /* add on <self:GlobalCompilerVisitor>*/;
9298 /* method global_compiler#GlobalCompilerVisitor#is_same_type_test for (self: Object, RuntimeVariable, RuntimeVariable): RuntimeVariable */
9299 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__is_same_type_test(val
* self
, val
* p0
, val
* p1
) {
9300 val
* var
/* : RuntimeVariable */;
9301 val
* var1
/* : RuntimeVariable */;
9302 var1
= global_compiler__GlobalCompilerVisitor__is_same_type_test(self
, p0
, p1
);
9307 /* method global_compiler#GlobalCompilerVisitor#class_name_string for (self: GlobalCompilerVisitor, RuntimeVariable): String */
9308 val
* global_compiler__GlobalCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
9309 val
* var
/* : String */;
9310 val
* var_value
/* var value: RuntimeVariable */;
9311 static val
* varonce
;
9312 val
* var1
/* : String */;
9313 char* var2
/* : NativeString */;
9314 long var3
/* : Int */;
9315 val
* var4
/* : String */;
9316 val
* var5
/* : String */;
9317 val
* var_res
/* var res: String */;
9318 static val
* varonce6
;
9319 val
* var7
/* : String */;
9320 char* var8
/* : NativeString */;
9321 long var9
/* : Int */;
9322 val
* var10
/* : String */;
9323 static val
* varonce11
;
9324 val
* var12
/* : String */;
9325 char* var13
/* : NativeString */;
9326 long var14
/* : Int */;
9327 val
* var15
/* : String */;
9328 val
* var16
/* : Array[Object] */;
9329 long var17
/* : Int */;
9330 val
* var18
/* : NativeArray[Object] */;
9331 val
* var19
/* : String */;
9332 val
* var20
/* : MType */;
9333 val
* var21
/* : String */;
9334 static val
* varonce22
;
9335 val
* var23
/* : String */;
9336 char* var24
/* : NativeString */;
9337 long var25
/* : Int */;
9338 val
* var26
/* : String */;
9339 short int var27
/* : Bool */;
9340 static val
* varonce28
;
9341 val
* var29
/* : String */;
9342 char* var30
/* : NativeString */;
9343 long var31
/* : Int */;
9344 val
* var32
/* : String */;
9345 static val
* varonce33
;
9346 val
* var34
/* : String */;
9347 char* var35
/* : NativeString */;
9348 long var36
/* : Int */;
9349 val
* var37
/* : String */;
9350 val
* var38
/* : Array[Object] */;
9351 long var39
/* : Int */;
9352 val
* var40
/* : NativeArray[Object] */;
9353 val
* var41
/* : String */;
9354 static val
* varonce42
;
9355 val
* var43
/* : String */;
9356 char* var44
/* : NativeString */;
9357 long var45
/* : Int */;
9358 val
* var46
/* : String */;
9359 val
* var47
/* : AbstractCompiler */;
9360 val
* var48
/* : MType */;
9361 short int var49
/* : Bool */;
9364 const char* var_class_name
;
9365 val
* var50
/* : String */;
9366 static val
* varonce51
;
9367 val
* var52
/* : String */;
9368 char* var53
/* : NativeString */;
9369 long var54
/* : Int */;
9370 val
* var55
/* : String */;
9371 val
* var56
/* : Array[Object] */;
9372 long var57
/* : Int */;
9373 val
* var58
/* : NativeArray[Object] */;
9374 val
* var59
/* : String */;
9379 var2
= "var_class_name";
9381 var4
= string__NativeString__to_s_with_length(var2
, var3
);
9385 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var1
) /* get_name on <self:GlobalCompilerVisitor>*/;
9390 var8
= "const char* ";
9392 var10
= string__NativeString__to_s_with_length(var8
, var9
);
9401 var15
= string__NativeString__to_s_with_length(var13
, var14
);
9405 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
9406 { /* var16 = array_instance Array[Object] */
9408 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
9409 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
9410 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var_res
;
9411 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
9412 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
9414 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
9415 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var19
) /* add_decl on <self:GlobalCompilerVisitor>*/;
9416 var20
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9417 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var20
) /* ctype on <var20:MType>*/;
9423 var26
= string__NativeString__to_s_with_length(var24
, var25
);
9427 var27
= ((short int (*)(val
*, val
*))(var21
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var21
, var23
) /* == on <var21:String>*/;
9432 var30
= " = class_names[";
9434 var32
= string__NativeString__to_s_with_length(var30
, var31
);
9441 var35
= "->classid];";
9443 var37
= string__NativeString__to_s_with_length(var35
, var36
);
9447 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
9448 { /* var38 = array_instance Array[Object] */
9450 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
9451 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var_res
;
9452 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var29
;
9453 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var_value
;
9454 ((struct instance_array__NativeArray
*)var40
)->values
[3] = (val
*) var34
;
9455 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
9457 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
9458 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var41
) /* add on <self:GlobalCompilerVisitor>*/;
9463 var44
= " = class_names[";
9465 var46
= string__NativeString__to_s_with_length(var44
, var45
);
9469 var47
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9470 var48
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9471 /* <var48:MType> isa MClassType */
9472 cltype
= type_model__MClassType
.color
;
9473 idtype
= type_model__MClassType
.id
;
9474 if(cltype
>= var48
->type
->table_size
) {
9477 var49
= var48
->type
->type_table
[cltype
] == idtype
;
9480 var_class_name
= var48
== NULL ?
"null" : var48
->type
->name
;
9481 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
9482 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 774);
9485 var50
= ((val
* (*)(val
*, val
*))(var47
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var47
, var48
) /* classid on <var47:AbstractCompiler(GlobalCompiler)>*/;
9491 var55
= string__NativeString__to_s_with_length(var53
, var54
);
9495 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
9496 { /* var56 = array_instance Array[Object] */
9498 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
9499 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var_res
;
9500 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var43
;
9501 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var50
;
9502 ((struct instance_array__NativeArray
*)var58
)->values
[3] = (val
*) var52
;
9503 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
9505 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
9506 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var59
) /* add on <self:GlobalCompilerVisitor>*/;
9513 /* method global_compiler#GlobalCompilerVisitor#class_name_string for (self: Object, RuntimeVariable): String */
9514 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
9515 val
* var
/* : String */;
9516 val
* var1
/* : String */;
9517 var1
= global_compiler__GlobalCompilerVisitor__class_name_string(self
, p0
);