1 #include "global_compiler.sep.0.h"
2 /* method global_compiler#ModelBuilder#run_global_compiler for (self: ModelBuilder, MModule, RapidTypeAnalysis) */
3 void global_compiler__ModelBuilder__run_global_compiler(val
* self
, val
* p0
, val
* p1
) {
4 val
* var_mainmodule
/* var mainmodule: MModule */;
5 val
* var_runtime_type_analysis
/* var runtime_type_analysis: RapidTypeAnalysis */;
7 long var_time0
/* var time0: Int */;
8 val
* var1
/* : ToolContext */;
10 val
* var2
/* : String */;
11 char* var3
/* : NativeString */;
12 long var4
/* : Int */;
13 val
* var5
/* : String */;
14 long var6
/* : Int */;
15 val
* var7
/* : GlobalCompiler */;
16 val
* var_compiler
/* var compiler: GlobalCompiler */;
17 val
* var8
/* : HashSet[MClassType] */;
18 val
* var9
/* : Iterator[nullable Object] */;
19 short int var10
/* : Bool */;
20 val
* var11
/* : nullable Object */;
21 val
* var_t
/* var t: MClassType */;
22 val
* var12
/* : HashSet[MClassType] */;
23 val
* var13
/* : Iterator[nullable Object] */;
24 short int var14
/* : Bool */;
25 val
* var15
/* : nullable Object */;
26 val
* var_t16
/* var t: MClassType */;
27 val
* var17
/* : String */;
28 static val
* varonce18
;
29 val
* var19
/* : String */;
30 char* var20
/* : NativeString */;
31 long var21
/* : Int */;
32 val
* var22
/* : String */;
33 short int var23
/* : Bool */;
34 val
* var25
/* : List[AbstractRuntimeFunction] */;
35 short int var26
/* : Bool */;
36 short int var27
/* : Bool */;
37 val
* var28
/* : List[AbstractRuntimeFunction] */;
38 val
* var29
/* : nullable Object */;
39 val
* var_m
/* var m: AbstractRuntimeFunction */;
40 val
* var30
/* : ToolContext */;
41 static val
* varonce31
;
42 val
* var32
/* : String */;
43 char* var33
/* : NativeString */;
44 long var34
/* : Int */;
45 val
* var35
/* : String */;
46 static val
* varonce36
;
47 val
* var37
/* : String */;
48 char* var38
/* : NativeString */;
49 long var39
/* : Int */;
50 val
* var40
/* : String */;
51 val
* var41
/* : HashSet[AbstractRuntimeFunction] */;
52 long var42
/* : Int */;
53 val
* var43
/* : List[AbstractRuntimeFunction] */;
54 long var44
/* : Int */;
55 long var45
/* : Int */;
56 long var47
/* : Int */;
57 static val
* varonce48
;
58 val
* var49
/* : String */;
59 char* var50
/* : NativeString */;
60 long var51
/* : Int */;
61 val
* var52
/* : String */;
62 val
* var53
/* : HashSet[AbstractRuntimeFunction] */;
63 long var54
/* : Int */;
64 static val
* varonce55
;
65 val
* var56
/* : String */;
66 char* var57
/* : NativeString */;
67 long var58
/* : Int */;
68 val
* var59
/* : String */;
69 val
* var60
/* : Array[Object] */;
70 long var61
/* : Int */;
71 val
* var62
/* : NativeArray[Object] */;
72 val
* var63
/* : Object */;
73 val
* var64
/* : Object */;
74 val
* var65
/* : String */;
75 long var66
/* : Int */;
76 val
* var68
/* : ToolContext */;
77 static val
* varonce69
;
78 val
* var70
/* : String */;
79 char* var71
/* : NativeString */;
80 long var72
/* : Int */;
81 val
* var73
/* : String */;
82 val
* var74
/* : HashSet[AbstractRuntimeFunction] */;
83 long var75
/* : Int */;
84 val
* var76
/* : Array[Object] */;
85 long var77
/* : Int */;
86 val
* var78
/* : NativeArray[Object] */;
87 val
* var79
/* : Object */;
88 val
* var80
/* : String */;
89 long var81
/* : Int */;
90 long var82
/* : Int */;
91 long var_time1
/* var time1: Int */;
92 val
* var83
/* : ToolContext */;
93 static val
* varonce84
;
94 val
* var85
/* : String */;
95 char* var86
/* : NativeString */;
96 long var87
/* : Int */;
97 val
* var88
/* : String */;
98 long var89
/* : Int */;
99 long var91
/* : Int */;
100 static val
* varonce92
;
101 val
* var93
/* : String */;
102 char* var94
/* : NativeString */;
103 long var95
/* : Int */;
104 val
* var96
/* : String */;
105 val
* var97
/* : Array[Object] */;
106 long var98
/* : Int */;
107 val
* var99
/* : NativeArray[Object] */;
108 val
* var100
/* : Object */;
109 val
* var101
/* : String */;
110 long var102
/* : Int */;
112 var_runtime_type_analysis
= p1
;
113 var
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
115 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
119 var3
= "*** GENERATING C ***";
121 var5
= string__NativeString__to_s_with_length(var3
, var4
);
126 ((void (*)(val
*, val
*, long))(var1
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var1
, var2
, var6
) /* info on <var1:ToolContext>*/;
127 var7
= NEW_global_compiler__GlobalCompiler(&type_global_compiler__GlobalCompiler
);
128 ((void (*)(val
*, val
*, val
*, val
*))(var7
->class->vft
[COLOR_global_compiler__GlobalCompiler__init
]))(var7
, var_mainmodule
, self
, var_runtime_type_analysis
) /* init on <var7:GlobalCompiler>*/;
129 CHECK_NEW_global_compiler__GlobalCompiler(var7
);
131 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_header
]))(var_compiler
) /* compile_header on <var_compiler:GlobalCompiler>*/;
132 var8
= ((val
* (*)(val
*))(var_runtime_type_analysis
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var_runtime_type_analysis
) /* live_types on <var_runtime_type_analysis:RapidTypeAnalysis>*/;
133 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:HashSet[MClassType]>*/;
135 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
137 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
139 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__declare_runtimeclass
]))(var_compiler
, var_t
) /* declare_runtimeclass on <var_compiler:GlobalCompiler>*/;
140 CONTINUE_label
: (void)0;
141 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
143 BREAK_label
: (void)0;
144 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__compile_class_names
]))(var_compiler
) /* compile_class_names on <var_compiler:GlobalCompiler>*/;
145 var12
= ((val
* (*)(val
*))(var_runtime_type_analysis
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var_runtime_type_analysis
) /* live_types on <var_runtime_type_analysis:RapidTypeAnalysis>*/;
146 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:HashSet[MClassType]>*/;
148 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
150 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
152 var17
= ((val
* (*)(val
*))(var_t16
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t16
) /* ctype on <var_t16:MClassType>*/;
158 var22
= string__NativeString__to_s_with_length(var20
, var21
);
162 var23
= ((short int (*)(val
*, val
*))(var17
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var17
, var19
) /* == on <var17:String>*/;
164 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__generate_init_instance
]))(var_compiler
, var_t16
) /* generate_init_instance on <var_compiler:GlobalCompiler>*/;
165 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__generate_check_init_instance
]))(var_compiler
, var_t16
) /* generate_check_init_instance on <var_compiler:GlobalCompiler>*/;
167 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__generate_box_instance
]))(var_compiler
, var_t16
) /* generate_box_instance on <var_compiler:GlobalCompiler>*/;
169 CONTINUE_label24
: (void)0;
170 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
172 BREAK_label24
: (void)0;
173 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_main_function
]))(var_compiler
) /* compile_main_function on <var_compiler:GlobalCompiler>*/;
175 var25
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(var_compiler
) /* todos on <var_compiler:GlobalCompiler>*/;
176 var26
= ((short int (*)(val
*))(var25
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var25
) /* is_empty on <var25:List[AbstractRuntimeFunction]>*/;
179 var28
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(var_compiler
) /* todos on <var_compiler:GlobalCompiler>*/;
180 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Sequence__shift
]))(var28
) /* shift on <var28:List[AbstractRuntimeFunction]>*/;
182 var30
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
188 var35
= string__NativeString__to_s_with_length(var33
, var34
);
197 var40
= string__NativeString__to_s_with_length(var38
, var39
);
201 var41
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(var_compiler
) /* seen on <var_compiler:GlobalCompiler>*/;
202 var42
= ((long (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var41
) /* length on <var41:HashSet[AbstractRuntimeFunction]>*/;
203 var43
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(var_compiler
) /* todos on <var_compiler:GlobalCompiler>*/;
204 var44
= ((long (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var43
) /* length on <var43:List[AbstractRuntimeFunction]>*/;
205 { /* Inline kernel#Int#- (var42,var44) */
206 var47
= var42
- var44
;
216 var52
= string__NativeString__to_s_with_length(var50
, var51
);
220 var53
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(var_compiler
) /* seen on <var_compiler:GlobalCompiler>*/;
221 var54
= ((long (*)(val
*))(var53
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var53
) /* length on <var53:HashSet[AbstractRuntimeFunction]>*/;
227 var59
= string__NativeString__to_s_with_length(var57
, var58
);
231 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
232 { /* var60 = array_instance Array[Object] */
234 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
235 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var32
;
236 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var_m
;
237 ((struct instance_array__NativeArray
*)var62
)->values
[2] = (val
*) var37
;
238 var63
= BOX_kernel__Int(var45
); /* autobox from Int to Object */
239 ((struct instance_array__NativeArray
*)var62
)->values
[3] = (val
*) var63
;
240 ((struct instance_array__NativeArray
*)var62
)->values
[4] = (val
*) var49
;
241 var64
= BOX_kernel__Int(var54
); /* autobox from Int to Object */
242 ((struct instance_array__NativeArray
*)var62
)->values
[5] = (val
*) var64
;
243 ((struct instance_array__NativeArray
*)var62
)->values
[6] = (val
*) var56
;
244 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
245 CHECK_NEW_array__Array(var60
);
247 var65
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
249 ((void (*)(val
*, val
*, long))(var30
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var30
, var65
, var66
) /* info on <var30:ToolContext>*/;
250 ((void (*)(val
*, val
*))(var_m
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__compile_to_c
]))(var_m
, var_compiler
) /* compile_to_c on <var_m:AbstractRuntimeFunction>*/;
251 CONTINUE_label67
: (void)0;
253 BREAK_label67
: (void)0;
254 var68
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
258 var71
= "Total methods to compile to C: ";
260 var73
= string__NativeString__to_s_with_length(var71
, var72
);
264 var74
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(var_compiler
) /* seen on <var_compiler:GlobalCompiler>*/;
265 var75
= ((long (*)(val
*))(var74
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var74
) /* length on <var74:HashSet[AbstractRuntimeFunction]>*/;
266 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
267 { /* var76 = array_instance Array[Object] */
269 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
270 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var70
;
271 var79
= BOX_kernel__Int(var75
); /* autobox from Int to Object */
272 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var79
;
273 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
274 CHECK_NEW_array__Array(var76
);
276 var80
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
278 ((void (*)(val
*, val
*, long))(var68
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var68
, var80
, var81
) /* info on <var68:ToolContext>*/;
279 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__display_stats
]))(var_compiler
) /* display_stats on <var_compiler:GlobalCompiler>*/;
280 var82
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
282 var83
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
286 var86
= "*** END GENERATING C: ";
288 var88
= string__NativeString__to_s_with_length(var86
, var87
);
292 { /* Inline kernel#Int#- (var_time1,var_time0) */
293 var91
= var_time1
- var_time0
;
303 var96
= string__NativeString__to_s_with_length(var94
, var95
);
307 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
308 { /* var97 = array_instance Array[Object] */
310 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
311 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var85
;
312 var100
= BOX_kernel__Int(var89
); /* autobox from Int to Object */
313 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var100
;
314 ((struct instance_array__NativeArray
*)var99
)->values
[2] = (val
*) var93
;
315 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
316 CHECK_NEW_array__Array(var97
);
318 var101
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
320 ((void (*)(val
*, val
*, long))(var83
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var83
, var101
, var102
) /* info on <var83:ToolContext>*/;
321 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__ModelBuilder__write_and_make
]))(self
, var_compiler
) /* write_and_make on <self:ModelBuilder>*/;
324 /* method global_compiler#ModelBuilder#run_global_compiler for (self: Object, MModule, RapidTypeAnalysis) */
325 void VIRTUAL_global_compiler__ModelBuilder__run_global_compiler(val
* self
, val
* p0
, val
* p1
) {
326 global_compiler__ModelBuilder__run_global_compiler(self
, p0
, p1
);
329 /* method global_compiler#GlobalCompiler#runtime_type_analysis for (self: GlobalCompiler): RapidTypeAnalysis */
330 val
* global_compiler__GlobalCompiler__runtime_type_analysis(val
* self
) {
331 val
* var
/* : RapidTypeAnalysis */;
332 val
* var1
/* : RapidTypeAnalysis */;
333 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64druntime_type_analysis
].val
; /* @runtime_type_analysis on <self:GlobalCompiler> */
335 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @runtime_type_analysis");
336 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 85);
343 /* method global_compiler#GlobalCompiler#runtime_type_analysis for (self: Object): RapidTypeAnalysis */
344 val
* VIRTUAL_global_compiler__GlobalCompiler__runtime_type_analysis(val
* self
) {
345 val
* var
/* : RapidTypeAnalysis */;
346 val
* var1
/* : RapidTypeAnalysis */;
347 var1
= global_compiler__GlobalCompiler__runtime_type_analysis(self
);
352 /* method global_compiler#GlobalCompiler#runtime_type_analysis= for (self: GlobalCompiler, RapidTypeAnalysis) */
353 void global_compiler__GlobalCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
354 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64druntime_type_analysis
].val
= p0
; /* @runtime_type_analysis on <self:GlobalCompiler> */
357 /* method global_compiler#GlobalCompiler#runtime_type_analysis= for (self: Object, RapidTypeAnalysis) */
358 void VIRTUAL_global_compiler__GlobalCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
359 global_compiler__GlobalCompiler__runtime_type_analysis_61d(self
, p0
);
362 /* method global_compiler#GlobalCompiler#init for (self: GlobalCompiler, MModule, ModelBuilder, RapidTypeAnalysis) */
363 void global_compiler__GlobalCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
364 val
* var_mainmodule
/* var mainmodule: MModule */;
365 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
366 val
* var_runtime_type_analysis
/* var runtime_type_analysis: RapidTypeAnalysis */;
367 val
* var
/* : String */;
369 val
* var1
/* : String */;
370 char* var2
/* : NativeString */;
371 long var3
/* : Int */;
372 val
* var4
/* : String */;
373 val
* var5
/* : Array[Object] */;
374 long var6
/* : Int */;
375 val
* var7
/* : NativeArray[Object] */;
376 val
* var8
/* : String */;
377 val
* var9
/* : CodeFile */;
378 val
* var_file
/* var file: CodeFile */;
379 val
* var10
/* : CodeWriter */;
380 val
* var11
/* : Array[MClassType] */;
381 val
* var12
/* : HashSet[MClassType] */;
382 val
* var13
/* : Iterator[nullable Object] */;
383 short int var14
/* : Bool */;
384 val
* var15
/* : nullable Object */;
385 val
* var_t
/* var t: MClassType */;
386 val
* var16
/* : String */;
387 static val
* varonce17
;
388 val
* var18
/* : String */;
389 char* var19
/* : NativeString */;
390 long var20
/* : Int */;
391 val
* var21
/* : String */;
392 short int var22
/* : Bool */;
393 val
* var23
/* : Array[MClassType] */;
395 var_modelbuilder
= p1
;
396 var_runtime_type_analysis
= p2
;
397 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__init
]))(self
, var_mainmodule
, var_modelbuilder
) /* init on <self:GlobalCompiler>*/;
398 var
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_model_base__MModule__name
]))(var_mainmodule
) /* name on <var_mainmodule:MModule>*/;
404 var4
= string__NativeString__to_s_with_length(var2
, var3
);
408 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
409 { /* var5 = array_instance Array[Object] */
411 var7
= NEW_array__NativeArray(var6
, &type_array__NativeArraykernel__Object
);
412 ((struct instance_array__NativeArray
*)var7
)->values
[0] = (val
*) var
;
413 ((struct instance_array__NativeArray
*)var7
)->values
[1] = (val
*) var1
;
414 ((void (*)(val
*, val
*, long))(var5
->class->vft
[COLOR_array__Array__with_native
]))(var5
, var7
, var6
) /* with_native on <var5:Array[Object]>*/;
415 CHECK_NEW_array__Array(var5
);
417 var8
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_string__Object__to_s
]))(var5
) /* to_s on <var5:Array[Object]>*/;
418 var9
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(self
, var8
) /* new_file on <self:GlobalCompiler>*/;
420 var10
= NEW_abstract_compiler__CodeWriter(&type_abstract_compiler__CodeWriter
);
421 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_compiler__CodeWriter__init
]))(var10
, var_file
) /* init on <var10:CodeWriter>*/;
422 CHECK_NEW_abstract_compiler__CodeWriter(var10
);
423 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header_61d
]))(self
, var10
) /* header= on <self:GlobalCompiler>*/;
424 ((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>*/;
425 var11
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
426 ((void (*)(val
*))(var11
->class->vft
[COLOR_array__Array__init
]))(var11
) /* init on <var11:Array[MClassType]>*/;
427 CHECK_NEW_array__Array(var11
);
428 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__live_primitive_types_61d
]))(self
, var11
) /* live_primitive_types= on <self:GlobalCompiler>*/;
429 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>*/;
430 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:HashSet[MClassType]>*/;
432 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
434 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
436 var16
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t
) /* ctype on <var_t:MClassType>*/;
442 var21
= string__NativeString__to_s_with_length(var19
, var20
);
446 var22
= ((short int (*)(val
*, val
*))(var16
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var16
, var18
) /* != on <var16:String>*/;
448 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__live_primitive_types
]))(self
) /* live_primitive_types on <self:GlobalCompiler>*/;
449 ((void (*)(val
*, val
*))(var23
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var23
, var_t
) /* add on <var23:Array[MClassType]>*/;
452 CONTINUE_label
: (void)0;
453 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
455 BREAK_label
: (void)0;
458 /* method global_compiler#GlobalCompiler#init for (self: Object, MModule, ModelBuilder, RapidTypeAnalysis) */
459 void VIRTUAL_global_compiler__GlobalCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
460 global_compiler__GlobalCompiler__init(self
, p0
, p1
, p2
);
463 /* method global_compiler#GlobalCompiler#compile_class_names for (self: GlobalCompiler) */
464 void global_compiler__GlobalCompiler__compile_class_names(val
* self
) {
465 val
* var
/* : AbstractCompilerVisitor */;
466 val
* var_v
/* var v: GlobalCompilerVisitor */;
467 val
* var1
/* : CodeWriter */;
469 val
* var2
/* : String */;
470 char* var3
/* : NativeString */;
471 long var4
/* : Int */;
472 val
* var5
/* : String */;
473 static val
* varonce6
;
474 val
* var7
/* : String */;
475 char* var8
/* : NativeString */;
476 long var9
/* : Int */;
477 val
* var10
/* : String */;
478 val
* var11
/* : RapidTypeAnalysis */;
479 val
* var12
/* : HashSet[MClassType] */;
480 val
* var13
/* : Iterator[nullable Object] */;
481 short int var14
/* : Bool */;
482 val
* var15
/* : nullable Object */;
483 val
* var_t
/* var t: MClassType */;
484 static val
* varonce16
;
485 val
* var17
/* : String */;
486 char* var18
/* : NativeString */;
487 long var19
/* : Int */;
488 val
* var20
/* : String */;
489 static val
* varonce21
;
490 val
* var22
/* : String */;
491 char* var23
/* : NativeString */;
492 long var24
/* : Int */;
493 val
* var25
/* : String */;
494 val
* var26
/* : String */;
495 static val
* varonce27
;
496 val
* var28
/* : String */;
497 char* var29
/* : NativeString */;
498 long var30
/* : Int */;
499 val
* var31
/* : String */;
500 val
* var32
/* : Array[Object] */;
501 long var33
/* : Int */;
502 val
* var34
/* : NativeArray[Object] */;
503 val
* var35
/* : String */;
504 static val
* varonce36
;
505 val
* var37
/* : String */;
506 char* var38
/* : NativeString */;
507 long var39
/* : Int */;
508 val
* var40
/* : String */;
509 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:GlobalCompiler>*/;
511 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
515 var3
= "extern const char const * class_names[];";
517 var5
= string__NativeString__to_s_with_length(var3
, var4
);
521 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var1
, var2
) /* add_decl on <var1:CodeWriter>*/;
525 var8
= "const char const * class_names[] = {";
527 var10
= string__NativeString__to_s_with_length(var8
, var9
);
531 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var7
) /* add on <var_v:GlobalCompilerVisitor>*/;
532 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
533 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var11
) /* live_types on <var11:RapidTypeAnalysis>*/;
534 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:HashSet[MClassType]>*/;
536 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
538 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
545 var20
= string__NativeString__to_s_with_length(var18
, var19
);
554 var25
= string__NativeString__to_s_with_length(var23
, var24
);
558 var26
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(self
, var_t
) /* classid on <self:GlobalCompiler>*/;
564 var31
= string__NativeString__to_s_with_length(var29
, var30
);
568 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
569 { /* var32 = array_instance Array[Object] */
571 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
572 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var17
;
573 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_t
;
574 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var22
;
575 ((struct instance_array__NativeArray
*)var34
)->values
[3] = (val
*) var26
;
576 ((struct instance_array__NativeArray
*)var34
)->values
[4] = (val
*) var28
;
577 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
578 CHECK_NEW_array__Array(var32
);
580 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
581 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var35
) /* add on <var_v:GlobalCompilerVisitor>*/;
582 CONTINUE_label
: (void)0;
583 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
585 BREAK_label
: (void)0;
591 var40
= string__NativeString__to_s_with_length(var38
, var39
);
595 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var37
) /* add on <var_v:GlobalCompilerVisitor>*/;
598 /* method global_compiler#GlobalCompiler#compile_class_names for (self: Object) */
599 void VIRTUAL_global_compiler__GlobalCompiler__compile_class_names(val
* self
) {
600 global_compiler__GlobalCompiler__compile_class_names(self
);
603 /* method global_compiler#GlobalCompiler#classid for (self: GlobalCompiler, MClassType): String */
604 val
* global_compiler__GlobalCompiler__classid(val
* self
, val
* p0
) {
605 val
* var
/* : String */;
606 val
* var_mtype
/* var mtype: MClassType */;
607 val
* var1
/* : HashMap[MClassType, String] */;
608 short int var2
/* : Bool */;
609 val
* var3
/* : HashMap[MClassType, String] */;
610 val
* var4
/* : nullable Object */;
612 val
* var5
/* : String */;
613 char* var6
/* : NativeString */;
614 long var7
/* : Int */;
615 val
* var8
/* : String */;
616 val
* var9
/* : Array[Object] */;
617 long var10
/* : Int */;
618 val
* var11
/* : NativeArray[Object] */;
619 val
* var12
/* : String */;
621 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
622 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var1
, var_mtype
) /* has_key on <var1:HashMap[MClassType, String]>*/;
624 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
625 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var3
, var_mtype
) /* [] on <var3:HashMap[MClassType, String]>*/;
633 var6
= "No classid for ";
635 var8
= string__NativeString__to_s_with_length(var6
, var7
);
639 var9
= NEW_array__Array(&type_array__Arraykernel__Object
);
640 { /* var9 = array_instance Array[Object] */
642 var11
= NEW_array__NativeArray(var10
, &type_array__NativeArraykernel__Object
);
643 ((struct instance_array__NativeArray
*)var11
)->values
[0] = (val
*) var5
;
644 ((struct instance_array__NativeArray
*)var11
)->values
[1] = (val
*) var_mtype
;
645 ((void (*)(val
*, val
*, long))(var9
->class->vft
[COLOR_array__Array__with_native
]))(var9
, var11
, var10
) /* with_native on <var9:Array[Object]>*/;
646 CHECK_NEW_array__Array(var9
);
648 var12
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_string__Object__to_s
]))(var9
) /* to_s on <var9:Array[Object]>*/;
649 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var12
) /* print on <self:GlobalCompiler>*/;
650 fprintf(stderr
, "Runtime error: %s", "Aborted");
651 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 121);
656 /* method global_compiler#GlobalCompiler#classid for (self: Object, MClassType): String */
657 val
* VIRTUAL_global_compiler__GlobalCompiler__classid(val
* self
, val
* p0
) {
658 val
* var
/* : String */;
659 val
* var1
/* : String */;
660 var1
= global_compiler__GlobalCompiler__classid(self
, p0
);
665 /* method global_compiler#GlobalCompiler#classids for (self: GlobalCompiler): HashMap[MClassType, String] */
666 val
* global_compiler__GlobalCompiler__classids(val
* self
) {
667 val
* var
/* : HashMap[MClassType, String] */;
668 val
* var1
/* : HashMap[MClassType, String] */;
669 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dclassids
].val
; /* @classids on <self:GlobalCompiler> */
671 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @classids");
672 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 124);
679 /* method global_compiler#GlobalCompiler#classids for (self: Object): HashMap[MClassType, String] */
680 val
* VIRTUAL_global_compiler__GlobalCompiler__classids(val
* self
) {
681 val
* var
/* : HashMap[MClassType, String] */;
682 val
* var1
/* : HashMap[MClassType, String] */;
683 var1
= global_compiler__GlobalCompiler__classids(self
);
688 /* method global_compiler#GlobalCompiler#classids= for (self: GlobalCompiler, HashMap[MClassType, String]) */
689 void global_compiler__GlobalCompiler__classids_61d(val
* self
, val
* p0
) {
690 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dclassids
].val
= p0
; /* @classids on <self:GlobalCompiler> */
693 /* method global_compiler#GlobalCompiler#classids= for (self: Object, HashMap[MClassType, String]) */
694 void VIRTUAL_global_compiler__GlobalCompiler__classids_61d(val
* self
, val
* p0
) {
695 global_compiler__GlobalCompiler__classids_61d(self
, p0
);
698 /* method global_compiler#GlobalCompiler#compile_header_structs for (self: GlobalCompiler) */
699 void global_compiler__GlobalCompiler__compile_header_structs(val
* self
) {
700 val
* var
/* : CodeWriter */;
702 val
* var1
/* : String */;
703 char* var2
/* : NativeString */;
704 long var3
/* : Int */;
705 val
* var4
/* : String */;
706 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
710 var2
= "typedef struct {int classid;} val; /* general C type representing a Nit instance. */";
712 var4
= string__NativeString__to_s_with_length(var2
, var3
);
716 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var
, var1
) /* add_decl on <var:CodeWriter>*/;
719 /* method global_compiler#GlobalCompiler#compile_header_structs for (self: Object) */
720 void VIRTUAL_global_compiler__GlobalCompiler__compile_header_structs(val
* self
) {
721 global_compiler__GlobalCompiler__compile_header_structs(self
);
724 /* method global_compiler#GlobalCompiler#live_primitive_types for (self: GlobalCompiler): Array[MClassType] */
725 val
* global_compiler__GlobalCompiler__live_primitive_types(val
* self
) {
726 val
* var
/* : Array[MClassType] */;
727 val
* var1
/* : Array[MClassType] */;
728 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dlive_primitive_types
].val
; /* @live_primitive_types on <self:GlobalCompiler> */
730 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @live_primitive_types");
731 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 135);
738 /* method global_compiler#GlobalCompiler#live_primitive_types for (self: Object): Array[MClassType] */
739 val
* VIRTUAL_global_compiler__GlobalCompiler__live_primitive_types(val
* self
) {
740 val
* var
/* : Array[MClassType] */;
741 val
* var1
/* : Array[MClassType] */;
742 var1
= global_compiler__GlobalCompiler__live_primitive_types(self
);
747 /* method global_compiler#GlobalCompiler#live_primitive_types= for (self: GlobalCompiler, Array[MClassType]) */
748 void global_compiler__GlobalCompiler__live_primitive_types_61d(val
* self
, val
* p0
) {
749 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dlive_primitive_types
].val
= p0
; /* @live_primitive_types on <self:GlobalCompiler> */
752 /* method global_compiler#GlobalCompiler#live_primitive_types= for (self: Object, Array[MClassType]) */
753 void VIRTUAL_global_compiler__GlobalCompiler__live_primitive_types_61d(val
* self
, val
* p0
) {
754 global_compiler__GlobalCompiler__live_primitive_types_61d(self
, p0
);
757 /* method global_compiler#GlobalCompiler#todo for (self: GlobalCompiler, AbstractRuntimeFunction) */
758 void global_compiler__GlobalCompiler__todo(val
* self
, val
* p0
) {
759 val
* var_m
/* var m: AbstractRuntimeFunction */;
760 val
* var
/* : HashSet[AbstractRuntimeFunction] */;
761 short int var1
/* : Bool */;
762 val
* var2
/* : List[AbstractRuntimeFunction] */;
763 val
* var3
/* : HashSet[AbstractRuntimeFunction] */;
765 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(self
) /* seen on <self:GlobalCompiler>*/;
766 var1
= ((short int (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var
, var_m
) /* has on <var:HashSet[AbstractRuntimeFunction]>*/;
771 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(self
) /* todos on <self:GlobalCompiler>*/;
772 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_m
) /* add on <var2:List[AbstractRuntimeFunction]>*/;
773 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(self
) /* seen on <self:GlobalCompiler>*/;
774 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var3
, var_m
) /* add on <var3:HashSet[AbstractRuntimeFunction]>*/;
777 /* method global_compiler#GlobalCompiler#todo for (self: Object, AbstractRuntimeFunction) */
778 void VIRTUAL_global_compiler__GlobalCompiler__todo(val
* self
, val
* p0
) {
779 global_compiler__GlobalCompiler__todo(self
, p0
);
782 /* method global_compiler#GlobalCompiler#todos for (self: GlobalCompiler): List[AbstractRuntimeFunction] */
783 val
* global_compiler__GlobalCompiler__todos(val
* self
) {
784 val
* var
/* : List[AbstractRuntimeFunction] */;
785 val
* var1
/* : List[AbstractRuntimeFunction] */;
786 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dtodos
].val
; /* @todos on <self:GlobalCompiler> */
788 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @todos");
789 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 147);
796 /* method global_compiler#GlobalCompiler#todos for (self: Object): List[AbstractRuntimeFunction] */
797 val
* VIRTUAL_global_compiler__GlobalCompiler__todos(val
* self
) {
798 val
* var
/* : List[AbstractRuntimeFunction] */;
799 val
* var1
/* : List[AbstractRuntimeFunction] */;
800 var1
= global_compiler__GlobalCompiler__todos(self
);
805 /* method global_compiler#GlobalCompiler#todos= for (self: GlobalCompiler, List[AbstractRuntimeFunction]) */
806 void global_compiler__GlobalCompiler__todos_61d(val
* self
, val
* p0
) {
807 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dtodos
].val
= p0
; /* @todos on <self:GlobalCompiler> */
810 /* method global_compiler#GlobalCompiler#todos= for (self: Object, List[AbstractRuntimeFunction]) */
811 void VIRTUAL_global_compiler__GlobalCompiler__todos_61d(val
* self
, val
* p0
) {
812 global_compiler__GlobalCompiler__todos_61d(self
, p0
);
815 /* method global_compiler#GlobalCompiler#seen for (self: GlobalCompiler): HashSet[AbstractRuntimeFunction] */
816 val
* global_compiler__GlobalCompiler__seen(val
* self
) {
817 val
* var
/* : HashSet[AbstractRuntimeFunction] */;
818 val
* var1
/* : HashSet[AbstractRuntimeFunction] */;
819 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dseen
].val
; /* @seen on <self:GlobalCompiler> */
821 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @seen");
822 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 150);
829 /* method global_compiler#GlobalCompiler#seen for (self: Object): HashSet[AbstractRuntimeFunction] */
830 val
* VIRTUAL_global_compiler__GlobalCompiler__seen(val
* self
) {
831 val
* var
/* : HashSet[AbstractRuntimeFunction] */;
832 val
* var1
/* : HashSet[AbstractRuntimeFunction] */;
833 var1
= global_compiler__GlobalCompiler__seen(self
);
838 /* method global_compiler#GlobalCompiler#seen= for (self: GlobalCompiler, HashSet[AbstractRuntimeFunction]) */
839 void global_compiler__GlobalCompiler__seen_61d(val
* self
, val
* p0
) {
840 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dseen
].val
= p0
; /* @seen on <self:GlobalCompiler> */
843 /* method global_compiler#GlobalCompiler#seen= for (self: Object, HashSet[AbstractRuntimeFunction]) */
844 void VIRTUAL_global_compiler__GlobalCompiler__seen_61d(val
* self
, val
* p0
) {
845 global_compiler__GlobalCompiler__seen_61d(self
, p0
);
848 /* method global_compiler#GlobalCompiler#declare_runtimeclass for (self: GlobalCompiler, MClassType) */
849 void global_compiler__GlobalCompiler__declare_runtimeclass(val
* self
, val
* p0
) {
850 val
* var_mtype
/* var mtype: MClassType */;
851 val
* var
/* : CodeWriter */;
852 val
* var_v
/* var v: CodeWriter */;
853 val
* var1
/* : RapidTypeAnalysis */;
854 val
* var2
/* : HashSet[MClassType] */;
855 short int var3
/* : Bool */;
857 val
* var4
/* : String */;
858 char* var5
/* : NativeString */;
859 long var6
/* : Int */;
860 val
* var7
/* : String */;
861 static val
* varonce8
;
862 val
* var9
/* : String */;
863 char* var10
/* : NativeString */;
864 long var11
/* : Int */;
865 val
* var12
/* : String */;
866 val
* var13
/* : Array[Object] */;
867 long var14
/* : Int */;
868 val
* var15
/* : NativeArray[Object] */;
869 val
* var16
/* : String */;
870 val
* var17
/* : HashMap[MClassType, String] */;
871 long var18
/* : Int */;
872 long var_idnum
/* var idnum: Int */;
873 static val
* varonce19
;
874 val
* var20
/* : String */;
875 char* var21
/* : NativeString */;
876 long var22
/* : Int */;
877 val
* var23
/* : String */;
878 val
* var24
/* : String */;
879 val
* var25
/* : String */;
880 val
* var_idname
/* var idname: String */;
881 val
* var26
/* : HashMap[MClassType, String] */;
882 static val
* varonce27
;
883 val
* var28
/* : String */;
884 char* var29
/* : NativeString */;
885 long var30
/* : Int */;
886 val
* var31
/* : String */;
887 static val
* varonce32
;
888 val
* var33
/* : String */;
889 char* var34
/* : NativeString */;
890 long var35
/* : Int */;
891 val
* var36
/* : String */;
892 static val
* varonce37
;
893 val
* var38
/* : String */;
894 char* var39
/* : NativeString */;
895 long var40
/* : Int */;
896 val
* var41
/* : String */;
897 static val
* varonce42
;
898 val
* var43
/* : String */;
899 char* var44
/* : NativeString */;
900 long var45
/* : Int */;
901 val
* var46
/* : String */;
902 val
* var47
/* : Array[Object] */;
903 long var48
/* : Int */;
904 val
* var49
/* : NativeArray[Object] */;
905 val
* var50
/* : Object */;
906 val
* var51
/* : String */;
907 static val
* varonce52
;
908 val
* var53
/* : String */;
909 char* var54
/* : NativeString */;
910 long var55
/* : Int */;
911 val
* var56
/* : String */;
912 val
* var57
/* : String */;
913 static val
* varonce58
;
914 val
* var59
/* : String */;
915 char* var60
/* : NativeString */;
916 long var61
/* : Int */;
917 val
* var62
/* : String */;
918 val
* var63
/* : Array[Object] */;
919 long var64
/* : Int */;
920 val
* var65
/* : NativeArray[Object] */;
921 val
* var66
/* : String */;
922 static val
* varonce67
;
923 val
* var68
/* : String */;
924 char* var69
/* : NativeString */;
925 long var70
/* : Int */;
926 val
* var71
/* : String */;
927 static val
* varonce72
;
928 val
* var73
/* : String */;
929 char* var74
/* : NativeString */;
930 long var75
/* : Int */;
931 val
* var76
/* : String */;
932 val
* var77
/* : Array[Object] */;
933 long var78
/* : Int */;
934 val
* var79
/* : NativeArray[Object] */;
935 val
* var80
/* : String */;
936 val
* var81
/* : MClass */;
937 val
* var82
/* : String */;
938 static val
* varonce83
;
939 val
* var84
/* : String */;
940 char* var85
/* : NativeString */;
941 long var86
/* : Int */;
942 val
* var87
/* : String */;
943 short int var88
/* : Bool */;
944 val
* var89
/* : Array[MType] */;
945 val
* var90
/* : nullable Object */;
946 val
* var91
/* : String */;
947 static val
* varonce92
;
948 val
* var93
/* : String */;
949 char* var94
/* : NativeString */;
950 long var95
/* : Int */;
951 val
* var96
/* : String */;
952 val
* var97
/* : Array[Object] */;
953 long var98
/* : Int */;
954 val
* var99
/* : NativeArray[Object] */;
955 val
* var100
/* : String */;
956 val
* var101
/* : String */;
957 static val
* varonce102
;
958 val
* var103
/* : String */;
959 char* var104
/* : NativeString */;
960 long var105
/* : Int */;
961 val
* var106
/* : String */;
962 short int var107
/* : Bool */;
963 val
* var108
/* : String */;
964 static val
* varonce109
;
965 val
* var110
/* : String */;
966 char* var111
/* : NativeString */;
967 long var112
/* : Int */;
968 val
* var113
/* : String */;
969 val
* var114
/* : Array[Object] */;
970 long var115
/* : Int */;
971 val
* var116
/* : NativeArray[Object] */;
972 val
* var117
/* : String */;
973 val
* var118
/* : MModule */;
974 val
* var119
/* : Set[MClassDef] */;
975 val
* var120
/* : Iterator[nullable Object] */;
976 short int var121
/* : Bool */;
977 val
* var122
/* : nullable Object */;
978 val
* var_cd
/* var cd: MClassDef */;
979 val
* var123
/* : Array[MProperty] */;
980 val
* var124
/* : Iterator[nullable Object] */;
981 short int var125
/* : Bool */;
982 val
* var126
/* : nullable Object */;
983 val
* var_p
/* var p: MProperty */;
984 short int var127
/* : Bool */;
987 short int var128
/* : Bool */;
988 val
* var129
/* : MPropDef */;
989 val
* var130
/* : nullable MType */;
990 val
* var_t
/* var t: MType */;
991 val
* var131
/* : MModule */;
992 val
* var132
/* : MType */;
993 val
* var133
/* : String */;
994 static val
* varonce134
;
995 val
* var135
/* : String */;
996 char* var136
/* : NativeString */;
997 long var137
/* : Int */;
998 val
* var138
/* : String */;
999 val
* var139
/* : MPropDef */;
1000 val
* var140
/* : String */;
1001 static val
* varonce141
;
1002 val
* var142
/* : String */;
1003 char* var143
/* : NativeString */;
1004 long var144
/* : Int */;
1005 val
* var145
/* : String */;
1006 static val
* varonce146
;
1007 val
* var147
/* : String */;
1008 char* var148
/* : NativeString */;
1009 long var149
/* : Int */;
1010 val
* var150
/* : String */;
1011 static val
* varonce151
;
1012 val
* var152
/* : String */;
1013 char* var153
/* : NativeString */;
1014 long var154
/* : Int */;
1015 val
* var155
/* : String */;
1016 val
* var156
/* : Array[Object] */;
1017 long var157
/* : Int */;
1018 val
* var158
/* : NativeArray[Object] */;
1019 val
* var159
/* : String */;
1020 static val
* varonce161
;
1021 val
* var162
/* : String */;
1022 char* var163
/* : NativeString */;
1023 long var164
/* : Int */;
1024 val
* var165
/* : String */;
1026 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
1028 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
1029 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var1
) /* live_types on <var1:RapidTypeAnalysis>*/;
1030 var3
= ((short int (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var2
, var_mtype
) /* has on <var2:HashSet[MClassType]>*/;
1032 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1033 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 157);
1039 var5
= "/* runtime class ";
1041 var7
= string__NativeString__to_s_with_length(var5
, var6
);
1050 var12
= string__NativeString__to_s_with_length(var10
, var11
);
1054 var13
= NEW_array__Array(&type_array__Arraykernel__Object
);
1055 { /* var13 = array_instance Array[Object] */
1057 var15
= NEW_array__NativeArray(var14
, &type_array__NativeArraykernel__Object
);
1058 ((struct instance_array__NativeArray
*)var15
)->values
[0] = (val
*) var4
;
1059 ((struct instance_array__NativeArray
*)var15
)->values
[1] = (val
*) var_mtype
;
1060 ((struct instance_array__NativeArray
*)var15
)->values
[2] = (val
*) var9
;
1061 ((void (*)(val
*, val
*, long))(var13
->class->vft
[COLOR_array__Array__with_native
]))(var13
, var15
, var14
) /* with_native on <var13:Array[Object]>*/;
1062 CHECK_NEW_array__Array(var13
);
1064 var16
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_string__Object__to_s
]))(var13
) /* to_s on <var13:Array[Object]>*/;
1065 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var16
) /* add_decl on <var_v:CodeWriter>*/;
1066 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
1067 var18
= ((long (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__MapRead__length
]))(var17
) /* length on <var17:HashMap[MClassType, String]>*/;
1074 var23
= string__NativeString__to_s_with_length(var21
, var22
);
1078 var24
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1079 var25
= ((val
* (*)(val
*, val
*))(var20
->class->vft
[COLOR_string__String___43d
]))(var20
, var24
) /* + on <var20:String>*/;
1081 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
1082 ((void (*)(val
*, val
*, val
*))(var26
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var26
, var_mtype
, var_idname
) /* []= on <var26:HashMap[MClassType, String]>*/;
1088 var31
= string__NativeString__to_s_with_length(var29
, var30
);
1097 var36
= string__NativeString__to_s_with_length(var34
, var35
);
1106 var41
= string__NativeString__to_s_with_length(var39
, var40
);
1115 var46
= string__NativeString__to_s_with_length(var44
, var45
);
1119 var47
= NEW_array__Array(&type_array__Arraykernel__Object
);
1120 { /* var47 = array_instance Array[Object] */
1122 var49
= NEW_array__NativeArray(var48
, &type_array__NativeArraykernel__Object
);
1123 ((struct instance_array__NativeArray
*)var49
)->values
[0] = (val
*) var28
;
1124 ((struct instance_array__NativeArray
*)var49
)->values
[1] = (val
*) var_idname
;
1125 ((struct instance_array__NativeArray
*)var49
)->values
[2] = (val
*) var33
;
1126 var50
= BOX_kernel__Int(var_idnum
); /* autobox from Int to Object */
1127 ((struct instance_array__NativeArray
*)var49
)->values
[3] = (val
*) var50
;
1128 ((struct instance_array__NativeArray
*)var49
)->values
[4] = (val
*) var38
;
1129 ((struct instance_array__NativeArray
*)var49
)->values
[5] = (val
*) var_mtype
;
1130 ((struct instance_array__NativeArray
*)var49
)->values
[6] = (val
*) var43
;
1131 ((void (*)(val
*, val
*, long))(var47
->class->vft
[COLOR_array__Array__with_native
]))(var47
, var49
, var48
) /* with_native on <var47:Array[Object]>*/;
1132 CHECK_NEW_array__Array(var47
);
1134 var51
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_string__Object__to_s
]))(var47
) /* to_s on <var47:Array[Object]>*/;
1135 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var51
) /* add_decl on <var_v:CodeWriter>*/;
1141 var56
= string__NativeString__to_s_with_length(var54
, var55
);
1145 var57
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1151 var62
= string__NativeString__to_s_with_length(var60
, var61
);
1155 var63
= NEW_array__Array(&type_array__Arraykernel__Object
);
1156 { /* var63 = array_instance Array[Object] */
1158 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArraykernel__Object
);
1159 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var53
;
1160 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var57
;
1161 ((struct instance_array__NativeArray
*)var65
)->values
[2] = (val
*) var59
;
1162 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Object]>*/;
1163 CHECK_NEW_array__Array(var63
);
1165 var66
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_string__Object__to_s
]))(var63
) /* to_s on <var63:Array[Object]>*/;
1166 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var66
) /* add_decl on <var_v:CodeWriter>*/;
1170 var69
= "int classid; /* must be ";
1172 var71
= string__NativeString__to_s_with_length(var69
, var70
);
1181 var76
= string__NativeString__to_s_with_length(var74
, var75
);
1185 var77
= NEW_array__Array(&type_array__Arraykernel__Object
);
1186 { /* var77 = array_instance Array[Object] */
1188 var79
= NEW_array__NativeArray(var78
, &type_array__NativeArraykernel__Object
);
1189 ((struct instance_array__NativeArray
*)var79
)->values
[0] = (val
*) var68
;
1190 ((struct instance_array__NativeArray
*)var79
)->values
[1] = (val
*) var_idname
;
1191 ((struct instance_array__NativeArray
*)var79
)->values
[2] = (val
*) var73
;
1192 ((void (*)(val
*, val
*, long))(var77
->class->vft
[COLOR_array__Array__with_native
]))(var77
, var79
, var78
) /* with_native on <var77:Array[Object]>*/;
1193 CHECK_NEW_array__Array(var77
);
1195 var80
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_string__Object__to_s
]))(var77
) /* to_s on <var77:Array[Object]>*/;
1196 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var80
) /* add_decl on <var_v:CodeWriter>*/;
1197 var81
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
1198 var82
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_model__MClass__name
]))(var81
) /* name on <var81:MClass>*/;
1202 var85
= "NativeArray";
1204 var87
= string__NativeString__to_s_with_length(var85
, var86
);
1208 var88
= ((short int (*)(val
*, val
*))(var82
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var82
, var84
) /* == on <var82:String>*/;
1210 var89
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
1211 var90
= ((val
* (*)(val
*))(var89
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var89
) /* first on <var89:Array[MType]>*/;
1212 var91
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var90
) /* ctype on <var90:nullable Object(MType)>*/;
1216 var94
= " values[1];";
1218 var96
= string__NativeString__to_s_with_length(var94
, var95
);
1222 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
1223 { /* var97 = array_instance Array[Object] */
1225 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
1226 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var91
;
1227 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var93
;
1228 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
1229 CHECK_NEW_array__Array(var97
);
1231 var100
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
1232 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var100
) /* add_decl on <var_v:CodeWriter>*/;
1235 var101
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1237 var103
= varonce102
;
1241 var106
= string__NativeString__to_s_with_length(var104
, var105
);
1243 varonce102
= var103
;
1245 var107
= ((short int (*)(val
*, val
*))(var101
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var101
, var103
) /* != on <var101:String>*/;
1247 var108
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1249 var110
= varonce109
;
1253 var113
= string__NativeString__to_s_with_length(var111
, var112
);
1255 varonce109
= var110
;
1257 var114
= NEW_array__Array(&type_array__Arraykernel__Object
);
1258 { /* var114 = array_instance Array[Object] */
1260 var116
= NEW_array__NativeArray(var115
, &type_array__NativeArraykernel__Object
);
1261 ((struct instance_array__NativeArray
*)var116
)->values
[0] = (val
*) var108
;
1262 ((struct instance_array__NativeArray
*)var116
)->values
[1] = (val
*) var110
;
1263 ((void (*)(val
*, val
*, long))(var114
->class->vft
[COLOR_array__Array__with_native
]))(var114
, var116
, var115
) /* with_native on <var114:Array[Object]>*/;
1264 CHECK_NEW_array__Array(var114
);
1266 var117
= ((val
* (*)(val
*))(var114
->class->vft
[COLOR_string__Object__to_s
]))(var114
) /* to_s on <var114:Array[Object]>*/;
1267 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var117
) /* add_decl on <var_v:CodeWriter>*/;
1270 var118
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:GlobalCompiler>*/;
1271 var119
= ((val
* (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var_mtype
, var118
) /* collect_mclassdefs on <var_mtype:MClassType>*/;
1272 var120
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var119
) /* iterator on <var119:Set[MClassDef]>*/;
1274 var121
= ((short int (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var120
) /* is_ok on <var120:Iterator[nullable Object]>*/;
1276 var122
= ((val
* (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var120
) /* item on <var120:Iterator[nullable Object]>*/;
1278 var123
= ((val
* (*)(val
*))(var_cd
->class->vft
[COLOR_model__MClassDef__intro_mproperties
]))(var_cd
) /* intro_mproperties on <var_cd:MClassDef>*/;
1279 var124
= ((val
* (*)(val
*))(var123
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var123
) /* iterator on <var123:Array[MProperty]>*/;
1281 var125
= ((short int (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var124
) /* is_ok on <var124:Iterator[nullable Object]>*/;
1283 var126
= ((val
* (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var124
) /* item on <var124:Iterator[nullable Object]>*/;
1285 /* <var_p:MProperty> isa MAttribute */
1286 cltype
= type_model__MAttribute
.color
;
1287 idtype
= type_model__MAttribute
.id
;
1288 if(cltype
>= var_p
->type
->table_size
) {
1291 var127
= var_p
->type
->type_table
[cltype
] == idtype
;
1295 goto CONTINUE_label
;
1298 var129
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MProperty__intro
]))(var_p
) /* intro on <var_p:MProperty(MAttribute)>*/;
1299 var130
= ((val
* (*)(val
*))(var129
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var129
) /* static_mtype on <var129:MPropDef(MAttributeDef)>*/;
1300 if (var130
== NULL
) {
1301 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1302 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 184);
1306 var131
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:GlobalCompiler>*/;
1307 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>*/;
1309 var133
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t
) /* ctype on <var_t:MType>*/;
1311 var135
= varonce134
;
1315 var138
= string__NativeString__to_s_with_length(var136
, var137
);
1317 varonce134
= var135
;
1319 var139
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MProperty__intro
]))(var_p
) /* intro on <var_p:MProperty(MAttribute)>*/;
1320 var140
= ((val
* (*)(val
*))(var139
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var139
) /* c_name on <var139:MPropDef(MAttributeDef)>*/;
1322 var142
= varonce141
;
1326 var145
= string__NativeString__to_s_with_length(var143
, var144
);
1328 varonce141
= var142
;
1331 var147
= varonce146
;
1335 var150
= string__NativeString__to_s_with_length(var148
, var149
);
1337 varonce146
= var147
;
1340 var152
= varonce151
;
1344 var155
= string__NativeString__to_s_with_length(var153
, var154
);
1346 varonce151
= var152
;
1348 var156
= NEW_array__Array(&type_array__Arraykernel__Object
);
1349 { /* var156 = array_instance Array[Object] */
1351 var158
= NEW_array__NativeArray(var157
, &type_array__NativeArraykernel__Object
);
1352 ((struct instance_array__NativeArray
*)var158
)->values
[0] = (val
*) var133
;
1353 ((struct instance_array__NativeArray
*)var158
)->values
[1] = (val
*) var135
;
1354 ((struct instance_array__NativeArray
*)var158
)->values
[2] = (val
*) var140
;
1355 ((struct instance_array__NativeArray
*)var158
)->values
[3] = (val
*) var142
;
1356 ((struct instance_array__NativeArray
*)var158
)->values
[4] = (val
*) var_p
;
1357 ((struct instance_array__NativeArray
*)var158
)->values
[5] = (val
*) var147
;
1358 ((struct instance_array__NativeArray
*)var158
)->values
[6] = (val
*) var_t
;
1359 ((struct instance_array__NativeArray
*)var158
)->values
[7] = (val
*) var152
;
1360 ((void (*)(val
*, val
*, long))(var156
->class->vft
[COLOR_array__Array__with_native
]))(var156
, var158
, var157
) /* with_native on <var156:Array[Object]>*/;
1361 CHECK_NEW_array__Array(var156
);
1363 var159
= ((val
* (*)(val
*))(var156
->class->vft
[COLOR_string__Object__to_s
]))(var156
) /* to_s on <var156:Array[Object]>*/;
1364 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var159
) /* add_decl on <var_v:CodeWriter>*/;
1365 CONTINUE_label
: (void)0;
1366 ((void (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var124
) /* next on <var124:Iterator[nullable Object]>*/;
1368 BREAK_label
: (void)0;
1369 CONTINUE_label160
: (void)0;
1370 ((void (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var120
) /* next on <var120:Iterator[nullable Object]>*/;
1372 BREAK_label160
: (void)0;
1374 var162
= varonce161
;
1378 var165
= string__NativeString__to_s_with_length(var163
, var164
);
1380 varonce161
= var162
;
1382 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var162
) /* add_decl on <var_v:CodeWriter>*/;
1385 /* method global_compiler#GlobalCompiler#declare_runtimeclass for (self: Object, MClassType) */
1386 void VIRTUAL_global_compiler__GlobalCompiler__declare_runtimeclass(val
* self
, val
* p0
) {
1387 global_compiler__GlobalCompiler__declare_runtimeclass(self
, p0
);
1390 /* method global_compiler#GlobalCompiler#generate_init_instance for (self: GlobalCompiler, MClassType) */
1391 void global_compiler__GlobalCompiler__generate_init_instance(val
* self
, val
* p0
) {
1392 val
* var_mtype
/* var mtype: MClassType */;
1393 val
* var
/* : RapidTypeAnalysis */;
1394 val
* var1
/* : HashSet[MClassType] */;
1395 short int var2
/* : Bool */;
1396 val
* var3
/* : String */;
1397 static val
* varonce
;
1398 val
* var4
/* : String */;
1399 char* var5
/* : NativeString */;
1400 long var6
/* : Int */;
1401 val
* var7
/* : String */;
1402 short int var8
/* : Bool */;
1403 val
* var9
/* : AbstractCompilerVisitor */;
1404 val
* var_v
/* var v: GlobalCompilerVisitor */;
1405 val
* var10
/* : MClass */;
1406 val
* var11
/* : String */;
1407 static val
* varonce12
;
1408 val
* var13
/* : String */;
1409 char* var14
/* : NativeString */;
1410 long var15
/* : Int */;
1411 val
* var16
/* : String */;
1412 short int var17
/* : Bool */;
1413 short int var_is_native_array
/* var is_native_array: Bool */;
1414 static val
* varonce18
;
1415 val
* var19
/* : String */;
1416 char* var20
/* : NativeString */;
1417 long var21
/* : Int */;
1418 val
* var22
/* : String */;
1419 val
* var_sig
/* var sig: nullable Object */;
1420 static val
* varonce23
;
1421 val
* var24
/* : String */;
1422 char* var25
/* : NativeString */;
1423 long var26
/* : Int */;
1424 val
* var27
/* : String */;
1425 val
* var28
/* : CodeWriter */;
1426 val
* var29
/* : String */;
1427 static val
* varonce30
;
1428 val
* var31
/* : String */;
1429 char* var32
/* : NativeString */;
1430 long var33
/* : Int */;
1431 val
* var34
/* : String */;
1432 val
* var35
/* : String */;
1433 static val
* varonce36
;
1434 val
* var37
/* : String */;
1435 char* var38
/* : NativeString */;
1436 long var39
/* : Int */;
1437 val
* var40
/* : String */;
1438 static val
* varonce41
;
1439 val
* var42
/* : String */;
1440 char* var43
/* : NativeString */;
1441 long var44
/* : Int */;
1442 val
* var45
/* : String */;
1443 val
* var46
/* : Array[Object] */;
1444 long var47
/* : Int */;
1445 val
* var48
/* : NativeArray[Object] */;
1446 val
* var49
/* : String */;
1447 static val
* varonce50
;
1448 val
* var51
/* : String */;
1449 char* var52
/* : NativeString */;
1450 long var53
/* : Int */;
1451 val
* var54
/* : String */;
1452 static val
* varonce55
;
1453 val
* var56
/* : String */;
1454 char* var57
/* : NativeString */;
1455 long var58
/* : Int */;
1456 val
* var59
/* : String */;
1457 val
* var60
/* : Array[Object] */;
1458 long var61
/* : Int */;
1459 val
* var62
/* : NativeArray[Object] */;
1460 val
* var63
/* : String */;
1461 val
* var64
/* : String */;
1462 static val
* varonce65
;
1463 val
* var66
/* : String */;
1464 char* var67
/* : NativeString */;
1465 long var68
/* : Int */;
1466 val
* var69
/* : String */;
1467 val
* var70
/* : String */;
1468 static val
* varonce71
;
1469 val
* var72
/* : String */;
1470 char* var73
/* : NativeString */;
1471 long var74
/* : Int */;
1472 val
* var75
/* : String */;
1473 static val
* varonce76
;
1474 val
* var77
/* : String */;
1475 char* var78
/* : NativeString */;
1476 long var79
/* : Int */;
1477 val
* var80
/* : String */;
1478 val
* var81
/* : Array[Object] */;
1479 long var82
/* : Int */;
1480 val
* var83
/* : NativeArray[Object] */;
1481 val
* var84
/* : String */;
1482 val
* var85
/* : RuntimeVariable */;
1483 val
* var_res
/* var res: RuntimeVariable */;
1484 short int var86
/* : Bool */;
1485 val
* var87
/* : Array[MType] */;
1486 val
* var88
/* : nullable Object */;
1487 val
* var_mtype_elt
/* var mtype_elt: MType */;
1488 static val
* varonce89
;
1489 val
* var90
/* : String */;
1490 char* var91
/* : NativeString */;
1491 long var92
/* : Int */;
1492 val
* var93
/* : String */;
1493 val
* var94
/* : String */;
1494 static val
* varonce95
;
1495 val
* var96
/* : String */;
1496 char* var97
/* : NativeString */;
1497 long var98
/* : Int */;
1498 val
* var99
/* : String */;
1499 val
* var100
/* : String */;
1500 static val
* varonce101
;
1501 val
* var102
/* : String */;
1502 char* var103
/* : NativeString */;
1503 long var104
/* : Int */;
1504 val
* var105
/* : String */;
1505 val
* var106
/* : Array[Object] */;
1506 long var107
/* : Int */;
1507 val
* var108
/* : NativeArray[Object] */;
1508 val
* var109
/* : String */;
1509 static val
* varonce110
;
1510 val
* var111
/* : String */;
1511 char* var112
/* : NativeString */;
1512 long var113
/* : Int */;
1513 val
* var114
/* : String */;
1514 val
* var115
/* : String */;
1515 static val
* varonce116
;
1516 val
* var117
/* : String */;
1517 char* var118
/* : NativeString */;
1518 long var119
/* : Int */;
1519 val
* var120
/* : String */;
1520 val
* var121
/* : Array[Object] */;
1521 long var122
/* : Int */;
1522 val
* var123
/* : NativeArray[Object] */;
1523 val
* var124
/* : String */;
1524 static val
* varonce125
;
1525 val
* var126
/* : String */;
1526 char* var127
/* : NativeString */;
1527 long var128
/* : Int */;
1528 val
* var129
/* : String */;
1529 val
* var130
/* : String */;
1530 static val
* varonce131
;
1531 val
* var132
/* : String */;
1532 char* var133
/* : NativeString */;
1533 long var134
/* : Int */;
1534 val
* var135
/* : String */;
1535 val
* var136
/* : Array[Object] */;
1536 long var137
/* : Int */;
1537 val
* var138
/* : NativeArray[Object] */;
1538 val
* var139
/* : String */;
1539 static val
* varonce140
;
1540 val
* var141
/* : String */;
1541 char* var142
/* : NativeString */;
1542 long var143
/* : Int */;
1543 val
* var144
/* : String */;
1544 static val
* varonce145
;
1545 val
* var146
/* : String */;
1546 char* var147
/* : NativeString */;
1547 long var148
/* : Int */;
1548 val
* var149
/* : String */;
1549 val
* var150
/* : Array[Object] */;
1550 long var151
/* : Int */;
1551 val
* var152
/* : NativeArray[Object] */;
1552 val
* var153
/* : String */;
1553 static val
* varonce154
;
1554 val
* var155
/* : String */;
1555 char* var156
/* : NativeString */;
1556 long var157
/* : Int */;
1557 val
* var158
/* : String */;
1559 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
1560 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var
) /* live_types on <var:RapidTypeAnalysis>*/;
1561 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var1
, var_mtype
) /* has on <var1:HashSet[MClassType]>*/;
1563 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1564 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 195);
1567 var3
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1573 var7
= string__NativeString__to_s_with_length(var5
, var6
);
1577 var8
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var3
, var4
) /* == on <var3:String>*/;
1579 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1580 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 196);
1583 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:GlobalCompiler>*/;
1585 var10
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
1586 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_model__MClass__name
]))(var10
) /* name on <var10:MClass>*/;
1590 var14
= "NativeArray";
1592 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1596 var17
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var11
, var13
) /* == on <var11:String>*/;
1597 var_is_native_array
= var17
;
1598 if (var_is_native_array
){
1602 var20
= "int length";
1604 var22
= string__NativeString__to_s_with_length(var20
, var21
);
1615 var27
= string__NativeString__to_s_with_length(var25
, var26
);
1621 var28
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
1622 var29
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1628 var34
= string__NativeString__to_s_with_length(var32
, var33
);
1632 var35
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1638 var40
= string__NativeString__to_s_with_length(var38
, var39
);
1647 var45
= string__NativeString__to_s_with_length(var43
, var44
);
1651 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
1652 { /* var46 = array_instance Array[Object] */
1654 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
1655 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var29
;
1656 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var31
;
1657 ((struct instance_array__NativeArray
*)var48
)->values
[2] = (val
*) var35
;
1658 ((struct instance_array__NativeArray
*)var48
)->values
[3] = (val
*) var37
;
1659 ((struct instance_array__NativeArray
*)var48
)->values
[4] = (val
*) var_sig
;
1660 ((struct instance_array__NativeArray
*)var48
)->values
[5] = (val
*) var42
;
1661 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
1662 CHECK_NEW_array__Array(var46
);
1664 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
1665 ((void (*)(val
*, val
*))(var28
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var28
, var49
) /* add_decl on <var28:CodeWriter>*/;
1669 var52
= "/* allocate ";
1671 var54
= string__NativeString__to_s_with_length(var52
, var53
);
1680 var59
= string__NativeString__to_s_with_length(var57
, var58
);
1684 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
1685 { /* var60 = array_instance Array[Object] */
1687 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
1688 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var51
;
1689 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var_mtype
;
1690 ((struct instance_array__NativeArray
*)var62
)->values
[2] = (val
*) var56
;
1691 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
1692 CHECK_NEW_array__Array(var60
);
1694 var63
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
1695 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var63
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
1696 var64
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1702 var69
= string__NativeString__to_s_with_length(var67
, var68
);
1706 var70
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1712 var75
= string__NativeString__to_s_with_length(var73
, var74
);
1721 var80
= string__NativeString__to_s_with_length(var78
, var79
);
1725 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
1726 { /* var81 = array_instance Array[Object] */
1728 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
1729 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var64
;
1730 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var66
;
1731 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var70
;
1732 ((struct instance_array__NativeArray
*)var83
)->values
[3] = (val
*) var72
;
1733 ((struct instance_array__NativeArray
*)var83
)->values
[4] = (val
*) var_sig
;
1734 ((struct instance_array__NativeArray
*)var83
)->values
[5] = (val
*) var77
;
1735 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
1736 CHECK_NEW_array__Array(var81
);
1738 var84
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
1739 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var84
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
1740 var85
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(var_v
, var_mtype
) /* new_var on <var_v:GlobalCompilerVisitor>*/;
1743 ((void (*)(val
*, short int))(var_res
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res
, var86
) /* is_exact= on <var_res:RuntimeVariable>*/;
1744 if (var_is_native_array
){
1745 var87
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
1746 var88
= ((val
* (*)(val
*))(var87
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var87
) /* first on <var87:Array[MType]>*/;
1747 var_mtype_elt
= var88
;
1751 var91
= " = nit_alloc(sizeof(struct ";
1753 var93
= string__NativeString__to_s_with_length(var91
, var92
);
1757 var94
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1761 var97
= ") + length*sizeof(";
1763 var99
= string__NativeString__to_s_with_length(var97
, var98
);
1767 var100
= ((val
* (*)(val
*))(var_mtype_elt
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype_elt
) /* ctype on <var_mtype_elt:MType>*/;
1769 var102
= varonce101
;
1773 var105
= string__NativeString__to_s_with_length(var103
, var104
);
1775 varonce101
= var102
;
1777 var106
= NEW_array__Array(&type_array__Arraykernel__Object
);
1778 { /* var106 = array_instance Array[Object] */
1780 var108
= NEW_array__NativeArray(var107
, &type_array__NativeArraykernel__Object
);
1781 ((struct instance_array__NativeArray
*)var108
)->values
[0] = (val
*) var_res
;
1782 ((struct instance_array__NativeArray
*)var108
)->values
[1] = (val
*) var90
;
1783 ((struct instance_array__NativeArray
*)var108
)->values
[2] = (val
*) var94
;
1784 ((struct instance_array__NativeArray
*)var108
)->values
[3] = (val
*) var96
;
1785 ((struct instance_array__NativeArray
*)var108
)->values
[4] = (val
*) var100
;
1786 ((struct instance_array__NativeArray
*)var108
)->values
[5] = (val
*) var102
;
1787 ((void (*)(val
*, val
*, long))(var106
->class->vft
[COLOR_array__Array__with_native
]))(var106
, var108
, var107
) /* with_native on <var106:Array[Object]>*/;
1788 CHECK_NEW_array__Array(var106
);
1790 var109
= ((val
* (*)(val
*))(var106
->class->vft
[COLOR_string__Object__to_s
]))(var106
) /* to_s on <var106:Array[Object]>*/;
1791 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var109
) /* add on <var_v:GlobalCompilerVisitor>*/;
1794 var111
= varonce110
;
1796 var112
= " = nit_alloc(sizeof(struct ";
1798 var114
= string__NativeString__to_s_with_length(var112
, var113
);
1800 varonce110
= var111
;
1802 var115
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1804 var117
= varonce116
;
1808 var120
= string__NativeString__to_s_with_length(var118
, var119
);
1810 varonce116
= var117
;
1812 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
1813 { /* var121 = array_instance Array[Object] */
1815 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
1816 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var_res
;
1817 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var111
;
1818 ((struct instance_array__NativeArray
*)var123
)->values
[2] = (val
*) var115
;
1819 ((struct instance_array__NativeArray
*)var123
)->values
[3] = (val
*) var117
;
1820 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
1821 CHECK_NEW_array__Array(var121
);
1823 var124
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
1824 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var124
) /* add on <var_v:GlobalCompilerVisitor>*/;
1827 var126
= varonce125
;
1829 var127
= "->classid = ";
1831 var129
= string__NativeString__to_s_with_length(var127
, var128
);
1833 varonce125
= var126
;
1835 var130
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(self
, var_mtype
) /* classid on <self:GlobalCompiler>*/;
1837 var132
= varonce131
;
1841 var135
= string__NativeString__to_s_with_length(var133
, var134
);
1843 varonce131
= var132
;
1845 var136
= NEW_array__Array(&type_array__Arraykernel__Object
);
1846 { /* var136 = array_instance Array[Object] */
1848 var138
= NEW_array__NativeArray(var137
, &type_array__NativeArraykernel__Object
);
1849 ((struct instance_array__NativeArray
*)var138
)->values
[0] = (val
*) var_res
;
1850 ((struct instance_array__NativeArray
*)var138
)->values
[1] = (val
*) var126
;
1851 ((struct instance_array__NativeArray
*)var138
)->values
[2] = (val
*) var130
;
1852 ((struct instance_array__NativeArray
*)var138
)->values
[3] = (val
*) var132
;
1853 ((void (*)(val
*, val
*, long))(var136
->class->vft
[COLOR_array__Array__with_native
]))(var136
, var138
, var137
) /* with_native on <var136:Array[Object]>*/;
1854 CHECK_NEW_array__Array(var136
);
1856 var139
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_string__Object__to_s
]))(var136
) /* to_s on <var136:Array[Object]>*/;
1857 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var139
) /* add on <var_v:GlobalCompilerVisitor>*/;
1858 ((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>*/;
1860 var141
= varonce140
;
1864 var144
= string__NativeString__to_s_with_length(var142
, var143
);
1866 varonce140
= var141
;
1869 var146
= varonce145
;
1873 var149
= string__NativeString__to_s_with_length(var147
, var148
);
1875 varonce145
= var146
;
1877 var150
= NEW_array__Array(&type_array__Arraykernel__Object
);
1878 { /* var150 = array_instance Array[Object] */
1880 var152
= NEW_array__NativeArray(var151
, &type_array__NativeArraykernel__Object
);
1881 ((struct instance_array__NativeArray
*)var152
)->values
[0] = (val
*) var141
;
1882 ((struct instance_array__NativeArray
*)var152
)->values
[1] = (val
*) var_res
;
1883 ((struct instance_array__NativeArray
*)var152
)->values
[2] = (val
*) var146
;
1884 ((void (*)(val
*, val
*, long))(var150
->class->vft
[COLOR_array__Array__with_native
]))(var150
, var152
, var151
) /* with_native on <var150:Array[Object]>*/;
1885 CHECK_NEW_array__Array(var150
);
1887 var153
= ((val
* (*)(val
*))(var150
->class->vft
[COLOR_string__Object__to_s
]))(var150
) /* to_s on <var150:Array[Object]>*/;
1888 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var153
) /* add on <var_v:GlobalCompilerVisitor>*/;
1890 var155
= varonce154
;
1894 var158
= string__NativeString__to_s_with_length(var156
, var157
);
1896 varonce154
= var155
;
1898 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var155
) /* add on <var_v:GlobalCompilerVisitor>*/;
1901 /* method global_compiler#GlobalCompiler#generate_init_instance for (self: Object, MClassType) */
1902 void VIRTUAL_global_compiler__GlobalCompiler__generate_init_instance(val
* self
, val
* p0
) {
1903 global_compiler__GlobalCompiler__generate_init_instance(self
, p0
);
1906 /* method global_compiler#GlobalCompiler#generate_check_init_instance for (self: GlobalCompiler, MClassType) */
1907 void global_compiler__GlobalCompiler__generate_check_init_instance(val
* self
, val
* p0
) {
1908 val
* var_mtype
/* var mtype: MClassType */;
1909 val
* var
/* : ModelBuilder */;
1910 val
* var1
/* : ToolContext */;
1911 val
* var2
/* : OptionBool */;
1912 val
* var3
/* : nullable Object */;
1913 short int var4
/* : Bool */;
1914 val
* var5
/* : AbstractCompilerVisitor */;
1915 val
* var_v
/* var v: GlobalCompilerVisitor */;
1916 val
* var6
/* : RuntimeVariable */;
1917 static val
* varonce
;
1918 val
* var7
/* : String */;
1919 char* var8
/* : NativeString */;
1920 long var9
/* : Int */;
1921 val
* var10
/* : String */;
1922 val
* var_res
/* var res: RuntimeVariable */;
1923 val
* var11
/* : CodeWriter */;
1924 static val
* varonce12
;
1925 val
* var13
/* : String */;
1926 char* var14
/* : NativeString */;
1927 long var15
/* : Int */;
1928 val
* var16
/* : String */;
1929 val
* var17
/* : String */;
1930 static val
* varonce18
;
1931 val
* var19
/* : String */;
1932 char* var20
/* : NativeString */;
1933 long var21
/* : Int */;
1934 val
* var22
/* : String */;
1935 val
* var23
/* : String */;
1936 static val
* varonce24
;
1937 val
* var25
/* : String */;
1938 char* var26
/* : NativeString */;
1939 long var27
/* : Int */;
1940 val
* var28
/* : String */;
1941 val
* var29
/* : Array[Object] */;
1942 long var30
/* : Int */;
1943 val
* var31
/* : NativeArray[Object] */;
1944 val
* var32
/* : String */;
1945 static val
* varonce33
;
1946 val
* var34
/* : String */;
1947 char* var35
/* : NativeString */;
1948 long var36
/* : Int */;
1949 val
* var37
/* : String */;
1950 static val
* varonce38
;
1951 val
* var39
/* : String */;
1952 char* var40
/* : NativeString */;
1953 long var41
/* : Int */;
1954 val
* var42
/* : String */;
1955 val
* var43
/* : Array[Object] */;
1956 long var44
/* : Int */;
1957 val
* var45
/* : NativeArray[Object] */;
1958 val
* var46
/* : String */;
1959 static val
* varonce47
;
1960 val
* var48
/* : String */;
1961 char* var49
/* : NativeString */;
1962 long var50
/* : Int */;
1963 val
* var51
/* : String */;
1964 val
* var52
/* : String */;
1965 static val
* varonce53
;
1966 val
* var54
/* : String */;
1967 char* var55
/* : NativeString */;
1968 long var56
/* : Int */;
1969 val
* var57
/* : String */;
1970 val
* var58
/* : String */;
1971 static val
* varonce59
;
1972 val
* var60
/* : String */;
1973 char* var61
/* : NativeString */;
1974 long var62
/* : Int */;
1975 val
* var63
/* : String */;
1976 static val
* varonce64
;
1977 val
* var65
/* : String */;
1978 char* var66
/* : NativeString */;
1979 long var67
/* : Int */;
1980 val
* var68
/* : String */;
1981 val
* var69
/* : Array[Object] */;
1982 long var70
/* : Int */;
1983 val
* var71
/* : NativeArray[Object] */;
1984 val
* var72
/* : String */;
1985 static val
* varonce73
;
1986 val
* var74
/* : String */;
1987 char* var75
/* : NativeString */;
1988 long var76
/* : Int */;
1989 val
* var77
/* : String */;
1991 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:GlobalCompiler>*/;
1992 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var
) /* toolcontext on <var:ModelBuilder>*/;
1993 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_no_check_initialization
]))(var1
) /* opt_no_check_initialization on <var1:ToolContext>*/;
1994 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_opts__Option__value
]))(var2
) /* value on <var2:OptionBool>*/;
1995 var4
= ((struct instance_kernel__Bool
*)var3
)->value
; /* autounbox from nullable Object to Bool */;
2000 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:GlobalCompiler>*/;
2002 var6
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
2008 var10
= string__NativeString__to_s_with_length(var8
, var9
);
2012 ((void (*)(val
*, val
*, val
*, val
*))(var6
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__init
]))(var6
, var7
, var_mtype
, var_mtype
) /* init on <var6:RuntimeVariable>*/;
2013 CHECK_NEW_abstract_compiler__RuntimeVariable(var6
);
2015 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
2019 var14
= "void CHECK_NEW_";
2021 var16
= string__NativeString__to_s_with_length(var14
, var15
);
2025 var17
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2031 var22
= string__NativeString__to_s_with_length(var20
, var21
);
2035 var23
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2041 var28
= string__NativeString__to_s_with_length(var26
, var27
);
2045 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
2046 { /* var29 = array_instance Array[Object] */
2048 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
2049 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var13
;
2050 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var17
;
2051 ((struct instance_array__NativeArray
*)var31
)->values
[2] = (val
*) var19
;
2052 ((struct instance_array__NativeArray
*)var31
)->values
[3] = (val
*) var23
;
2053 ((struct instance_array__NativeArray
*)var31
)->values
[4] = (val
*) var25
;
2054 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
2055 CHECK_NEW_array__Array(var29
);
2057 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
2058 ((void (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var11
, var32
) /* add_decl on <var11:CodeWriter>*/;
2062 var35
= "/* allocate ";
2064 var37
= string__NativeString__to_s_with_length(var35
, var36
);
2073 var42
= string__NativeString__to_s_with_length(var40
, var41
);
2077 var43
= NEW_array__Array(&type_array__Arraykernel__Object
);
2078 { /* var43 = array_instance Array[Object] */
2080 var45
= NEW_array__NativeArray(var44
, &type_array__NativeArraykernel__Object
);
2081 ((struct instance_array__NativeArray
*)var45
)->values
[0] = (val
*) var34
;
2082 ((struct instance_array__NativeArray
*)var45
)->values
[1] = (val
*) var_mtype
;
2083 ((struct instance_array__NativeArray
*)var45
)->values
[2] = (val
*) var39
;
2084 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[Object]>*/;
2085 CHECK_NEW_array__Array(var43
);
2087 var46
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_string__Object__to_s
]))(var43
) /* to_s on <var43:Array[Object]>*/;
2088 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var46
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
2092 var49
= "void CHECK_NEW_";
2094 var51
= string__NativeString__to_s_with_length(var49
, var50
);
2098 var52
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2104 var57
= string__NativeString__to_s_with_length(var55
, var56
);
2108 var58
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2114 var63
= string__NativeString__to_s_with_length(var61
, var62
);
2123 var68
= string__NativeString__to_s_with_length(var66
, var67
);
2127 var69
= NEW_array__Array(&type_array__Arraykernel__Object
);
2128 { /* var69 = array_instance Array[Object] */
2130 var71
= NEW_array__NativeArray(var70
, &type_array__NativeArraykernel__Object
);
2131 ((struct instance_array__NativeArray
*)var71
)->values
[0] = (val
*) var48
;
2132 ((struct instance_array__NativeArray
*)var71
)->values
[1] = (val
*) var52
;
2133 ((struct instance_array__NativeArray
*)var71
)->values
[2] = (val
*) var54
;
2134 ((struct instance_array__NativeArray
*)var71
)->values
[3] = (val
*) var58
;
2135 ((struct instance_array__NativeArray
*)var71
)->values
[4] = (val
*) var60
;
2136 ((struct instance_array__NativeArray
*)var71
)->values
[5] = (val
*) var_res
;
2137 ((struct instance_array__NativeArray
*)var71
)->values
[6] = (val
*) var65
;
2138 ((void (*)(val
*, val
*, long))(var69
->class->vft
[COLOR_array__Array__with_native
]))(var69
, var71
, var70
) /* with_native on <var69:Array[Object]>*/;
2139 CHECK_NEW_array__Array(var69
);
2141 var72
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_string__Object__to_s
]))(var69
) /* to_s on <var69:Array[Object]>*/;
2142 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var72
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
2143 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__generate_check_attr
]))(self
, var_v
, var_res
, var_mtype
) /* generate_check_attr on <self:GlobalCompiler>*/;
2149 var77
= string__NativeString__to_s_with_length(var75
, var76
);
2153 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var74
) /* add on <var_v:GlobalCompilerVisitor>*/;
2156 /* method global_compiler#GlobalCompiler#generate_check_init_instance for (self: Object, MClassType) */
2157 void VIRTUAL_global_compiler__GlobalCompiler__generate_check_init_instance(val
* self
, val
* p0
) {
2158 global_compiler__GlobalCompiler__generate_check_init_instance(self
, p0
);
2161 /* method global_compiler#GlobalCompiler#generate_box_instance for (self: GlobalCompiler, MClassType) */
2162 void global_compiler__GlobalCompiler__generate_box_instance(val
* self
, val
* p0
) {
2163 val
* var_mtype
/* var mtype: MClassType */;
2164 val
* var
/* : RapidTypeAnalysis */;
2165 val
* var1
/* : HashSet[MClassType] */;
2166 short int var2
/* : Bool */;
2167 val
* var3
/* : String */;
2168 static val
* varonce
;
2169 val
* var4
/* : String */;
2170 char* var5
/* : NativeString */;
2171 long var6
/* : Int */;
2172 val
* var7
/* : String */;
2173 short int var8
/* : Bool */;
2174 val
* var9
/* : AbstractCompilerVisitor */;
2175 val
* var_v
/* var v: GlobalCompilerVisitor */;
2176 val
* var10
/* : CodeWriter */;
2177 static val
* varonce11
;
2178 val
* var12
/* : String */;
2179 char* var13
/* : NativeString */;
2180 long var14
/* : Int */;
2181 val
* var15
/* : String */;
2182 val
* var16
/* : String */;
2183 static val
* varonce17
;
2184 val
* var18
/* : String */;
2185 char* var19
/* : NativeString */;
2186 long var20
/* : Int */;
2187 val
* var21
/* : String */;
2188 val
* var22
/* : String */;
2189 static val
* varonce23
;
2190 val
* var24
/* : String */;
2191 char* var25
/* : NativeString */;
2192 long var26
/* : Int */;
2193 val
* var27
/* : String */;
2194 val
* var28
/* : Array[Object] */;
2195 long var29
/* : Int */;
2196 val
* var30
/* : NativeArray[Object] */;
2197 val
* var31
/* : String */;
2198 static val
* varonce32
;
2199 val
* var33
/* : String */;
2200 char* var34
/* : NativeString */;
2201 long var35
/* : Int */;
2202 val
* var36
/* : String */;
2203 static val
* varonce37
;
2204 val
* var38
/* : String */;
2205 char* var39
/* : NativeString */;
2206 long var40
/* : Int */;
2207 val
* var41
/* : String */;
2208 val
* var42
/* : Array[Object] */;
2209 long var43
/* : Int */;
2210 val
* var44
/* : NativeArray[Object] */;
2211 val
* var45
/* : String */;
2212 static val
* varonce46
;
2213 val
* var47
/* : String */;
2214 char* var48
/* : NativeString */;
2215 long var49
/* : Int */;
2216 val
* var50
/* : String */;
2217 val
* var51
/* : String */;
2218 static val
* varonce52
;
2219 val
* var53
/* : String */;
2220 char* var54
/* : NativeString */;
2221 long var55
/* : Int */;
2222 val
* var56
/* : String */;
2223 val
* var57
/* : String */;
2224 static val
* varonce58
;
2225 val
* var59
/* : String */;
2226 char* var60
/* : NativeString */;
2227 long var61
/* : Int */;
2228 val
* var62
/* : String */;
2229 val
* var63
/* : Array[Object] */;
2230 long var64
/* : Int */;
2231 val
* var65
/* : NativeArray[Object] */;
2232 val
* var66
/* : String */;
2233 static val
* varonce67
;
2234 val
* var68
/* : String */;
2235 char* var69
/* : NativeString */;
2236 long var70
/* : Int */;
2237 val
* var71
/* : String */;
2238 val
* var72
/* : String */;
2239 static val
* varonce73
;
2240 val
* var74
/* : String */;
2241 char* var75
/* : NativeString */;
2242 long var76
/* : Int */;
2243 val
* var77
/* : String */;
2244 val
* var78
/* : String */;
2245 static val
* varonce79
;
2246 val
* var80
/* : String */;
2247 char* var81
/* : NativeString */;
2248 long var82
/* : Int */;
2249 val
* var83
/* : String */;
2250 val
* var84
/* : Array[Object] */;
2251 long var85
/* : Int */;
2252 val
* var86
/* : NativeArray[Object] */;
2253 val
* var87
/* : String */;
2254 static val
* varonce88
;
2255 val
* var89
/* : String */;
2256 char* var90
/* : NativeString */;
2257 long var91
/* : Int */;
2258 val
* var92
/* : String */;
2259 val
* var93
/* : String */;
2260 static val
* varonce94
;
2261 val
* var95
/* : String */;
2262 char* var96
/* : NativeString */;
2263 long var97
/* : Int */;
2264 val
* var98
/* : String */;
2265 val
* var99
/* : Array[Object] */;
2266 long var100
/* : Int */;
2267 val
* var101
/* : NativeArray[Object] */;
2268 val
* var102
/* : String */;
2269 static val
* varonce103
;
2270 val
* var104
/* : String */;
2271 char* var105
/* : NativeString */;
2272 long var106
/* : Int */;
2273 val
* var107
/* : String */;
2274 static val
* varonce108
;
2275 val
* var109
/* : String */;
2276 char* var110
/* : NativeString */;
2277 long var111
/* : Int */;
2278 val
* var112
/* : String */;
2279 static val
* varonce113
;
2280 val
* var114
/* : String */;
2281 char* var115
/* : NativeString */;
2282 long var116
/* : Int */;
2283 val
* var117
/* : String */;
2285 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
2286 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var
) /* live_types on <var:RapidTypeAnalysis>*/;
2287 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var1
, var_mtype
) /* has on <var1:HashSet[MClassType]>*/;
2289 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2290 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 241);
2293 var3
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2299 var7
= string__NativeString__to_s_with_length(var5
, var6
);
2303 var8
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var3
, var4
) /* != on <var3:String>*/;
2305 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2306 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 242);
2309 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:GlobalCompiler>*/;
2311 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
2315 var13
= "val* BOX_";
2317 var15
= string__NativeString__to_s_with_length(var13
, var14
);
2321 var16
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2327 var21
= string__NativeString__to_s_with_length(var19
, var20
);
2331 var22
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2337 var27
= string__NativeString__to_s_with_length(var25
, var26
);
2341 var28
= NEW_array__Array(&type_array__Arraykernel__Object
);
2342 { /* var28 = array_instance Array[Object] */
2344 var30
= NEW_array__NativeArray(var29
, &type_array__NativeArraykernel__Object
);
2345 ((struct instance_array__NativeArray
*)var30
)->values
[0] = (val
*) var12
;
2346 ((struct instance_array__NativeArray
*)var30
)->values
[1] = (val
*) var16
;
2347 ((struct instance_array__NativeArray
*)var30
)->values
[2] = (val
*) var18
;
2348 ((struct instance_array__NativeArray
*)var30
)->values
[3] = (val
*) var22
;
2349 ((struct instance_array__NativeArray
*)var30
)->values
[4] = (val
*) var24
;
2350 ((void (*)(val
*, val
*, long))(var28
->class->vft
[COLOR_array__Array__with_native
]))(var28
, var30
, var29
) /* with_native on <var28:Array[Object]>*/;
2351 CHECK_NEW_array__Array(var28
);
2353 var31
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_string__Object__to_s
]))(var28
) /* to_s on <var28:Array[Object]>*/;
2354 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var10
, var31
) /* add_decl on <var10:CodeWriter>*/;
2358 var34
= "/* allocate ";
2360 var36
= string__NativeString__to_s_with_length(var34
, var35
);
2369 var41
= string__NativeString__to_s_with_length(var39
, var40
);
2373 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
2374 { /* var42 = array_instance Array[Object] */
2376 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
2377 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var33
;
2378 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_mtype
;
2379 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var38
;
2380 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
2381 CHECK_NEW_array__Array(var42
);
2383 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
2384 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var45
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
2388 var48
= "val* BOX_";
2390 var50
= string__NativeString__to_s_with_length(var48
, var49
);
2394 var51
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2400 var56
= string__NativeString__to_s_with_length(var54
, var55
);
2404 var57
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2408 var60
= " value) {";
2410 var62
= string__NativeString__to_s_with_length(var60
, var61
);
2414 var63
= NEW_array__Array(&type_array__Arraykernel__Object
);
2415 { /* var63 = array_instance Array[Object] */
2417 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArraykernel__Object
);
2418 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var47
;
2419 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var51
;
2420 ((struct instance_array__NativeArray
*)var65
)->values
[2] = (val
*) var53
;
2421 ((struct instance_array__NativeArray
*)var65
)->values
[3] = (val
*) var57
;
2422 ((struct instance_array__NativeArray
*)var65
)->values
[4] = (val
*) var59
;
2423 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Object]>*/;
2424 CHECK_NEW_array__Array(var63
);
2426 var66
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_string__Object__to_s
]))(var63
) /* to_s on <var63:Array[Object]>*/;
2427 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var66
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
2433 var71
= string__NativeString__to_s_with_length(var69
, var70
);
2437 var72
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2441 var75
= "*res = nit_alloc(sizeof(struct ";
2443 var77
= string__NativeString__to_s_with_length(var75
, var76
);
2447 var78
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2453 var83
= string__NativeString__to_s_with_length(var81
, var82
);
2457 var84
= NEW_array__Array(&type_array__Arraykernel__Object
);
2458 { /* var84 = array_instance Array[Object] */
2460 var86
= NEW_array__NativeArray(var85
, &type_array__NativeArraykernel__Object
);
2461 ((struct instance_array__NativeArray
*)var86
)->values
[0] = (val
*) var68
;
2462 ((struct instance_array__NativeArray
*)var86
)->values
[1] = (val
*) var72
;
2463 ((struct instance_array__NativeArray
*)var86
)->values
[2] = (val
*) var74
;
2464 ((struct instance_array__NativeArray
*)var86
)->values
[3] = (val
*) var78
;
2465 ((struct instance_array__NativeArray
*)var86
)->values
[4] = (val
*) var80
;
2466 ((void (*)(val
*, val
*, long))(var84
->class->vft
[COLOR_array__Array__with_native
]))(var84
, var86
, var85
) /* with_native on <var84:Array[Object]>*/;
2467 CHECK_NEW_array__Array(var84
);
2469 var87
= ((val
* (*)(val
*))(var84
->class->vft
[COLOR_string__Object__to_s
]))(var84
) /* to_s on <var84:Array[Object]>*/;
2470 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var87
) /* add on <var_v:GlobalCompilerVisitor>*/;
2474 var90
= "res->classid = ";
2476 var92
= string__NativeString__to_s_with_length(var90
, var91
);
2480 var93
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(self
, var_mtype
) /* classid on <self:GlobalCompiler>*/;
2486 var98
= string__NativeString__to_s_with_length(var96
, var97
);
2490 var99
= NEW_array__Array(&type_array__Arraykernel__Object
);
2491 { /* var99 = array_instance Array[Object] */
2493 var101
= NEW_array__NativeArray(var100
, &type_array__NativeArraykernel__Object
);
2494 ((struct instance_array__NativeArray
*)var101
)->values
[0] = (val
*) var89
;
2495 ((struct instance_array__NativeArray
*)var101
)->values
[1] = (val
*) var93
;
2496 ((struct instance_array__NativeArray
*)var101
)->values
[2] = (val
*) var95
;
2497 ((void (*)(val
*, val
*, long))(var99
->class->vft
[COLOR_array__Array__with_native
]))(var99
, var101
, var100
) /* with_native on <var99:Array[Object]>*/;
2498 CHECK_NEW_array__Array(var99
);
2500 var102
= ((val
* (*)(val
*))(var99
->class->vft
[COLOR_string__Object__to_s
]))(var99
) /* to_s on <var99:Array[Object]>*/;
2501 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var102
) /* add on <var_v:GlobalCompilerVisitor>*/;
2503 var104
= varonce103
;
2505 var105
= "res->value = value;";
2507 var107
= string__NativeString__to_s_with_length(var105
, var106
);
2509 varonce103
= var104
;
2511 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var104
) /* add on <var_v:GlobalCompilerVisitor>*/;
2513 var109
= varonce108
;
2515 var110
= "return (val*)res;";
2517 var112
= string__NativeString__to_s_with_length(var110
, var111
);
2519 varonce108
= var109
;
2521 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var109
) /* add on <var_v:GlobalCompilerVisitor>*/;
2523 var114
= varonce113
;
2527 var117
= string__NativeString__to_s_with_length(var115
, var116
);
2529 varonce113
= var114
;
2531 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var114
) /* add on <var_v:GlobalCompilerVisitor>*/;
2534 /* method global_compiler#GlobalCompiler#generate_box_instance for (self: Object, MClassType) */
2535 void VIRTUAL_global_compiler__GlobalCompiler__generate_box_instance(val
* self
, val
* p0
) {
2536 global_compiler__GlobalCompiler__generate_box_instance(self
, p0
);
2539 /* method global_compiler#GlobalCompiler#new_visitor for (self: GlobalCompiler): GlobalCompilerVisitor */
2540 val
* global_compiler__GlobalCompiler__new_visitor(val
* self
) {
2541 val
* var
/* : GlobalCompilerVisitor */;
2542 val
* var1
/* : GlobalCompilerVisitor */;
2543 short int var2
/* : Bool */;
2546 const struct type
* type_struct
;
2547 const char* var_class_name
;
2548 var1
= NEW_global_compiler__GlobalCompilerVisitor(&type_global_compiler__GlobalCompilerVisitor
);
2549 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init
]))(var1
, self
) /* init on <var1:GlobalCompilerVisitor>*/;
2550 CHECK_NEW_global_compiler__GlobalCompilerVisitor(var1
);
2551 /* <var1:GlobalCompilerVisitor> isa VISITOR */
2552 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
2553 cltype
= type_struct
->color
;
2554 idtype
= type_struct
->id
;
2555 if(cltype
>= var1
->type
->table_size
) {
2558 var2
= var1
->type
->type_table
[cltype
] == idtype
;
2561 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
2562 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
2563 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 256);
2571 /* method global_compiler#GlobalCompiler#new_visitor for (self: Object): AbstractCompilerVisitor */
2572 val
* VIRTUAL_global_compiler__GlobalCompiler__new_visitor(val
* self
) {
2573 val
* var
/* : AbstractCompilerVisitor */;
2574 val
* var1
/* : GlobalCompilerVisitor */;
2575 var1
= global_compiler__GlobalCompiler__new_visitor(self
);
2580 /* method global_compiler#GlobalCompiler#collect_types_cache for (self: GlobalCompiler): HashMap[MType, Array[MClassType]] */
2581 val
* global_compiler__GlobalCompiler__collect_types_cache(val
* self
) {
2582 val
* var
/* : HashMap[MType, Array[MClassType]] */;
2583 val
* var1
/* : HashMap[MType, Array[MClassType]] */;
2584 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dcollect_types_cache
].val
; /* @collect_types_cache on <self:GlobalCompiler> */
2586 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @collect_types_cache");
2587 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 258);
2594 /* method global_compiler#GlobalCompiler#collect_types_cache for (self: Object): HashMap[MType, Array[MClassType]] */
2595 val
* VIRTUAL_global_compiler__GlobalCompiler__collect_types_cache(val
* self
) {
2596 val
* var
/* : HashMap[MType, Array[MClassType]] */;
2597 val
* var1
/* : HashMap[MType, Array[MClassType]] */;
2598 var1
= global_compiler__GlobalCompiler__collect_types_cache(self
);
2603 /* method global_compiler#GlobalCompiler#collect_types_cache= for (self: GlobalCompiler, HashMap[MType, Array[MClassType]]) */
2604 void global_compiler__GlobalCompiler__collect_types_cache_61d(val
* self
, val
* p0
) {
2605 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dcollect_types_cache
].val
= p0
; /* @collect_types_cache on <self:GlobalCompiler> */
2608 /* method global_compiler#GlobalCompiler#collect_types_cache= for (self: Object, HashMap[MType, Array[MClassType]]) */
2609 void VIRTUAL_global_compiler__GlobalCompiler__collect_types_cache_61d(val
* self
, val
* p0
) {
2610 global_compiler__GlobalCompiler__collect_types_cache_61d(self
, p0
);
2613 /* method global_compiler#GlobalCompilerVisitor#autobox for (self: GlobalCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
2614 val
* global_compiler__GlobalCompilerVisitor__autobox(val
* self
, val
* p0
, val
* p1
) {
2615 val
* var
/* : RuntimeVariable */;
2616 val
* var_value
/* var value: RuntimeVariable */;
2617 val
* var_mtype
/* var mtype: MType */;
2618 val
* var1
/* : MType */;
2619 short int var2
/* : Bool */;
2620 short int var3
/* : Bool */;
2621 val
* var4
/* : MType */;
2622 val
* var5
/* : String */;
2623 static val
* varonce
;
2624 val
* var6
/* : String */;
2625 char* var7
/* : NativeString */;
2626 long var8
/* : Int */;
2627 val
* var9
/* : String */;
2628 short int var10
/* : Bool */;
2629 short int var_
/* var : Bool */;
2630 val
* var11
/* : String */;
2631 static val
* varonce12
;
2632 val
* var13
/* : String */;
2633 char* var14
/* : NativeString */;
2634 long var15
/* : Int */;
2635 val
* var16
/* : String */;
2636 short int var17
/* : Bool */;
2637 val
* var18
/* : MType */;
2638 val
* var19
/* : String */;
2639 static val
* varonce20
;
2640 val
* var21
/* : String */;
2641 char* var22
/* : NativeString */;
2642 long var23
/* : Int */;
2643 val
* var24
/* : String */;
2644 short int var25
/* : Bool */;
2645 static val
* varonce26
;
2646 val
* var27
/* : String */;
2647 char* var28
/* : NativeString */;
2648 long var29
/* : Int */;
2649 val
* var30
/* : String */;
2650 val
* var31
/* : String */;
2651 static val
* varonce32
;
2652 val
* var33
/* : String */;
2653 char* var34
/* : NativeString */;
2654 long var35
/* : Int */;
2655 val
* var36
/* : String */;
2656 static val
* varonce37
;
2657 val
* var38
/* : String */;
2658 char* var39
/* : NativeString */;
2659 long var40
/* : Int */;
2660 val
* var41
/* : String */;
2661 val
* var42
/* : MType */;
2662 static val
* varonce43
;
2663 val
* var44
/* : String */;
2664 char* var45
/* : NativeString */;
2665 long var46
/* : Int */;
2666 val
* var47
/* : String */;
2667 static val
* varonce48
;
2668 val
* var49
/* : String */;
2669 char* var50
/* : NativeString */;
2670 long var51
/* : Int */;
2671 val
* var52
/* : String */;
2672 val
* var53
/* : Array[Object] */;
2673 long var54
/* : Int */;
2674 val
* var55
/* : NativeArray[Object] */;
2675 val
* var56
/* : String */;
2676 val
* var57
/* : RuntimeVariable */;
2677 val
* var58
/* : String */;
2678 static val
* varonce59
;
2679 val
* var60
/* : String */;
2680 char* var61
/* : NativeString */;
2681 long var62
/* : Int */;
2682 val
* var63
/* : String */;
2683 short int var64
/* : Bool */;
2684 val
* var65
/* : MType */;
2685 short int var66
/* : Bool */;
2688 const char* var_class_name
;
2689 val
* var_valtype
/* var valtype: MClassType */;
2690 val
* var67
/* : RuntimeVariable */;
2691 val
* var_res
/* var res: RuntimeVariable */;
2692 val
* var68
/* : AbstractCompiler */;
2693 val
* var69
/* : RapidTypeAnalysis */;
2694 val
* var70
/* : HashSet[MClassType] */;
2695 short int var71
/* : Bool */;
2696 short int var72
/* : Bool */;
2697 static val
* varonce73
;
2698 val
* var74
/* : String */;
2699 char* var75
/* : NativeString */;
2700 long var76
/* : Int */;
2701 val
* var77
/* : String */;
2702 val
* var78
/* : MType */;
2703 static val
* varonce79
;
2704 val
* var80
/* : String */;
2705 char* var81
/* : NativeString */;
2706 long var82
/* : Int */;
2707 val
* var83
/* : String */;
2708 static val
* varonce84
;
2709 val
* var85
/* : String */;
2710 char* var86
/* : NativeString */;
2711 long var87
/* : Int */;
2712 val
* var88
/* : String */;
2713 val
* var89
/* : MType */;
2714 static val
* varonce90
;
2715 val
* var91
/* : String */;
2716 char* var92
/* : NativeString */;
2717 long var93
/* : Int */;
2718 val
* var94
/* : String */;
2719 val
* var95
/* : Array[Object] */;
2720 long var96
/* : Int */;
2721 val
* var97
/* : NativeArray[Object] */;
2722 val
* var98
/* : String */;
2723 static val
* varonce99
;
2724 val
* var100
/* : String */;
2725 char* var101
/* : NativeString */;
2726 long var102
/* : Int */;
2727 val
* var103
/* : String */;
2728 static val
* varonce104
;
2729 val
* var105
/* : String */;
2730 char* var106
/* : NativeString */;
2731 long var107
/* : Int */;
2732 val
* var108
/* : String */;
2733 val
* var109
/* : String */;
2734 static val
* varonce110
;
2735 val
* var111
/* : String */;
2736 char* var112
/* : NativeString */;
2737 long var113
/* : Int */;
2738 val
* var114
/* : String */;
2739 static val
* varonce115
;
2740 val
* var116
/* : String */;
2741 char* var117
/* : NativeString */;
2742 long var118
/* : Int */;
2743 val
* var119
/* : String */;
2744 val
* var120
/* : MType */;
2745 static val
* varonce121
;
2746 val
* var122
/* : String */;
2747 char* var123
/* : NativeString */;
2748 long var124
/* : Int */;
2749 val
* var125
/* : String */;
2750 static val
* varonce126
;
2751 val
* var127
/* : String */;
2752 char* var128
/* : NativeString */;
2753 long var129
/* : Int */;
2754 val
* var130
/* : String */;
2755 val
* var131
/* : Array[Object] */;
2756 long var132
/* : Int */;
2757 val
* var133
/* : NativeArray[Object] */;
2758 val
* var134
/* : String */;
2759 val
* var135
/* : RuntimeVariable */;
2760 val
* var_res136
/* var res: RuntimeVariable */;
2761 static val
* varonce137
;
2762 val
* var138
/* : String */;
2763 char* var139
/* : NativeString */;
2764 long var140
/* : Int */;
2765 val
* var141
/* : String */;
2766 static val
* varonce142
;
2767 val
* var143
/* : String */;
2768 char* var144
/* : NativeString */;
2769 long var145
/* : Int */;
2770 val
* var146
/* : String */;
2771 val
* var147
/* : MType */;
2772 static val
* varonce148
;
2773 val
* var149
/* : String */;
2774 char* var150
/* : NativeString */;
2775 long var151
/* : Int */;
2776 val
* var152
/* : String */;
2777 static val
* varonce153
;
2778 val
* var154
/* : String */;
2779 char* var155
/* : NativeString */;
2780 long var156
/* : Int */;
2781 val
* var157
/* : String */;
2782 val
* var158
/* : Array[Object] */;
2783 long var159
/* : Int */;
2784 val
* var160
/* : NativeArray[Object] */;
2785 val
* var161
/* : String */;
2786 static val
* varonce162
;
2787 val
* var163
/* : String */;
2788 char* var164
/* : NativeString */;
2789 long var165
/* : Int */;
2790 val
* var166
/* : String */;
2791 val
* var167
/* : MType */;
2792 static val
* varonce168
;
2793 val
* var169
/* : String */;
2794 char* var170
/* : NativeString */;
2795 long var171
/* : Int */;
2796 val
* var172
/* : String */;
2797 static val
* varonce173
;
2798 val
* var174
/* : String */;
2799 char* var175
/* : NativeString */;
2800 long var176
/* : Int */;
2801 val
* var177
/* : String */;
2802 val
* var178
/* : Array[Object] */;
2803 long var179
/* : Int */;
2804 val
* var180
/* : NativeArray[Object] */;
2805 val
* var181
/* : String */;
2808 var1
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2809 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var1
, var_mtype
) /* == on <var1:MType>*/;
2814 var4
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2815 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var4
) /* ctype on <var4:MType>*/;
2821 var9
= string__NativeString__to_s_with_length(var7
, var8
);
2825 var10
= ((short int (*)(val
*, val
*))(var5
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var5
, var6
) /* == on <var5:String>*/;
2828 var11
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
2834 var16
= string__NativeString__to_s_with_length(var14
, var15
);
2838 var17
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var11
, var13
) /* == on <var11:String>*/;
2847 var18
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2848 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var18
) /* ctype on <var18:MType>*/;
2854 var24
= string__NativeString__to_s_with_length(var22
, var23
);
2858 var25
= ((short int (*)(val
*, val
*))(var19
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var19
, var21
) /* == on <var19:String>*/;
2863 var28
= "((struct ";
2865 var30
= string__NativeString__to_s_with_length(var28
, var29
);
2869 var31
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
2875 var36
= string__NativeString__to_s_with_length(var34
, var35
);
2882 var39
= ")->value; /* autounbox from ";
2884 var41
= string__NativeString__to_s_with_length(var39
, var40
);
2888 var42
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2894 var47
= string__NativeString__to_s_with_length(var45
, var46
);
2903 var52
= string__NativeString__to_s_with_length(var50
, var51
);
2907 var53
= NEW_array__Array(&type_array__Arraykernel__Object
);
2908 { /* var53 = array_instance Array[Object] */
2910 var55
= NEW_array__NativeArray(var54
, &type_array__NativeArraykernel__Object
);
2911 ((struct instance_array__NativeArray
*)var55
)->values
[0] = (val
*) var27
;
2912 ((struct instance_array__NativeArray
*)var55
)->values
[1] = (val
*) var31
;
2913 ((struct instance_array__NativeArray
*)var55
)->values
[2] = (val
*) var33
;
2914 ((struct instance_array__NativeArray
*)var55
)->values
[3] = (val
*) var_value
;
2915 ((struct instance_array__NativeArray
*)var55
)->values
[4] = (val
*) var38
;
2916 ((struct instance_array__NativeArray
*)var55
)->values
[5] = (val
*) var42
;
2917 ((struct instance_array__NativeArray
*)var55
)->values
[6] = (val
*) var44
;
2918 ((struct instance_array__NativeArray
*)var55
)->values
[7] = (val
*) var_mtype
;
2919 ((struct instance_array__NativeArray
*)var55
)->values
[8] = (val
*) var49
;
2920 ((void (*)(val
*, val
*, long))(var53
->class->vft
[COLOR_array__Array__with_native
]))(var53
, var55
, var54
) /* with_native on <var53:Array[Object]>*/;
2921 CHECK_NEW_array__Array(var53
);
2923 var56
= ((val
* (*)(val
*))(var53
->class->vft
[COLOR_string__Object__to_s
]))(var53
) /* to_s on <var53:Array[Object]>*/;
2924 var57
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var56
, var_mtype
) /* new_expr on <self:GlobalCompilerVisitor>*/;
2928 var58
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
2934 var63
= string__NativeString__to_s_with_length(var61
, var62
);
2938 var64
= ((short int (*)(val
*, val
*))(var58
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var58
, var60
) /* == on <var58:String>*/;
2940 var65
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2941 /* <var65:MType> isa MClassType */
2942 cltype
= type_model__MClassType
.color
;
2943 idtype
= type_model__MClassType
.id
;
2944 if(cltype
>= var65
->type
->table_size
) {
2947 var66
= var65
->type
->type_table
[cltype
] == idtype
;
2950 var_class_name
= var65
== NULL ?
"null" : var65
->type
->name
;
2951 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
2952 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 277);
2955 var_valtype
= var65
;
2956 var67
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_mtype
) /* new_var on <self:GlobalCompilerVisitor>*/;
2958 var68
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
2959 var69
= ((val
* (*)(val
*))(var68
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var68
) /* runtime_type_analysis on <var68:AbstractCompiler(GlobalCompiler)>*/;
2960 var70
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var69
) /* live_types on <var69:RapidTypeAnalysis>*/;
2961 var71
= ((short int (*)(val
*, val
*))(var70
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var70
, var_valtype
) /* has on <var70:HashSet[MClassType]>*/;
2967 var75
= "/*no autobox from ";
2969 var77
= string__NativeString__to_s_with_length(var75
, var76
);
2973 var78
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2979 var83
= string__NativeString__to_s_with_length(var81
, var82
);
2988 var88
= string__NativeString__to_s_with_length(var86
, var87
);
2992 var89
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2996 var92
= " is not live! */";
2998 var94
= string__NativeString__to_s_with_length(var92
, var93
);
3002 var95
= NEW_array__Array(&type_array__Arraykernel__Object
);
3003 { /* var95 = array_instance Array[Object] */
3005 var97
= NEW_array__NativeArray(var96
, &type_array__NativeArraykernel__Object
);
3006 ((struct instance_array__NativeArray
*)var97
)->values
[0] = (val
*) var74
;
3007 ((struct instance_array__NativeArray
*)var97
)->values
[1] = (val
*) var78
;
3008 ((struct instance_array__NativeArray
*)var97
)->values
[2] = (val
*) var80
;
3009 ((struct instance_array__NativeArray
*)var97
)->values
[3] = (val
*) var_mtype
;
3010 ((struct instance_array__NativeArray
*)var97
)->values
[4] = (val
*) var85
;
3011 ((struct instance_array__NativeArray
*)var97
)->values
[5] = (val
*) var89
;
3012 ((struct instance_array__NativeArray
*)var97
)->values
[6] = (val
*) var91
;
3013 ((void (*)(val
*, val
*, long))(var95
->class->vft
[COLOR_array__Array__with_native
]))(var95
, var97
, var96
) /* with_native on <var95:Array[Object]>*/;
3014 CHECK_NEW_array__Array(var95
);
3016 var98
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_string__Object__to_s
]))(var95
) /* to_s on <var95:Array[Object]>*/;
3017 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var98
) /* add on <self:GlobalCompilerVisitor>*/;
3021 var101
= "printf(\"Dead code executed!\\n\"); exit(1);";
3023 var103
= string__NativeString__to_s_with_length(var101
, var102
);
3027 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var100
) /* add on <self:GlobalCompilerVisitor>*/;
3033 var105
= varonce104
;
3037 var108
= string__NativeString__to_s_with_length(var106
, var107
);
3039 varonce104
= var105
;
3041 var109
= ((val
* (*)(val
*))(var_valtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_valtype
) /* c_name on <var_valtype:MClassType>*/;
3043 var111
= varonce110
;
3047 var114
= string__NativeString__to_s_with_length(var112
, var113
);
3049 varonce110
= var111
;
3052 var116
= varonce115
;
3054 var117
= "); /* autobox from ";
3056 var119
= string__NativeString__to_s_with_length(var117
, var118
);
3058 varonce115
= var116
;
3060 var120
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
3062 var122
= varonce121
;
3066 var125
= string__NativeString__to_s_with_length(var123
, var124
);
3068 varonce121
= var122
;
3071 var127
= varonce126
;
3075 var130
= string__NativeString__to_s_with_length(var128
, var129
);
3077 varonce126
= var127
;
3079 var131
= NEW_array__Array(&type_array__Arraykernel__Object
);
3080 { /* var131 = array_instance Array[Object] */
3082 var133
= NEW_array__NativeArray(var132
, &type_array__NativeArraykernel__Object
);
3083 ((struct instance_array__NativeArray
*)var133
)->values
[0] = (val
*) var_res
;
3084 ((struct instance_array__NativeArray
*)var133
)->values
[1] = (val
*) var105
;
3085 ((struct instance_array__NativeArray
*)var133
)->values
[2] = (val
*) var109
;
3086 ((struct instance_array__NativeArray
*)var133
)->values
[3] = (val
*) var111
;
3087 ((struct instance_array__NativeArray
*)var133
)->values
[4] = (val
*) var_value
;
3088 ((struct instance_array__NativeArray
*)var133
)->values
[5] = (val
*) var116
;
3089 ((struct instance_array__NativeArray
*)var133
)->values
[6] = (val
*) var120
;
3090 ((struct instance_array__NativeArray
*)var133
)->values
[7] = (val
*) var122
;
3091 ((struct instance_array__NativeArray
*)var133
)->values
[8] = (val
*) var_mtype
;
3092 ((struct instance_array__NativeArray
*)var133
)->values
[9] = (val
*) var127
;
3093 ((void (*)(val
*, val
*, long))(var131
->class->vft
[COLOR_array__Array__with_native
]))(var131
, var133
, var132
) /* with_native on <var131:Array[Object]>*/;
3094 CHECK_NEW_array__Array(var131
);
3096 var134
= ((val
* (*)(val
*))(var131
->class->vft
[COLOR_string__Object__to_s
]))(var131
) /* to_s on <var131:Array[Object]>*/;
3097 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var134
) /* add on <self:GlobalCompilerVisitor>*/;
3101 var135
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_mtype
) /* new_var on <self:GlobalCompilerVisitor>*/;
3102 var_res136
= var135
;
3104 var138
= varonce137
;
3108 var141
= string__NativeString__to_s_with_length(var139
, var140
);
3110 varonce137
= var138
;
3113 var143
= varonce142
;
3115 var144
= " left unintialized (cannot convert ";
3117 var146
= string__NativeString__to_s_with_length(var144
, var145
);
3119 varonce142
= var143
;
3121 var147
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
3123 var149
= varonce148
;
3127 var152
= string__NativeString__to_s_with_length(var150
, var151
);
3129 varonce148
= var149
;
3132 var154
= varonce153
;
3136 var157
= string__NativeString__to_s_with_length(var155
, var156
);
3138 varonce153
= var154
;
3140 var158
= NEW_array__Array(&type_array__Arraykernel__Object
);
3141 { /* var158 = array_instance Array[Object] */
3143 var160
= NEW_array__NativeArray(var159
, &type_array__NativeArraykernel__Object
);
3144 ((struct instance_array__NativeArray
*)var160
)->values
[0] = (val
*) var138
;
3145 ((struct instance_array__NativeArray
*)var160
)->values
[1] = (val
*) var_res136
;
3146 ((struct instance_array__NativeArray
*)var160
)->values
[2] = (val
*) var143
;
3147 ((struct instance_array__NativeArray
*)var160
)->values
[3] = (val
*) var147
;
3148 ((struct instance_array__NativeArray
*)var160
)->values
[4] = (val
*) var149
;
3149 ((struct instance_array__NativeArray
*)var160
)->values
[5] = (val
*) var_mtype
;
3150 ((struct instance_array__NativeArray
*)var160
)->values
[6] = (val
*) var154
;
3151 ((void (*)(val
*, val
*, long))(var158
->class->vft
[COLOR_array__Array__with_native
]))(var158
, var160
, var159
) /* with_native on <var158:Array[Object]>*/;
3152 CHECK_NEW_array__Array(var158
);
3154 var161
= ((val
* (*)(val
*))(var158
->class->vft
[COLOR_string__Object__to_s
]))(var158
) /* to_s on <var158:Array[Object]>*/;
3155 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var161
) /* add on <self:GlobalCompilerVisitor>*/;
3157 var163
= varonce162
;
3159 var164
= "printf(\"Cast error: Cannot cast %s to %s.\\n\", \"";
3161 var166
= string__NativeString__to_s_with_length(var164
, var165
);
3163 varonce162
= var163
;
3165 var167
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
3167 var169
= varonce168
;
3171 var172
= string__NativeString__to_s_with_length(var170
, var171
);
3173 varonce168
= var169
;
3176 var174
= varonce173
;
3178 var175
= "\"); exit(1);";
3180 var177
= string__NativeString__to_s_with_length(var175
, var176
);
3182 varonce173
= var174
;
3184 var178
= NEW_array__Array(&type_array__Arraykernel__Object
);
3185 { /* var178 = array_instance Array[Object] */
3187 var180
= NEW_array__NativeArray(var179
, &type_array__NativeArraykernel__Object
);
3188 ((struct instance_array__NativeArray
*)var180
)->values
[0] = (val
*) var163
;
3189 ((struct instance_array__NativeArray
*)var180
)->values
[1] = (val
*) var167
;
3190 ((struct instance_array__NativeArray
*)var180
)->values
[2] = (val
*) var169
;
3191 ((struct instance_array__NativeArray
*)var180
)->values
[3] = (val
*) var_mtype
;
3192 ((struct instance_array__NativeArray
*)var180
)->values
[4] = (val
*) var174
;
3193 ((void (*)(val
*, val
*, long))(var178
->class->vft
[COLOR_array__Array__with_native
]))(var178
, var180
, var179
) /* with_native on <var178:Array[Object]>*/;
3194 CHECK_NEW_array__Array(var178
);
3196 var181
= ((val
* (*)(val
*))(var178
->class->vft
[COLOR_string__Object__to_s
]))(var178
) /* to_s on <var178:Array[Object]>*/;
3197 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var181
) /* add on <self:GlobalCompilerVisitor>*/;
3207 /* method global_compiler#GlobalCompilerVisitor#autobox for (self: Object, RuntimeVariable, MType): RuntimeVariable */
3208 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__autobox(val
* self
, val
* p0
, val
* p1
) {
3209 val
* var
/* : RuntimeVariable */;
3210 val
* var1
/* : RuntimeVariable */;
3211 var1
= global_compiler__GlobalCompilerVisitor__autobox(self
, p0
, p1
);
3216 /* method global_compiler#GlobalCompilerVisitor#collect_types for (self: GlobalCompilerVisitor, RuntimeVariable): Array[MClassType] */
3217 val
* global_compiler__GlobalCompilerVisitor__collect_types(val
* self
, val
* p0
) {
3218 val
* var
/* : Array[MClassType] */;
3219 val
* var_recv
/* var recv: RuntimeVariable */;
3220 val
* var1
/* : MType */;
3221 val
* var_mtype
/* var mtype: MType */;
3222 short int var2
/* : Bool */;
3223 short int var3
/* : Bool */;
3226 val
* var4
/* : AbstractCompiler */;
3227 val
* var5
/* : RapidTypeAnalysis */;
3228 val
* var6
/* : HashSet[MClassType] */;
3229 short int var7
/* : Bool */;
3230 val
* var8
/* : Array[MClassType] */;
3231 long var9
/* : Int */;
3232 val
* var_
/* var : Array[MClassType] */;
3233 val
* var_types
/* var types: Array[MClassType] */;
3234 val
* var10
/* : AbstractCompiler */;
3235 val
* var11
/* : HashMap[MType, Array[MClassType]] */;
3236 val
* var_cache
/* var cache: HashMap[MType, Array[MClassType]] */;
3237 short int var12
/* : Bool */;
3238 val
* var13
/* : nullable Object */;
3239 val
* var14
/* : Array[MClassType] */;
3240 val
* var_types15
/* var types: Array[MClassType] */;
3241 val
* var16
/* : AbstractCompiler */;
3242 val
* var17
/* : MModule */;
3243 val
* var_mainmodule
/* var mainmodule: MModule */;
3244 val
* var18
/* : AbstractCompiler */;
3245 val
* var19
/* : RapidTypeAnalysis */;
3246 val
* var20
/* : HashSet[MClassType] */;
3247 val
* var21
/* : Iterator[nullable Object] */;
3248 short int var22
/* : Bool */;
3249 val
* var23
/* : nullable Object */;
3250 val
* var_t
/* var t: MClassType */;
3251 val
* var24
/* : null */;
3252 short int var25
/* : Bool */;
3253 short int var26
/* : Bool */;
3255 var1
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_recv
) /* mcasttype on <var_recv:RuntimeVariable>*/;
3257 var2
= ((short int (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact
]))(var_recv
) /* is_exact on <var_recv:RuntimeVariable>*/;
3259 /* <var_mtype:MType> isa MClassType */
3260 cltype
= type_model__MClassType
.color
;
3261 idtype
= type_model__MClassType
.id
;
3262 if(cltype
>= var_mtype
->type
->table_size
) {
3265 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
3268 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3269 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 300);
3272 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
3273 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var4
) /* runtime_type_analysis on <var4:AbstractCompiler(GlobalCompiler)>*/;
3274 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var5
) /* live_types on <var5:RapidTypeAnalysis>*/;
3275 var7
= ((short int (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var6
, var_mtype
) /* has on <var6:HashSet[MClassType]>*/;
3277 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3278 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 301);
3281 var8
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
3283 ((void (*)(val
*, long))(var8
->class->vft
[COLOR_array__Array__with_capacity
]))(var8
, var9
) /* with_capacity on <var8:Array[MClassType]>*/;
3284 CHECK_NEW_array__Array(var8
);
3286 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var_mtype
) /* push on <var_:Array[MClassType]>*/;
3292 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
3293 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_global_compiler__GlobalCompiler__collect_types_cache
]))(var10
) /* collect_types_cache on <var10:AbstractCompiler(GlobalCompiler)>*/;
3295 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]]>*/;
3297 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]]>*/;
3302 var14
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
3303 ((void (*)(val
*))(var14
->class->vft
[COLOR_array__Array__init
]))(var14
) /* init on <var14:Array[MClassType]>*/;
3304 CHECK_NEW_array__Array(var14
);
3305 var_types15
= var14
;
3306 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
3307 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var16
) /* mainmodule on <var16:AbstractCompiler(GlobalCompiler)>*/;
3308 var_mainmodule
= var17
;
3309 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
3310 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var18
) /* runtime_type_analysis on <var18:AbstractCompiler(GlobalCompiler)>*/;
3311 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var19
) /* live_types on <var19:RapidTypeAnalysis>*/;
3312 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var20
) /* iterator on <var20:HashSet[MClassType]>*/;
3314 var22
= ((short int (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var21
) /* is_ok on <var21:Iterator[nullable Object]>*/;
3316 var23
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var21
) /* item on <var21:Iterator[nullable Object]>*/;
3319 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>*/;
3322 goto CONTINUE_label
;
3325 ((void (*)(val
*, val
*))(var_types15
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_types15
, var_t
) /* add on <var_types15:Array[MClassType]>*/;
3326 CONTINUE_label
: (void)0;
3327 ((void (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var21
) /* next on <var21:Iterator[nullable Object]>*/;
3329 BREAK_label
: (void)0;
3330 ((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]]>*/;
3336 /* method global_compiler#GlobalCompilerVisitor#collect_types for (self: Object, RuntimeVariable): Array[MClassType] */
3337 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__collect_types(val
* self
, val
* p0
) {
3338 val
* var
/* : Array[MClassType] */;
3339 val
* var1
/* : Array[MClassType] */;
3340 var1
= global_compiler__GlobalCompilerVisitor__collect_types(self
, p0
);
3345 /* method global_compiler#GlobalCompilerVisitor#native_array_def for (self: GlobalCompilerVisitor, String, nullable MType, Array[RuntimeVariable]) */
3346 void global_compiler__GlobalCompilerVisitor__native_array_def(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3347 val
* var_pname
/* var pname: String */;
3348 val
* var_ret_type
/* var ret_type: nullable MType */;
3349 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
3350 val
* var
/* : nullable Object */;
3351 val
* var1
/* : MType */;
3352 val
* var_elttype
/* var elttype: MType */;
3353 val
* var2
/* : Array[Object] */;
3354 long var3
/* : Int */;
3355 val
* var_
/* var : Array[Object] */;
3356 static val
* varonce
;
3357 val
* var4
/* : String */;
3358 char* var5
/* : NativeString */;
3359 long var6
/* : Int */;
3360 val
* var7
/* : String */;
3361 long var8
/* : Int */;
3362 val
* var9
/* : nullable Object */;
3363 val
* var10
/* : MType */;
3364 val
* var11
/* : String */;
3365 static val
* varonce12
;
3366 val
* var13
/* : String */;
3367 char* var14
/* : NativeString */;
3368 long var15
/* : Int */;
3369 val
* var16
/* : String */;
3370 long var17
/* : Int */;
3371 val
* var18
/* : nullable Object */;
3372 static val
* varonce19
;
3373 val
* var20
/* : String */;
3374 char* var21
/* : NativeString */;
3375 long var22
/* : Int */;
3376 val
* var23
/* : String */;
3377 val
* var24
/* : String */;
3378 val
* var_recv
/* var recv: String */;
3379 static val
* varonce25
;
3380 val
* var26
/* : String */;
3381 char* var27
/* : NativeString */;
3382 long var28
/* : Int */;
3383 val
* var29
/* : String */;
3384 short int var30
/* : Bool */;
3385 static val
* varonce31
;
3386 val
* var32
/* : String */;
3387 char* var33
/* : NativeString */;
3388 long var34
/* : Int */;
3389 val
* var35
/* : String */;
3390 long var36
/* : Int */;
3391 val
* var37
/* : nullable Object */;
3392 static val
* varonce38
;
3393 val
* var39
/* : String */;
3394 char* var40
/* : NativeString */;
3395 long var41
/* : Int */;
3396 val
* var42
/* : String */;
3397 val
* var43
/* : Array[Object] */;
3398 long var44
/* : Int */;
3399 val
* var45
/* : NativeArray[Object] */;
3400 val
* var46
/* : String */;
3401 val
* var47
/* : RuntimeVariable */;
3402 static val
* varonce48
;
3403 val
* var49
/* : String */;
3404 char* var50
/* : NativeString */;
3405 long var51
/* : Int */;
3406 val
* var52
/* : String */;
3407 short int var53
/* : Bool */;
3408 static val
* varonce54
;
3409 val
* var55
/* : String */;
3410 char* var56
/* : NativeString */;
3411 long var57
/* : Int */;
3412 val
* var58
/* : String */;
3413 long var59
/* : Int */;
3414 val
* var60
/* : nullable Object */;
3415 static val
* varonce61
;
3416 val
* var62
/* : String */;
3417 char* var63
/* : NativeString */;
3418 long var64
/* : Int */;
3419 val
* var65
/* : String */;
3420 long var66
/* : Int */;
3421 val
* var67
/* : nullable Object */;
3422 static val
* varonce68
;
3423 val
* var69
/* : String */;
3424 char* var70
/* : NativeString */;
3425 long var71
/* : Int */;
3426 val
* var72
/* : String */;
3427 val
* var73
/* : Array[Object] */;
3428 long var74
/* : Int */;
3429 val
* var75
/* : NativeArray[Object] */;
3430 val
* var76
/* : String */;
3431 static val
* varonce77
;
3432 val
* var78
/* : String */;
3433 char* var79
/* : NativeString */;
3434 long var80
/* : Int */;
3435 val
* var81
/* : String */;
3436 short int var82
/* : Bool */;
3437 val
* var83
/* : Array[Object] */;
3438 long var84
/* : Int */;
3439 val
* var_85
/* var : Array[Object] */;
3440 static val
* varonce86
;
3441 val
* var87
/* : String */;
3442 char* var88
/* : NativeString */;
3443 long var89
/* : Int */;
3444 val
* var90
/* : String */;
3445 long var91
/* : Int */;
3446 val
* var92
/* : nullable Object */;
3447 val
* var93
/* : MType */;
3448 val
* var94
/* : String */;
3449 static val
* varonce95
;
3450 val
* var96
/* : String */;
3451 char* var97
/* : NativeString */;
3452 long var98
/* : Int */;
3453 val
* var99
/* : String */;
3454 long var100
/* : Int */;
3455 val
* var101
/* : nullable Object */;
3456 static val
* varonce102
;
3457 val
* var103
/* : String */;
3458 char* var104
/* : NativeString */;
3459 long var105
/* : Int */;
3460 val
* var106
/* : String */;
3461 val
* var107
/* : String */;
3462 val
* var_recv1
/* var recv1: String */;
3463 static val
* varonce108
;
3464 val
* var109
/* : String */;
3465 char* var110
/* : NativeString */;
3466 long var111
/* : Int */;
3467 val
* var112
/* : String */;
3468 static val
* varonce113
;
3469 val
* var114
/* : String */;
3470 char* var115
/* : NativeString */;
3471 long var116
/* : Int */;
3472 val
* var117
/* : String */;
3473 static val
* varonce118
;
3474 val
* var119
/* : String */;
3475 char* var120
/* : NativeString */;
3476 long var121
/* : Int */;
3477 val
* var122
/* : String */;
3478 long var123
/* : Int */;
3479 val
* var124
/* : nullable Object */;
3480 static val
* varonce125
;
3481 val
* var126
/* : String */;
3482 char* var127
/* : NativeString */;
3483 long var128
/* : Int */;
3484 val
* var129
/* : String */;
3485 val
* var130
/* : String */;
3486 static val
* varonce131
;
3487 val
* var132
/* : String */;
3488 char* var133
/* : NativeString */;
3489 long var134
/* : Int */;
3490 val
* var135
/* : String */;
3491 val
* var136
/* : Array[Object] */;
3492 long var137
/* : Int */;
3493 val
* var138
/* : NativeArray[Object] */;
3494 val
* var139
/* : String */;
3498 var
= ((val
* (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_arguments
) /* first on <var_arguments:Array[RuntimeVariable]>*/;
3499 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var
) /* mtype on <var:nullable Object(RuntimeVariable)>*/;
3501 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
3503 ((void (*)(val
*, long))(var2
->class->vft
[COLOR_array__Array__with_capacity
]))(var2
, var3
) /* with_capacity on <var2:Array[Object]>*/;
3504 CHECK_NEW_array__Array(var2
);
3511 var7
= string__NativeString__to_s_with_length(var5
, var6
);
3515 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var4
) /* add on <var_:Array[Object]>*/;
3517 var9
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var8
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3518 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var9
) /* mcasttype on <var9:nullable Object(RuntimeVariable)>*/;
3519 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var10
) /* c_name on <var10:MType>*/;
3520 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var11
) /* add on <var_:Array[Object]>*/;
3526 var16
= string__NativeString__to_s_with_length(var14
, var15
);
3530 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var13
) /* add on <var_:Array[Object]>*/;
3532 var18
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var17
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3533 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var18
) /* add on <var_:Array[Object]>*/;
3537 var21
= ")->values";
3539 var23
= string__NativeString__to_s_with_length(var21
, var22
);
3543 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var20
) /* add on <var_:Array[Object]>*/;
3544 var24
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
3551 var29
= string__NativeString__to_s_with_length(var27
, var28
);
3555 var30
= ((short int (*)(val
*, val
*))(var_pname
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pname
, var26
) /* == on <var_pname:String>*/;
3562 var35
= string__NativeString__to_s_with_length(var33
, var34
);
3567 var37
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var36
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3573 var42
= string__NativeString__to_s_with_length(var40
, var41
);
3577 var43
= NEW_array__Array(&type_array__Arraykernel__Object
);
3578 { /* var43 = array_instance Array[Object] */
3580 var45
= NEW_array__NativeArray(var44
, &type_array__NativeArraykernel__Object
);
3581 ((struct instance_array__NativeArray
*)var45
)->values
[0] = (val
*) var_recv
;
3582 ((struct instance_array__NativeArray
*)var45
)->values
[1] = (val
*) var32
;
3583 ((struct instance_array__NativeArray
*)var45
)->values
[2] = (val
*) var37
;
3584 ((struct instance_array__NativeArray
*)var45
)->values
[3] = (val
*) var39
;
3585 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[Object]>*/;
3586 CHECK_NEW_array__Array(var43
);
3588 var46
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_string__Object__to_s
]))(var43
) /* to_s on <var43:Array[Object]>*/;
3589 if (var_ret_type
== NULL
) {
3590 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3591 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 324);
3594 var47
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var46
, var_ret_type
) /* new_expr on <self:GlobalCompilerVisitor>*/;
3595 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__ret
]))(self
, var47
) /* ret on <self:GlobalCompilerVisitor>*/;
3603 var52
= string__NativeString__to_s_with_length(var50
, var51
);
3607 var53
= ((short int (*)(val
*, val
*))(var_pname
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pname
, var49
) /* == on <var_pname:String>*/;
3614 var58
= string__NativeString__to_s_with_length(var56
, var57
);
3619 var60
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var59
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3625 var65
= string__NativeString__to_s_with_length(var63
, var64
);
3630 var67
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var66
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3636 var72
= string__NativeString__to_s_with_length(var70
, var71
);
3640 var73
= NEW_array__Array(&type_array__Arraykernel__Object
);
3641 { /* var73 = array_instance Array[Object] */
3643 var75
= NEW_array__NativeArray(var74
, &type_array__NativeArraykernel__Object
);
3644 ((struct instance_array__NativeArray
*)var75
)->values
[0] = (val
*) var_recv
;
3645 ((struct instance_array__NativeArray
*)var75
)->values
[1] = (val
*) var55
;
3646 ((struct instance_array__NativeArray
*)var75
)->values
[2] = (val
*) var60
;
3647 ((struct instance_array__NativeArray
*)var75
)->values
[3] = (val
*) var62
;
3648 ((struct instance_array__NativeArray
*)var75
)->values
[4] = (val
*) var67
;
3649 ((struct instance_array__NativeArray
*)var75
)->values
[5] = (val
*) var69
;
3650 ((void (*)(val
*, val
*, long))(var73
->class->vft
[COLOR_array__Array__with_native
]))(var73
, var75
, var74
) /* with_native on <var73:Array[Object]>*/;
3651 CHECK_NEW_array__Array(var73
);
3653 var76
= ((val
* (*)(val
*))(var73
->class->vft
[COLOR_string__Object__to_s
]))(var73
) /* to_s on <var73:Array[Object]>*/;
3654 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var76
) /* add on <self:GlobalCompilerVisitor>*/;
3662 var81
= string__NativeString__to_s_with_length(var79
, var80
);
3666 var82
= ((short int (*)(val
*, val
*))(var_pname
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pname
, var78
) /* == on <var_pname:String>*/;
3668 var83
= NEW_array__Array(&type_array__Arraykernel__Object
);
3670 ((void (*)(val
*, long))(var83
->class->vft
[COLOR_array__Array__with_capacity
]))(var83
, var84
) /* with_capacity on <var83:Array[Object]>*/;
3671 CHECK_NEW_array__Array(var83
);
3676 var88
= "((struct ";
3678 var90
= string__NativeString__to_s_with_length(var88
, var89
);
3682 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var87
) /* add on <var_85:Array[Object]>*/;
3684 var92
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var91
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3685 var93
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var92
) /* mcasttype on <var92:nullable Object(RuntimeVariable)>*/;
3686 var94
= ((val
* (*)(val
*))(var93
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var93
) /* c_name on <var93:MType>*/;
3687 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var94
) /* add on <var_85:Array[Object]>*/;
3693 var99
= string__NativeString__to_s_with_length(var97
, var98
);
3697 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var96
) /* add on <var_85:Array[Object]>*/;
3699 var101
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var100
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3700 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var101
) /* add on <var_85:Array[Object]>*/;
3702 var103
= varonce102
;
3704 var104
= ")->values";
3706 var106
= string__NativeString__to_s_with_length(var104
, var105
);
3708 varonce102
= var103
;
3710 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var103
) /* add on <var_85:Array[Object]>*/;
3711 var107
= ((val
* (*)(val
*))(var_85
->class->vft
[COLOR_string__Object__to_s
]))(var_85
) /* to_s on <var_85:Array[Object]>*/;
3714 var109
= varonce108
;
3718 var112
= string__NativeString__to_s_with_length(var110
, var111
);
3720 varonce108
= var109
;
3723 var114
= varonce113
;
3727 var117
= string__NativeString__to_s_with_length(var115
, var116
);
3729 varonce113
= var114
;
3732 var119
= varonce118
;
3736 var122
= string__NativeString__to_s_with_length(var120
, var121
);
3738 varonce118
= var119
;
3741 var124
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var123
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3743 var126
= varonce125
;
3745 var127
= "*sizeof(";
3747 var129
= string__NativeString__to_s_with_length(var127
, var128
);
3749 varonce125
= var126
;
3751 var130
= ((val
* (*)(val
*))(var_elttype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_elttype
) /* ctype on <var_elttype:MType>*/;
3753 var132
= varonce131
;
3757 var135
= string__NativeString__to_s_with_length(var133
, var134
);
3759 varonce131
= var132
;
3761 var136
= NEW_array__Array(&type_array__Arraykernel__Object
);
3762 { /* var136 = array_instance Array[Object] */
3764 var138
= NEW_array__NativeArray(var137
, &type_array__NativeArraykernel__Object
);
3765 ((struct instance_array__NativeArray
*)var138
)->values
[0] = (val
*) var109
;
3766 ((struct instance_array__NativeArray
*)var138
)->values
[1] = (val
*) var_recv1
;
3767 ((struct instance_array__NativeArray
*)var138
)->values
[2] = (val
*) var114
;
3768 ((struct instance_array__NativeArray
*)var138
)->values
[3] = (val
*) var_recv
;
3769 ((struct instance_array__NativeArray
*)var138
)->values
[4] = (val
*) var119
;
3770 ((struct instance_array__NativeArray
*)var138
)->values
[5] = (val
*) var124
;
3771 ((struct instance_array__NativeArray
*)var138
)->values
[6] = (val
*) var126
;
3772 ((struct instance_array__NativeArray
*)var138
)->values
[7] = (val
*) var130
;
3773 ((struct instance_array__NativeArray
*)var138
)->values
[8] = (val
*) var132
;
3774 ((void (*)(val
*, val
*, long))(var136
->class->vft
[COLOR_array__Array__with_native
]))(var136
, var138
, var137
) /* with_native on <var136:Array[Object]>*/;
3775 CHECK_NEW_array__Array(var136
);
3777 var139
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_string__Object__to_s
]))(var136
) /* to_s on <var136:Array[Object]>*/;
3778 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var139
) /* add on <self:GlobalCompilerVisitor>*/;
3786 /* method global_compiler#GlobalCompilerVisitor#native_array_def for (self: Object, String, nullable MType, Array[RuntimeVariable]) */
3787 void VIRTUAL_global_compiler__GlobalCompilerVisitor__native_array_def(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3788 global_compiler__GlobalCompilerVisitor__native_array_def(self
, p0
, p1
, p2
);
3791 /* method global_compiler#GlobalCompilerVisitor#calloc_array for (self: GlobalCompilerVisitor, MType, Array[RuntimeVariable]) */
3792 void global_compiler__GlobalCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
3793 val
* var_ret_type
/* var ret_type: MType */;
3794 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
3795 static val
* varonce
;
3796 val
* var
/* : String */;
3797 char* var1
/* : NativeString */;
3798 long var2
/* : Int */;
3799 val
* var3
/* : String */;
3800 val
* var4
/* : String */;
3801 static val
* varonce5
;
3802 val
* var6
/* : String */;
3803 char* var7
/* : NativeString */;
3804 long var8
/* : Int */;
3805 val
* var9
/* : String */;
3806 long var10
/* : Int */;
3807 val
* var11
/* : nullable Object */;
3808 static val
* varonce12
;
3809 val
* var13
/* : String */;
3810 char* var14
/* : NativeString */;
3811 long var15
/* : Int */;
3812 val
* var16
/* : String */;
3813 val
* var17
/* : Array[Object] */;
3814 long var18
/* : Int */;
3815 val
* var19
/* : NativeArray[Object] */;
3816 val
* var20
/* : String */;
3817 val
* var21
/* : RuntimeVariable */;
3825 var3
= string__NativeString__to_s_with_length(var1
, var2
);
3829 var4
= ((val
* (*)(val
*))(var_ret_type
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_ret_type
) /* c_name on <var_ret_type:MType>*/;
3835 var9
= string__NativeString__to_s_with_length(var7
, var8
);
3840 var11
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var10
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3846 var16
= string__NativeString__to_s_with_length(var14
, var15
);
3850 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
3851 { /* var17 = array_instance Array[Object] */
3853 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
3854 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var
;
3855 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var4
;
3856 ((struct instance_array__NativeArray
*)var19
)->values
[2] = (val
*) var6
;
3857 ((struct instance_array__NativeArray
*)var19
)->values
[3] = (val
*) var11
;
3858 ((struct instance_array__NativeArray
*)var19
)->values
[4] = (val
*) var13
;
3859 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
3860 CHECK_NEW_array__Array(var17
);
3862 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
3863 var21
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var20
, var_ret_type
) /* new_expr on <self:GlobalCompilerVisitor>*/;
3864 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__ret
]))(self
, var21
) /* ret on <self:GlobalCompilerVisitor>*/;
3867 /* method global_compiler#GlobalCompilerVisitor#calloc_array for (self: Object, MType, Array[RuntimeVariable]) */
3868 void VIRTUAL_global_compiler__GlobalCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
3869 global_compiler__GlobalCompilerVisitor__calloc_array(self
, p0
, p1
);
3872 /* method global_compiler#GlobalCompilerVisitor#send for (self: GlobalCompilerVisitor, MMethod, Array[RuntimeVariable]): nullable RuntimeVariable */
3873 val
* global_compiler__GlobalCompilerVisitor__send(val
* self
, val
* p0
, val
* p1
) {
3874 val
* var
/* : nullable RuntimeVariable */;
3875 val
* var_m
/* var m: MMethod */;
3876 val
* var_args
/* var args: Array[RuntimeVariable] */;
3877 val
* var1
/* : nullable Object */;
3878 val
* var2
/* : Array[MClassType] */;
3879 val
* var_types
/* var types: Array[MClassType] */;
3880 val
* var3
/* : MPropDef */;
3881 val
* var4
/* : nullable MSignature */;
3882 val
* var5
/* : nullable MType */;
3883 val
* var_ret
/* var ret: nullable MType */;
3884 short int var6
/* : Bool */;
3885 val
* var7
/* : nullable Object */;
3886 val
* var8
/* : MType */;
3887 val
* var9
/* : RuntimeVariable */;
3888 val
* var_res
/* var res: nullable RuntimeVariable */;
3889 val
* var10
/* : null */;
3890 short int var11
/* : Bool */;
3891 val
* var12
/* : null */;
3892 val
* var13
/* : nullable Object */;
3893 val
* var14
/* : MType */;
3894 val
* var15
/* : RuntimeVariable */;
3895 static val
* varonce
;
3896 val
* var16
/* : String */;
3897 char* var17
/* : NativeString */;
3898 long var18
/* : Int */;
3899 val
* var19
/* : String */;
3900 static val
* varonce20
;
3901 val
* var21
/* : String */;
3902 char* var22
/* : NativeString */;
3903 long var23
/* : Int */;
3904 val
* var24
/* : String */;
3905 val
* var25
/* : nullable Object */;
3906 val
* var26
/* : String */;
3907 static val
* varonce27
;
3908 val
* var28
/* : String */;
3909 char* var29
/* : NativeString */;
3910 long var30
/* : Int */;
3911 val
* var31
/* : String */;
3912 val
* var32
/* : Array[Object] */;
3913 long var33
/* : Int */;
3914 val
* var34
/* : NativeArray[Object] */;
3915 val
* var35
/* : String */;
3916 val
* var36
/* : nullable Object */;
3917 val
* var37
/* : MType */;
3918 val
* var38
/* : String */;
3919 static val
* varonce39
;
3920 val
* var40
/* : String */;
3921 char* var41
/* : NativeString */;
3922 long var42
/* : Int */;
3923 val
* var43
/* : String */;
3924 short int var44
/* : Bool */;
3925 val
* var45
/* : nullable Object */;
3926 val
* var46
/* : MType */;
3927 short int var47
/* : Bool */;
3930 const char* var_class_name
;
3931 val
* var_mclasstype
/* var mclasstype: MClassType */;
3932 val
* var48
/* : AbstractCompiler */;
3933 val
* var49
/* : RapidTypeAnalysis */;
3934 val
* var50
/* : HashSet[MClassType] */;
3935 short int var51
/* : Bool */;
3936 short int var52
/* : Bool */;
3937 static val
* varonce53
;
3938 val
* var54
/* : String */;
3939 char* var55
/* : NativeString */;
3940 long var56
/* : Int */;
3941 val
* var57
/* : String */;
3942 static val
* varonce58
;
3943 val
* var59
/* : String */;
3944 char* var60
/* : NativeString */;
3945 long var61
/* : Int */;
3946 val
* var62
/* : String */;
3947 val
* var63
/* : Array[Object] */;
3948 long var64
/* : Int */;
3949 val
* var65
/* : NativeArray[Object] */;
3950 val
* var66
/* : String */;
3951 val
* var67
/* : AbstractCompiler */;
3952 val
* var68
/* : MModule */;
3953 val
* var69
/* : MPropDef */;
3954 val
* var_propdef
/* var propdef: MMethodDef */;
3955 val
* var70
/* : nullable RuntimeVariable */;
3956 val
* var_res2
/* var res2: nullable RuntimeVariable */;
3957 val
* var71
/* : null */;
3958 short int var72
/* : Bool */;
3959 short int var73
/* : Bool */;
3960 short int var74
/* : Bool */;
3961 val
* var75
/* : AbstractCompiler */;
3962 val
* var76
/* : ModelBuilder */;
3963 val
* var77
/* : ToolContext */;
3964 val
* var78
/* : OptionBool */;
3965 val
* var79
/* : nullable Object */;
3966 short int var80
/* : Bool */;
3967 short int var81
/* : Bool */;
3968 short int var_
/* var : Bool */;
3969 val
* var82
/* : String */;
3970 static val
* varonce83
;
3971 val
* var84
/* : String */;
3972 char* var85
/* : NativeString */;
3973 long var86
/* : Int */;
3974 val
* var87
/* : String */;
3975 short int var88
/* : Bool */;
3976 short int var_89
/* var : Bool */;
3977 val
* var90
/* : String */;
3978 static val
* varonce91
;
3979 val
* var92
/* : String */;
3980 char* var93
/* : NativeString */;
3981 long var94
/* : Int */;
3982 val
* var95
/* : String */;
3983 short int var96
/* : Bool */;
3984 short int var_consider_null
/* var consider_null: Bool */;
3985 short int var97
/* : Bool */;
3986 short int var98
/* : Bool */;
3987 val
* var99
/* : nullable Object */;
3988 val
* var100
/* : MType */;
3989 short int var101
/* : Bool */;
3992 short int var_104
/* var : Bool */;
3993 val
* var105
/* : nullable Object */;
3994 val
* var106
/* : MType */;
3995 short int var107
/* : Bool */;
3998 short int var_110
/* var : Bool */;
3999 static val
* varonce111
;
4000 val
* var112
/* : String */;
4001 char* var113
/* : NativeString */;
4002 long var114
/* : Int */;
4003 val
* var115
/* : String */;
4004 val
* var116
/* : nullable Object */;
4005 static val
* varonce117
;
4006 val
* var118
/* : String */;
4007 char* var119
/* : NativeString */;
4008 long var120
/* : Int */;
4009 val
* var121
/* : String */;
4010 val
* var122
/* : Array[Object] */;
4011 long var123
/* : Int */;
4012 val
* var124
/* : NativeArray[Object] */;
4013 val
* var125
/* : String */;
4014 val
* var126
/* : String */;
4015 static val
* varonce127
;
4016 val
* var128
/* : String */;
4017 char* var129
/* : NativeString */;
4018 long var130
/* : Int */;
4019 val
* var131
/* : String */;
4020 short int var132
/* : Bool */;
4021 val
* var133
/* : null */;
4022 short int var134
/* : Bool */;
4023 long var135
/* : Int */;
4024 val
* var136
/* : nullable Object */;
4025 val
* var137
/* : MType */;
4026 short int var138
/* : Bool */;
4029 static val
* varonce141
;
4030 val
* var142
/* : String */;
4031 char* var143
/* : NativeString */;
4032 long var144
/* : Int */;
4033 val
* var145
/* : String */;
4034 long var146
/* : Int */;
4035 val
* var147
/* : nullable Object */;
4036 static val
* varonce148
;
4037 val
* var149
/* : String */;
4038 char* var150
/* : NativeString */;
4039 long var151
/* : Int */;
4040 val
* var152
/* : String */;
4041 val
* var153
/* : Array[Object] */;
4042 long var154
/* : Int */;
4043 val
* var155
/* : NativeArray[Object] */;
4044 val
* var156
/* : String */;
4045 long var157
/* : Int */;
4046 val
* var158
/* : nullable Object */;
4047 val
* var159
/* : MType */;
4048 short int var160
/* : Bool */;
4051 static val
* varonce163
;
4052 val
* var164
/* : String */;
4053 char* var165
/* : NativeString */;
4054 long var166
/* : Int */;
4055 val
* var167
/* : String */;
4056 val
* var168
/* : Array[Object] */;
4057 long var169
/* : Int */;
4058 val
* var170
/* : NativeArray[Object] */;
4059 val
* var171
/* : String */;
4060 static val
* varonce172
;
4061 val
* var173
/* : String */;
4062 char* var174
/* : NativeString */;
4063 long var175
/* : Int */;
4064 val
* var176
/* : String */;
4065 long var177
/* : Int */;
4066 val
* var178
/* : nullable Object */;
4067 val
* var179
/* : String */;
4068 static val
* varonce180
;
4069 val
* var181
/* : String */;
4070 char* var182
/* : NativeString */;
4071 long var183
/* : Int */;
4072 val
* var184
/* : String */;
4073 val
* var185
/* : Array[Object] */;
4074 long var186
/* : Int */;
4075 val
* var187
/* : NativeArray[Object] */;
4076 val
* var188
/* : String */;
4077 val
* var189
/* : String */;
4078 static val
* varonce190
;
4079 val
* var191
/* : String */;
4080 char* var192
/* : NativeString */;
4081 long var193
/* : Int */;
4082 val
* var194
/* : String */;
4083 short int var195
/* : Bool */;
4084 val
* var196
/* : null */;
4085 short int var197
/* : Bool */;
4086 long var198
/* : Int */;
4087 val
* var199
/* : nullable Object */;
4088 val
* var200
/* : MType */;
4089 short int var201
/* : Bool */;
4092 static val
* varonce204
;
4093 val
* var205
/* : String */;
4094 char* var206
/* : NativeString */;
4095 long var207
/* : Int */;
4096 val
* var208
/* : String */;
4097 long var209
/* : Int */;
4098 val
* var210
/* : nullable Object */;
4099 static val
* varonce211
;
4100 val
* var212
/* : String */;
4101 char* var213
/* : NativeString */;
4102 long var214
/* : Int */;
4103 val
* var215
/* : String */;
4104 val
* var216
/* : Array[Object] */;
4105 long var217
/* : Int */;
4106 val
* var218
/* : NativeArray[Object] */;
4107 val
* var219
/* : String */;
4108 long var220
/* : Int */;
4109 val
* var221
/* : nullable Object */;
4110 val
* var222
/* : MType */;
4111 short int var223
/* : Bool */;
4114 static val
* varonce226
;
4115 val
* var227
/* : String */;
4116 char* var228
/* : NativeString */;
4117 long var229
/* : Int */;
4118 val
* var230
/* : String */;
4119 val
* var231
/* : Array[Object] */;
4120 long var232
/* : Int */;
4121 val
* var233
/* : NativeArray[Object] */;
4122 val
* var234
/* : String */;
4123 static val
* varonce235
;
4124 val
* var236
/* : String */;
4125 char* var237
/* : NativeString */;
4126 long var238
/* : Int */;
4127 val
* var239
/* : String */;
4128 long var240
/* : Int */;
4129 val
* var241
/* : nullable Object */;
4130 val
* var242
/* : String */;
4131 static val
* varonce243
;
4132 val
* var244
/* : String */;
4133 char* var245
/* : NativeString */;
4134 long var246
/* : Int */;
4135 val
* var247
/* : String */;
4136 val
* var248
/* : Array[Object] */;
4137 long var249
/* : Int */;
4138 val
* var250
/* : NativeArray[Object] */;
4139 val
* var251
/* : String */;
4140 static val
* varonce252
;
4141 val
* var253
/* : String */;
4142 char* var254
/* : NativeString */;
4143 long var255
/* : Int */;
4144 val
* var256
/* : String */;
4145 static val
* varonce257
;
4146 val
* var258
/* : String */;
4147 char* var259
/* : NativeString */;
4148 long var260
/* : Int */;
4149 val
* var261
/* : String */;
4150 short int var262
/* : Bool */;
4151 static val
* varonce263
;
4152 val
* var264
/* : String */;
4153 char* var265
/* : NativeString */;
4154 long var266
/* : Int */;
4155 val
* var267
/* : String */;
4156 static val
* varonce268
;
4157 val
* var269
/* : String */;
4158 char* var270
/* : NativeString */;
4159 long var271
/* : Int */;
4160 val
* var272
/* : String */;
4161 val
* var273
/* : nullable Object */;
4162 val
* var274
/* : String */;
4163 static val
* varonce275
;
4164 val
* var276
/* : String */;
4165 char* var277
/* : NativeString */;
4166 long var278
/* : Int */;
4167 val
* var279
/* : String */;
4168 static val
* varonce280
;
4169 val
* var281
/* : String */;
4170 char* var282
/* : NativeString */;
4171 long var283
/* : Int */;
4172 val
* var284
/* : String */;
4173 val
* var285
/* : Array[Object] */;
4174 long var286
/* : Int */;
4175 val
* var287
/* : NativeArray[Object] */;
4176 val
* var288
/* : String */;
4177 val
* var289
/* : nullable Object */;
4178 static val
* varonce290
;
4179 val
* var291
/* : String */;
4180 char* var292
/* : NativeString */;
4181 long var293
/* : Int */;
4182 val
* var294
/* : String */;
4183 static val
* varonce295
;
4184 val
* var296
/* : String */;
4185 char* var297
/* : NativeString */;
4186 long var298
/* : Int */;
4187 val
* var299
/* : String */;
4188 val
* var300
/* : nullable Object */;
4189 static val
* varonce301
;
4190 val
* var302
/* : String */;
4191 char* var303
/* : NativeString */;
4192 long var304
/* : Int */;
4193 val
* var305
/* : String */;
4194 val
* var306
/* : Array[Object] */;
4195 long var307
/* : Int */;
4196 val
* var308
/* : NativeArray[Object] */;
4197 val
* var309
/* : String */;
4198 val
* var310
/* : nullable Object */;
4199 val
* var_last
/* var last: MClassType */;
4200 val
* var311
/* : null */;
4201 val
* var_defaultpropdef
/* var defaultpropdef: nullable MMethodDef */;
4202 val
* var312
/* : Iterator[nullable Object] */;
4203 short int var313
/* : Bool */;
4204 val
* var314
/* : nullable Object */;
4205 val
* var_t
/* var t: MClassType */;
4206 val
* var315
/* : AbstractCompiler */;
4207 val
* var316
/* : MModule */;
4208 val
* var317
/* : MPropDef */;
4209 val
* var_propdef318
/* var propdef: MMethodDef */;
4210 short int var319
/* : Bool */;
4211 val
* var320
/* : MClassDef */;
4212 val
* var321
/* : MClass */;
4213 val
* var322
/* : String */;
4214 static val
* varonce323
;
4215 val
* var324
/* : String */;
4216 char* var325
/* : NativeString */;
4217 long var326
/* : Int */;
4218 val
* var327
/* : String */;
4219 short int var328
/* : Bool */;
4220 short int var_329
/* var : Bool */;
4221 val
* var330
/* : String */;
4222 static val
* varonce331
;
4223 val
* var332
/* : String */;
4224 char* var333
/* : NativeString */;
4225 long var334
/* : Int */;
4226 val
* var335
/* : String */;
4227 short int var336
/* : Bool */;
4228 short int var337
/* : Bool */;
4229 short int var338
/* : Bool */;
4230 val
* var339
/* : AbstractCompiler */;
4231 short int var340
/* : Bool */;
4232 short int var341
/* : Bool */;
4233 short int var_342
/* var : Bool */;
4234 short int var343
/* : Bool */;
4235 short int var_344
/* var : Bool */;
4236 val
* var345
/* : null */;
4237 short int var346
/* : Bool */;
4238 static val
* varonce347
;
4239 val
* var348
/* : String */;
4240 char* var349
/* : NativeString */;
4241 long var350
/* : Int */;
4242 val
* var351
/* : String */;
4243 static val
* varonce352
;
4244 val
* var353
/* : String */;
4245 char* var354
/* : NativeString */;
4246 long var355
/* : Int */;
4247 val
* var356
/* : String */;
4248 val
* var357
/* : Array[Object] */;
4249 long var358
/* : Int */;
4250 val
* var359
/* : NativeArray[Object] */;
4251 val
* var360
/* : String */;
4252 static val
* varonce361
;
4253 val
* var362
/* : String */;
4254 char* var363
/* : NativeString */;
4255 long var364
/* : Int */;
4256 val
* var365
/* : String */;
4257 val
* var366
/* : AbstractCompiler */;
4258 val
* var367
/* : String */;
4259 static val
* varonce368
;
4260 val
* var369
/* : String */;
4261 char* var370
/* : NativeString */;
4262 long var371
/* : Int */;
4263 val
* var372
/* : String */;
4264 static val
* varonce373
;
4265 val
* var374
/* : String */;
4266 char* var375
/* : NativeString */;
4267 long var376
/* : Int */;
4268 val
* var377
/* : String */;
4269 val
* var378
/* : Array[Object] */;
4270 long var379
/* : Int */;
4271 val
* var380
/* : NativeArray[Object] */;
4272 val
* var381
/* : String */;
4273 val
* var382
/* : nullable RuntimeVariable */;
4274 val
* var_res2383
/* var res2: nullable RuntimeVariable */;
4275 val
* var384
/* : null */;
4276 short int var385
/* : Bool */;
4277 static val
* varonce386
;
4278 val
* var387
/* : String */;
4279 char* var388
/* : NativeString */;
4280 long var389
/* : Int */;
4281 val
* var390
/* : String */;
4282 val
* var391
/* : null */;
4283 short int var392
/* : Bool */;
4284 static val
* varonce393
;
4285 val
* var394
/* : String */;
4286 char* var395
/* : NativeString */;
4287 long var396
/* : Int */;
4288 val
* var397
/* : String */;
4289 val
* var398
/* : MClassDef */;
4290 val
* var399
/* : MClassType */;
4291 val
* var400
/* : nullable RuntimeVariable */;
4292 val
* var_res2401
/* var res2: nullable RuntimeVariable */;
4293 val
* var402
/* : null */;
4294 short int var403
/* : Bool */;
4295 val
* var404
/* : AbstractCompiler */;
4296 short int var405
/* : Bool */;
4297 static val
* varonce406
;
4298 val
* var407
/* : String */;
4299 char* var408
/* : NativeString */;
4300 long var409
/* : Int */;
4301 val
* var410
/* : String */;
4302 val
* var411
/* : nullable Object */;
4303 static val
* varonce412
;
4304 val
* var413
/* : String */;
4305 char* var414
/* : NativeString */;
4306 long var415
/* : Int */;
4307 val
* var416
/* : String */;
4310 var1
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4311 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var1
) /* collect_types on <self:GlobalCompilerVisitor>*/;
4313 var3
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__intro
]))(var_m
) /* intro on <var_m:MMethod>*/;
4314 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var3
) /* msignature on <var3:MPropDef(MMethodDef)>*/;
4316 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4317 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 346);
4320 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var4
) /* return_mtype on <var4:nullable MSignature>*/;
4323 var6
= ((short int (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethod__is_new
]))(var_m
) /* is_new on <var_m:MMethod>*/;
4325 var7
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4326 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var7
) /* mtype on <var7:nullable Object(RuntimeVariable)>*/;
4328 var9
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
4332 if (var_ret
== NULL
) {
4333 var11
= 1; /* is null */
4335 var11
= 0; /* arg is null but recv is not */
4341 var13
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4342 var14
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ret
, var13
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
4344 var15
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
4353 var19
= string__NativeString__to_s_with_length(var17
, var18
);
4362 var24
= string__NativeString__to_s_with_length(var22
, var23
);
4366 var25
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4367 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_string__Object__inspect
]))(var25
) /* inspect on <var25:nullable Object(RuntimeVariable)>*/;
4373 var31
= string__NativeString__to_s_with_length(var29
, var30
);
4377 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
4378 { /* var32 = array_instance Array[Object] */
4380 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
4381 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var16
;
4382 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_m
;
4383 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var21
;
4384 ((struct instance_array__NativeArray
*)var34
)->values
[3] = (val
*) var26
;
4385 ((struct instance_array__NativeArray
*)var34
)->values
[4] = (val
*) var28
;
4386 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
4387 CHECK_NEW_array__Array(var32
);
4389 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
4390 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var35
) /* add on <self:GlobalCompilerVisitor>*/;
4391 var36
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4392 var37
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var36
) /* mtype on <var36:nullable Object(RuntimeVariable)>*/;
4393 var38
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var37
) /* ctype on <var37:MType>*/;
4399 var43
= string__NativeString__to_s_with_length(var41
, var42
);
4403 var44
= ((short int (*)(val
*, val
*))(var38
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var38
, var40
) /* != on <var38:String>*/;
4405 var45
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4406 var46
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var45
) /* mtype on <var45:nullable Object(RuntimeVariable)>*/;
4407 /* <var46:MType> isa MClassType */
4408 cltype
= type_model__MClassType
.color
;
4409 idtype
= type_model__MClassType
.id
;
4410 if(cltype
>= var46
->type
->table_size
) {
4413 var47
= var46
->type
->type_table
[cltype
] == idtype
;
4416 var_class_name
= var46
== NULL ?
"null" : var46
->type
->name
;
4417 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
4418 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 359);
4421 var_mclasstype
= var46
;
4422 var48
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4423 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var48
) /* runtime_type_analysis on <var48:AbstractCompiler(GlobalCompiler)>*/;
4424 var50
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var49
) /* live_types on <var49:RapidTypeAnalysis>*/;
4425 var51
= ((short int (*)(val
*, val
*))(var50
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var50
, var_mclasstype
) /* has on <var50:HashSet[MClassType]>*/;
4431 var55
= "/* skip, no method ";
4433 var57
= string__NativeString__to_s_with_length(var55
, var56
);
4442 var62
= string__NativeString__to_s_with_length(var60
, var61
);
4446 var63
= NEW_array__Array(&type_array__Arraykernel__Object
);
4447 { /* var63 = array_instance Array[Object] */
4449 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArraykernel__Object
);
4450 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var54
;
4451 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var_m
;
4452 ((struct instance_array__NativeArray
*)var65
)->values
[2] = (val
*) var59
;
4453 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Object]>*/;
4454 CHECK_NEW_array__Array(var63
);
4456 var66
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_string__Object__to_s
]))(var63
) /* to_s on <var63:Array[Object]>*/;
4457 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var66
) /* add on <self:GlobalCompilerVisitor>*/;
4462 var67
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4463 var68
= ((val
* (*)(val
*))(var67
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var67
) /* mainmodule on <var67:AbstractCompiler(GlobalCompiler)>*/;
4464 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>*/;
4465 var_propdef
= var69
;
4466 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>*/;
4469 if (var_res
== NULL
) {
4470 var72
= 0; /* is null */
4472 var72
= 1; /* arg is null and recv is not */
4475 if (var_res2
== NULL
) {
4476 fprintf(stderr
, "Runtime error: %s", "Cast failed");
4477 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 366);
4480 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2
) /* assign on <self:GlobalCompilerVisitor>*/;
4487 var75
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4488 var76
= ((val
* (*)(val
*))(var75
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var75
) /* modelbuilder on <var75:AbstractCompiler(GlobalCompiler)>*/;
4489 var77
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var76
) /* toolcontext on <var76:ModelBuilder>*/;
4490 var78
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_no_check_other
]))(var77
) /* opt_no_check_other on <var77:ToolContext>*/;
4491 var79
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_opts__Option__value
]))(var78
) /* value on <var78:OptionBool>*/;
4492 var80
= ((struct instance_kernel__Bool
*)var79
)->value
; /* autounbox from nullable Object to Bool */;
4498 var82
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4504 var87
= string__NativeString__to_s_with_length(var85
, var86
);
4508 var88
= ((short int (*)(val
*, val
*))(var82
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var82
, var84
) /* == on <var82:String>*/;
4515 var90
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4521 var95
= string__NativeString__to_s_with_length(var93
, var94
);
4525 var96
= ((short int (*)(val
*, val
*))(var90
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var90
, var92
) /* == on <var90:String>*/;
4528 var_consider_null
= var73
;
4529 var99
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4530 var100
= ((val
* (*)(val
*))(var99
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var99
) /* mcasttype on <var99:nullable Object(RuntimeVariable)>*/;
4531 /* <var100:MType> isa MNullableType */
4532 cltype102
= type_model__MNullableType
.color
;
4533 idtype103
= type_model__MNullableType
.id
;
4534 if(cltype102
>= var100
->type
->table_size
) {
4537 var101
= var100
->type
->type_table
[cltype102
] == idtype103
;
4543 var105
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4544 var106
= ((val
* (*)(val
*))(var105
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var105
) /* mcasttype on <var105:nullable Object(RuntimeVariable)>*/;
4545 /* <var106:MType> isa MNullType */
4546 cltype108
= type_model__MNullType
.color
;
4547 idtype109
= type_model__MNullType
.id
;
4548 if(cltype108
>= var106
->type
->table_size
) {
4551 var107
= var106
->type
->type_table
[cltype108
] == idtype109
;
4557 var97
= var_consider_null
;
4563 var112
= varonce111
;
4567 var115
= string__NativeString__to_s_with_length(var113
, var114
);
4569 varonce111
= var112
;
4571 var116
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4573 var118
= varonce117
;
4575 var119
= " == NULL) { /* Special null case */";
4577 var121
= string__NativeString__to_s_with_length(var119
, var120
);
4579 varonce117
= var118
;
4581 var122
= NEW_array__Array(&type_array__Arraykernel__Object
);
4582 { /* var122 = array_instance Array[Object] */
4584 var124
= NEW_array__NativeArray(var123
, &type_array__NativeArraykernel__Object
);
4585 ((struct instance_array__NativeArray
*)var124
)->values
[0] = (val
*) var112
;
4586 ((struct instance_array__NativeArray
*)var124
)->values
[1] = (val
*) var116
;
4587 ((struct instance_array__NativeArray
*)var124
)->values
[2] = (val
*) var118
;
4588 ((void (*)(val
*, val
*, long))(var122
->class->vft
[COLOR_array__Array__with_native
]))(var122
, var124
, var123
) /* with_native on <var122:Array[Object]>*/;
4589 CHECK_NEW_array__Array(var122
);
4591 var125
= ((val
* (*)(val
*))(var122
->class->vft
[COLOR_string__Object__to_s
]))(var122
) /* to_s on <var122:Array[Object]>*/;
4592 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var125
) /* add on <self:GlobalCompilerVisitor>*/;
4593 var126
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4595 var128
= varonce127
;
4599 var131
= string__NativeString__to_s_with_length(var129
, var130
);
4601 varonce127
= var128
;
4603 var132
= ((short int (*)(val
*, val
*))(var126
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var126
, var128
) /* == on <var126:String>*/;
4606 if (var_res
== NULL
) {
4607 var134
= 0; /* is null */
4609 var134
= 1; /* arg is null and recv is not */
4612 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4613 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 374);
4617 var136
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var135
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4618 var137
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var136
) /* mcasttype on <var136:nullable Object(RuntimeVariable)>*/;
4619 /* <var137:MType> isa MNullableType */
4620 cltype139
= type_model__MNullableType
.color
;
4621 idtype140
= type_model__MNullableType
.id
;
4622 if(cltype139
>= var137
->type
->table_size
) {
4625 var138
= var137
->type
->type_table
[cltype139
] == idtype140
;
4629 var142
= varonce141
;
4633 var145
= string__NativeString__to_s_with_length(var143
, var144
);
4635 varonce141
= var142
;
4638 var147
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var146
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4640 var149
= varonce148
;
4642 var150
= " == NULL);";
4644 var152
= string__NativeString__to_s_with_length(var150
, var151
);
4646 varonce148
= var149
;
4648 var153
= NEW_array__Array(&type_array__Arraykernel__Object
);
4649 { /* var153 = array_instance Array[Object] */
4651 var155
= NEW_array__NativeArray(var154
, &type_array__NativeArraykernel__Object
);
4652 ((struct instance_array__NativeArray
*)var155
)->values
[0] = (val
*) var_res
;
4653 ((struct instance_array__NativeArray
*)var155
)->values
[1] = (val
*) var142
;
4654 ((struct instance_array__NativeArray
*)var155
)->values
[2] = (val
*) var147
;
4655 ((struct instance_array__NativeArray
*)var155
)->values
[3] = (val
*) var149
;
4656 ((void (*)(val
*, val
*, long))(var153
->class->vft
[COLOR_array__Array__with_native
]))(var153
, var155
, var154
) /* with_native on <var153:Array[Object]>*/;
4657 CHECK_NEW_array__Array(var153
);
4659 var156
= ((val
* (*)(val
*))(var153
->class->vft
[COLOR_string__Object__to_s
]))(var153
) /* to_s on <var153:Array[Object]>*/;
4660 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var156
) /* add on <self:GlobalCompilerVisitor>*/;
4663 var158
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var157
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4664 var159
= ((val
* (*)(val
*))(var158
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var158
) /* mcasttype on <var158:nullable Object(RuntimeVariable)>*/;
4665 /* <var159:MType> isa MNullType */
4666 cltype161
= type_model__MNullType
.color
;
4667 idtype162
= type_model__MNullType
.id
;
4668 if(cltype161
>= var159
->type
->table_size
) {
4671 var160
= var159
->type
->type_table
[cltype161
] == idtype162
;
4675 var164
= varonce163
;
4677 var165
= " = 1; /* is null */";
4679 var167
= string__NativeString__to_s_with_length(var165
, var166
);
4681 varonce163
= var164
;
4683 var168
= NEW_array__Array(&type_array__Arraykernel__Object
);
4684 { /* var168 = array_instance Array[Object] */
4686 var170
= NEW_array__NativeArray(var169
, &type_array__NativeArraykernel__Object
);
4687 ((struct instance_array__NativeArray
*)var170
)->values
[0] = (val
*) var_res
;
4688 ((struct instance_array__NativeArray
*)var170
)->values
[1] = (val
*) var164
;
4689 ((void (*)(val
*, val
*, long))(var168
->class->vft
[COLOR_array__Array__with_native
]))(var168
, var170
, var169
) /* with_native on <var168:Array[Object]>*/;
4690 CHECK_NEW_array__Array(var168
);
4692 var171
= ((val
* (*)(val
*))(var168
->class->vft
[COLOR_string__Object__to_s
]))(var168
) /* to_s on <var168:Array[Object]>*/;
4693 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
4696 var173
= varonce172
;
4698 var174
= " = 0; /* ";
4700 var176
= string__NativeString__to_s_with_length(var174
, var175
);
4702 varonce172
= var173
;
4705 var178
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var177
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4706 var179
= ((val
* (*)(val
*))(var178
->class->vft
[COLOR_string__Object__inspect
]))(var178
) /* inspect on <var178:nullable Object(RuntimeVariable)>*/;
4708 var181
= varonce180
;
4710 var182
= " cannot be null */";
4712 var184
= string__NativeString__to_s_with_length(var182
, var183
);
4714 varonce180
= var181
;
4716 var185
= NEW_array__Array(&type_array__Arraykernel__Object
);
4717 { /* var185 = array_instance Array[Object] */
4719 var187
= NEW_array__NativeArray(var186
, &type_array__NativeArraykernel__Object
);
4720 ((struct instance_array__NativeArray
*)var187
)->values
[0] = (val
*) var_res
;
4721 ((struct instance_array__NativeArray
*)var187
)->values
[1] = (val
*) var173
;
4722 ((struct instance_array__NativeArray
*)var187
)->values
[2] = (val
*) var179
;
4723 ((struct instance_array__NativeArray
*)var187
)->values
[3] = (val
*) var181
;
4724 ((void (*)(val
*, val
*, long))(var185
->class->vft
[COLOR_array__Array__with_native
]))(var185
, var187
, var186
) /* with_native on <var185:Array[Object]>*/;
4725 CHECK_NEW_array__Array(var185
);
4727 var188
= ((val
* (*)(val
*))(var185
->class->vft
[COLOR_string__Object__to_s
]))(var185
) /* to_s on <var185:Array[Object]>*/;
4728 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var188
) /* add on <self:GlobalCompilerVisitor>*/;
4732 var189
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4734 var191
= varonce190
;
4738 var194
= string__NativeString__to_s_with_length(var192
, var193
);
4740 varonce190
= var191
;
4742 var195
= ((short int (*)(val
*, val
*))(var189
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var189
, var191
) /* == on <var189:String>*/;
4745 if (var_res
== NULL
) {
4746 var197
= 0; /* is null */
4748 var197
= 1; /* arg is null and recv is not */
4751 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4752 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 383);
4756 var199
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var198
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4757 var200
= ((val
* (*)(val
*))(var199
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var199
) /* mcasttype on <var199:nullable Object(RuntimeVariable)>*/;
4758 /* <var200:MType> isa MNullableType */
4759 cltype202
= type_model__MNullableType
.color
;
4760 idtype203
= type_model__MNullableType
.id
;
4761 if(cltype202
>= var200
->type
->table_size
) {
4764 var201
= var200
->type
->type_table
[cltype202
] == idtype203
;
4768 var205
= varonce204
;
4772 var208
= string__NativeString__to_s_with_length(var206
, var207
);
4774 varonce204
= var205
;
4777 var210
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var209
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4779 var212
= varonce211
;
4781 var213
= " != NULL);";
4783 var215
= string__NativeString__to_s_with_length(var213
, var214
);
4785 varonce211
= var212
;
4787 var216
= NEW_array__Array(&type_array__Arraykernel__Object
);
4788 { /* var216 = array_instance Array[Object] */
4790 var218
= NEW_array__NativeArray(var217
, &type_array__NativeArraykernel__Object
);
4791 ((struct instance_array__NativeArray
*)var218
)->values
[0] = (val
*) var_res
;
4792 ((struct instance_array__NativeArray
*)var218
)->values
[1] = (val
*) var205
;
4793 ((struct instance_array__NativeArray
*)var218
)->values
[2] = (val
*) var210
;
4794 ((struct instance_array__NativeArray
*)var218
)->values
[3] = (val
*) var212
;
4795 ((void (*)(val
*, val
*, long))(var216
->class->vft
[COLOR_array__Array__with_native
]))(var216
, var218
, var217
) /* with_native on <var216:Array[Object]>*/;
4796 CHECK_NEW_array__Array(var216
);
4798 var219
= ((val
* (*)(val
*))(var216
->class->vft
[COLOR_string__Object__to_s
]))(var216
) /* to_s on <var216:Array[Object]>*/;
4799 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var219
) /* add on <self:GlobalCompilerVisitor>*/;
4802 var221
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var220
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4803 var222
= ((val
* (*)(val
*))(var221
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var221
) /* mcasttype on <var221:nullable Object(RuntimeVariable)>*/;
4804 /* <var222:MType> isa MNullType */
4805 cltype224
= type_model__MNullType
.color
;
4806 idtype225
= type_model__MNullType
.id
;
4807 if(cltype224
>= var222
->type
->table_size
) {
4810 var223
= var222
->type
->type_table
[cltype224
] == idtype225
;
4814 var227
= varonce226
;
4816 var228
= " = 0; /* is null */";
4818 var230
= string__NativeString__to_s_with_length(var228
, var229
);
4820 varonce226
= var227
;
4822 var231
= NEW_array__Array(&type_array__Arraykernel__Object
);
4823 { /* var231 = array_instance Array[Object] */
4825 var233
= NEW_array__NativeArray(var232
, &type_array__NativeArraykernel__Object
);
4826 ((struct instance_array__NativeArray
*)var233
)->values
[0] = (val
*) var_res
;
4827 ((struct instance_array__NativeArray
*)var233
)->values
[1] = (val
*) var227
;
4828 ((void (*)(val
*, val
*, long))(var231
->class->vft
[COLOR_array__Array__with_native
]))(var231
, var233
, var232
) /* with_native on <var231:Array[Object]>*/;
4829 CHECK_NEW_array__Array(var231
);
4831 var234
= ((val
* (*)(val
*))(var231
->class->vft
[COLOR_string__Object__to_s
]))(var231
) /* to_s on <var231:Array[Object]>*/;
4832 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var234
) /* add on <self:GlobalCompilerVisitor>*/;
4835 var236
= varonce235
;
4837 var237
= " = 1; /* ";
4839 var239
= string__NativeString__to_s_with_length(var237
, var238
);
4841 varonce235
= var236
;
4844 var241
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var240
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4845 var242
= ((val
* (*)(val
*))(var241
->class->vft
[COLOR_string__Object__inspect
]))(var241
) /* inspect on <var241:nullable Object(RuntimeVariable)>*/;
4847 var244
= varonce243
;
4849 var245
= " cannot be null */";
4851 var247
= string__NativeString__to_s_with_length(var245
, var246
);
4853 varonce243
= var244
;
4855 var248
= NEW_array__Array(&type_array__Arraykernel__Object
);
4856 { /* var248 = array_instance Array[Object] */
4858 var250
= NEW_array__NativeArray(var249
, &type_array__NativeArraykernel__Object
);
4859 ((struct instance_array__NativeArray
*)var250
)->values
[0] = (val
*) var_res
;
4860 ((struct instance_array__NativeArray
*)var250
)->values
[1] = (val
*) var236
;
4861 ((struct instance_array__NativeArray
*)var250
)->values
[2] = (val
*) var242
;
4862 ((struct instance_array__NativeArray
*)var250
)->values
[3] = (val
*) var244
;
4863 ((void (*)(val
*, val
*, long))(var248
->class->vft
[COLOR_array__Array__with_native
]))(var248
, var250
, var249
) /* with_native on <var248:Array[Object]>*/;
4864 CHECK_NEW_array__Array(var248
);
4866 var251
= ((val
* (*)(val
*))(var248
->class->vft
[COLOR_string__Object__to_s
]))(var248
) /* to_s on <var248:Array[Object]>*/;
4867 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var251
) /* add on <self:GlobalCompilerVisitor>*/;
4872 var253
= varonce252
;
4874 var254
= "Reciever is null";
4876 var256
= string__NativeString__to_s_with_length(var254
, var255
);
4878 varonce252
= var253
;
4880 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(self
, var253
) /* add_abort on <self:GlobalCompilerVisitor>*/;
4884 var258
= varonce257
;
4888 var261
= string__NativeString__to_s_with_length(var259
, var260
);
4890 varonce257
= var258
;
4892 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var258
) /* add on <self:GlobalCompilerVisitor>*/;
4895 var262
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
4898 var264
= varonce263
;
4902 var267
= string__NativeString__to_s_with_length(var265
, var266
);
4904 varonce263
= var264
;
4906 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var264
) /* add on <self:GlobalCompilerVisitor>*/;
4908 var269
= varonce268
;
4910 var270
= "/*BUG: no live types for ";
4912 var272
= string__NativeString__to_s_with_length(var270
, var271
);
4914 varonce268
= var269
;
4916 var273
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4917 var274
= ((val
* (*)(val
*))(var273
->class->vft
[COLOR_string__Object__inspect
]))(var273
) /* inspect on <var273:nullable Object(RuntimeVariable)>*/;
4919 var276
= varonce275
;
4923 var279
= string__NativeString__to_s_with_length(var277
, var278
);
4925 varonce275
= var276
;
4928 var281
= varonce280
;
4932 var284
= string__NativeString__to_s_with_length(var282
, var283
);
4934 varonce280
= var281
;
4936 var285
= NEW_array__Array(&type_array__Arraykernel__Object
);
4937 { /* var285 = array_instance Array[Object] */
4939 var287
= NEW_array__NativeArray(var286
, &type_array__NativeArraykernel__Object
);
4940 ((struct instance_array__NativeArray
*)var287
)->values
[0] = (val
*) var269
;
4941 ((struct instance_array__NativeArray
*)var287
)->values
[1] = (val
*) var274
;
4942 ((struct instance_array__NativeArray
*)var287
)->values
[2] = (val
*) var276
;
4943 ((struct instance_array__NativeArray
*)var287
)->values
[3] = (val
*) var_m
;
4944 ((struct instance_array__NativeArray
*)var287
)->values
[4] = (val
*) var281
;
4945 ((void (*)(val
*, val
*, long))(var285
->class->vft
[COLOR_array__Array__with_native
]))(var285
, var287
, var286
) /* with_native on <var285:Array[Object]>*/;
4946 CHECK_NEW_array__Array(var285
);
4948 var288
= ((val
* (*)(val
*))(var285
->class->vft
[COLOR_string__Object__to_s
]))(var285
) /* to_s on <var285:Array[Object]>*/;
4949 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var288
) /* add on <self:GlobalCompilerVisitor>*/;
4950 var289
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4951 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var289
) /* bugtype on <self:GlobalCompilerVisitor>*/;
4953 var291
= varonce290
;
4957 var294
= string__NativeString__to_s_with_length(var292
, var293
);
4959 varonce290
= var291
;
4961 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var291
) /* add on <self:GlobalCompilerVisitor>*/;
4967 var296
= varonce295
;
4971 var299
= string__NativeString__to_s_with_length(var297
, var298
);
4973 varonce295
= var296
;
4975 var300
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4977 var302
= varonce301
;
4979 var303
= "->classid) {";
4981 var305
= string__NativeString__to_s_with_length(var303
, var304
);
4983 varonce301
= var302
;
4985 var306
= NEW_array__Array(&type_array__Arraykernel__Object
);
4986 { /* var306 = array_instance Array[Object] */
4988 var308
= NEW_array__NativeArray(var307
, &type_array__NativeArraykernel__Object
);
4989 ((struct instance_array__NativeArray
*)var308
)->values
[0] = (val
*) var296
;
4990 ((struct instance_array__NativeArray
*)var308
)->values
[1] = (val
*) var300
;
4991 ((struct instance_array__NativeArray
*)var308
)->values
[2] = (val
*) var302
;
4992 ((void (*)(val
*, val
*, long))(var306
->class->vft
[COLOR_array__Array__with_native
]))(var306
, var308
, var307
) /* with_native on <var306:Array[Object]>*/;
4993 CHECK_NEW_array__Array(var306
);
4995 var309
= ((val
* (*)(val
*))(var306
->class->vft
[COLOR_string__Object__to_s
]))(var306
) /* to_s on <var306:Array[Object]>*/;
4996 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var309
) /* add on <self:GlobalCompilerVisitor>*/;
4997 var310
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
5000 var_defaultpropdef
= var311
;
5001 var312
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
5003 var313
= ((short int (*)(val
*))(var312
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var312
) /* is_ok on <var312:Iterator[nullable Object]>*/;
5005 var314
= ((val
* (*)(val
*))(var312
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var312
) /* item on <var312:Iterator[nullable Object]>*/;
5007 var315
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5008 var316
= ((val
* (*)(val
*))(var315
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var315
) /* mainmodule on <var315:AbstractCompiler(GlobalCompiler)>*/;
5009 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>*/;
5010 var_propdef318
= var317
;
5011 var320
= ((val
* (*)(val
*))(var_propdef318
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_propdef318
) /* mclassdef on <var_propdef318:MMethodDef>*/;
5012 var321
= ((val
* (*)(val
*))(var320
->class->vft
[COLOR_model__MClassDef__mclass
]))(var320
) /* mclass on <var320:MClassDef>*/;
5013 var322
= ((val
* (*)(val
*))(var321
->class->vft
[COLOR_model__MClass__name
]))(var321
) /* name on <var321:MClass>*/;
5015 var324
= varonce323
;
5019 var327
= string__NativeString__to_s_with_length(var325
, var326
);
5021 varonce323
= var324
;
5023 var328
= ((short int (*)(val
*, val
*))(var322
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var322
, var324
) /* == on <var322:String>*/;
5026 var330
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t
) /* ctype on <var_t:MClassType>*/;
5028 var332
= varonce331
;
5032 var335
= string__NativeString__to_s_with_length(var333
, var334
);
5034 varonce331
= var332
;
5036 var336
= ((short int (*)(val
*, val
*))(var330
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var330
, var332
) /* == on <var330:String>*/;
5042 var_defaultpropdef
= var_propdef318
;
5043 goto CONTINUE_label
;
5046 var339
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5047 var340
= ((short int (*)(val
*))(var339
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var339
) /* hardening on <var339:AbstractCompiler(GlobalCompiler)>*/;
5051 var343
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
5059 if (var_defaultpropdef
== NULL
) {
5060 var346
= 1; /* is null */
5062 var346
= 0; /* arg is null but recv is not */
5070 var348
= varonce347
;
5072 var349
= "default: /* test ";
5074 var351
= string__NativeString__to_s_with_length(var349
, var350
);
5076 varonce347
= var348
;
5079 var353
= varonce352
;
5083 var356
= string__NativeString__to_s_with_length(var354
, var355
);
5085 varonce352
= var353
;
5087 var357
= NEW_array__Array(&type_array__Arraykernel__Object
);
5088 { /* var357 = array_instance Array[Object] */
5090 var359
= NEW_array__NativeArray(var358
, &type_array__NativeArraykernel__Object
);
5091 ((struct instance_array__NativeArray
*)var359
)->values
[0] = (val
*) var348
;
5092 ((struct instance_array__NativeArray
*)var359
)->values
[1] = (val
*) var_t
;
5093 ((struct instance_array__NativeArray
*)var359
)->values
[2] = (val
*) var353
;
5094 ((void (*)(val
*, val
*, long))(var357
->class->vft
[COLOR_array__Array__with_native
]))(var357
, var359
, var358
) /* with_native on <var357:Array[Object]>*/;
5095 CHECK_NEW_array__Array(var357
);
5097 var360
= ((val
* (*)(val
*))(var357
->class->vft
[COLOR_string__Object__to_s
]))(var357
) /* to_s on <var357:Array[Object]>*/;
5098 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var360
) /* add on <self:GlobalCompilerVisitor>*/;
5101 var362
= varonce361
;
5105 var365
= string__NativeString__to_s_with_length(var363
, var364
);
5107 varonce361
= var362
;
5109 var366
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5110 var367
= ((val
* (*)(val
*, val
*))(var366
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var366
, var_t
) /* classid on <var366:AbstractCompiler(GlobalCompiler)>*/;
5112 var369
= varonce368
;
5114 var370
= ": /* test ";
5116 var372
= string__NativeString__to_s_with_length(var370
, var371
);
5118 varonce368
= var369
;
5121 var374
= varonce373
;
5125 var377
= string__NativeString__to_s_with_length(var375
, var376
);
5127 varonce373
= var374
;
5129 var378
= NEW_array__Array(&type_array__Arraykernel__Object
);
5130 { /* var378 = array_instance Array[Object] */
5132 var380
= NEW_array__NativeArray(var379
, &type_array__NativeArraykernel__Object
);
5133 ((struct instance_array__NativeArray
*)var380
)->values
[0] = (val
*) var362
;
5134 ((struct instance_array__NativeArray
*)var380
)->values
[1] = (val
*) var367
;
5135 ((struct instance_array__NativeArray
*)var380
)->values
[2] = (val
*) var369
;
5136 ((struct instance_array__NativeArray
*)var380
)->values
[3] = (val
*) var_t
;
5137 ((struct instance_array__NativeArray
*)var380
)->values
[4] = (val
*) var374
;
5138 ((void (*)(val
*, val
*, long))(var378
->class->vft
[COLOR_array__Array__with_native
]))(var378
, var380
, var379
) /* with_native on <var378:Array[Object]>*/;
5139 CHECK_NEW_array__Array(var378
);
5141 var381
= ((val
* (*)(val
*))(var378
->class->vft
[COLOR_string__Object__to_s
]))(var378
) /* to_s on <var378:Array[Object]>*/;
5142 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var381
) /* add on <self:GlobalCompilerVisitor>*/;
5144 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>*/;
5145 var_res2383
= var382
;
5147 if (var_res
== NULL
) {
5148 var385
= 0; /* is null */
5150 var385
= 1; /* arg is null and recv is not */
5153 if (var_res2383
== NULL
) {
5154 fprintf(stderr
, "Runtime error: %s", "Cast failed");
5155 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 419);
5158 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2383
) /* assign on <self:GlobalCompilerVisitor>*/;
5162 var387
= varonce386
;
5166 var390
= string__NativeString__to_s_with_length(var388
, var389
);
5168 varonce386
= var387
;
5170 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var387
) /* add on <self:GlobalCompilerVisitor>*/;
5171 CONTINUE_label
: (void)0;
5172 ((void (*)(val
*))(var312
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var312
) /* next on <var312:Iterator[nullable Object]>*/;
5174 BREAK_label
: (void)0;
5176 if (var_defaultpropdef
== NULL
) {
5177 var392
= 0; /* is null */
5179 var392
= 1; /* arg is null and recv is not */
5183 var394
= varonce393
;
5185 var395
= "default: /* default is Object */";
5187 var397
= string__NativeString__to_s_with_length(var395
, var396
);
5189 varonce393
= var394
;
5191 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var394
) /* add on <self:GlobalCompilerVisitor>*/;
5192 var398
= ((val
* (*)(val
*))(var_defaultpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_defaultpropdef
) /* mclassdef on <var_defaultpropdef:nullable MMethodDef(MMethodDef)>*/;
5193 var399
= ((val
* (*)(val
*))(var398
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var398
) /* bound_mtype on <var398:MClassDef>*/;
5194 var400
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__call
]))(self
, var_defaultpropdef
, var399
, var_args
) /* call on <self:GlobalCompilerVisitor>*/;
5195 var_res2401
= var400
;
5197 if (var_res
== NULL
) {
5198 var403
= 0; /* is null */
5200 var403
= 1; /* arg is null and recv is not */
5203 if (var_res2401
== NULL
) {
5204 fprintf(stderr
, "Runtime error: %s", "Cast failed");
5205 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 425);
5208 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2401
) /* assign on <self:GlobalCompilerVisitor>*/;
5212 var404
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5213 var405
= ((short int (*)(val
*))(var404
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var404
) /* hardening on <var404:AbstractCompiler(GlobalCompiler)>*/;
5216 var407
= varonce406
;
5218 var408
= "default: /* bug */";
5220 var410
= string__NativeString__to_s_with_length(var408
, var409
);
5222 varonce406
= var407
;
5224 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var407
) /* add on <self:GlobalCompilerVisitor>*/;
5225 var411
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5226 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var411
) /* bugtype on <self:GlobalCompilerVisitor>*/;
5231 var413
= varonce412
;
5235 var416
= string__NativeString__to_s_with_length(var414
, var415
);
5237 varonce412
= var413
;
5239 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var413
) /* add on <self:GlobalCompilerVisitor>*/;
5245 /* method global_compiler#GlobalCompilerVisitor#send for (self: Object, MMethod, Array[RuntimeVariable]): nullable RuntimeVariable */
5246 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__send(val
* self
, val
* p0
, val
* p1
) {
5247 val
* var
/* : nullable RuntimeVariable */;
5248 val
* var1
/* : nullable RuntimeVariable */;
5249 var1
= global_compiler__GlobalCompilerVisitor__send(self
, p0
, p1
);
5254 /* method global_compiler#GlobalCompilerVisitor#check_valid_reciever for (self: GlobalCompilerVisitor, MClassType) */
5255 void global_compiler__GlobalCompilerVisitor__check_valid_reciever(val
* self
, val
* p0
) {
5256 val
* var_recvtype
/* var recvtype: MClassType */;
5257 short int var
/* : Bool */;
5258 val
* var1
/* : AbstractCompiler */;
5259 val
* var2
/* : RapidTypeAnalysis */;
5260 val
* var3
/* : HashSet[MClassType] */;
5261 short int var4
/* : Bool */;
5262 short int var_
/* var : Bool */;
5263 val
* var5
/* : MClass */;
5264 val
* var6
/* : String */;
5265 static val
* varonce
;
5266 val
* var7
/* : String */;
5267 char* var8
/* : NativeString */;
5268 long var9
/* : Int */;
5269 val
* var10
/* : String */;
5270 short int var11
/* : Bool */;
5271 static val
* varonce12
;
5272 val
* var13
/* : String */;
5273 char* var14
/* : NativeString */;
5274 long var15
/* : Int */;
5275 val
* var16
/* : String */;
5276 val
* var17
/* : Array[Object] */;
5277 long var18
/* : Int */;
5278 val
* var19
/* : NativeArray[Object] */;
5279 val
* var20
/* : String */;
5281 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5282 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var1
) /* runtime_type_analysis on <var1:AbstractCompiler(GlobalCompiler)>*/;
5283 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var2
) /* live_types on <var2:RapidTypeAnalysis>*/;
5284 var4
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var3
, var_recvtype
) /* has on <var3:HashSet[MClassType]>*/;
5289 var5
= ((val
* (*)(val
*))(var_recvtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_recvtype
) /* mclass on <var_recvtype:MClassType>*/;
5290 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClass__name
]))(var5
) /* name on <var5:MClass>*/;
5296 var10
= string__NativeString__to_s_with_length(var8
, var9
);
5300 var11
= ((short int (*)(val
*, val
*))(var6
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var6
, var7
) /* == on <var6:String>*/;
5310 var14
= " is not a live type";
5312 var16
= string__NativeString__to_s_with_length(var14
, var15
);
5316 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
5317 { /* var17 = array_instance Array[Object] */
5319 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
5320 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var_recvtype
;
5321 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var13
;
5322 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
5323 CHECK_NEW_array__Array(var17
);
5325 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
5326 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var20
) /* print on <self:GlobalCompilerVisitor>*/;
5327 fprintf(stderr
, "Runtime error: %s", "Aborted");
5328 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 438);
5332 /* method global_compiler#GlobalCompilerVisitor#check_valid_reciever for (self: Object, MClassType) */
5333 void VIRTUAL_global_compiler__GlobalCompilerVisitor__check_valid_reciever(val
* self
, val
* p0
) {
5334 global_compiler__GlobalCompilerVisitor__check_valid_reciever(self
, p0
);
5337 /* method global_compiler#GlobalCompilerVisitor#get_recvtype for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): MClassType */
5338 val
* global_compiler__GlobalCompilerVisitor__get_recvtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5339 val
* var
/* : MClassType */;
5340 val
* var_m
/* var m: MMethodDef */;
5341 val
* var_recvtype
/* var recvtype: MClassType */;
5342 val
* var_args
/* var args: Array[RuntimeVariable] */;
5343 short int var1
/* : Bool */;
5344 val
* var2
/* : MClassDef */;
5345 val
* var3
/* : MClass */;
5346 val
* var4
/* : String */;
5347 static val
* varonce
;
5348 val
* var5
/* : String */;
5349 char* var6
/* : NativeString */;
5350 long var7
/* : Int */;
5351 val
* var8
/* : String */;
5352 short int var9
/* : Bool */;
5353 short int var_
/* var : Bool */;
5354 val
* var10
/* : String */;
5355 static val
* varonce11
;
5356 val
* var12
/* : String */;
5357 char* var13
/* : NativeString */;
5358 long var14
/* : Int */;
5359 val
* var15
/* : String */;
5360 short int var16
/* : Bool */;
5361 val
* var17
/* : MClassDef */;
5362 val
* var18
/* : MClassType */;
5366 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__check_valid_reciever
]))(self
, var_recvtype
) /* check_valid_reciever on <self:GlobalCompilerVisitor>*/;
5367 var2
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
5368 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mclass
]))(var2
) /* mclass on <var2:MClassDef>*/;
5369 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MClass__name
]))(var3
) /* name on <var3:MClass>*/;
5375 var8
= string__NativeString__to_s_with_length(var6
, var7
);
5379 var9
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var4
, var5
) /* == on <var4:String>*/;
5382 var10
= ((val
* (*)(val
*))(var_recvtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_recvtype
) /* ctype on <var_recvtype:MClassType>*/;
5388 var15
= string__NativeString__to_s_with_length(var13
, var14
);
5392 var16
= ((short int (*)(val
*, val
*))(var10
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var10
, var12
) /* == on <var10:String>*/;
5398 var17
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
5399 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var17
) /* bound_mtype on <var17:MClassDef>*/;
5400 var_recvtype
= var18
;
5408 /* method global_compiler#GlobalCompilerVisitor#get_recvtype for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): MClassType */
5409 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__get_recvtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5410 val
* var
/* : MClassType */;
5411 val
* var1
/* : MClassType */;
5412 var1
= global_compiler__GlobalCompilerVisitor__get_recvtype(self
, p0
, p1
, p2
);
5417 /* method global_compiler#GlobalCompilerVisitor#get_recv for (self: GlobalCompilerVisitor, MClassType, Array[RuntimeVariable]): RuntimeVariable */
5418 val
* global_compiler__GlobalCompilerVisitor__get_recv(val
* self
, val
* p0
, val
* p1
) {
5419 val
* var
/* : RuntimeVariable */;
5420 val
* var_recvtype
/* var recvtype: MClassType */;
5421 val
* var_args
/* var args: Array[RuntimeVariable] */;
5422 val
* var1
/* : nullable Object */;
5423 val
* var2
/* : RuntimeVariable */;
5424 val
* var3
/* : RuntimeVariable */;
5427 var1
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5428 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var1
, var_recvtype
) /* autobox on <self:GlobalCompilerVisitor>*/;
5429 var3
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var2
, var_recvtype
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
5435 /* method global_compiler#GlobalCompilerVisitor#get_recv for (self: Object, MClassType, Array[RuntimeVariable]): RuntimeVariable */
5436 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__get_recv(val
* self
, val
* p0
, val
* p1
) {
5437 val
* var
/* : RuntimeVariable */;
5438 val
* var1
/* : RuntimeVariable */;
5439 var1
= global_compiler__GlobalCompilerVisitor__get_recv(self
, p0
, p1
);
5444 /* method global_compiler#GlobalCompilerVisitor#finalize_call for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5445 val
* global_compiler__GlobalCompilerVisitor__finalize_call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5446 val
* var
/* : nullable RuntimeVariable */;
5447 val
* var_m
/* var m: MMethodDef */;
5448 val
* var_recvtype
/* var recvtype: MClassType */;
5449 val
* var_args
/* var args: Array[RuntimeVariable] */;
5450 long var1
/* : Int */;
5451 val
* var2
/* : nullable MSignature */;
5452 long var3
/* : Int */;
5453 long var4
/* : Int */;
5454 long var5
/* : Int */;
5455 long var7
/* : Int */;
5456 short int var8
/* : Bool */;
5457 short int var10
/* : Bool */;
5458 short int var11
/* : Bool */;
5459 static val
* varonce
;
5460 val
* var12
/* : String */;
5461 char* var13
/* : NativeString */;
5462 long var14
/* : Int */;
5463 val
* var15
/* : String */;
5464 static val
* varonce16
;
5465 val
* var17
/* : String */;
5466 char* var18
/* : NativeString */;
5467 long var19
/* : Int */;
5468 val
* var20
/* : String */;
5469 long var21
/* : Int */;
5470 static val
* varonce22
;
5471 val
* var23
/* : String */;
5472 char* var24
/* : NativeString */;
5473 long var25
/* : Int */;
5474 val
* var26
/* : String */;
5475 val
* var27
/* : Array[Object] */;
5476 long var28
/* : Int */;
5477 val
* var29
/* : NativeArray[Object] */;
5478 val
* var30
/* : Object */;
5479 val
* var31
/* : String */;
5480 static val
* varonce32
;
5481 val
* var33
/* : String */;
5482 char* var34
/* : NativeString */;
5483 long var35
/* : Int */;
5484 val
* var36
/* : String */;
5485 static val
* varonce37
;
5486 val
* var38
/* : String */;
5487 char* var39
/* : NativeString */;
5488 long var40
/* : Int */;
5489 val
* var41
/* : String */;
5490 long var42
/* : Int */;
5491 static val
* varonce43
;
5492 val
* var44
/* : String */;
5493 char* var45
/* : NativeString */;
5494 long var46
/* : Int */;
5495 val
* var47
/* : String */;
5496 val
* var48
/* : Array[Object] */;
5497 long var49
/* : Int */;
5498 val
* var50
/* : NativeArray[Object] */;
5499 val
* var51
/* : Object */;
5500 val
* var52
/* : String */;
5501 val
* var53
/* : null */;
5502 val
* var54
/* : CustomizedRuntimeFunction */;
5503 val
* var_rm
/* var rm: CustomizedRuntimeFunction */;
5504 val
* var55
/* : nullable RuntimeVariable */;
5508 var1
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[RuntimeVariable]>*/;
5509 var2
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
5511 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5512 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 464);
5515 var3
= ((long (*)(val
*))(var2
->class->vft
[COLOR_model__MSignature__arity
]))(var2
) /* arity on <var2:nullable MSignature>*/;
5518 { /* Inline kernel#Int#+ (var3,var4) */
5524 { /* Inline kernel#Int#!= (var1,var5) */
5525 var10
= var1
== var5
;
5535 var13
= "printf(\"NOT YET IMPLEMENTED: Invalid arity for ";
5537 var15
= string__NativeString__to_s_with_length(var13
, var14
);
5546 var20
= string__NativeString__to_s_with_length(var18
, var19
);
5550 var21
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[RuntimeVariable]>*/;
5554 var24
= " arguments given.\\n\"); exit(1);";
5556 var26
= string__NativeString__to_s_with_length(var24
, var25
);
5560 var27
= NEW_array__Array(&type_array__Arraykernel__Object
);
5561 { /* var27 = array_instance Array[Object] */
5563 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraykernel__Object
);
5564 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var12
;
5565 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var_m
;
5566 ((struct instance_array__NativeArray
*)var29
)->values
[2] = (val
*) var17
;
5567 var30
= BOX_kernel__Int(var21
); /* autobox from Int to Object */
5568 ((struct instance_array__NativeArray
*)var29
)->values
[3] = (val
*) var30
;
5569 ((struct instance_array__NativeArray
*)var29
)->values
[4] = (val
*) var23
;
5570 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
5571 CHECK_NEW_array__Array(var27
);
5573 var31
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
5574 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var31
) /* add on <self:GlobalCompilerVisitor>*/;
5578 var34
= "NOT YET IMPLEMENTED: Invalid arity for ";
5580 var36
= string__NativeString__to_s_with_length(var34
, var35
);
5589 var41
= string__NativeString__to_s_with_length(var39
, var40
);
5593 var42
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[RuntimeVariable]>*/;
5597 var45
= " arguments given.";
5599 var47
= string__NativeString__to_s_with_length(var45
, var46
);
5603 var48
= NEW_array__Array(&type_array__Arraykernel__Object
);
5604 { /* var48 = array_instance Array[Object] */
5606 var50
= NEW_array__NativeArray(var49
, &type_array__NativeArraykernel__Object
);
5607 ((struct instance_array__NativeArray
*)var50
)->values
[0] = (val
*) var33
;
5608 ((struct instance_array__NativeArray
*)var50
)->values
[1] = (val
*) var_m
;
5609 ((struct instance_array__NativeArray
*)var50
)->values
[2] = (val
*) var38
;
5610 var51
= BOX_kernel__Int(var42
); /* autobox from Int to Object */
5611 ((struct instance_array__NativeArray
*)var50
)->values
[3] = (val
*) var51
;
5612 ((struct instance_array__NativeArray
*)var50
)->values
[4] = (val
*) var44
;
5613 ((void (*)(val
*, val
*, long))(var48
->class->vft
[COLOR_array__Array__with_native
]))(var48
, var50
, var49
) /* with_native on <var48:Array[Object]>*/;
5614 CHECK_NEW_array__Array(var48
);
5616 var52
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_string__Object__to_s
]))(var48
) /* to_s on <var48:Array[Object]>*/;
5617 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__debug
]))(self
, var52
) /* debug on <self:GlobalCompilerVisitor>*/;
5623 var54
= NEW_global_compiler__CustomizedRuntimeFunction(&type_global_compiler__CustomizedRuntimeFunction
);
5624 ((void (*)(val
*, val
*, val
*))(var54
->class->vft
[COLOR_global_compiler__CustomizedRuntimeFunction__init
]))(var54
, var_m
, var_recvtype
) /* init on <var54:CustomizedRuntimeFunction>*/;
5625 CHECK_NEW_global_compiler__CustomizedRuntimeFunction(var54
);
5627 var55
= ((val
* (*)(val
*, val
*, val
*))(var_rm
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__call
]))(var_rm
, self
, var_args
) /* call on <var_rm:CustomizedRuntimeFunction>*/;
5633 /* method global_compiler#GlobalCompilerVisitor#finalize_call for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5634 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__finalize_call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5635 val
* var
/* : nullable RuntimeVariable */;
5636 val
* var1
/* : nullable RuntimeVariable */;
5637 var1
= global_compiler__GlobalCompilerVisitor__finalize_call(self
, p0
, p1
, p2
);
5642 /* method global_compiler#GlobalCompilerVisitor#call for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5643 val
* global_compiler__GlobalCompilerVisitor__call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5644 val
* var
/* : nullable RuntimeVariable */;
5645 val
* var_m
/* var m: MMethodDef */;
5646 val
* var_recvtype
/* var recvtype: MClassType */;
5647 val
* var_args
/* var args: Array[RuntimeVariable] */;
5648 val
* var1
/* : MClassType */;
5649 val
* var_recv_type
/* var recv_type: MClassType */;
5650 val
* var2
/* : RuntimeVariable */;
5651 val
* var_recv
/* var recv: RuntimeVariable */;
5652 val
* var3
/* : Array[nullable Object] */;
5653 val
* var_new_args
/* var new_args: Array[RuntimeVariable] */;
5654 val
* var4
/* : nullable MSignature */;
5655 val
* var5
/* : nullable RuntimeVariable */;
5659 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>*/;
5660 var_recv_type
= var1
;
5661 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>*/;
5663 var3
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_array__Collection__to_a
]))(var_args
) /* to_a on <var_args:Array[RuntimeVariable]>*/;
5664 var_new_args
= var3
;
5665 var4
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
5667 fprintf(stderr
, "Runtime error: %s", "Cast failed");
5668 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 479);
5671 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__varargize
]))(self
, var_m
, var4
, var_new_args
) /* varargize on <self:GlobalCompilerVisitor>*/;
5672 ((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]>*/;
5673 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>*/;
5679 /* method global_compiler#GlobalCompilerVisitor#call for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5680 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5681 val
* var
/* : nullable RuntimeVariable */;
5682 val
* var1
/* : nullable RuntimeVariable */;
5683 var1
= global_compiler__GlobalCompilerVisitor__call(self
, p0
, p1
, p2
);
5688 /* method global_compiler#GlobalCompilerVisitor#call_without_varargize for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5689 val
* global_compiler__GlobalCompilerVisitor__call_without_varargize(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5690 val
* var
/* : nullable RuntimeVariable */;
5691 val
* var_m
/* var m: MMethodDef */;
5692 val
* var_recvtype
/* var recvtype: MClassType */;
5693 val
* var_args
/* var args: Array[RuntimeVariable] */;
5694 val
* var1
/* : MClassType */;
5695 val
* var_recv_type
/* var recv_type: MClassType */;
5696 val
* var2
/* : RuntimeVariable */;
5697 val
* var_recv
/* var recv: RuntimeVariable */;
5698 val
* var3
/* : Array[nullable Object] */;
5699 val
* var_new_args
/* var new_args: Array[RuntimeVariable] */;
5700 val
* var4
/* : nullable RuntimeVariable */;
5704 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>*/;
5705 var_recv_type
= var1
;
5706 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>*/;
5708 var3
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_array__Collection__to_a
]))(var_args
) /* to_a on <var_args:Array[RuntimeVariable]>*/;
5709 var_new_args
= var3
;
5710 ((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]>*/;
5711 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>*/;
5717 /* method global_compiler#GlobalCompilerVisitor#call_without_varargize for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5718 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__call_without_varargize(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5719 val
* var
/* : nullable RuntimeVariable */;
5720 val
* var1
/* : nullable RuntimeVariable */;
5721 var1
= global_compiler__GlobalCompilerVisitor__call_without_varargize(self
, p0
, p1
, p2
);
5726 /* method global_compiler#GlobalCompilerVisitor#supercall for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5727 val
* global_compiler__GlobalCompilerVisitor__supercall(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5728 val
* var
/* : nullable RuntimeVariable */;
5729 val
* var_m
/* var m: MMethodDef */;
5730 val
* var_recvtype
/* var recvtype: MClassType */;
5731 val
* var_args
/* var args: Array[RuntimeVariable] */;
5732 val
* var1
/* : nullable Object */;
5733 val
* var2
/* : Array[MClassType] */;
5734 val
* var_types
/* var types: Array[MClassType] */;
5735 val
* var3
/* : MProperty */;
5736 val
* var4
/* : MPropDef */;
5737 val
* var5
/* : nullable MSignature */;
5738 val
* var6
/* : nullable MType */;
5739 val
* var_ret
/* var ret: nullable MType */;
5740 val
* var7
/* : null */;
5741 short int var8
/* : Bool */;
5742 val
* var9
/* : null */;
5743 val
* var_res
/* var res: nullable RuntimeVariable */;
5744 val
* var10
/* : nullable Object */;
5745 val
* var11
/* : MType */;
5746 val
* var12
/* : RuntimeVariable */;
5747 static val
* varonce
;
5748 val
* var13
/* : String */;
5749 char* var14
/* : NativeString */;
5750 long var15
/* : Int */;
5751 val
* var16
/* : String */;
5752 static val
* varonce17
;
5753 val
* var18
/* : String */;
5754 char* var19
/* : NativeString */;
5755 long var20
/* : Int */;
5756 val
* var21
/* : String */;
5757 val
* var22
/* : nullable Object */;
5758 val
* var23
/* : String */;
5759 static val
* varonce24
;
5760 val
* var25
/* : String */;
5761 char* var26
/* : NativeString */;
5762 long var27
/* : Int */;
5763 val
* var28
/* : String */;
5764 val
* var29
/* : Array[Object] */;
5765 long var30
/* : Int */;
5766 val
* var31
/* : NativeArray[Object] */;
5767 val
* var32
/* : String */;
5768 val
* var33
/* : nullable Object */;
5769 val
* var34
/* : MType */;
5770 val
* var35
/* : String */;
5771 static val
* varonce36
;
5772 val
* var37
/* : String */;
5773 char* var38
/* : NativeString */;
5774 long var39
/* : Int */;
5775 val
* var40
/* : String */;
5776 short int var41
/* : Bool */;
5777 val
* var42
/* : nullable Object */;
5778 val
* var43
/* : MType */;
5779 short int var44
/* : Bool */;
5782 const char* var_class_name
;
5783 val
* var_mclasstype
/* var mclasstype: MClassType */;
5784 val
* var45
/* : AbstractCompiler */;
5785 val
* var46
/* : RapidTypeAnalysis */;
5786 val
* var47
/* : HashSet[MClassType] */;
5787 short int var48
/* : Bool */;
5788 short int var49
/* : Bool */;
5789 static val
* varonce50
;
5790 val
* var51
/* : String */;
5791 char* var52
/* : NativeString */;
5792 long var53
/* : Int */;
5793 val
* var54
/* : String */;
5794 static val
* varonce55
;
5795 val
* var56
/* : String */;
5796 char* var57
/* : NativeString */;
5797 long var58
/* : Int */;
5798 val
* var59
/* : String */;
5799 val
* var60
/* : Array[Object] */;
5800 long var61
/* : Int */;
5801 val
* var62
/* : NativeArray[Object] */;
5802 val
* var63
/* : String */;
5803 val
* var64
/* : AbstractCompiler */;
5804 val
* var65
/* : MModule */;
5805 val
* var66
/* : MPropDef */;
5806 val
* var_propdef
/* var propdef: MMethodDef */;
5807 val
* var67
/* : nullable RuntimeVariable */;
5808 val
* var_res2
/* var res2: nullable RuntimeVariable */;
5809 val
* var68
/* : null */;
5810 short int var69
/* : Bool */;
5811 short int var70
/* : Bool */;
5812 static val
* varonce71
;
5813 val
* var72
/* : String */;
5814 char* var73
/* : NativeString */;
5815 long var74
/* : Int */;
5816 val
* var75
/* : String */;
5817 static val
* varonce76
;
5818 val
* var77
/* : String */;
5819 char* var78
/* : NativeString */;
5820 long var79
/* : Int */;
5821 val
* var80
/* : String */;
5822 val
* var81
/* : nullable Object */;
5823 val
* var82
/* : String */;
5824 static val
* varonce83
;
5825 val
* var84
/* : String */;
5826 char* var85
/* : NativeString */;
5827 long var86
/* : Int */;
5828 val
* var87
/* : String */;
5829 static val
* varonce88
;
5830 val
* var89
/* : String */;
5831 char* var90
/* : NativeString */;
5832 long var91
/* : Int */;
5833 val
* var92
/* : String */;
5834 val
* var93
/* : Array[Object] */;
5835 long var94
/* : Int */;
5836 val
* var95
/* : NativeArray[Object] */;
5837 val
* var96
/* : String */;
5838 val
* var97
/* : nullable Object */;
5839 static val
* varonce98
;
5840 val
* var99
/* : String */;
5841 char* var100
/* : NativeString */;
5842 long var101
/* : Int */;
5843 val
* var102
/* : String */;
5844 static val
* varonce103
;
5845 val
* var104
/* : String */;
5846 char* var105
/* : NativeString */;
5847 long var106
/* : Int */;
5848 val
* var107
/* : String */;
5849 val
* var108
/* : nullable Object */;
5850 static val
* varonce109
;
5851 val
* var110
/* : String */;
5852 char* var111
/* : NativeString */;
5853 long var112
/* : Int */;
5854 val
* var113
/* : String */;
5855 val
* var114
/* : Array[Object] */;
5856 long var115
/* : Int */;
5857 val
* var116
/* : NativeArray[Object] */;
5858 val
* var117
/* : String */;
5859 val
* var118
/* : nullable Object */;
5860 val
* var_last
/* var last: MClassType */;
5861 val
* var119
/* : Iterator[nullable Object] */;
5862 short int var120
/* : Bool */;
5863 val
* var121
/* : nullable Object */;
5864 val
* var_t
/* var t: MClassType */;
5865 val
* var122
/* : AbstractCompiler */;
5866 val
* var123
/* : MModule */;
5867 val
* var124
/* : MPropDef */;
5868 val
* var_propdef125
/* var propdef: MMethodDef */;
5869 short int var126
/* : Bool */;
5870 val
* var127
/* : AbstractCompiler */;
5871 short int var128
/* : Bool */;
5872 short int var129
/* : Bool */;
5873 short int var_
/* var : Bool */;
5874 short int var130
/* : Bool */;
5875 static val
* varonce131
;
5876 val
* var132
/* : String */;
5877 char* var133
/* : NativeString */;
5878 long var134
/* : Int */;
5879 val
* var135
/* : String */;
5880 static val
* varonce136
;
5881 val
* var137
/* : String */;
5882 char* var138
/* : NativeString */;
5883 long var139
/* : Int */;
5884 val
* var140
/* : String */;
5885 val
* var141
/* : Array[Object] */;
5886 long var142
/* : Int */;
5887 val
* var143
/* : NativeArray[Object] */;
5888 val
* var144
/* : String */;
5889 static val
* varonce145
;
5890 val
* var146
/* : String */;
5891 char* var147
/* : NativeString */;
5892 long var148
/* : Int */;
5893 val
* var149
/* : String */;
5894 val
* var150
/* : AbstractCompiler */;
5895 val
* var151
/* : String */;
5896 static val
* varonce152
;
5897 val
* var153
/* : String */;
5898 char* var154
/* : NativeString */;
5899 long var155
/* : Int */;
5900 val
* var156
/* : String */;
5901 static val
* varonce157
;
5902 val
* var158
/* : String */;
5903 char* var159
/* : NativeString */;
5904 long var160
/* : Int */;
5905 val
* var161
/* : String */;
5906 val
* var162
/* : Array[Object] */;
5907 long var163
/* : Int */;
5908 val
* var164
/* : NativeArray[Object] */;
5909 val
* var165
/* : String */;
5910 val
* var166
/* : nullable RuntimeVariable */;
5911 val
* var_res2167
/* var res2: nullable RuntimeVariable */;
5912 val
* var168
/* : null */;
5913 short int var169
/* : Bool */;
5914 static val
* varonce170
;
5915 val
* var171
/* : String */;
5916 char* var172
/* : NativeString */;
5917 long var173
/* : Int */;
5918 val
* var174
/* : String */;
5919 val
* var175
/* : AbstractCompiler */;
5920 short int var176
/* : Bool */;
5921 static val
* varonce177
;
5922 val
* var178
/* : String */;
5923 char* var179
/* : NativeString */;
5924 long var180
/* : Int */;
5925 val
* var181
/* : String */;
5926 val
* var182
/* : nullable Object */;
5927 static val
* varonce183
;
5928 val
* var184
/* : String */;
5929 char* var185
/* : NativeString */;
5930 long var186
/* : Int */;
5931 val
* var187
/* : String */;
5935 var1
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5936 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var1
) /* collect_types on <self:GlobalCompilerVisitor>*/;
5938 var3
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_m
) /* mproperty on <var_m:MMethodDef>*/;
5939 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MProperty__intro
]))(var3
) /* intro on <var3:MProperty(MMethod)>*/;
5940 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var4
) /* msignature on <var4:MPropDef(MMethodDef)>*/;
5942 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5943 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 500);
5946 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var5
) /* return_mtype on <var5:nullable MSignature>*/;
5950 if (var_ret
== NULL
) {
5951 var8
= 1; /* is null */
5953 var8
= 0; /* arg is null but recv is not */
5959 var10
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5960 var11
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ret
, var10
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
5962 var12
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
5968 var14
= "/* super ";
5970 var16
= string__NativeString__to_s_with_length(var14
, var15
);
5979 var21
= string__NativeString__to_s_with_length(var19
, var20
);
5983 var22
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5984 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_string__Object__inspect
]))(var22
) /* inspect on <var22:nullable Object(RuntimeVariable)>*/;
5990 var28
= string__NativeString__to_s_with_length(var26
, var27
);
5994 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
5995 { /* var29 = array_instance Array[Object] */
5997 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
5998 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var13
;
5999 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var_m
;
6000 ((struct instance_array__NativeArray
*)var31
)->values
[2] = (val
*) var18
;
6001 ((struct instance_array__NativeArray
*)var31
)->values
[3] = (val
*) var23
;
6002 ((struct instance_array__NativeArray
*)var31
)->values
[4] = (val
*) var25
;
6003 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
6004 CHECK_NEW_array__Array(var29
);
6006 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
6007 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var32
) /* add on <self:GlobalCompilerVisitor>*/;
6008 var33
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6009 var34
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var33
) /* mtype on <var33:nullable Object(RuntimeVariable)>*/;
6010 var35
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var34
) /* ctype on <var34:MType>*/;
6016 var40
= string__NativeString__to_s_with_length(var38
, var39
);
6020 var41
= ((short int (*)(val
*, val
*))(var35
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var35
, var37
) /* != on <var35:String>*/;
6022 var42
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6023 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var42
) /* mtype on <var42:nullable Object(RuntimeVariable)>*/;
6024 /* <var43:MType> isa MClassType */
6025 cltype
= type_model__MClassType
.color
;
6026 idtype
= type_model__MClassType
.id
;
6027 if(cltype
>= var43
->type
->table_size
) {
6030 var44
= var43
->type
->type_table
[cltype
] == idtype
;
6033 var_class_name
= var43
== NULL ?
"null" : var43
->type
->name
;
6034 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6035 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 510);
6038 var_mclasstype
= var43
;
6039 var45
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6040 var46
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var45
) /* runtime_type_analysis on <var45:AbstractCompiler(GlobalCompiler)>*/;
6041 var47
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var46
) /* live_types on <var46:RapidTypeAnalysis>*/;
6042 var48
= ((short int (*)(val
*, val
*))(var47
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var47
, var_mclasstype
) /* has on <var47:HashSet[MClassType]>*/;
6048 var52
= "/* skip, no method ";
6050 var54
= string__NativeString__to_s_with_length(var52
, var53
);
6059 var59
= string__NativeString__to_s_with_length(var57
, var58
);
6063 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
6064 { /* var60 = array_instance Array[Object] */
6066 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
6067 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var51
;
6068 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var_m
;
6069 ((struct instance_array__NativeArray
*)var62
)->values
[2] = (val
*) var56
;
6070 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
6071 CHECK_NEW_array__Array(var60
);
6073 var63
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
6074 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var63
) /* add on <self:GlobalCompilerVisitor>*/;
6079 var64
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6080 var65
= ((val
* (*)(val
*))(var64
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var64
) /* mainmodule on <var64:AbstractCompiler(GlobalCompiler)>*/;
6081 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>*/;
6082 var_propdef
= var66
;
6083 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>*/;
6086 if (var_res
== NULL
) {
6087 var69
= 0; /* is null */
6089 var69
= 1; /* arg is null and recv is not */
6092 if (var_res2
== NULL
) {
6093 fprintf(stderr
, "Runtime error: %s", "Cast failed");
6094 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 517);
6097 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2
) /* assign on <self:GlobalCompilerVisitor>*/;
6104 var70
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
6111 var75
= string__NativeString__to_s_with_length(var73
, var74
);
6115 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var72
) /* add on <self:GlobalCompilerVisitor>*/;
6119 var78
= "/*BUG: no live types for ";
6121 var80
= string__NativeString__to_s_with_length(var78
, var79
);
6125 var81
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6126 var82
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__inspect
]))(var81
) /* inspect on <var81:nullable Object(RuntimeVariable)>*/;
6132 var87
= string__NativeString__to_s_with_length(var85
, var86
);
6141 var92
= string__NativeString__to_s_with_length(var90
, var91
);
6145 var93
= NEW_array__Array(&type_array__Arraykernel__Object
);
6146 { /* var93 = array_instance Array[Object] */
6148 var95
= NEW_array__NativeArray(var94
, &type_array__NativeArraykernel__Object
);
6149 ((struct instance_array__NativeArray
*)var95
)->values
[0] = (val
*) var77
;
6150 ((struct instance_array__NativeArray
*)var95
)->values
[1] = (val
*) var82
;
6151 ((struct instance_array__NativeArray
*)var95
)->values
[2] = (val
*) var84
;
6152 ((struct instance_array__NativeArray
*)var95
)->values
[3] = (val
*) var_m
;
6153 ((struct instance_array__NativeArray
*)var95
)->values
[4] = (val
*) var89
;
6154 ((void (*)(val
*, val
*, long))(var93
->class->vft
[COLOR_array__Array__with_native
]))(var93
, var95
, var94
) /* with_native on <var93:Array[Object]>*/;
6155 CHECK_NEW_array__Array(var93
);
6157 var96
= ((val
* (*)(val
*))(var93
->class->vft
[COLOR_string__Object__to_s
]))(var93
) /* to_s on <var93:Array[Object]>*/;
6158 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var96
) /* add on <self:GlobalCompilerVisitor>*/;
6159 var97
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6160 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var97
) /* bugtype on <self:GlobalCompilerVisitor>*/;
6166 var102
= string__NativeString__to_s_with_length(var100
, var101
);
6170 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var99
) /* add on <self:GlobalCompilerVisitor>*/;
6176 var104
= varonce103
;
6180 var107
= string__NativeString__to_s_with_length(var105
, var106
);
6182 varonce103
= var104
;
6184 var108
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6186 var110
= varonce109
;
6188 var111
= "->classid) {";
6190 var113
= string__NativeString__to_s_with_length(var111
, var112
);
6192 varonce109
= var110
;
6194 var114
= NEW_array__Array(&type_array__Arraykernel__Object
);
6195 { /* var114 = array_instance Array[Object] */
6197 var116
= NEW_array__NativeArray(var115
, &type_array__NativeArraykernel__Object
);
6198 ((struct instance_array__NativeArray
*)var116
)->values
[0] = (val
*) var104
;
6199 ((struct instance_array__NativeArray
*)var116
)->values
[1] = (val
*) var108
;
6200 ((struct instance_array__NativeArray
*)var116
)->values
[2] = (val
*) var110
;
6201 ((void (*)(val
*, val
*, long))(var114
->class->vft
[COLOR_array__Array__with_native
]))(var114
, var116
, var115
) /* with_native on <var114:Array[Object]>*/;
6202 CHECK_NEW_array__Array(var114
);
6204 var117
= ((val
* (*)(val
*))(var114
->class->vft
[COLOR_string__Object__to_s
]))(var114
) /* to_s on <var114:Array[Object]>*/;
6205 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var117
) /* add on <self:GlobalCompilerVisitor>*/;
6206 var118
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
6208 var119
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
6210 var120
= ((short int (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var119
) /* is_ok on <var119:Iterator[nullable Object]>*/;
6212 var121
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var119
) /* item on <var119:Iterator[nullable Object]>*/;
6214 var122
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6215 var123
= ((val
* (*)(val
*))(var122
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var122
) /* mainmodule on <var122:AbstractCompiler(GlobalCompiler)>*/;
6216 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>*/;
6217 var_propdef125
= var124
;
6218 var127
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6219 var128
= ((short int (*)(val
*))(var127
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var127
) /* hardening on <var127:AbstractCompiler(GlobalCompiler)>*/;
6223 var130
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
6230 var132
= varonce131
;
6232 var133
= "default: /* test ";
6234 var135
= string__NativeString__to_s_with_length(var133
, var134
);
6236 varonce131
= var132
;
6239 var137
= varonce136
;
6243 var140
= string__NativeString__to_s_with_length(var138
, var139
);
6245 varonce136
= var137
;
6247 var141
= NEW_array__Array(&type_array__Arraykernel__Object
);
6248 { /* var141 = array_instance Array[Object] */
6250 var143
= NEW_array__NativeArray(var142
, &type_array__NativeArraykernel__Object
);
6251 ((struct instance_array__NativeArray
*)var143
)->values
[0] = (val
*) var132
;
6252 ((struct instance_array__NativeArray
*)var143
)->values
[1] = (val
*) var_t
;
6253 ((struct instance_array__NativeArray
*)var143
)->values
[2] = (val
*) var137
;
6254 ((void (*)(val
*, val
*, long))(var141
->class->vft
[COLOR_array__Array__with_native
]))(var141
, var143
, var142
) /* with_native on <var141:Array[Object]>*/;
6255 CHECK_NEW_array__Array(var141
);
6257 var144
= ((val
* (*)(val
*))(var141
->class->vft
[COLOR_string__Object__to_s
]))(var141
) /* to_s on <var141:Array[Object]>*/;
6258 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var144
) /* add on <self:GlobalCompilerVisitor>*/;
6261 var146
= varonce145
;
6265 var149
= string__NativeString__to_s_with_length(var147
, var148
);
6267 varonce145
= var146
;
6269 var150
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6270 var151
= ((val
* (*)(val
*, val
*))(var150
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var150
, var_t
) /* classid on <var150:AbstractCompiler(GlobalCompiler)>*/;
6272 var153
= varonce152
;
6274 var154
= ": /* test ";
6276 var156
= string__NativeString__to_s_with_length(var154
, var155
);
6278 varonce152
= var153
;
6281 var158
= varonce157
;
6285 var161
= string__NativeString__to_s_with_length(var159
, var160
);
6287 varonce157
= var158
;
6289 var162
= NEW_array__Array(&type_array__Arraykernel__Object
);
6290 { /* var162 = array_instance Array[Object] */
6292 var164
= NEW_array__NativeArray(var163
, &type_array__NativeArraykernel__Object
);
6293 ((struct instance_array__NativeArray
*)var164
)->values
[0] = (val
*) var146
;
6294 ((struct instance_array__NativeArray
*)var164
)->values
[1] = (val
*) var151
;
6295 ((struct instance_array__NativeArray
*)var164
)->values
[2] = (val
*) var153
;
6296 ((struct instance_array__NativeArray
*)var164
)->values
[3] = (val
*) var_t
;
6297 ((struct instance_array__NativeArray
*)var164
)->values
[4] = (val
*) var158
;
6298 ((void (*)(val
*, val
*, long))(var162
->class->vft
[COLOR_array__Array__with_native
]))(var162
, var164
, var163
) /* with_native on <var162:Array[Object]>*/;
6299 CHECK_NEW_array__Array(var162
);
6301 var165
= ((val
* (*)(val
*))(var162
->class->vft
[COLOR_string__Object__to_s
]))(var162
) /* to_s on <var162:Array[Object]>*/;
6302 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var165
) /* add on <self:GlobalCompilerVisitor>*/;
6304 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>*/;
6305 var_res2167
= var166
;
6307 if (var_res
== NULL
) {
6308 var169
= 0; /* is null */
6310 var169
= 1; /* arg is null and recv is not */
6313 if (var_res2167
== NULL
) {
6314 fprintf(stderr
, "Runtime error: %s", "Cast failed");
6315 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 539);
6318 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2167
) /* assign on <self:GlobalCompilerVisitor>*/;
6322 var171
= varonce170
;
6326 var174
= string__NativeString__to_s_with_length(var172
, var173
);
6328 varonce170
= var171
;
6330 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
6331 CONTINUE_label
: (void)0;
6332 ((void (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var119
) /* next on <var119:Iterator[nullable Object]>*/;
6334 BREAK_label
: (void)0;
6335 var175
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6336 var176
= ((short int (*)(val
*))(var175
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var175
) /* hardening on <var175:AbstractCompiler(GlobalCompiler)>*/;
6339 var178
= varonce177
;
6341 var179
= "default: /* bug */";
6343 var181
= string__NativeString__to_s_with_length(var179
, var180
);
6345 varonce177
= var178
;
6347 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var178
) /* add on <self:GlobalCompilerVisitor>*/;
6348 var182
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6349 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var182
) /* bugtype on <self:GlobalCompilerVisitor>*/;
6353 var184
= varonce183
;
6357 var187
= string__NativeString__to_s_with_length(var185
, var186
);
6359 varonce183
= var184
;
6361 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var184
) /* add on <self:GlobalCompilerVisitor>*/;
6367 /* method global_compiler#GlobalCompilerVisitor#supercall for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
6368 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__supercall(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6369 val
* var
/* : nullable RuntimeVariable */;
6370 val
* var1
/* : nullable RuntimeVariable */;
6371 var1
= global_compiler__GlobalCompilerVisitor__supercall(self
, p0
, p1
, p2
);
6376 /* method global_compiler#GlobalCompilerVisitor#adapt_signature for (self: GlobalCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
6377 void global_compiler__GlobalCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
6378 val
* var_m
/* var m: MMethodDef */;
6379 val
* var_args
/* var args: Array[RuntimeVariable] */;
6380 val
* var
/* : nullable Object */;
6381 val
* var_recv
/* var recv: RuntimeVariable */;
6382 val
* var1
/* : Range[Int] */;
6383 long var2
/* : Int */;
6384 val
* var3
/* : nullable MSignature */;
6385 long var4
/* : Int */;
6386 val
* var5
/* : Discrete */;
6387 val
* var6
/* : Discrete */;
6388 val
* var7
/* : Iterator[nullable Object] */;
6389 short int var8
/* : Bool */;
6390 val
* var9
/* : nullable Object */;
6391 long var_i
/* var i: Int */;
6392 long var10
/* : Int */;
6393 val
* var11
/* : nullable MSignature */;
6394 val
* var12
/* : Array[MParameter] */;
6395 val
* var13
/* : nullable Object */;
6396 val
* var14
/* : MType */;
6397 val
* var_t
/* var t: MType */;
6398 val
* var15
/* : nullable MSignature */;
6399 long var16
/* : Int */;
6400 short int var17
/* : Bool */;
6401 short int var19
/* : Bool */;
6402 long var20
/* : Int */;
6403 long var21
/* : Int */;
6404 long var23
/* : Int */;
6405 val
* var24
/* : nullable Object */;
6406 val
* var25
/* : MType */;
6407 val
* var26
/* : MType */;
6408 long var27
/* : Int */;
6409 long var28
/* : Int */;
6410 long var30
/* : Int */;
6411 long var31
/* : Int */;
6412 long var32
/* : Int */;
6413 long var34
/* : Int */;
6414 val
* var35
/* : nullable Object */;
6415 val
* var36
/* : RuntimeVariable */;
6418 var
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6420 var1
= NEW_range__Range(&type_range__Rangekernel__Int
);
6422 var3
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
6424 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
6425 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 553);
6428 var4
= ((long (*)(val
*))(var3
->class->vft
[COLOR_model__MSignature__arity
]))(var3
) /* arity on <var3:nullable MSignature>*/;
6430 var5
= BOX_kernel__Int(var2
); /* autobox from Int to Discrete */
6431 var6
= BOX_kernel__Int(var4
); /* autobox from Int to Discrete */
6432 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_range__Range__without_last
]))(var1
, var5
, var6
) /* without_last on <var1:Range[Int]>*/;
6433 CHECK_NEW_range__Range(var1
);
6434 var7
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var1
) /* iterator on <var1:Range[Int]>*/;
6436 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
6438 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
6439 var10
= ((struct instance_kernel__Int
*)var9
)->value
; /* autounbox from nullable Object to Int */;
6441 var11
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
6442 if (var11
== NULL
) {
6443 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
6444 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 554);
6447 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_model__MSignature__mparameters
]))(var11
) /* mparameters on <var11:nullable MSignature>*/;
6449 var13
= ((val
* (*)(val
*, long))(var12
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var12
, var_i
) /* [] on <var12:Array[MParameter]>*/;
6450 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__MParameter__mtype
]))(var13
) /* mtype on <var13:nullable Object(MParameter)>*/;
6452 var15
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
6453 if (var15
== NULL
) {
6454 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
6455 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 555);
6458 var16
= ((long (*)(val
*))(var15
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var15
) /* vararg_rank on <var15:nullable MSignature>*/;
6460 { /* Inline kernel#Int#== (var_i,var16) */
6461 var19
= var_i
== var16
;
6464 RET_LABEL18
:(void)0;
6468 { /* Inline kernel#Int#+ (var_i,var20) */
6469 var23
= var_i
+ var20
;
6472 RET_LABEL22
:(void)0;
6474 var24
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var21
) /* [] on <var_args:Array[RuntimeVariable]>*/;
6475 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var24
) /* mtype on <var24:nullable Object(RuntimeVariable)>*/;
6479 var26
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_t
, var_recv
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
6482 { /* Inline kernel#Int#+ (var_i,var27) */
6483 var30
= var_i
+ var27
;
6486 RET_LABEL29
:(void)0;
6489 { /* Inline kernel#Int#+ (var_i,var31) */
6490 var34
= var_i
+ var31
;
6493 RET_LABEL33
:(void)0;
6495 var35
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var32
) /* [] on <var_args:Array[RuntimeVariable]>*/;
6496 var36
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var35
, var_t
) /* autobox on <self:GlobalCompilerVisitor>*/;
6497 ((void (*)(val
*, long, val
*))(var_args
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_args
, var28
, var36
) /* []= on <var_args:Array[RuntimeVariable]>*/;
6498 CONTINUE_label
: (void)0;
6499 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
6501 BREAK_label
: (void)0;
6504 /* method global_compiler#GlobalCompilerVisitor#adapt_signature for (self: Object, MMethodDef, Array[RuntimeVariable]) */
6505 void VIRTUAL_global_compiler__GlobalCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
6506 global_compiler__GlobalCompilerVisitor__adapt_signature(self
, p0
, p1
);
6509 /* method global_compiler#GlobalCompilerVisitor#vararg_instance for (self: GlobalCompilerVisitor, MPropDef, RuntimeVariable, Array[RuntimeVariable], MType): RuntimeVariable */
6510 val
* global_compiler__GlobalCompilerVisitor__vararg_instance(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
6511 val
* var
/* : RuntimeVariable */;
6512 val
* var_mpropdef
/* var mpropdef: MPropDef */;
6513 val
* var_recv
/* var recv: RuntimeVariable */;
6514 val
* var_varargs
/* var varargs: Array[RuntimeVariable] */;
6515 val
* var_elttype
/* var elttype: MType */;
6516 val
* var1
/* : MType */;
6517 val
* var2
/* : RuntimeVariable */;
6522 var1
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_elttype
, var_recv
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
6524 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__array_instance
]))(self
, var_varargs
, var_elttype
) /* array_instance on <self:GlobalCompilerVisitor>*/;
6530 /* method global_compiler#GlobalCompilerVisitor#vararg_instance for (self: Object, MPropDef, RuntimeVariable, Array[RuntimeVariable], MType): RuntimeVariable */
6531 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__vararg_instance(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
6532 val
* var
/* : RuntimeVariable */;
6533 val
* var1
/* : RuntimeVariable */;
6534 var1
= global_compiler__GlobalCompilerVisitor__vararg_instance(self
, p0
, p1
, p2
, p3
);
6539 /* method global_compiler#GlobalCompilerVisitor#bugtype for (self: GlobalCompilerVisitor, RuntimeVariable) */
6540 void global_compiler__GlobalCompilerVisitor__bugtype(val
* self
, val
* p0
) {
6541 val
* var_recv
/* var recv: RuntimeVariable */;
6542 val
* var
/* : MType */;
6543 val
* var1
/* : String */;
6544 static val
* varonce
;
6545 val
* var2
/* : String */;
6546 char* var3
/* : NativeString */;
6547 long var4
/* : Int */;
6548 val
* var5
/* : String */;
6549 short int var6
/* : Bool */;
6550 static val
* varonce7
;
6551 val
* var8
/* : String */;
6552 char* var9
/* : NativeString */;
6553 long var10
/* : Int */;
6554 val
* var11
/* : String */;
6555 static val
* varonce12
;
6556 val
* var13
/* : String */;
6557 char* var14
/* : NativeString */;
6558 long var15
/* : Int */;
6559 val
* var16
/* : String */;
6560 val
* var17
/* : MType */;
6561 static val
* varonce18
;
6562 val
* var19
/* : String */;
6563 char* var20
/* : NativeString */;
6564 long var21
/* : Int */;
6565 val
* var22
/* : String */;
6566 val
* var23
/* : Array[Object] */;
6567 long var24
/* : Int */;
6568 val
* var25
/* : NativeArray[Object] */;
6569 val
* var26
/* : String */;
6570 static val
* varonce27
;
6571 val
* var28
/* : String */;
6572 char* var29
/* : NativeString */;
6573 long var30
/* : Int */;
6574 val
* var31
/* : String */;
6576 var
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_recv
) /* mtype on <var_recv:RuntimeVariable>*/;
6577 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var
) /* ctype on <var:MType>*/;
6583 var5
= string__NativeString__to_s_with_length(var3
, var4
);
6587 var6
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var1
, var2
) /* != on <var1:String>*/;
6595 var9
= "fprintf(stderr, \"BTD BUG: Dynamic type is %s, static type is %s\\n\", class_names[";
6597 var11
= string__NativeString__to_s_with_length(var9
, var10
);
6604 var14
= "->classid], \"";
6606 var16
= string__NativeString__to_s_with_length(var14
, var15
);
6610 var17
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_recv
) /* mcasttype on <var_recv:RuntimeVariable>*/;
6616 var22
= string__NativeString__to_s_with_length(var20
, var21
);
6620 var23
= NEW_array__Array(&type_array__Arraykernel__Object
);
6621 { /* var23 = array_instance Array[Object] */
6623 var25
= NEW_array__NativeArray(var24
, &type_array__NativeArraykernel__Object
);
6624 ((struct instance_array__NativeArray
*)var25
)->values
[0] = (val
*) var8
;
6625 ((struct instance_array__NativeArray
*)var25
)->values
[1] = (val
*) var_recv
;
6626 ((struct instance_array__NativeArray
*)var25
)->values
[2] = (val
*) var13
;
6627 ((struct instance_array__NativeArray
*)var25
)->values
[3] = (val
*) var17
;
6628 ((struct instance_array__NativeArray
*)var25
)->values
[4] = (val
*) var19
;
6629 ((void (*)(val
*, val
*, long))(var23
->class->vft
[COLOR_array__Array__with_native
]))(var23
, var25
, var24
) /* with_native on <var23:Array[Object]>*/;
6630 CHECK_NEW_array__Array(var23
);
6632 var26
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_string__Object__to_s
]))(var23
) /* to_s on <var23:Array[Object]>*/;
6633 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var26
) /* add on <self:GlobalCompilerVisitor>*/;
6639 var31
= string__NativeString__to_s_with_length(var29
, var30
);
6643 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var28
) /* add on <self:GlobalCompilerVisitor>*/;
6646 /* method global_compiler#GlobalCompilerVisitor#bugtype for (self: Object, RuntimeVariable) */
6647 void VIRTUAL_global_compiler__GlobalCompilerVisitor__bugtype(val
* self
, val
* p0
) {
6648 global_compiler__GlobalCompilerVisitor__bugtype(self
, p0
);
6651 /* method global_compiler#GlobalCompilerVisitor#isset_attribute for (self: GlobalCompilerVisitor, MAttribute, RuntimeVariable): RuntimeVariable */
6652 val
* global_compiler__GlobalCompilerVisitor__isset_attribute(val
* self
, val
* p0
, val
* p1
) {
6653 val
* var
/* : RuntimeVariable */;
6654 val
* var_a
/* var a: MAttribute */;
6655 val
* var_recv
/* var recv: RuntimeVariable */;
6656 val
* var1
/* : Array[MClassType] */;
6657 val
* var_types
/* var types: Array[MClassType] */;
6658 val
* var2
/* : MClassType */;
6659 val
* var3
/* : RuntimeVariable */;
6660 val
* var_res
/* var res: RuntimeVariable */;
6661 short int var4
/* : Bool */;
6662 static val
* varonce
;
6663 val
* var5
/* : String */;
6664 char* var6
/* : NativeString */;
6665 long var7
/* : Int */;
6666 val
* var8
/* : String */;
6667 val
* var9
/* : String */;
6668 static val
* varonce10
;
6669 val
* var11
/* : String */;
6670 char* var12
/* : NativeString */;
6671 long var13
/* : Int */;
6672 val
* var14
/* : String */;
6673 static val
* varonce15
;
6674 val
* var16
/* : String */;
6675 char* var17
/* : NativeString */;
6676 long var18
/* : Int */;
6677 val
* var19
/* : String */;
6678 val
* var20
/* : Array[Object] */;
6679 long var21
/* : Int */;
6680 val
* var22
/* : NativeArray[Object] */;
6681 val
* var23
/* : String */;
6682 static val
* varonce24
;
6683 val
* var25
/* : String */;
6684 char* var26
/* : NativeString */;
6685 long var27
/* : Int */;
6686 val
* var28
/* : String */;
6687 static val
* varonce29
;
6688 val
* var30
/* : String */;
6689 char* var31
/* : NativeString */;
6690 long var32
/* : Int */;
6691 val
* var33
/* : String */;
6692 val
* var34
/* : String */;
6693 static val
* varonce35
;
6694 val
* var36
/* : String */;
6695 char* var37
/* : NativeString */;
6696 long var38
/* : Int */;
6697 val
* var39
/* : String */;
6698 val
* var40
/* : Array[Object] */;
6699 long var41
/* : Int */;
6700 val
* var42
/* : NativeArray[Object] */;
6701 val
* var43
/* : String */;
6702 static val
* varonce44
;
6703 val
* var45
/* : String */;
6704 char* var46
/* : NativeString */;
6705 long var47
/* : Int */;
6706 val
* var48
/* : String */;
6707 static val
* varonce49
;
6708 val
* var50
/* : String */;
6709 char* var51
/* : NativeString */;
6710 long var52
/* : Int */;
6711 val
* var53
/* : String */;
6712 val
* var54
/* : Array[Object] */;
6713 long var55
/* : Int */;
6714 val
* var56
/* : NativeArray[Object] */;
6715 val
* var57
/* : String */;
6716 val
* var58
/* : nullable Object */;
6717 val
* var_last
/* var last: MClassType */;
6718 val
* var59
/* : Iterator[nullable Object] */;
6719 short int var60
/* : Bool */;
6720 val
* var61
/* : nullable Object */;
6721 val
* var_t
/* var t: MClassType */;
6722 short int var62
/* : Bool */;
6723 val
* var63
/* : AbstractCompiler */;
6724 short int var64
/* : Bool */;
6725 short int var65
/* : Bool */;
6726 short int var_
/* var : Bool */;
6727 short int var66
/* : Bool */;
6728 static val
* varonce67
;
6729 val
* var68
/* : String */;
6730 char* var69
/* : NativeString */;
6731 long var70
/* : Int */;
6732 val
* var71
/* : String */;
6733 val
* var72
/* : AbstractCompiler */;
6734 val
* var73
/* : String */;
6735 static val
* varonce74
;
6736 val
* var75
/* : String */;
6737 char* var76
/* : NativeString */;
6738 long var77
/* : Int */;
6739 val
* var78
/* : String */;
6740 val
* var79
/* : Array[Object] */;
6741 long var80
/* : Int */;
6742 val
* var81
/* : NativeArray[Object] */;
6743 val
* var82
/* : String */;
6744 static val
* varonce83
;
6745 val
* var84
/* : String */;
6746 char* var85
/* : NativeString */;
6747 long var86
/* : Int */;
6748 val
* var87
/* : String */;
6749 val
* var88
/* : AbstractCompiler */;
6750 val
* var89
/* : String */;
6751 static val
* varonce90
;
6752 val
* var91
/* : String */;
6753 char* var92
/* : NativeString */;
6754 long var93
/* : Int */;
6755 val
* var94
/* : String */;
6756 val
* var95
/* : Array[Object] */;
6757 long var96
/* : Int */;
6758 val
* var97
/* : NativeArray[Object] */;
6759 val
* var98
/* : String */;
6760 val
* var99
/* : RuntimeVariable */;
6761 val
* var_recv2
/* var recv2: RuntimeVariable */;
6762 val
* var100
/* : MPropDef */;
6763 val
* var101
/* : nullable MType */;
6764 val
* var_ta
/* var ta: MType */;
6765 val
* var102
/* : MType */;
6766 static val
* varonce103
;
6767 val
* var104
/* : String */;
6768 char* var105
/* : NativeString */;
6769 long var106
/* : Int */;
6770 val
* var107
/* : String */;
6771 val
* var108
/* : String */;
6772 static val
* varonce109
;
6773 val
* var110
/* : String */;
6774 char* var111
/* : NativeString */;
6775 long var112
/* : Int */;
6776 val
* var113
/* : String */;
6777 static val
* varonce114
;
6778 val
* var115
/* : String */;
6779 char* var116
/* : NativeString */;
6780 long var117
/* : Int */;
6781 val
* var118
/* : String */;
6782 val
* var119
/* : MPropDef */;
6783 val
* var120
/* : String */;
6784 val
* var121
/* : Array[Object] */;
6785 long var122
/* : Int */;
6786 val
* var123
/* : NativeArray[Object] */;
6787 val
* var124
/* : String */;
6788 val
* var125
/* : RuntimeVariable */;
6789 val
* var_attr
/* var attr: RuntimeVariable */;
6790 short int var126
/* : Bool */;
6793 short int var127
/* : Bool */;
6794 val
* var128
/* : String */;
6795 static val
* varonce129
;
6796 val
* var130
/* : String */;
6797 char* var131
/* : NativeString */;
6798 long var132
/* : Int */;
6799 val
* var133
/* : String */;
6800 short int var134
/* : Bool */;
6801 static val
* varonce135
;
6802 val
* var136
/* : String */;
6803 char* var137
/* : NativeString */;
6804 long var138
/* : Int */;
6805 val
* var139
/* : String */;
6806 static val
* varonce140
;
6807 val
* var141
/* : String */;
6808 char* var142
/* : NativeString */;
6809 long var143
/* : Int */;
6810 val
* var144
/* : String */;
6811 val
* var145
/* : Array[Object] */;
6812 long var146
/* : Int */;
6813 val
* var147
/* : NativeArray[Object] */;
6814 val
* var148
/* : String */;
6815 static val
* varonce149
;
6816 val
* var150
/* : String */;
6817 char* var151
/* : NativeString */;
6818 long var152
/* : Int */;
6819 val
* var153
/* : String */;
6820 val
* var154
/* : Array[Object] */;
6821 long var155
/* : Int */;
6822 val
* var156
/* : NativeArray[Object] */;
6823 val
* var157
/* : String */;
6824 static val
* varonce158
;
6825 val
* var159
/* : String */;
6826 char* var160
/* : NativeString */;
6827 long var161
/* : Int */;
6828 val
* var162
/* : String */;
6829 val
* var163
/* : AbstractCompiler */;
6830 short int var164
/* : Bool */;
6831 static val
* varonce165
;
6832 val
* var166
/* : String */;
6833 char* var167
/* : NativeString */;
6834 long var168
/* : Int */;
6835 val
* var169
/* : String */;
6836 static val
* varonce170
;
6837 val
* var171
/* : String */;
6838 char* var172
/* : NativeString */;
6839 long var173
/* : Int */;
6840 val
* var174
/* : String */;
6843 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__check_recv_notnull
]))(self
, var_recv
) /* check_recv_notnull on <self:GlobalCompilerVisitor>*/;
6844 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_recv
) /* collect_types on <self:GlobalCompilerVisitor>*/;
6846 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type
]))(self
) /* bool_type on <self:GlobalCompilerVisitor>*/;
6847 var3
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var2
) /* new_var on <self:GlobalCompilerVisitor>*/;
6849 var4
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
6854 var6
= "/*BUG: no live types for ";
6856 var8
= string__NativeString__to_s_with_length(var6
, var7
);
6860 var9
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
6866 var14
= string__NativeString__to_s_with_length(var12
, var13
);
6875 var19
= string__NativeString__to_s_with_length(var17
, var18
);
6879 var20
= NEW_array__Array(&type_array__Arraykernel__Object
);
6880 { /* var20 = array_instance Array[Object] */
6882 var22
= NEW_array__NativeArray(var21
, &type_array__NativeArraykernel__Object
);
6883 ((struct instance_array__NativeArray
*)var22
)->values
[0] = (val
*) var5
;
6884 ((struct instance_array__NativeArray
*)var22
)->values
[1] = (val
*) var9
;
6885 ((struct instance_array__NativeArray
*)var22
)->values
[2] = (val
*) var11
;
6886 ((struct instance_array__NativeArray
*)var22
)->values
[3] = (val
*) var_a
;
6887 ((struct instance_array__NativeArray
*)var22
)->values
[4] = (val
*) var16
;
6888 ((void (*)(val
*, val
*, long))(var20
->class->vft
[COLOR_array__Array__with_native
]))(var20
, var22
, var21
) /* with_native on <var20:Array[Object]>*/;
6889 CHECK_NEW_array__Array(var20
);
6891 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_string__Object__to_s
]))(var20
) /* to_s on <var20:Array[Object]>*/;
6892 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var23
) /* add on <self:GlobalCompilerVisitor>*/;
6893 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
6901 var26
= "/* isset ";
6903 var28
= string__NativeString__to_s_with_length(var26
, var27
);
6912 var33
= string__NativeString__to_s_with_length(var31
, var32
);
6916 var34
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
6922 var39
= string__NativeString__to_s_with_length(var37
, var38
);
6926 var40
= NEW_array__Array(&type_array__Arraykernel__Object
);
6927 { /* var40 = array_instance Array[Object] */
6929 var42
= NEW_array__NativeArray(var41
, &type_array__NativeArraykernel__Object
);
6930 ((struct instance_array__NativeArray
*)var42
)->values
[0] = (val
*) var25
;
6931 ((struct instance_array__NativeArray
*)var42
)->values
[1] = (val
*) var_a
;
6932 ((struct instance_array__NativeArray
*)var42
)->values
[2] = (val
*) var30
;
6933 ((struct instance_array__NativeArray
*)var42
)->values
[3] = (val
*) var34
;
6934 ((struct instance_array__NativeArray
*)var42
)->values
[4] = (val
*) var36
;
6935 ((void (*)(val
*, val
*, long))(var40
->class->vft
[COLOR_array__Array__with_native
]))(var40
, var42
, var41
) /* with_native on <var40:Array[Object]>*/;
6936 CHECK_NEW_array__Array(var40
);
6938 var43
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_string__Object__to_s
]))(var40
) /* to_s on <var40:Array[Object]>*/;
6939 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var43
) /* add on <self:GlobalCompilerVisitor>*/;
6945 var48
= string__NativeString__to_s_with_length(var46
, var47
);
6952 var51
= "->classid) {";
6954 var53
= string__NativeString__to_s_with_length(var51
, var52
);
6958 var54
= NEW_array__Array(&type_array__Arraykernel__Object
);
6959 { /* var54 = array_instance Array[Object] */
6961 var56
= NEW_array__NativeArray(var55
, &type_array__NativeArraykernel__Object
);
6962 ((struct instance_array__NativeArray
*)var56
)->values
[0] = (val
*) var45
;
6963 ((struct instance_array__NativeArray
*)var56
)->values
[1] = (val
*) var_recv
;
6964 ((struct instance_array__NativeArray
*)var56
)->values
[2] = (val
*) var50
;
6965 ((void (*)(val
*, val
*, long))(var54
->class->vft
[COLOR_array__Array__with_native
]))(var54
, var56
, var55
) /* with_native on <var54:Array[Object]>*/;
6966 CHECK_NEW_array__Array(var54
);
6968 var57
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_string__Object__to_s
]))(var54
) /* to_s on <var54:Array[Object]>*/;
6969 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var57
) /* add on <self:GlobalCompilerVisitor>*/;
6970 var58
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
6972 var59
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
6974 var60
= ((short int (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var59
) /* is_ok on <var59:Iterator[nullable Object]>*/;
6976 var61
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var59
) /* item on <var59:Iterator[nullable Object]>*/;
6978 var63
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6979 var64
= ((short int (*)(val
*))(var63
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var63
) /* hardening on <var63:AbstractCompiler(GlobalCompiler)>*/;
6983 var66
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
6992 var69
= "default: /*";
6994 var71
= string__NativeString__to_s_with_length(var69
, var70
);
6998 var72
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6999 var73
= ((val
* (*)(val
*, val
*))(var72
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var72
, var_t
) /* classid on <var72:AbstractCompiler(GlobalCompiler)>*/;
7005 var78
= string__NativeString__to_s_with_length(var76
, var77
);
7009 var79
= NEW_array__Array(&type_array__Arraykernel__Object
);
7010 { /* var79 = array_instance Array[Object] */
7012 var81
= NEW_array__NativeArray(var80
, &type_array__NativeArraykernel__Object
);
7013 ((struct instance_array__NativeArray
*)var81
)->values
[0] = (val
*) var68
;
7014 ((struct instance_array__NativeArray
*)var81
)->values
[1] = (val
*) var73
;
7015 ((struct instance_array__NativeArray
*)var81
)->values
[2] = (val
*) var75
;
7016 ((void (*)(val
*, val
*, long))(var79
->class->vft
[COLOR_array__Array__with_native
]))(var79
, var81
, var80
) /* with_native on <var79:Array[Object]>*/;
7017 CHECK_NEW_array__Array(var79
);
7019 var82
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_string__Object__to_s
]))(var79
) /* to_s on <var79:Array[Object]>*/;
7020 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var82
) /* add on <self:GlobalCompilerVisitor>*/;
7027 var87
= string__NativeString__to_s_with_length(var85
, var86
);
7031 var88
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7032 var89
= ((val
* (*)(val
*, val
*))(var88
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var88
, var_t
) /* classid on <var88:AbstractCompiler(GlobalCompiler)>*/;
7038 var94
= string__NativeString__to_s_with_length(var92
, var93
);
7042 var95
= NEW_array__Array(&type_array__Arraykernel__Object
);
7043 { /* var95 = array_instance Array[Object] */
7045 var97
= NEW_array__NativeArray(var96
, &type_array__NativeArraykernel__Object
);
7046 ((struct instance_array__NativeArray
*)var97
)->values
[0] = (val
*) var84
;
7047 ((struct instance_array__NativeArray
*)var97
)->values
[1] = (val
*) var89
;
7048 ((struct instance_array__NativeArray
*)var97
)->values
[2] = (val
*) var91
;
7049 ((void (*)(val
*, val
*, long))(var95
->class->vft
[COLOR_array__Array__with_native
]))(var95
, var97
, var96
) /* with_native on <var95:Array[Object]>*/;
7050 CHECK_NEW_array__Array(var95
);
7052 var98
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_string__Object__to_s
]))(var95
) /* to_s on <var95:Array[Object]>*/;
7053 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var98
) /* add on <self:GlobalCompilerVisitor>*/;
7055 var99
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var_recv
, var_t
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
7057 var100
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7058 var101
= ((val
* (*)(val
*))(var100
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var100
) /* static_mtype on <var100:MPropDef(MAttributeDef)>*/;
7059 if (var101
== NULL
) {
7060 fprintf(stderr
, "Runtime error: %s", "Cast failed");
7061 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 599);
7065 var102
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ta
, var_recv2
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
7068 var104
= varonce103
;
7070 var105
= "((struct ";
7072 var107
= string__NativeString__to_s_with_length(var105
, var106
);
7074 varonce103
= var104
;
7076 var108
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_t
) /* c_name on <var_t:MClassType>*/;
7078 var110
= varonce109
;
7082 var113
= string__NativeString__to_s_with_length(var111
, var112
);
7084 varonce109
= var110
;
7087 var115
= varonce114
;
7091 var118
= string__NativeString__to_s_with_length(var116
, var117
);
7093 varonce114
= var115
;
7095 var119
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7096 var120
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var119
) /* c_name on <var119:MPropDef(MAttributeDef)>*/;
7097 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
7098 { /* var121 = array_instance Array[Object] */
7100 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
7101 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var104
;
7102 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var108
;
7103 ((struct instance_array__NativeArray
*)var123
)->values
[2] = (val
*) var110
;
7104 ((struct instance_array__NativeArray
*)var123
)->values
[3] = (val
*) var_recv
;
7105 ((struct instance_array__NativeArray
*)var123
)->values
[4] = (val
*) var115
;
7106 ((struct instance_array__NativeArray
*)var123
)->values
[5] = (val
*) var120
;
7107 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
7108 CHECK_NEW_array__Array(var121
);
7110 var124
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
7111 var125
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var124
, var_ta
) /* new_expr on <self:GlobalCompilerVisitor>*/;
7113 /* <var_ta:MType> isa MNullableType */
7114 cltype
= type_model__MNullableType
.color
;
7115 idtype
= type_model__MNullableType
.id
;
7116 if(cltype
>= var_ta
->type
->table_size
) {
7119 var126
= var_ta
->type
->type_table
[cltype
] == idtype
;
7123 var128
= ((val
* (*)(val
*))(var_ta
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_ta
) /* ctype on <var_ta:MType>*/;
7125 var130
= varonce129
;
7129 var133
= string__NativeString__to_s_with_length(var131
, var132
);
7131 varonce129
= var130
;
7133 var134
= ((short int (*)(val
*, val
*))(var128
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var128
, var130
) /* == on <var128:String>*/;
7136 var136
= varonce135
;
7140 var139
= string__NativeString__to_s_with_length(var137
, var138
);
7142 varonce135
= var136
;
7145 var141
= varonce140
;
7147 var142
= " != NULL);";
7149 var144
= string__NativeString__to_s_with_length(var142
, var143
);
7151 varonce140
= var141
;
7153 var145
= NEW_array__Array(&type_array__Arraykernel__Object
);
7154 { /* var145 = array_instance Array[Object] */
7156 var147
= NEW_array__NativeArray(var146
, &type_array__NativeArraykernel__Object
);
7157 ((struct instance_array__NativeArray
*)var147
)->values
[0] = (val
*) var_res
;
7158 ((struct instance_array__NativeArray
*)var147
)->values
[1] = (val
*) var136
;
7159 ((struct instance_array__NativeArray
*)var147
)->values
[2] = (val
*) var_attr
;
7160 ((struct instance_array__NativeArray
*)var147
)->values
[3] = (val
*) var141
;
7161 ((void (*)(val
*, val
*, long))(var145
->class->vft
[COLOR_array__Array__with_native
]))(var145
, var147
, var146
) /* with_native on <var145:Array[Object]>*/;
7162 CHECK_NEW_array__Array(var145
);
7164 var148
= ((val
* (*)(val
*))(var145
->class->vft
[COLOR_string__Object__to_s
]))(var145
) /* to_s on <var145:Array[Object]>*/;
7165 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var148
) /* add on <self:GlobalCompilerVisitor>*/;
7168 var150
= varonce149
;
7170 var151
= " = 1; /*NOTYET isset on primitive attributes*/";
7172 var153
= string__NativeString__to_s_with_length(var151
, var152
);
7174 varonce149
= var150
;
7176 var154
= NEW_array__Array(&type_array__Arraykernel__Object
);
7177 { /* var154 = array_instance Array[Object] */
7179 var156
= NEW_array__NativeArray(var155
, &type_array__NativeArraykernel__Object
);
7180 ((struct instance_array__NativeArray
*)var156
)->values
[0] = (val
*) var_res
;
7181 ((struct instance_array__NativeArray
*)var156
)->values
[1] = (val
*) var150
;
7182 ((void (*)(val
*, val
*, long))(var154
->class->vft
[COLOR_array__Array__with_native
]))(var154
, var156
, var155
) /* with_native on <var154:Array[Object]>*/;
7183 CHECK_NEW_array__Array(var154
);
7185 var157
= ((val
* (*)(val
*))(var154
->class->vft
[COLOR_string__Object__to_s
]))(var154
) /* to_s on <var154:Array[Object]>*/;
7186 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var157
) /* add on <self:GlobalCompilerVisitor>*/;
7191 var159
= varonce158
;
7195 var162
= string__NativeString__to_s_with_length(var160
, var161
);
7197 varonce158
= var159
;
7199 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var159
) /* add on <self:GlobalCompilerVisitor>*/;
7200 CONTINUE_label
: (void)0;
7201 ((void (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var59
) /* next on <var59:Iterator[nullable Object]>*/;
7203 BREAK_label
: (void)0;
7204 var163
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7205 var164
= ((short int (*)(val
*))(var163
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var163
) /* hardening on <var163:AbstractCompiler(GlobalCompiler)>*/;
7208 var166
= varonce165
;
7210 var167
= "default: /* Bug */";
7212 var169
= string__NativeString__to_s_with_length(var167
, var168
);
7214 varonce165
= var166
;
7216 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var166
) /* add on <self:GlobalCompilerVisitor>*/;
7217 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
7221 var171
= varonce170
;
7225 var174
= string__NativeString__to_s_with_length(var172
, var173
);
7227 varonce170
= var171
;
7229 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
7235 /* method global_compiler#GlobalCompilerVisitor#isset_attribute for (self: Object, MAttribute, RuntimeVariable): RuntimeVariable */
7236 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__isset_attribute(val
* self
, val
* p0
, val
* p1
) {
7237 val
* var
/* : RuntimeVariable */;
7238 val
* var1
/* : RuntimeVariable */;
7239 var1
= global_compiler__GlobalCompilerVisitor__isset_attribute(self
, p0
, p1
);
7244 /* method global_compiler#GlobalCompilerVisitor#read_attribute for (self: GlobalCompilerVisitor, MAttribute, RuntimeVariable): RuntimeVariable */
7245 val
* global_compiler__GlobalCompilerVisitor__read_attribute(val
* self
, val
* p0
, val
* p1
) {
7246 val
* var
/* : RuntimeVariable */;
7247 val
* var_a
/* var a: MAttribute */;
7248 val
* var_recv
/* var recv: RuntimeVariable */;
7249 val
* var1
/* : Array[MClassType] */;
7250 val
* var_types
/* var types: Array[MClassType] */;
7251 val
* var2
/* : MPropDef */;
7252 val
* var3
/* : nullable MType */;
7253 val
* var_ret
/* var ret: MType */;
7254 val
* var4
/* : MType */;
7255 val
* var5
/* : RuntimeVariable */;
7256 val
* var_res
/* var res: RuntimeVariable */;
7257 short int var6
/* : Bool */;
7258 static val
* varonce
;
7259 val
* var7
/* : String */;
7260 char* var8
/* : NativeString */;
7261 long var9
/* : Int */;
7262 val
* var10
/* : String */;
7263 val
* var11
/* : String */;
7264 static val
* varonce12
;
7265 val
* var13
/* : String */;
7266 char* var14
/* : NativeString */;
7267 long var15
/* : Int */;
7268 val
* var16
/* : String */;
7269 static val
* varonce17
;
7270 val
* var18
/* : String */;
7271 char* var19
/* : NativeString */;
7272 long var20
/* : Int */;
7273 val
* var21
/* : String */;
7274 val
* var22
/* : Array[Object] */;
7275 long var23
/* : Int */;
7276 val
* var24
/* : NativeArray[Object] */;
7277 val
* var25
/* : String */;
7278 static val
* varonce26
;
7279 val
* var27
/* : String */;
7280 char* var28
/* : NativeString */;
7281 long var29
/* : Int */;
7282 val
* var30
/* : String */;
7283 static val
* varonce31
;
7284 val
* var32
/* : String */;
7285 char* var33
/* : NativeString */;
7286 long var34
/* : Int */;
7287 val
* var35
/* : String */;
7288 val
* var36
/* : String */;
7289 static val
* varonce37
;
7290 val
* var38
/* : String */;
7291 char* var39
/* : NativeString */;
7292 long var40
/* : Int */;
7293 val
* var41
/* : String */;
7294 val
* var42
/* : Array[Object] */;
7295 long var43
/* : Int */;
7296 val
* var44
/* : NativeArray[Object] */;
7297 val
* var45
/* : String */;
7298 static val
* varonce46
;
7299 val
* var47
/* : String */;
7300 char* var48
/* : NativeString */;
7301 long var49
/* : Int */;
7302 val
* var50
/* : String */;
7303 static val
* varonce51
;
7304 val
* var52
/* : String */;
7305 char* var53
/* : NativeString */;
7306 long var54
/* : Int */;
7307 val
* var55
/* : String */;
7308 val
* var56
/* : Array[Object] */;
7309 long var57
/* : Int */;
7310 val
* var58
/* : NativeArray[Object] */;
7311 val
* var59
/* : String */;
7312 val
* var60
/* : nullable Object */;
7313 val
* var_last
/* var last: MClassType */;
7314 val
* var61
/* : Iterator[nullable Object] */;
7315 short int var62
/* : Bool */;
7316 val
* var63
/* : nullable Object */;
7317 val
* var_t
/* var t: MClassType */;
7318 short int var64
/* : Bool */;
7319 val
* var65
/* : AbstractCompiler */;
7320 short int var66
/* : Bool */;
7321 short int var67
/* : Bool */;
7322 short int var_
/* var : Bool */;
7323 short int var68
/* : Bool */;
7324 static val
* varonce69
;
7325 val
* var70
/* : String */;
7326 char* var71
/* : NativeString */;
7327 long var72
/* : Int */;
7328 val
* var73
/* : String */;
7329 val
* var74
/* : AbstractCompiler */;
7330 val
* var75
/* : String */;
7331 static val
* varonce76
;
7332 val
* var77
/* : String */;
7333 char* var78
/* : NativeString */;
7334 long var79
/* : Int */;
7335 val
* var80
/* : String */;
7336 val
* var81
/* : Array[Object] */;
7337 long var82
/* : Int */;
7338 val
* var83
/* : NativeArray[Object] */;
7339 val
* var84
/* : String */;
7340 static val
* varonce85
;
7341 val
* var86
/* : String */;
7342 char* var87
/* : NativeString */;
7343 long var88
/* : Int */;
7344 val
* var89
/* : String */;
7345 val
* var90
/* : AbstractCompiler */;
7346 val
* var91
/* : String */;
7347 static val
* varonce92
;
7348 val
* var93
/* : String */;
7349 char* var94
/* : NativeString */;
7350 long var95
/* : Int */;
7351 val
* var96
/* : String */;
7352 val
* var97
/* : Array[Object] */;
7353 long var98
/* : Int */;
7354 val
* var99
/* : NativeArray[Object] */;
7355 val
* var100
/* : String */;
7356 val
* var101
/* : RuntimeVariable */;
7357 val
* var_recv2
/* var recv2: RuntimeVariable */;
7358 val
* var102
/* : MPropDef */;
7359 val
* var103
/* : nullable MType */;
7360 val
* var_ta
/* var ta: MType */;
7361 val
* var104
/* : MType */;
7362 static val
* varonce105
;
7363 val
* var106
/* : String */;
7364 char* var107
/* : NativeString */;
7365 long var108
/* : Int */;
7366 val
* var109
/* : String */;
7367 val
* var110
/* : String */;
7368 static val
* varonce111
;
7369 val
* var112
/* : String */;
7370 char* var113
/* : NativeString */;
7371 long var114
/* : Int */;
7372 val
* var115
/* : String */;
7373 static val
* varonce116
;
7374 val
* var117
/* : String */;
7375 char* var118
/* : NativeString */;
7376 long var119
/* : Int */;
7377 val
* var120
/* : String */;
7378 val
* var121
/* : MPropDef */;
7379 val
* var122
/* : String */;
7380 val
* var123
/* : Array[Object] */;
7381 long var124
/* : Int */;
7382 val
* var125
/* : NativeArray[Object] */;
7383 val
* var126
/* : String */;
7384 val
* var127
/* : RuntimeVariable */;
7385 val
* var_res2
/* var res2: RuntimeVariable */;
7386 short int var128
/* : Bool */;
7387 short int var129
/* : Bool */;
7390 short int var130
/* : Bool */;
7391 short int var_131
/* var : Bool */;
7392 val
* var132
/* : AbstractCompiler */;
7393 val
* var133
/* : ModelBuilder */;
7394 val
* var134
/* : ToolContext */;
7395 val
* var135
/* : OptionBool */;
7396 val
* var136
/* : nullable Object */;
7397 short int var137
/* : Bool */;
7398 short int var138
/* : Bool */;
7399 val
* var139
/* : String */;
7400 static val
* varonce140
;
7401 val
* var141
/* : String */;
7402 char* var142
/* : NativeString */;
7403 long var143
/* : Int */;
7404 val
* var144
/* : String */;
7405 short int var145
/* : Bool */;
7406 static val
* varonce146
;
7407 val
* var147
/* : String */;
7408 char* var148
/* : NativeString */;
7409 long var149
/* : Int */;
7410 val
* var150
/* : String */;
7411 static val
* varonce151
;
7412 val
* var152
/* : String */;
7413 char* var153
/* : NativeString */;
7414 long var154
/* : Int */;
7415 val
* var155
/* : String */;
7416 val
* var156
/* : Array[Object] */;
7417 long var157
/* : Int */;
7418 val
* var158
/* : NativeArray[Object] */;
7419 val
* var159
/* : String */;
7420 static val
* varonce160
;
7421 val
* var161
/* : String */;
7422 char* var162
/* : NativeString */;
7423 long var163
/* : Int */;
7424 val
* var164
/* : String */;
7425 val
* var165
/* : String */;
7426 val
* var166
/* : Array[Object] */;
7427 long var167
/* : Int */;
7428 val
* var168
/* : NativeArray[Object] */;
7429 val
* var169
/* : String */;
7430 static val
* varonce170
;
7431 val
* var171
/* : String */;
7432 char* var172
/* : NativeString */;
7433 long var173
/* : Int */;
7434 val
* var174
/* : String */;
7435 static val
* varonce175
;
7436 val
* var176
/* : String */;
7437 char* var177
/* : NativeString */;
7438 long var178
/* : Int */;
7439 val
* var179
/* : String */;
7440 static val
* varonce180
;
7441 val
* var181
/* : String */;
7442 char* var182
/* : NativeString */;
7443 long var183
/* : Int */;
7444 val
* var184
/* : String */;
7445 val
* var185
/* : AbstractCompiler */;
7446 short int var186
/* : Bool */;
7447 static val
* varonce187
;
7448 val
* var188
/* : String */;
7449 char* var189
/* : NativeString */;
7450 long var190
/* : Int */;
7451 val
* var191
/* : String */;
7452 static val
* varonce192
;
7453 val
* var193
/* : String */;
7454 char* var194
/* : NativeString */;
7455 long var195
/* : Int */;
7456 val
* var196
/* : String */;
7459 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__check_recv_notnull
]))(self
, var_recv
) /* check_recv_notnull on <self:GlobalCompilerVisitor>*/;
7460 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_recv
) /* collect_types on <self:GlobalCompilerVisitor>*/;
7462 var2
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7463 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var2
) /* static_mtype on <var2:MPropDef(MAttributeDef)>*/;
7465 fprintf(stderr
, "Runtime error: %s", "Cast failed");
7466 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 626);
7470 var4
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ret
, var_recv
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
7472 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
7474 var6
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
7479 var8
= "/*BUG: no live types for ";
7481 var10
= string__NativeString__to_s_with_length(var8
, var9
);
7485 var11
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
7491 var16
= string__NativeString__to_s_with_length(var14
, var15
);
7500 var21
= string__NativeString__to_s_with_length(var19
, var20
);
7504 var22
= NEW_array__Array(&type_array__Arraykernel__Object
);
7505 { /* var22 = array_instance Array[Object] */
7507 var24
= NEW_array__NativeArray(var23
, &type_array__NativeArraykernel__Object
);
7508 ((struct instance_array__NativeArray
*)var24
)->values
[0] = (val
*) var7
;
7509 ((struct instance_array__NativeArray
*)var24
)->values
[1] = (val
*) var11
;
7510 ((struct instance_array__NativeArray
*)var24
)->values
[2] = (val
*) var13
;
7511 ((struct instance_array__NativeArray
*)var24
)->values
[3] = (val
*) var_a
;
7512 ((struct instance_array__NativeArray
*)var24
)->values
[4] = (val
*) var18
;
7513 ((void (*)(val
*, val
*, long))(var22
->class->vft
[COLOR_array__Array__with_native
]))(var22
, var24
, var23
) /* with_native on <var22:Array[Object]>*/;
7514 CHECK_NEW_array__Array(var22
);
7516 var25
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_string__Object__to_s
]))(var22
) /* to_s on <var22:Array[Object]>*/;
7517 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var25
) /* add on <self:GlobalCompilerVisitor>*/;
7518 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
7528 var30
= string__NativeString__to_s_with_length(var28
, var29
);
7537 var35
= string__NativeString__to_s_with_length(var33
, var34
);
7541 var36
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
7547 var41
= string__NativeString__to_s_with_length(var39
, var40
);
7551 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
7552 { /* var42 = array_instance Array[Object] */
7554 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
7555 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var27
;
7556 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_a
;
7557 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var32
;
7558 ((struct instance_array__NativeArray
*)var44
)->values
[3] = (val
*) var36
;
7559 ((struct instance_array__NativeArray
*)var44
)->values
[4] = (val
*) var38
;
7560 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
7561 CHECK_NEW_array__Array(var42
);
7563 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
7564 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var45
) /* add on <self:GlobalCompilerVisitor>*/;
7570 var50
= string__NativeString__to_s_with_length(var48
, var49
);
7577 var53
= "->classid) {";
7579 var55
= string__NativeString__to_s_with_length(var53
, var54
);
7583 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
7584 { /* var56 = array_instance Array[Object] */
7586 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
7587 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var47
;
7588 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var_recv
;
7589 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var52
;
7590 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
7591 CHECK_NEW_array__Array(var56
);
7593 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
7594 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var59
) /* add on <self:GlobalCompilerVisitor>*/;
7595 var60
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
7597 var61
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
7599 var62
= ((short int (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var61
) /* is_ok on <var61:Iterator[nullable Object]>*/;
7601 var63
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var61
) /* item on <var61:Iterator[nullable Object]>*/;
7603 var65
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7604 var66
= ((short int (*)(val
*))(var65
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var65
) /* hardening on <var65:AbstractCompiler(GlobalCompiler)>*/;
7608 var68
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
7617 var71
= "default: /*";
7619 var73
= string__NativeString__to_s_with_length(var71
, var72
);
7623 var74
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7624 var75
= ((val
* (*)(val
*, val
*))(var74
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var74
, var_t
) /* classid on <var74:AbstractCompiler(GlobalCompiler)>*/;
7630 var80
= string__NativeString__to_s_with_length(var78
, var79
);
7634 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
7635 { /* var81 = array_instance Array[Object] */
7637 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
7638 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var70
;
7639 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var75
;
7640 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var77
;
7641 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
7642 CHECK_NEW_array__Array(var81
);
7644 var84
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
7645 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var84
) /* add on <self:GlobalCompilerVisitor>*/;
7652 var89
= string__NativeString__to_s_with_length(var87
, var88
);
7656 var90
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7657 var91
= ((val
* (*)(val
*, val
*))(var90
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var90
, var_t
) /* classid on <var90:AbstractCompiler(GlobalCompiler)>*/;
7663 var96
= string__NativeString__to_s_with_length(var94
, var95
);
7667 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
7668 { /* var97 = array_instance Array[Object] */
7670 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
7671 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var86
;
7672 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var91
;
7673 ((struct instance_array__NativeArray
*)var99
)->values
[2] = (val
*) var93
;
7674 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
7675 CHECK_NEW_array__Array(var97
);
7677 var100
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
7678 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var100
) /* add on <self:GlobalCompilerVisitor>*/;
7680 var101
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var_recv
, var_t
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
7682 var102
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7683 var103
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var102
) /* static_mtype on <var102:MPropDef(MAttributeDef)>*/;
7684 if (var103
== NULL
) {
7685 fprintf(stderr
, "Runtime error: %s", "Cast failed");
7686 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 645);
7690 var104
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ta
, var_recv2
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
7693 var106
= varonce105
;
7695 var107
= "((struct ";
7697 var109
= string__NativeString__to_s_with_length(var107
, var108
);
7699 varonce105
= var106
;
7701 var110
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_t
) /* c_name on <var_t:MClassType>*/;
7703 var112
= varonce111
;
7707 var115
= string__NativeString__to_s_with_length(var113
, var114
);
7709 varonce111
= var112
;
7712 var117
= varonce116
;
7716 var120
= string__NativeString__to_s_with_length(var118
, var119
);
7718 varonce116
= var117
;
7720 var121
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7721 var122
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var121
) /* c_name on <var121:MPropDef(MAttributeDef)>*/;
7722 var123
= NEW_array__Array(&type_array__Arraykernel__Object
);
7723 { /* var123 = array_instance Array[Object] */
7725 var125
= NEW_array__NativeArray(var124
, &type_array__NativeArraykernel__Object
);
7726 ((struct instance_array__NativeArray
*)var125
)->values
[0] = (val
*) var106
;
7727 ((struct instance_array__NativeArray
*)var125
)->values
[1] = (val
*) var110
;
7728 ((struct instance_array__NativeArray
*)var125
)->values
[2] = (val
*) var112
;
7729 ((struct instance_array__NativeArray
*)var125
)->values
[3] = (val
*) var_recv
;
7730 ((struct instance_array__NativeArray
*)var125
)->values
[4] = (val
*) var117
;
7731 ((struct instance_array__NativeArray
*)var125
)->values
[5] = (val
*) var122
;
7732 ((void (*)(val
*, val
*, long))(var123
->class->vft
[COLOR_array__Array__with_native
]))(var123
, var125
, var124
) /* with_native on <var123:Array[Object]>*/;
7733 CHECK_NEW_array__Array(var123
);
7735 var126
= ((val
* (*)(val
*))(var123
->class->vft
[COLOR_string__Object__to_s
]))(var123
) /* to_s on <var123:Array[Object]>*/;
7736 var127
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var126
, var_ta
) /* new_expr on <self:GlobalCompilerVisitor>*/;
7738 /* <var_ta:MType> isa MNullableType */
7739 cltype
= type_model__MNullableType
.color
;
7740 idtype
= type_model__MNullableType
.id
;
7741 if(cltype
>= var_ta
->type
->table_size
) {
7744 var129
= var_ta
->type
->type_table
[cltype
] == idtype
;
7749 var132
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7750 var133
= ((val
* (*)(val
*))(var132
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var132
) /* modelbuilder on <var132:AbstractCompiler(GlobalCompiler)>*/;
7751 var134
= ((val
* (*)(val
*))(var133
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var133
) /* toolcontext on <var133:ModelBuilder>*/;
7752 var135
= ((val
* (*)(val
*))(var134
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_no_check_other
]))(var134
) /* opt_no_check_other on <var134:ToolContext>*/;
7753 var136
= ((val
* (*)(val
*))(var135
->class->vft
[COLOR_opts__Option__value
]))(var135
) /* value on <var135:OptionBool>*/;
7754 var137
= ((struct instance_kernel__Bool
*)var136
)->value
; /* autounbox from nullable Object to Bool */;
7761 var139
= ((val
* (*)(val
*))(var_ta
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_ta
) /* ctype on <var_ta:MType>*/;
7763 var141
= varonce140
;
7767 var144
= string__NativeString__to_s_with_length(var142
, var143
);
7769 varonce140
= var141
;
7771 var145
= ((short int (*)(val
*, val
*))(var139
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var139
, var141
) /* == on <var139:String>*/;
7774 var147
= varonce146
;
7778 var150
= string__NativeString__to_s_with_length(var148
, var149
);
7780 varonce146
= var147
;
7783 var152
= varonce151
;
7785 var153
= " == NULL) {";
7787 var155
= string__NativeString__to_s_with_length(var153
, var154
);
7789 varonce151
= var152
;
7791 var156
= NEW_array__Array(&type_array__Arraykernel__Object
);
7792 { /* var156 = array_instance Array[Object] */
7794 var158
= NEW_array__NativeArray(var157
, &type_array__NativeArraykernel__Object
);
7795 ((struct instance_array__NativeArray
*)var158
)->values
[0] = (val
*) var147
;
7796 ((struct instance_array__NativeArray
*)var158
)->values
[1] = (val
*) var_res2
;
7797 ((struct instance_array__NativeArray
*)var158
)->values
[2] = (val
*) var152
;
7798 ((void (*)(val
*, val
*, long))(var156
->class->vft
[COLOR_array__Array__with_native
]))(var156
, var158
, var157
) /* with_native on <var156:Array[Object]>*/;
7799 CHECK_NEW_array__Array(var156
);
7801 var159
= ((val
* (*)(val
*))(var156
->class->vft
[COLOR_string__Object__to_s
]))(var156
) /* to_s on <var156:Array[Object]>*/;
7802 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var159
) /* add on <self:GlobalCompilerVisitor>*/;
7804 var161
= varonce160
;
7806 var162
= "Uninitialized attribute ";
7808 var164
= string__NativeString__to_s_with_length(var162
, var163
);
7810 varonce160
= var161
;
7812 var165
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__name
]))(var_a
) /* name on <var_a:MAttribute>*/;
7813 var166
= NEW_array__Array(&type_array__Arraykernel__Object
);
7814 { /* var166 = array_instance Array[Object] */
7816 var168
= NEW_array__NativeArray(var167
, &type_array__NativeArraykernel__Object
);
7817 ((struct instance_array__NativeArray
*)var168
)->values
[0] = (val
*) var161
;
7818 ((struct instance_array__NativeArray
*)var168
)->values
[1] = (val
*) var165
;
7819 ((void (*)(val
*, val
*, long))(var166
->class->vft
[COLOR_array__Array__with_native
]))(var166
, var168
, var167
) /* with_native on <var166:Array[Object]>*/;
7820 CHECK_NEW_array__Array(var166
);
7822 var169
= ((val
* (*)(val
*))(var166
->class->vft
[COLOR_string__Object__to_s
]))(var166
) /* to_s on <var166:Array[Object]>*/;
7823 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(self
, var169
) /* add_abort on <self:GlobalCompilerVisitor>*/;
7825 var171
= varonce170
;
7829 var174
= string__NativeString__to_s_with_length(var172
, var173
);
7831 varonce170
= var171
;
7833 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
7836 var176
= varonce175
;
7838 var177
= "/*NOTYET isset on primitive attributes*/";
7840 var179
= string__NativeString__to_s_with_length(var177
, var178
);
7842 varonce175
= var176
;
7844 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var176
) /* add on <self:GlobalCompilerVisitor>*/;
7848 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2
) /* assign on <self:GlobalCompilerVisitor>*/;
7850 var181
= varonce180
;
7854 var184
= string__NativeString__to_s_with_length(var182
, var183
);
7856 varonce180
= var181
;
7858 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var181
) /* add on <self:GlobalCompilerVisitor>*/;
7859 CONTINUE_label
: (void)0;
7860 ((void (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var61
) /* next on <var61:Iterator[nullable Object]>*/;
7862 BREAK_label
: (void)0;
7863 var185
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7864 var186
= ((short int (*)(val
*))(var185
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var185
) /* hardening on <var185:AbstractCompiler(GlobalCompiler)>*/;
7867 var188
= varonce187
;
7869 var189
= "default: /* Bug */";
7871 var191
= string__NativeString__to_s_with_length(var189
, var190
);
7873 varonce187
= var188
;
7875 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var188
) /* add on <self:GlobalCompilerVisitor>*/;
7876 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
7880 var193
= varonce192
;
7884 var196
= string__NativeString__to_s_with_length(var194
, var195
);
7886 varonce192
= var193
;
7888 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var193
) /* add on <self:GlobalCompilerVisitor>*/;
7894 /* method global_compiler#GlobalCompilerVisitor#read_attribute for (self: Object, MAttribute, RuntimeVariable): RuntimeVariable */
7895 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__read_attribute(val
* self
, val
* p0
, val
* p1
) {
7896 val
* var
/* : RuntimeVariable */;
7897 val
* var1
/* : RuntimeVariable */;
7898 var1
= global_compiler__GlobalCompilerVisitor__read_attribute(self
, p0
, p1
);
7903 /* method global_compiler#GlobalCompilerVisitor#write_attribute for (self: GlobalCompilerVisitor, MAttribute, RuntimeVariable, RuntimeVariable) */
7904 void global_compiler__GlobalCompilerVisitor__write_attribute(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7905 val
* var_a
/* var a: MAttribute */;
7906 val
* var_recv
/* var recv: RuntimeVariable */;
7907 val
* var_value
/* var value: RuntimeVariable */;
7908 val
* var
/* : Array[MClassType] */;
7909 val
* var_types
/* var types: Array[MClassType] */;
7910 short int var1
/* : Bool */;
7911 static val
* varonce
;
7912 val
* var2
/* : String */;
7913 char* var3
/* : NativeString */;
7914 long var4
/* : Int */;
7915 val
* var5
/* : String */;
7916 val
* var6
/* : String */;
7917 static val
* varonce7
;
7918 val
* var8
/* : String */;
7919 char* var9
/* : NativeString */;
7920 long var10
/* : Int */;
7921 val
* var11
/* : String */;
7922 static val
* varonce12
;
7923 val
* var13
/* : String */;
7924 char* var14
/* : NativeString */;
7925 long var15
/* : Int */;
7926 val
* var16
/* : String */;
7927 val
* var17
/* : Array[Object] */;
7928 long var18
/* : Int */;
7929 val
* var19
/* : NativeArray[Object] */;
7930 val
* var20
/* : String */;
7931 static val
* varonce21
;
7932 val
* var22
/* : String */;
7933 char* var23
/* : NativeString */;
7934 long var24
/* : Int */;
7935 val
* var25
/* : String */;
7936 static val
* varonce26
;
7937 val
* var27
/* : String */;
7938 char* var28
/* : NativeString */;
7939 long var29
/* : Int */;
7940 val
* var30
/* : String */;
7941 val
* var31
/* : String */;
7942 static val
* varonce32
;
7943 val
* var33
/* : String */;
7944 char* var34
/* : NativeString */;
7945 long var35
/* : Int */;
7946 val
* var36
/* : String */;
7947 val
* var37
/* : Array[Object] */;
7948 long var38
/* : Int */;
7949 val
* var39
/* : NativeArray[Object] */;
7950 val
* var40
/* : String */;
7951 static val
* varonce41
;
7952 val
* var42
/* : String */;
7953 char* var43
/* : NativeString */;
7954 long var44
/* : Int */;
7955 val
* var45
/* : String */;
7956 static val
* varonce46
;
7957 val
* var47
/* : String */;
7958 char* var48
/* : NativeString */;
7959 long var49
/* : Int */;
7960 val
* var50
/* : String */;
7961 val
* var51
/* : Array[Object] */;
7962 long var52
/* : Int */;
7963 val
* var53
/* : NativeArray[Object] */;
7964 val
* var54
/* : String */;
7965 val
* var55
/* : nullable Object */;
7966 val
* var_last
/* var last: MClassType */;
7967 val
* var56
/* : Iterator[nullable Object] */;
7968 short int var57
/* : Bool */;
7969 val
* var58
/* : nullable Object */;
7970 val
* var_t
/* var t: MClassType */;
7971 short int var59
/* : Bool */;
7972 val
* var60
/* : AbstractCompiler */;
7973 short int var61
/* : Bool */;
7974 short int var62
/* : Bool */;
7975 short int var_
/* var : Bool */;
7976 short int var63
/* : Bool */;
7977 static val
* varonce64
;
7978 val
* var65
/* : String */;
7979 char* var66
/* : NativeString */;
7980 long var67
/* : Int */;
7981 val
* var68
/* : String */;
7982 val
* var69
/* : AbstractCompiler */;
7983 val
* var70
/* : String */;
7984 static val
* varonce71
;
7985 val
* var72
/* : String */;
7986 char* var73
/* : NativeString */;
7987 long var74
/* : Int */;
7988 val
* var75
/* : String */;
7989 val
* var76
/* : Array[Object] */;
7990 long var77
/* : Int */;
7991 val
* var78
/* : NativeArray[Object] */;
7992 val
* var79
/* : String */;
7993 static val
* varonce80
;
7994 val
* var81
/* : String */;
7995 char* var82
/* : NativeString */;
7996 long var83
/* : Int */;
7997 val
* var84
/* : String */;
7998 val
* var85
/* : AbstractCompiler */;
7999 val
* var86
/* : String */;
8000 static val
* varonce87
;
8001 val
* var88
/* : String */;
8002 char* var89
/* : NativeString */;
8003 long var90
/* : Int */;
8004 val
* var91
/* : String */;
8005 val
* var92
/* : Array[Object] */;
8006 long var93
/* : Int */;
8007 val
* var94
/* : NativeArray[Object] */;
8008 val
* var95
/* : String */;
8009 val
* var96
/* : RuntimeVariable */;
8010 val
* var_recv2
/* var recv2: RuntimeVariable */;
8011 val
* var97
/* : MPropDef */;
8012 val
* var98
/* : nullable MType */;
8013 val
* var_ta
/* var ta: MType */;
8014 val
* var99
/* : MType */;
8015 static val
* varonce100
;
8016 val
* var101
/* : String */;
8017 char* var102
/* : NativeString */;
8018 long var103
/* : Int */;
8019 val
* var104
/* : String */;
8020 val
* var105
/* : String */;
8021 static val
* varonce106
;
8022 val
* var107
/* : String */;
8023 char* var108
/* : NativeString */;
8024 long var109
/* : Int */;
8025 val
* var110
/* : String */;
8026 static val
* varonce111
;
8027 val
* var112
/* : String */;
8028 char* var113
/* : NativeString */;
8029 long var114
/* : Int */;
8030 val
* var115
/* : String */;
8031 val
* var116
/* : MPropDef */;
8032 val
* var117
/* : String */;
8033 static val
* varonce118
;
8034 val
* var119
/* : String */;
8035 char* var120
/* : NativeString */;
8036 long var121
/* : Int */;
8037 val
* var122
/* : String */;
8038 val
* var123
/* : RuntimeVariable */;
8039 static val
* varonce124
;
8040 val
* var125
/* : String */;
8041 char* var126
/* : NativeString */;
8042 long var127
/* : Int */;
8043 val
* var128
/* : String */;
8044 val
* var129
/* : Array[Object] */;
8045 long var130
/* : Int */;
8046 val
* var131
/* : NativeArray[Object] */;
8047 val
* var132
/* : String */;
8048 static val
* varonce133
;
8049 val
* var134
/* : String */;
8050 char* var135
/* : NativeString */;
8051 long var136
/* : Int */;
8052 val
* var137
/* : String */;
8053 val
* var138
/* : AbstractCompiler */;
8054 short int var139
/* : Bool */;
8055 static val
* varonce140
;
8056 val
* var141
/* : String */;
8057 char* var142
/* : NativeString */;
8058 long var143
/* : Int */;
8059 val
* var144
/* : String */;
8060 static val
* varonce145
;
8061 val
* var146
/* : String */;
8062 char* var147
/* : NativeString */;
8063 long var148
/* : Int */;
8064 val
* var149
/* : String */;
8068 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__check_recv_notnull
]))(self
, var_recv
) /* check_recv_notnull on <self:GlobalCompilerVisitor>*/;
8069 var
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_recv
) /* collect_types on <self:GlobalCompilerVisitor>*/;
8071 var1
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
8076 var3
= "/*BUG: no live types for ";
8078 var5
= string__NativeString__to_s_with_length(var3
, var4
);
8082 var6
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
8088 var11
= string__NativeString__to_s_with_length(var9
, var10
);
8097 var16
= string__NativeString__to_s_with_length(var14
, var15
);
8101 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
8102 { /* var17 = array_instance Array[Object] */
8104 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
8105 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var2
;
8106 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var6
;
8107 ((struct instance_array__NativeArray
*)var19
)->values
[2] = (val
*) var8
;
8108 ((struct instance_array__NativeArray
*)var19
)->values
[3] = (val
*) var_a
;
8109 ((struct instance_array__NativeArray
*)var19
)->values
[4] = (val
*) var13
;
8110 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
8111 CHECK_NEW_array__Array(var17
);
8113 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
8114 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var20
) /* add on <self:GlobalCompilerVisitor>*/;
8115 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
8122 var23
= "/* write ";
8124 var25
= string__NativeString__to_s_with_length(var23
, var24
);
8133 var30
= string__NativeString__to_s_with_length(var28
, var29
);
8137 var31
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
8143 var36
= string__NativeString__to_s_with_length(var34
, var35
);
8147 var37
= NEW_array__Array(&type_array__Arraykernel__Object
);
8148 { /* var37 = array_instance Array[Object] */
8150 var39
= NEW_array__NativeArray(var38
, &type_array__NativeArraykernel__Object
);
8151 ((struct instance_array__NativeArray
*)var39
)->values
[0] = (val
*) var22
;
8152 ((struct instance_array__NativeArray
*)var39
)->values
[1] = (val
*) var_a
;
8153 ((struct instance_array__NativeArray
*)var39
)->values
[2] = (val
*) var27
;
8154 ((struct instance_array__NativeArray
*)var39
)->values
[3] = (val
*) var31
;
8155 ((struct instance_array__NativeArray
*)var39
)->values
[4] = (val
*) var33
;
8156 ((void (*)(val
*, val
*, long))(var37
->class->vft
[COLOR_array__Array__with_native
]))(var37
, var39
, var38
) /* with_native on <var37:Array[Object]>*/;
8157 CHECK_NEW_array__Array(var37
);
8159 var40
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_string__Object__to_s
]))(var37
) /* to_s on <var37:Array[Object]>*/;
8160 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var40
) /* add on <self:GlobalCompilerVisitor>*/;
8166 var45
= string__NativeString__to_s_with_length(var43
, var44
);
8173 var48
= "->classid) {";
8175 var50
= string__NativeString__to_s_with_length(var48
, var49
);
8179 var51
= NEW_array__Array(&type_array__Arraykernel__Object
);
8180 { /* var51 = array_instance Array[Object] */
8182 var53
= NEW_array__NativeArray(var52
, &type_array__NativeArraykernel__Object
);
8183 ((struct instance_array__NativeArray
*)var53
)->values
[0] = (val
*) var42
;
8184 ((struct instance_array__NativeArray
*)var53
)->values
[1] = (val
*) var_recv
;
8185 ((struct instance_array__NativeArray
*)var53
)->values
[2] = (val
*) var47
;
8186 ((void (*)(val
*, val
*, long))(var51
->class->vft
[COLOR_array__Array__with_native
]))(var51
, var53
, var52
) /* with_native on <var51:Array[Object]>*/;
8187 CHECK_NEW_array__Array(var51
);
8189 var54
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_string__Object__to_s
]))(var51
) /* to_s on <var51:Array[Object]>*/;
8190 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var54
) /* add on <self:GlobalCompilerVisitor>*/;
8191 var55
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
8193 var56
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
8195 var57
= ((short int (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var56
) /* is_ok on <var56:Iterator[nullable Object]>*/;
8197 var58
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var56
) /* item on <var56:Iterator[nullable Object]>*/;
8199 var60
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8200 var61
= ((short int (*)(val
*))(var60
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var60
) /* hardening on <var60:AbstractCompiler(GlobalCompiler)>*/;
8204 var63
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
8213 var66
= "default: /*";
8215 var68
= string__NativeString__to_s_with_length(var66
, var67
);
8219 var69
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8220 var70
= ((val
* (*)(val
*, val
*))(var69
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var69
, var_t
) /* classid on <var69:AbstractCompiler(GlobalCompiler)>*/;
8226 var75
= string__NativeString__to_s_with_length(var73
, var74
);
8230 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
8231 { /* var76 = array_instance Array[Object] */
8233 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
8234 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var65
;
8235 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var70
;
8236 ((struct instance_array__NativeArray
*)var78
)->values
[2] = (val
*) var72
;
8237 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
8238 CHECK_NEW_array__Array(var76
);
8240 var79
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
8241 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var79
) /* add on <self:GlobalCompilerVisitor>*/;
8248 var84
= string__NativeString__to_s_with_length(var82
, var83
);
8252 var85
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8253 var86
= ((val
* (*)(val
*, val
*))(var85
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var85
, var_t
) /* classid on <var85:AbstractCompiler(GlobalCompiler)>*/;
8259 var91
= string__NativeString__to_s_with_length(var89
, var90
);
8263 var92
= NEW_array__Array(&type_array__Arraykernel__Object
);
8264 { /* var92 = array_instance Array[Object] */
8266 var94
= NEW_array__NativeArray(var93
, &type_array__NativeArraykernel__Object
);
8267 ((struct instance_array__NativeArray
*)var94
)->values
[0] = (val
*) var81
;
8268 ((struct instance_array__NativeArray
*)var94
)->values
[1] = (val
*) var86
;
8269 ((struct instance_array__NativeArray
*)var94
)->values
[2] = (val
*) var88
;
8270 ((void (*)(val
*, val
*, long))(var92
->class->vft
[COLOR_array__Array__with_native
]))(var92
, var94
, var93
) /* with_native on <var92:Array[Object]>*/;
8271 CHECK_NEW_array__Array(var92
);
8273 var95
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_string__Object__to_s
]))(var92
) /* to_s on <var92:Array[Object]>*/;
8274 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var95
) /* add on <self:GlobalCompilerVisitor>*/;
8276 var96
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var_recv
, var_t
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
8278 var97
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
8279 var98
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var97
) /* static_mtype on <var97:MPropDef(MAttributeDef)>*/;
8280 if (var98
== NULL
) {
8281 fprintf(stderr
, "Runtime error: %s", "Cast failed");
8282 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 690);
8286 var99
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ta
, var_recv2
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
8289 var101
= varonce100
;
8291 var102
= "((struct ";
8293 var104
= string__NativeString__to_s_with_length(var102
, var103
);
8295 varonce100
= var101
;
8297 var105
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_t
) /* c_name on <var_t:MClassType>*/;
8299 var107
= varonce106
;
8303 var110
= string__NativeString__to_s_with_length(var108
, var109
);
8305 varonce106
= var107
;
8308 var112
= varonce111
;
8312 var115
= string__NativeString__to_s_with_length(var113
, var114
);
8314 varonce111
= var112
;
8316 var116
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
8317 var117
= ((val
* (*)(val
*))(var116
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var116
) /* c_name on <var116:MPropDef(MAttributeDef)>*/;
8319 var119
= varonce118
;
8323 var122
= string__NativeString__to_s_with_length(var120
, var121
);
8325 varonce118
= var119
;
8327 var123
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var_value
, var_ta
) /* autobox on <self:GlobalCompilerVisitor>*/;
8329 var125
= varonce124
;
8333 var128
= string__NativeString__to_s_with_length(var126
, var127
);
8335 varonce124
= var125
;
8337 var129
= NEW_array__Array(&type_array__Arraykernel__Object
);
8338 { /* var129 = array_instance Array[Object] */
8340 var131
= NEW_array__NativeArray(var130
, &type_array__NativeArraykernel__Object
);
8341 ((struct instance_array__NativeArray
*)var131
)->values
[0] = (val
*) var101
;
8342 ((struct instance_array__NativeArray
*)var131
)->values
[1] = (val
*) var105
;
8343 ((struct instance_array__NativeArray
*)var131
)->values
[2] = (val
*) var107
;
8344 ((struct instance_array__NativeArray
*)var131
)->values
[3] = (val
*) var_recv
;
8345 ((struct instance_array__NativeArray
*)var131
)->values
[4] = (val
*) var112
;
8346 ((struct instance_array__NativeArray
*)var131
)->values
[5] = (val
*) var117
;
8347 ((struct instance_array__NativeArray
*)var131
)->values
[6] = (val
*) var119
;
8348 ((struct instance_array__NativeArray
*)var131
)->values
[7] = (val
*) var123
;
8349 ((struct instance_array__NativeArray
*)var131
)->values
[8] = (val
*) var125
;
8350 ((void (*)(val
*, val
*, long))(var129
->class->vft
[COLOR_array__Array__with_native
]))(var129
, var131
, var130
) /* with_native on <var129:Array[Object]>*/;
8351 CHECK_NEW_array__Array(var129
);
8353 var132
= ((val
* (*)(val
*))(var129
->class->vft
[COLOR_string__Object__to_s
]))(var129
) /* to_s on <var129:Array[Object]>*/;
8354 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var132
) /* add on <self:GlobalCompilerVisitor>*/;
8356 var134
= varonce133
;
8360 var137
= string__NativeString__to_s_with_length(var135
, var136
);
8362 varonce133
= var134
;
8364 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var134
) /* add on <self:GlobalCompilerVisitor>*/;
8365 CONTINUE_label
: (void)0;
8366 ((void (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var56
) /* next on <var56:Iterator[nullable Object]>*/;
8368 BREAK_label
: (void)0;
8369 var138
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8370 var139
= ((short int (*)(val
*))(var138
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var138
) /* hardening on <var138:AbstractCompiler(GlobalCompiler)>*/;
8373 var141
= varonce140
;
8375 var142
= "default: /* Bug*/";
8377 var144
= string__NativeString__to_s_with_length(var142
, var143
);
8379 varonce140
= var141
;
8381 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var141
) /* add on <self:GlobalCompilerVisitor>*/;
8382 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
8386 var146
= varonce145
;
8390 var149
= string__NativeString__to_s_with_length(var147
, var148
);
8392 varonce145
= var146
;
8394 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var146
) /* add on <self:GlobalCompilerVisitor>*/;
8397 /* method global_compiler#GlobalCompilerVisitor#write_attribute for (self: Object, MAttribute, RuntimeVariable, RuntimeVariable) */
8398 void VIRTUAL_global_compiler__GlobalCompilerVisitor__write_attribute(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8399 global_compiler__GlobalCompilerVisitor__write_attribute(self
, p0
, p1
, p2
);
8402 /* method global_compiler#GlobalCompilerVisitor#init_instance for (self: GlobalCompilerVisitor, MClassType): RuntimeVariable */
8403 val
* global_compiler__GlobalCompilerVisitor__init_instance(val
* self
, val
* p0
) {
8404 val
* var
/* : RuntimeVariable */;
8405 val
* var_mtype
/* var mtype: MClassType */;
8406 val
* var1
/* : MType */;
8407 short int var2
/* : Bool */;
8410 const char* var_class_name
;
8411 val
* var3
/* : AbstractCompiler */;
8412 val
* var4
/* : RapidTypeAnalysis */;
8413 val
* var5
/* : HashSet[MClassType] */;
8414 short int var6
/* : Bool */;
8415 short int var7
/* : Bool */;
8416 static val
* varonce
;
8417 val
* var8
/* : String */;
8418 char* var9
/* : NativeString */;
8419 long var10
/* : Int */;
8420 val
* var11
/* : String */;
8421 static val
* varonce12
;
8422 val
* var13
/* : String */;
8423 char* var14
/* : NativeString */;
8424 long var15
/* : Int */;
8425 val
* var16
/* : String */;
8426 val
* var17
/* : Array[Object] */;
8427 long var18
/* : Int */;
8428 val
* var19
/* : NativeArray[Object] */;
8429 val
* var20
/* : String */;
8430 static val
* varonce21
;
8431 val
* var22
/* : String */;
8432 char* var23
/* : NativeString */;
8433 long var24
/* : Int */;
8434 val
* var25
/* : String */;
8435 val
* var26
/* : String */;
8436 static val
* varonce27
;
8437 val
* var28
/* : String */;
8438 char* var29
/* : NativeString */;
8439 long var30
/* : Int */;
8440 val
* var31
/* : String */;
8441 val
* var32
/* : Array[Object] */;
8442 long var33
/* : Int */;
8443 val
* var34
/* : NativeArray[Object] */;
8444 val
* var35
/* : String */;
8445 val
* var36
/* : RuntimeVariable */;
8446 val
* var_res
/* var res: RuntimeVariable */;
8447 short int var37
/* : Bool */;
8449 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__anchor
]))(self
, var_mtype
) /* anchor on <self:GlobalCompilerVisitor>*/;
8450 /* <var1:MType> isa MClassType */
8451 cltype
= type_model__MClassType
.color
;
8452 idtype
= type_model__MClassType
.id
;
8453 if(cltype
>= var1
->type
->table_size
) {
8456 var2
= var1
->type
->type_table
[cltype
] == idtype
;
8459 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
8460 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
8461 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 704);
8465 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8466 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var3
) /* runtime_type_analysis on <var3:AbstractCompiler(GlobalCompiler)>*/;
8467 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var4
) /* live_types on <var4:RapidTypeAnalysis>*/;
8468 var6
= ((short int (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var5
, var_mtype
) /* has on <var5:HashSet[MClassType]>*/;
8476 var11
= string__NativeString__to_s_with_length(var9
, var10
);
8483 var14
= " was detected dead";
8485 var16
= string__NativeString__to_s_with_length(var14
, var15
);
8489 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
8490 { /* var17 = array_instance Array[Object] */
8492 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
8493 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var8
;
8494 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var_mtype
;
8495 ((struct instance_array__NativeArray
*)var19
)->values
[2] = (val
*) var13
;
8496 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
8497 CHECK_NEW_array__Array(var17
);
8499 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
8500 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__debug
]))(self
, var20
) /* debug on <self:GlobalCompilerVisitor>*/;
8508 var25
= string__NativeString__to_s_with_length(var23
, var24
);
8512 var26
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
8518 var31
= string__NativeString__to_s_with_length(var29
, var30
);
8522 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
8523 { /* var32 = array_instance Array[Object] */
8525 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
8526 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var22
;
8527 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var26
;
8528 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var28
;
8529 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
8530 CHECK_NEW_array__Array(var32
);
8532 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
8533 var36
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var35
, var_mtype
) /* new_expr on <self:GlobalCompilerVisitor>*/;
8536 ((void (*)(val
*, short int))(var_res
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res
, var37
) /* is_exact= on <var_res:RuntimeVariable>*/;
8542 /* method global_compiler#GlobalCompilerVisitor#init_instance for (self: Object, MClassType): RuntimeVariable */
8543 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__init_instance(val
* self
, val
* p0
) {
8544 val
* var
/* : RuntimeVariable */;
8545 val
* var1
/* : RuntimeVariable */;
8546 var1
= global_compiler__GlobalCompilerVisitor__init_instance(self
, p0
);
8551 /* method global_compiler#GlobalCompilerVisitor#type_test for (self: GlobalCompilerVisitor, RuntimeVariable, MType, String): RuntimeVariable */
8552 val
* global_compiler__GlobalCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8553 val
* var
/* : RuntimeVariable */;
8554 val
* var_value
/* var value: RuntimeVariable */;
8555 val
* var_mtype
/* var mtype: MType */;
8556 val
* var_tag
/* var tag: String */;
8557 val
* var1
/* : MType */;
8558 val
* var_mclasstype
/* var mclasstype: MType */;
8559 short int var2
/* : Bool */;
8562 val
* var3
/* : MType */;
8563 short int var4
/* : Bool */;
8566 val
* var7
/* : AbstractCompiler */;
8567 val
* var8
/* : RapidTypeAnalysis */;
8568 val
* var9
/* : HashSet[MClassType] */;
8569 short int var10
/* : Bool */;
8570 short int var11
/* : Bool */;
8571 static val
* varonce
;
8572 val
* var12
/* : String */;
8573 char* var13
/* : NativeString */;
8574 long var14
/* : Int */;
8575 val
* var15
/* : String */;
8576 static val
* varonce16
;
8577 val
* var17
/* : String */;
8578 char* var18
/* : NativeString */;
8579 long var19
/* : Int */;
8580 val
* var20
/* : String */;
8581 val
* var21
/* : Array[Object] */;
8582 long var22
/* : Int */;
8583 val
* var23
/* : NativeArray[Object] */;
8584 val
* var24
/* : String */;
8585 val
* var25
/* : Array[MClassType] */;
8586 val
* var_types
/* var types: Array[MClassType] */;
8587 val
* var26
/* : MClassType */;
8588 val
* var27
/* : RuntimeVariable */;
8589 val
* var_res
/* var res: RuntimeVariable */;
8590 static val
* varonce28
;
8591 val
* var29
/* : String */;
8592 char* var30
/* : NativeString */;
8593 long var31
/* : Int */;
8594 val
* var32
/* : String */;
8595 static val
* varonce33
;
8596 val
* var34
/* : String */;
8597 char* var35
/* : NativeString */;
8598 long var36
/* : Int */;
8599 val
* var37
/* : String */;
8600 val
* var38
/* : String */;
8601 static val
* varonce39
;
8602 val
* var40
/* : String */;
8603 char* var41
/* : NativeString */;
8604 long var42
/* : Int */;
8605 val
* var43
/* : String */;
8606 val
* var44
/* : Array[Object] */;
8607 long var45
/* : Int */;
8608 val
* var46
/* : NativeArray[Object] */;
8609 val
* var47
/* : String */;
8610 val
* var48
/* : MType */;
8611 val
* var49
/* : String */;
8612 static val
* varonce50
;
8613 val
* var51
/* : String */;
8614 char* var52
/* : NativeString */;
8615 long var53
/* : Int */;
8616 val
* var54
/* : String */;
8617 short int var55
/* : Bool */;
8618 val
* var56
/* : MType */;
8619 val
* var57
/* : AbstractCompiler */;
8620 val
* var58
/* : MModule */;
8621 val
* var59
/* : null */;
8622 short int var60
/* : Bool */;
8623 static val
* varonce61
;
8624 val
* var62
/* : String */;
8625 char* var63
/* : NativeString */;
8626 long var64
/* : Int */;
8627 val
* var65
/* : String */;
8628 val
* var66
/* : Array[Object] */;
8629 long var67
/* : Int */;
8630 val
* var68
/* : NativeArray[Object] */;
8631 val
* var69
/* : String */;
8632 static val
* varonce70
;
8633 val
* var71
/* : String */;
8634 char* var72
/* : NativeString */;
8635 long var73
/* : Int */;
8636 val
* var74
/* : String */;
8637 val
* var75
/* : Array[Object] */;
8638 long var76
/* : Int */;
8639 val
* var77
/* : NativeArray[Object] */;
8640 val
* var78
/* : String */;
8641 short int var79
/* : Bool */;
8642 val
* var80
/* : MType */;
8643 short int var81
/* : Bool */;
8646 short int var_
/* var : Bool */;
8647 val
* var84
/* : MType */;
8648 short int var85
/* : Bool */;
8651 static val
* varonce88
;
8652 val
* var89
/* : String */;
8653 char* var90
/* : NativeString */;
8654 long var91
/* : Int */;
8655 val
* var92
/* : String */;
8656 static val
* varonce93
;
8657 val
* var94
/* : String */;
8658 char* var95
/* : NativeString */;
8659 long var96
/* : Int */;
8660 val
* var97
/* : String */;
8661 val
* var98
/* : Array[Object] */;
8662 long var99
/* : Int */;
8663 val
* var100
/* : NativeArray[Object] */;
8664 val
* var101
/* : String */;
8665 short int var102
/* : Bool */;
8668 static val
* varonce105
;
8669 val
* var106
/* : String */;
8670 char* var107
/* : NativeString */;
8671 long var108
/* : Int */;
8672 val
* var109
/* : String */;
8673 static val
* varonce110
;
8674 val
* var111
/* : String */;
8675 char* var112
/* : NativeString */;
8676 long var113
/* : Int */;
8677 val
* var114
/* : String */;
8678 val
* var115
/* : Array[Object] */;
8679 long var116
/* : Int */;
8680 val
* var117
/* : NativeArray[Object] */;
8681 val
* var118
/* : String */;
8682 static val
* varonce119
;
8683 val
* var120
/* : String */;
8684 char* var121
/* : NativeString */;
8685 long var122
/* : Int */;
8686 val
* var123
/* : String */;
8687 static val
* varonce124
;
8688 val
* var125
/* : String */;
8689 char* var126
/* : NativeString */;
8690 long var127
/* : Int */;
8691 val
* var128
/* : String */;
8692 val
* var129
/* : Array[Object] */;
8693 long var130
/* : Int */;
8694 val
* var131
/* : NativeArray[Object] */;
8695 val
* var132
/* : String */;
8696 static val
* varonce133
;
8697 val
* var134
/* : String */;
8698 char* var135
/* : NativeString */;
8699 long var136
/* : Int */;
8700 val
* var137
/* : String */;
8701 static val
* varonce138
;
8702 val
* var139
/* : String */;
8703 char* var140
/* : NativeString */;
8704 long var141
/* : Int */;
8705 val
* var142
/* : String */;
8706 static val
* varonce143
;
8707 val
* var144
/* : String */;
8708 char* var145
/* : NativeString */;
8709 long var146
/* : Int */;
8710 val
* var147
/* : String */;
8711 val
* var148
/* : Array[Object] */;
8712 long var149
/* : Int */;
8713 val
* var150
/* : NativeArray[Object] */;
8714 val
* var151
/* : String */;
8715 val
* var152
/* : Iterator[nullable Object] */;
8716 short int var153
/* : Bool */;
8717 val
* var154
/* : nullable Object */;
8718 val
* var_t
/* var t: MClassType */;
8719 val
* var155
/* : AbstractCompiler */;
8720 val
* var156
/* : MModule */;
8721 val
* var157
/* : null */;
8722 short int var158
/* : Bool */;
8723 static val
* varonce159
;
8724 val
* var160
/* : String */;
8725 char* var161
/* : NativeString */;
8726 long var162
/* : Int */;
8727 val
* var163
/* : String */;
8728 val
* var164
/* : AbstractCompiler */;
8729 val
* var165
/* : String */;
8730 static val
* varonce166
;
8731 val
* var167
/* : String */;
8732 char* var168
/* : NativeString */;
8733 long var169
/* : Int */;
8734 val
* var170
/* : String */;
8735 static val
* varonce171
;
8736 val
* var172
/* : String */;
8737 char* var173
/* : NativeString */;
8738 long var174
/* : Int */;
8739 val
* var175
/* : String */;
8740 val
* var176
/* : Array[Object] */;
8741 long var177
/* : Int */;
8742 val
* var178
/* : NativeArray[Object] */;
8743 val
* var179
/* : String */;
8744 static val
* varonce180
;
8745 val
* var181
/* : String */;
8746 char* var182
/* : NativeString */;
8747 long var183
/* : Int */;
8748 val
* var184
/* : String */;
8749 val
* var185
/* : Array[Object] */;
8750 long var186
/* : Int */;
8751 val
* var187
/* : NativeArray[Object] */;
8752 val
* var188
/* : String */;
8753 static val
* varonce189
;
8754 val
* var190
/* : String */;
8755 char* var191
/* : NativeString */;
8756 long var192
/* : Int */;
8757 val
* var193
/* : String */;
8758 static val
* varonce194
;
8759 val
* var195
/* : String */;
8760 char* var196
/* : NativeString */;
8761 long var197
/* : Int */;
8762 val
* var198
/* : String */;
8763 static val
* varonce199
;
8764 val
* var200
/* : String */;
8765 char* var201
/* : NativeString */;
8766 long var202
/* : Int */;
8767 val
* var203
/* : String */;
8768 val
* var204
/* : Array[Object] */;
8769 long var205
/* : Int */;
8770 val
* var206
/* : NativeArray[Object] */;
8771 val
* var207
/* : String */;
8772 static val
* varonce208
;
8773 val
* var209
/* : String */;
8774 char* var210
/* : NativeString */;
8775 long var211
/* : Int */;
8776 val
* var212
/* : String */;
8780 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__anchor
]))(self
, var_mtype
) /* anchor on <self:GlobalCompilerVisitor>*/;
8782 var_mclasstype
= var_mtype
;
8783 /* <var_mtype:MType> isa MNullableType */
8784 cltype
= type_model__MNullableType
.color
;
8785 idtype
= type_model__MNullableType
.id
;
8786 if(cltype
>= var_mtype
->type
->table_size
) {
8789 var2
= var_mtype
->type
->type_table
[cltype
] == idtype
;
8792 var3
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
8793 var_mclasstype
= var3
;
8796 /* <var_mclasstype:MType> isa MClassType */
8797 cltype5
= type_model__MClassType
.color
;
8798 idtype6
= type_model__MClassType
.id
;
8799 if(cltype5
>= var_mclasstype
->type
->table_size
) {
8802 var4
= var_mclasstype
->type
->type_table
[cltype5
] == idtype6
;
8805 fprintf(stderr
, "Runtime error: %s", "Assert failed");
8806 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 718);
8809 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8810 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var7
) /* runtime_type_analysis on <var7:AbstractCompiler(GlobalCompiler)>*/;
8811 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_cast_types
]))(var8
) /* live_cast_types on <var8:RapidTypeAnalysis>*/;
8812 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var9
, var_mclasstype
) /* has on <var9:HashSet[MClassType]>*/;
8818 var13
= "problem: ";
8820 var15
= string__NativeString__to_s_with_length(var13
, var14
);
8827 var18
= " was detected cast-dead";
8829 var20
= string__NativeString__to_s_with_length(var18
, var19
);
8833 var21
= NEW_array__Array(&type_array__Arraykernel__Object
);
8834 { /* var21 = array_instance Array[Object] */
8836 var23
= NEW_array__NativeArray(var22
, &type_array__NativeArraykernel__Object
);
8837 ((struct instance_array__NativeArray
*)var23
)->values
[0] = (val
*) var12
;
8838 ((struct instance_array__NativeArray
*)var23
)->values
[1] = (val
*) var_mtype
;
8839 ((struct instance_array__NativeArray
*)var23
)->values
[2] = (val
*) var17
;
8840 ((void (*)(val
*, val
*, long))(var21
->class->vft
[COLOR_array__Array__with_native
]))(var21
, var23
, var22
) /* with_native on <var21:Array[Object]>*/;
8841 CHECK_NEW_array__Array(var21
);
8843 var24
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_string__Object__to_s
]))(var21
) /* to_s on <var21:Array[Object]>*/;
8844 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__debug
]))(self
, var24
) /* debug on <self:GlobalCompilerVisitor>*/;
8845 fprintf(stderr
, "Runtime error: %s", "Aborted");
8846 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 721);
8850 var25
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_value
) /* collect_types on <self:GlobalCompilerVisitor>*/;
8852 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type
]))(self
) /* bool_type on <self:GlobalCompilerVisitor>*/;
8853 var27
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var26
) /* new_var on <self:GlobalCompilerVisitor>*/;
8860 var32
= string__NativeString__to_s_with_length(var30
, var31
);
8869 var37
= string__NativeString__to_s_with_length(var35
, var36
);
8873 var38
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_string__Object__inspect
]))(var_value
) /* inspect on <var_value:RuntimeVariable>*/;
8879 var43
= string__NativeString__to_s_with_length(var41
, var42
);
8883 var44
= NEW_array__Array(&type_array__Arraykernel__Object
);
8884 { /* var44 = array_instance Array[Object] */
8886 var46
= NEW_array__NativeArray(var45
, &type_array__NativeArraykernel__Object
);
8887 ((struct instance_array__NativeArray
*)var46
)->values
[0] = (val
*) var29
;
8888 ((struct instance_array__NativeArray
*)var46
)->values
[1] = (val
*) var_mtype
;
8889 ((struct instance_array__NativeArray
*)var46
)->values
[2] = (val
*) var34
;
8890 ((struct instance_array__NativeArray
*)var46
)->values
[3] = (val
*) var38
;
8891 ((struct instance_array__NativeArray
*)var46
)->values
[4] = (val
*) var40
;
8892 ((void (*)(val
*, val
*, long))(var44
->class->vft
[COLOR_array__Array__with_native
]))(var44
, var46
, var45
) /* with_native on <var44:Array[Object]>*/;
8893 CHECK_NEW_array__Array(var44
);
8895 var47
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_string__Object__to_s
]))(var44
) /* to_s on <var44:Array[Object]>*/;
8896 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var47
) /* add on <self:GlobalCompilerVisitor>*/;
8897 var48
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
8898 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var48
) /* ctype on <var48:MType>*/;
8904 var54
= string__NativeString__to_s_with_length(var52
, var53
);
8908 var55
= ((short int (*)(val
*, val
*))(var49
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var49
, var51
) /* != on <var49:String>*/;
8910 var56
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
8911 var57
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8912 var58
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var57
) /* mainmodule on <var57:AbstractCompiler(GlobalCompiler)>*/;
8914 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>*/;
8921 var65
= string__NativeString__to_s_with_length(var63
, var64
);
8925 var66
= NEW_array__Array(&type_array__Arraykernel__Object
);
8926 { /* var66 = array_instance Array[Object] */
8928 var68
= NEW_array__NativeArray(var67
, &type_array__NativeArraykernel__Object
);
8929 ((struct instance_array__NativeArray
*)var68
)->values
[0] = (val
*) var_res
;
8930 ((struct instance_array__NativeArray
*)var68
)->values
[1] = (val
*) var62
;
8931 ((void (*)(val
*, val
*, long))(var66
->class->vft
[COLOR_array__Array__with_native
]))(var66
, var68
, var67
) /* with_native on <var66:Array[Object]>*/;
8932 CHECK_NEW_array__Array(var66
);
8934 var69
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_string__Object__to_s
]))(var66
) /* to_s on <var66:Array[Object]>*/;
8935 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var69
) /* add on <self:GlobalCompilerVisitor>*/;
8942 var74
= string__NativeString__to_s_with_length(var72
, var73
);
8946 var75
= NEW_array__Array(&type_array__Arraykernel__Object
);
8947 { /* var75 = array_instance Array[Object] */
8949 var77
= NEW_array__NativeArray(var76
, &type_array__NativeArraykernel__Object
);
8950 ((struct instance_array__NativeArray
*)var77
)->values
[0] = (val
*) var_res
;
8951 ((struct instance_array__NativeArray
*)var77
)->values
[1] = (val
*) var71
;
8952 ((void (*)(val
*, val
*, long))(var75
->class->vft
[COLOR_array__Array__with_native
]))(var75
, var77
, var76
) /* with_native on <var75:Array[Object]>*/;
8953 CHECK_NEW_array__Array(var75
);
8955 var78
= ((val
* (*)(val
*))(var75
->class->vft
[COLOR_string__Object__to_s
]))(var75
) /* to_s on <var75:Array[Object]>*/;
8956 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var78
) /* add on <self:GlobalCompilerVisitor>*/;
8962 var80
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value
) /* mcasttype on <var_value:RuntimeVariable>*/;
8963 /* <var80:MType> isa MNullableType */
8964 cltype82
= type_model__MNullableType
.color
;
8965 idtype83
= type_model__MNullableType
.id
;
8966 if(cltype82
>= var80
->type
->table_size
) {
8969 var81
= var80
->type
->type_table
[cltype82
] == idtype83
;
8975 var84
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value
) /* mcasttype on <var_value:RuntimeVariable>*/;
8976 /* <var84:MType> isa MNullType */
8977 cltype86
= type_model__MNullType
.color
;
8978 idtype87
= type_model__MNullType
.id
;
8979 if(cltype86
>= var84
->type
->table_size
) {
8982 var85
= var84
->type
->type_table
[cltype86
] == idtype87
;
8992 var92
= string__NativeString__to_s_with_length(var90
, var91
);
8999 var95
= " == NULL) {";
9001 var97
= string__NativeString__to_s_with_length(var95
, var96
);
9005 var98
= NEW_array__Array(&type_array__Arraykernel__Object
);
9006 { /* var98 = array_instance Array[Object] */
9008 var100
= NEW_array__NativeArray(var99
, &type_array__NativeArraykernel__Object
);
9009 ((struct instance_array__NativeArray
*)var100
)->values
[0] = (val
*) var89
;
9010 ((struct instance_array__NativeArray
*)var100
)->values
[1] = (val
*) var_value
;
9011 ((struct instance_array__NativeArray
*)var100
)->values
[2] = (val
*) var94
;
9012 ((void (*)(val
*, val
*, long))(var98
->class->vft
[COLOR_array__Array__with_native
]))(var98
, var100
, var99
) /* with_native on <var98:Array[Object]>*/;
9013 CHECK_NEW_array__Array(var98
);
9015 var101
= ((val
* (*)(val
*))(var98
->class->vft
[COLOR_string__Object__to_s
]))(var98
) /* to_s on <var98:Array[Object]>*/;
9016 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var101
) /* add on <self:GlobalCompilerVisitor>*/;
9017 /* <var_mtype:MType> isa MNullableType */
9018 cltype103
= type_model__MNullableType
.color
;
9019 idtype104
= type_model__MNullableType
.id
;
9020 if(cltype103
>= var_mtype
->type
->table_size
) {
9023 var102
= var_mtype
->type
->type_table
[cltype103
] == idtype104
;
9027 var106
= varonce105
;
9029 var107
= " = 1; /* isa ";
9031 var109
= string__NativeString__to_s_with_length(var107
, var108
);
9033 varonce105
= var106
;
9036 var111
= varonce110
;
9040 var114
= string__NativeString__to_s_with_length(var112
, var113
);
9042 varonce110
= var111
;
9044 var115
= NEW_array__Array(&type_array__Arraykernel__Object
);
9045 { /* var115 = array_instance Array[Object] */
9047 var117
= NEW_array__NativeArray(var116
, &type_array__NativeArraykernel__Object
);
9048 ((struct instance_array__NativeArray
*)var117
)->values
[0] = (val
*) var_res
;
9049 ((struct instance_array__NativeArray
*)var117
)->values
[1] = (val
*) var106
;
9050 ((struct instance_array__NativeArray
*)var117
)->values
[2] = (val
*) var_mtype
;
9051 ((struct instance_array__NativeArray
*)var117
)->values
[3] = (val
*) var111
;
9052 ((void (*)(val
*, val
*, long))(var115
->class->vft
[COLOR_array__Array__with_native
]))(var115
, var117
, var116
) /* with_native on <var115:Array[Object]>*/;
9053 CHECK_NEW_array__Array(var115
);
9055 var118
= ((val
* (*)(val
*))(var115
->class->vft
[COLOR_string__Object__to_s
]))(var115
) /* to_s on <var115:Array[Object]>*/;
9056 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var118
) /* add on <self:GlobalCompilerVisitor>*/;
9059 var120
= varonce119
;
9061 var121
= " = 0; /* not isa ";
9063 var123
= string__NativeString__to_s_with_length(var121
, var122
);
9065 varonce119
= var120
;
9068 var125
= varonce124
;
9072 var128
= string__NativeString__to_s_with_length(var126
, var127
);
9074 varonce124
= var125
;
9076 var129
= NEW_array__Array(&type_array__Arraykernel__Object
);
9077 { /* var129 = array_instance Array[Object] */
9079 var131
= NEW_array__NativeArray(var130
, &type_array__NativeArraykernel__Object
);
9080 ((struct instance_array__NativeArray
*)var131
)->values
[0] = (val
*) var_res
;
9081 ((struct instance_array__NativeArray
*)var131
)->values
[1] = (val
*) var120
;
9082 ((struct instance_array__NativeArray
*)var131
)->values
[2] = (val
*) var_mtype
;
9083 ((struct instance_array__NativeArray
*)var131
)->values
[3] = (val
*) var125
;
9084 ((void (*)(val
*, val
*, long))(var129
->class->vft
[COLOR_array__Array__with_native
]))(var129
, var131
, var130
) /* with_native on <var129:Array[Object]>*/;
9085 CHECK_NEW_array__Array(var129
);
9087 var132
= ((val
* (*)(val
*))(var129
->class->vft
[COLOR_string__Object__to_s
]))(var129
) /* to_s on <var129:Array[Object]>*/;
9088 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var132
) /* add on <self:GlobalCompilerVisitor>*/;
9091 var134
= varonce133
;
9095 var137
= string__NativeString__to_s_with_length(var135
, var136
);
9097 varonce133
= var134
;
9099 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var134
) /* add on <self:GlobalCompilerVisitor>*/;
9103 var139
= varonce138
;
9107 var142
= string__NativeString__to_s_with_length(var140
, var141
);
9109 varonce138
= var139
;
9112 var144
= varonce143
;
9114 var145
= "->classid) {";
9116 var147
= string__NativeString__to_s_with_length(var145
, var146
);
9118 varonce143
= var144
;
9120 var148
= NEW_array__Array(&type_array__Arraykernel__Object
);
9121 { /* var148 = array_instance Array[Object] */
9123 var150
= NEW_array__NativeArray(var149
, &type_array__NativeArraykernel__Object
);
9124 ((struct instance_array__NativeArray
*)var150
)->values
[0] = (val
*) var139
;
9125 ((struct instance_array__NativeArray
*)var150
)->values
[1] = (val
*) var_value
;
9126 ((struct instance_array__NativeArray
*)var150
)->values
[2] = (val
*) var144
;
9127 ((void (*)(val
*, val
*, long))(var148
->class->vft
[COLOR_array__Array__with_native
]))(var148
, var150
, var149
) /* with_native on <var148:Array[Object]>*/;
9128 CHECK_NEW_array__Array(var148
);
9130 var151
= ((val
* (*)(val
*))(var148
->class->vft
[COLOR_string__Object__to_s
]))(var148
) /* to_s on <var148:Array[Object]>*/;
9131 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var151
) /* add on <self:GlobalCompilerVisitor>*/;
9132 var152
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
9134 var153
= ((short int (*)(val
*))(var152
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var152
) /* is_ok on <var152:Iterator[nullable Object]>*/;
9136 var154
= ((val
* (*)(val
*))(var152
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var152
) /* item on <var152:Iterator[nullable Object]>*/;
9138 var155
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9139 var156
= ((val
* (*)(val
*))(var155
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var155
) /* mainmodule on <var155:AbstractCompiler(GlobalCompiler)>*/;
9141 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>*/;
9144 var160
= varonce159
;
9148 var163
= string__NativeString__to_s_with_length(var161
, var162
);
9150 varonce159
= var160
;
9152 var164
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9153 var165
= ((val
* (*)(val
*, val
*))(var164
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var164
, var_t
) /* classid on <var164:AbstractCompiler(GlobalCompiler)>*/;
9155 var167
= varonce166
;
9159 var170
= string__NativeString__to_s_with_length(var168
, var169
);
9161 varonce166
= var167
;
9164 var172
= varonce171
;
9168 var175
= string__NativeString__to_s_with_length(var173
, var174
);
9170 varonce171
= var172
;
9172 var176
= NEW_array__Array(&type_array__Arraykernel__Object
);
9173 { /* var176 = array_instance Array[Object] */
9175 var178
= NEW_array__NativeArray(var177
, &type_array__NativeArraykernel__Object
);
9176 ((struct instance_array__NativeArray
*)var178
)->values
[0] = (val
*) var160
;
9177 ((struct instance_array__NativeArray
*)var178
)->values
[1] = (val
*) var165
;
9178 ((struct instance_array__NativeArray
*)var178
)->values
[2] = (val
*) var167
;
9179 ((struct instance_array__NativeArray
*)var178
)->values
[3] = (val
*) var_t
;
9180 ((struct instance_array__NativeArray
*)var178
)->values
[4] = (val
*) var172
;
9181 ((void (*)(val
*, val
*, long))(var176
->class->vft
[COLOR_array__Array__with_native
]))(var176
, var178
, var177
) /* with_native on <var176:Array[Object]>*/;
9182 CHECK_NEW_array__Array(var176
);
9184 var179
= ((val
* (*)(val
*))(var176
->class->vft
[COLOR_string__Object__to_s
]))(var176
) /* to_s on <var176:Array[Object]>*/;
9185 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var179
) /* add on <self:GlobalCompilerVisitor>*/;
9188 CONTINUE_label
: (void)0;
9189 ((void (*)(val
*))(var152
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var152
) /* next on <var152:Iterator[nullable Object]>*/;
9191 BREAK_label
: (void)0;
9193 var181
= varonce180
;
9197 var184
= string__NativeString__to_s_with_length(var182
, var183
);
9199 varonce180
= var181
;
9201 var185
= NEW_array__Array(&type_array__Arraykernel__Object
);
9202 { /* var185 = array_instance Array[Object] */
9204 var187
= NEW_array__NativeArray(var186
, &type_array__NativeArraykernel__Object
);
9205 ((struct instance_array__NativeArray
*)var187
)->values
[0] = (val
*) var_res
;
9206 ((struct instance_array__NativeArray
*)var187
)->values
[1] = (val
*) var181
;
9207 ((void (*)(val
*, val
*, long))(var185
->class->vft
[COLOR_array__Array__with_native
]))(var185
, var187
, var186
) /* with_native on <var185:Array[Object]>*/;
9208 CHECK_NEW_array__Array(var185
);
9210 var188
= ((val
* (*)(val
*))(var185
->class->vft
[COLOR_string__Object__to_s
]))(var185
) /* to_s on <var185:Array[Object]>*/;
9211 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var188
) /* add on <self:GlobalCompilerVisitor>*/;
9213 var190
= varonce189
;
9217 var193
= string__NativeString__to_s_with_length(var191
, var192
);
9219 varonce189
= var190
;
9221 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var190
) /* add on <self:GlobalCompilerVisitor>*/;
9223 var195
= varonce194
;
9225 var196
= "default:";
9227 var198
= string__NativeString__to_s_with_length(var196
, var197
);
9229 varonce194
= var195
;
9231 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var195
) /* add on <self:GlobalCompilerVisitor>*/;
9233 var200
= varonce199
;
9237 var203
= string__NativeString__to_s_with_length(var201
, var202
);
9239 varonce199
= var200
;
9241 var204
= NEW_array__Array(&type_array__Arraykernel__Object
);
9242 { /* var204 = array_instance Array[Object] */
9244 var206
= NEW_array__NativeArray(var205
, &type_array__NativeArraykernel__Object
);
9245 ((struct instance_array__NativeArray
*)var206
)->values
[0] = (val
*) var_res
;
9246 ((struct instance_array__NativeArray
*)var206
)->values
[1] = (val
*) var200
;
9247 ((void (*)(val
*, val
*, long))(var204
->class->vft
[COLOR_array__Array__with_native
]))(var204
, var206
, var205
) /* with_native on <var204:Array[Object]>*/;
9248 CHECK_NEW_array__Array(var204
);
9250 var207
= ((val
* (*)(val
*))(var204
->class->vft
[COLOR_string__Object__to_s
]))(var204
) /* to_s on <var204:Array[Object]>*/;
9251 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var207
) /* add on <self:GlobalCompilerVisitor>*/;
9253 var209
= varonce208
;
9257 var212
= string__NativeString__to_s_with_length(var210
, var211
);
9259 varonce208
= var209
;
9261 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var209
) /* add on <self:GlobalCompilerVisitor>*/;
9267 /* method global_compiler#GlobalCompilerVisitor#type_test for (self: Object, RuntimeVariable, MType, String): RuntimeVariable */
9268 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
9269 val
* var
/* : RuntimeVariable */;
9270 val
* var1
/* : RuntimeVariable */;
9271 var1
= global_compiler__GlobalCompilerVisitor__type_test(self
, p0
, p1
, p2
);
9276 /* method global_compiler#GlobalCompilerVisitor#is_same_type_test for (self: GlobalCompilerVisitor, RuntimeVariable, RuntimeVariable): RuntimeVariable */
9277 val
* global_compiler__GlobalCompilerVisitor__is_same_type_test(val
* self
, val
* p0
, val
* p1
) {
9278 val
* var
/* : RuntimeVariable */;
9279 val
* var_value1
/* var value1: RuntimeVariable */;
9280 val
* var_value2
/* var value2: RuntimeVariable */;
9281 val
* var1
/* : MClassType */;
9282 val
* var2
/* : RuntimeVariable */;
9283 val
* var_res
/* var res: RuntimeVariable */;
9284 val
* var3
/* : MType */;
9285 val
* var4
/* : String */;
9286 static val
* varonce
;
9287 val
* var5
/* : String */;
9288 char* var6
/* : NativeString */;
9289 long var7
/* : Int */;
9290 val
* var8
/* : String */;
9291 short int var9
/* : Bool */;
9292 val
* var10
/* : MType */;
9293 val
* var11
/* : String */;
9294 static val
* varonce12
;
9295 val
* var13
/* : String */;
9296 char* var14
/* : NativeString */;
9297 long var15
/* : Int */;
9298 val
* var16
/* : String */;
9299 short int var17
/* : Bool */;
9300 static val
* varonce18
;
9301 val
* var19
/* : String */;
9302 char* var20
/* : NativeString */;
9303 long var21
/* : Int */;
9304 val
* var22
/* : String */;
9305 static val
* varonce23
;
9306 val
* var24
/* : String */;
9307 char* var25
/* : NativeString */;
9308 long var26
/* : Int */;
9309 val
* var27
/* : String */;
9310 static val
* varonce28
;
9311 val
* var29
/* : String */;
9312 char* var30
/* : NativeString */;
9313 long var31
/* : Int */;
9314 val
* var32
/* : String */;
9315 val
* var33
/* : Array[Object] */;
9316 long var34
/* : Int */;
9317 val
* var35
/* : NativeArray[Object] */;
9318 val
* var36
/* : String */;
9319 static val
* varonce37
;
9320 val
* var38
/* : String */;
9321 char* var39
/* : NativeString */;
9322 long var40
/* : Int */;
9323 val
* var41
/* : String */;
9324 val
* var42
/* : AbstractCompiler */;
9325 val
* var43
/* : MType */;
9326 short int var44
/* : Bool */;
9329 const char* var_class_name
;
9330 val
* var45
/* : String */;
9331 static val
* varonce46
;
9332 val
* var47
/* : String */;
9333 char* var48
/* : NativeString */;
9334 long var49
/* : Int */;
9335 val
* var50
/* : String */;
9336 static val
* varonce51
;
9337 val
* var52
/* : String */;
9338 char* var53
/* : NativeString */;
9339 long var54
/* : Int */;
9340 val
* var55
/* : String */;
9341 val
* var56
/* : Array[Object] */;
9342 long var57
/* : Int */;
9343 val
* var58
/* : NativeArray[Object] */;
9344 val
* var59
/* : String */;
9345 val
* var60
/* : MType */;
9346 val
* var61
/* : String */;
9347 static val
* varonce62
;
9348 val
* var63
/* : String */;
9349 char* var64
/* : NativeString */;
9350 long var65
/* : Int */;
9351 val
* var66
/* : String */;
9352 short int var67
/* : Bool */;
9353 static val
* varonce68
;
9354 val
* var69
/* : String */;
9355 char* var70
/* : NativeString */;
9356 long var71
/* : Int */;
9357 val
* var72
/* : String */;
9358 static val
* varonce73
;
9359 val
* var74
/* : String */;
9360 char* var75
/* : NativeString */;
9361 long var76
/* : Int */;
9362 val
* var77
/* : String */;
9363 val
* var78
/* : AbstractCompiler */;
9364 val
* var79
/* : MType */;
9365 short int var80
/* : Bool */;
9368 const char* var_class_name83
;
9369 val
* var84
/* : String */;
9370 static val
* varonce85
;
9371 val
* var86
/* : String */;
9372 char* var87
/* : NativeString */;
9373 long var88
/* : Int */;
9374 val
* var89
/* : String */;
9375 val
* var90
/* : Array[Object] */;
9376 long var91
/* : Int */;
9377 val
* var92
/* : NativeArray[Object] */;
9378 val
* var93
/* : String */;
9379 val
* var94
/* : MType */;
9380 val
* var95
/* : MType */;
9381 short int var96
/* : Bool */;
9382 static val
* varonce97
;
9383 val
* var98
/* : String */;
9384 char* var99
/* : NativeString */;
9385 long var100
/* : Int */;
9386 val
* var101
/* : String */;
9387 val
* var102
/* : Array[Object] */;
9388 long var103
/* : Int */;
9389 val
* var104
/* : NativeArray[Object] */;
9390 val
* var105
/* : String */;
9391 static val
* varonce106
;
9392 val
* var107
/* : String */;
9393 char* var108
/* : NativeString */;
9394 long var109
/* : Int */;
9395 val
* var110
/* : String */;
9396 val
* var111
/* : Array[Object] */;
9397 long var112
/* : Int */;
9398 val
* var113
/* : NativeArray[Object] */;
9399 val
* var114
/* : String */;
9402 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type
]))(self
) /* bool_type on <self:GlobalCompilerVisitor>*/;
9403 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var1
) /* new_var on <self:GlobalCompilerVisitor>*/;
9405 var3
= ((val
* (*)(val
*))(var_value2
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value2
) /* mtype on <var_value2:RuntimeVariable>*/;
9406 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var3
) /* ctype on <var3:MType>*/;
9412 var8
= string__NativeString__to_s_with_length(var6
, var7
);
9416 var9
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var4
, var5
) /* == on <var4:String>*/;
9418 var10
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value1
) /* mtype on <var_value1:RuntimeVariable>*/;
9419 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var10
) /* ctype on <var10:MType>*/;
9425 var16
= string__NativeString__to_s_with_length(var14
, var15
);
9429 var17
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var11
, var13
) /* == on <var11:String>*/;
9436 var22
= string__NativeString__to_s_with_length(var20
, var21
);
9443 var25
= "->classid == ";
9445 var27
= string__NativeString__to_s_with_length(var25
, var26
);
9452 var30
= "->classid;";
9454 var32
= string__NativeString__to_s_with_length(var30
, var31
);
9458 var33
= NEW_array__Array(&type_array__Arraykernel__Object
);
9459 { /* var33 = array_instance Array[Object] */
9461 var35
= NEW_array__NativeArray(var34
, &type_array__NativeArraykernel__Object
);
9462 ((struct instance_array__NativeArray
*)var35
)->values
[0] = (val
*) var_res
;
9463 ((struct instance_array__NativeArray
*)var35
)->values
[1] = (val
*) var19
;
9464 ((struct instance_array__NativeArray
*)var35
)->values
[2] = (val
*) var_value1
;
9465 ((struct instance_array__NativeArray
*)var35
)->values
[3] = (val
*) var24
;
9466 ((struct instance_array__NativeArray
*)var35
)->values
[4] = (val
*) var_value2
;
9467 ((struct instance_array__NativeArray
*)var35
)->values
[5] = (val
*) var29
;
9468 ((void (*)(val
*, val
*, long))(var33
->class->vft
[COLOR_array__Array__with_native
]))(var33
, var35
, var34
) /* with_native on <var33:Array[Object]>*/;
9469 CHECK_NEW_array__Array(var33
);
9471 var36
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_string__Object__to_s
]))(var33
) /* to_s on <var33:Array[Object]>*/;
9472 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var36
) /* add on <self:GlobalCompilerVisitor>*/;
9479 var41
= string__NativeString__to_s_with_length(var39
, var40
);
9483 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9484 var43
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value1
) /* mtype on <var_value1:RuntimeVariable>*/;
9485 /* <var43:MType> isa MClassType */
9486 cltype
= type_model__MClassType
.color
;
9487 idtype
= type_model__MClassType
.id
;
9488 if(cltype
>= var43
->type
->table_size
) {
9491 var44
= var43
->type
->type_table
[cltype
] == idtype
;
9494 var_class_name
= var43
== NULL ?
"null" : var43
->type
->name
;
9495 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
9496 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 767);
9499 var45
= ((val
* (*)(val
*, val
*))(var42
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var42
, var43
) /* classid on <var42:AbstractCompiler(GlobalCompiler)>*/;
9505 var50
= string__NativeString__to_s_with_length(var48
, var49
);
9512 var53
= "->classid;";
9514 var55
= string__NativeString__to_s_with_length(var53
, var54
);
9518 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
9519 { /* var56 = array_instance Array[Object] */
9521 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
9522 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var_res
;
9523 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var38
;
9524 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var45
;
9525 ((struct instance_array__NativeArray
*)var58
)->values
[3] = (val
*) var47
;
9526 ((struct instance_array__NativeArray
*)var58
)->values
[4] = (val
*) var_value2
;
9527 ((struct instance_array__NativeArray
*)var58
)->values
[5] = (val
*) var52
;
9528 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
9529 CHECK_NEW_array__Array(var56
);
9531 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
9532 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var59
) /* add on <self:GlobalCompilerVisitor>*/;
9535 var60
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value1
) /* mtype on <var_value1:RuntimeVariable>*/;
9536 var61
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var60
) /* ctype on <var60:MType>*/;
9542 var66
= string__NativeString__to_s_with_length(var64
, var65
);
9546 var67
= ((short int (*)(val
*, val
*))(var61
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var61
, var63
) /* == on <var61:String>*/;
9553 var72
= string__NativeString__to_s_with_length(var70
, var71
);
9560 var75
= "->classid == ";
9562 var77
= string__NativeString__to_s_with_length(var75
, var76
);
9566 var78
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9567 var79
= ((val
* (*)(val
*))(var_value2
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value2
) /* mtype on <var_value2:RuntimeVariable>*/;
9568 /* <var79:MType> isa MClassType */
9569 cltype81
= type_model__MClassType
.color
;
9570 idtype82
= type_model__MClassType
.id
;
9571 if(cltype81
>= var79
->type
->table_size
) {
9574 var80
= var79
->type
->type_table
[cltype81
] == idtype82
;
9577 var_class_name83
= var79
== NULL ?
"null" : var79
->type
->name
;
9578 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name83
);
9579 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 771);
9582 var84
= ((val
* (*)(val
*, val
*))(var78
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var78
, var79
) /* classid on <var78:AbstractCompiler(GlobalCompiler)>*/;
9588 var89
= string__NativeString__to_s_with_length(var87
, var88
);
9592 var90
= NEW_array__Array(&type_array__Arraykernel__Object
);
9593 { /* var90 = array_instance Array[Object] */
9595 var92
= NEW_array__NativeArray(var91
, &type_array__NativeArraykernel__Object
);
9596 ((struct instance_array__NativeArray
*)var92
)->values
[0] = (val
*) var_res
;
9597 ((struct instance_array__NativeArray
*)var92
)->values
[1] = (val
*) var69
;
9598 ((struct instance_array__NativeArray
*)var92
)->values
[2] = (val
*) var_value1
;
9599 ((struct instance_array__NativeArray
*)var92
)->values
[3] = (val
*) var74
;
9600 ((struct instance_array__NativeArray
*)var92
)->values
[4] = (val
*) var84
;
9601 ((struct instance_array__NativeArray
*)var92
)->values
[5] = (val
*) var86
;
9602 ((void (*)(val
*, val
*, long))(var90
->class->vft
[COLOR_array__Array__with_native
]))(var90
, var92
, var91
) /* with_native on <var90:Array[Object]>*/;
9603 CHECK_NEW_array__Array(var90
);
9605 var93
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_string__Object__to_s
]))(var90
) /* to_s on <var90:Array[Object]>*/;
9606 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var93
) /* add on <self:GlobalCompilerVisitor>*/;
9608 var94
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value1
) /* mcasttype on <var_value1:RuntimeVariable>*/;
9609 var95
= ((val
* (*)(val
*))(var_value2
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value2
) /* mcasttype on <var_value2:RuntimeVariable>*/;
9610 var96
= ((short int (*)(val
*, val
*))(var94
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var94
, var95
) /* == on <var94:MType>*/;
9617 var101
= string__NativeString__to_s_with_length(var99
, var100
);
9621 var102
= NEW_array__Array(&type_array__Arraykernel__Object
);
9622 { /* var102 = array_instance Array[Object] */
9624 var104
= NEW_array__NativeArray(var103
, &type_array__NativeArraykernel__Object
);
9625 ((struct instance_array__NativeArray
*)var104
)->values
[0] = (val
*) var_res
;
9626 ((struct instance_array__NativeArray
*)var104
)->values
[1] = (val
*) var98
;
9627 ((void (*)(val
*, val
*, long))(var102
->class->vft
[COLOR_array__Array__with_native
]))(var102
, var104
, var103
) /* with_native on <var102:Array[Object]>*/;
9628 CHECK_NEW_array__Array(var102
);
9630 var105
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_string__Object__to_s
]))(var102
) /* to_s on <var102:Array[Object]>*/;
9631 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var105
) /* add on <self:GlobalCompilerVisitor>*/;
9634 var107
= varonce106
;
9638 var110
= string__NativeString__to_s_with_length(var108
, var109
);
9640 varonce106
= var107
;
9642 var111
= NEW_array__Array(&type_array__Arraykernel__Object
);
9643 { /* var111 = array_instance Array[Object] */
9645 var113
= NEW_array__NativeArray(var112
, &type_array__NativeArraykernel__Object
);
9646 ((struct instance_array__NativeArray
*)var113
)->values
[0] = (val
*) var_res
;
9647 ((struct instance_array__NativeArray
*)var113
)->values
[1] = (val
*) var107
;
9648 ((void (*)(val
*, val
*, long))(var111
->class->vft
[COLOR_array__Array__with_native
]))(var111
, var113
, var112
) /* with_native on <var111:Array[Object]>*/;
9649 CHECK_NEW_array__Array(var111
);
9651 var114
= ((val
* (*)(val
*))(var111
->class->vft
[COLOR_string__Object__to_s
]))(var111
) /* to_s on <var111:Array[Object]>*/;
9652 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var114
) /* add on <self:GlobalCompilerVisitor>*/;
9661 /* method global_compiler#GlobalCompilerVisitor#is_same_type_test for (self: Object, RuntimeVariable, RuntimeVariable): RuntimeVariable */
9662 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__is_same_type_test(val
* self
, val
* p0
, val
* p1
) {
9663 val
* var
/* : RuntimeVariable */;
9664 val
* var1
/* : RuntimeVariable */;
9665 var1
= global_compiler__GlobalCompilerVisitor__is_same_type_test(self
, p0
, p1
);
9670 /* method global_compiler#GlobalCompilerVisitor#class_name_string for (self: GlobalCompilerVisitor, RuntimeVariable): String */
9671 val
* global_compiler__GlobalCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
9672 val
* var
/* : String */;
9673 val
* var_value
/* var value: RuntimeVariable */;
9674 static val
* varonce
;
9675 val
* var1
/* : String */;
9676 char* var2
/* : NativeString */;
9677 long var3
/* : Int */;
9678 val
* var4
/* : String */;
9679 val
* var5
/* : String */;
9680 val
* var_res
/* var res: String */;
9681 static val
* varonce6
;
9682 val
* var7
/* : String */;
9683 char* var8
/* : NativeString */;
9684 long var9
/* : Int */;
9685 val
* var10
/* : String */;
9686 static val
* varonce11
;
9687 val
* var12
/* : String */;
9688 char* var13
/* : NativeString */;
9689 long var14
/* : Int */;
9690 val
* var15
/* : String */;
9691 val
* var16
/* : Array[Object] */;
9692 long var17
/* : Int */;
9693 val
* var18
/* : NativeArray[Object] */;
9694 val
* var19
/* : String */;
9695 val
* var20
/* : MType */;
9696 val
* var21
/* : String */;
9697 static val
* varonce22
;
9698 val
* var23
/* : String */;
9699 char* var24
/* : NativeString */;
9700 long var25
/* : Int */;
9701 val
* var26
/* : String */;
9702 short int var27
/* : Bool */;
9703 static val
* varonce28
;
9704 val
* var29
/* : String */;
9705 char* var30
/* : NativeString */;
9706 long var31
/* : Int */;
9707 val
* var32
/* : String */;
9708 static val
* varonce33
;
9709 val
* var34
/* : String */;
9710 char* var35
/* : NativeString */;
9711 long var36
/* : Int */;
9712 val
* var37
/* : String */;
9713 val
* var38
/* : Array[Object] */;
9714 long var39
/* : Int */;
9715 val
* var40
/* : NativeArray[Object] */;
9716 val
* var41
/* : String */;
9717 static val
* varonce42
;
9718 val
* var43
/* : String */;
9719 char* var44
/* : NativeString */;
9720 long var45
/* : Int */;
9721 val
* var46
/* : String */;
9722 val
* var47
/* : AbstractCompiler */;
9723 val
* var48
/* : MType */;
9724 short int var49
/* : Bool */;
9727 const char* var_class_name
;
9728 val
* var50
/* : String */;
9729 static val
* varonce51
;
9730 val
* var52
/* : String */;
9731 char* var53
/* : NativeString */;
9732 long var54
/* : Int */;
9733 val
* var55
/* : String */;
9734 val
* var56
/* : Array[Object] */;
9735 long var57
/* : Int */;
9736 val
* var58
/* : NativeArray[Object] */;
9737 val
* var59
/* : String */;
9742 var2
= "var_class_name";
9744 var4
= string__NativeString__to_s_with_length(var2
, var3
);
9748 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var1
) /* get_name on <self:GlobalCompilerVisitor>*/;
9753 var8
= "const char* ";
9755 var10
= string__NativeString__to_s_with_length(var8
, var9
);
9764 var15
= string__NativeString__to_s_with_length(var13
, var14
);
9768 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
9769 { /* var16 = array_instance Array[Object] */
9771 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
9772 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
9773 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var_res
;
9774 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
9775 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
9776 CHECK_NEW_array__Array(var16
);
9778 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
9779 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var19
) /* add_decl on <self:GlobalCompilerVisitor>*/;
9780 var20
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9781 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var20
) /* ctype on <var20:MType>*/;
9787 var26
= string__NativeString__to_s_with_length(var24
, var25
);
9791 var27
= ((short int (*)(val
*, val
*))(var21
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var21
, var23
) /* == on <var21:String>*/;
9796 var30
= " = class_names[";
9798 var32
= string__NativeString__to_s_with_length(var30
, var31
);
9805 var35
= "->classid];";
9807 var37
= string__NativeString__to_s_with_length(var35
, var36
);
9811 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
9812 { /* var38 = array_instance Array[Object] */
9814 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
9815 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var_res
;
9816 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var29
;
9817 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var_value
;
9818 ((struct instance_array__NativeArray
*)var40
)->values
[3] = (val
*) var34
;
9819 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
9820 CHECK_NEW_array__Array(var38
);
9822 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
9823 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var41
) /* add on <self:GlobalCompilerVisitor>*/;
9828 var44
= " = class_names[";
9830 var46
= string__NativeString__to_s_with_length(var44
, var45
);
9834 var47
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9835 var48
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9836 /* <var48:MType> isa MClassType */
9837 cltype
= type_model__MClassType
.color
;
9838 idtype
= type_model__MClassType
.id
;
9839 if(cltype
>= var48
->type
->table_size
) {
9842 var49
= var48
->type
->type_table
[cltype
] == idtype
;
9845 var_class_name
= var48
== NULL ?
"null" : var48
->type
->name
;
9846 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
9847 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 788);
9850 var50
= ((val
* (*)(val
*, val
*))(var47
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var47
, var48
) /* classid on <var47:AbstractCompiler(GlobalCompiler)>*/;
9856 var55
= string__NativeString__to_s_with_length(var53
, var54
);
9860 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
9861 { /* var56 = array_instance Array[Object] */
9863 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
9864 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var_res
;
9865 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var43
;
9866 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var50
;
9867 ((struct instance_array__NativeArray
*)var58
)->values
[3] = (val
*) var52
;
9868 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
9869 CHECK_NEW_array__Array(var56
);
9871 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
9872 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var59
) /* add on <self:GlobalCompilerVisitor>*/;
9879 /* method global_compiler#GlobalCompilerVisitor#class_name_string for (self: Object, RuntimeVariable): String */
9880 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
9881 val
* var
/* : String */;
9882 val
* var1
/* : String */;
9883 var1
= global_compiler__GlobalCompilerVisitor__class_name_string(self
, p0
);