1 #include "global_compiler.sep.0.h"
2 /* method global_compiler#ModelBuilder#run_global_compiler for (self: ModelBuilder, MModule, RapidTypeAnalysis) */
3 void global_compiler__ModelBuilder__run_global_compiler(val
* self
, val
* p0
, val
* p1
) {
4 val
* var_mainmodule
/* var mainmodule: MModule */;
5 val
* var_runtime_type_analysis
/* var runtime_type_analysis: RapidTypeAnalysis */;
7 long var_time0
/* var time0: Int */;
8 val
* var1
/* : ToolContext */;
10 val
* var2
/* : String */;
11 char* var3
/* : NativeString */;
12 long var4
/* : Int */;
13 val
* var5
/* : String */;
14 long var6
/* : Int */;
15 val
* var7
/* : GlobalCompiler */;
16 val
* var_compiler
/* var compiler: GlobalCompiler */;
17 val
* var8
/* : HashSet[MClassType] */;
18 val
* var9
/* : Iterator[nullable Object] */;
19 short int var10
/* : Bool */;
20 val
* var11
/* : nullable Object */;
21 val
* var_t
/* var t: MClassType */;
22 val
* var12
/* : HashSet[MClassType] */;
23 val
* var13
/* : Iterator[nullable Object] */;
24 short int var14
/* : Bool */;
25 val
* var15
/* : nullable Object */;
26 val
* var_t16
/* var t: MClassType */;
27 val
* var17
/* : String */;
28 static val
* varonce18
;
29 val
* var19
/* : String */;
30 char* var20
/* : NativeString */;
31 long var21
/* : Int */;
32 val
* var22
/* : String */;
33 short int var23
/* : Bool */;
34 val
* var25
/* : List[AbstractRuntimeFunction] */;
35 short int var26
/* : Bool */;
36 short int var27
/* : Bool */;
37 val
* var28
/* : List[AbstractRuntimeFunction] */;
38 val
* var29
/* : nullable Object */;
39 val
* var_m
/* var m: AbstractRuntimeFunction */;
40 val
* var30
/* : ToolContext */;
41 static val
* varonce31
;
42 val
* var32
/* : String */;
43 char* var33
/* : NativeString */;
44 long var34
/* : Int */;
45 val
* var35
/* : String */;
46 static val
* varonce36
;
47 val
* var37
/* : String */;
48 char* var38
/* : NativeString */;
49 long var39
/* : Int */;
50 val
* var40
/* : String */;
51 val
* var41
/* : HashSet[AbstractRuntimeFunction] */;
52 long var42
/* : Int */;
53 val
* var43
/* : List[AbstractRuntimeFunction] */;
54 long var44
/* : Int */;
55 long var45
/* : Int */;
56 long var47
/* : Int */;
57 static val
* varonce48
;
58 val
* var49
/* : String */;
59 char* var50
/* : NativeString */;
60 long var51
/* : Int */;
61 val
* var52
/* : String */;
62 val
* var53
/* : HashSet[AbstractRuntimeFunction] */;
63 long var54
/* : Int */;
64 static val
* varonce55
;
65 val
* var56
/* : String */;
66 char* var57
/* : NativeString */;
67 long var58
/* : Int */;
68 val
* var59
/* : String */;
69 val
* var60
/* : Array[Object] */;
70 long var61
/* : Int */;
71 val
* var62
/* : NativeArray[Object] */;
72 val
* var63
/* : Object */;
73 val
* var64
/* : Object */;
74 val
* var65
/* : String */;
75 long var66
/* : Int */;
76 val
* var68
/* : ToolContext */;
77 static val
* varonce69
;
78 val
* var70
/* : String */;
79 char* var71
/* : NativeString */;
80 long var72
/* : Int */;
81 val
* var73
/* : String */;
82 val
* var74
/* : HashSet[AbstractRuntimeFunction] */;
83 long var75
/* : Int */;
84 val
* var76
/* : Array[Object] */;
85 long var77
/* : Int */;
86 val
* var78
/* : NativeArray[Object] */;
87 val
* var79
/* : Object */;
88 val
* var80
/* : String */;
89 long var81
/* : Int */;
90 long var82
/* : Int */;
91 long var_time1
/* var time1: Int */;
92 val
* var83
/* : ToolContext */;
93 static val
* varonce84
;
94 val
* var85
/* : String */;
95 char* var86
/* : NativeString */;
96 long var87
/* : Int */;
97 val
* var88
/* : String */;
98 long var89
/* : Int */;
99 long var91
/* : Int */;
100 static val
* varonce92
;
101 val
* var93
/* : String */;
102 char* var94
/* : NativeString */;
103 long var95
/* : Int */;
104 val
* var96
/* : String */;
105 val
* var97
/* : Array[Object] */;
106 long var98
/* : Int */;
107 val
* var99
/* : NativeArray[Object] */;
108 val
* var100
/* : Object */;
109 val
* var101
/* : String */;
110 long var102
/* : Int */;
112 var_runtime_type_analysis
= p1
;
113 var
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
115 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
119 var3
= "*** GENERATING C ***";
121 var5
= string__NativeString__to_s_with_length(var3
, var4
);
126 ((void (*)(val
*, val
*, long))(var1
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var1
, var2
, var6
) /* info on <var1:ToolContext>*/;
127 var7
= NEW_global_compiler__GlobalCompiler(&type_global_compiler__GlobalCompiler
);
128 ((void (*)(val
*, val
*, val
*, val
*))(var7
->class->vft
[COLOR_global_compiler__GlobalCompiler__init
]))(var7
, var_mainmodule
, self
, var_runtime_type_analysis
) /* init on <var7:GlobalCompiler>*/;
130 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_header
]))(var_compiler
) /* compile_header on <var_compiler:GlobalCompiler>*/;
131 var8
= ((val
* (*)(val
*))(var_runtime_type_analysis
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var_runtime_type_analysis
) /* live_types on <var_runtime_type_analysis:RapidTypeAnalysis>*/;
132 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:HashSet[MClassType]>*/;
134 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
136 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
138 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__declare_runtimeclass
]))(var_compiler
, var_t
) /* declare_runtimeclass on <var_compiler:GlobalCompiler>*/;
139 CONTINUE_label
: (void)0;
140 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
142 BREAK_label
: (void)0;
143 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__compile_class_names
]))(var_compiler
) /* compile_class_names on <var_compiler:GlobalCompiler>*/;
144 var12
= ((val
* (*)(val
*))(var_runtime_type_analysis
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var_runtime_type_analysis
) /* live_types on <var_runtime_type_analysis:RapidTypeAnalysis>*/;
145 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:HashSet[MClassType]>*/;
147 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
149 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
151 var17
= ((val
* (*)(val
*))(var_t16
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t16
) /* ctype on <var_t16:MClassType>*/;
157 var22
= string__NativeString__to_s_with_length(var20
, var21
);
161 var23
= ((short int (*)(val
*, val
*))(var17
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var17
, var19
) /* == on <var17:String>*/;
163 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__generate_init_instance
]))(var_compiler
, var_t16
) /* generate_init_instance on <var_compiler:GlobalCompiler>*/;
165 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__generate_box_instance
]))(var_compiler
, var_t16
) /* generate_box_instance on <var_compiler:GlobalCompiler>*/;
167 CONTINUE_label24
: (void)0;
168 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
170 BREAK_label24
: (void)0;
171 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_main_function
]))(var_compiler
) /* compile_main_function on <var_compiler:GlobalCompiler>*/;
173 var25
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(var_compiler
) /* todos on <var_compiler:GlobalCompiler>*/;
174 var26
= ((short int (*)(val
*))(var25
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var25
) /* is_empty on <var25:List[AbstractRuntimeFunction]>*/;
177 var28
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(var_compiler
) /* todos on <var_compiler:GlobalCompiler>*/;
178 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Sequence__shift
]))(var28
) /* shift on <var28:List[AbstractRuntimeFunction]>*/;
180 var30
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
186 var35
= string__NativeString__to_s_with_length(var33
, var34
);
195 var40
= string__NativeString__to_s_with_length(var38
, var39
);
199 var41
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(var_compiler
) /* seen on <var_compiler:GlobalCompiler>*/;
200 var42
= ((long (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var41
) /* length on <var41:HashSet[AbstractRuntimeFunction]>*/;
201 var43
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(var_compiler
) /* todos on <var_compiler:GlobalCompiler>*/;
202 var44
= ((long (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var43
) /* length on <var43:List[AbstractRuntimeFunction]>*/;
203 { /* Inline kernel#Int#- (var42,var44) */
204 var47
= var42
- var44
;
214 var52
= string__NativeString__to_s_with_length(var50
, var51
);
218 var53
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(var_compiler
) /* seen on <var_compiler:GlobalCompiler>*/;
219 var54
= ((long (*)(val
*))(var53
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var53
) /* length on <var53:HashSet[AbstractRuntimeFunction]>*/;
225 var59
= string__NativeString__to_s_with_length(var57
, var58
);
229 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
230 { /* var60 = array_instance Array[Object] */
232 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
233 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var32
;
234 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var_m
;
235 ((struct instance_array__NativeArray
*)var62
)->values
[2] = (val
*) var37
;
236 var63
= BOX_kernel__Int(var45
); /* autobox from Int to Object */
237 ((struct instance_array__NativeArray
*)var62
)->values
[3] = (val
*) var63
;
238 ((struct instance_array__NativeArray
*)var62
)->values
[4] = (val
*) var49
;
239 var64
= BOX_kernel__Int(var54
); /* autobox from Int to Object */
240 ((struct instance_array__NativeArray
*)var62
)->values
[5] = (val
*) var64
;
241 ((struct instance_array__NativeArray
*)var62
)->values
[6] = (val
*) var56
;
242 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
244 var65
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
246 ((void (*)(val
*, val
*, long))(var30
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var30
, var65
, var66
) /* info on <var30:ToolContext>*/;
247 ((void (*)(val
*, val
*))(var_m
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__compile_to_c
]))(var_m
, var_compiler
) /* compile_to_c on <var_m:AbstractRuntimeFunction>*/;
248 CONTINUE_label67
: (void)0;
250 BREAK_label67
: (void)0;
251 var68
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
255 var71
= "Total methods to compile to C: ";
257 var73
= string__NativeString__to_s_with_length(var71
, var72
);
261 var74
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(var_compiler
) /* seen on <var_compiler:GlobalCompiler>*/;
262 var75
= ((long (*)(val
*))(var74
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var74
) /* length on <var74:HashSet[AbstractRuntimeFunction]>*/;
263 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
264 { /* var76 = array_instance Array[Object] */
266 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
267 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var70
;
268 var79
= BOX_kernel__Int(var75
); /* autobox from Int to Object */
269 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var79
;
270 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
272 var80
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
274 ((void (*)(val
*, val
*, long))(var68
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var68
, var80
, var81
) /* info on <var68:ToolContext>*/;
275 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__display_stats
]))(var_compiler
) /* display_stats on <var_compiler:GlobalCompiler>*/;
276 var82
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
278 var83
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
282 var86
= "*** END GENERATING C: ";
284 var88
= string__NativeString__to_s_with_length(var86
, var87
);
288 { /* Inline kernel#Int#- (var_time1,var_time0) */
289 var91
= var_time1
- var_time0
;
299 var96
= string__NativeString__to_s_with_length(var94
, var95
);
303 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
304 { /* var97 = array_instance Array[Object] */
306 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
307 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var85
;
308 var100
= BOX_kernel__Int(var89
); /* autobox from Int to Object */
309 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var100
;
310 ((struct instance_array__NativeArray
*)var99
)->values
[2] = (val
*) var93
;
311 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
313 var101
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
315 ((void (*)(val
*, val
*, long))(var83
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var83
, var101
, var102
) /* info on <var83:ToolContext>*/;
316 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__ModelBuilder__write_and_make
]))(self
, var_compiler
) /* write_and_make on <self:ModelBuilder>*/;
319 /* method global_compiler#ModelBuilder#run_global_compiler for (self: Object, MModule, RapidTypeAnalysis) */
320 void VIRTUAL_global_compiler__ModelBuilder__run_global_compiler(val
* self
, val
* p0
, val
* p1
) {
321 global_compiler__ModelBuilder__run_global_compiler(self
, p0
, p1
);
324 /* method global_compiler#GlobalCompiler#runtime_type_analysis for (self: GlobalCompiler): RapidTypeAnalysis */
325 val
* global_compiler__GlobalCompiler__runtime_type_analysis(val
* self
) {
326 val
* var
/* : RapidTypeAnalysis */;
327 val
* var1
/* : RapidTypeAnalysis */;
328 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64druntime_type_analysis
].val
; /* @runtime_type_analysis on <self:GlobalCompiler> */
330 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @runtime_type_analysis");
331 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 85);
338 /* method global_compiler#GlobalCompiler#runtime_type_analysis for (self: Object): RapidTypeAnalysis */
339 val
* VIRTUAL_global_compiler__GlobalCompiler__runtime_type_analysis(val
* self
) {
340 val
* var
/* : RapidTypeAnalysis */;
341 val
* var1
/* : RapidTypeAnalysis */;
342 var1
= global_compiler__GlobalCompiler__runtime_type_analysis(self
);
347 /* method global_compiler#GlobalCompiler#runtime_type_analysis= for (self: GlobalCompiler, RapidTypeAnalysis) */
348 void global_compiler__GlobalCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
349 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64druntime_type_analysis
].val
= p0
; /* @runtime_type_analysis on <self:GlobalCompiler> */
352 /* method global_compiler#GlobalCompiler#runtime_type_analysis= for (self: Object, RapidTypeAnalysis) */
353 void VIRTUAL_global_compiler__GlobalCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
354 global_compiler__GlobalCompiler__runtime_type_analysis_61d(self
, p0
);
357 /* method global_compiler#GlobalCompiler#init for (self: GlobalCompiler, MModule, ModelBuilder, RapidTypeAnalysis) */
358 void global_compiler__GlobalCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
359 val
* var_mainmodule
/* var mainmodule: MModule */;
360 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
361 val
* var_runtime_type_analysis
/* var runtime_type_analysis: RapidTypeAnalysis */;
362 val
* var
/* : String */;
364 val
* var1
/* : String */;
365 char* var2
/* : NativeString */;
366 long var3
/* : Int */;
367 val
* var4
/* : String */;
368 val
* var5
/* : Array[Object] */;
369 long var6
/* : Int */;
370 val
* var7
/* : NativeArray[Object] */;
371 val
* var8
/* : String */;
372 val
* var9
/* : CodeFile */;
373 val
* var_file
/* var file: CodeFile */;
374 val
* var10
/* : CodeWriter */;
375 val
* var11
/* : Array[MClassType] */;
376 val
* var12
/* : HashSet[MClassType] */;
377 val
* var13
/* : Iterator[nullable Object] */;
378 short int var14
/* : Bool */;
379 val
* var15
/* : nullable Object */;
380 val
* var_t
/* var t: MClassType */;
381 val
* var16
/* : String */;
382 static val
* varonce17
;
383 val
* var18
/* : String */;
384 char* var19
/* : NativeString */;
385 long var20
/* : Int */;
386 val
* var21
/* : String */;
387 short int var22
/* : Bool */;
388 val
* var23
/* : Array[MClassType] */;
390 var_modelbuilder
= p1
;
391 var_runtime_type_analysis
= p2
;
392 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__init
]))(self
, var_mainmodule
, var_modelbuilder
) /* init on <self:GlobalCompiler>*/;
393 var
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__name
]))(var_mainmodule
) /* name on <var_mainmodule:MModule>*/;
399 var4
= string__NativeString__to_s_with_length(var2
, var3
);
403 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
404 { /* var5 = array_instance Array[Object] */
406 var7
= NEW_array__NativeArray(var6
, &type_array__NativeArraykernel__Object
);
407 ((struct instance_array__NativeArray
*)var7
)->values
[0] = (val
*) var
;
408 ((struct instance_array__NativeArray
*)var7
)->values
[1] = (val
*) var1
;
409 ((void (*)(val
*, val
*, long))(var5
->class->vft
[COLOR_array__Array__with_native
]))(var5
, var7
, var6
) /* with_native on <var5:Array[Object]>*/;
411 var8
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_string__Object__to_s
]))(var5
) /* to_s on <var5:Array[Object]>*/;
412 var9
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(self
, var8
) /* new_file on <self:GlobalCompiler>*/;
414 var10
= NEW_abstract_compiler__CodeWriter(&type_abstract_compiler__CodeWriter
);
415 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_compiler__CodeWriter__init
]))(var10
, var_file
) /* init on <var10:CodeWriter>*/;
416 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header_61d
]))(self
, var10
) /* header= on <self:GlobalCompiler>*/;
417 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis_61d
]))(self
, var_runtime_type_analysis
) /* runtime_type_analysis= on <self:GlobalCompiler>*/;
418 var11
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
419 ((void (*)(val
*))(var11
->class->vft
[COLOR_array__Array__init
]))(var11
) /* init on <var11:Array[MClassType]>*/;
420 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__live_primitive_types_61d
]))(self
, var11
) /* live_primitive_types= on <self:GlobalCompiler>*/;
421 var12
= ((val
* (*)(val
*))(var_runtime_type_analysis
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var_runtime_type_analysis
) /* live_types on <var_runtime_type_analysis:RapidTypeAnalysis>*/;
422 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:HashSet[MClassType]>*/;
424 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
426 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
428 var16
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t
) /* ctype on <var_t:MClassType>*/;
434 var21
= string__NativeString__to_s_with_length(var19
, var20
);
438 var22
= ((short int (*)(val
*, val
*))(var16
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var16
, var18
) /* != on <var16:String>*/;
440 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__live_primitive_types
]))(self
) /* live_primitive_types on <self:GlobalCompiler>*/;
441 ((void (*)(val
*, val
*))(var23
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var23
, var_t
) /* add on <var23:Array[MClassType]>*/;
444 CONTINUE_label
: (void)0;
445 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
447 BREAK_label
: (void)0;
450 /* method global_compiler#GlobalCompiler#init for (self: Object, MModule, ModelBuilder, RapidTypeAnalysis) */
451 void VIRTUAL_global_compiler__GlobalCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
452 global_compiler__GlobalCompiler__init(self
, p0
, p1
, p2
);
455 /* method global_compiler#GlobalCompiler#compile_class_names for (self: GlobalCompiler) */
456 void global_compiler__GlobalCompiler__compile_class_names(val
* self
) {
457 val
* var
/* : AbstractCompilerVisitor */;
458 val
* var_v
/* var v: GlobalCompilerVisitor */;
459 val
* var1
/* : CodeWriter */;
461 val
* var2
/* : String */;
462 char* var3
/* : NativeString */;
463 long var4
/* : Int */;
464 val
* var5
/* : String */;
465 static val
* varonce6
;
466 val
* var7
/* : String */;
467 char* var8
/* : NativeString */;
468 long var9
/* : Int */;
469 val
* var10
/* : String */;
470 val
* var11
/* : RapidTypeAnalysis */;
471 val
* var12
/* : HashSet[MClassType] */;
472 val
* var13
/* : Iterator[nullable Object] */;
473 short int var14
/* : Bool */;
474 val
* var15
/* : nullable Object */;
475 val
* var_t
/* var t: MClassType */;
476 static val
* varonce16
;
477 val
* var17
/* : String */;
478 char* var18
/* : NativeString */;
479 long var19
/* : Int */;
480 val
* var20
/* : String */;
481 static val
* varonce21
;
482 val
* var22
/* : String */;
483 char* var23
/* : NativeString */;
484 long var24
/* : Int */;
485 val
* var25
/* : String */;
486 val
* var26
/* : String */;
487 static val
* varonce27
;
488 val
* var28
/* : String */;
489 char* var29
/* : NativeString */;
490 long var30
/* : Int */;
491 val
* var31
/* : String */;
492 val
* var32
/* : Array[Object] */;
493 long var33
/* : Int */;
494 val
* var34
/* : NativeArray[Object] */;
495 val
* var35
/* : String */;
496 static val
* varonce36
;
497 val
* var37
/* : String */;
498 char* var38
/* : NativeString */;
499 long var39
/* : Int */;
500 val
* var40
/* : String */;
501 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:GlobalCompiler>*/;
503 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
507 var3
= "extern const char const * class_names[];";
509 var5
= string__NativeString__to_s_with_length(var3
, var4
);
513 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var1
, var2
) /* add_decl on <var1:CodeWriter>*/;
517 var8
= "const char const * class_names[] = {";
519 var10
= string__NativeString__to_s_with_length(var8
, var9
);
523 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var7
) /* add on <var_v:GlobalCompilerVisitor>*/;
524 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
525 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var11
) /* live_types on <var11:RapidTypeAnalysis>*/;
526 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:HashSet[MClassType]>*/;
528 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
530 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
537 var20
= string__NativeString__to_s_with_length(var18
, var19
);
546 var25
= string__NativeString__to_s_with_length(var23
, var24
);
550 var26
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(self
, var_t
) /* classid on <self:GlobalCompiler>*/;
556 var31
= string__NativeString__to_s_with_length(var29
, var30
);
560 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
561 { /* var32 = array_instance Array[Object] */
563 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
564 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var17
;
565 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_t
;
566 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var22
;
567 ((struct instance_array__NativeArray
*)var34
)->values
[3] = (val
*) var26
;
568 ((struct instance_array__NativeArray
*)var34
)->values
[4] = (val
*) var28
;
569 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
571 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
572 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var35
) /* add on <var_v:GlobalCompilerVisitor>*/;
573 CONTINUE_label
: (void)0;
574 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
576 BREAK_label
: (void)0;
582 var40
= string__NativeString__to_s_with_length(var38
, var39
);
586 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var37
) /* add on <var_v:GlobalCompilerVisitor>*/;
589 /* method global_compiler#GlobalCompiler#compile_class_names for (self: Object) */
590 void VIRTUAL_global_compiler__GlobalCompiler__compile_class_names(val
* self
) {
591 global_compiler__GlobalCompiler__compile_class_names(self
);
594 /* method global_compiler#GlobalCompiler#classid for (self: GlobalCompiler, MClassType): String */
595 val
* global_compiler__GlobalCompiler__classid(val
* self
, val
* p0
) {
596 val
* var
/* : String */;
597 val
* var_mtype
/* var mtype: MClassType */;
598 val
* var1
/* : HashMap[MClassType, String] */;
599 short int var2
/* : Bool */;
600 val
* var3
/* : HashMap[MClassType, String] */;
601 val
* var4
/* : nullable Object */;
603 val
* var5
/* : String */;
604 char* var6
/* : NativeString */;
605 long var7
/* : Int */;
606 val
* var8
/* : String */;
607 val
* var9
/* : Array[Object] */;
608 long var10
/* : Int */;
609 val
* var11
/* : NativeArray[Object] */;
610 val
* var12
/* : String */;
612 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
613 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var1
, var_mtype
) /* has_key on <var1:HashMap[MClassType, String]>*/;
615 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
616 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var3
, var_mtype
) /* [] on <var3:HashMap[MClassType, String]>*/;
624 var6
= "No classid for ";
626 var8
= string__NativeString__to_s_with_length(var6
, var7
);
630 var9
= NEW_array__Array(&type_array__Arraykernel__Object
);
631 { /* var9 = array_instance Array[Object] */
633 var11
= NEW_array__NativeArray(var10
, &type_array__NativeArraykernel__Object
);
634 ((struct instance_array__NativeArray
*)var11
)->values
[0] = (val
*) var5
;
635 ((struct instance_array__NativeArray
*)var11
)->values
[1] = (val
*) var_mtype
;
636 ((void (*)(val
*, val
*, long))(var9
->class->vft
[COLOR_array__Array__with_native
]))(var9
, var11
, var10
) /* with_native on <var9:Array[Object]>*/;
638 var12
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_string__Object__to_s
]))(var9
) /* to_s on <var9:Array[Object]>*/;
639 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var12
) /* print on <self:GlobalCompiler>*/;
640 fprintf(stderr
, "Runtime error: %s", "Aborted");
641 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 121);
646 /* method global_compiler#GlobalCompiler#classid for (self: Object, MClassType): String */
647 val
* VIRTUAL_global_compiler__GlobalCompiler__classid(val
* self
, val
* p0
) {
648 val
* var
/* : String */;
649 val
* var1
/* : String */;
650 var1
= global_compiler__GlobalCompiler__classid(self
, p0
);
655 /* method global_compiler#GlobalCompiler#classids for (self: GlobalCompiler): HashMap[MClassType, String] */
656 val
* global_compiler__GlobalCompiler__classids(val
* self
) {
657 val
* var
/* : HashMap[MClassType, String] */;
658 val
* var1
/* : HashMap[MClassType, String] */;
659 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dclassids
].val
; /* @classids on <self:GlobalCompiler> */
661 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @classids");
662 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 124);
669 /* method global_compiler#GlobalCompiler#classids for (self: Object): HashMap[MClassType, String] */
670 val
* VIRTUAL_global_compiler__GlobalCompiler__classids(val
* self
) {
671 val
* var
/* : HashMap[MClassType, String] */;
672 val
* var1
/* : HashMap[MClassType, String] */;
673 var1
= global_compiler__GlobalCompiler__classids(self
);
678 /* method global_compiler#GlobalCompiler#classids= for (self: GlobalCompiler, HashMap[MClassType, String]) */
679 void global_compiler__GlobalCompiler__classids_61d(val
* self
, val
* p0
) {
680 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dclassids
].val
= p0
; /* @classids on <self:GlobalCompiler> */
683 /* method global_compiler#GlobalCompiler#classids= for (self: Object, HashMap[MClassType, String]) */
684 void VIRTUAL_global_compiler__GlobalCompiler__classids_61d(val
* self
, val
* p0
) {
685 global_compiler__GlobalCompiler__classids_61d(self
, p0
);
688 /* method global_compiler#GlobalCompiler#compile_header_structs for (self: GlobalCompiler) */
689 void global_compiler__GlobalCompiler__compile_header_structs(val
* self
) {
690 val
* var
/* : CodeWriter */;
692 val
* var1
/* : String */;
693 char* var2
/* : NativeString */;
694 long var3
/* : Int */;
695 val
* var4
/* : String */;
696 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
700 var2
= "typedef struct {int classid;} val; /* general C type representing a Nit instance. */";
702 var4
= string__NativeString__to_s_with_length(var2
, var3
);
706 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var
, var1
) /* add_decl on <var:CodeWriter>*/;
709 /* method global_compiler#GlobalCompiler#compile_header_structs for (self: Object) */
710 void VIRTUAL_global_compiler__GlobalCompiler__compile_header_structs(val
* self
) {
711 global_compiler__GlobalCompiler__compile_header_structs(self
);
714 /* method global_compiler#GlobalCompiler#live_primitive_types for (self: GlobalCompiler): Array[MClassType] */
715 val
* global_compiler__GlobalCompiler__live_primitive_types(val
* self
) {
716 val
* var
/* : Array[MClassType] */;
717 val
* var1
/* : Array[MClassType] */;
718 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dlive_primitive_types
].val
; /* @live_primitive_types on <self:GlobalCompiler> */
720 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @live_primitive_types");
721 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 135);
728 /* method global_compiler#GlobalCompiler#live_primitive_types for (self: Object): Array[MClassType] */
729 val
* VIRTUAL_global_compiler__GlobalCompiler__live_primitive_types(val
* self
) {
730 val
* var
/* : Array[MClassType] */;
731 val
* var1
/* : Array[MClassType] */;
732 var1
= global_compiler__GlobalCompiler__live_primitive_types(self
);
737 /* method global_compiler#GlobalCompiler#live_primitive_types= for (self: GlobalCompiler, Array[MClassType]) */
738 void global_compiler__GlobalCompiler__live_primitive_types_61d(val
* self
, val
* p0
) {
739 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dlive_primitive_types
].val
= p0
; /* @live_primitive_types on <self:GlobalCompiler> */
742 /* method global_compiler#GlobalCompiler#live_primitive_types= for (self: Object, Array[MClassType]) */
743 void VIRTUAL_global_compiler__GlobalCompiler__live_primitive_types_61d(val
* self
, val
* p0
) {
744 global_compiler__GlobalCompiler__live_primitive_types_61d(self
, p0
);
747 /* method global_compiler#GlobalCompiler#todo for (self: GlobalCompiler, AbstractRuntimeFunction) */
748 void global_compiler__GlobalCompiler__todo(val
* self
, val
* p0
) {
749 val
* var_m
/* var m: AbstractRuntimeFunction */;
750 val
* var
/* : HashSet[AbstractRuntimeFunction] */;
751 short int var1
/* : Bool */;
752 val
* var2
/* : List[AbstractRuntimeFunction] */;
753 val
* var3
/* : HashSet[AbstractRuntimeFunction] */;
755 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(self
) /* seen on <self:GlobalCompiler>*/;
756 var1
= ((short int (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var
, var_m
) /* has on <var:HashSet[AbstractRuntimeFunction]>*/;
761 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__todos
]))(self
) /* todos on <self:GlobalCompiler>*/;
762 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_m
) /* add on <var2:List[AbstractRuntimeFunction]>*/;
763 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__seen
]))(self
) /* seen on <self:GlobalCompiler>*/;
764 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var3
, var_m
) /* add on <var3:HashSet[AbstractRuntimeFunction]>*/;
767 /* method global_compiler#GlobalCompiler#todo for (self: Object, AbstractRuntimeFunction) */
768 void VIRTUAL_global_compiler__GlobalCompiler__todo(val
* self
, val
* p0
) {
769 global_compiler__GlobalCompiler__todo(self
, p0
);
772 /* method global_compiler#GlobalCompiler#todos for (self: GlobalCompiler): List[AbstractRuntimeFunction] */
773 val
* global_compiler__GlobalCompiler__todos(val
* self
) {
774 val
* var
/* : List[AbstractRuntimeFunction] */;
775 val
* var1
/* : List[AbstractRuntimeFunction] */;
776 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dtodos
].val
; /* @todos on <self:GlobalCompiler> */
778 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @todos");
779 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 147);
786 /* method global_compiler#GlobalCompiler#todos for (self: Object): List[AbstractRuntimeFunction] */
787 val
* VIRTUAL_global_compiler__GlobalCompiler__todos(val
* self
) {
788 val
* var
/* : List[AbstractRuntimeFunction] */;
789 val
* var1
/* : List[AbstractRuntimeFunction] */;
790 var1
= global_compiler__GlobalCompiler__todos(self
);
795 /* method global_compiler#GlobalCompiler#todos= for (self: GlobalCompiler, List[AbstractRuntimeFunction]) */
796 void global_compiler__GlobalCompiler__todos_61d(val
* self
, val
* p0
) {
797 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dtodos
].val
= p0
; /* @todos on <self:GlobalCompiler> */
800 /* method global_compiler#GlobalCompiler#todos= for (self: Object, List[AbstractRuntimeFunction]) */
801 void VIRTUAL_global_compiler__GlobalCompiler__todos_61d(val
* self
, val
* p0
) {
802 global_compiler__GlobalCompiler__todos_61d(self
, p0
);
805 /* method global_compiler#GlobalCompiler#seen for (self: GlobalCompiler): HashSet[AbstractRuntimeFunction] */
806 val
* global_compiler__GlobalCompiler__seen(val
* self
) {
807 val
* var
/* : HashSet[AbstractRuntimeFunction] */;
808 val
* var1
/* : HashSet[AbstractRuntimeFunction] */;
809 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dseen
].val
; /* @seen on <self:GlobalCompiler> */
811 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @seen");
812 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 150);
819 /* method global_compiler#GlobalCompiler#seen for (self: Object): HashSet[AbstractRuntimeFunction] */
820 val
* VIRTUAL_global_compiler__GlobalCompiler__seen(val
* self
) {
821 val
* var
/* : HashSet[AbstractRuntimeFunction] */;
822 val
* var1
/* : HashSet[AbstractRuntimeFunction] */;
823 var1
= global_compiler__GlobalCompiler__seen(self
);
828 /* method global_compiler#GlobalCompiler#seen= for (self: GlobalCompiler, HashSet[AbstractRuntimeFunction]) */
829 void global_compiler__GlobalCompiler__seen_61d(val
* self
, val
* p0
) {
830 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dseen
].val
= p0
; /* @seen on <self:GlobalCompiler> */
833 /* method global_compiler#GlobalCompiler#seen= for (self: Object, HashSet[AbstractRuntimeFunction]) */
834 void VIRTUAL_global_compiler__GlobalCompiler__seen_61d(val
* self
, val
* p0
) {
835 global_compiler__GlobalCompiler__seen_61d(self
, p0
);
838 /* method global_compiler#GlobalCompiler#declare_runtimeclass for (self: GlobalCompiler, MClassType) */
839 void global_compiler__GlobalCompiler__declare_runtimeclass(val
* self
, val
* p0
) {
840 val
* var_mtype
/* var mtype: MClassType */;
841 val
* var
/* : CodeWriter */;
842 val
* var_v
/* var v: CodeWriter */;
843 val
* var1
/* : RapidTypeAnalysis */;
844 val
* var2
/* : HashSet[MClassType] */;
845 short int var3
/* : Bool */;
847 val
* var4
/* : String */;
848 char* var5
/* : NativeString */;
849 long var6
/* : Int */;
850 val
* var7
/* : String */;
851 static val
* varonce8
;
852 val
* var9
/* : String */;
853 char* var10
/* : NativeString */;
854 long var11
/* : Int */;
855 val
* var12
/* : String */;
856 val
* var13
/* : Array[Object] */;
857 long var14
/* : Int */;
858 val
* var15
/* : NativeArray[Object] */;
859 val
* var16
/* : String */;
860 val
* var17
/* : HashMap[MClassType, String] */;
861 long var18
/* : Int */;
862 long var_idnum
/* var idnum: Int */;
863 static val
* varonce19
;
864 val
* var20
/* : String */;
865 char* var21
/* : NativeString */;
866 long var22
/* : Int */;
867 val
* var23
/* : String */;
868 val
* var24
/* : String */;
869 val
* var25
/* : String */;
870 val
* var_idname
/* var idname: String */;
871 val
* var26
/* : HashMap[MClassType, String] */;
872 static val
* varonce27
;
873 val
* var28
/* : String */;
874 char* var29
/* : NativeString */;
875 long var30
/* : Int */;
876 val
* var31
/* : String */;
877 static val
* varonce32
;
878 val
* var33
/* : String */;
879 char* var34
/* : NativeString */;
880 long var35
/* : Int */;
881 val
* var36
/* : String */;
882 static val
* varonce37
;
883 val
* var38
/* : String */;
884 char* var39
/* : NativeString */;
885 long var40
/* : Int */;
886 val
* var41
/* : String */;
887 static val
* varonce42
;
888 val
* var43
/* : String */;
889 char* var44
/* : NativeString */;
890 long var45
/* : Int */;
891 val
* var46
/* : String */;
892 val
* var47
/* : Array[Object] */;
893 long var48
/* : Int */;
894 val
* var49
/* : NativeArray[Object] */;
895 val
* var50
/* : Object */;
896 val
* var51
/* : String */;
897 static val
* varonce52
;
898 val
* var53
/* : String */;
899 char* var54
/* : NativeString */;
900 long var55
/* : Int */;
901 val
* var56
/* : String */;
902 val
* var57
/* : String */;
903 static val
* varonce58
;
904 val
* var59
/* : String */;
905 char* var60
/* : NativeString */;
906 long var61
/* : Int */;
907 val
* var62
/* : String */;
908 val
* var63
/* : Array[Object] */;
909 long var64
/* : Int */;
910 val
* var65
/* : NativeArray[Object] */;
911 val
* var66
/* : String */;
912 static val
* varonce67
;
913 val
* var68
/* : String */;
914 char* var69
/* : NativeString */;
915 long var70
/* : Int */;
916 val
* var71
/* : String */;
917 static val
* varonce72
;
918 val
* var73
/* : String */;
919 char* var74
/* : NativeString */;
920 long var75
/* : Int */;
921 val
* var76
/* : String */;
922 val
* var77
/* : Array[Object] */;
923 long var78
/* : Int */;
924 val
* var79
/* : NativeArray[Object] */;
925 val
* var80
/* : String */;
926 val
* var81
/* : MClass */;
927 val
* var82
/* : String */;
928 static val
* varonce83
;
929 val
* var84
/* : String */;
930 char* var85
/* : NativeString */;
931 long var86
/* : Int */;
932 val
* var87
/* : String */;
933 short int var88
/* : Bool */;
934 val
* var89
/* : Array[MType] */;
935 val
* var90
/* : nullable Object */;
936 val
* var91
/* : String */;
937 static val
* varonce92
;
938 val
* var93
/* : String */;
939 char* var94
/* : NativeString */;
940 long var95
/* : Int */;
941 val
* var96
/* : String */;
942 val
* var97
/* : Array[Object] */;
943 long var98
/* : Int */;
944 val
* var99
/* : NativeArray[Object] */;
945 val
* var100
/* : String */;
946 val
* var101
/* : String */;
947 static val
* varonce102
;
948 val
* var103
/* : String */;
949 char* var104
/* : NativeString */;
950 long var105
/* : Int */;
951 val
* var106
/* : String */;
952 short int var107
/* : Bool */;
953 val
* var108
/* : String */;
954 static val
* varonce109
;
955 val
* var110
/* : String */;
956 char* var111
/* : NativeString */;
957 long var112
/* : Int */;
958 val
* var113
/* : String */;
959 val
* var114
/* : Array[Object] */;
960 long var115
/* : Int */;
961 val
* var116
/* : NativeArray[Object] */;
962 val
* var117
/* : String */;
963 val
* var118
/* : MModule */;
964 val
* var119
/* : Set[MClassDef] */;
965 val
* var120
/* : Iterator[nullable Object] */;
966 short int var121
/* : Bool */;
967 val
* var122
/* : nullable Object */;
968 val
* var_cd
/* var cd: MClassDef */;
969 val
* var123
/* : Array[MProperty] */;
970 val
* var124
/* : Iterator[nullable Object] */;
971 short int var125
/* : Bool */;
972 val
* var126
/* : nullable Object */;
973 val
* var_p
/* var p: MProperty */;
974 short int var127
/* : Bool */;
977 short int var128
/* : Bool */;
978 val
* var129
/* : MPropDef */;
979 val
* var130
/* : nullable MType */;
980 val
* var_t
/* var t: MType */;
981 val
* var131
/* : MModule */;
982 val
* var132
/* : MType */;
983 val
* var133
/* : String */;
984 static val
* varonce134
;
985 val
* var135
/* : String */;
986 char* var136
/* : NativeString */;
987 long var137
/* : Int */;
988 val
* var138
/* : String */;
989 val
* var139
/* : MPropDef */;
990 val
* var140
/* : String */;
991 static val
* varonce141
;
992 val
* var142
/* : String */;
993 char* var143
/* : NativeString */;
994 long var144
/* : Int */;
995 val
* var145
/* : String */;
996 static val
* varonce146
;
997 val
* var147
/* : String */;
998 char* var148
/* : NativeString */;
999 long var149
/* : Int */;
1000 val
* var150
/* : String */;
1001 static val
* varonce151
;
1002 val
* var152
/* : String */;
1003 char* var153
/* : NativeString */;
1004 long var154
/* : Int */;
1005 val
* var155
/* : String */;
1006 val
* var156
/* : Array[Object] */;
1007 long var157
/* : Int */;
1008 val
* var158
/* : NativeArray[Object] */;
1009 val
* var159
/* : String */;
1010 static val
* varonce161
;
1011 val
* var162
/* : String */;
1012 char* var163
/* : NativeString */;
1013 long var164
/* : Int */;
1014 val
* var165
/* : String */;
1016 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
1018 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
1019 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var1
) /* live_types on <var1:RapidTypeAnalysis>*/;
1020 var3
= ((short int (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var2
, var_mtype
) /* has on <var2:HashSet[MClassType]>*/;
1022 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1023 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 157);
1029 var5
= "/* runtime class ";
1031 var7
= string__NativeString__to_s_with_length(var5
, var6
);
1040 var12
= string__NativeString__to_s_with_length(var10
, var11
);
1044 var13
= NEW_array__Array(&type_array__Arraykernel__Object
);
1045 { /* var13 = array_instance Array[Object] */
1047 var15
= NEW_array__NativeArray(var14
, &type_array__NativeArraykernel__Object
);
1048 ((struct instance_array__NativeArray
*)var15
)->values
[0] = (val
*) var4
;
1049 ((struct instance_array__NativeArray
*)var15
)->values
[1] = (val
*) var_mtype
;
1050 ((struct instance_array__NativeArray
*)var15
)->values
[2] = (val
*) var9
;
1051 ((void (*)(val
*, val
*, long))(var13
->class->vft
[COLOR_array__Array__with_native
]))(var13
, var15
, var14
) /* with_native on <var13:Array[Object]>*/;
1053 var16
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_string__Object__to_s
]))(var13
) /* to_s on <var13:Array[Object]>*/;
1054 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var16
) /* add_decl on <var_v:CodeWriter>*/;
1055 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
1056 var18
= ((long (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__MapRead__length
]))(var17
) /* length on <var17:HashMap[MClassType, String]>*/;
1063 var23
= string__NativeString__to_s_with_length(var21
, var22
);
1067 var24
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1068 var25
= ((val
* (*)(val
*, val
*))(var20
->class->vft
[COLOR_string__String___43d
]))(var20
, var24
) /* + on <var20:String>*/;
1070 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classids
]))(self
) /* classids on <self:GlobalCompiler>*/;
1071 ((void (*)(val
*, val
*, val
*))(var26
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var26
, var_mtype
, var_idname
) /* []= on <var26:HashMap[MClassType, String]>*/;
1077 var31
= string__NativeString__to_s_with_length(var29
, var30
);
1086 var36
= string__NativeString__to_s_with_length(var34
, var35
);
1095 var41
= string__NativeString__to_s_with_length(var39
, var40
);
1104 var46
= string__NativeString__to_s_with_length(var44
, var45
);
1108 var47
= NEW_array__Array(&type_array__Arraykernel__Object
);
1109 { /* var47 = array_instance Array[Object] */
1111 var49
= NEW_array__NativeArray(var48
, &type_array__NativeArraykernel__Object
);
1112 ((struct instance_array__NativeArray
*)var49
)->values
[0] = (val
*) var28
;
1113 ((struct instance_array__NativeArray
*)var49
)->values
[1] = (val
*) var_idname
;
1114 ((struct instance_array__NativeArray
*)var49
)->values
[2] = (val
*) var33
;
1115 var50
= BOX_kernel__Int(var_idnum
); /* autobox from Int to Object */
1116 ((struct instance_array__NativeArray
*)var49
)->values
[3] = (val
*) var50
;
1117 ((struct instance_array__NativeArray
*)var49
)->values
[4] = (val
*) var38
;
1118 ((struct instance_array__NativeArray
*)var49
)->values
[5] = (val
*) var_mtype
;
1119 ((struct instance_array__NativeArray
*)var49
)->values
[6] = (val
*) var43
;
1120 ((void (*)(val
*, val
*, long))(var47
->class->vft
[COLOR_array__Array__with_native
]))(var47
, var49
, var48
) /* with_native on <var47:Array[Object]>*/;
1122 var51
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_string__Object__to_s
]))(var47
) /* to_s on <var47:Array[Object]>*/;
1123 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var51
) /* add_decl on <var_v:CodeWriter>*/;
1129 var56
= string__NativeString__to_s_with_length(var54
, var55
);
1133 var57
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1139 var62
= string__NativeString__to_s_with_length(var60
, var61
);
1143 var63
= NEW_array__Array(&type_array__Arraykernel__Object
);
1144 { /* var63 = array_instance Array[Object] */
1146 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArraykernel__Object
);
1147 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var53
;
1148 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var57
;
1149 ((struct instance_array__NativeArray
*)var65
)->values
[2] = (val
*) var59
;
1150 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Object]>*/;
1152 var66
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_string__Object__to_s
]))(var63
) /* to_s on <var63:Array[Object]>*/;
1153 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var66
) /* add_decl on <var_v:CodeWriter>*/;
1157 var69
= "int classid; /* must be ";
1159 var71
= string__NativeString__to_s_with_length(var69
, var70
);
1168 var76
= string__NativeString__to_s_with_length(var74
, var75
);
1172 var77
= NEW_array__Array(&type_array__Arraykernel__Object
);
1173 { /* var77 = array_instance Array[Object] */
1175 var79
= NEW_array__NativeArray(var78
, &type_array__NativeArraykernel__Object
);
1176 ((struct instance_array__NativeArray
*)var79
)->values
[0] = (val
*) var68
;
1177 ((struct instance_array__NativeArray
*)var79
)->values
[1] = (val
*) var_idname
;
1178 ((struct instance_array__NativeArray
*)var79
)->values
[2] = (val
*) var73
;
1179 ((void (*)(val
*, val
*, long))(var77
->class->vft
[COLOR_array__Array__with_native
]))(var77
, var79
, var78
) /* with_native on <var77:Array[Object]>*/;
1181 var80
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_string__Object__to_s
]))(var77
) /* to_s on <var77:Array[Object]>*/;
1182 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var80
) /* add_decl on <var_v:CodeWriter>*/;
1183 var81
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
1184 var82
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_model__MClass__name
]))(var81
) /* name on <var81:MClass>*/;
1188 var85
= "NativeArray";
1190 var87
= string__NativeString__to_s_with_length(var85
, var86
);
1194 var88
= ((short int (*)(val
*, val
*))(var82
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var82
, var84
) /* == on <var82:String>*/;
1196 var89
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
1197 var90
= ((val
* (*)(val
*))(var89
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var89
) /* first on <var89:Array[MType]>*/;
1198 var91
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var90
) /* ctype on <var90:nullable Object(MType)>*/;
1202 var94
= " values[1];";
1204 var96
= string__NativeString__to_s_with_length(var94
, var95
);
1208 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
1209 { /* var97 = array_instance Array[Object] */
1211 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
1212 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var91
;
1213 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var93
;
1214 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
1216 var100
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
1217 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var100
) /* add_decl on <var_v:CodeWriter>*/;
1220 var101
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1222 var103
= varonce102
;
1226 var106
= string__NativeString__to_s_with_length(var104
, var105
);
1228 varonce102
= var103
;
1230 var107
= ((short int (*)(val
*, val
*))(var101
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var101
, var103
) /* != on <var101:String>*/;
1232 var108
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1234 var110
= varonce109
;
1238 var113
= string__NativeString__to_s_with_length(var111
, var112
);
1240 varonce109
= var110
;
1242 var114
= NEW_array__Array(&type_array__Arraykernel__Object
);
1243 { /* var114 = array_instance Array[Object] */
1245 var116
= NEW_array__NativeArray(var115
, &type_array__NativeArraykernel__Object
);
1246 ((struct instance_array__NativeArray
*)var116
)->values
[0] = (val
*) var108
;
1247 ((struct instance_array__NativeArray
*)var116
)->values
[1] = (val
*) var110
;
1248 ((void (*)(val
*, val
*, long))(var114
->class->vft
[COLOR_array__Array__with_native
]))(var114
, var116
, var115
) /* with_native on <var114:Array[Object]>*/;
1250 var117
= ((val
* (*)(val
*))(var114
->class->vft
[COLOR_string__Object__to_s
]))(var114
) /* to_s on <var114:Array[Object]>*/;
1251 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var117
) /* add_decl on <var_v:CodeWriter>*/;
1254 var118
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:GlobalCompiler>*/;
1255 var119
= ((val
* (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var_mtype
, var118
) /* collect_mclassdefs on <var_mtype:MClassType>*/;
1256 var120
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var119
) /* iterator on <var119:Set[MClassDef]>*/;
1258 var121
= ((short int (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var120
) /* is_ok on <var120:Iterator[nullable Object]>*/;
1260 var122
= ((val
* (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var120
) /* item on <var120:Iterator[nullable Object]>*/;
1262 var123
= ((val
* (*)(val
*))(var_cd
->class->vft
[COLOR_model__MClassDef__intro_mproperties
]))(var_cd
) /* intro_mproperties on <var_cd:MClassDef>*/;
1263 var124
= ((val
* (*)(val
*))(var123
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var123
) /* iterator on <var123:Array[MProperty]>*/;
1265 var125
= ((short int (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var124
) /* is_ok on <var124:Iterator[nullable Object]>*/;
1267 var126
= ((val
* (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var124
) /* item on <var124:Iterator[nullable Object]>*/;
1269 /* <var_p:MProperty> isa MAttribute */
1270 cltype
= type_model__MAttribute
.color
;
1271 idtype
= type_model__MAttribute
.id
;
1272 if(cltype
>= var_p
->type
->table_size
) {
1275 var127
= var_p
->type
->type_table
[cltype
] == idtype
;
1279 goto CONTINUE_label
;
1282 var129
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MProperty__intro
]))(var_p
) /* intro on <var_p:MProperty(MAttribute)>*/;
1283 var130
= ((val
* (*)(val
*))(var129
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var129
) /* static_mtype on <var129:MPropDef(MAttributeDef)>*/;
1284 if (var130
== NULL
) {
1285 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1286 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 184);
1290 var131
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:GlobalCompiler>*/;
1291 var132
= ((val
* (*)(val
*, val
*, val
*))(var_t
->class->vft
[COLOR_model__MType__anchor_to
]))(var_t
, var131
, var_mtype
) /* anchor_to on <var_t:MType>*/;
1293 var133
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t
) /* ctype on <var_t:MType>*/;
1295 var135
= varonce134
;
1299 var138
= string__NativeString__to_s_with_length(var136
, var137
);
1301 varonce134
= var135
;
1303 var139
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MProperty__intro
]))(var_p
) /* intro on <var_p:MProperty(MAttribute)>*/;
1304 var140
= ((val
* (*)(val
*))(var139
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var139
) /* c_name on <var139:MPropDef(MAttributeDef)>*/;
1306 var142
= varonce141
;
1310 var145
= string__NativeString__to_s_with_length(var143
, var144
);
1312 varonce141
= var142
;
1315 var147
= varonce146
;
1319 var150
= string__NativeString__to_s_with_length(var148
, var149
);
1321 varonce146
= var147
;
1324 var152
= varonce151
;
1328 var155
= string__NativeString__to_s_with_length(var153
, var154
);
1330 varonce151
= var152
;
1332 var156
= NEW_array__Array(&type_array__Arraykernel__Object
);
1333 { /* var156 = array_instance Array[Object] */
1335 var158
= NEW_array__NativeArray(var157
, &type_array__NativeArraykernel__Object
);
1336 ((struct instance_array__NativeArray
*)var158
)->values
[0] = (val
*) var133
;
1337 ((struct instance_array__NativeArray
*)var158
)->values
[1] = (val
*) var135
;
1338 ((struct instance_array__NativeArray
*)var158
)->values
[2] = (val
*) var140
;
1339 ((struct instance_array__NativeArray
*)var158
)->values
[3] = (val
*) var142
;
1340 ((struct instance_array__NativeArray
*)var158
)->values
[4] = (val
*) var_p
;
1341 ((struct instance_array__NativeArray
*)var158
)->values
[5] = (val
*) var147
;
1342 ((struct instance_array__NativeArray
*)var158
)->values
[6] = (val
*) var_t
;
1343 ((struct instance_array__NativeArray
*)var158
)->values
[7] = (val
*) var152
;
1344 ((void (*)(val
*, val
*, long))(var156
->class->vft
[COLOR_array__Array__with_native
]))(var156
, var158
, var157
) /* with_native on <var156:Array[Object]>*/;
1346 var159
= ((val
* (*)(val
*))(var156
->class->vft
[COLOR_string__Object__to_s
]))(var156
) /* to_s on <var156:Array[Object]>*/;
1347 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var159
) /* add_decl on <var_v:CodeWriter>*/;
1348 CONTINUE_label
: (void)0;
1349 ((void (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var124
) /* next on <var124:Iterator[nullable Object]>*/;
1351 BREAK_label
: (void)0;
1352 CONTINUE_label160
: (void)0;
1353 ((void (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var120
) /* next on <var120:Iterator[nullable Object]>*/;
1355 BREAK_label160
: (void)0;
1357 var162
= varonce161
;
1361 var165
= string__NativeString__to_s_with_length(var163
, var164
);
1363 varonce161
= var162
;
1365 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var_v
, var162
) /* add_decl on <var_v:CodeWriter>*/;
1368 /* method global_compiler#GlobalCompiler#declare_runtimeclass for (self: Object, MClassType) */
1369 void VIRTUAL_global_compiler__GlobalCompiler__declare_runtimeclass(val
* self
, val
* p0
) {
1370 global_compiler__GlobalCompiler__declare_runtimeclass(self
, p0
);
1373 /* method global_compiler#GlobalCompiler#generate_init_instance for (self: GlobalCompiler, MClassType) */
1374 void global_compiler__GlobalCompiler__generate_init_instance(val
* self
, val
* p0
) {
1375 val
* var_mtype
/* var mtype: MClassType */;
1376 val
* var
/* : RapidTypeAnalysis */;
1377 val
* var1
/* : HashSet[MClassType] */;
1378 short int var2
/* : Bool */;
1379 val
* var3
/* : String */;
1380 static val
* varonce
;
1381 val
* var4
/* : String */;
1382 char* var5
/* : NativeString */;
1383 long var6
/* : Int */;
1384 val
* var7
/* : String */;
1385 short int var8
/* : Bool */;
1386 val
* var9
/* : AbstractCompilerVisitor */;
1387 val
* var_v
/* var v: GlobalCompilerVisitor */;
1388 val
* var10
/* : MClass */;
1389 val
* var11
/* : String */;
1390 static val
* varonce12
;
1391 val
* var13
/* : String */;
1392 char* var14
/* : NativeString */;
1393 long var15
/* : Int */;
1394 val
* var16
/* : String */;
1395 short int var17
/* : Bool */;
1396 short int var_is_native_array
/* var is_native_array: Bool */;
1397 static val
* varonce18
;
1398 val
* var19
/* : String */;
1399 char* var20
/* : NativeString */;
1400 long var21
/* : Int */;
1401 val
* var22
/* : String */;
1402 val
* var_sig
/* var sig: nullable Object */;
1403 static val
* varonce23
;
1404 val
* var24
/* : String */;
1405 char* var25
/* : NativeString */;
1406 long var26
/* : Int */;
1407 val
* var27
/* : String */;
1408 val
* var28
/* : CodeWriter */;
1409 val
* var29
/* : String */;
1410 static val
* varonce30
;
1411 val
* var31
/* : String */;
1412 char* var32
/* : NativeString */;
1413 long var33
/* : Int */;
1414 val
* var34
/* : String */;
1415 val
* var35
/* : String */;
1416 static val
* varonce36
;
1417 val
* var37
/* : String */;
1418 char* var38
/* : NativeString */;
1419 long var39
/* : Int */;
1420 val
* var40
/* : String */;
1421 static val
* varonce41
;
1422 val
* var42
/* : String */;
1423 char* var43
/* : NativeString */;
1424 long var44
/* : Int */;
1425 val
* var45
/* : String */;
1426 val
* var46
/* : Array[Object] */;
1427 long var47
/* : Int */;
1428 val
* var48
/* : NativeArray[Object] */;
1429 val
* var49
/* : String */;
1430 static val
* varonce50
;
1431 val
* var51
/* : String */;
1432 char* var52
/* : NativeString */;
1433 long var53
/* : Int */;
1434 val
* var54
/* : String */;
1435 static val
* varonce55
;
1436 val
* var56
/* : String */;
1437 char* var57
/* : NativeString */;
1438 long var58
/* : Int */;
1439 val
* var59
/* : String */;
1440 val
* var60
/* : Array[Object] */;
1441 long var61
/* : Int */;
1442 val
* var62
/* : NativeArray[Object] */;
1443 val
* var63
/* : String */;
1444 val
* var64
/* : String */;
1445 static val
* varonce65
;
1446 val
* var66
/* : String */;
1447 char* var67
/* : NativeString */;
1448 long var68
/* : Int */;
1449 val
* var69
/* : String */;
1450 val
* var70
/* : String */;
1451 static val
* varonce71
;
1452 val
* var72
/* : String */;
1453 char* var73
/* : NativeString */;
1454 long var74
/* : Int */;
1455 val
* var75
/* : String */;
1456 static val
* varonce76
;
1457 val
* var77
/* : String */;
1458 char* var78
/* : NativeString */;
1459 long var79
/* : Int */;
1460 val
* var80
/* : String */;
1461 val
* var81
/* : Array[Object] */;
1462 long var82
/* : Int */;
1463 val
* var83
/* : NativeArray[Object] */;
1464 val
* var84
/* : String */;
1465 val
* var85
/* : RuntimeVariable */;
1466 val
* var_res
/* var res: RuntimeVariable */;
1467 short int var86
/* : Bool */;
1468 val
* var87
/* : Array[MType] */;
1469 val
* var88
/* : nullable Object */;
1470 val
* var_mtype_elt
/* var mtype_elt: MType */;
1471 static val
* varonce89
;
1472 val
* var90
/* : String */;
1473 char* var91
/* : NativeString */;
1474 long var92
/* : Int */;
1475 val
* var93
/* : String */;
1476 val
* var94
/* : String */;
1477 static val
* varonce95
;
1478 val
* var96
/* : String */;
1479 char* var97
/* : NativeString */;
1480 long var98
/* : Int */;
1481 val
* var99
/* : String */;
1482 val
* var100
/* : String */;
1483 static val
* varonce101
;
1484 val
* var102
/* : String */;
1485 char* var103
/* : NativeString */;
1486 long var104
/* : Int */;
1487 val
* var105
/* : String */;
1488 val
* var106
/* : Array[Object] */;
1489 long var107
/* : Int */;
1490 val
* var108
/* : NativeArray[Object] */;
1491 val
* var109
/* : String */;
1492 static val
* varonce110
;
1493 val
* var111
/* : String */;
1494 char* var112
/* : NativeString */;
1495 long var113
/* : Int */;
1496 val
* var114
/* : String */;
1497 val
* var115
/* : String */;
1498 static val
* varonce116
;
1499 val
* var117
/* : String */;
1500 char* var118
/* : NativeString */;
1501 long var119
/* : Int */;
1502 val
* var120
/* : String */;
1503 val
* var121
/* : Array[Object] */;
1504 long var122
/* : Int */;
1505 val
* var123
/* : NativeArray[Object] */;
1506 val
* var124
/* : String */;
1507 static val
* varonce125
;
1508 val
* var126
/* : String */;
1509 char* var127
/* : NativeString */;
1510 long var128
/* : Int */;
1511 val
* var129
/* : String */;
1512 val
* var130
/* : String */;
1513 static val
* varonce131
;
1514 val
* var132
/* : String */;
1515 char* var133
/* : NativeString */;
1516 long var134
/* : Int */;
1517 val
* var135
/* : String */;
1518 val
* var136
/* : Array[Object] */;
1519 long var137
/* : Int */;
1520 val
* var138
/* : NativeArray[Object] */;
1521 val
* var139
/* : String */;
1522 static val
* varonce140
;
1523 val
* var141
/* : String */;
1524 char* var142
/* : NativeString */;
1525 long var143
/* : Int */;
1526 val
* var144
/* : String */;
1527 static val
* varonce145
;
1528 val
* var146
/* : String */;
1529 char* var147
/* : NativeString */;
1530 long var148
/* : Int */;
1531 val
* var149
/* : String */;
1532 val
* var150
/* : Array[Object] */;
1533 long var151
/* : Int */;
1534 val
* var152
/* : NativeArray[Object] */;
1535 val
* var153
/* : String */;
1536 static val
* varonce154
;
1537 val
* var155
/* : String */;
1538 char* var156
/* : NativeString */;
1539 long var157
/* : Int */;
1540 val
* var158
/* : String */;
1542 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
1543 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var
) /* live_types on <var:RapidTypeAnalysis>*/;
1544 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var1
, var_mtype
) /* has on <var1:HashSet[MClassType]>*/;
1546 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1547 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 195);
1550 var3
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1556 var7
= string__NativeString__to_s_with_length(var5
, var6
);
1560 var8
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var3
, var4
) /* == on <var3:String>*/;
1562 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1563 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 196);
1566 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:GlobalCompiler>*/;
1568 var10
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
1569 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_model__MClass__name
]))(var10
) /* name on <var10:MClass>*/;
1573 var14
= "NativeArray";
1575 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1579 var17
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var11
, var13
) /* == on <var11:String>*/;
1580 var_is_native_array
= var17
;
1581 if (var_is_native_array
){
1585 var20
= "int length";
1587 var22
= string__NativeString__to_s_with_length(var20
, var21
);
1598 var27
= string__NativeString__to_s_with_length(var25
, var26
);
1604 var28
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
1605 var29
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1611 var34
= string__NativeString__to_s_with_length(var32
, var33
);
1615 var35
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1621 var40
= string__NativeString__to_s_with_length(var38
, var39
);
1630 var45
= string__NativeString__to_s_with_length(var43
, var44
);
1634 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
1635 { /* var46 = array_instance Array[Object] */
1637 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
1638 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var29
;
1639 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var31
;
1640 ((struct instance_array__NativeArray
*)var48
)->values
[2] = (val
*) var35
;
1641 ((struct instance_array__NativeArray
*)var48
)->values
[3] = (val
*) var37
;
1642 ((struct instance_array__NativeArray
*)var48
)->values
[4] = (val
*) var_sig
;
1643 ((struct instance_array__NativeArray
*)var48
)->values
[5] = (val
*) var42
;
1644 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
1646 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
1647 ((void (*)(val
*, val
*))(var28
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var28
, var49
) /* add_decl on <var28:CodeWriter>*/;
1651 var52
= "/* allocate ";
1653 var54
= string__NativeString__to_s_with_length(var52
, var53
);
1662 var59
= string__NativeString__to_s_with_length(var57
, var58
);
1666 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
1667 { /* var60 = array_instance Array[Object] */
1669 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
1670 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var51
;
1671 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var_mtype
;
1672 ((struct instance_array__NativeArray
*)var62
)->values
[2] = (val
*) var56
;
1673 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
1675 var63
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
1676 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var63
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
1677 var64
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1683 var69
= string__NativeString__to_s_with_length(var67
, var68
);
1687 var70
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1693 var75
= string__NativeString__to_s_with_length(var73
, var74
);
1702 var80
= string__NativeString__to_s_with_length(var78
, var79
);
1706 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
1707 { /* var81 = array_instance Array[Object] */
1709 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
1710 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var64
;
1711 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var66
;
1712 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var70
;
1713 ((struct instance_array__NativeArray
*)var83
)->values
[3] = (val
*) var72
;
1714 ((struct instance_array__NativeArray
*)var83
)->values
[4] = (val
*) var_sig
;
1715 ((struct instance_array__NativeArray
*)var83
)->values
[5] = (val
*) var77
;
1716 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
1718 var84
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
1719 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var84
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
1720 var85
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(var_v
, var_mtype
) /* new_var on <var_v:GlobalCompilerVisitor>*/;
1723 ((void (*)(val
*, short int))(var_res
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res
, var86
) /* is_exact= on <var_res:RuntimeVariable>*/;
1724 if (var_is_native_array
){
1725 var87
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
1726 var88
= ((val
* (*)(val
*))(var87
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var87
) /* first on <var87:Array[MType]>*/;
1727 var_mtype_elt
= var88
;
1731 var91
= " = nit_alloc(sizeof(struct ";
1733 var93
= string__NativeString__to_s_with_length(var91
, var92
);
1737 var94
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1741 var97
= ") + length*sizeof(";
1743 var99
= string__NativeString__to_s_with_length(var97
, var98
);
1747 var100
= ((val
* (*)(val
*))(var_mtype_elt
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype_elt
) /* ctype on <var_mtype_elt:MType>*/;
1749 var102
= varonce101
;
1753 var105
= string__NativeString__to_s_with_length(var103
, var104
);
1755 varonce101
= var102
;
1757 var106
= NEW_array__Array(&type_array__Arraykernel__Object
);
1758 { /* var106 = array_instance Array[Object] */
1760 var108
= NEW_array__NativeArray(var107
, &type_array__NativeArraykernel__Object
);
1761 ((struct instance_array__NativeArray
*)var108
)->values
[0] = (val
*) var_res
;
1762 ((struct instance_array__NativeArray
*)var108
)->values
[1] = (val
*) var90
;
1763 ((struct instance_array__NativeArray
*)var108
)->values
[2] = (val
*) var94
;
1764 ((struct instance_array__NativeArray
*)var108
)->values
[3] = (val
*) var96
;
1765 ((struct instance_array__NativeArray
*)var108
)->values
[4] = (val
*) var100
;
1766 ((struct instance_array__NativeArray
*)var108
)->values
[5] = (val
*) var102
;
1767 ((void (*)(val
*, val
*, long))(var106
->class->vft
[COLOR_array__Array__with_native
]))(var106
, var108
, var107
) /* with_native on <var106:Array[Object]>*/;
1769 var109
= ((val
* (*)(val
*))(var106
->class->vft
[COLOR_string__Object__to_s
]))(var106
) /* to_s on <var106:Array[Object]>*/;
1770 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var109
) /* add on <var_v:GlobalCompilerVisitor>*/;
1773 var111
= varonce110
;
1775 var112
= " = nit_alloc(sizeof(struct ";
1777 var114
= string__NativeString__to_s_with_length(var112
, var113
);
1779 varonce110
= var111
;
1781 var115
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1783 var117
= varonce116
;
1787 var120
= string__NativeString__to_s_with_length(var118
, var119
);
1789 varonce116
= var117
;
1791 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
1792 { /* var121 = array_instance Array[Object] */
1794 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
1795 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var_res
;
1796 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var111
;
1797 ((struct instance_array__NativeArray
*)var123
)->values
[2] = (val
*) var115
;
1798 ((struct instance_array__NativeArray
*)var123
)->values
[3] = (val
*) var117
;
1799 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
1801 var124
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
1802 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var124
) /* add on <var_v:GlobalCompilerVisitor>*/;
1805 var126
= varonce125
;
1807 var127
= "->classid = ";
1809 var129
= string__NativeString__to_s_with_length(var127
, var128
);
1811 varonce125
= var126
;
1813 var130
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(self
, var_mtype
) /* classid on <self:GlobalCompiler>*/;
1815 var132
= varonce131
;
1819 var135
= string__NativeString__to_s_with_length(var133
, var134
);
1821 varonce131
= var132
;
1823 var136
= NEW_array__Array(&type_array__Arraykernel__Object
);
1824 { /* var136 = array_instance Array[Object] */
1826 var138
= NEW_array__NativeArray(var137
, &type_array__NativeArraykernel__Object
);
1827 ((struct instance_array__NativeArray
*)var138
)->values
[0] = (val
*) var_res
;
1828 ((struct instance_array__NativeArray
*)var138
)->values
[1] = (val
*) var126
;
1829 ((struct instance_array__NativeArray
*)var138
)->values
[2] = (val
*) var130
;
1830 ((struct instance_array__NativeArray
*)var138
)->values
[3] = (val
*) var132
;
1831 ((void (*)(val
*, val
*, long))(var136
->class->vft
[COLOR_array__Array__with_native
]))(var136
, var138
, var137
) /* with_native on <var136:Array[Object]>*/;
1833 var139
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_string__Object__to_s
]))(var136
) /* to_s on <var136:Array[Object]>*/;
1834 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var139
) /* add on <var_v:GlobalCompilerVisitor>*/;
1835 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__generate_init_attr
]))(self
, var_v
, var_res
, var_mtype
) /* generate_init_attr on <self:GlobalCompiler>*/;
1837 var141
= varonce140
;
1841 var144
= string__NativeString__to_s_with_length(var142
, var143
);
1843 varonce140
= var141
;
1846 var146
= varonce145
;
1850 var149
= string__NativeString__to_s_with_length(var147
, var148
);
1852 varonce145
= var146
;
1854 var150
= NEW_array__Array(&type_array__Arraykernel__Object
);
1855 { /* var150 = array_instance Array[Object] */
1857 var152
= NEW_array__NativeArray(var151
, &type_array__NativeArraykernel__Object
);
1858 ((struct instance_array__NativeArray
*)var152
)->values
[0] = (val
*) var141
;
1859 ((struct instance_array__NativeArray
*)var152
)->values
[1] = (val
*) var_res
;
1860 ((struct instance_array__NativeArray
*)var152
)->values
[2] = (val
*) var146
;
1861 ((void (*)(val
*, val
*, long))(var150
->class->vft
[COLOR_array__Array__with_native
]))(var150
, var152
, var151
) /* with_native on <var150:Array[Object]>*/;
1863 var153
= ((val
* (*)(val
*))(var150
->class->vft
[COLOR_string__Object__to_s
]))(var150
) /* to_s on <var150:Array[Object]>*/;
1864 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var153
) /* add on <var_v:GlobalCompilerVisitor>*/;
1866 var155
= varonce154
;
1870 var158
= string__NativeString__to_s_with_length(var156
, var157
);
1872 varonce154
= var155
;
1874 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var155
) /* add on <var_v:GlobalCompilerVisitor>*/;
1877 /* method global_compiler#GlobalCompiler#generate_init_instance for (self: Object, MClassType) */
1878 void VIRTUAL_global_compiler__GlobalCompiler__generate_init_instance(val
* self
, val
* p0
) {
1879 global_compiler__GlobalCompiler__generate_init_instance(self
, p0
);
1882 /* method global_compiler#GlobalCompiler#generate_box_instance for (self: GlobalCompiler, MClassType) */
1883 void global_compiler__GlobalCompiler__generate_box_instance(val
* self
, val
* p0
) {
1884 val
* var_mtype
/* var mtype: MClassType */;
1885 val
* var
/* : RapidTypeAnalysis */;
1886 val
* var1
/* : HashSet[MClassType] */;
1887 short int var2
/* : Bool */;
1888 val
* var3
/* : String */;
1889 static val
* varonce
;
1890 val
* var4
/* : String */;
1891 char* var5
/* : NativeString */;
1892 long var6
/* : Int */;
1893 val
* var7
/* : String */;
1894 short int var8
/* : Bool */;
1895 val
* var9
/* : AbstractCompilerVisitor */;
1896 val
* var_v
/* var v: GlobalCompilerVisitor */;
1897 val
* var10
/* : CodeWriter */;
1898 static val
* varonce11
;
1899 val
* var12
/* : String */;
1900 char* var13
/* : NativeString */;
1901 long var14
/* : Int */;
1902 val
* var15
/* : String */;
1903 val
* var16
/* : String */;
1904 static val
* varonce17
;
1905 val
* var18
/* : String */;
1906 char* var19
/* : NativeString */;
1907 long var20
/* : Int */;
1908 val
* var21
/* : String */;
1909 val
* var22
/* : String */;
1910 static val
* varonce23
;
1911 val
* var24
/* : String */;
1912 char* var25
/* : NativeString */;
1913 long var26
/* : Int */;
1914 val
* var27
/* : String */;
1915 val
* var28
/* : Array[Object] */;
1916 long var29
/* : Int */;
1917 val
* var30
/* : NativeArray[Object] */;
1918 val
* var31
/* : String */;
1919 static val
* varonce32
;
1920 val
* var33
/* : String */;
1921 char* var34
/* : NativeString */;
1922 long var35
/* : Int */;
1923 val
* var36
/* : String */;
1924 static val
* varonce37
;
1925 val
* var38
/* : String */;
1926 char* var39
/* : NativeString */;
1927 long var40
/* : Int */;
1928 val
* var41
/* : String */;
1929 val
* var42
/* : Array[Object] */;
1930 long var43
/* : Int */;
1931 val
* var44
/* : NativeArray[Object] */;
1932 val
* var45
/* : String */;
1933 static val
* varonce46
;
1934 val
* var47
/* : String */;
1935 char* var48
/* : NativeString */;
1936 long var49
/* : Int */;
1937 val
* var50
/* : String */;
1938 val
* var51
/* : String */;
1939 static val
* varonce52
;
1940 val
* var53
/* : String */;
1941 char* var54
/* : NativeString */;
1942 long var55
/* : Int */;
1943 val
* var56
/* : String */;
1944 val
* var57
/* : String */;
1945 static val
* varonce58
;
1946 val
* var59
/* : String */;
1947 char* var60
/* : NativeString */;
1948 long var61
/* : Int */;
1949 val
* var62
/* : String */;
1950 val
* var63
/* : Array[Object] */;
1951 long var64
/* : Int */;
1952 val
* var65
/* : NativeArray[Object] */;
1953 val
* var66
/* : String */;
1954 static val
* varonce67
;
1955 val
* var68
/* : String */;
1956 char* var69
/* : NativeString */;
1957 long var70
/* : Int */;
1958 val
* var71
/* : String */;
1959 val
* var72
/* : String */;
1960 static val
* varonce73
;
1961 val
* var74
/* : String */;
1962 char* var75
/* : NativeString */;
1963 long var76
/* : Int */;
1964 val
* var77
/* : String */;
1965 val
* var78
/* : String */;
1966 static val
* varonce79
;
1967 val
* var80
/* : String */;
1968 char* var81
/* : NativeString */;
1969 long var82
/* : Int */;
1970 val
* var83
/* : String */;
1971 val
* var84
/* : Array[Object] */;
1972 long var85
/* : Int */;
1973 val
* var86
/* : NativeArray[Object] */;
1974 val
* var87
/* : String */;
1975 static val
* varonce88
;
1976 val
* var89
/* : String */;
1977 char* var90
/* : NativeString */;
1978 long var91
/* : Int */;
1979 val
* var92
/* : String */;
1980 val
* var93
/* : String */;
1981 static val
* varonce94
;
1982 val
* var95
/* : String */;
1983 char* var96
/* : NativeString */;
1984 long var97
/* : Int */;
1985 val
* var98
/* : String */;
1986 val
* var99
/* : Array[Object] */;
1987 long var100
/* : Int */;
1988 val
* var101
/* : NativeArray[Object] */;
1989 val
* var102
/* : String */;
1990 static val
* varonce103
;
1991 val
* var104
/* : String */;
1992 char* var105
/* : NativeString */;
1993 long var106
/* : Int */;
1994 val
* var107
/* : String */;
1995 static val
* varonce108
;
1996 val
* var109
/* : String */;
1997 char* var110
/* : NativeString */;
1998 long var111
/* : Int */;
1999 val
* var112
/* : String */;
2000 static val
* varonce113
;
2001 val
* var114
/* : String */;
2002 char* var115
/* : NativeString */;
2003 long var116
/* : Int */;
2004 val
* var117
/* : String */;
2006 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:GlobalCompiler>*/;
2007 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var
) /* live_types on <var:RapidTypeAnalysis>*/;
2008 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var1
, var_mtype
) /* has on <var1:HashSet[MClassType]>*/;
2010 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2011 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 228);
2014 var3
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2020 var7
= string__NativeString__to_s_with_length(var5
, var6
);
2024 var8
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var3
, var4
) /* != on <var3:String>*/;
2026 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2027 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 229);
2030 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:GlobalCompiler>*/;
2032 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
2036 var13
= "val* BOX_";
2038 var15
= string__NativeString__to_s_with_length(var13
, var14
);
2042 var16
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2048 var21
= string__NativeString__to_s_with_length(var19
, var20
);
2052 var22
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2058 var27
= string__NativeString__to_s_with_length(var25
, var26
);
2062 var28
= NEW_array__Array(&type_array__Arraykernel__Object
);
2063 { /* var28 = array_instance Array[Object] */
2065 var30
= NEW_array__NativeArray(var29
, &type_array__NativeArraykernel__Object
);
2066 ((struct instance_array__NativeArray
*)var30
)->values
[0] = (val
*) var12
;
2067 ((struct instance_array__NativeArray
*)var30
)->values
[1] = (val
*) var16
;
2068 ((struct instance_array__NativeArray
*)var30
)->values
[2] = (val
*) var18
;
2069 ((struct instance_array__NativeArray
*)var30
)->values
[3] = (val
*) var22
;
2070 ((struct instance_array__NativeArray
*)var30
)->values
[4] = (val
*) var24
;
2071 ((void (*)(val
*, val
*, long))(var28
->class->vft
[COLOR_array__Array__with_native
]))(var28
, var30
, var29
) /* with_native on <var28:Array[Object]>*/;
2073 var31
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_string__Object__to_s
]))(var28
) /* to_s on <var28:Array[Object]>*/;
2074 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var10
, var31
) /* add_decl on <var10:CodeWriter>*/;
2078 var34
= "/* allocate ";
2080 var36
= string__NativeString__to_s_with_length(var34
, var35
);
2089 var41
= string__NativeString__to_s_with_length(var39
, var40
);
2093 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
2094 { /* var42 = array_instance Array[Object] */
2096 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
2097 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var33
;
2098 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_mtype
;
2099 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var38
;
2100 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
2102 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
2103 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var45
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
2107 var48
= "val* BOX_";
2109 var50
= string__NativeString__to_s_with_length(var48
, var49
);
2113 var51
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2119 var56
= string__NativeString__to_s_with_length(var54
, var55
);
2123 var57
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2127 var60
= " value) {";
2129 var62
= string__NativeString__to_s_with_length(var60
, var61
);
2133 var63
= NEW_array__Array(&type_array__Arraykernel__Object
);
2134 { /* var63 = array_instance Array[Object] */
2136 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArraykernel__Object
);
2137 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var47
;
2138 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var51
;
2139 ((struct instance_array__NativeArray
*)var65
)->values
[2] = (val
*) var53
;
2140 ((struct instance_array__NativeArray
*)var65
)->values
[3] = (val
*) var57
;
2141 ((struct instance_array__NativeArray
*)var65
)->values
[4] = (val
*) var59
;
2142 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Object]>*/;
2144 var66
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_string__Object__to_s
]))(var63
) /* to_s on <var63:Array[Object]>*/;
2145 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var66
) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
2151 var71
= string__NativeString__to_s_with_length(var69
, var70
);
2155 var72
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2159 var75
= "*res = nit_alloc(sizeof(struct ";
2161 var77
= string__NativeString__to_s_with_length(var75
, var76
);
2165 var78
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
2171 var83
= string__NativeString__to_s_with_length(var81
, var82
);
2175 var84
= NEW_array__Array(&type_array__Arraykernel__Object
);
2176 { /* var84 = array_instance Array[Object] */
2178 var86
= NEW_array__NativeArray(var85
, &type_array__NativeArraykernel__Object
);
2179 ((struct instance_array__NativeArray
*)var86
)->values
[0] = (val
*) var68
;
2180 ((struct instance_array__NativeArray
*)var86
)->values
[1] = (val
*) var72
;
2181 ((struct instance_array__NativeArray
*)var86
)->values
[2] = (val
*) var74
;
2182 ((struct instance_array__NativeArray
*)var86
)->values
[3] = (val
*) var78
;
2183 ((struct instance_array__NativeArray
*)var86
)->values
[4] = (val
*) var80
;
2184 ((void (*)(val
*, val
*, long))(var84
->class->vft
[COLOR_array__Array__with_native
]))(var84
, var86
, var85
) /* with_native on <var84:Array[Object]>*/;
2186 var87
= ((val
* (*)(val
*))(var84
->class->vft
[COLOR_string__Object__to_s
]))(var84
) /* to_s on <var84:Array[Object]>*/;
2187 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var87
) /* add on <var_v:GlobalCompilerVisitor>*/;
2191 var90
= "res->classid = ";
2193 var92
= string__NativeString__to_s_with_length(var90
, var91
);
2197 var93
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(self
, var_mtype
) /* classid on <self:GlobalCompiler>*/;
2203 var98
= string__NativeString__to_s_with_length(var96
, var97
);
2207 var99
= NEW_array__Array(&type_array__Arraykernel__Object
);
2208 { /* var99 = array_instance Array[Object] */
2210 var101
= NEW_array__NativeArray(var100
, &type_array__NativeArraykernel__Object
);
2211 ((struct instance_array__NativeArray
*)var101
)->values
[0] = (val
*) var89
;
2212 ((struct instance_array__NativeArray
*)var101
)->values
[1] = (val
*) var93
;
2213 ((struct instance_array__NativeArray
*)var101
)->values
[2] = (val
*) var95
;
2214 ((void (*)(val
*, val
*, long))(var99
->class->vft
[COLOR_array__Array__with_native
]))(var99
, var101
, var100
) /* with_native on <var99:Array[Object]>*/;
2216 var102
= ((val
* (*)(val
*))(var99
->class->vft
[COLOR_string__Object__to_s
]))(var99
) /* to_s on <var99:Array[Object]>*/;
2217 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var102
) /* add on <var_v:GlobalCompilerVisitor>*/;
2219 var104
= varonce103
;
2221 var105
= "res->value = value;";
2223 var107
= string__NativeString__to_s_with_length(var105
, var106
);
2225 varonce103
= var104
;
2227 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var104
) /* add on <var_v:GlobalCompilerVisitor>*/;
2229 var109
= varonce108
;
2231 var110
= "return (val*)res;";
2233 var112
= string__NativeString__to_s_with_length(var110
, var111
);
2235 varonce108
= var109
;
2237 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var109
) /* add on <var_v:GlobalCompilerVisitor>*/;
2239 var114
= varonce113
;
2243 var117
= string__NativeString__to_s_with_length(var115
, var116
);
2245 varonce113
= var114
;
2247 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var114
) /* add on <var_v:GlobalCompilerVisitor>*/;
2250 /* method global_compiler#GlobalCompiler#generate_box_instance for (self: Object, MClassType) */
2251 void VIRTUAL_global_compiler__GlobalCompiler__generate_box_instance(val
* self
, val
* p0
) {
2252 global_compiler__GlobalCompiler__generate_box_instance(self
, p0
);
2255 /* method global_compiler#GlobalCompiler#new_visitor for (self: GlobalCompiler): GlobalCompilerVisitor */
2256 val
* global_compiler__GlobalCompiler__new_visitor(val
* self
) {
2257 val
* var
/* : GlobalCompilerVisitor */;
2258 val
* var1
/* : GlobalCompilerVisitor */;
2259 short int var2
/* : Bool */;
2262 const struct type
* type_struct
;
2263 const char* var_class_name
;
2264 var1
= NEW_global_compiler__GlobalCompilerVisitor(&type_global_compiler__GlobalCompilerVisitor
);
2265 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init
]))(var1
, self
) /* init on <var1:GlobalCompilerVisitor>*/;
2266 /* <var1:GlobalCompilerVisitor> isa VISITOR */
2267 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
2268 cltype
= type_struct
->color
;
2269 idtype
= type_struct
->id
;
2270 if(cltype
>= var1
->type
->table_size
) {
2273 var2
= var1
->type
->type_table
[cltype
] == idtype
;
2276 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
2277 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
2278 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 242);
2286 /* method global_compiler#GlobalCompiler#new_visitor for (self: Object): AbstractCompilerVisitor */
2287 val
* VIRTUAL_global_compiler__GlobalCompiler__new_visitor(val
* self
) {
2288 val
* var
/* : AbstractCompilerVisitor */;
2289 val
* var1
/* : GlobalCompilerVisitor */;
2290 var1
= global_compiler__GlobalCompiler__new_visitor(self
);
2295 /* method global_compiler#GlobalCompiler#collect_types_cache for (self: GlobalCompiler): HashMap[MType, Array[MClassType]] */
2296 val
* global_compiler__GlobalCompiler__collect_types_cache(val
* self
) {
2297 val
* var
/* : HashMap[MType, Array[MClassType]] */;
2298 val
* var1
/* : HashMap[MType, Array[MClassType]] */;
2299 var1
= self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dcollect_types_cache
].val
; /* @collect_types_cache on <self:GlobalCompiler> */
2301 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @collect_types_cache");
2302 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 244);
2309 /* method global_compiler#GlobalCompiler#collect_types_cache for (self: Object): HashMap[MType, Array[MClassType]] */
2310 val
* VIRTUAL_global_compiler__GlobalCompiler__collect_types_cache(val
* self
) {
2311 val
* var
/* : HashMap[MType, Array[MClassType]] */;
2312 val
* var1
/* : HashMap[MType, Array[MClassType]] */;
2313 var1
= global_compiler__GlobalCompiler__collect_types_cache(self
);
2318 /* method global_compiler#GlobalCompiler#collect_types_cache= for (self: GlobalCompiler, HashMap[MType, Array[MClassType]]) */
2319 void global_compiler__GlobalCompiler__collect_types_cache_61d(val
* self
, val
* p0
) {
2320 self
->attrs
[COLOR_global_compiler__GlobalCompiler___64dcollect_types_cache
].val
= p0
; /* @collect_types_cache on <self:GlobalCompiler> */
2323 /* method global_compiler#GlobalCompiler#collect_types_cache= for (self: Object, HashMap[MType, Array[MClassType]]) */
2324 void VIRTUAL_global_compiler__GlobalCompiler__collect_types_cache_61d(val
* self
, val
* p0
) {
2325 global_compiler__GlobalCompiler__collect_types_cache_61d(self
, p0
);
2328 /* method global_compiler#GlobalCompiler#compile_nitni_structs for (self: GlobalCompiler) */
2329 void global_compiler__GlobalCompiler__compile_nitni_structs(val
* self
) {
2330 val
* var
/* : CodeWriter */;
2331 static val
* varonce
;
2332 val
* var1
/* : String */;
2333 char* var2
/* : NativeString */;
2334 long var3
/* : Int */;
2335 val
* var4
/* : String */;
2336 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:GlobalCompiler>*/;
2340 var2
= "struct nitni_instance { val *value; };";
2342 var4
= string__NativeString__to_s_with_length(var2
, var3
);
2346 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var
, var1
) /* add_decl on <var:CodeWriter>*/;
2349 /* method global_compiler#GlobalCompiler#compile_nitni_structs for (self: Object) */
2350 void VIRTUAL_global_compiler__GlobalCompiler__compile_nitni_structs(val
* self
) {
2351 global_compiler__GlobalCompiler__compile_nitni_structs(self
);
2354 /* method global_compiler#GlobalCompilerVisitor#autobox for (self: GlobalCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
2355 val
* global_compiler__GlobalCompilerVisitor__autobox(val
* self
, val
* p0
, val
* p1
) {
2356 val
* var
/* : RuntimeVariable */;
2357 val
* var_value
/* var value: RuntimeVariable */;
2358 val
* var_mtype
/* var mtype: MType */;
2359 val
* var1
/* : MType */;
2360 short int var2
/* : Bool */;
2361 short int var3
/* : Bool */;
2362 val
* var4
/* : MType */;
2363 val
* var5
/* : String */;
2364 static val
* varonce
;
2365 val
* var6
/* : String */;
2366 char* var7
/* : NativeString */;
2367 long var8
/* : Int */;
2368 val
* var9
/* : String */;
2369 short int var10
/* : Bool */;
2370 short int var_
/* var : Bool */;
2371 val
* var11
/* : String */;
2372 static val
* varonce12
;
2373 val
* var13
/* : String */;
2374 char* var14
/* : NativeString */;
2375 long var15
/* : Int */;
2376 val
* var16
/* : String */;
2377 short int var17
/* : Bool */;
2378 val
* var18
/* : MType */;
2379 val
* var19
/* : String */;
2380 static val
* varonce20
;
2381 val
* var21
/* : String */;
2382 char* var22
/* : NativeString */;
2383 long var23
/* : Int */;
2384 val
* var24
/* : String */;
2385 short int var25
/* : Bool */;
2386 static val
* varonce26
;
2387 val
* var27
/* : String */;
2388 char* var28
/* : NativeString */;
2389 long var29
/* : Int */;
2390 val
* var30
/* : String */;
2391 val
* var31
/* : String */;
2392 static val
* varonce32
;
2393 val
* var33
/* : String */;
2394 char* var34
/* : NativeString */;
2395 long var35
/* : Int */;
2396 val
* var36
/* : String */;
2397 static val
* varonce37
;
2398 val
* var38
/* : String */;
2399 char* var39
/* : NativeString */;
2400 long var40
/* : Int */;
2401 val
* var41
/* : String */;
2402 val
* var42
/* : MType */;
2403 static val
* varonce43
;
2404 val
* var44
/* : String */;
2405 char* var45
/* : NativeString */;
2406 long var46
/* : Int */;
2407 val
* var47
/* : String */;
2408 static val
* varonce48
;
2409 val
* var49
/* : String */;
2410 char* var50
/* : NativeString */;
2411 long var51
/* : Int */;
2412 val
* var52
/* : String */;
2413 val
* var53
/* : Array[Object] */;
2414 long var54
/* : Int */;
2415 val
* var55
/* : NativeArray[Object] */;
2416 val
* var56
/* : String */;
2417 val
* var57
/* : RuntimeVariable */;
2418 val
* var58
/* : String */;
2419 static val
* varonce59
;
2420 val
* var60
/* : String */;
2421 char* var61
/* : NativeString */;
2422 long var62
/* : Int */;
2423 val
* var63
/* : String */;
2424 short int var64
/* : Bool */;
2425 val
* var65
/* : MType */;
2426 short int var66
/* : Bool */;
2429 const char* var_class_name
;
2430 val
* var_valtype
/* var valtype: MClassType */;
2431 val
* var67
/* : RuntimeVariable */;
2432 val
* var_res
/* var res: RuntimeVariable */;
2433 val
* var68
/* : AbstractCompiler */;
2434 val
* var69
/* : RapidTypeAnalysis */;
2435 val
* var70
/* : HashSet[MClassType] */;
2436 short int var71
/* : Bool */;
2437 short int var72
/* : Bool */;
2438 static val
* varonce73
;
2439 val
* var74
/* : String */;
2440 char* var75
/* : NativeString */;
2441 long var76
/* : Int */;
2442 val
* var77
/* : String */;
2443 val
* var78
/* : MType */;
2444 static val
* varonce79
;
2445 val
* var80
/* : String */;
2446 char* var81
/* : NativeString */;
2447 long var82
/* : Int */;
2448 val
* var83
/* : String */;
2449 static val
* varonce84
;
2450 val
* var85
/* : String */;
2451 char* var86
/* : NativeString */;
2452 long var87
/* : Int */;
2453 val
* var88
/* : String */;
2454 val
* var89
/* : MType */;
2455 static val
* varonce90
;
2456 val
* var91
/* : String */;
2457 char* var92
/* : NativeString */;
2458 long var93
/* : Int */;
2459 val
* var94
/* : String */;
2460 val
* var95
/* : Array[Object] */;
2461 long var96
/* : Int */;
2462 val
* var97
/* : NativeArray[Object] */;
2463 val
* var98
/* : String */;
2464 static val
* varonce99
;
2465 val
* var100
/* : String */;
2466 char* var101
/* : NativeString */;
2467 long var102
/* : Int */;
2468 val
* var103
/* : String */;
2469 static val
* varonce104
;
2470 val
* var105
/* : String */;
2471 char* var106
/* : NativeString */;
2472 long var107
/* : Int */;
2473 val
* var108
/* : String */;
2474 val
* var109
/* : String */;
2475 static val
* varonce110
;
2476 val
* var111
/* : String */;
2477 char* var112
/* : NativeString */;
2478 long var113
/* : Int */;
2479 val
* var114
/* : String */;
2480 static val
* varonce115
;
2481 val
* var116
/* : String */;
2482 char* var117
/* : NativeString */;
2483 long var118
/* : Int */;
2484 val
* var119
/* : String */;
2485 val
* var120
/* : MType */;
2486 static val
* varonce121
;
2487 val
* var122
/* : String */;
2488 char* var123
/* : NativeString */;
2489 long var124
/* : Int */;
2490 val
* var125
/* : String */;
2491 static val
* varonce126
;
2492 val
* var127
/* : String */;
2493 char* var128
/* : NativeString */;
2494 long var129
/* : Int */;
2495 val
* var130
/* : String */;
2496 val
* var131
/* : Array[Object] */;
2497 long var132
/* : Int */;
2498 val
* var133
/* : NativeArray[Object] */;
2499 val
* var134
/* : String */;
2500 short int var135
/* : Bool */;
2501 val
* var136
/* : MType */;
2502 val
* var137
/* : String */;
2503 static val
* varonce138
;
2504 val
* var139
/* : String */;
2505 char* var140
/* : NativeString */;
2506 long var141
/* : Int */;
2507 val
* var142
/* : String */;
2508 short int var143
/* : Bool */;
2509 short int var_144
/* var : Bool */;
2510 val
* var145
/* : String */;
2511 static val
* varonce146
;
2512 val
* var147
/* : String */;
2513 char* var148
/* : NativeString */;
2514 long var149
/* : Int */;
2515 val
* var150
/* : String */;
2516 short int var151
/* : Bool */;
2517 val
* var152
/* : RuntimeVariable */;
2518 val
* var_res153
/* var res: RuntimeVariable */;
2519 static val
* varonce154
;
2520 val
* var155
/* : String */;
2521 char* var156
/* : NativeString */;
2522 long var157
/* : Int */;
2523 val
* var158
/* : String */;
2524 static val
* varonce159
;
2525 val
* var160
/* : String */;
2526 char* var161
/* : NativeString */;
2527 long var162
/* : Int */;
2528 val
* var163
/* : String */;
2529 val
* var164
/* : MType */;
2530 static val
* varonce165
;
2531 val
* var166
/* : String */;
2532 char* var167
/* : NativeString */;
2533 long var168
/* : Int */;
2534 val
* var169
/* : String */;
2535 static val
* varonce170
;
2536 val
* var171
/* : String */;
2537 char* var172
/* : NativeString */;
2538 long var173
/* : Int */;
2539 val
* var174
/* : String */;
2540 val
* var175
/* : Array[Object] */;
2541 long var176
/* : Int */;
2542 val
* var177
/* : NativeArray[Object] */;
2543 val
* var178
/* : String */;
2544 static val
* varonce179
;
2545 val
* var180
/* : String */;
2546 char* var181
/* : NativeString */;
2547 long var182
/* : Int */;
2548 val
* var183
/* : String */;
2549 val
* var184
/* : MType */;
2550 static val
* varonce185
;
2551 val
* var186
/* : String */;
2552 char* var187
/* : NativeString */;
2553 long var188
/* : Int */;
2554 val
* var189
/* : String */;
2555 static val
* varonce190
;
2556 val
* var191
/* : String */;
2557 char* var192
/* : NativeString */;
2558 long var193
/* : Int */;
2559 val
* var194
/* : String */;
2560 val
* var195
/* : Array[Object] */;
2561 long var196
/* : Int */;
2562 val
* var197
/* : NativeArray[Object] */;
2563 val
* var198
/* : String */;
2566 var1
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2567 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var1
, var_mtype
) /* == on <var1:MType>*/;
2572 var4
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2573 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var4
) /* ctype on <var4:MType>*/;
2579 var9
= string__NativeString__to_s_with_length(var7
, var8
);
2583 var10
= ((short int (*)(val
*, val
*))(var5
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var5
, var6
) /* == on <var5:String>*/;
2586 var11
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
2592 var16
= string__NativeString__to_s_with_length(var14
, var15
);
2596 var17
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var11
, var13
) /* == on <var11:String>*/;
2605 var18
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2606 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var18
) /* ctype on <var18:MType>*/;
2612 var24
= string__NativeString__to_s_with_length(var22
, var23
);
2616 var25
= ((short int (*)(val
*, val
*))(var19
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var19
, var21
) /* == on <var19:String>*/;
2621 var28
= "((struct ";
2623 var30
= string__NativeString__to_s_with_length(var28
, var29
);
2627 var31
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
2633 var36
= string__NativeString__to_s_with_length(var34
, var35
);
2640 var39
= ")->value; /* autounbox from ";
2642 var41
= string__NativeString__to_s_with_length(var39
, var40
);
2646 var42
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2652 var47
= string__NativeString__to_s_with_length(var45
, var46
);
2661 var52
= string__NativeString__to_s_with_length(var50
, var51
);
2665 var53
= NEW_array__Array(&type_array__Arraykernel__Object
);
2666 { /* var53 = array_instance Array[Object] */
2668 var55
= NEW_array__NativeArray(var54
, &type_array__NativeArraykernel__Object
);
2669 ((struct instance_array__NativeArray
*)var55
)->values
[0] = (val
*) var27
;
2670 ((struct instance_array__NativeArray
*)var55
)->values
[1] = (val
*) var31
;
2671 ((struct instance_array__NativeArray
*)var55
)->values
[2] = (val
*) var33
;
2672 ((struct instance_array__NativeArray
*)var55
)->values
[3] = (val
*) var_value
;
2673 ((struct instance_array__NativeArray
*)var55
)->values
[4] = (val
*) var38
;
2674 ((struct instance_array__NativeArray
*)var55
)->values
[5] = (val
*) var42
;
2675 ((struct instance_array__NativeArray
*)var55
)->values
[6] = (val
*) var44
;
2676 ((struct instance_array__NativeArray
*)var55
)->values
[7] = (val
*) var_mtype
;
2677 ((struct instance_array__NativeArray
*)var55
)->values
[8] = (val
*) var49
;
2678 ((void (*)(val
*, val
*, long))(var53
->class->vft
[COLOR_array__Array__with_native
]))(var53
, var55
, var54
) /* with_native on <var53:Array[Object]>*/;
2680 var56
= ((val
* (*)(val
*))(var53
->class->vft
[COLOR_string__Object__to_s
]))(var53
) /* to_s on <var53:Array[Object]>*/;
2681 var57
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var56
, var_mtype
) /* new_expr on <self:GlobalCompilerVisitor>*/;
2685 var58
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
2691 var63
= string__NativeString__to_s_with_length(var61
, var62
);
2695 var64
= ((short int (*)(val
*, val
*))(var58
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var58
, var60
) /* == on <var58:String>*/;
2697 var65
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2698 /* <var65:MType> isa MClassType */
2699 cltype
= type_model__MClassType
.color
;
2700 idtype
= type_model__MClassType
.id
;
2701 if(cltype
>= var65
->type
->table_size
) {
2704 var66
= var65
->type
->type_table
[cltype
] == idtype
;
2707 var_class_name
= var65
== NULL ?
"null" : var65
->type
->name
;
2708 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
2709 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 268);
2712 var_valtype
= var65
;
2713 var67
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_mtype
) /* new_var on <self:GlobalCompilerVisitor>*/;
2715 var68
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
2716 var69
= ((val
* (*)(val
*))(var68
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var68
) /* runtime_type_analysis on <var68:AbstractCompiler(GlobalCompiler)>*/;
2717 var70
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var69
) /* live_types on <var69:RapidTypeAnalysis>*/;
2718 var71
= ((short int (*)(val
*, val
*))(var70
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var70
, var_valtype
) /* has on <var70:HashSet[MClassType]>*/;
2724 var75
= "/*no autobox from ";
2726 var77
= string__NativeString__to_s_with_length(var75
, var76
);
2730 var78
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2736 var83
= string__NativeString__to_s_with_length(var81
, var82
);
2745 var88
= string__NativeString__to_s_with_length(var86
, var87
);
2749 var89
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2753 var92
= " is not live! */";
2755 var94
= string__NativeString__to_s_with_length(var92
, var93
);
2759 var95
= NEW_array__Array(&type_array__Arraykernel__Object
);
2760 { /* var95 = array_instance Array[Object] */
2762 var97
= NEW_array__NativeArray(var96
, &type_array__NativeArraykernel__Object
);
2763 ((struct instance_array__NativeArray
*)var97
)->values
[0] = (val
*) var74
;
2764 ((struct instance_array__NativeArray
*)var97
)->values
[1] = (val
*) var78
;
2765 ((struct instance_array__NativeArray
*)var97
)->values
[2] = (val
*) var80
;
2766 ((struct instance_array__NativeArray
*)var97
)->values
[3] = (val
*) var_mtype
;
2767 ((struct instance_array__NativeArray
*)var97
)->values
[4] = (val
*) var85
;
2768 ((struct instance_array__NativeArray
*)var97
)->values
[5] = (val
*) var89
;
2769 ((struct instance_array__NativeArray
*)var97
)->values
[6] = (val
*) var91
;
2770 ((void (*)(val
*, val
*, long))(var95
->class->vft
[COLOR_array__Array__with_native
]))(var95
, var97
, var96
) /* with_native on <var95:Array[Object]>*/;
2772 var98
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_string__Object__to_s
]))(var95
) /* to_s on <var95:Array[Object]>*/;
2773 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var98
) /* add on <self:GlobalCompilerVisitor>*/;
2777 var101
= "printf(\"Dead code executed!\\n\"); show_backtrace(1);";
2779 var103
= string__NativeString__to_s_with_length(var101
, var102
);
2783 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var100
) /* add on <self:GlobalCompilerVisitor>*/;
2789 var105
= varonce104
;
2793 var108
= string__NativeString__to_s_with_length(var106
, var107
);
2795 varonce104
= var105
;
2797 var109
= ((val
* (*)(val
*))(var_valtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_valtype
) /* c_name on <var_valtype:MClassType>*/;
2799 var111
= varonce110
;
2803 var114
= string__NativeString__to_s_with_length(var112
, var113
);
2805 varonce110
= var111
;
2808 var116
= varonce115
;
2810 var117
= "); /* autobox from ";
2812 var119
= string__NativeString__to_s_with_length(var117
, var118
);
2814 varonce115
= var116
;
2816 var120
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2818 var122
= varonce121
;
2822 var125
= string__NativeString__to_s_with_length(var123
, var124
);
2824 varonce121
= var122
;
2827 var127
= varonce126
;
2831 var130
= string__NativeString__to_s_with_length(var128
, var129
);
2833 varonce126
= var127
;
2835 var131
= NEW_array__Array(&type_array__Arraykernel__Object
);
2836 { /* var131 = array_instance Array[Object] */
2838 var133
= NEW_array__NativeArray(var132
, &type_array__NativeArraykernel__Object
);
2839 ((struct instance_array__NativeArray
*)var133
)->values
[0] = (val
*) var_res
;
2840 ((struct instance_array__NativeArray
*)var133
)->values
[1] = (val
*) var105
;
2841 ((struct instance_array__NativeArray
*)var133
)->values
[2] = (val
*) var109
;
2842 ((struct instance_array__NativeArray
*)var133
)->values
[3] = (val
*) var111
;
2843 ((struct instance_array__NativeArray
*)var133
)->values
[4] = (val
*) var_value
;
2844 ((struct instance_array__NativeArray
*)var133
)->values
[5] = (val
*) var116
;
2845 ((struct instance_array__NativeArray
*)var133
)->values
[6] = (val
*) var120
;
2846 ((struct instance_array__NativeArray
*)var133
)->values
[7] = (val
*) var122
;
2847 ((struct instance_array__NativeArray
*)var133
)->values
[8] = (val
*) var_mtype
;
2848 ((struct instance_array__NativeArray
*)var133
)->values
[9] = (val
*) var127
;
2849 ((void (*)(val
*, val
*, long))(var131
->class->vft
[COLOR_array__Array__with_native
]))(var131
, var133
, var132
) /* with_native on <var131:Array[Object]>*/;
2851 var134
= ((val
* (*)(val
*))(var131
->class->vft
[COLOR_string__Object__to_s
]))(var131
) /* to_s on <var131:Array[Object]>*/;
2852 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var134
) /* add on <self:GlobalCompilerVisitor>*/;
2856 var136
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2857 var137
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_nitni_base__MType__cname_blind
]))(var136
) /* cname_blind on <var136:MType>*/;
2859 var139
= varonce138
;
2863 var142
= string__NativeString__to_s_with_length(var140
, var141
);
2865 varonce138
= var139
;
2867 var143
= ((short int (*)(val
*, val
*))(var137
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var137
, var139
) /* == on <var137:String>*/;
2870 var145
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_nitni_base__MType__cname_blind
]))(var_mtype
) /* cname_blind on <var_mtype:MType>*/;
2872 var147
= varonce146
;
2876 var150
= string__NativeString__to_s_with_length(var148
, var149
);
2878 varonce146
= var147
;
2880 var151
= ((short int (*)(val
*, val
*))(var145
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var145
, var147
) /* == on <var145:String>*/;
2889 var152
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_mtype
) /* new_var on <self:GlobalCompilerVisitor>*/;
2890 var_res153
= var152
;
2892 var155
= varonce154
;
2896 var158
= string__NativeString__to_s_with_length(var156
, var157
);
2898 varonce154
= var155
;
2901 var160
= varonce159
;
2903 var161
= " left unintialized (cannot convert ";
2905 var163
= string__NativeString__to_s_with_length(var161
, var162
);
2907 varonce159
= var160
;
2909 var164
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2911 var166
= varonce165
;
2915 var169
= string__NativeString__to_s_with_length(var167
, var168
);
2917 varonce165
= var166
;
2920 var171
= varonce170
;
2924 var174
= string__NativeString__to_s_with_length(var172
, var173
);
2926 varonce170
= var171
;
2928 var175
= NEW_array__Array(&type_array__Arraykernel__Object
);
2929 { /* var175 = array_instance Array[Object] */
2931 var177
= NEW_array__NativeArray(var176
, &type_array__NativeArraykernel__Object
);
2932 ((struct instance_array__NativeArray
*)var177
)->values
[0] = (val
*) var155
;
2933 ((struct instance_array__NativeArray
*)var177
)->values
[1] = (val
*) var_res153
;
2934 ((struct instance_array__NativeArray
*)var177
)->values
[2] = (val
*) var160
;
2935 ((struct instance_array__NativeArray
*)var177
)->values
[3] = (val
*) var164
;
2936 ((struct instance_array__NativeArray
*)var177
)->values
[4] = (val
*) var166
;
2937 ((struct instance_array__NativeArray
*)var177
)->values
[5] = (val
*) var_mtype
;
2938 ((struct instance_array__NativeArray
*)var177
)->values
[6] = (val
*) var171
;
2939 ((void (*)(val
*, val
*, long))(var175
->class->vft
[COLOR_array__Array__with_native
]))(var175
, var177
, var176
) /* with_native on <var175:Array[Object]>*/;
2941 var178
= ((val
* (*)(val
*))(var175
->class->vft
[COLOR_string__Object__to_s
]))(var175
) /* to_s on <var175:Array[Object]>*/;
2942 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var178
) /* add on <self:GlobalCompilerVisitor>*/;
2944 var180
= varonce179
;
2946 var181
= "printf(\"Cast error: Cannot cast %s to %s.\\n\", \"";
2948 var183
= string__NativeString__to_s_with_length(var181
, var182
);
2950 varonce179
= var180
;
2952 var184
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
2954 var186
= varonce185
;
2958 var189
= string__NativeString__to_s_with_length(var187
, var188
);
2960 varonce185
= var186
;
2963 var191
= varonce190
;
2965 var192
= "\"); show_backtrace(1);";
2967 var194
= string__NativeString__to_s_with_length(var192
, var193
);
2969 varonce190
= var191
;
2971 var195
= NEW_array__Array(&type_array__Arraykernel__Object
);
2972 { /* var195 = array_instance Array[Object] */
2974 var197
= NEW_array__NativeArray(var196
, &type_array__NativeArraykernel__Object
);
2975 ((struct instance_array__NativeArray
*)var197
)->values
[0] = (val
*) var180
;
2976 ((struct instance_array__NativeArray
*)var197
)->values
[1] = (val
*) var184
;
2977 ((struct instance_array__NativeArray
*)var197
)->values
[2] = (val
*) var186
;
2978 ((struct instance_array__NativeArray
*)var197
)->values
[3] = (val
*) var_mtype
;
2979 ((struct instance_array__NativeArray
*)var197
)->values
[4] = (val
*) var191
;
2980 ((void (*)(val
*, val
*, long))(var195
->class->vft
[COLOR_array__Array__with_native
]))(var195
, var197
, var196
) /* with_native on <var195:Array[Object]>*/;
2982 var198
= ((val
* (*)(val
*))(var195
->class->vft
[COLOR_string__Object__to_s
]))(var195
) /* to_s on <var195:Array[Object]>*/;
2983 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var198
) /* add on <self:GlobalCompilerVisitor>*/;
2994 /* method global_compiler#GlobalCompilerVisitor#autobox for (self: Object, RuntimeVariable, MType): RuntimeVariable */
2995 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__autobox(val
* self
, val
* p0
, val
* p1
) {
2996 val
* var
/* : RuntimeVariable */;
2997 val
* var1
/* : RuntimeVariable */;
2998 var1
= global_compiler__GlobalCompilerVisitor__autobox(self
, p0
, p1
);
3003 /* method global_compiler#GlobalCompilerVisitor#collect_types for (self: GlobalCompilerVisitor, RuntimeVariable): Array[MClassType] */
3004 val
* global_compiler__GlobalCompilerVisitor__collect_types(val
* self
, val
* p0
) {
3005 val
* var
/* : Array[MClassType] */;
3006 val
* var_recv
/* var recv: RuntimeVariable */;
3007 val
* var1
/* : MType */;
3008 val
* var_mtype
/* var mtype: MType */;
3009 short int var2
/* : Bool */;
3010 short int var3
/* : Bool */;
3013 val
* var4
/* : AbstractCompiler */;
3014 val
* var5
/* : RapidTypeAnalysis */;
3015 val
* var6
/* : HashSet[MClassType] */;
3016 short int var7
/* : Bool */;
3017 val
* var8
/* : Array[MClassType] */;
3018 long var9
/* : Int */;
3019 val
* var_
/* var : Array[MClassType] */;
3020 val
* var_types
/* var types: Array[MClassType] */;
3021 val
* var10
/* : AbstractCompiler */;
3022 val
* var11
/* : HashMap[MType, Array[MClassType]] */;
3023 val
* var_cache
/* var cache: HashMap[MType, Array[MClassType]] */;
3024 short int var12
/* : Bool */;
3025 val
* var13
/* : nullable Object */;
3026 val
* var14
/* : Array[MClassType] */;
3027 val
* var_types15
/* var types: Array[MClassType] */;
3028 val
* var16
/* : AbstractCompiler */;
3029 val
* var17
/* : MModule */;
3030 val
* var_mainmodule
/* var mainmodule: MModule */;
3031 val
* var18
/* : AbstractCompiler */;
3032 val
* var19
/* : RapidTypeAnalysis */;
3033 val
* var20
/* : HashSet[MClassType] */;
3034 val
* var21
/* : Iterator[nullable Object] */;
3035 short int var22
/* : Bool */;
3036 val
* var23
/* : nullable Object */;
3037 val
* var_t
/* var t: MClassType */;
3038 val
* var24
/* : null */;
3039 short int var25
/* : Bool */;
3040 short int var26
/* : Bool */;
3042 var1
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_recv
) /* mcasttype on <var_recv:RuntimeVariable>*/;
3044 var2
= ((short int (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact
]))(var_recv
) /* is_exact on <var_recv:RuntimeVariable>*/;
3046 /* <var_mtype:MType> isa MClassType */
3047 cltype
= type_model__MClassType
.color
;
3048 idtype
= type_model__MClassType
.id
;
3049 if(cltype
>= var_mtype
->type
->table_size
) {
3052 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
3055 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3056 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 293);
3059 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
3060 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var4
) /* runtime_type_analysis on <var4:AbstractCompiler(GlobalCompiler)>*/;
3061 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var5
) /* live_types on <var5:RapidTypeAnalysis>*/;
3062 var7
= ((short int (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var6
, var_mtype
) /* has on <var6:HashSet[MClassType]>*/;
3064 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3065 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 294);
3068 var8
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
3070 ((void (*)(val
*, long))(var8
->class->vft
[COLOR_array__Array__with_capacity
]))(var8
, var9
) /* with_capacity on <var8:Array[MClassType]>*/;
3072 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var_mtype
) /* push on <var_:Array[MClassType]>*/;
3078 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
3079 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_global_compiler__GlobalCompiler__collect_types_cache
]))(var10
) /* collect_types_cache on <var10:AbstractCompiler(GlobalCompiler)>*/;
3081 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]]>*/;
3083 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]]>*/;
3088 var14
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
3089 ((void (*)(val
*))(var14
->class->vft
[COLOR_array__Array__init
]))(var14
) /* init on <var14:Array[MClassType]>*/;
3090 var_types15
= var14
;
3091 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
3092 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var16
) /* mainmodule on <var16:AbstractCompiler(GlobalCompiler)>*/;
3093 var_mainmodule
= var17
;
3094 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
3095 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var18
) /* runtime_type_analysis on <var18:AbstractCompiler(GlobalCompiler)>*/;
3096 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var19
) /* live_types on <var19:RapidTypeAnalysis>*/;
3097 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var20
) /* iterator on <var20:HashSet[MClassType]>*/;
3099 var22
= ((short int (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var21
) /* is_ok on <var21:Iterator[nullable Object]>*/;
3101 var23
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var21
) /* item on <var21:Iterator[nullable Object]>*/;
3104 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>*/;
3107 goto CONTINUE_label
;
3110 ((void (*)(val
*, val
*))(var_types15
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_types15
, var_t
) /* add on <var_types15:Array[MClassType]>*/;
3111 CONTINUE_label
: (void)0;
3112 ((void (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var21
) /* next on <var21:Iterator[nullable Object]>*/;
3114 BREAK_label
: (void)0;
3115 ((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]]>*/;
3121 /* method global_compiler#GlobalCompilerVisitor#collect_types for (self: Object, RuntimeVariable): Array[MClassType] */
3122 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__collect_types(val
* self
, val
* p0
) {
3123 val
* var
/* : Array[MClassType] */;
3124 val
* var1
/* : Array[MClassType] */;
3125 var1
= global_compiler__GlobalCompilerVisitor__collect_types(self
, p0
);
3130 /* method global_compiler#GlobalCompilerVisitor#native_array_def for (self: GlobalCompilerVisitor, String, nullable MType, Array[RuntimeVariable]) */
3131 void global_compiler__GlobalCompilerVisitor__native_array_def(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3132 val
* var_pname
/* var pname: String */;
3133 val
* var_ret_type
/* var ret_type: nullable MType */;
3134 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
3135 val
* var
/* : nullable Object */;
3136 val
* var1
/* : MType */;
3137 val
* var_elttype
/* var elttype: MType */;
3138 val
* var2
/* : Array[Object] */;
3139 long var3
/* : Int */;
3140 val
* var_
/* var : Array[Object] */;
3141 static val
* varonce
;
3142 val
* var4
/* : String */;
3143 char* var5
/* : NativeString */;
3144 long var6
/* : Int */;
3145 val
* var7
/* : String */;
3146 long var8
/* : Int */;
3147 val
* var9
/* : nullable Object */;
3148 val
* var10
/* : MType */;
3149 val
* var11
/* : String */;
3150 static val
* varonce12
;
3151 val
* var13
/* : String */;
3152 char* var14
/* : NativeString */;
3153 long var15
/* : Int */;
3154 val
* var16
/* : String */;
3155 long var17
/* : Int */;
3156 val
* var18
/* : nullable Object */;
3157 static val
* varonce19
;
3158 val
* var20
/* : String */;
3159 char* var21
/* : NativeString */;
3160 long var22
/* : Int */;
3161 val
* var23
/* : String */;
3162 val
* var24
/* : String */;
3163 val
* var_recv
/* var recv: String */;
3164 static val
* varonce25
;
3165 val
* var26
/* : String */;
3166 char* var27
/* : NativeString */;
3167 long var28
/* : Int */;
3168 val
* var29
/* : String */;
3169 short int var30
/* : Bool */;
3170 static val
* varonce31
;
3171 val
* var32
/* : String */;
3172 char* var33
/* : NativeString */;
3173 long var34
/* : Int */;
3174 val
* var35
/* : String */;
3175 long var36
/* : Int */;
3176 val
* var37
/* : nullable Object */;
3177 static val
* varonce38
;
3178 val
* var39
/* : String */;
3179 char* var40
/* : NativeString */;
3180 long var41
/* : Int */;
3181 val
* var42
/* : String */;
3182 val
* var43
/* : Array[Object] */;
3183 long var44
/* : Int */;
3184 val
* var45
/* : NativeArray[Object] */;
3185 val
* var46
/* : String */;
3186 val
* var47
/* : RuntimeVariable */;
3187 static val
* varonce48
;
3188 val
* var49
/* : String */;
3189 char* var50
/* : NativeString */;
3190 long var51
/* : Int */;
3191 val
* var52
/* : String */;
3192 short int var53
/* : Bool */;
3193 static val
* varonce54
;
3194 val
* var55
/* : String */;
3195 char* var56
/* : NativeString */;
3196 long var57
/* : Int */;
3197 val
* var58
/* : String */;
3198 long var59
/* : Int */;
3199 val
* var60
/* : nullable Object */;
3200 static val
* varonce61
;
3201 val
* var62
/* : String */;
3202 char* var63
/* : NativeString */;
3203 long var64
/* : Int */;
3204 val
* var65
/* : String */;
3205 long var66
/* : Int */;
3206 val
* var67
/* : nullable Object */;
3207 static val
* varonce68
;
3208 val
* var69
/* : String */;
3209 char* var70
/* : NativeString */;
3210 long var71
/* : Int */;
3211 val
* var72
/* : String */;
3212 val
* var73
/* : Array[Object] */;
3213 long var74
/* : Int */;
3214 val
* var75
/* : NativeArray[Object] */;
3215 val
* var76
/* : String */;
3216 static val
* varonce77
;
3217 val
* var78
/* : String */;
3218 char* var79
/* : NativeString */;
3219 long var80
/* : Int */;
3220 val
* var81
/* : String */;
3221 short int var82
/* : Bool */;
3222 val
* var83
/* : Array[Object] */;
3223 long var84
/* : Int */;
3224 val
* var_85
/* var : Array[Object] */;
3225 static val
* varonce86
;
3226 val
* var87
/* : String */;
3227 char* var88
/* : NativeString */;
3228 long var89
/* : Int */;
3229 val
* var90
/* : String */;
3230 long var91
/* : Int */;
3231 val
* var92
/* : nullable Object */;
3232 val
* var93
/* : MType */;
3233 val
* var94
/* : String */;
3234 static val
* varonce95
;
3235 val
* var96
/* : String */;
3236 char* var97
/* : NativeString */;
3237 long var98
/* : Int */;
3238 val
* var99
/* : String */;
3239 long var100
/* : Int */;
3240 val
* var101
/* : nullable Object */;
3241 static val
* varonce102
;
3242 val
* var103
/* : String */;
3243 char* var104
/* : NativeString */;
3244 long var105
/* : Int */;
3245 val
* var106
/* : String */;
3246 val
* var107
/* : String */;
3247 val
* var_recv1
/* var recv1: String */;
3248 static val
* varonce108
;
3249 val
* var109
/* : String */;
3250 char* var110
/* : NativeString */;
3251 long var111
/* : Int */;
3252 val
* var112
/* : String */;
3253 static val
* varonce113
;
3254 val
* var114
/* : String */;
3255 char* var115
/* : NativeString */;
3256 long var116
/* : Int */;
3257 val
* var117
/* : String */;
3258 static val
* varonce118
;
3259 val
* var119
/* : String */;
3260 char* var120
/* : NativeString */;
3261 long var121
/* : Int */;
3262 val
* var122
/* : String */;
3263 long var123
/* : Int */;
3264 val
* var124
/* : nullable Object */;
3265 static val
* varonce125
;
3266 val
* var126
/* : String */;
3267 char* var127
/* : NativeString */;
3268 long var128
/* : Int */;
3269 val
* var129
/* : String */;
3270 val
* var130
/* : String */;
3271 static val
* varonce131
;
3272 val
* var132
/* : String */;
3273 char* var133
/* : NativeString */;
3274 long var134
/* : Int */;
3275 val
* var135
/* : String */;
3276 val
* var136
/* : Array[Object] */;
3277 long var137
/* : Int */;
3278 val
* var138
/* : NativeArray[Object] */;
3279 val
* var139
/* : String */;
3283 var
= ((val
* (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_arguments
) /* first on <var_arguments:Array[RuntimeVariable]>*/;
3284 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var
) /* mtype on <var:nullable Object(RuntimeVariable)>*/;
3286 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
3288 ((void (*)(val
*, long))(var2
->class->vft
[COLOR_array__Array__with_capacity
]))(var2
, var3
) /* with_capacity on <var2:Array[Object]>*/;
3295 var7
= string__NativeString__to_s_with_length(var5
, var6
);
3299 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var4
) /* add on <var_:Array[Object]>*/;
3301 var9
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var8
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3302 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var9
) /* mcasttype on <var9:nullable Object(RuntimeVariable)>*/;
3303 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var10
) /* c_name on <var10:MType>*/;
3304 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var11
) /* add on <var_:Array[Object]>*/;
3310 var16
= string__NativeString__to_s_with_length(var14
, var15
);
3314 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var13
) /* add on <var_:Array[Object]>*/;
3316 var18
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var17
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3317 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var18
) /* add on <var_:Array[Object]>*/;
3321 var21
= ")->values";
3323 var23
= string__NativeString__to_s_with_length(var21
, var22
);
3327 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var20
) /* add on <var_:Array[Object]>*/;
3328 var24
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
3335 var29
= string__NativeString__to_s_with_length(var27
, var28
);
3339 var30
= ((short int (*)(val
*, val
*))(var_pname
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pname
, var26
) /* == on <var_pname:String>*/;
3346 var35
= string__NativeString__to_s_with_length(var33
, var34
);
3351 var37
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var36
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3357 var42
= string__NativeString__to_s_with_length(var40
, var41
);
3361 var43
= NEW_array__Array(&type_array__Arraykernel__Object
);
3362 { /* var43 = array_instance Array[Object] */
3364 var45
= NEW_array__NativeArray(var44
, &type_array__NativeArraykernel__Object
);
3365 ((struct instance_array__NativeArray
*)var45
)->values
[0] = (val
*) var_recv
;
3366 ((struct instance_array__NativeArray
*)var45
)->values
[1] = (val
*) var32
;
3367 ((struct instance_array__NativeArray
*)var45
)->values
[2] = (val
*) var37
;
3368 ((struct instance_array__NativeArray
*)var45
)->values
[3] = (val
*) var39
;
3369 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[Object]>*/;
3371 var46
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_string__Object__to_s
]))(var43
) /* to_s on <var43:Array[Object]>*/;
3372 if (var_ret_type
== NULL
) {
3373 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3374 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 317);
3377 var47
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var46
, var_ret_type
) /* new_expr on <self:GlobalCompilerVisitor>*/;
3378 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__ret
]))(self
, var47
) /* ret on <self:GlobalCompilerVisitor>*/;
3386 var52
= string__NativeString__to_s_with_length(var50
, var51
);
3390 var53
= ((short int (*)(val
*, val
*))(var_pname
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pname
, var49
) /* == on <var_pname:String>*/;
3397 var58
= string__NativeString__to_s_with_length(var56
, var57
);
3402 var60
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var59
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3408 var65
= string__NativeString__to_s_with_length(var63
, var64
);
3413 var67
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var66
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3419 var72
= string__NativeString__to_s_with_length(var70
, var71
);
3423 var73
= NEW_array__Array(&type_array__Arraykernel__Object
);
3424 { /* var73 = array_instance Array[Object] */
3426 var75
= NEW_array__NativeArray(var74
, &type_array__NativeArraykernel__Object
);
3427 ((struct instance_array__NativeArray
*)var75
)->values
[0] = (val
*) var_recv
;
3428 ((struct instance_array__NativeArray
*)var75
)->values
[1] = (val
*) var55
;
3429 ((struct instance_array__NativeArray
*)var75
)->values
[2] = (val
*) var60
;
3430 ((struct instance_array__NativeArray
*)var75
)->values
[3] = (val
*) var62
;
3431 ((struct instance_array__NativeArray
*)var75
)->values
[4] = (val
*) var67
;
3432 ((struct instance_array__NativeArray
*)var75
)->values
[5] = (val
*) var69
;
3433 ((void (*)(val
*, val
*, long))(var73
->class->vft
[COLOR_array__Array__with_native
]))(var73
, var75
, var74
) /* with_native on <var73:Array[Object]>*/;
3435 var76
= ((val
* (*)(val
*))(var73
->class->vft
[COLOR_string__Object__to_s
]))(var73
) /* to_s on <var73:Array[Object]>*/;
3436 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var76
) /* add on <self:GlobalCompilerVisitor>*/;
3444 var81
= string__NativeString__to_s_with_length(var79
, var80
);
3448 var82
= ((short int (*)(val
*, val
*))(var_pname
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pname
, var78
) /* == on <var_pname:String>*/;
3450 var83
= NEW_array__Array(&type_array__Arraykernel__Object
);
3452 ((void (*)(val
*, long))(var83
->class->vft
[COLOR_array__Array__with_capacity
]))(var83
, var84
) /* with_capacity on <var83:Array[Object]>*/;
3457 var88
= "((struct ";
3459 var90
= string__NativeString__to_s_with_length(var88
, var89
);
3463 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var87
) /* add on <var_85:Array[Object]>*/;
3465 var92
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var91
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3466 var93
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var92
) /* mcasttype on <var92:nullable Object(RuntimeVariable)>*/;
3467 var94
= ((val
* (*)(val
*))(var93
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var93
) /* c_name on <var93:MType>*/;
3468 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var94
) /* add on <var_85:Array[Object]>*/;
3474 var99
= string__NativeString__to_s_with_length(var97
, var98
);
3478 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var96
) /* add on <var_85:Array[Object]>*/;
3480 var101
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var100
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3481 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var101
) /* add on <var_85:Array[Object]>*/;
3483 var103
= varonce102
;
3485 var104
= ")->values";
3487 var106
= string__NativeString__to_s_with_length(var104
, var105
);
3489 varonce102
= var103
;
3491 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var103
) /* add on <var_85:Array[Object]>*/;
3492 var107
= ((val
* (*)(val
*))(var_85
->class->vft
[COLOR_string__Object__to_s
]))(var_85
) /* to_s on <var_85:Array[Object]>*/;
3495 var109
= varonce108
;
3499 var112
= string__NativeString__to_s_with_length(var110
, var111
);
3501 varonce108
= var109
;
3504 var114
= varonce113
;
3508 var117
= string__NativeString__to_s_with_length(var115
, var116
);
3510 varonce113
= var114
;
3513 var119
= varonce118
;
3517 var122
= string__NativeString__to_s_with_length(var120
, var121
);
3519 varonce118
= var119
;
3522 var124
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var123
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3524 var126
= varonce125
;
3526 var127
= "*sizeof(";
3528 var129
= string__NativeString__to_s_with_length(var127
, var128
);
3530 varonce125
= var126
;
3532 var130
= ((val
* (*)(val
*))(var_elttype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_elttype
) /* ctype on <var_elttype:MType>*/;
3534 var132
= varonce131
;
3538 var135
= string__NativeString__to_s_with_length(var133
, var134
);
3540 varonce131
= var132
;
3542 var136
= NEW_array__Array(&type_array__Arraykernel__Object
);
3543 { /* var136 = array_instance Array[Object] */
3545 var138
= NEW_array__NativeArray(var137
, &type_array__NativeArraykernel__Object
);
3546 ((struct instance_array__NativeArray
*)var138
)->values
[0] = (val
*) var109
;
3547 ((struct instance_array__NativeArray
*)var138
)->values
[1] = (val
*) var_recv1
;
3548 ((struct instance_array__NativeArray
*)var138
)->values
[2] = (val
*) var114
;
3549 ((struct instance_array__NativeArray
*)var138
)->values
[3] = (val
*) var_recv
;
3550 ((struct instance_array__NativeArray
*)var138
)->values
[4] = (val
*) var119
;
3551 ((struct instance_array__NativeArray
*)var138
)->values
[5] = (val
*) var124
;
3552 ((struct instance_array__NativeArray
*)var138
)->values
[6] = (val
*) var126
;
3553 ((struct instance_array__NativeArray
*)var138
)->values
[7] = (val
*) var130
;
3554 ((struct instance_array__NativeArray
*)var138
)->values
[8] = (val
*) var132
;
3555 ((void (*)(val
*, val
*, long))(var136
->class->vft
[COLOR_array__Array__with_native
]))(var136
, var138
, var137
) /* with_native on <var136:Array[Object]>*/;
3557 var139
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_string__Object__to_s
]))(var136
) /* to_s on <var136:Array[Object]>*/;
3558 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var139
) /* add on <self:GlobalCompilerVisitor>*/;
3566 /* method global_compiler#GlobalCompilerVisitor#native_array_def for (self: Object, String, nullable MType, Array[RuntimeVariable]) */
3567 void VIRTUAL_global_compiler__GlobalCompilerVisitor__native_array_def(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3568 global_compiler__GlobalCompilerVisitor__native_array_def(self
, p0
, p1
, p2
);
3571 /* method global_compiler#GlobalCompilerVisitor#calloc_array for (self: GlobalCompilerVisitor, MType, Array[RuntimeVariable]) */
3572 void global_compiler__GlobalCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
3573 val
* var_ret_type
/* var ret_type: MType */;
3574 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
3575 static val
* varonce
;
3576 val
* var
/* : String */;
3577 char* var1
/* : NativeString */;
3578 long var2
/* : Int */;
3579 val
* var3
/* : String */;
3580 val
* var4
/* : String */;
3581 static val
* varonce5
;
3582 val
* var6
/* : String */;
3583 char* var7
/* : NativeString */;
3584 long var8
/* : Int */;
3585 val
* var9
/* : String */;
3586 long var10
/* : Int */;
3587 val
* var11
/* : nullable Object */;
3588 static val
* varonce12
;
3589 val
* var13
/* : String */;
3590 char* var14
/* : NativeString */;
3591 long var15
/* : Int */;
3592 val
* var16
/* : String */;
3593 val
* var17
/* : Array[Object] */;
3594 long var18
/* : Int */;
3595 val
* var19
/* : NativeArray[Object] */;
3596 val
* var20
/* : String */;
3597 val
* var21
/* : RuntimeVariable */;
3605 var3
= string__NativeString__to_s_with_length(var1
, var2
);
3609 var4
= ((val
* (*)(val
*))(var_ret_type
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_ret_type
) /* c_name on <var_ret_type:MType>*/;
3615 var9
= string__NativeString__to_s_with_length(var7
, var8
);
3620 var11
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var10
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3626 var16
= string__NativeString__to_s_with_length(var14
, var15
);
3630 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
3631 { /* var17 = array_instance Array[Object] */
3633 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
3634 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var
;
3635 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var4
;
3636 ((struct instance_array__NativeArray
*)var19
)->values
[2] = (val
*) var6
;
3637 ((struct instance_array__NativeArray
*)var19
)->values
[3] = (val
*) var11
;
3638 ((struct instance_array__NativeArray
*)var19
)->values
[4] = (val
*) var13
;
3639 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
3641 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
3642 var21
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var20
, var_ret_type
) /* new_expr on <self:GlobalCompilerVisitor>*/;
3643 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__ret
]))(self
, var21
) /* ret on <self:GlobalCompilerVisitor>*/;
3646 /* method global_compiler#GlobalCompilerVisitor#calloc_array for (self: Object, MType, Array[RuntimeVariable]) */
3647 void VIRTUAL_global_compiler__GlobalCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
3648 global_compiler__GlobalCompilerVisitor__calloc_array(self
, p0
, p1
);
3651 /* method global_compiler#GlobalCompilerVisitor#send for (self: GlobalCompilerVisitor, MMethod, Array[RuntimeVariable]): nullable RuntimeVariable */
3652 val
* global_compiler__GlobalCompilerVisitor__send(val
* self
, val
* p0
, val
* p1
) {
3653 val
* var
/* : nullable RuntimeVariable */;
3654 val
* var_m
/* var m: MMethod */;
3655 val
* var_args
/* var args: Array[RuntimeVariable] */;
3656 val
* var1
/* : nullable Object */;
3657 val
* var2
/* : Array[MClassType] */;
3658 val
* var_types
/* var types: Array[MClassType] */;
3659 val
* var3
/* : MPropDef */;
3660 val
* var4
/* : nullable MSignature */;
3661 val
* var5
/* : nullable MType */;
3662 val
* var_ret
/* var ret: nullable MType */;
3663 short int var6
/* : Bool */;
3664 val
* var7
/* : nullable Object */;
3665 val
* var8
/* : MType */;
3666 val
* var9
/* : RuntimeVariable */;
3667 val
* var_res
/* var res: nullable RuntimeVariable */;
3668 val
* var10
/* : null */;
3669 short int var11
/* : Bool */;
3670 val
* var12
/* : null */;
3671 val
* var13
/* : nullable Object */;
3672 val
* var14
/* : MType */;
3673 val
* var15
/* : RuntimeVariable */;
3674 static val
* varonce
;
3675 val
* var16
/* : String */;
3676 char* var17
/* : NativeString */;
3677 long var18
/* : Int */;
3678 val
* var19
/* : String */;
3679 static val
* varonce20
;
3680 val
* var21
/* : String */;
3681 char* var22
/* : NativeString */;
3682 long var23
/* : Int */;
3683 val
* var24
/* : String */;
3684 val
* var25
/* : nullable Object */;
3685 val
* var26
/* : String */;
3686 static val
* varonce27
;
3687 val
* var28
/* : String */;
3688 char* var29
/* : NativeString */;
3689 long var30
/* : Int */;
3690 val
* var31
/* : String */;
3691 val
* var32
/* : Array[Object] */;
3692 long var33
/* : Int */;
3693 val
* var34
/* : NativeArray[Object] */;
3694 val
* var35
/* : String */;
3695 val
* var36
/* : nullable Object */;
3696 val
* var37
/* : MType */;
3697 val
* var38
/* : String */;
3698 static val
* varonce39
;
3699 val
* var40
/* : String */;
3700 char* var41
/* : NativeString */;
3701 long var42
/* : Int */;
3702 val
* var43
/* : String */;
3703 short int var44
/* : Bool */;
3704 val
* var45
/* : nullable Object */;
3705 val
* var46
/* : MType */;
3706 short int var47
/* : Bool */;
3709 const char* var_class_name
;
3710 val
* var_mclasstype
/* var mclasstype: MClassType */;
3711 val
* var48
/* : AbstractCompiler */;
3712 val
* var49
/* : RapidTypeAnalysis */;
3713 val
* var50
/* : HashSet[MClassType] */;
3714 short int var51
/* : Bool */;
3715 short int var52
/* : Bool */;
3716 static val
* varonce53
;
3717 val
* var54
/* : String */;
3718 char* var55
/* : NativeString */;
3719 long var56
/* : Int */;
3720 val
* var57
/* : String */;
3721 static val
* varonce58
;
3722 val
* var59
/* : String */;
3723 char* var60
/* : NativeString */;
3724 long var61
/* : Int */;
3725 val
* var62
/* : String */;
3726 val
* var63
/* : Array[Object] */;
3727 long var64
/* : Int */;
3728 val
* var65
/* : NativeArray[Object] */;
3729 val
* var66
/* : String */;
3730 val
* var67
/* : AbstractCompiler */;
3731 val
* var68
/* : MModule */;
3732 val
* var69
/* : MPropDef */;
3733 val
* var_propdef
/* var propdef: MMethodDef */;
3734 val
* var70
/* : nullable RuntimeVariable */;
3735 val
* var_res2
/* var res2: nullable RuntimeVariable */;
3736 val
* var71
/* : null */;
3737 short int var72
/* : Bool */;
3738 short int var73
/* : Bool */;
3739 short int var74
/* : Bool */;
3740 val
* var75
/* : AbstractCompiler */;
3741 val
* var76
/* : ModelBuilder */;
3742 val
* var77
/* : ToolContext */;
3743 val
* var78
/* : OptionBool */;
3744 val
* var79
/* : nullable Object */;
3745 short int var80
/* : Bool */;
3746 short int var81
/* : Bool */;
3747 short int var_
/* var : Bool */;
3748 val
* var82
/* : String */;
3749 static val
* varonce83
;
3750 val
* var84
/* : String */;
3751 char* var85
/* : NativeString */;
3752 long var86
/* : Int */;
3753 val
* var87
/* : String */;
3754 short int var88
/* : Bool */;
3755 short int var_89
/* var : Bool */;
3756 val
* var90
/* : String */;
3757 static val
* varonce91
;
3758 val
* var92
/* : String */;
3759 char* var93
/* : NativeString */;
3760 long var94
/* : Int */;
3761 val
* var95
/* : String */;
3762 short int var96
/* : Bool */;
3763 short int var_consider_null
/* var consider_null: Bool */;
3764 short int var97
/* : Bool */;
3765 short int var98
/* : Bool */;
3766 val
* var99
/* : nullable Object */;
3767 val
* var100
/* : MType */;
3768 short int var101
/* : Bool */;
3771 short int var_104
/* var : Bool */;
3772 val
* var105
/* : nullable Object */;
3773 val
* var106
/* : MType */;
3774 short int var107
/* : Bool */;
3777 short int var_110
/* var : Bool */;
3778 static val
* varonce111
;
3779 val
* var112
/* : String */;
3780 char* var113
/* : NativeString */;
3781 long var114
/* : Int */;
3782 val
* var115
/* : String */;
3783 val
* var116
/* : nullable Object */;
3784 static val
* varonce117
;
3785 val
* var118
/* : String */;
3786 char* var119
/* : NativeString */;
3787 long var120
/* : Int */;
3788 val
* var121
/* : String */;
3789 val
* var122
/* : Array[Object] */;
3790 long var123
/* : Int */;
3791 val
* var124
/* : NativeArray[Object] */;
3792 val
* var125
/* : String */;
3793 val
* var126
/* : String */;
3794 static val
* varonce127
;
3795 val
* var128
/* : String */;
3796 char* var129
/* : NativeString */;
3797 long var130
/* : Int */;
3798 val
* var131
/* : String */;
3799 short int var132
/* : Bool */;
3800 val
* var133
/* : null */;
3801 short int var134
/* : Bool */;
3802 long var135
/* : Int */;
3803 val
* var136
/* : nullable Object */;
3804 val
* var137
/* : MType */;
3805 short int var138
/* : Bool */;
3808 static val
* varonce141
;
3809 val
* var142
/* : String */;
3810 char* var143
/* : NativeString */;
3811 long var144
/* : Int */;
3812 val
* var145
/* : String */;
3813 long var146
/* : Int */;
3814 val
* var147
/* : nullable Object */;
3815 static val
* varonce148
;
3816 val
* var149
/* : String */;
3817 char* var150
/* : NativeString */;
3818 long var151
/* : Int */;
3819 val
* var152
/* : String */;
3820 val
* var153
/* : Array[Object] */;
3821 long var154
/* : Int */;
3822 val
* var155
/* : NativeArray[Object] */;
3823 val
* var156
/* : String */;
3824 long var157
/* : Int */;
3825 val
* var158
/* : nullable Object */;
3826 val
* var159
/* : MType */;
3827 short int var160
/* : Bool */;
3830 static val
* varonce163
;
3831 val
* var164
/* : String */;
3832 char* var165
/* : NativeString */;
3833 long var166
/* : Int */;
3834 val
* var167
/* : String */;
3835 val
* var168
/* : Array[Object] */;
3836 long var169
/* : Int */;
3837 val
* var170
/* : NativeArray[Object] */;
3838 val
* var171
/* : String */;
3839 static val
* varonce172
;
3840 val
* var173
/* : String */;
3841 char* var174
/* : NativeString */;
3842 long var175
/* : Int */;
3843 val
* var176
/* : String */;
3844 long var177
/* : Int */;
3845 val
* var178
/* : nullable Object */;
3846 val
* var179
/* : String */;
3847 static val
* varonce180
;
3848 val
* var181
/* : String */;
3849 char* var182
/* : NativeString */;
3850 long var183
/* : Int */;
3851 val
* var184
/* : String */;
3852 val
* var185
/* : Array[Object] */;
3853 long var186
/* : Int */;
3854 val
* var187
/* : NativeArray[Object] */;
3855 val
* var188
/* : String */;
3856 val
* var189
/* : String */;
3857 static val
* varonce190
;
3858 val
* var191
/* : String */;
3859 char* var192
/* : NativeString */;
3860 long var193
/* : Int */;
3861 val
* var194
/* : String */;
3862 short int var195
/* : Bool */;
3863 val
* var196
/* : null */;
3864 short int var197
/* : Bool */;
3865 long var198
/* : Int */;
3866 val
* var199
/* : nullable Object */;
3867 val
* var200
/* : MType */;
3868 short int var201
/* : Bool */;
3871 static val
* varonce204
;
3872 val
* var205
/* : String */;
3873 char* var206
/* : NativeString */;
3874 long var207
/* : Int */;
3875 val
* var208
/* : String */;
3876 long var209
/* : Int */;
3877 val
* var210
/* : nullable Object */;
3878 static val
* varonce211
;
3879 val
* var212
/* : String */;
3880 char* var213
/* : NativeString */;
3881 long var214
/* : Int */;
3882 val
* var215
/* : String */;
3883 val
* var216
/* : Array[Object] */;
3884 long var217
/* : Int */;
3885 val
* var218
/* : NativeArray[Object] */;
3886 val
* var219
/* : String */;
3887 long var220
/* : Int */;
3888 val
* var221
/* : nullable Object */;
3889 val
* var222
/* : MType */;
3890 short int var223
/* : Bool */;
3893 static val
* varonce226
;
3894 val
* var227
/* : String */;
3895 char* var228
/* : NativeString */;
3896 long var229
/* : Int */;
3897 val
* var230
/* : String */;
3898 val
* var231
/* : Array[Object] */;
3899 long var232
/* : Int */;
3900 val
* var233
/* : NativeArray[Object] */;
3901 val
* var234
/* : String */;
3902 static val
* varonce235
;
3903 val
* var236
/* : String */;
3904 char* var237
/* : NativeString */;
3905 long var238
/* : Int */;
3906 val
* var239
/* : String */;
3907 long var240
/* : Int */;
3908 val
* var241
/* : nullable Object */;
3909 val
* var242
/* : String */;
3910 static val
* varonce243
;
3911 val
* var244
/* : String */;
3912 char* var245
/* : NativeString */;
3913 long var246
/* : Int */;
3914 val
* var247
/* : String */;
3915 val
* var248
/* : Array[Object] */;
3916 long var249
/* : Int */;
3917 val
* var250
/* : NativeArray[Object] */;
3918 val
* var251
/* : String */;
3919 static val
* varonce252
;
3920 val
* var253
/* : String */;
3921 char* var254
/* : NativeString */;
3922 long var255
/* : Int */;
3923 val
* var256
/* : String */;
3924 static val
* varonce257
;
3925 val
* var258
/* : String */;
3926 char* var259
/* : NativeString */;
3927 long var260
/* : Int */;
3928 val
* var261
/* : String */;
3929 short int var262
/* : Bool */;
3930 static val
* varonce263
;
3931 val
* var264
/* : String */;
3932 char* var265
/* : NativeString */;
3933 long var266
/* : Int */;
3934 val
* var267
/* : String */;
3935 static val
* varonce268
;
3936 val
* var269
/* : String */;
3937 char* var270
/* : NativeString */;
3938 long var271
/* : Int */;
3939 val
* var272
/* : String */;
3940 val
* var273
/* : nullable Object */;
3941 val
* var274
/* : String */;
3942 static val
* varonce275
;
3943 val
* var276
/* : String */;
3944 char* var277
/* : NativeString */;
3945 long var278
/* : Int */;
3946 val
* var279
/* : String */;
3947 static val
* varonce280
;
3948 val
* var281
/* : String */;
3949 char* var282
/* : NativeString */;
3950 long var283
/* : Int */;
3951 val
* var284
/* : String */;
3952 val
* var285
/* : Array[Object] */;
3953 long var286
/* : Int */;
3954 val
* var287
/* : NativeArray[Object] */;
3955 val
* var288
/* : String */;
3956 val
* var289
/* : nullable Object */;
3957 static val
* varonce290
;
3958 val
* var291
/* : String */;
3959 char* var292
/* : NativeString */;
3960 long var293
/* : Int */;
3961 val
* var294
/* : String */;
3962 static val
* varonce295
;
3963 val
* var296
/* : String */;
3964 char* var297
/* : NativeString */;
3965 long var298
/* : Int */;
3966 val
* var299
/* : String */;
3967 val
* var300
/* : nullable Object */;
3968 static val
* varonce301
;
3969 val
* var302
/* : String */;
3970 char* var303
/* : NativeString */;
3971 long var304
/* : Int */;
3972 val
* var305
/* : String */;
3973 val
* var306
/* : Array[Object] */;
3974 long var307
/* : Int */;
3975 val
* var308
/* : NativeArray[Object] */;
3976 val
* var309
/* : String */;
3977 val
* var310
/* : nullable Object */;
3978 val
* var_last
/* var last: MClassType */;
3979 val
* var311
/* : null */;
3980 val
* var_defaultpropdef
/* var defaultpropdef: nullable MMethodDef */;
3981 val
* var312
/* : Iterator[nullable Object] */;
3982 short int var313
/* : Bool */;
3983 val
* var314
/* : nullable Object */;
3984 val
* var_t
/* var t: MClassType */;
3985 val
* var315
/* : AbstractCompiler */;
3986 val
* var316
/* : MModule */;
3987 val
* var317
/* : MPropDef */;
3988 val
* var_propdef318
/* var propdef: MMethodDef */;
3989 short int var319
/* : Bool */;
3990 val
* var320
/* : MClassDef */;
3991 val
* var321
/* : MClass */;
3992 val
* var322
/* : String */;
3993 static val
* varonce323
;
3994 val
* var324
/* : String */;
3995 char* var325
/* : NativeString */;
3996 long var326
/* : Int */;
3997 val
* var327
/* : String */;
3998 short int var328
/* : Bool */;
3999 short int var_329
/* var : Bool */;
4000 val
* var330
/* : String */;
4001 static val
* varonce331
;
4002 val
* var332
/* : String */;
4003 char* var333
/* : NativeString */;
4004 long var334
/* : Int */;
4005 val
* var335
/* : String */;
4006 short int var336
/* : Bool */;
4007 short int var337
/* : Bool */;
4008 short int var338
/* : Bool */;
4009 val
* var339
/* : AbstractCompiler */;
4010 short int var340
/* : Bool */;
4011 short int var341
/* : Bool */;
4012 short int var_342
/* var : Bool */;
4013 short int var343
/* : Bool */;
4014 short int var_344
/* var : Bool */;
4015 val
* var345
/* : null */;
4016 short int var346
/* : Bool */;
4017 static val
* varonce347
;
4018 val
* var348
/* : String */;
4019 char* var349
/* : NativeString */;
4020 long var350
/* : Int */;
4021 val
* var351
/* : String */;
4022 static val
* varonce352
;
4023 val
* var353
/* : String */;
4024 char* var354
/* : NativeString */;
4025 long var355
/* : Int */;
4026 val
* var356
/* : String */;
4027 val
* var357
/* : Array[Object] */;
4028 long var358
/* : Int */;
4029 val
* var359
/* : NativeArray[Object] */;
4030 val
* var360
/* : String */;
4031 static val
* varonce361
;
4032 val
* var362
/* : String */;
4033 char* var363
/* : NativeString */;
4034 long var364
/* : Int */;
4035 val
* var365
/* : String */;
4036 val
* var366
/* : AbstractCompiler */;
4037 val
* var367
/* : String */;
4038 static val
* varonce368
;
4039 val
* var369
/* : String */;
4040 char* var370
/* : NativeString */;
4041 long var371
/* : Int */;
4042 val
* var372
/* : String */;
4043 static val
* varonce373
;
4044 val
* var374
/* : String */;
4045 char* var375
/* : NativeString */;
4046 long var376
/* : Int */;
4047 val
* var377
/* : String */;
4048 val
* var378
/* : Array[Object] */;
4049 long var379
/* : Int */;
4050 val
* var380
/* : NativeArray[Object] */;
4051 val
* var381
/* : String */;
4052 val
* var382
/* : nullable RuntimeVariable */;
4053 val
* var_res2383
/* var res2: nullable RuntimeVariable */;
4054 val
* var384
/* : null */;
4055 short int var385
/* : Bool */;
4056 static val
* varonce386
;
4057 val
* var387
/* : String */;
4058 char* var388
/* : NativeString */;
4059 long var389
/* : Int */;
4060 val
* var390
/* : String */;
4061 val
* var391
/* : null */;
4062 short int var392
/* : Bool */;
4063 static val
* varonce393
;
4064 val
* var394
/* : String */;
4065 char* var395
/* : NativeString */;
4066 long var396
/* : Int */;
4067 val
* var397
/* : String */;
4068 val
* var398
/* : MClassDef */;
4069 val
* var399
/* : MClassType */;
4070 val
* var400
/* : nullable RuntimeVariable */;
4071 val
* var_res2401
/* var res2: nullable RuntimeVariable */;
4072 val
* var402
/* : null */;
4073 short int var403
/* : Bool */;
4074 val
* var404
/* : AbstractCompiler */;
4075 short int var405
/* : Bool */;
4076 static val
* varonce406
;
4077 val
* var407
/* : String */;
4078 char* var408
/* : NativeString */;
4079 long var409
/* : Int */;
4080 val
* var410
/* : String */;
4081 val
* var411
/* : nullable Object */;
4082 static val
* varonce412
;
4083 val
* var413
/* : String */;
4084 char* var414
/* : NativeString */;
4085 long var415
/* : Int */;
4086 val
* var416
/* : String */;
4089 var1
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4090 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var1
) /* collect_types on <self:GlobalCompilerVisitor>*/;
4092 var3
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__intro
]))(var_m
) /* intro on <var_m:MMethod>*/;
4093 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var3
) /* msignature on <var3:MPropDef(MMethodDef)>*/;
4095 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
4096 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 339);
4099 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var4
) /* return_mtype on <var4:nullable MSignature>*/;
4102 var6
= ((short int (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethod__is_new
]))(var_m
) /* is_new on <var_m:MMethod>*/;
4104 var7
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4105 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var7
) /* mtype on <var7:nullable Object(RuntimeVariable)>*/;
4107 var9
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
4111 if (var_ret
== NULL
) {
4112 var11
= 1; /* is null */
4114 var11
= 0; /* arg is null but recv is not */
4120 var13
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4121 var14
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ret
, var13
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
4123 var15
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
4132 var19
= string__NativeString__to_s_with_length(var17
, var18
);
4141 var24
= string__NativeString__to_s_with_length(var22
, var23
);
4145 var25
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4146 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_string__Object__inspect
]))(var25
) /* inspect on <var25:nullable Object(RuntimeVariable)>*/;
4152 var31
= string__NativeString__to_s_with_length(var29
, var30
);
4156 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
4157 { /* var32 = array_instance Array[Object] */
4159 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
4160 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var16
;
4161 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_m
;
4162 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var21
;
4163 ((struct instance_array__NativeArray
*)var34
)->values
[3] = (val
*) var26
;
4164 ((struct instance_array__NativeArray
*)var34
)->values
[4] = (val
*) var28
;
4165 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
4167 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
4168 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var35
) /* add on <self:GlobalCompilerVisitor>*/;
4169 var36
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4170 var37
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var36
) /* mtype on <var36:nullable Object(RuntimeVariable)>*/;
4171 var38
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var37
) /* ctype on <var37:MType>*/;
4177 var43
= string__NativeString__to_s_with_length(var41
, var42
);
4181 var44
= ((short int (*)(val
*, val
*))(var38
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var38
, var40
) /* != on <var38:String>*/;
4183 var45
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4184 var46
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var45
) /* mtype on <var45:nullable Object(RuntimeVariable)>*/;
4185 /* <var46:MType> isa MClassType */
4186 cltype
= type_model__MClassType
.color
;
4187 idtype
= type_model__MClassType
.id
;
4188 if(cltype
>= var46
->type
->table_size
) {
4191 var47
= var46
->type
->type_table
[cltype
] == idtype
;
4194 var_class_name
= var46
== NULL ?
"null" : var46
->type
->name
;
4195 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
4196 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 352);
4199 var_mclasstype
= var46
;
4200 var48
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4201 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var48
) /* runtime_type_analysis on <var48:AbstractCompiler(GlobalCompiler)>*/;
4202 var50
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var49
) /* live_types on <var49:RapidTypeAnalysis>*/;
4203 var51
= ((short int (*)(val
*, val
*))(var50
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var50
, var_mclasstype
) /* has on <var50:HashSet[MClassType]>*/;
4209 var55
= "/* skip, no method ";
4211 var57
= string__NativeString__to_s_with_length(var55
, var56
);
4220 var62
= string__NativeString__to_s_with_length(var60
, var61
);
4224 var63
= NEW_array__Array(&type_array__Arraykernel__Object
);
4225 { /* var63 = array_instance Array[Object] */
4227 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArraykernel__Object
);
4228 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var54
;
4229 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var_m
;
4230 ((struct instance_array__NativeArray
*)var65
)->values
[2] = (val
*) var59
;
4231 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Object]>*/;
4233 var66
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_string__Object__to_s
]))(var63
) /* to_s on <var63:Array[Object]>*/;
4234 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var66
) /* add on <self:GlobalCompilerVisitor>*/;
4239 var67
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4240 var68
= ((val
* (*)(val
*))(var67
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var67
) /* mainmodule on <var67:AbstractCompiler(GlobalCompiler)>*/;
4241 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>*/;
4242 var_propdef
= var69
;
4243 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>*/;
4246 if (var_res
== NULL
) {
4247 var72
= 0; /* is null */
4249 var72
= 1; /* arg is null and recv is not */
4252 if (var_res2
== NULL
) {
4253 fprintf(stderr
, "Runtime error: %s", "Cast failed");
4254 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 359);
4257 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2
) /* assign on <self:GlobalCompilerVisitor>*/;
4264 var75
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4265 var76
= ((val
* (*)(val
*))(var75
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var75
) /* modelbuilder on <var75:AbstractCompiler(GlobalCompiler)>*/;
4266 var77
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var76
) /* toolcontext on <var76:ModelBuilder>*/;
4267 var78
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_no_check_other
]))(var77
) /* opt_no_check_other on <var77:ToolContext>*/;
4268 var79
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_opts__Option__value
]))(var78
) /* value on <var78:OptionBool>*/;
4269 var80
= ((struct instance_kernel__Bool
*)var79
)->value
; /* autounbox from nullable Object to Bool */;
4275 var82
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4281 var87
= string__NativeString__to_s_with_length(var85
, var86
);
4285 var88
= ((short int (*)(val
*, val
*))(var82
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var82
, var84
) /* == on <var82:String>*/;
4292 var90
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4298 var95
= string__NativeString__to_s_with_length(var93
, var94
);
4302 var96
= ((short int (*)(val
*, val
*))(var90
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var90
, var92
) /* == on <var90:String>*/;
4305 var_consider_null
= var73
;
4306 var99
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4307 var100
= ((val
* (*)(val
*))(var99
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var99
) /* mcasttype on <var99:nullable Object(RuntimeVariable)>*/;
4308 /* <var100:MType> isa MNullableType */
4309 cltype102
= type_model__MNullableType
.color
;
4310 idtype103
= type_model__MNullableType
.id
;
4311 if(cltype102
>= var100
->type
->table_size
) {
4314 var101
= var100
->type
->type_table
[cltype102
] == idtype103
;
4320 var105
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4321 var106
= ((val
* (*)(val
*))(var105
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var105
) /* mcasttype on <var105:nullable Object(RuntimeVariable)>*/;
4322 /* <var106:MType> isa MNullType */
4323 cltype108
= type_model__MNullType
.color
;
4324 idtype109
= type_model__MNullType
.id
;
4325 if(cltype108
>= var106
->type
->table_size
) {
4328 var107
= var106
->type
->type_table
[cltype108
] == idtype109
;
4334 var97
= var_consider_null
;
4340 var112
= varonce111
;
4344 var115
= string__NativeString__to_s_with_length(var113
, var114
);
4346 varonce111
= var112
;
4348 var116
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4350 var118
= varonce117
;
4352 var119
= " == NULL) { /* Special null case */";
4354 var121
= string__NativeString__to_s_with_length(var119
, var120
);
4356 varonce117
= var118
;
4358 var122
= NEW_array__Array(&type_array__Arraykernel__Object
);
4359 { /* var122 = array_instance Array[Object] */
4361 var124
= NEW_array__NativeArray(var123
, &type_array__NativeArraykernel__Object
);
4362 ((struct instance_array__NativeArray
*)var124
)->values
[0] = (val
*) var112
;
4363 ((struct instance_array__NativeArray
*)var124
)->values
[1] = (val
*) var116
;
4364 ((struct instance_array__NativeArray
*)var124
)->values
[2] = (val
*) var118
;
4365 ((void (*)(val
*, val
*, long))(var122
->class->vft
[COLOR_array__Array__with_native
]))(var122
, var124
, var123
) /* with_native on <var122:Array[Object]>*/;
4367 var125
= ((val
* (*)(val
*))(var122
->class->vft
[COLOR_string__Object__to_s
]))(var122
) /* to_s on <var122:Array[Object]>*/;
4368 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var125
) /* add on <self:GlobalCompilerVisitor>*/;
4369 var126
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4371 var128
= varonce127
;
4375 var131
= string__NativeString__to_s_with_length(var129
, var130
);
4377 varonce127
= var128
;
4379 var132
= ((short int (*)(val
*, val
*))(var126
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var126
, var128
) /* == on <var126:String>*/;
4382 if (var_res
== NULL
) {
4383 var134
= 0; /* is null */
4385 var134
= 1; /* arg is null and recv is not */
4388 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4389 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 367);
4393 var136
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var135
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4394 var137
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var136
) /* mcasttype on <var136:nullable Object(RuntimeVariable)>*/;
4395 /* <var137:MType> isa MNullableType */
4396 cltype139
= type_model__MNullableType
.color
;
4397 idtype140
= type_model__MNullableType
.id
;
4398 if(cltype139
>= var137
->type
->table_size
) {
4401 var138
= var137
->type
->type_table
[cltype139
] == idtype140
;
4405 var142
= varonce141
;
4409 var145
= string__NativeString__to_s_with_length(var143
, var144
);
4411 varonce141
= var142
;
4414 var147
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var146
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4416 var149
= varonce148
;
4418 var150
= " == NULL);";
4420 var152
= string__NativeString__to_s_with_length(var150
, var151
);
4422 varonce148
= var149
;
4424 var153
= NEW_array__Array(&type_array__Arraykernel__Object
);
4425 { /* var153 = array_instance Array[Object] */
4427 var155
= NEW_array__NativeArray(var154
, &type_array__NativeArraykernel__Object
);
4428 ((struct instance_array__NativeArray
*)var155
)->values
[0] = (val
*) var_res
;
4429 ((struct instance_array__NativeArray
*)var155
)->values
[1] = (val
*) var142
;
4430 ((struct instance_array__NativeArray
*)var155
)->values
[2] = (val
*) var147
;
4431 ((struct instance_array__NativeArray
*)var155
)->values
[3] = (val
*) var149
;
4432 ((void (*)(val
*, val
*, long))(var153
->class->vft
[COLOR_array__Array__with_native
]))(var153
, var155
, var154
) /* with_native on <var153:Array[Object]>*/;
4434 var156
= ((val
* (*)(val
*))(var153
->class->vft
[COLOR_string__Object__to_s
]))(var153
) /* to_s on <var153:Array[Object]>*/;
4435 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var156
) /* add on <self:GlobalCompilerVisitor>*/;
4438 var158
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var157
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4439 var159
= ((val
* (*)(val
*))(var158
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var158
) /* mcasttype on <var158:nullable Object(RuntimeVariable)>*/;
4440 /* <var159:MType> isa MNullType */
4441 cltype161
= type_model__MNullType
.color
;
4442 idtype162
= type_model__MNullType
.id
;
4443 if(cltype161
>= var159
->type
->table_size
) {
4446 var160
= var159
->type
->type_table
[cltype161
] == idtype162
;
4450 var164
= varonce163
;
4452 var165
= " = 1; /* is null */";
4454 var167
= string__NativeString__to_s_with_length(var165
, var166
);
4456 varonce163
= var164
;
4458 var168
= NEW_array__Array(&type_array__Arraykernel__Object
);
4459 { /* var168 = array_instance Array[Object] */
4461 var170
= NEW_array__NativeArray(var169
, &type_array__NativeArraykernel__Object
);
4462 ((struct instance_array__NativeArray
*)var170
)->values
[0] = (val
*) var_res
;
4463 ((struct instance_array__NativeArray
*)var170
)->values
[1] = (val
*) var164
;
4464 ((void (*)(val
*, val
*, long))(var168
->class->vft
[COLOR_array__Array__with_native
]))(var168
, var170
, var169
) /* with_native on <var168:Array[Object]>*/;
4466 var171
= ((val
* (*)(val
*))(var168
->class->vft
[COLOR_string__Object__to_s
]))(var168
) /* to_s on <var168:Array[Object]>*/;
4467 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
4470 var173
= varonce172
;
4472 var174
= " = 0; /* ";
4474 var176
= string__NativeString__to_s_with_length(var174
, var175
);
4476 varonce172
= var173
;
4479 var178
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var177
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4480 var179
= ((val
* (*)(val
*))(var178
->class->vft
[COLOR_string__Object__inspect
]))(var178
) /* inspect on <var178:nullable Object(RuntimeVariable)>*/;
4482 var181
= varonce180
;
4484 var182
= " cannot be null */";
4486 var184
= string__NativeString__to_s_with_length(var182
, var183
);
4488 varonce180
= var181
;
4490 var185
= NEW_array__Array(&type_array__Arraykernel__Object
);
4491 { /* var185 = array_instance Array[Object] */
4493 var187
= NEW_array__NativeArray(var186
, &type_array__NativeArraykernel__Object
);
4494 ((struct instance_array__NativeArray
*)var187
)->values
[0] = (val
*) var_res
;
4495 ((struct instance_array__NativeArray
*)var187
)->values
[1] = (val
*) var173
;
4496 ((struct instance_array__NativeArray
*)var187
)->values
[2] = (val
*) var179
;
4497 ((struct instance_array__NativeArray
*)var187
)->values
[3] = (val
*) var181
;
4498 ((void (*)(val
*, val
*, long))(var185
->class->vft
[COLOR_array__Array__with_native
]))(var185
, var187
, var186
) /* with_native on <var185:Array[Object]>*/;
4500 var188
= ((val
* (*)(val
*))(var185
->class->vft
[COLOR_string__Object__to_s
]))(var185
) /* to_s on <var185:Array[Object]>*/;
4501 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var188
) /* add on <self:GlobalCompilerVisitor>*/;
4505 var189
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MProperty__name
]))(var_m
) /* name on <var_m:MMethod>*/;
4507 var191
= varonce190
;
4511 var194
= string__NativeString__to_s_with_length(var192
, var193
);
4513 varonce190
= var191
;
4515 var195
= ((short int (*)(val
*, val
*))(var189
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var189
, var191
) /* == on <var189:String>*/;
4518 if (var_res
== NULL
) {
4519 var197
= 0; /* is null */
4521 var197
= 1; /* arg is null and recv is not */
4524 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4525 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 376);
4529 var199
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var198
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4530 var200
= ((val
* (*)(val
*))(var199
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var199
) /* mcasttype on <var199:nullable Object(RuntimeVariable)>*/;
4531 /* <var200:MType> isa MNullableType */
4532 cltype202
= type_model__MNullableType
.color
;
4533 idtype203
= type_model__MNullableType
.id
;
4534 if(cltype202
>= var200
->type
->table_size
) {
4537 var201
= var200
->type
->type_table
[cltype202
] == idtype203
;
4541 var205
= varonce204
;
4545 var208
= string__NativeString__to_s_with_length(var206
, var207
);
4547 varonce204
= var205
;
4550 var210
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var209
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4552 var212
= varonce211
;
4554 var213
= " != NULL);";
4556 var215
= string__NativeString__to_s_with_length(var213
, var214
);
4558 varonce211
= var212
;
4560 var216
= NEW_array__Array(&type_array__Arraykernel__Object
);
4561 { /* var216 = array_instance Array[Object] */
4563 var218
= NEW_array__NativeArray(var217
, &type_array__NativeArraykernel__Object
);
4564 ((struct instance_array__NativeArray
*)var218
)->values
[0] = (val
*) var_res
;
4565 ((struct instance_array__NativeArray
*)var218
)->values
[1] = (val
*) var205
;
4566 ((struct instance_array__NativeArray
*)var218
)->values
[2] = (val
*) var210
;
4567 ((struct instance_array__NativeArray
*)var218
)->values
[3] = (val
*) var212
;
4568 ((void (*)(val
*, val
*, long))(var216
->class->vft
[COLOR_array__Array__with_native
]))(var216
, var218
, var217
) /* with_native on <var216:Array[Object]>*/;
4570 var219
= ((val
* (*)(val
*))(var216
->class->vft
[COLOR_string__Object__to_s
]))(var216
) /* to_s on <var216:Array[Object]>*/;
4571 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var219
) /* add on <self:GlobalCompilerVisitor>*/;
4574 var221
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var220
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4575 var222
= ((val
* (*)(val
*))(var221
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var221
) /* mcasttype on <var221:nullable Object(RuntimeVariable)>*/;
4576 /* <var222:MType> isa MNullType */
4577 cltype224
= type_model__MNullType
.color
;
4578 idtype225
= type_model__MNullType
.id
;
4579 if(cltype224
>= var222
->type
->table_size
) {
4582 var223
= var222
->type
->type_table
[cltype224
] == idtype225
;
4586 var227
= varonce226
;
4588 var228
= " = 0; /* is null */";
4590 var230
= string__NativeString__to_s_with_length(var228
, var229
);
4592 varonce226
= var227
;
4594 var231
= NEW_array__Array(&type_array__Arraykernel__Object
);
4595 { /* var231 = array_instance Array[Object] */
4597 var233
= NEW_array__NativeArray(var232
, &type_array__NativeArraykernel__Object
);
4598 ((struct instance_array__NativeArray
*)var233
)->values
[0] = (val
*) var_res
;
4599 ((struct instance_array__NativeArray
*)var233
)->values
[1] = (val
*) var227
;
4600 ((void (*)(val
*, val
*, long))(var231
->class->vft
[COLOR_array__Array__with_native
]))(var231
, var233
, var232
) /* with_native on <var231:Array[Object]>*/;
4602 var234
= ((val
* (*)(val
*))(var231
->class->vft
[COLOR_string__Object__to_s
]))(var231
) /* to_s on <var231:Array[Object]>*/;
4603 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var234
) /* add on <self:GlobalCompilerVisitor>*/;
4606 var236
= varonce235
;
4608 var237
= " = 1; /* ";
4610 var239
= string__NativeString__to_s_with_length(var237
, var238
);
4612 varonce235
= var236
;
4615 var241
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var240
) /* [] on <var_args:Array[RuntimeVariable]>*/;
4616 var242
= ((val
* (*)(val
*))(var241
->class->vft
[COLOR_string__Object__inspect
]))(var241
) /* inspect on <var241:nullable Object(RuntimeVariable)>*/;
4618 var244
= varonce243
;
4620 var245
= " cannot be null */";
4622 var247
= string__NativeString__to_s_with_length(var245
, var246
);
4624 varonce243
= var244
;
4626 var248
= NEW_array__Array(&type_array__Arraykernel__Object
);
4627 { /* var248 = array_instance Array[Object] */
4629 var250
= NEW_array__NativeArray(var249
, &type_array__NativeArraykernel__Object
);
4630 ((struct instance_array__NativeArray
*)var250
)->values
[0] = (val
*) var_res
;
4631 ((struct instance_array__NativeArray
*)var250
)->values
[1] = (val
*) var236
;
4632 ((struct instance_array__NativeArray
*)var250
)->values
[2] = (val
*) var242
;
4633 ((struct instance_array__NativeArray
*)var250
)->values
[3] = (val
*) var244
;
4634 ((void (*)(val
*, val
*, long))(var248
->class->vft
[COLOR_array__Array__with_native
]))(var248
, var250
, var249
) /* with_native on <var248:Array[Object]>*/;
4636 var251
= ((val
* (*)(val
*))(var248
->class->vft
[COLOR_string__Object__to_s
]))(var248
) /* to_s on <var248:Array[Object]>*/;
4637 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var251
) /* add on <self:GlobalCompilerVisitor>*/;
4642 var253
= varonce252
;
4644 var254
= "Receiver is null";
4646 var256
= string__NativeString__to_s_with_length(var254
, var255
);
4648 varonce252
= var253
;
4650 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(self
, var253
) /* add_abort on <self:GlobalCompilerVisitor>*/;
4654 var258
= varonce257
;
4658 var261
= string__NativeString__to_s_with_length(var259
, var260
);
4660 varonce257
= var258
;
4662 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var258
) /* add on <self:GlobalCompilerVisitor>*/;
4665 var262
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
4668 var264
= varonce263
;
4672 var267
= string__NativeString__to_s_with_length(var265
, var266
);
4674 varonce263
= var264
;
4676 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var264
) /* add on <self:GlobalCompilerVisitor>*/;
4678 var269
= varonce268
;
4680 var270
= "/*BUG: no live types for ";
4682 var272
= string__NativeString__to_s_with_length(var270
, var271
);
4684 varonce268
= var269
;
4686 var273
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4687 var274
= ((val
* (*)(val
*))(var273
->class->vft
[COLOR_string__Object__inspect
]))(var273
) /* inspect on <var273:nullable Object(RuntimeVariable)>*/;
4689 var276
= varonce275
;
4693 var279
= string__NativeString__to_s_with_length(var277
, var278
);
4695 varonce275
= var276
;
4698 var281
= varonce280
;
4702 var284
= string__NativeString__to_s_with_length(var282
, var283
);
4704 varonce280
= var281
;
4706 var285
= NEW_array__Array(&type_array__Arraykernel__Object
);
4707 { /* var285 = array_instance Array[Object] */
4709 var287
= NEW_array__NativeArray(var286
, &type_array__NativeArraykernel__Object
);
4710 ((struct instance_array__NativeArray
*)var287
)->values
[0] = (val
*) var269
;
4711 ((struct instance_array__NativeArray
*)var287
)->values
[1] = (val
*) var274
;
4712 ((struct instance_array__NativeArray
*)var287
)->values
[2] = (val
*) var276
;
4713 ((struct instance_array__NativeArray
*)var287
)->values
[3] = (val
*) var_m
;
4714 ((struct instance_array__NativeArray
*)var287
)->values
[4] = (val
*) var281
;
4715 ((void (*)(val
*, val
*, long))(var285
->class->vft
[COLOR_array__Array__with_native
]))(var285
, var287
, var286
) /* with_native on <var285:Array[Object]>*/;
4717 var288
= ((val
* (*)(val
*))(var285
->class->vft
[COLOR_string__Object__to_s
]))(var285
) /* to_s on <var285:Array[Object]>*/;
4718 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var288
) /* add on <self:GlobalCompilerVisitor>*/;
4719 var289
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4720 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var289
) /* bugtype on <self:GlobalCompilerVisitor>*/;
4722 var291
= varonce290
;
4726 var294
= string__NativeString__to_s_with_length(var292
, var293
);
4728 varonce290
= var291
;
4730 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var291
) /* add on <self:GlobalCompilerVisitor>*/;
4736 var296
= varonce295
;
4740 var299
= string__NativeString__to_s_with_length(var297
, var298
);
4742 varonce295
= var296
;
4744 var300
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4746 var302
= varonce301
;
4748 var303
= "->classid) {";
4750 var305
= string__NativeString__to_s_with_length(var303
, var304
);
4752 varonce301
= var302
;
4754 var306
= NEW_array__Array(&type_array__Arraykernel__Object
);
4755 { /* var306 = array_instance Array[Object] */
4757 var308
= NEW_array__NativeArray(var307
, &type_array__NativeArraykernel__Object
);
4758 ((struct instance_array__NativeArray
*)var308
)->values
[0] = (val
*) var296
;
4759 ((struct instance_array__NativeArray
*)var308
)->values
[1] = (val
*) var300
;
4760 ((struct instance_array__NativeArray
*)var308
)->values
[2] = (val
*) var302
;
4761 ((void (*)(val
*, val
*, long))(var306
->class->vft
[COLOR_array__Array__with_native
]))(var306
, var308
, var307
) /* with_native on <var306:Array[Object]>*/;
4763 var309
= ((val
* (*)(val
*))(var306
->class->vft
[COLOR_string__Object__to_s
]))(var306
) /* to_s on <var306:Array[Object]>*/;
4764 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var309
) /* add on <self:GlobalCompilerVisitor>*/;
4765 var310
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
4768 var_defaultpropdef
= var311
;
4769 var312
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
4771 var313
= ((short int (*)(val
*))(var312
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var312
) /* is_ok on <var312:Iterator[nullable Object]>*/;
4773 var314
= ((val
* (*)(val
*))(var312
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var312
) /* item on <var312:Iterator[nullable Object]>*/;
4775 var315
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4776 var316
= ((val
* (*)(val
*))(var315
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var315
) /* mainmodule on <var315:AbstractCompiler(GlobalCompiler)>*/;
4777 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>*/;
4778 var_propdef318
= var317
;
4779 var320
= ((val
* (*)(val
*))(var_propdef318
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_propdef318
) /* mclassdef on <var_propdef318:MMethodDef>*/;
4780 var321
= ((val
* (*)(val
*))(var320
->class->vft
[COLOR_model__MClassDef__mclass
]))(var320
) /* mclass on <var320:MClassDef>*/;
4781 var322
= ((val
* (*)(val
*))(var321
->class->vft
[COLOR_model__MClass__name
]))(var321
) /* name on <var321:MClass>*/;
4783 var324
= varonce323
;
4787 var327
= string__NativeString__to_s_with_length(var325
, var326
);
4789 varonce323
= var324
;
4791 var328
= ((short int (*)(val
*, val
*))(var322
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var322
, var324
) /* == on <var322:String>*/;
4794 var330
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t
) /* ctype on <var_t:MClassType>*/;
4796 var332
= varonce331
;
4800 var335
= string__NativeString__to_s_with_length(var333
, var334
);
4802 varonce331
= var332
;
4804 var336
= ((short int (*)(val
*, val
*))(var330
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var330
, var332
) /* == on <var330:String>*/;
4810 var_defaultpropdef
= var_propdef318
;
4811 goto CONTINUE_label
;
4814 var339
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4815 var340
= ((short int (*)(val
*))(var339
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var339
) /* hardening on <var339:AbstractCompiler(GlobalCompiler)>*/;
4819 var343
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
4827 if (var_defaultpropdef
== NULL
) {
4828 var346
= 1; /* is null */
4830 var346
= 0; /* arg is null but recv is not */
4838 var348
= varonce347
;
4840 var349
= "default: /* test ";
4842 var351
= string__NativeString__to_s_with_length(var349
, var350
);
4844 varonce347
= var348
;
4847 var353
= varonce352
;
4851 var356
= string__NativeString__to_s_with_length(var354
, var355
);
4853 varonce352
= var353
;
4855 var357
= NEW_array__Array(&type_array__Arraykernel__Object
);
4856 { /* var357 = array_instance Array[Object] */
4858 var359
= NEW_array__NativeArray(var358
, &type_array__NativeArraykernel__Object
);
4859 ((struct instance_array__NativeArray
*)var359
)->values
[0] = (val
*) var348
;
4860 ((struct instance_array__NativeArray
*)var359
)->values
[1] = (val
*) var_t
;
4861 ((struct instance_array__NativeArray
*)var359
)->values
[2] = (val
*) var353
;
4862 ((void (*)(val
*, val
*, long))(var357
->class->vft
[COLOR_array__Array__with_native
]))(var357
, var359
, var358
) /* with_native on <var357:Array[Object]>*/;
4864 var360
= ((val
* (*)(val
*))(var357
->class->vft
[COLOR_string__Object__to_s
]))(var357
) /* to_s on <var357:Array[Object]>*/;
4865 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var360
) /* add on <self:GlobalCompilerVisitor>*/;
4868 var362
= varonce361
;
4872 var365
= string__NativeString__to_s_with_length(var363
, var364
);
4874 varonce361
= var362
;
4876 var366
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4877 var367
= ((val
* (*)(val
*, val
*))(var366
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var366
, var_t
) /* classid on <var366:AbstractCompiler(GlobalCompiler)>*/;
4879 var369
= varonce368
;
4881 var370
= ": /* test ";
4883 var372
= string__NativeString__to_s_with_length(var370
, var371
);
4885 varonce368
= var369
;
4888 var374
= varonce373
;
4892 var377
= string__NativeString__to_s_with_length(var375
, var376
);
4894 varonce373
= var374
;
4896 var378
= NEW_array__Array(&type_array__Arraykernel__Object
);
4897 { /* var378 = array_instance Array[Object] */
4899 var380
= NEW_array__NativeArray(var379
, &type_array__NativeArraykernel__Object
);
4900 ((struct instance_array__NativeArray
*)var380
)->values
[0] = (val
*) var362
;
4901 ((struct instance_array__NativeArray
*)var380
)->values
[1] = (val
*) var367
;
4902 ((struct instance_array__NativeArray
*)var380
)->values
[2] = (val
*) var369
;
4903 ((struct instance_array__NativeArray
*)var380
)->values
[3] = (val
*) var_t
;
4904 ((struct instance_array__NativeArray
*)var380
)->values
[4] = (val
*) var374
;
4905 ((void (*)(val
*, val
*, long))(var378
->class->vft
[COLOR_array__Array__with_native
]))(var378
, var380
, var379
) /* with_native on <var378:Array[Object]>*/;
4907 var381
= ((val
* (*)(val
*))(var378
->class->vft
[COLOR_string__Object__to_s
]))(var378
) /* to_s on <var378:Array[Object]>*/;
4908 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var381
) /* add on <self:GlobalCompilerVisitor>*/;
4910 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>*/;
4911 var_res2383
= var382
;
4913 if (var_res
== NULL
) {
4914 var385
= 0; /* is null */
4916 var385
= 1; /* arg is null and recv is not */
4919 if (var_res2383
== NULL
) {
4920 fprintf(stderr
, "Runtime error: %s", "Cast failed");
4921 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 412);
4924 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2383
) /* assign on <self:GlobalCompilerVisitor>*/;
4928 var387
= varonce386
;
4932 var390
= string__NativeString__to_s_with_length(var388
, var389
);
4934 varonce386
= var387
;
4936 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var387
) /* add on <self:GlobalCompilerVisitor>*/;
4937 CONTINUE_label
: (void)0;
4938 ((void (*)(val
*))(var312
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var312
) /* next on <var312:Iterator[nullable Object]>*/;
4940 BREAK_label
: (void)0;
4942 if (var_defaultpropdef
== NULL
) {
4943 var392
= 0; /* is null */
4945 var392
= 1; /* arg is null and recv is not */
4949 var394
= varonce393
;
4951 var395
= "default: /* default is Object */";
4953 var397
= string__NativeString__to_s_with_length(var395
, var396
);
4955 varonce393
= var394
;
4957 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var394
) /* add on <self:GlobalCompilerVisitor>*/;
4958 var398
= ((val
* (*)(val
*))(var_defaultpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_defaultpropdef
) /* mclassdef on <var_defaultpropdef:nullable MMethodDef(MMethodDef)>*/;
4959 var399
= ((val
* (*)(val
*))(var398
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var398
) /* bound_mtype on <var398:MClassDef>*/;
4960 var400
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__call
]))(self
, var_defaultpropdef
, var399
, var_args
) /* call on <self:GlobalCompilerVisitor>*/;
4961 var_res2401
= var400
;
4963 if (var_res
== NULL
) {
4964 var403
= 0; /* is null */
4966 var403
= 1; /* arg is null and recv is not */
4969 if (var_res2401
== NULL
) {
4970 fprintf(stderr
, "Runtime error: %s", "Cast failed");
4971 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 418);
4974 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2401
) /* assign on <self:GlobalCompilerVisitor>*/;
4978 var404
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
4979 var405
= ((short int (*)(val
*))(var404
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var404
) /* hardening on <var404:AbstractCompiler(GlobalCompiler)>*/;
4982 var407
= varonce406
;
4984 var408
= "default: /* bug */";
4986 var410
= string__NativeString__to_s_with_length(var408
, var409
);
4988 varonce406
= var407
;
4990 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var407
) /* add on <self:GlobalCompilerVisitor>*/;
4991 var411
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
4992 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var411
) /* bugtype on <self:GlobalCompilerVisitor>*/;
4997 var413
= varonce412
;
5001 var416
= string__NativeString__to_s_with_length(var414
, var415
);
5003 varonce412
= var413
;
5005 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var413
) /* add on <self:GlobalCompilerVisitor>*/;
5011 /* method global_compiler#GlobalCompilerVisitor#send for (self: Object, MMethod, Array[RuntimeVariable]): nullable RuntimeVariable */
5012 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__send(val
* self
, val
* p0
, val
* p1
) {
5013 val
* var
/* : nullable RuntimeVariable */;
5014 val
* var1
/* : nullable RuntimeVariable */;
5015 var1
= global_compiler__GlobalCompilerVisitor__send(self
, p0
, p1
);
5020 /* method global_compiler#GlobalCompilerVisitor#check_valid_reciever for (self: GlobalCompilerVisitor, MClassType) */
5021 void global_compiler__GlobalCompilerVisitor__check_valid_reciever(val
* self
, val
* p0
) {
5022 val
* var_recvtype
/* var recvtype: MClassType */;
5023 short int var
/* : Bool */;
5024 val
* var1
/* : AbstractCompiler */;
5025 val
* var2
/* : RapidTypeAnalysis */;
5026 val
* var3
/* : HashSet[MClassType] */;
5027 short int var4
/* : Bool */;
5028 short int var_
/* var : Bool */;
5029 val
* var5
/* : MClass */;
5030 val
* var6
/* : String */;
5031 static val
* varonce
;
5032 val
* var7
/* : String */;
5033 char* var8
/* : NativeString */;
5034 long var9
/* : Int */;
5035 val
* var10
/* : String */;
5036 short int var11
/* : Bool */;
5037 static val
* varonce12
;
5038 val
* var13
/* : String */;
5039 char* var14
/* : NativeString */;
5040 long var15
/* : Int */;
5041 val
* var16
/* : String */;
5042 val
* var17
/* : Array[Object] */;
5043 long var18
/* : Int */;
5044 val
* var19
/* : NativeArray[Object] */;
5045 val
* var20
/* : String */;
5047 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5048 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var1
) /* runtime_type_analysis on <var1:AbstractCompiler(GlobalCompiler)>*/;
5049 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var2
) /* live_types on <var2:RapidTypeAnalysis>*/;
5050 var4
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var3
, var_recvtype
) /* has on <var3:HashSet[MClassType]>*/;
5055 var5
= ((val
* (*)(val
*))(var_recvtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_recvtype
) /* mclass on <var_recvtype:MClassType>*/;
5056 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClass__name
]))(var5
) /* name on <var5:MClass>*/;
5062 var10
= string__NativeString__to_s_with_length(var8
, var9
);
5066 var11
= ((short int (*)(val
*, val
*))(var6
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var6
, var7
) /* == on <var6:String>*/;
5076 var14
= " is not a live type";
5078 var16
= string__NativeString__to_s_with_length(var14
, var15
);
5082 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
5083 { /* var17 = array_instance Array[Object] */
5085 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
5086 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var_recvtype
;
5087 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var13
;
5088 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
5090 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
5091 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var20
) /* print on <self:GlobalCompilerVisitor>*/;
5092 fprintf(stderr
, "Runtime error: %s", "Aborted");
5093 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 431);
5097 /* method global_compiler#GlobalCompilerVisitor#check_valid_reciever for (self: Object, MClassType) */
5098 void VIRTUAL_global_compiler__GlobalCompilerVisitor__check_valid_reciever(val
* self
, val
* p0
) {
5099 global_compiler__GlobalCompilerVisitor__check_valid_reciever(self
, p0
);
5102 /* method global_compiler#GlobalCompilerVisitor#get_recvtype for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): MClassType */
5103 val
* global_compiler__GlobalCompilerVisitor__get_recvtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5104 val
* var
/* : MClassType */;
5105 val
* var_m
/* var m: MMethodDef */;
5106 val
* var_recvtype
/* var recvtype: MClassType */;
5107 val
* var_args
/* var args: Array[RuntimeVariable] */;
5108 short int var1
/* : Bool */;
5109 val
* var2
/* : MClassDef */;
5110 val
* var3
/* : MClass */;
5111 val
* var4
/* : String */;
5112 static val
* varonce
;
5113 val
* var5
/* : String */;
5114 char* var6
/* : NativeString */;
5115 long var7
/* : Int */;
5116 val
* var8
/* : String */;
5117 short int var9
/* : Bool */;
5118 short int var_
/* var : Bool */;
5119 val
* var10
/* : String */;
5120 static val
* varonce11
;
5121 val
* var12
/* : String */;
5122 char* var13
/* : NativeString */;
5123 long var14
/* : Int */;
5124 val
* var15
/* : String */;
5125 short int var16
/* : Bool */;
5126 val
* var17
/* : MClassDef */;
5127 val
* var18
/* : MClassType */;
5131 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__check_valid_reciever
]))(self
, var_recvtype
) /* check_valid_reciever on <self:GlobalCompilerVisitor>*/;
5132 var2
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
5133 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mclass
]))(var2
) /* mclass on <var2:MClassDef>*/;
5134 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MClass__name
]))(var3
) /* name on <var3:MClass>*/;
5140 var8
= string__NativeString__to_s_with_length(var6
, var7
);
5144 var9
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var4
, var5
) /* == on <var4:String>*/;
5147 var10
= ((val
* (*)(val
*))(var_recvtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_recvtype
) /* ctype on <var_recvtype:MClassType>*/;
5153 var15
= string__NativeString__to_s_with_length(var13
, var14
);
5157 var16
= ((short int (*)(val
*, val
*))(var10
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var10
, var12
) /* == on <var10:String>*/;
5163 var17
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
5164 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var17
) /* bound_mtype on <var17:MClassDef>*/;
5165 var_recvtype
= var18
;
5173 /* method global_compiler#GlobalCompilerVisitor#get_recvtype for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): MClassType */
5174 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__get_recvtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5175 val
* var
/* : MClassType */;
5176 val
* var1
/* : MClassType */;
5177 var1
= global_compiler__GlobalCompilerVisitor__get_recvtype(self
, p0
, p1
, p2
);
5182 /* method global_compiler#GlobalCompilerVisitor#get_recv for (self: GlobalCompilerVisitor, MClassType, Array[RuntimeVariable]): RuntimeVariable */
5183 val
* global_compiler__GlobalCompilerVisitor__get_recv(val
* self
, val
* p0
, val
* p1
) {
5184 val
* var
/* : RuntimeVariable */;
5185 val
* var_recvtype
/* var recvtype: MClassType */;
5186 val
* var_args
/* var args: Array[RuntimeVariable] */;
5187 val
* var1
/* : nullable Object */;
5188 val
* var2
/* : RuntimeVariable */;
5189 val
* var3
/* : RuntimeVariable */;
5192 var1
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5193 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var1
, var_recvtype
) /* autobox on <self:GlobalCompilerVisitor>*/;
5194 var3
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var2
, var_recvtype
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
5200 /* method global_compiler#GlobalCompilerVisitor#get_recv for (self: Object, MClassType, Array[RuntimeVariable]): RuntimeVariable */
5201 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__get_recv(val
* self
, val
* p0
, val
* p1
) {
5202 val
* var
/* : RuntimeVariable */;
5203 val
* var1
/* : RuntimeVariable */;
5204 var1
= global_compiler__GlobalCompilerVisitor__get_recv(self
, p0
, p1
);
5209 /* method global_compiler#GlobalCompilerVisitor#finalize_call for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5210 val
* global_compiler__GlobalCompilerVisitor__finalize_call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5211 val
* var
/* : nullable RuntimeVariable */;
5212 val
* var_m
/* var m: MMethodDef */;
5213 val
* var_recvtype
/* var recvtype: MClassType */;
5214 val
* var_args
/* var args: Array[RuntimeVariable] */;
5215 long var1
/* : Int */;
5216 val
* var2
/* : nullable MSignature */;
5217 long var3
/* : Int */;
5218 long var4
/* : Int */;
5219 long var5
/* : Int */;
5220 long var7
/* : Int */;
5221 short int var8
/* : Bool */;
5222 short int var10
/* : Bool */;
5223 static val
* varonce
;
5224 val
* var11
/* : String */;
5225 char* var12
/* : NativeString */;
5226 long var13
/* : Int */;
5227 val
* var14
/* : String */;
5228 static val
* varonce15
;
5229 val
* var16
/* : String */;
5230 char* var17
/* : NativeString */;
5231 long var18
/* : Int */;
5232 val
* var19
/* : String */;
5233 long var20
/* : Int */;
5234 static val
* varonce21
;
5235 val
* var22
/* : String */;
5236 char* var23
/* : NativeString */;
5237 long var24
/* : Int */;
5238 val
* var25
/* : String */;
5239 val
* var26
/* : Array[Object] */;
5240 long var27
/* : Int */;
5241 val
* var28
/* : NativeArray[Object] */;
5242 val
* var29
/* : Object */;
5243 val
* var30
/* : String */;
5244 val
* var31
/* : CustomizedRuntimeFunction */;
5245 val
* var_rm
/* var rm: CustomizedRuntimeFunction */;
5246 val
* var32
/* : nullable RuntimeVariable */;
5250 var1
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[RuntimeVariable]>*/;
5251 var2
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
5253 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
5254 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 457);
5257 var3
= ((long (*)(val
*))(var2
->class->vft
[COLOR_model__MSignature__arity
]))(var2
) /* arity on <var2:nullable MSignature>*/;
5260 { /* Inline kernel#Int#+ (var3,var4) */
5266 { /* Inline kernel#Int#== (var1,var5) */
5267 var10
= var1
== var5
;
5276 var12
= "Invalid arity for ";
5278 var14
= string__NativeString__to_s_with_length(var12
, var13
);
5287 var19
= string__NativeString__to_s_with_length(var17
, var18
);
5291 var20
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[RuntimeVariable]>*/;
5295 var23
= " arguments given.";
5297 var25
= string__NativeString__to_s_with_length(var23
, var24
);
5301 var26
= NEW_array__Array(&type_array__Arraykernel__Object
);
5302 { /* var26 = array_instance Array[Object] */
5304 var28
= NEW_array__NativeArray(var27
, &type_array__NativeArraykernel__Object
);
5305 ((struct instance_array__NativeArray
*)var28
)->values
[0] = (val
*) var11
;
5306 ((struct instance_array__NativeArray
*)var28
)->values
[1] = (val
*) var_m
;
5307 ((struct instance_array__NativeArray
*)var28
)->values
[2] = (val
*) var16
;
5308 var29
= BOX_kernel__Int(var20
); /* autobox from Int to Object */
5309 ((struct instance_array__NativeArray
*)var28
)->values
[3] = (val
*) var29
;
5310 ((struct instance_array__NativeArray
*)var28
)->values
[4] = (val
*) var22
;
5311 ((void (*)(val
*, val
*, long))(var26
->class->vft
[COLOR_array__Array__with_native
]))(var26
, var28
, var27
) /* with_native on <var26:Array[Object]>*/;
5313 var30
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_string__Object__to_s
]))(var26
) /* to_s on <var26:Array[Object]>*/;
5314 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__debug
]))(self
, var30
) /* debug on <self:GlobalCompilerVisitor>*/;
5315 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5316 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 457);
5319 var31
= NEW_global_compiler__CustomizedRuntimeFunction(&type_global_compiler__CustomizedRuntimeFunction
);
5320 ((void (*)(val
*, val
*, val
*))(var31
->class->vft
[COLOR_global_compiler__CustomizedRuntimeFunction__init
]))(var31
, var_m
, var_recvtype
) /* init on <var31:CustomizedRuntimeFunction>*/;
5322 var32
= ((val
* (*)(val
*, val
*, val
*))(var_rm
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__call
]))(var_rm
, self
, var_args
) /* call on <var_rm:CustomizedRuntimeFunction>*/;
5328 /* method global_compiler#GlobalCompilerVisitor#finalize_call for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5329 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__finalize_call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5330 val
* var
/* : nullable RuntimeVariable */;
5331 val
* var1
/* : nullable RuntimeVariable */;
5332 var1
= global_compiler__GlobalCompilerVisitor__finalize_call(self
, p0
, p1
, p2
);
5337 /* method global_compiler#GlobalCompilerVisitor#call for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5338 val
* global_compiler__GlobalCompilerVisitor__call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5339 val
* var
/* : nullable RuntimeVariable */;
5340 val
* var_m
/* var m: MMethodDef */;
5341 val
* var_recvtype
/* var recvtype: MClassType */;
5342 val
* var_args
/* var args: Array[RuntimeVariable] */;
5343 val
* var1
/* : MClassType */;
5344 val
* var_recv_type
/* var recv_type: MClassType */;
5345 val
* var2
/* : RuntimeVariable */;
5346 val
* var_recv
/* var recv: RuntimeVariable */;
5347 val
* var3
/* : Array[nullable Object] */;
5348 val
* var_new_args
/* var new_args: Array[RuntimeVariable] */;
5349 val
* var4
/* : nullable MSignature */;
5350 val
* var5
/* : nullable RuntimeVariable */;
5354 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>*/;
5355 var_recv_type
= var1
;
5356 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>*/;
5358 var3
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_array__Collection__to_a
]))(var_args
) /* to_a on <var_args:Array[RuntimeVariable]>*/;
5359 var_new_args
= var3
;
5360 var4
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
5362 fprintf(stderr
, "Runtime error: %s", "Cast failed");
5363 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 468);
5366 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__varargize
]))(self
, var_m
, var4
, var_new_args
) /* varargize on <self:GlobalCompilerVisitor>*/;
5367 ((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]>*/;
5368 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>*/;
5374 /* method global_compiler#GlobalCompilerVisitor#call for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5375 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__call(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5376 val
* var
/* : nullable RuntimeVariable */;
5377 val
* var1
/* : nullable RuntimeVariable */;
5378 var1
= global_compiler__GlobalCompilerVisitor__call(self
, p0
, p1
, p2
);
5383 /* method global_compiler#GlobalCompilerVisitor#call_without_varargize for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5384 val
* global_compiler__GlobalCompilerVisitor__call_without_varargize(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5385 val
* var
/* : nullable RuntimeVariable */;
5386 val
* var_m
/* var m: MMethodDef */;
5387 val
* var_recvtype
/* var recvtype: MClassType */;
5388 val
* var_args
/* var args: Array[RuntimeVariable] */;
5389 val
* var1
/* : MClassType */;
5390 val
* var_recv_type
/* var recv_type: MClassType */;
5391 val
* var2
/* : RuntimeVariable */;
5392 val
* var_recv
/* var recv: RuntimeVariable */;
5393 val
* var3
/* : Array[nullable Object] */;
5394 val
* var_new_args
/* var new_args: Array[RuntimeVariable] */;
5395 val
* var4
/* : nullable RuntimeVariable */;
5399 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>*/;
5400 var_recv_type
= var1
;
5401 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>*/;
5403 var3
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_array__Collection__to_a
]))(var_args
) /* to_a on <var_args:Array[RuntimeVariable]>*/;
5404 var_new_args
= var3
;
5405 ((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]>*/;
5406 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>*/;
5412 /* method global_compiler#GlobalCompilerVisitor#call_without_varargize for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5413 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__call_without_varargize(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5414 val
* var
/* : nullable RuntimeVariable */;
5415 val
* var1
/* : nullable RuntimeVariable */;
5416 var1
= global_compiler__GlobalCompilerVisitor__call_without_varargize(self
, p0
, p1
, p2
);
5421 /* method global_compiler#GlobalCompilerVisitor#supercall for (self: GlobalCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
5422 val
* global_compiler__GlobalCompilerVisitor__supercall(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5423 val
* var
/* : nullable RuntimeVariable */;
5424 val
* var_m
/* var m: MMethodDef */;
5425 val
* var_recvtype
/* var recvtype: MClassType */;
5426 val
* var_args
/* var args: Array[RuntimeVariable] */;
5427 val
* var1
/* : nullable Object */;
5428 val
* var2
/* : Array[MClassType] */;
5429 val
* var_types
/* var types: Array[MClassType] */;
5430 val
* var3
/* : MProperty */;
5431 val
* var4
/* : MPropDef */;
5432 val
* var5
/* : nullable MSignature */;
5433 val
* var6
/* : nullable MType */;
5434 val
* var_ret
/* var ret: nullable MType */;
5435 val
* var7
/* : null */;
5436 short int var8
/* : Bool */;
5437 val
* var9
/* : null */;
5438 val
* var_res
/* var res: nullable RuntimeVariable */;
5439 val
* var10
/* : nullable Object */;
5440 val
* var11
/* : MType */;
5441 val
* var12
/* : RuntimeVariable */;
5442 static val
* varonce
;
5443 val
* var13
/* : String */;
5444 char* var14
/* : NativeString */;
5445 long var15
/* : Int */;
5446 val
* var16
/* : String */;
5447 static val
* varonce17
;
5448 val
* var18
/* : String */;
5449 char* var19
/* : NativeString */;
5450 long var20
/* : Int */;
5451 val
* var21
/* : String */;
5452 val
* var22
/* : nullable Object */;
5453 val
* var23
/* : String */;
5454 static val
* varonce24
;
5455 val
* var25
/* : String */;
5456 char* var26
/* : NativeString */;
5457 long var27
/* : Int */;
5458 val
* var28
/* : String */;
5459 val
* var29
/* : Array[Object] */;
5460 long var30
/* : Int */;
5461 val
* var31
/* : NativeArray[Object] */;
5462 val
* var32
/* : String */;
5463 val
* var33
/* : nullable Object */;
5464 val
* var34
/* : MType */;
5465 val
* var35
/* : String */;
5466 static val
* varonce36
;
5467 val
* var37
/* : String */;
5468 char* var38
/* : NativeString */;
5469 long var39
/* : Int */;
5470 val
* var40
/* : String */;
5471 short int var41
/* : Bool */;
5472 val
* var42
/* : nullable Object */;
5473 val
* var43
/* : MType */;
5474 short int var44
/* : Bool */;
5477 const char* var_class_name
;
5478 val
* var_mclasstype
/* var mclasstype: MClassType */;
5479 val
* var45
/* : AbstractCompiler */;
5480 val
* var46
/* : RapidTypeAnalysis */;
5481 val
* var47
/* : HashSet[MClassType] */;
5482 short int var48
/* : Bool */;
5483 short int var49
/* : Bool */;
5484 static val
* varonce50
;
5485 val
* var51
/* : String */;
5486 char* var52
/* : NativeString */;
5487 long var53
/* : Int */;
5488 val
* var54
/* : String */;
5489 static val
* varonce55
;
5490 val
* var56
/* : String */;
5491 char* var57
/* : NativeString */;
5492 long var58
/* : Int */;
5493 val
* var59
/* : String */;
5494 val
* var60
/* : Array[Object] */;
5495 long var61
/* : Int */;
5496 val
* var62
/* : NativeArray[Object] */;
5497 val
* var63
/* : String */;
5498 val
* var64
/* : AbstractCompiler */;
5499 val
* var65
/* : MModule */;
5500 val
* var66
/* : MPropDef */;
5501 val
* var_propdef
/* var propdef: MMethodDef */;
5502 val
* var67
/* : nullable RuntimeVariable */;
5503 val
* var_res2
/* var res2: nullable RuntimeVariable */;
5504 val
* var68
/* : null */;
5505 short int var69
/* : Bool */;
5506 short int var70
/* : Bool */;
5507 static val
* varonce71
;
5508 val
* var72
/* : String */;
5509 char* var73
/* : NativeString */;
5510 long var74
/* : Int */;
5511 val
* var75
/* : String */;
5512 static val
* varonce76
;
5513 val
* var77
/* : String */;
5514 char* var78
/* : NativeString */;
5515 long var79
/* : Int */;
5516 val
* var80
/* : String */;
5517 val
* var81
/* : nullable Object */;
5518 val
* var82
/* : String */;
5519 static val
* varonce83
;
5520 val
* var84
/* : String */;
5521 char* var85
/* : NativeString */;
5522 long var86
/* : Int */;
5523 val
* var87
/* : String */;
5524 static val
* varonce88
;
5525 val
* var89
/* : String */;
5526 char* var90
/* : NativeString */;
5527 long var91
/* : Int */;
5528 val
* var92
/* : String */;
5529 val
* var93
/* : Array[Object] */;
5530 long var94
/* : Int */;
5531 val
* var95
/* : NativeArray[Object] */;
5532 val
* var96
/* : String */;
5533 val
* var97
/* : nullable Object */;
5534 static val
* varonce98
;
5535 val
* var99
/* : String */;
5536 char* var100
/* : NativeString */;
5537 long var101
/* : Int */;
5538 val
* var102
/* : String */;
5539 static val
* varonce103
;
5540 val
* var104
/* : String */;
5541 char* var105
/* : NativeString */;
5542 long var106
/* : Int */;
5543 val
* var107
/* : String */;
5544 val
* var108
/* : nullable Object */;
5545 static val
* varonce109
;
5546 val
* var110
/* : String */;
5547 char* var111
/* : NativeString */;
5548 long var112
/* : Int */;
5549 val
* var113
/* : String */;
5550 val
* var114
/* : Array[Object] */;
5551 long var115
/* : Int */;
5552 val
* var116
/* : NativeArray[Object] */;
5553 val
* var117
/* : String */;
5554 val
* var118
/* : nullable Object */;
5555 val
* var_last
/* var last: MClassType */;
5556 val
* var119
/* : Iterator[nullable Object] */;
5557 short int var120
/* : Bool */;
5558 val
* var121
/* : nullable Object */;
5559 val
* var_t
/* var t: MClassType */;
5560 val
* var122
/* : AbstractCompiler */;
5561 val
* var123
/* : MModule */;
5562 val
* var124
/* : MPropDef */;
5563 val
* var_propdef125
/* var propdef: MMethodDef */;
5564 short int var126
/* : Bool */;
5565 val
* var127
/* : AbstractCompiler */;
5566 short int var128
/* : Bool */;
5567 short int var129
/* : Bool */;
5568 short int var_
/* var : Bool */;
5569 short int var130
/* : Bool */;
5570 static val
* varonce131
;
5571 val
* var132
/* : String */;
5572 char* var133
/* : NativeString */;
5573 long var134
/* : Int */;
5574 val
* var135
/* : String */;
5575 static val
* varonce136
;
5576 val
* var137
/* : String */;
5577 char* var138
/* : NativeString */;
5578 long var139
/* : Int */;
5579 val
* var140
/* : String */;
5580 val
* var141
/* : Array[Object] */;
5581 long var142
/* : Int */;
5582 val
* var143
/* : NativeArray[Object] */;
5583 val
* var144
/* : String */;
5584 static val
* varonce145
;
5585 val
* var146
/* : String */;
5586 char* var147
/* : NativeString */;
5587 long var148
/* : Int */;
5588 val
* var149
/* : String */;
5589 val
* var150
/* : AbstractCompiler */;
5590 val
* var151
/* : String */;
5591 static val
* varonce152
;
5592 val
* var153
/* : String */;
5593 char* var154
/* : NativeString */;
5594 long var155
/* : Int */;
5595 val
* var156
/* : String */;
5596 static val
* varonce157
;
5597 val
* var158
/* : String */;
5598 char* var159
/* : NativeString */;
5599 long var160
/* : Int */;
5600 val
* var161
/* : String */;
5601 val
* var162
/* : Array[Object] */;
5602 long var163
/* : Int */;
5603 val
* var164
/* : NativeArray[Object] */;
5604 val
* var165
/* : String */;
5605 val
* var166
/* : nullable RuntimeVariable */;
5606 val
* var_res2167
/* var res2: nullable RuntimeVariable */;
5607 val
* var168
/* : null */;
5608 short int var169
/* : Bool */;
5609 static val
* varonce170
;
5610 val
* var171
/* : String */;
5611 char* var172
/* : NativeString */;
5612 long var173
/* : Int */;
5613 val
* var174
/* : String */;
5614 val
* var175
/* : AbstractCompiler */;
5615 short int var176
/* : Bool */;
5616 static val
* varonce177
;
5617 val
* var178
/* : String */;
5618 char* var179
/* : NativeString */;
5619 long var180
/* : Int */;
5620 val
* var181
/* : String */;
5621 val
* var182
/* : nullable Object */;
5622 static val
* varonce183
;
5623 val
* var184
/* : String */;
5624 char* var185
/* : NativeString */;
5625 long var186
/* : Int */;
5626 val
* var187
/* : String */;
5630 var1
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5631 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var1
) /* collect_types on <self:GlobalCompilerVisitor>*/;
5633 var3
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_m
) /* mproperty on <var_m:MMethodDef>*/;
5634 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MProperty__intro
]))(var3
) /* intro on <var3:MProperty(MMethod)>*/;
5635 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var4
) /* msignature on <var4:MPropDef(MMethodDef)>*/;
5637 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
5638 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 489);
5641 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var5
) /* return_mtype on <var5:nullable MSignature>*/;
5645 if (var_ret
== NULL
) {
5646 var8
= 1; /* is null */
5648 var8
= 0; /* arg is null but recv is not */
5654 var10
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5655 var11
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ret
, var10
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
5657 var12
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
5663 var14
= "/* super ";
5665 var16
= string__NativeString__to_s_with_length(var14
, var15
);
5674 var21
= string__NativeString__to_s_with_length(var19
, var20
);
5678 var22
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5679 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_string__Object__inspect
]))(var22
) /* inspect on <var22:nullable Object(RuntimeVariable)>*/;
5685 var28
= string__NativeString__to_s_with_length(var26
, var27
);
5689 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
5690 { /* var29 = array_instance Array[Object] */
5692 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
5693 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var13
;
5694 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var_m
;
5695 ((struct instance_array__NativeArray
*)var31
)->values
[2] = (val
*) var18
;
5696 ((struct instance_array__NativeArray
*)var31
)->values
[3] = (val
*) var23
;
5697 ((struct instance_array__NativeArray
*)var31
)->values
[4] = (val
*) var25
;
5698 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
5700 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
5701 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var32
) /* add on <self:GlobalCompilerVisitor>*/;
5702 var33
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5703 var34
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var33
) /* mtype on <var33:nullable Object(RuntimeVariable)>*/;
5704 var35
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var34
) /* ctype on <var34:MType>*/;
5710 var40
= string__NativeString__to_s_with_length(var38
, var39
);
5714 var41
= ((short int (*)(val
*, val
*))(var35
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var35
, var37
) /* != on <var35:String>*/;
5716 var42
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5717 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var42
) /* mtype on <var42:nullable Object(RuntimeVariable)>*/;
5718 /* <var43:MType> isa MClassType */
5719 cltype
= type_model__MClassType
.color
;
5720 idtype
= type_model__MClassType
.id
;
5721 if(cltype
>= var43
->type
->table_size
) {
5724 var44
= var43
->type
->type_table
[cltype
] == idtype
;
5727 var_class_name
= var43
== NULL ?
"null" : var43
->type
->name
;
5728 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5729 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 499);
5732 var_mclasstype
= var43
;
5733 var45
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5734 var46
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var45
) /* runtime_type_analysis on <var45:AbstractCompiler(GlobalCompiler)>*/;
5735 var47
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var46
) /* live_types on <var46:RapidTypeAnalysis>*/;
5736 var48
= ((short int (*)(val
*, val
*))(var47
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var47
, var_mclasstype
) /* has on <var47:HashSet[MClassType]>*/;
5742 var52
= "/* skip, no method ";
5744 var54
= string__NativeString__to_s_with_length(var52
, var53
);
5753 var59
= string__NativeString__to_s_with_length(var57
, var58
);
5757 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
5758 { /* var60 = array_instance Array[Object] */
5760 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
5761 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var51
;
5762 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var_m
;
5763 ((struct instance_array__NativeArray
*)var62
)->values
[2] = (val
*) var56
;
5764 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
5766 var63
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
5767 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var63
) /* add on <self:GlobalCompilerVisitor>*/;
5772 var64
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5773 var65
= ((val
* (*)(val
*))(var64
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var64
) /* mainmodule on <var64:AbstractCompiler(GlobalCompiler)>*/;
5774 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>*/;
5775 var_propdef
= var66
;
5776 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>*/;
5779 if (var_res
== NULL
) {
5780 var69
= 0; /* is null */
5782 var69
= 1; /* arg is null and recv is not */
5785 if (var_res2
== NULL
) {
5786 fprintf(stderr
, "Runtime error: %s", "Cast failed");
5787 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 506);
5790 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2
) /* assign on <self:GlobalCompilerVisitor>*/;
5797 var70
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
5804 var75
= string__NativeString__to_s_with_length(var73
, var74
);
5808 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var72
) /* add on <self:GlobalCompilerVisitor>*/;
5812 var78
= "/*BUG: no live types for ";
5814 var80
= string__NativeString__to_s_with_length(var78
, var79
);
5818 var81
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5819 var82
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__inspect
]))(var81
) /* inspect on <var81:nullable Object(RuntimeVariable)>*/;
5825 var87
= string__NativeString__to_s_with_length(var85
, var86
);
5834 var92
= string__NativeString__to_s_with_length(var90
, var91
);
5838 var93
= NEW_array__Array(&type_array__Arraykernel__Object
);
5839 { /* var93 = array_instance Array[Object] */
5841 var95
= NEW_array__NativeArray(var94
, &type_array__NativeArraykernel__Object
);
5842 ((struct instance_array__NativeArray
*)var95
)->values
[0] = (val
*) var77
;
5843 ((struct instance_array__NativeArray
*)var95
)->values
[1] = (val
*) var82
;
5844 ((struct instance_array__NativeArray
*)var95
)->values
[2] = (val
*) var84
;
5845 ((struct instance_array__NativeArray
*)var95
)->values
[3] = (val
*) var_m
;
5846 ((struct instance_array__NativeArray
*)var95
)->values
[4] = (val
*) var89
;
5847 ((void (*)(val
*, val
*, long))(var93
->class->vft
[COLOR_array__Array__with_native
]))(var93
, var95
, var94
) /* with_native on <var93:Array[Object]>*/;
5849 var96
= ((val
* (*)(val
*))(var93
->class->vft
[COLOR_string__Object__to_s
]))(var93
) /* to_s on <var93:Array[Object]>*/;
5850 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var96
) /* add on <self:GlobalCompilerVisitor>*/;
5851 var97
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5852 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var97
) /* bugtype on <self:GlobalCompilerVisitor>*/;
5858 var102
= string__NativeString__to_s_with_length(var100
, var101
);
5862 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var99
) /* add on <self:GlobalCompilerVisitor>*/;
5868 var104
= varonce103
;
5872 var107
= string__NativeString__to_s_with_length(var105
, var106
);
5874 varonce103
= var104
;
5876 var108
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
5878 var110
= varonce109
;
5880 var111
= "->classid) {";
5882 var113
= string__NativeString__to_s_with_length(var111
, var112
);
5884 varonce109
= var110
;
5886 var114
= NEW_array__Array(&type_array__Arraykernel__Object
);
5887 { /* var114 = array_instance Array[Object] */
5889 var116
= NEW_array__NativeArray(var115
, &type_array__NativeArraykernel__Object
);
5890 ((struct instance_array__NativeArray
*)var116
)->values
[0] = (val
*) var104
;
5891 ((struct instance_array__NativeArray
*)var116
)->values
[1] = (val
*) var108
;
5892 ((struct instance_array__NativeArray
*)var116
)->values
[2] = (val
*) var110
;
5893 ((void (*)(val
*, val
*, long))(var114
->class->vft
[COLOR_array__Array__with_native
]))(var114
, var116
, var115
) /* with_native on <var114:Array[Object]>*/;
5895 var117
= ((val
* (*)(val
*))(var114
->class->vft
[COLOR_string__Object__to_s
]))(var114
) /* to_s on <var114:Array[Object]>*/;
5896 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var117
) /* add on <self:GlobalCompilerVisitor>*/;
5897 var118
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
5899 var119
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
5901 var120
= ((short int (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var119
) /* is_ok on <var119:Iterator[nullable Object]>*/;
5903 var121
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var119
) /* item on <var119:Iterator[nullable Object]>*/;
5905 var122
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5906 var123
= ((val
* (*)(val
*))(var122
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var122
) /* mainmodule on <var122:AbstractCompiler(GlobalCompiler)>*/;
5907 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>*/;
5908 var_propdef125
= var124
;
5909 var127
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5910 var128
= ((short int (*)(val
*))(var127
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var127
) /* hardening on <var127:AbstractCompiler(GlobalCompiler)>*/;
5914 var130
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
5921 var132
= varonce131
;
5923 var133
= "default: /* test ";
5925 var135
= string__NativeString__to_s_with_length(var133
, var134
);
5927 varonce131
= var132
;
5930 var137
= varonce136
;
5934 var140
= string__NativeString__to_s_with_length(var138
, var139
);
5936 varonce136
= var137
;
5938 var141
= NEW_array__Array(&type_array__Arraykernel__Object
);
5939 { /* var141 = array_instance Array[Object] */
5941 var143
= NEW_array__NativeArray(var142
, &type_array__NativeArraykernel__Object
);
5942 ((struct instance_array__NativeArray
*)var143
)->values
[0] = (val
*) var132
;
5943 ((struct instance_array__NativeArray
*)var143
)->values
[1] = (val
*) var_t
;
5944 ((struct instance_array__NativeArray
*)var143
)->values
[2] = (val
*) var137
;
5945 ((void (*)(val
*, val
*, long))(var141
->class->vft
[COLOR_array__Array__with_native
]))(var141
, var143
, var142
) /* with_native on <var141:Array[Object]>*/;
5947 var144
= ((val
* (*)(val
*))(var141
->class->vft
[COLOR_string__Object__to_s
]))(var141
) /* to_s on <var141:Array[Object]>*/;
5948 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var144
) /* add on <self:GlobalCompilerVisitor>*/;
5951 var146
= varonce145
;
5955 var149
= string__NativeString__to_s_with_length(var147
, var148
);
5957 varonce145
= var146
;
5959 var150
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
5960 var151
= ((val
* (*)(val
*, val
*))(var150
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var150
, var_t
) /* classid on <var150:AbstractCompiler(GlobalCompiler)>*/;
5962 var153
= varonce152
;
5964 var154
= ": /* test ";
5966 var156
= string__NativeString__to_s_with_length(var154
, var155
);
5968 varonce152
= var153
;
5971 var158
= varonce157
;
5975 var161
= string__NativeString__to_s_with_length(var159
, var160
);
5977 varonce157
= var158
;
5979 var162
= NEW_array__Array(&type_array__Arraykernel__Object
);
5980 { /* var162 = array_instance Array[Object] */
5982 var164
= NEW_array__NativeArray(var163
, &type_array__NativeArraykernel__Object
);
5983 ((struct instance_array__NativeArray
*)var164
)->values
[0] = (val
*) var146
;
5984 ((struct instance_array__NativeArray
*)var164
)->values
[1] = (val
*) var151
;
5985 ((struct instance_array__NativeArray
*)var164
)->values
[2] = (val
*) var153
;
5986 ((struct instance_array__NativeArray
*)var164
)->values
[3] = (val
*) var_t
;
5987 ((struct instance_array__NativeArray
*)var164
)->values
[4] = (val
*) var158
;
5988 ((void (*)(val
*, val
*, long))(var162
->class->vft
[COLOR_array__Array__with_native
]))(var162
, var164
, var163
) /* with_native on <var162:Array[Object]>*/;
5990 var165
= ((val
* (*)(val
*))(var162
->class->vft
[COLOR_string__Object__to_s
]))(var162
) /* to_s on <var162:Array[Object]>*/;
5991 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var165
) /* add on <self:GlobalCompilerVisitor>*/;
5993 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>*/;
5994 var_res2167
= var166
;
5996 if (var_res
== NULL
) {
5997 var169
= 0; /* is null */
5999 var169
= 1; /* arg is null and recv is not */
6002 if (var_res2167
== NULL
) {
6003 fprintf(stderr
, "Runtime error: %s", "Cast failed");
6004 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 528);
6007 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2167
) /* assign on <self:GlobalCompilerVisitor>*/;
6011 var171
= varonce170
;
6015 var174
= string__NativeString__to_s_with_length(var172
, var173
);
6017 varonce170
= var171
;
6019 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
6020 CONTINUE_label
: (void)0;
6021 ((void (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var119
) /* next on <var119:Iterator[nullable Object]>*/;
6023 BREAK_label
: (void)0;
6024 var175
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6025 var176
= ((short int (*)(val
*))(var175
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var175
) /* hardening on <var175:AbstractCompiler(GlobalCompiler)>*/;
6028 var178
= varonce177
;
6030 var179
= "default: /* bug */";
6032 var181
= string__NativeString__to_s_with_length(var179
, var180
);
6034 varonce177
= var178
;
6036 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var178
) /* add on <self:GlobalCompilerVisitor>*/;
6037 var182
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6038 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var182
) /* bugtype on <self:GlobalCompilerVisitor>*/;
6042 var184
= varonce183
;
6046 var187
= string__NativeString__to_s_with_length(var185
, var186
);
6048 varonce183
= var184
;
6050 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var184
) /* add on <self:GlobalCompilerVisitor>*/;
6056 /* method global_compiler#GlobalCompilerVisitor#supercall for (self: Object, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
6057 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__supercall(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6058 val
* var
/* : nullable RuntimeVariable */;
6059 val
* var1
/* : nullable RuntimeVariable */;
6060 var1
= global_compiler__GlobalCompilerVisitor__supercall(self
, p0
, p1
, p2
);
6065 /* method global_compiler#GlobalCompilerVisitor#adapt_signature for (self: GlobalCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
6066 void global_compiler__GlobalCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
6067 val
* var_m
/* var m: MMethodDef */;
6068 val
* var_args
/* var args: Array[RuntimeVariable] */;
6069 val
* var
/* : nullable Object */;
6070 val
* var_recv
/* var recv: RuntimeVariable */;
6071 val
* var1
/* : Range[Int] */;
6072 long var2
/* : Int */;
6073 val
* var3
/* : nullable MSignature */;
6074 long var4
/* : Int */;
6075 val
* var5
/* : Discrete */;
6076 val
* var6
/* : Discrete */;
6077 val
* var7
/* : Iterator[nullable Object] */;
6078 short int var8
/* : Bool */;
6079 val
* var9
/* : nullable Object */;
6080 long var_i
/* var i: Int */;
6081 long var10
/* : Int */;
6082 val
* var11
/* : nullable MSignature */;
6083 val
* var12
/* : Array[MParameter] */;
6084 val
* var13
/* : nullable Object */;
6085 val
* var14
/* : MType */;
6086 val
* var_t
/* var t: MType */;
6087 val
* var15
/* : nullable MSignature */;
6088 long var16
/* : Int */;
6089 short int var17
/* : Bool */;
6090 short int var19
/* : Bool */;
6091 long var20
/* : Int */;
6092 long var21
/* : Int */;
6093 long var23
/* : Int */;
6094 val
* var24
/* : nullable Object */;
6095 val
* var25
/* : MType */;
6096 val
* var26
/* : MType */;
6097 long var27
/* : Int */;
6098 long var28
/* : Int */;
6099 long var30
/* : Int */;
6100 long var31
/* : Int */;
6101 long var32
/* : Int */;
6102 long var34
/* : Int */;
6103 val
* var35
/* : nullable Object */;
6104 val
* var36
/* : RuntimeVariable */;
6107 var
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
6109 var1
= NEW_range__Range(&type_range__Rangekernel__Int
);
6111 var3
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
6113 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
6114 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 542);
6117 var4
= ((long (*)(val
*))(var3
->class->vft
[COLOR_model__MSignature__arity
]))(var3
) /* arity on <var3:nullable MSignature>*/;
6119 var5
= BOX_kernel__Int(var2
); /* autobox from Int to Discrete */
6120 var6
= BOX_kernel__Int(var4
); /* autobox from Int to Discrete */
6121 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_range__Range__without_last
]))(var1
, var5
, var6
) /* without_last on <var1:Range[Int]>*/;
6122 var7
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var1
) /* iterator on <var1:Range[Int]>*/;
6124 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
6126 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
6127 var10
= ((struct instance_kernel__Int
*)var9
)->value
; /* autounbox from nullable Object to Int */;
6129 var11
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
6130 if (var11
== NULL
) {
6131 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
6132 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 543);
6135 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_model__MSignature__mparameters
]))(var11
) /* mparameters on <var11:nullable MSignature>*/;
6137 var13
= ((val
* (*)(val
*, long))(var12
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var12
, var_i
) /* [] on <var12:Array[MParameter]>*/;
6138 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__MParameter__mtype
]))(var13
) /* mtype on <var13:nullable Object(MParameter)>*/;
6140 var15
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
6141 if (var15
== NULL
) {
6142 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
6143 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 544);
6146 var16
= ((long (*)(val
*))(var15
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var15
) /* vararg_rank on <var15:nullable MSignature>*/;
6148 { /* Inline kernel#Int#== (var_i,var16) */
6149 var19
= var_i
== var16
;
6152 RET_LABEL18
:(void)0;
6156 { /* Inline kernel#Int#+ (var_i,var20) */
6157 var23
= var_i
+ var20
;
6160 RET_LABEL22
:(void)0;
6162 var24
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var21
) /* [] on <var_args:Array[RuntimeVariable]>*/;
6163 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var24
) /* mtype on <var24:nullable Object(RuntimeVariable)>*/;
6167 var26
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_t
, var_recv
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
6170 { /* Inline kernel#Int#+ (var_i,var27) */
6171 var30
= var_i
+ var27
;
6174 RET_LABEL29
:(void)0;
6177 { /* Inline kernel#Int#+ (var_i,var31) */
6178 var34
= var_i
+ var31
;
6181 RET_LABEL33
:(void)0;
6183 var35
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var32
) /* [] on <var_args:Array[RuntimeVariable]>*/;
6184 var36
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var35
, var_t
) /* autobox on <self:GlobalCompilerVisitor>*/;
6185 ((void (*)(val
*, long, val
*))(var_args
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_args
, var28
, var36
) /* []= on <var_args:Array[RuntimeVariable]>*/;
6186 CONTINUE_label
: (void)0;
6187 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
6189 BREAK_label
: (void)0;
6192 /* method global_compiler#GlobalCompilerVisitor#adapt_signature for (self: Object, MMethodDef, Array[RuntimeVariable]) */
6193 void VIRTUAL_global_compiler__GlobalCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
6194 global_compiler__GlobalCompilerVisitor__adapt_signature(self
, p0
, p1
);
6197 /* method global_compiler#GlobalCompilerVisitor#vararg_instance for (self: GlobalCompilerVisitor, MPropDef, RuntimeVariable, Array[RuntimeVariable], MType): RuntimeVariable */
6198 val
* global_compiler__GlobalCompilerVisitor__vararg_instance(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
6199 val
* var
/* : RuntimeVariable */;
6200 val
* var_mpropdef
/* var mpropdef: MPropDef */;
6201 val
* var_recv
/* var recv: RuntimeVariable */;
6202 val
* var_varargs
/* var varargs: Array[RuntimeVariable] */;
6203 val
* var_elttype
/* var elttype: MType */;
6204 val
* var1
/* : MType */;
6205 val
* var2
/* : RuntimeVariable */;
6210 var1
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_elttype
, var_recv
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
6212 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__array_instance
]))(self
, var_varargs
, var_elttype
) /* array_instance on <self:GlobalCompilerVisitor>*/;
6218 /* method global_compiler#GlobalCompilerVisitor#vararg_instance for (self: Object, MPropDef, RuntimeVariable, Array[RuntimeVariable], MType): RuntimeVariable */
6219 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__vararg_instance(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
6220 val
* var
/* : RuntimeVariable */;
6221 val
* var1
/* : RuntimeVariable */;
6222 var1
= global_compiler__GlobalCompilerVisitor__vararg_instance(self
, p0
, p1
, p2
, p3
);
6227 /* method global_compiler#GlobalCompilerVisitor#bugtype for (self: GlobalCompilerVisitor, RuntimeVariable) */
6228 void global_compiler__GlobalCompilerVisitor__bugtype(val
* self
, val
* p0
) {
6229 val
* var_recv
/* var recv: RuntimeVariable */;
6230 val
* var
/* : MType */;
6231 val
* var1
/* : String */;
6232 static val
* varonce
;
6233 val
* var2
/* : String */;
6234 char* var3
/* : NativeString */;
6235 long var4
/* : Int */;
6236 val
* var5
/* : String */;
6237 short int var6
/* : Bool */;
6238 static val
* varonce7
;
6239 val
* var8
/* : String */;
6240 char* var9
/* : NativeString */;
6241 long var10
/* : Int */;
6242 val
* var11
/* : String */;
6243 static val
* varonce12
;
6244 val
* var13
/* : String */;
6245 char* var14
/* : NativeString */;
6246 long var15
/* : Int */;
6247 val
* var16
/* : String */;
6248 val
* var17
/* : MType */;
6249 static val
* varonce18
;
6250 val
* var19
/* : String */;
6251 char* var20
/* : NativeString */;
6252 long var21
/* : Int */;
6253 val
* var22
/* : String */;
6254 val
* var23
/* : Array[Object] */;
6255 long var24
/* : Int */;
6256 val
* var25
/* : NativeArray[Object] */;
6257 val
* var26
/* : String */;
6258 static val
* varonce27
;
6259 val
* var28
/* : String */;
6260 char* var29
/* : NativeString */;
6261 long var30
/* : Int */;
6262 val
* var31
/* : String */;
6264 var
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_recv
) /* mtype on <var_recv:RuntimeVariable>*/;
6265 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var
) /* ctype on <var:MType>*/;
6271 var5
= string__NativeString__to_s_with_length(var3
, var4
);
6275 var6
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var1
, var2
) /* != on <var1:String>*/;
6283 var9
= "fprintf(stderr, \"BTD BUG: Dynamic type is %s, static type is %s\\n\", class_names[";
6285 var11
= string__NativeString__to_s_with_length(var9
, var10
);
6292 var14
= "->classid], \"";
6294 var16
= string__NativeString__to_s_with_length(var14
, var15
);
6298 var17
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_recv
) /* mcasttype on <var_recv:RuntimeVariable>*/;
6304 var22
= string__NativeString__to_s_with_length(var20
, var21
);
6308 var23
= NEW_array__Array(&type_array__Arraykernel__Object
);
6309 { /* var23 = array_instance Array[Object] */
6311 var25
= NEW_array__NativeArray(var24
, &type_array__NativeArraykernel__Object
);
6312 ((struct instance_array__NativeArray
*)var25
)->values
[0] = (val
*) var8
;
6313 ((struct instance_array__NativeArray
*)var25
)->values
[1] = (val
*) var_recv
;
6314 ((struct instance_array__NativeArray
*)var25
)->values
[2] = (val
*) var13
;
6315 ((struct instance_array__NativeArray
*)var25
)->values
[3] = (val
*) var17
;
6316 ((struct instance_array__NativeArray
*)var25
)->values
[4] = (val
*) var19
;
6317 ((void (*)(val
*, val
*, long))(var23
->class->vft
[COLOR_array__Array__with_native
]))(var23
, var25
, var24
) /* with_native on <var23:Array[Object]>*/;
6319 var26
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_string__Object__to_s
]))(var23
) /* to_s on <var23:Array[Object]>*/;
6320 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var26
) /* add on <self:GlobalCompilerVisitor>*/;
6324 var29
= "show_backtrace(1);";
6326 var31
= string__NativeString__to_s_with_length(var29
, var30
);
6330 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var28
) /* add on <self:GlobalCompilerVisitor>*/;
6333 /* method global_compiler#GlobalCompilerVisitor#bugtype for (self: Object, RuntimeVariable) */
6334 void VIRTUAL_global_compiler__GlobalCompilerVisitor__bugtype(val
* self
, val
* p0
) {
6335 global_compiler__GlobalCompilerVisitor__bugtype(self
, p0
);
6338 /* method global_compiler#GlobalCompilerVisitor#isset_attribute for (self: GlobalCompilerVisitor, MAttribute, RuntimeVariable): RuntimeVariable */
6339 val
* global_compiler__GlobalCompilerVisitor__isset_attribute(val
* self
, val
* p0
, val
* p1
) {
6340 val
* var
/* : RuntimeVariable */;
6341 val
* var_a
/* var a: MAttribute */;
6342 val
* var_recv
/* var recv: RuntimeVariable */;
6343 val
* var1
/* : Array[MClassType] */;
6344 val
* var_types
/* var types: Array[MClassType] */;
6345 val
* var2
/* : MClassType */;
6346 val
* var3
/* : RuntimeVariable */;
6347 val
* var_res
/* var res: RuntimeVariable */;
6348 short int var4
/* : Bool */;
6349 static val
* varonce
;
6350 val
* var5
/* : String */;
6351 char* var6
/* : NativeString */;
6352 long var7
/* : Int */;
6353 val
* var8
/* : String */;
6354 val
* var9
/* : String */;
6355 static val
* varonce10
;
6356 val
* var11
/* : String */;
6357 char* var12
/* : NativeString */;
6358 long var13
/* : Int */;
6359 val
* var14
/* : String */;
6360 static val
* varonce15
;
6361 val
* var16
/* : String */;
6362 char* var17
/* : NativeString */;
6363 long var18
/* : Int */;
6364 val
* var19
/* : String */;
6365 val
* var20
/* : Array[Object] */;
6366 long var21
/* : Int */;
6367 val
* var22
/* : NativeArray[Object] */;
6368 val
* var23
/* : String */;
6369 static val
* varonce24
;
6370 val
* var25
/* : String */;
6371 char* var26
/* : NativeString */;
6372 long var27
/* : Int */;
6373 val
* var28
/* : String */;
6374 static val
* varonce29
;
6375 val
* var30
/* : String */;
6376 char* var31
/* : NativeString */;
6377 long var32
/* : Int */;
6378 val
* var33
/* : String */;
6379 val
* var34
/* : String */;
6380 static val
* varonce35
;
6381 val
* var36
/* : String */;
6382 char* var37
/* : NativeString */;
6383 long var38
/* : Int */;
6384 val
* var39
/* : String */;
6385 val
* var40
/* : Array[Object] */;
6386 long var41
/* : Int */;
6387 val
* var42
/* : NativeArray[Object] */;
6388 val
* var43
/* : String */;
6389 static val
* varonce44
;
6390 val
* var45
/* : String */;
6391 char* var46
/* : NativeString */;
6392 long var47
/* : Int */;
6393 val
* var48
/* : String */;
6394 static val
* varonce49
;
6395 val
* var50
/* : String */;
6396 char* var51
/* : NativeString */;
6397 long var52
/* : Int */;
6398 val
* var53
/* : String */;
6399 val
* var54
/* : Array[Object] */;
6400 long var55
/* : Int */;
6401 val
* var56
/* : NativeArray[Object] */;
6402 val
* var57
/* : String */;
6403 val
* var58
/* : nullable Object */;
6404 val
* var_last
/* var last: MClassType */;
6405 val
* var59
/* : Iterator[nullable Object] */;
6406 short int var60
/* : Bool */;
6407 val
* var61
/* : nullable Object */;
6408 val
* var_t
/* var t: MClassType */;
6409 short int var62
/* : Bool */;
6410 val
* var63
/* : AbstractCompiler */;
6411 short int var64
/* : Bool */;
6412 short int var65
/* : Bool */;
6413 short int var_
/* var : Bool */;
6414 short int var66
/* : Bool */;
6415 static val
* varonce67
;
6416 val
* var68
/* : String */;
6417 char* var69
/* : NativeString */;
6418 long var70
/* : Int */;
6419 val
* var71
/* : String */;
6420 val
* var72
/* : AbstractCompiler */;
6421 val
* var73
/* : String */;
6422 static val
* varonce74
;
6423 val
* var75
/* : String */;
6424 char* var76
/* : NativeString */;
6425 long var77
/* : Int */;
6426 val
* var78
/* : String */;
6427 val
* var79
/* : Array[Object] */;
6428 long var80
/* : Int */;
6429 val
* var81
/* : NativeArray[Object] */;
6430 val
* var82
/* : String */;
6431 static val
* varonce83
;
6432 val
* var84
/* : String */;
6433 char* var85
/* : NativeString */;
6434 long var86
/* : Int */;
6435 val
* var87
/* : String */;
6436 val
* var88
/* : AbstractCompiler */;
6437 val
* var89
/* : String */;
6438 static val
* varonce90
;
6439 val
* var91
/* : String */;
6440 char* var92
/* : NativeString */;
6441 long var93
/* : Int */;
6442 val
* var94
/* : String */;
6443 val
* var95
/* : Array[Object] */;
6444 long var96
/* : Int */;
6445 val
* var97
/* : NativeArray[Object] */;
6446 val
* var98
/* : String */;
6447 val
* var99
/* : RuntimeVariable */;
6448 val
* var_recv2
/* var recv2: RuntimeVariable */;
6449 val
* var100
/* : MPropDef */;
6450 val
* var101
/* : nullable MType */;
6451 val
* var_ta
/* var ta: MType */;
6452 val
* var102
/* : MType */;
6453 static val
* varonce103
;
6454 val
* var104
/* : String */;
6455 char* var105
/* : NativeString */;
6456 long var106
/* : Int */;
6457 val
* var107
/* : String */;
6458 val
* var108
/* : String */;
6459 static val
* varonce109
;
6460 val
* var110
/* : String */;
6461 char* var111
/* : NativeString */;
6462 long var112
/* : Int */;
6463 val
* var113
/* : String */;
6464 static val
* varonce114
;
6465 val
* var115
/* : String */;
6466 char* var116
/* : NativeString */;
6467 long var117
/* : Int */;
6468 val
* var118
/* : String */;
6469 val
* var119
/* : MPropDef */;
6470 val
* var120
/* : String */;
6471 val
* var121
/* : Array[Object] */;
6472 long var122
/* : Int */;
6473 val
* var123
/* : NativeArray[Object] */;
6474 val
* var124
/* : String */;
6475 val
* var125
/* : RuntimeVariable */;
6476 val
* var_attr
/* var attr: RuntimeVariable */;
6477 short int var126
/* : Bool */;
6480 short int var127
/* : Bool */;
6481 val
* var128
/* : String */;
6482 static val
* varonce129
;
6483 val
* var130
/* : String */;
6484 char* var131
/* : NativeString */;
6485 long var132
/* : Int */;
6486 val
* var133
/* : String */;
6487 short int var134
/* : Bool */;
6488 static val
* varonce135
;
6489 val
* var136
/* : String */;
6490 char* var137
/* : NativeString */;
6491 long var138
/* : Int */;
6492 val
* var139
/* : String */;
6493 static val
* varonce140
;
6494 val
* var141
/* : String */;
6495 char* var142
/* : NativeString */;
6496 long var143
/* : Int */;
6497 val
* var144
/* : String */;
6498 val
* var145
/* : Array[Object] */;
6499 long var146
/* : Int */;
6500 val
* var147
/* : NativeArray[Object] */;
6501 val
* var148
/* : String */;
6502 static val
* varonce149
;
6503 val
* var150
/* : String */;
6504 char* var151
/* : NativeString */;
6505 long var152
/* : Int */;
6506 val
* var153
/* : String */;
6507 val
* var154
/* : Array[Object] */;
6508 long var155
/* : Int */;
6509 val
* var156
/* : NativeArray[Object] */;
6510 val
* var157
/* : String */;
6511 static val
* varonce158
;
6512 val
* var159
/* : String */;
6513 char* var160
/* : NativeString */;
6514 long var161
/* : Int */;
6515 val
* var162
/* : String */;
6516 val
* var163
/* : AbstractCompiler */;
6517 short int var164
/* : Bool */;
6518 static val
* varonce165
;
6519 val
* var166
/* : String */;
6520 char* var167
/* : NativeString */;
6521 long var168
/* : Int */;
6522 val
* var169
/* : String */;
6523 static val
* varonce170
;
6524 val
* var171
/* : String */;
6525 char* var172
/* : NativeString */;
6526 long var173
/* : Int */;
6527 val
* var174
/* : String */;
6530 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__check_recv_notnull
]))(self
, var_recv
) /* check_recv_notnull on <self:GlobalCompilerVisitor>*/;
6531 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_recv
) /* collect_types on <self:GlobalCompilerVisitor>*/;
6533 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type
]))(self
) /* bool_type on <self:GlobalCompilerVisitor>*/;
6534 var3
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var2
) /* new_var on <self:GlobalCompilerVisitor>*/;
6536 var4
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
6541 var6
= "/*BUG: no live types for ";
6543 var8
= string__NativeString__to_s_with_length(var6
, var7
);
6547 var9
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
6553 var14
= string__NativeString__to_s_with_length(var12
, var13
);
6562 var19
= string__NativeString__to_s_with_length(var17
, var18
);
6566 var20
= NEW_array__Array(&type_array__Arraykernel__Object
);
6567 { /* var20 = array_instance Array[Object] */
6569 var22
= NEW_array__NativeArray(var21
, &type_array__NativeArraykernel__Object
);
6570 ((struct instance_array__NativeArray
*)var22
)->values
[0] = (val
*) var5
;
6571 ((struct instance_array__NativeArray
*)var22
)->values
[1] = (val
*) var9
;
6572 ((struct instance_array__NativeArray
*)var22
)->values
[2] = (val
*) var11
;
6573 ((struct instance_array__NativeArray
*)var22
)->values
[3] = (val
*) var_a
;
6574 ((struct instance_array__NativeArray
*)var22
)->values
[4] = (val
*) var16
;
6575 ((void (*)(val
*, val
*, long))(var20
->class->vft
[COLOR_array__Array__with_native
]))(var20
, var22
, var21
) /* with_native on <var20:Array[Object]>*/;
6577 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_string__Object__to_s
]))(var20
) /* to_s on <var20:Array[Object]>*/;
6578 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var23
) /* add on <self:GlobalCompilerVisitor>*/;
6579 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
6587 var26
= "/* isset ";
6589 var28
= string__NativeString__to_s_with_length(var26
, var27
);
6598 var33
= string__NativeString__to_s_with_length(var31
, var32
);
6602 var34
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
6608 var39
= string__NativeString__to_s_with_length(var37
, var38
);
6612 var40
= NEW_array__Array(&type_array__Arraykernel__Object
);
6613 { /* var40 = array_instance Array[Object] */
6615 var42
= NEW_array__NativeArray(var41
, &type_array__NativeArraykernel__Object
);
6616 ((struct instance_array__NativeArray
*)var42
)->values
[0] = (val
*) var25
;
6617 ((struct instance_array__NativeArray
*)var42
)->values
[1] = (val
*) var_a
;
6618 ((struct instance_array__NativeArray
*)var42
)->values
[2] = (val
*) var30
;
6619 ((struct instance_array__NativeArray
*)var42
)->values
[3] = (val
*) var34
;
6620 ((struct instance_array__NativeArray
*)var42
)->values
[4] = (val
*) var36
;
6621 ((void (*)(val
*, val
*, long))(var40
->class->vft
[COLOR_array__Array__with_native
]))(var40
, var42
, var41
) /* with_native on <var40:Array[Object]>*/;
6623 var43
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_string__Object__to_s
]))(var40
) /* to_s on <var40:Array[Object]>*/;
6624 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var43
) /* add on <self:GlobalCompilerVisitor>*/;
6630 var48
= string__NativeString__to_s_with_length(var46
, var47
);
6637 var51
= "->classid) {";
6639 var53
= string__NativeString__to_s_with_length(var51
, var52
);
6643 var54
= NEW_array__Array(&type_array__Arraykernel__Object
);
6644 { /* var54 = array_instance Array[Object] */
6646 var56
= NEW_array__NativeArray(var55
, &type_array__NativeArraykernel__Object
);
6647 ((struct instance_array__NativeArray
*)var56
)->values
[0] = (val
*) var45
;
6648 ((struct instance_array__NativeArray
*)var56
)->values
[1] = (val
*) var_recv
;
6649 ((struct instance_array__NativeArray
*)var56
)->values
[2] = (val
*) var50
;
6650 ((void (*)(val
*, val
*, long))(var54
->class->vft
[COLOR_array__Array__with_native
]))(var54
, var56
, var55
) /* with_native on <var54:Array[Object]>*/;
6652 var57
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_string__Object__to_s
]))(var54
) /* to_s on <var54:Array[Object]>*/;
6653 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var57
) /* add on <self:GlobalCompilerVisitor>*/;
6654 var58
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
6656 var59
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
6658 var60
= ((short int (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var59
) /* is_ok on <var59:Iterator[nullable Object]>*/;
6660 var61
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var59
) /* item on <var59:Iterator[nullable Object]>*/;
6662 var63
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6663 var64
= ((short int (*)(val
*))(var63
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var63
) /* hardening on <var63:AbstractCompiler(GlobalCompiler)>*/;
6667 var66
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
6676 var69
= "default: /*";
6678 var71
= string__NativeString__to_s_with_length(var69
, var70
);
6682 var72
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6683 var73
= ((val
* (*)(val
*, val
*))(var72
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var72
, var_t
) /* classid on <var72:AbstractCompiler(GlobalCompiler)>*/;
6689 var78
= string__NativeString__to_s_with_length(var76
, var77
);
6693 var79
= NEW_array__Array(&type_array__Arraykernel__Object
);
6694 { /* var79 = array_instance Array[Object] */
6696 var81
= NEW_array__NativeArray(var80
, &type_array__NativeArraykernel__Object
);
6697 ((struct instance_array__NativeArray
*)var81
)->values
[0] = (val
*) var68
;
6698 ((struct instance_array__NativeArray
*)var81
)->values
[1] = (val
*) var73
;
6699 ((struct instance_array__NativeArray
*)var81
)->values
[2] = (val
*) var75
;
6700 ((void (*)(val
*, val
*, long))(var79
->class->vft
[COLOR_array__Array__with_native
]))(var79
, var81
, var80
) /* with_native on <var79:Array[Object]>*/;
6702 var82
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_string__Object__to_s
]))(var79
) /* to_s on <var79:Array[Object]>*/;
6703 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var82
) /* add on <self:GlobalCompilerVisitor>*/;
6710 var87
= string__NativeString__to_s_with_length(var85
, var86
);
6714 var88
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6715 var89
= ((val
* (*)(val
*, val
*))(var88
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var88
, var_t
) /* classid on <var88:AbstractCompiler(GlobalCompiler)>*/;
6721 var94
= string__NativeString__to_s_with_length(var92
, var93
);
6725 var95
= NEW_array__Array(&type_array__Arraykernel__Object
);
6726 { /* var95 = array_instance Array[Object] */
6728 var97
= NEW_array__NativeArray(var96
, &type_array__NativeArraykernel__Object
);
6729 ((struct instance_array__NativeArray
*)var97
)->values
[0] = (val
*) var84
;
6730 ((struct instance_array__NativeArray
*)var97
)->values
[1] = (val
*) var89
;
6731 ((struct instance_array__NativeArray
*)var97
)->values
[2] = (val
*) var91
;
6732 ((void (*)(val
*, val
*, long))(var95
->class->vft
[COLOR_array__Array__with_native
]))(var95
, var97
, var96
) /* with_native on <var95:Array[Object]>*/;
6734 var98
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_string__Object__to_s
]))(var95
) /* to_s on <var95:Array[Object]>*/;
6735 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var98
) /* add on <self:GlobalCompilerVisitor>*/;
6737 var99
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var_recv
, var_t
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
6739 var100
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
6740 var101
= ((val
* (*)(val
*))(var100
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var100
) /* static_mtype on <var100:MPropDef(MAttributeDef)>*/;
6741 if (var101
== NULL
) {
6742 fprintf(stderr
, "Runtime error: %s", "Cast failed");
6743 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 588);
6747 var102
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ta
, var_recv2
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
6750 var104
= varonce103
;
6752 var105
= "((struct ";
6754 var107
= string__NativeString__to_s_with_length(var105
, var106
);
6756 varonce103
= var104
;
6758 var108
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_t
) /* c_name on <var_t:MClassType>*/;
6760 var110
= varonce109
;
6764 var113
= string__NativeString__to_s_with_length(var111
, var112
);
6766 varonce109
= var110
;
6769 var115
= varonce114
;
6773 var118
= string__NativeString__to_s_with_length(var116
, var117
);
6775 varonce114
= var115
;
6777 var119
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
6778 var120
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var119
) /* c_name on <var119:MPropDef(MAttributeDef)>*/;
6779 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
6780 { /* var121 = array_instance Array[Object] */
6782 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
6783 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var104
;
6784 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var108
;
6785 ((struct instance_array__NativeArray
*)var123
)->values
[2] = (val
*) var110
;
6786 ((struct instance_array__NativeArray
*)var123
)->values
[3] = (val
*) var_recv
;
6787 ((struct instance_array__NativeArray
*)var123
)->values
[4] = (val
*) var115
;
6788 ((struct instance_array__NativeArray
*)var123
)->values
[5] = (val
*) var120
;
6789 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
6791 var124
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
6792 var125
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var124
, var_ta
) /* new_expr on <self:GlobalCompilerVisitor>*/;
6794 /* <var_ta:MType> isa MNullableType */
6795 cltype
= type_model__MNullableType
.color
;
6796 idtype
= type_model__MNullableType
.id
;
6797 if(cltype
>= var_ta
->type
->table_size
) {
6800 var126
= var_ta
->type
->type_table
[cltype
] == idtype
;
6804 var128
= ((val
* (*)(val
*))(var_ta
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_ta
) /* ctype on <var_ta:MType>*/;
6806 var130
= varonce129
;
6810 var133
= string__NativeString__to_s_with_length(var131
, var132
);
6812 varonce129
= var130
;
6814 var134
= ((short int (*)(val
*, val
*))(var128
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var128
, var130
) /* == on <var128:String>*/;
6817 var136
= varonce135
;
6821 var139
= string__NativeString__to_s_with_length(var137
, var138
);
6823 varonce135
= var136
;
6826 var141
= varonce140
;
6828 var142
= " != NULL);";
6830 var144
= string__NativeString__to_s_with_length(var142
, var143
);
6832 varonce140
= var141
;
6834 var145
= NEW_array__Array(&type_array__Arraykernel__Object
);
6835 { /* var145 = array_instance Array[Object] */
6837 var147
= NEW_array__NativeArray(var146
, &type_array__NativeArraykernel__Object
);
6838 ((struct instance_array__NativeArray
*)var147
)->values
[0] = (val
*) var_res
;
6839 ((struct instance_array__NativeArray
*)var147
)->values
[1] = (val
*) var136
;
6840 ((struct instance_array__NativeArray
*)var147
)->values
[2] = (val
*) var_attr
;
6841 ((struct instance_array__NativeArray
*)var147
)->values
[3] = (val
*) var141
;
6842 ((void (*)(val
*, val
*, long))(var145
->class->vft
[COLOR_array__Array__with_native
]))(var145
, var147
, var146
) /* with_native on <var145:Array[Object]>*/;
6844 var148
= ((val
* (*)(val
*))(var145
->class->vft
[COLOR_string__Object__to_s
]))(var145
) /* to_s on <var145:Array[Object]>*/;
6845 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var148
) /* add on <self:GlobalCompilerVisitor>*/;
6848 var150
= varonce149
;
6850 var151
= " = 1; /*NOTYET isset on primitive attributes*/";
6852 var153
= string__NativeString__to_s_with_length(var151
, var152
);
6854 varonce149
= var150
;
6856 var154
= NEW_array__Array(&type_array__Arraykernel__Object
);
6857 { /* var154 = array_instance Array[Object] */
6859 var156
= NEW_array__NativeArray(var155
, &type_array__NativeArraykernel__Object
);
6860 ((struct instance_array__NativeArray
*)var156
)->values
[0] = (val
*) var_res
;
6861 ((struct instance_array__NativeArray
*)var156
)->values
[1] = (val
*) var150
;
6862 ((void (*)(val
*, val
*, long))(var154
->class->vft
[COLOR_array__Array__with_native
]))(var154
, var156
, var155
) /* with_native on <var154:Array[Object]>*/;
6864 var157
= ((val
* (*)(val
*))(var154
->class->vft
[COLOR_string__Object__to_s
]))(var154
) /* to_s on <var154:Array[Object]>*/;
6865 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var157
) /* add on <self:GlobalCompilerVisitor>*/;
6870 var159
= varonce158
;
6874 var162
= string__NativeString__to_s_with_length(var160
, var161
);
6876 varonce158
= var159
;
6878 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var159
) /* add on <self:GlobalCompilerVisitor>*/;
6879 CONTINUE_label
: (void)0;
6880 ((void (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var59
) /* next on <var59:Iterator[nullable Object]>*/;
6882 BREAK_label
: (void)0;
6883 var163
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
6884 var164
= ((short int (*)(val
*))(var163
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var163
) /* hardening on <var163:AbstractCompiler(GlobalCompiler)>*/;
6887 var166
= varonce165
;
6889 var167
= "default: /* Bug */";
6891 var169
= string__NativeString__to_s_with_length(var167
, var168
);
6893 varonce165
= var166
;
6895 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var166
) /* add on <self:GlobalCompilerVisitor>*/;
6896 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
6900 var171
= varonce170
;
6904 var174
= string__NativeString__to_s_with_length(var172
, var173
);
6906 varonce170
= var171
;
6908 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
6914 /* method global_compiler#GlobalCompilerVisitor#isset_attribute for (self: Object, MAttribute, RuntimeVariable): RuntimeVariable */
6915 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__isset_attribute(val
* self
, val
* p0
, val
* p1
) {
6916 val
* var
/* : RuntimeVariable */;
6917 val
* var1
/* : RuntimeVariable */;
6918 var1
= global_compiler__GlobalCompilerVisitor__isset_attribute(self
, p0
, p1
);
6923 /* method global_compiler#GlobalCompilerVisitor#read_attribute for (self: GlobalCompilerVisitor, MAttribute, RuntimeVariable): RuntimeVariable */
6924 val
* global_compiler__GlobalCompilerVisitor__read_attribute(val
* self
, val
* p0
, val
* p1
) {
6925 val
* var
/* : RuntimeVariable */;
6926 val
* var_a
/* var a: MAttribute */;
6927 val
* var_recv
/* var recv: RuntimeVariable */;
6928 val
* var1
/* : Array[MClassType] */;
6929 val
* var_types
/* var types: Array[MClassType] */;
6930 val
* var2
/* : MPropDef */;
6931 val
* var3
/* : nullable MType */;
6932 val
* var_ret
/* var ret: MType */;
6933 val
* var4
/* : MType */;
6934 val
* var5
/* : RuntimeVariable */;
6935 val
* var_res
/* var res: RuntimeVariable */;
6936 short int var6
/* : Bool */;
6937 static val
* varonce
;
6938 val
* var7
/* : String */;
6939 char* var8
/* : NativeString */;
6940 long var9
/* : Int */;
6941 val
* var10
/* : String */;
6942 val
* var11
/* : String */;
6943 static val
* varonce12
;
6944 val
* var13
/* : String */;
6945 char* var14
/* : NativeString */;
6946 long var15
/* : Int */;
6947 val
* var16
/* : String */;
6948 static val
* varonce17
;
6949 val
* var18
/* : String */;
6950 char* var19
/* : NativeString */;
6951 long var20
/* : Int */;
6952 val
* var21
/* : String */;
6953 val
* var22
/* : Array[Object] */;
6954 long var23
/* : Int */;
6955 val
* var24
/* : NativeArray[Object] */;
6956 val
* var25
/* : String */;
6957 static val
* varonce26
;
6958 val
* var27
/* : String */;
6959 char* var28
/* : NativeString */;
6960 long var29
/* : Int */;
6961 val
* var30
/* : String */;
6962 static val
* varonce31
;
6963 val
* var32
/* : String */;
6964 char* var33
/* : NativeString */;
6965 long var34
/* : Int */;
6966 val
* var35
/* : String */;
6967 val
* var36
/* : String */;
6968 static val
* varonce37
;
6969 val
* var38
/* : String */;
6970 char* var39
/* : NativeString */;
6971 long var40
/* : Int */;
6972 val
* var41
/* : String */;
6973 val
* var42
/* : Array[Object] */;
6974 long var43
/* : Int */;
6975 val
* var44
/* : NativeArray[Object] */;
6976 val
* var45
/* : String */;
6977 static val
* varonce46
;
6978 val
* var47
/* : String */;
6979 char* var48
/* : NativeString */;
6980 long var49
/* : Int */;
6981 val
* var50
/* : String */;
6982 static val
* varonce51
;
6983 val
* var52
/* : String */;
6984 char* var53
/* : NativeString */;
6985 long var54
/* : Int */;
6986 val
* var55
/* : String */;
6987 val
* var56
/* : Array[Object] */;
6988 long var57
/* : Int */;
6989 val
* var58
/* : NativeArray[Object] */;
6990 val
* var59
/* : String */;
6991 val
* var60
/* : nullable Object */;
6992 val
* var_last
/* var last: MClassType */;
6993 val
* var61
/* : Iterator[nullable Object] */;
6994 short int var62
/* : Bool */;
6995 val
* var63
/* : nullable Object */;
6996 val
* var_t
/* var t: MClassType */;
6997 short int var64
/* : Bool */;
6998 val
* var65
/* : AbstractCompiler */;
6999 short int var66
/* : Bool */;
7000 short int var67
/* : Bool */;
7001 short int var_
/* var : Bool */;
7002 short int var68
/* : Bool */;
7003 static val
* varonce69
;
7004 val
* var70
/* : String */;
7005 char* var71
/* : NativeString */;
7006 long var72
/* : Int */;
7007 val
* var73
/* : String */;
7008 val
* var74
/* : AbstractCompiler */;
7009 val
* var75
/* : String */;
7010 static val
* varonce76
;
7011 val
* var77
/* : String */;
7012 char* var78
/* : NativeString */;
7013 long var79
/* : Int */;
7014 val
* var80
/* : String */;
7015 val
* var81
/* : Array[Object] */;
7016 long var82
/* : Int */;
7017 val
* var83
/* : NativeArray[Object] */;
7018 val
* var84
/* : String */;
7019 static val
* varonce85
;
7020 val
* var86
/* : String */;
7021 char* var87
/* : NativeString */;
7022 long var88
/* : Int */;
7023 val
* var89
/* : String */;
7024 val
* var90
/* : AbstractCompiler */;
7025 val
* var91
/* : String */;
7026 static val
* varonce92
;
7027 val
* var93
/* : String */;
7028 char* var94
/* : NativeString */;
7029 long var95
/* : Int */;
7030 val
* var96
/* : String */;
7031 val
* var97
/* : Array[Object] */;
7032 long var98
/* : Int */;
7033 val
* var99
/* : NativeArray[Object] */;
7034 val
* var100
/* : String */;
7035 val
* var101
/* : RuntimeVariable */;
7036 val
* var_recv2
/* var recv2: RuntimeVariable */;
7037 val
* var102
/* : MPropDef */;
7038 val
* var103
/* : nullable MType */;
7039 val
* var_ta
/* var ta: MType */;
7040 val
* var104
/* : MType */;
7041 static val
* varonce105
;
7042 val
* var106
/* : String */;
7043 char* var107
/* : NativeString */;
7044 long var108
/* : Int */;
7045 val
* var109
/* : String */;
7046 val
* var110
/* : String */;
7047 static val
* varonce111
;
7048 val
* var112
/* : String */;
7049 char* var113
/* : NativeString */;
7050 long var114
/* : Int */;
7051 val
* var115
/* : String */;
7052 static val
* varonce116
;
7053 val
* var117
/* : String */;
7054 char* var118
/* : NativeString */;
7055 long var119
/* : Int */;
7056 val
* var120
/* : String */;
7057 val
* var121
/* : MPropDef */;
7058 val
* var122
/* : String */;
7059 val
* var123
/* : Array[Object] */;
7060 long var124
/* : Int */;
7061 val
* var125
/* : NativeArray[Object] */;
7062 val
* var126
/* : String */;
7063 val
* var127
/* : RuntimeVariable */;
7064 val
* var_res2
/* var res2: RuntimeVariable */;
7065 short int var128
/* : Bool */;
7066 short int var129
/* : Bool */;
7069 short int var130
/* : Bool */;
7070 short int var_131
/* var : Bool */;
7071 val
* var132
/* : AbstractCompiler */;
7072 val
* var133
/* : ModelBuilder */;
7073 val
* var134
/* : ToolContext */;
7074 val
* var135
/* : OptionBool */;
7075 val
* var136
/* : nullable Object */;
7076 short int var137
/* : Bool */;
7077 short int var138
/* : Bool */;
7078 val
* var139
/* : String */;
7079 static val
* varonce140
;
7080 val
* var141
/* : String */;
7081 char* var142
/* : NativeString */;
7082 long var143
/* : Int */;
7083 val
* var144
/* : String */;
7084 short int var145
/* : Bool */;
7085 static val
* varonce146
;
7086 val
* var147
/* : String */;
7087 char* var148
/* : NativeString */;
7088 long var149
/* : Int */;
7089 val
* var150
/* : String */;
7090 static val
* varonce151
;
7091 val
* var152
/* : String */;
7092 char* var153
/* : NativeString */;
7093 long var154
/* : Int */;
7094 val
* var155
/* : String */;
7095 val
* var156
/* : Array[Object] */;
7096 long var157
/* : Int */;
7097 val
* var158
/* : NativeArray[Object] */;
7098 val
* var159
/* : String */;
7099 static val
* varonce160
;
7100 val
* var161
/* : String */;
7101 char* var162
/* : NativeString */;
7102 long var163
/* : Int */;
7103 val
* var164
/* : String */;
7104 val
* var165
/* : String */;
7105 val
* var166
/* : Array[Object] */;
7106 long var167
/* : Int */;
7107 val
* var168
/* : NativeArray[Object] */;
7108 val
* var169
/* : String */;
7109 static val
* varonce170
;
7110 val
* var171
/* : String */;
7111 char* var172
/* : NativeString */;
7112 long var173
/* : Int */;
7113 val
* var174
/* : String */;
7114 static val
* varonce175
;
7115 val
* var176
/* : String */;
7116 char* var177
/* : NativeString */;
7117 long var178
/* : Int */;
7118 val
* var179
/* : String */;
7119 static val
* varonce180
;
7120 val
* var181
/* : String */;
7121 char* var182
/* : NativeString */;
7122 long var183
/* : Int */;
7123 val
* var184
/* : String */;
7124 val
* var185
/* : AbstractCompiler */;
7125 short int var186
/* : Bool */;
7126 static val
* varonce187
;
7127 val
* var188
/* : String */;
7128 char* var189
/* : NativeString */;
7129 long var190
/* : Int */;
7130 val
* var191
/* : String */;
7131 static val
* varonce192
;
7132 val
* var193
/* : String */;
7133 char* var194
/* : NativeString */;
7134 long var195
/* : Int */;
7135 val
* var196
/* : String */;
7138 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__check_recv_notnull
]))(self
, var_recv
) /* check_recv_notnull on <self:GlobalCompilerVisitor>*/;
7139 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_recv
) /* collect_types on <self:GlobalCompilerVisitor>*/;
7141 var2
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7142 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var2
) /* static_mtype on <var2:MPropDef(MAttributeDef)>*/;
7144 fprintf(stderr
, "Runtime error: %s", "Cast failed");
7145 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 615);
7149 var4
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ret
, var_recv
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
7151 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_ret
) /* new_var on <self:GlobalCompilerVisitor>*/;
7153 var6
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
7158 var8
= "/*BUG: no live types for ";
7160 var10
= string__NativeString__to_s_with_length(var8
, var9
);
7164 var11
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
7170 var16
= string__NativeString__to_s_with_length(var14
, var15
);
7179 var21
= string__NativeString__to_s_with_length(var19
, var20
);
7183 var22
= NEW_array__Array(&type_array__Arraykernel__Object
);
7184 { /* var22 = array_instance Array[Object] */
7186 var24
= NEW_array__NativeArray(var23
, &type_array__NativeArraykernel__Object
);
7187 ((struct instance_array__NativeArray
*)var24
)->values
[0] = (val
*) var7
;
7188 ((struct instance_array__NativeArray
*)var24
)->values
[1] = (val
*) var11
;
7189 ((struct instance_array__NativeArray
*)var24
)->values
[2] = (val
*) var13
;
7190 ((struct instance_array__NativeArray
*)var24
)->values
[3] = (val
*) var_a
;
7191 ((struct instance_array__NativeArray
*)var24
)->values
[4] = (val
*) var18
;
7192 ((void (*)(val
*, val
*, long))(var22
->class->vft
[COLOR_array__Array__with_native
]))(var22
, var24
, var23
) /* with_native on <var22:Array[Object]>*/;
7194 var25
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_string__Object__to_s
]))(var22
) /* to_s on <var22:Array[Object]>*/;
7195 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var25
) /* add on <self:GlobalCompilerVisitor>*/;
7196 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
7206 var30
= string__NativeString__to_s_with_length(var28
, var29
);
7215 var35
= string__NativeString__to_s_with_length(var33
, var34
);
7219 var36
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
7225 var41
= string__NativeString__to_s_with_length(var39
, var40
);
7229 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
7230 { /* var42 = array_instance Array[Object] */
7232 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
7233 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var27
;
7234 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_a
;
7235 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var32
;
7236 ((struct instance_array__NativeArray
*)var44
)->values
[3] = (val
*) var36
;
7237 ((struct instance_array__NativeArray
*)var44
)->values
[4] = (val
*) var38
;
7238 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
7240 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
7241 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var45
) /* add on <self:GlobalCompilerVisitor>*/;
7247 var50
= string__NativeString__to_s_with_length(var48
, var49
);
7254 var53
= "->classid) {";
7256 var55
= string__NativeString__to_s_with_length(var53
, var54
);
7260 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
7261 { /* var56 = array_instance Array[Object] */
7263 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
7264 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var47
;
7265 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var_recv
;
7266 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var52
;
7267 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
7269 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
7270 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var59
) /* add on <self:GlobalCompilerVisitor>*/;
7271 var60
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
7273 var61
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
7275 var62
= ((short int (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var61
) /* is_ok on <var61:Iterator[nullable Object]>*/;
7277 var63
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var61
) /* item on <var61:Iterator[nullable Object]>*/;
7279 var65
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7280 var66
= ((short int (*)(val
*))(var65
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var65
) /* hardening on <var65:AbstractCompiler(GlobalCompiler)>*/;
7284 var68
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
7293 var71
= "default: /*";
7295 var73
= string__NativeString__to_s_with_length(var71
, var72
);
7299 var74
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7300 var75
= ((val
* (*)(val
*, val
*))(var74
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var74
, var_t
) /* classid on <var74:AbstractCompiler(GlobalCompiler)>*/;
7306 var80
= string__NativeString__to_s_with_length(var78
, var79
);
7310 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
7311 { /* var81 = array_instance Array[Object] */
7313 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
7314 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var70
;
7315 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var75
;
7316 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var77
;
7317 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
7319 var84
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
7320 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var84
) /* add on <self:GlobalCompilerVisitor>*/;
7327 var89
= string__NativeString__to_s_with_length(var87
, var88
);
7331 var90
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7332 var91
= ((val
* (*)(val
*, val
*))(var90
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var90
, var_t
) /* classid on <var90:AbstractCompiler(GlobalCompiler)>*/;
7338 var96
= string__NativeString__to_s_with_length(var94
, var95
);
7342 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
7343 { /* var97 = array_instance Array[Object] */
7345 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
7346 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var86
;
7347 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var91
;
7348 ((struct instance_array__NativeArray
*)var99
)->values
[2] = (val
*) var93
;
7349 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
7351 var100
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
7352 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var100
) /* add on <self:GlobalCompilerVisitor>*/;
7354 var101
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var_recv
, var_t
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
7356 var102
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7357 var103
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var102
) /* static_mtype on <var102:MPropDef(MAttributeDef)>*/;
7358 if (var103
== NULL
) {
7359 fprintf(stderr
, "Runtime error: %s", "Cast failed");
7360 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 634);
7364 var104
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ta
, var_recv2
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
7367 var106
= varonce105
;
7369 var107
= "((struct ";
7371 var109
= string__NativeString__to_s_with_length(var107
, var108
);
7373 varonce105
= var106
;
7375 var110
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_t
) /* c_name on <var_t:MClassType>*/;
7377 var112
= varonce111
;
7381 var115
= string__NativeString__to_s_with_length(var113
, var114
);
7383 varonce111
= var112
;
7386 var117
= varonce116
;
7390 var120
= string__NativeString__to_s_with_length(var118
, var119
);
7392 varonce116
= var117
;
7394 var121
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7395 var122
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var121
) /* c_name on <var121:MPropDef(MAttributeDef)>*/;
7396 var123
= NEW_array__Array(&type_array__Arraykernel__Object
);
7397 { /* var123 = array_instance Array[Object] */
7399 var125
= NEW_array__NativeArray(var124
, &type_array__NativeArraykernel__Object
);
7400 ((struct instance_array__NativeArray
*)var125
)->values
[0] = (val
*) var106
;
7401 ((struct instance_array__NativeArray
*)var125
)->values
[1] = (val
*) var110
;
7402 ((struct instance_array__NativeArray
*)var125
)->values
[2] = (val
*) var112
;
7403 ((struct instance_array__NativeArray
*)var125
)->values
[3] = (val
*) var_recv
;
7404 ((struct instance_array__NativeArray
*)var125
)->values
[4] = (val
*) var117
;
7405 ((struct instance_array__NativeArray
*)var125
)->values
[5] = (val
*) var122
;
7406 ((void (*)(val
*, val
*, long))(var123
->class->vft
[COLOR_array__Array__with_native
]))(var123
, var125
, var124
) /* with_native on <var123:Array[Object]>*/;
7408 var126
= ((val
* (*)(val
*))(var123
->class->vft
[COLOR_string__Object__to_s
]))(var123
) /* to_s on <var123:Array[Object]>*/;
7409 var127
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var126
, var_ta
) /* new_expr on <self:GlobalCompilerVisitor>*/;
7411 /* <var_ta:MType> isa MNullableType */
7412 cltype
= type_model__MNullableType
.color
;
7413 idtype
= type_model__MNullableType
.id
;
7414 if(cltype
>= var_ta
->type
->table_size
) {
7417 var129
= var_ta
->type
->type_table
[cltype
] == idtype
;
7422 var132
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7423 var133
= ((val
* (*)(val
*))(var132
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var132
) /* modelbuilder on <var132:AbstractCompiler(GlobalCompiler)>*/;
7424 var134
= ((val
* (*)(val
*))(var133
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var133
) /* toolcontext on <var133:ModelBuilder>*/;
7425 var135
= ((val
* (*)(val
*))(var134
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_no_check_other
]))(var134
) /* opt_no_check_other on <var134:ToolContext>*/;
7426 var136
= ((val
* (*)(val
*))(var135
->class->vft
[COLOR_opts__Option__value
]))(var135
) /* value on <var135:OptionBool>*/;
7427 var137
= ((struct instance_kernel__Bool
*)var136
)->value
; /* autounbox from nullable Object to Bool */;
7434 var139
= ((val
* (*)(val
*))(var_ta
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_ta
) /* ctype on <var_ta:MType>*/;
7436 var141
= varonce140
;
7440 var144
= string__NativeString__to_s_with_length(var142
, var143
);
7442 varonce140
= var141
;
7444 var145
= ((short int (*)(val
*, val
*))(var139
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var139
, var141
) /* == on <var139:String>*/;
7447 var147
= varonce146
;
7451 var150
= string__NativeString__to_s_with_length(var148
, var149
);
7453 varonce146
= var147
;
7456 var152
= varonce151
;
7458 var153
= " == NULL) {";
7460 var155
= string__NativeString__to_s_with_length(var153
, var154
);
7462 varonce151
= var152
;
7464 var156
= NEW_array__Array(&type_array__Arraykernel__Object
);
7465 { /* var156 = array_instance Array[Object] */
7467 var158
= NEW_array__NativeArray(var157
, &type_array__NativeArraykernel__Object
);
7468 ((struct instance_array__NativeArray
*)var158
)->values
[0] = (val
*) var147
;
7469 ((struct instance_array__NativeArray
*)var158
)->values
[1] = (val
*) var_res2
;
7470 ((struct instance_array__NativeArray
*)var158
)->values
[2] = (val
*) var152
;
7471 ((void (*)(val
*, val
*, long))(var156
->class->vft
[COLOR_array__Array__with_native
]))(var156
, var158
, var157
) /* with_native on <var156:Array[Object]>*/;
7473 var159
= ((val
* (*)(val
*))(var156
->class->vft
[COLOR_string__Object__to_s
]))(var156
) /* to_s on <var156:Array[Object]>*/;
7474 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var159
) /* add on <self:GlobalCompilerVisitor>*/;
7476 var161
= varonce160
;
7478 var162
= "Uninitialized attribute ";
7480 var164
= string__NativeString__to_s_with_length(var162
, var163
);
7482 varonce160
= var161
;
7484 var165
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__name
]))(var_a
) /* name on <var_a:MAttribute>*/;
7485 var166
= NEW_array__Array(&type_array__Arraykernel__Object
);
7486 { /* var166 = array_instance Array[Object] */
7488 var168
= NEW_array__NativeArray(var167
, &type_array__NativeArraykernel__Object
);
7489 ((struct instance_array__NativeArray
*)var168
)->values
[0] = (val
*) var161
;
7490 ((struct instance_array__NativeArray
*)var168
)->values
[1] = (val
*) var165
;
7491 ((void (*)(val
*, val
*, long))(var166
->class->vft
[COLOR_array__Array__with_native
]))(var166
, var168
, var167
) /* with_native on <var166:Array[Object]>*/;
7493 var169
= ((val
* (*)(val
*))(var166
->class->vft
[COLOR_string__Object__to_s
]))(var166
) /* to_s on <var166:Array[Object]>*/;
7494 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(self
, var169
) /* add_abort on <self:GlobalCompilerVisitor>*/;
7496 var171
= varonce170
;
7500 var174
= string__NativeString__to_s_with_length(var172
, var173
);
7502 varonce170
= var171
;
7504 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var171
) /* add on <self:GlobalCompilerVisitor>*/;
7507 var176
= varonce175
;
7509 var177
= "/*NOTYET isset on primitive attributes*/";
7511 var179
= string__NativeString__to_s_with_length(var177
, var178
);
7513 varonce175
= var176
;
7515 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var176
) /* add on <self:GlobalCompilerVisitor>*/;
7519 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(self
, var_res
, var_res2
) /* assign on <self:GlobalCompilerVisitor>*/;
7521 var181
= varonce180
;
7525 var184
= string__NativeString__to_s_with_length(var182
, var183
);
7527 varonce180
= var181
;
7529 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var181
) /* add on <self:GlobalCompilerVisitor>*/;
7530 CONTINUE_label
: (void)0;
7531 ((void (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var61
) /* next on <var61:Iterator[nullable Object]>*/;
7533 BREAK_label
: (void)0;
7534 var185
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7535 var186
= ((short int (*)(val
*))(var185
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var185
) /* hardening on <var185:AbstractCompiler(GlobalCompiler)>*/;
7538 var188
= varonce187
;
7540 var189
= "default: /* Bug */";
7542 var191
= string__NativeString__to_s_with_length(var189
, var190
);
7544 varonce187
= var188
;
7546 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var188
) /* add on <self:GlobalCompilerVisitor>*/;
7547 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
7551 var193
= varonce192
;
7555 var196
= string__NativeString__to_s_with_length(var194
, var195
);
7557 varonce192
= var193
;
7559 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var193
) /* add on <self:GlobalCompilerVisitor>*/;
7565 /* method global_compiler#GlobalCompilerVisitor#read_attribute for (self: Object, MAttribute, RuntimeVariable): RuntimeVariable */
7566 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__read_attribute(val
* self
, val
* p0
, val
* p1
) {
7567 val
* var
/* : RuntimeVariable */;
7568 val
* var1
/* : RuntimeVariable */;
7569 var1
= global_compiler__GlobalCompilerVisitor__read_attribute(self
, p0
, p1
);
7574 /* method global_compiler#GlobalCompilerVisitor#write_attribute for (self: GlobalCompilerVisitor, MAttribute, RuntimeVariable, RuntimeVariable) */
7575 void global_compiler__GlobalCompilerVisitor__write_attribute(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7576 val
* var_a
/* var a: MAttribute */;
7577 val
* var_recv
/* var recv: RuntimeVariable */;
7578 val
* var_value
/* var value: RuntimeVariable */;
7579 val
* var
/* : Array[MClassType] */;
7580 val
* var_types
/* var types: Array[MClassType] */;
7581 short int var1
/* : Bool */;
7582 static val
* varonce
;
7583 val
* var2
/* : String */;
7584 char* var3
/* : NativeString */;
7585 long var4
/* : Int */;
7586 val
* var5
/* : String */;
7587 val
* var6
/* : String */;
7588 static val
* varonce7
;
7589 val
* var8
/* : String */;
7590 char* var9
/* : NativeString */;
7591 long var10
/* : Int */;
7592 val
* var11
/* : String */;
7593 static val
* varonce12
;
7594 val
* var13
/* : String */;
7595 char* var14
/* : NativeString */;
7596 long var15
/* : Int */;
7597 val
* var16
/* : String */;
7598 val
* var17
/* : Array[Object] */;
7599 long var18
/* : Int */;
7600 val
* var19
/* : NativeArray[Object] */;
7601 val
* var20
/* : String */;
7602 static val
* varonce21
;
7603 val
* var22
/* : String */;
7604 char* var23
/* : NativeString */;
7605 long var24
/* : Int */;
7606 val
* var25
/* : String */;
7607 static val
* varonce26
;
7608 val
* var27
/* : String */;
7609 char* var28
/* : NativeString */;
7610 long var29
/* : Int */;
7611 val
* var30
/* : String */;
7612 val
* var31
/* : String */;
7613 static val
* varonce32
;
7614 val
* var33
/* : String */;
7615 char* var34
/* : NativeString */;
7616 long var35
/* : Int */;
7617 val
* var36
/* : String */;
7618 val
* var37
/* : Array[Object] */;
7619 long var38
/* : Int */;
7620 val
* var39
/* : NativeArray[Object] */;
7621 val
* var40
/* : String */;
7622 static val
* varonce41
;
7623 val
* var42
/* : String */;
7624 char* var43
/* : NativeString */;
7625 long var44
/* : Int */;
7626 val
* var45
/* : String */;
7627 static val
* varonce46
;
7628 val
* var47
/* : String */;
7629 char* var48
/* : NativeString */;
7630 long var49
/* : Int */;
7631 val
* var50
/* : String */;
7632 val
* var51
/* : Array[Object] */;
7633 long var52
/* : Int */;
7634 val
* var53
/* : NativeArray[Object] */;
7635 val
* var54
/* : String */;
7636 val
* var55
/* : nullable Object */;
7637 val
* var_last
/* var last: MClassType */;
7638 val
* var56
/* : Iterator[nullable Object] */;
7639 short int var57
/* : Bool */;
7640 val
* var58
/* : nullable Object */;
7641 val
* var_t
/* var t: MClassType */;
7642 short int var59
/* : Bool */;
7643 val
* var60
/* : AbstractCompiler */;
7644 short int var61
/* : Bool */;
7645 short int var62
/* : Bool */;
7646 short int var_
/* var : Bool */;
7647 short int var63
/* : Bool */;
7648 static val
* varonce64
;
7649 val
* var65
/* : String */;
7650 char* var66
/* : NativeString */;
7651 long var67
/* : Int */;
7652 val
* var68
/* : String */;
7653 val
* var69
/* : AbstractCompiler */;
7654 val
* var70
/* : String */;
7655 static val
* varonce71
;
7656 val
* var72
/* : String */;
7657 char* var73
/* : NativeString */;
7658 long var74
/* : Int */;
7659 val
* var75
/* : String */;
7660 val
* var76
/* : Array[Object] */;
7661 long var77
/* : Int */;
7662 val
* var78
/* : NativeArray[Object] */;
7663 val
* var79
/* : String */;
7664 static val
* varonce80
;
7665 val
* var81
/* : String */;
7666 char* var82
/* : NativeString */;
7667 long var83
/* : Int */;
7668 val
* var84
/* : String */;
7669 val
* var85
/* : AbstractCompiler */;
7670 val
* var86
/* : String */;
7671 static val
* varonce87
;
7672 val
* var88
/* : String */;
7673 char* var89
/* : NativeString */;
7674 long var90
/* : Int */;
7675 val
* var91
/* : String */;
7676 val
* var92
/* : Array[Object] */;
7677 long var93
/* : Int */;
7678 val
* var94
/* : NativeArray[Object] */;
7679 val
* var95
/* : String */;
7680 val
* var96
/* : RuntimeVariable */;
7681 val
* var_recv2
/* var recv2: RuntimeVariable */;
7682 val
* var97
/* : MPropDef */;
7683 val
* var98
/* : nullable MType */;
7684 val
* var_ta
/* var ta: MType */;
7685 val
* var99
/* : MType */;
7686 static val
* varonce100
;
7687 val
* var101
/* : String */;
7688 char* var102
/* : NativeString */;
7689 long var103
/* : Int */;
7690 val
* var104
/* : String */;
7691 val
* var105
/* : String */;
7692 static val
* varonce106
;
7693 val
* var107
/* : String */;
7694 char* var108
/* : NativeString */;
7695 long var109
/* : Int */;
7696 val
* var110
/* : String */;
7697 static val
* varonce111
;
7698 val
* var112
/* : String */;
7699 char* var113
/* : NativeString */;
7700 long var114
/* : Int */;
7701 val
* var115
/* : String */;
7702 val
* var116
/* : MPropDef */;
7703 val
* var117
/* : String */;
7704 static val
* varonce118
;
7705 val
* var119
/* : String */;
7706 char* var120
/* : NativeString */;
7707 long var121
/* : Int */;
7708 val
* var122
/* : String */;
7709 val
* var123
/* : RuntimeVariable */;
7710 static val
* varonce124
;
7711 val
* var125
/* : String */;
7712 char* var126
/* : NativeString */;
7713 long var127
/* : Int */;
7714 val
* var128
/* : String */;
7715 val
* var129
/* : Array[Object] */;
7716 long var130
/* : Int */;
7717 val
* var131
/* : NativeArray[Object] */;
7718 val
* var132
/* : String */;
7719 static val
* varonce133
;
7720 val
* var134
/* : String */;
7721 char* var135
/* : NativeString */;
7722 long var136
/* : Int */;
7723 val
* var137
/* : String */;
7724 val
* var138
/* : AbstractCompiler */;
7725 short int var139
/* : Bool */;
7726 static val
* varonce140
;
7727 val
* var141
/* : String */;
7728 char* var142
/* : NativeString */;
7729 long var143
/* : Int */;
7730 val
* var144
/* : String */;
7731 static val
* varonce145
;
7732 val
* var146
/* : String */;
7733 char* var147
/* : NativeString */;
7734 long var148
/* : Int */;
7735 val
* var149
/* : String */;
7739 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__check_recv_notnull
]))(self
, var_recv
) /* check_recv_notnull on <self:GlobalCompilerVisitor>*/;
7740 var
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_recv
) /* collect_types on <self:GlobalCompilerVisitor>*/;
7742 var1
= ((short int (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_types
) /* is_empty on <var_types:Array[MClassType]>*/;
7747 var3
= "/*BUG: no live types for ";
7749 var5
= string__NativeString__to_s_with_length(var3
, var4
);
7753 var6
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
7759 var11
= string__NativeString__to_s_with_length(var9
, var10
);
7768 var16
= string__NativeString__to_s_with_length(var14
, var15
);
7772 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
7773 { /* var17 = array_instance Array[Object] */
7775 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
7776 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var2
;
7777 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var6
;
7778 ((struct instance_array__NativeArray
*)var19
)->values
[2] = (val
*) var8
;
7779 ((struct instance_array__NativeArray
*)var19
)->values
[3] = (val
*) var_a
;
7780 ((struct instance_array__NativeArray
*)var19
)->values
[4] = (val
*) var13
;
7781 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
7783 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
7784 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var20
) /* add on <self:GlobalCompilerVisitor>*/;
7785 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
7792 var23
= "/* write ";
7794 var25
= string__NativeString__to_s_with_length(var23
, var24
);
7803 var30
= string__NativeString__to_s_with_length(var28
, var29
);
7807 var31
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_string__Object__inspect
]))(var_recv
) /* inspect on <var_recv:RuntimeVariable>*/;
7813 var36
= string__NativeString__to_s_with_length(var34
, var35
);
7817 var37
= NEW_array__Array(&type_array__Arraykernel__Object
);
7818 { /* var37 = array_instance Array[Object] */
7820 var39
= NEW_array__NativeArray(var38
, &type_array__NativeArraykernel__Object
);
7821 ((struct instance_array__NativeArray
*)var39
)->values
[0] = (val
*) var22
;
7822 ((struct instance_array__NativeArray
*)var39
)->values
[1] = (val
*) var_a
;
7823 ((struct instance_array__NativeArray
*)var39
)->values
[2] = (val
*) var27
;
7824 ((struct instance_array__NativeArray
*)var39
)->values
[3] = (val
*) var31
;
7825 ((struct instance_array__NativeArray
*)var39
)->values
[4] = (val
*) var33
;
7826 ((void (*)(val
*, val
*, long))(var37
->class->vft
[COLOR_array__Array__with_native
]))(var37
, var39
, var38
) /* with_native on <var37:Array[Object]>*/;
7828 var40
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_string__Object__to_s
]))(var37
) /* to_s on <var37:Array[Object]>*/;
7829 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var40
) /* add on <self:GlobalCompilerVisitor>*/;
7835 var45
= string__NativeString__to_s_with_length(var43
, var44
);
7842 var48
= "->classid) {";
7844 var50
= string__NativeString__to_s_with_length(var48
, var49
);
7848 var51
= NEW_array__Array(&type_array__Arraykernel__Object
);
7849 { /* var51 = array_instance Array[Object] */
7851 var53
= NEW_array__NativeArray(var52
, &type_array__NativeArraykernel__Object
);
7852 ((struct instance_array__NativeArray
*)var53
)->values
[0] = (val
*) var42
;
7853 ((struct instance_array__NativeArray
*)var53
)->values
[1] = (val
*) var_recv
;
7854 ((struct instance_array__NativeArray
*)var53
)->values
[2] = (val
*) var47
;
7855 ((void (*)(val
*, val
*, long))(var51
->class->vft
[COLOR_array__Array__with_native
]))(var51
, var53
, var52
) /* with_native on <var51:Array[Object]>*/;
7857 var54
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_string__Object__to_s
]))(var51
) /* to_s on <var51:Array[Object]>*/;
7858 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var54
) /* add on <self:GlobalCompilerVisitor>*/;
7859 var55
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_types
) /* last on <var_types:Array[MClassType]>*/;
7861 var56
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
7863 var57
= ((short int (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var56
) /* is_ok on <var56:Iterator[nullable Object]>*/;
7865 var58
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var56
) /* item on <var56:Iterator[nullable Object]>*/;
7867 var60
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7868 var61
= ((short int (*)(val
*))(var60
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var60
) /* hardening on <var60:AbstractCompiler(GlobalCompiler)>*/;
7872 var63
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_last
) /* == on <var_t:MClassType>*/;
7881 var66
= "default: /*";
7883 var68
= string__NativeString__to_s_with_length(var66
, var67
);
7887 var69
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7888 var70
= ((val
* (*)(val
*, val
*))(var69
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var69
, var_t
) /* classid on <var69:AbstractCompiler(GlobalCompiler)>*/;
7894 var75
= string__NativeString__to_s_with_length(var73
, var74
);
7898 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
7899 { /* var76 = array_instance Array[Object] */
7901 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
7902 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var65
;
7903 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var70
;
7904 ((struct instance_array__NativeArray
*)var78
)->values
[2] = (val
*) var72
;
7905 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
7907 var79
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
7908 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var79
) /* add on <self:GlobalCompilerVisitor>*/;
7915 var84
= string__NativeString__to_s_with_length(var82
, var83
);
7919 var85
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
7920 var86
= ((val
* (*)(val
*, val
*))(var85
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var85
, var_t
) /* classid on <var85:AbstractCompiler(GlobalCompiler)>*/;
7926 var91
= string__NativeString__to_s_with_length(var89
, var90
);
7930 var92
= NEW_array__Array(&type_array__Arraykernel__Object
);
7931 { /* var92 = array_instance Array[Object] */
7933 var94
= NEW_array__NativeArray(var93
, &type_array__NativeArraykernel__Object
);
7934 ((struct instance_array__NativeArray
*)var94
)->values
[0] = (val
*) var81
;
7935 ((struct instance_array__NativeArray
*)var94
)->values
[1] = (val
*) var86
;
7936 ((struct instance_array__NativeArray
*)var94
)->values
[2] = (val
*) var88
;
7937 ((void (*)(val
*, val
*, long))(var92
->class->vft
[COLOR_array__Array__with_native
]))(var92
, var94
, var93
) /* with_native on <var92:Array[Object]>*/;
7939 var95
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_string__Object__to_s
]))(var92
) /* to_s on <var92:Array[Object]>*/;
7940 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var95
) /* add on <self:GlobalCompilerVisitor>*/;
7942 var96
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt
]))(self
, var_recv
, var_t
) /* autoadapt on <self:GlobalCompilerVisitor>*/;
7944 var97
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7945 var98
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var97
) /* static_mtype on <var97:MPropDef(MAttributeDef)>*/;
7946 if (var98
== NULL
) {
7947 fprintf(stderr
, "Runtime error: %s", "Cast failed");
7948 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 679);
7952 var99
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for
]))(self
, var_ta
, var_recv2
) /* resolve_for on <self:GlobalCompilerVisitor>*/;
7955 var101
= varonce100
;
7957 var102
= "((struct ";
7959 var104
= string__NativeString__to_s_with_length(var102
, var103
);
7961 varonce100
= var101
;
7963 var105
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_t
) /* c_name on <var_t:MClassType>*/;
7965 var107
= varonce106
;
7969 var110
= string__NativeString__to_s_with_length(var108
, var109
);
7971 varonce106
= var107
;
7974 var112
= varonce111
;
7978 var115
= string__NativeString__to_s_with_length(var113
, var114
);
7980 varonce111
= var112
;
7982 var116
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MProperty__intro
]))(var_a
) /* intro on <var_a:MAttribute>*/;
7983 var117
= ((val
* (*)(val
*))(var116
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var116
) /* c_name on <var116:MPropDef(MAttributeDef)>*/;
7985 var119
= varonce118
;
7989 var122
= string__NativeString__to_s_with_length(var120
, var121
);
7991 varonce118
= var119
;
7993 var123
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var_value
, var_ta
) /* autobox on <self:GlobalCompilerVisitor>*/;
7995 var125
= varonce124
;
7999 var128
= string__NativeString__to_s_with_length(var126
, var127
);
8001 varonce124
= var125
;
8003 var129
= NEW_array__Array(&type_array__Arraykernel__Object
);
8004 { /* var129 = array_instance Array[Object] */
8006 var131
= NEW_array__NativeArray(var130
, &type_array__NativeArraykernel__Object
);
8007 ((struct instance_array__NativeArray
*)var131
)->values
[0] = (val
*) var101
;
8008 ((struct instance_array__NativeArray
*)var131
)->values
[1] = (val
*) var105
;
8009 ((struct instance_array__NativeArray
*)var131
)->values
[2] = (val
*) var107
;
8010 ((struct instance_array__NativeArray
*)var131
)->values
[3] = (val
*) var_recv
;
8011 ((struct instance_array__NativeArray
*)var131
)->values
[4] = (val
*) var112
;
8012 ((struct instance_array__NativeArray
*)var131
)->values
[5] = (val
*) var117
;
8013 ((struct instance_array__NativeArray
*)var131
)->values
[6] = (val
*) var119
;
8014 ((struct instance_array__NativeArray
*)var131
)->values
[7] = (val
*) var123
;
8015 ((struct instance_array__NativeArray
*)var131
)->values
[8] = (val
*) var125
;
8016 ((void (*)(val
*, val
*, long))(var129
->class->vft
[COLOR_array__Array__with_native
]))(var129
, var131
, var130
) /* with_native on <var129:Array[Object]>*/;
8018 var132
= ((val
* (*)(val
*))(var129
->class->vft
[COLOR_string__Object__to_s
]))(var129
) /* to_s on <var129:Array[Object]>*/;
8019 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var132
) /* add on <self:GlobalCompilerVisitor>*/;
8021 var134
= varonce133
;
8025 var137
= string__NativeString__to_s_with_length(var135
, var136
);
8027 varonce133
= var134
;
8029 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var134
) /* add on <self:GlobalCompilerVisitor>*/;
8030 CONTINUE_label
: (void)0;
8031 ((void (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var56
) /* next on <var56:Iterator[nullable Object]>*/;
8033 BREAK_label
: (void)0;
8034 var138
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8035 var139
= ((short int (*)(val
*))(var138
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__hardening
]))(var138
) /* hardening on <var138:AbstractCompiler(GlobalCompiler)>*/;
8038 var141
= varonce140
;
8040 var142
= "default: /* Bug*/";
8042 var144
= string__NativeString__to_s_with_length(var142
, var143
);
8044 varonce140
= var141
;
8046 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var141
) /* add on <self:GlobalCompilerVisitor>*/;
8047 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__bugtype
]))(self
, var_recv
) /* bugtype on <self:GlobalCompilerVisitor>*/;
8051 var146
= varonce145
;
8055 var149
= string__NativeString__to_s_with_length(var147
, var148
);
8057 varonce145
= var146
;
8059 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var146
) /* add on <self:GlobalCompilerVisitor>*/;
8062 /* method global_compiler#GlobalCompilerVisitor#write_attribute for (self: Object, MAttribute, RuntimeVariable, RuntimeVariable) */
8063 void VIRTUAL_global_compiler__GlobalCompilerVisitor__write_attribute(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8064 global_compiler__GlobalCompilerVisitor__write_attribute(self
, p0
, p1
, p2
);
8067 /* method global_compiler#GlobalCompilerVisitor#init_instance for (self: GlobalCompilerVisitor, MClassType): RuntimeVariable */
8068 val
* global_compiler__GlobalCompilerVisitor__init_instance(val
* self
, val
* p0
) {
8069 val
* var
/* : RuntimeVariable */;
8070 val
* var_mtype
/* var mtype: MClassType */;
8071 val
* var1
/* : MType */;
8072 short int var2
/* : Bool */;
8075 const char* var_class_name
;
8076 val
* var3
/* : AbstractCompiler */;
8077 val
* var4
/* : RapidTypeAnalysis */;
8078 val
* var5
/* : HashSet[MClassType] */;
8079 short int var6
/* : Bool */;
8080 short int var7
/* : Bool */;
8081 static val
* varonce
;
8082 val
* var8
/* : String */;
8083 char* var9
/* : NativeString */;
8084 long var10
/* : Int */;
8085 val
* var11
/* : String */;
8086 static val
* varonce12
;
8087 val
* var13
/* : String */;
8088 char* var14
/* : NativeString */;
8089 long var15
/* : Int */;
8090 val
* var16
/* : String */;
8091 val
* var17
/* : Array[Object] */;
8092 long var18
/* : Int */;
8093 val
* var19
/* : NativeArray[Object] */;
8094 val
* var20
/* : String */;
8095 static val
* varonce21
;
8096 val
* var22
/* : String */;
8097 char* var23
/* : NativeString */;
8098 long var24
/* : Int */;
8099 val
* var25
/* : String */;
8100 val
* var26
/* : String */;
8101 static val
* varonce27
;
8102 val
* var28
/* : String */;
8103 char* var29
/* : NativeString */;
8104 long var30
/* : Int */;
8105 val
* var31
/* : String */;
8106 val
* var32
/* : Array[Object] */;
8107 long var33
/* : Int */;
8108 val
* var34
/* : NativeArray[Object] */;
8109 val
* var35
/* : String */;
8110 val
* var36
/* : RuntimeVariable */;
8111 val
* var_res
/* var res: RuntimeVariable */;
8112 short int var37
/* : Bool */;
8114 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__anchor
]))(self
, var_mtype
) /* anchor on <self:GlobalCompilerVisitor>*/;
8115 /* <var1:MType> isa MClassType */
8116 cltype
= type_model__MClassType
.color
;
8117 idtype
= type_model__MClassType
.id
;
8118 if(cltype
>= var1
->type
->table_size
) {
8121 var2
= var1
->type
->type_table
[cltype
] == idtype
;
8124 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
8125 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
8126 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 693);
8130 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8131 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var3
) /* runtime_type_analysis on <var3:AbstractCompiler(GlobalCompiler)>*/;
8132 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var4
) /* live_types on <var4:RapidTypeAnalysis>*/;
8133 var6
= ((short int (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var5
, var_mtype
) /* has on <var5:HashSet[MClassType]>*/;
8141 var11
= string__NativeString__to_s_with_length(var9
, var10
);
8148 var14
= " was detected dead";
8150 var16
= string__NativeString__to_s_with_length(var14
, var15
);
8154 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
8155 { /* var17 = array_instance Array[Object] */
8157 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
8158 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var8
;
8159 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var_mtype
;
8160 ((struct instance_array__NativeArray
*)var19
)->values
[2] = (val
*) var13
;
8161 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
8163 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
8164 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__debug
]))(self
, var20
) /* debug on <self:GlobalCompilerVisitor>*/;
8172 var25
= string__NativeString__to_s_with_length(var23
, var24
);
8176 var26
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
8182 var31
= string__NativeString__to_s_with_length(var29
, var30
);
8186 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
8187 { /* var32 = array_instance Array[Object] */
8189 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
8190 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var22
;
8191 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var26
;
8192 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var28
;
8193 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
8195 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
8196 var36
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var35
, var_mtype
) /* new_expr on <self:GlobalCompilerVisitor>*/;
8199 ((void (*)(val
*, short int))(var_res
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res
, var37
) /* is_exact= on <var_res:RuntimeVariable>*/;
8205 /* method global_compiler#GlobalCompilerVisitor#init_instance for (self: Object, MClassType): RuntimeVariable */
8206 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__init_instance(val
* self
, val
* p0
) {
8207 val
* var
/* : RuntimeVariable */;
8208 val
* var1
/* : RuntimeVariable */;
8209 var1
= global_compiler__GlobalCompilerVisitor__init_instance(self
, p0
);
8214 /* method global_compiler#GlobalCompilerVisitor#type_test for (self: GlobalCompilerVisitor, RuntimeVariable, MType, String): RuntimeVariable */
8215 val
* global_compiler__GlobalCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8216 val
* var
/* : RuntimeVariable */;
8217 val
* var_value
/* var value: RuntimeVariable */;
8218 val
* var_mtype
/* var mtype: MType */;
8219 val
* var_tag
/* var tag: String */;
8220 val
* var1
/* : MType */;
8221 val
* var2
/* : AbstractCompiler */;
8222 val
* var3
/* : RapidTypeAnalysis */;
8223 val
* var4
/* : HashSet[MType] */;
8224 short int var5
/* : Bool */;
8225 short int var6
/* : Bool */;
8226 static val
* varonce
;
8227 val
* var7
/* : String */;
8228 char* var8
/* : NativeString */;
8229 long var9
/* : Int */;
8230 val
* var10
/* : String */;
8231 static val
* varonce11
;
8232 val
* var12
/* : String */;
8233 char* var13
/* : NativeString */;
8234 long var14
/* : Int */;
8235 val
* var15
/* : String */;
8236 val
* var16
/* : Array[Object] */;
8237 long var17
/* : Int */;
8238 val
* var18
/* : NativeArray[Object] */;
8239 val
* var19
/* : String */;
8240 val
* var20
/* : Array[MClassType] */;
8241 val
* var_types
/* var types: Array[MClassType] */;
8242 val
* var21
/* : MClassType */;
8243 val
* var22
/* : RuntimeVariable */;
8244 val
* var_res
/* var res: RuntimeVariable */;
8245 static val
* varonce23
;
8246 val
* var24
/* : String */;
8247 char* var25
/* : NativeString */;
8248 long var26
/* : Int */;
8249 val
* var27
/* : String */;
8250 static val
* varonce28
;
8251 val
* var29
/* : String */;
8252 char* var30
/* : NativeString */;
8253 long var31
/* : Int */;
8254 val
* var32
/* : String */;
8255 val
* var33
/* : String */;
8256 static val
* varonce34
;
8257 val
* var35
/* : String */;
8258 char* var36
/* : NativeString */;
8259 long var37
/* : Int */;
8260 val
* var38
/* : String */;
8261 val
* var39
/* : Array[Object] */;
8262 long var40
/* : Int */;
8263 val
* var41
/* : NativeArray[Object] */;
8264 val
* var42
/* : String */;
8265 val
* var43
/* : MType */;
8266 val
* var44
/* : String */;
8267 static val
* varonce45
;
8268 val
* var46
/* : String */;
8269 char* var47
/* : NativeString */;
8270 long var48
/* : Int */;
8271 val
* var49
/* : String */;
8272 short int var50
/* : Bool */;
8273 val
* var51
/* : MType */;
8274 val
* var52
/* : AbstractCompiler */;
8275 val
* var53
/* : MModule */;
8276 val
* var54
/* : null */;
8277 short int var55
/* : Bool */;
8278 static val
* varonce56
;
8279 val
* var57
/* : String */;
8280 char* var58
/* : NativeString */;
8281 long var59
/* : Int */;
8282 val
* var60
/* : String */;
8283 val
* var61
/* : Array[Object] */;
8284 long var62
/* : Int */;
8285 val
* var63
/* : NativeArray[Object] */;
8286 val
* var64
/* : String */;
8287 static val
* varonce65
;
8288 val
* var66
/* : String */;
8289 char* var67
/* : NativeString */;
8290 long var68
/* : Int */;
8291 val
* var69
/* : String */;
8292 val
* var70
/* : Array[Object] */;
8293 long var71
/* : Int */;
8294 val
* var72
/* : NativeArray[Object] */;
8295 val
* var73
/* : String */;
8296 short int var74
/* : Bool */;
8297 val
* var75
/* : MType */;
8298 short int var76
/* : Bool */;
8301 short int var_
/* var : Bool */;
8302 val
* var77
/* : MType */;
8303 short int var78
/* : Bool */;
8306 static val
* varonce81
;
8307 val
* var82
/* : String */;
8308 char* var83
/* : NativeString */;
8309 long var84
/* : Int */;
8310 val
* var85
/* : String */;
8311 static val
* varonce86
;
8312 val
* var87
/* : String */;
8313 char* var88
/* : NativeString */;
8314 long var89
/* : Int */;
8315 val
* var90
/* : String */;
8316 val
* var91
/* : Array[Object] */;
8317 long var92
/* : Int */;
8318 val
* var93
/* : NativeArray[Object] */;
8319 val
* var94
/* : String */;
8320 short int var95
/* : Bool */;
8323 static val
* varonce98
;
8324 val
* var99
/* : String */;
8325 char* var100
/* : NativeString */;
8326 long var101
/* : Int */;
8327 val
* var102
/* : String */;
8328 static val
* varonce103
;
8329 val
* var104
/* : String */;
8330 char* var105
/* : NativeString */;
8331 long var106
/* : Int */;
8332 val
* var107
/* : String */;
8333 val
* var108
/* : Array[Object] */;
8334 long var109
/* : Int */;
8335 val
* var110
/* : NativeArray[Object] */;
8336 val
* var111
/* : String */;
8337 static val
* varonce112
;
8338 val
* var113
/* : String */;
8339 char* var114
/* : NativeString */;
8340 long var115
/* : Int */;
8341 val
* var116
/* : String */;
8342 static val
* varonce117
;
8343 val
* var118
/* : String */;
8344 char* var119
/* : NativeString */;
8345 long var120
/* : Int */;
8346 val
* var121
/* : String */;
8347 val
* var122
/* : Array[Object] */;
8348 long var123
/* : Int */;
8349 val
* var124
/* : NativeArray[Object] */;
8350 val
* var125
/* : String */;
8351 static val
* varonce126
;
8352 val
* var127
/* : String */;
8353 char* var128
/* : NativeString */;
8354 long var129
/* : Int */;
8355 val
* var130
/* : String */;
8356 static val
* varonce131
;
8357 val
* var132
/* : String */;
8358 char* var133
/* : NativeString */;
8359 long var134
/* : Int */;
8360 val
* var135
/* : String */;
8361 static val
* varonce136
;
8362 val
* var137
/* : String */;
8363 char* var138
/* : NativeString */;
8364 long var139
/* : Int */;
8365 val
* var140
/* : String */;
8366 val
* var141
/* : Array[Object] */;
8367 long var142
/* : Int */;
8368 val
* var143
/* : NativeArray[Object] */;
8369 val
* var144
/* : String */;
8370 val
* var145
/* : Iterator[nullable Object] */;
8371 short int var146
/* : Bool */;
8372 val
* var147
/* : nullable Object */;
8373 val
* var_t
/* var t: MClassType */;
8374 val
* var148
/* : AbstractCompiler */;
8375 val
* var149
/* : MModule */;
8376 val
* var150
/* : null */;
8377 short int var151
/* : Bool */;
8378 static val
* varonce152
;
8379 val
* var153
/* : String */;
8380 char* var154
/* : NativeString */;
8381 long var155
/* : Int */;
8382 val
* var156
/* : String */;
8383 val
* var157
/* : AbstractCompiler */;
8384 val
* var158
/* : String */;
8385 static val
* varonce159
;
8386 val
* var160
/* : String */;
8387 char* var161
/* : NativeString */;
8388 long var162
/* : Int */;
8389 val
* var163
/* : String */;
8390 static val
* varonce164
;
8391 val
* var165
/* : String */;
8392 char* var166
/* : NativeString */;
8393 long var167
/* : Int */;
8394 val
* var168
/* : String */;
8395 val
* var169
/* : Array[Object] */;
8396 long var170
/* : Int */;
8397 val
* var171
/* : NativeArray[Object] */;
8398 val
* var172
/* : String */;
8399 static val
* varonce173
;
8400 val
* var174
/* : String */;
8401 char* var175
/* : NativeString */;
8402 long var176
/* : Int */;
8403 val
* var177
/* : String */;
8404 val
* var178
/* : Array[Object] */;
8405 long var179
/* : Int */;
8406 val
* var180
/* : NativeArray[Object] */;
8407 val
* var181
/* : String */;
8408 static val
* varonce182
;
8409 val
* var183
/* : String */;
8410 char* var184
/* : NativeString */;
8411 long var185
/* : Int */;
8412 val
* var186
/* : String */;
8413 static val
* varonce187
;
8414 val
* var188
/* : String */;
8415 char* var189
/* : NativeString */;
8416 long var190
/* : Int */;
8417 val
* var191
/* : String */;
8418 static val
* varonce192
;
8419 val
* var193
/* : String */;
8420 char* var194
/* : NativeString */;
8421 long var195
/* : Int */;
8422 val
* var196
/* : String */;
8423 val
* var197
/* : Array[Object] */;
8424 long var198
/* : Int */;
8425 val
* var199
/* : NativeArray[Object] */;
8426 val
* var200
/* : String */;
8427 static val
* varonce201
;
8428 val
* var202
/* : String */;
8429 char* var203
/* : NativeString */;
8430 long var204
/* : Int */;
8431 val
* var205
/* : String */;
8435 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__anchor
]))(self
, var_mtype
) /* anchor on <self:GlobalCompilerVisitor>*/;
8437 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8438 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_global_compiler__GlobalCompiler__runtime_type_analysis
]))(var2
) /* runtime_type_analysis on <var2:AbstractCompiler(GlobalCompiler)>*/;
8439 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_cast_types
]))(var3
) /* live_cast_types on <var3:RapidTypeAnalysis>*/;
8440 var5
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var4
, var_mtype
) /* has on <var4:HashSet[MType]>*/;
8448 var10
= string__NativeString__to_s_with_length(var8
, var9
);
8455 var13
= " was detected cast-dead";
8457 var15
= string__NativeString__to_s_with_length(var13
, var14
);
8461 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
8462 { /* var16 = array_instance Array[Object] */
8464 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
8465 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
8466 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var_mtype
;
8467 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
8468 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
8470 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
8471 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__debug
]))(self
, var19
) /* debug on <self:GlobalCompilerVisitor>*/;
8472 fprintf(stderr
, "Runtime error: %s", "Aborted");
8473 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 707);
8477 var20
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_global_compiler__GlobalCompilerVisitor__collect_types
]))(self
, var_value
) /* collect_types on <self:GlobalCompilerVisitor>*/;
8479 var21
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type
]))(self
) /* bool_type on <self:GlobalCompilerVisitor>*/;
8480 var22
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var21
) /* new_var on <self:GlobalCompilerVisitor>*/;
8487 var27
= string__NativeString__to_s_with_length(var25
, var26
);
8496 var32
= string__NativeString__to_s_with_length(var30
, var31
);
8500 var33
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_string__Object__inspect
]))(var_value
) /* inspect on <var_value:RuntimeVariable>*/;
8506 var38
= string__NativeString__to_s_with_length(var36
, var37
);
8510 var39
= NEW_array__Array(&type_array__Arraykernel__Object
);
8511 { /* var39 = array_instance Array[Object] */
8513 var41
= NEW_array__NativeArray(var40
, &type_array__NativeArraykernel__Object
);
8514 ((struct instance_array__NativeArray
*)var41
)->values
[0] = (val
*) var24
;
8515 ((struct instance_array__NativeArray
*)var41
)->values
[1] = (val
*) var_mtype
;
8516 ((struct instance_array__NativeArray
*)var41
)->values
[2] = (val
*) var29
;
8517 ((struct instance_array__NativeArray
*)var41
)->values
[3] = (val
*) var33
;
8518 ((struct instance_array__NativeArray
*)var41
)->values
[4] = (val
*) var35
;
8519 ((void (*)(val
*, val
*, long))(var39
->class->vft
[COLOR_array__Array__with_native
]))(var39
, var41
, var40
) /* with_native on <var39:Array[Object]>*/;
8521 var42
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_string__Object__to_s
]))(var39
) /* to_s on <var39:Array[Object]>*/;
8522 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var42
) /* add on <self:GlobalCompilerVisitor>*/;
8523 var43
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
8524 var44
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var43
) /* ctype on <var43:MType>*/;
8530 var49
= string__NativeString__to_s_with_length(var47
, var48
);
8534 var50
= ((short int (*)(val
*, val
*))(var44
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var44
, var46
) /* != on <var44:String>*/;
8536 var51
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
8537 var52
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8538 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var52
) /* mainmodule on <var52:AbstractCompiler(GlobalCompiler)>*/;
8540 var55
= ((short int (*)(val
*, val
*, val
*, val
*))(var51
->class->vft
[COLOR_model__MType__is_subtype
]))(var51
, var53
, var54
, var_mtype
) /* is_subtype on <var51:MType>*/;
8547 var60
= string__NativeString__to_s_with_length(var58
, var59
);
8551 var61
= NEW_array__Array(&type_array__Arraykernel__Object
);
8552 { /* var61 = array_instance Array[Object] */
8554 var63
= NEW_array__NativeArray(var62
, &type_array__NativeArraykernel__Object
);
8555 ((struct instance_array__NativeArray
*)var63
)->values
[0] = (val
*) var_res
;
8556 ((struct instance_array__NativeArray
*)var63
)->values
[1] = (val
*) var57
;
8557 ((void (*)(val
*, val
*, long))(var61
->class->vft
[COLOR_array__Array__with_native
]))(var61
, var63
, var62
) /* with_native on <var61:Array[Object]>*/;
8559 var64
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_string__Object__to_s
]))(var61
) /* to_s on <var61:Array[Object]>*/;
8560 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var64
) /* add on <self:GlobalCompilerVisitor>*/;
8567 var69
= string__NativeString__to_s_with_length(var67
, var68
);
8571 var70
= NEW_array__Array(&type_array__Arraykernel__Object
);
8572 { /* var70 = array_instance Array[Object] */
8574 var72
= NEW_array__NativeArray(var71
, &type_array__NativeArraykernel__Object
);
8575 ((struct instance_array__NativeArray
*)var72
)->values
[0] = (val
*) var_res
;
8576 ((struct instance_array__NativeArray
*)var72
)->values
[1] = (val
*) var66
;
8577 ((void (*)(val
*, val
*, long))(var70
->class->vft
[COLOR_array__Array__with_native
]))(var70
, var72
, var71
) /* with_native on <var70:Array[Object]>*/;
8579 var73
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_string__Object__to_s
]))(var70
) /* to_s on <var70:Array[Object]>*/;
8580 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var73
) /* add on <self:GlobalCompilerVisitor>*/;
8586 var75
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value
) /* mcasttype on <var_value:RuntimeVariable>*/;
8587 /* <var75:MType> isa MNullableType */
8588 cltype
= type_model__MNullableType
.color
;
8589 idtype
= type_model__MNullableType
.id
;
8590 if(cltype
>= var75
->type
->table_size
) {
8593 var76
= var75
->type
->type_table
[cltype
] == idtype
;
8599 var77
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value
) /* mcasttype on <var_value:RuntimeVariable>*/;
8600 /* <var77:MType> isa MNullType */
8601 cltype79
= type_model__MNullType
.color
;
8602 idtype80
= type_model__MNullType
.id
;
8603 if(cltype79
>= var77
->type
->table_size
) {
8606 var78
= var77
->type
->type_table
[cltype79
] == idtype80
;
8616 var85
= string__NativeString__to_s_with_length(var83
, var84
);
8623 var88
= " == NULL) {";
8625 var90
= string__NativeString__to_s_with_length(var88
, var89
);
8629 var91
= NEW_array__Array(&type_array__Arraykernel__Object
);
8630 { /* var91 = array_instance Array[Object] */
8632 var93
= NEW_array__NativeArray(var92
, &type_array__NativeArraykernel__Object
);
8633 ((struct instance_array__NativeArray
*)var93
)->values
[0] = (val
*) var82
;
8634 ((struct instance_array__NativeArray
*)var93
)->values
[1] = (val
*) var_value
;
8635 ((struct instance_array__NativeArray
*)var93
)->values
[2] = (val
*) var87
;
8636 ((void (*)(val
*, val
*, long))(var91
->class->vft
[COLOR_array__Array__with_native
]))(var91
, var93
, var92
) /* with_native on <var91:Array[Object]>*/;
8638 var94
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_string__Object__to_s
]))(var91
) /* to_s on <var91:Array[Object]>*/;
8639 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var94
) /* add on <self:GlobalCompilerVisitor>*/;
8640 /* <var_mtype:MType> isa MNullableType */
8641 cltype96
= type_model__MNullableType
.color
;
8642 idtype97
= type_model__MNullableType
.id
;
8643 if(cltype96
>= var_mtype
->type
->table_size
) {
8646 var95
= var_mtype
->type
->type_table
[cltype96
] == idtype97
;
8652 var100
= " = 1; /* isa ";
8654 var102
= string__NativeString__to_s_with_length(var100
, var101
);
8659 var104
= varonce103
;
8663 var107
= string__NativeString__to_s_with_length(var105
, var106
);
8665 varonce103
= var104
;
8667 var108
= NEW_array__Array(&type_array__Arraykernel__Object
);
8668 { /* var108 = array_instance Array[Object] */
8670 var110
= NEW_array__NativeArray(var109
, &type_array__NativeArraykernel__Object
);
8671 ((struct instance_array__NativeArray
*)var110
)->values
[0] = (val
*) var_res
;
8672 ((struct instance_array__NativeArray
*)var110
)->values
[1] = (val
*) var99
;
8673 ((struct instance_array__NativeArray
*)var110
)->values
[2] = (val
*) var_mtype
;
8674 ((struct instance_array__NativeArray
*)var110
)->values
[3] = (val
*) var104
;
8675 ((void (*)(val
*, val
*, long))(var108
->class->vft
[COLOR_array__Array__with_native
]))(var108
, var110
, var109
) /* with_native on <var108:Array[Object]>*/;
8677 var111
= ((val
* (*)(val
*))(var108
->class->vft
[COLOR_string__Object__to_s
]))(var108
) /* to_s on <var108:Array[Object]>*/;
8678 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var111
) /* add on <self:GlobalCompilerVisitor>*/;
8681 var113
= varonce112
;
8683 var114
= " = 0; /* not isa ";
8685 var116
= string__NativeString__to_s_with_length(var114
, var115
);
8687 varonce112
= var113
;
8690 var118
= varonce117
;
8694 var121
= string__NativeString__to_s_with_length(var119
, var120
);
8696 varonce117
= var118
;
8698 var122
= NEW_array__Array(&type_array__Arraykernel__Object
);
8699 { /* var122 = array_instance Array[Object] */
8701 var124
= NEW_array__NativeArray(var123
, &type_array__NativeArraykernel__Object
);
8702 ((struct instance_array__NativeArray
*)var124
)->values
[0] = (val
*) var_res
;
8703 ((struct instance_array__NativeArray
*)var124
)->values
[1] = (val
*) var113
;
8704 ((struct instance_array__NativeArray
*)var124
)->values
[2] = (val
*) var_mtype
;
8705 ((struct instance_array__NativeArray
*)var124
)->values
[3] = (val
*) var118
;
8706 ((void (*)(val
*, val
*, long))(var122
->class->vft
[COLOR_array__Array__with_native
]))(var122
, var124
, var123
) /* with_native on <var122:Array[Object]>*/;
8708 var125
= ((val
* (*)(val
*))(var122
->class->vft
[COLOR_string__Object__to_s
]))(var122
) /* to_s on <var122:Array[Object]>*/;
8709 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var125
) /* add on <self:GlobalCompilerVisitor>*/;
8712 var127
= varonce126
;
8716 var130
= string__NativeString__to_s_with_length(var128
, var129
);
8718 varonce126
= var127
;
8720 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var127
) /* add on <self:GlobalCompilerVisitor>*/;
8724 var132
= varonce131
;
8728 var135
= string__NativeString__to_s_with_length(var133
, var134
);
8730 varonce131
= var132
;
8733 var137
= varonce136
;
8735 var138
= "->classid) {";
8737 var140
= string__NativeString__to_s_with_length(var138
, var139
);
8739 varonce136
= var137
;
8741 var141
= NEW_array__Array(&type_array__Arraykernel__Object
);
8742 { /* var141 = array_instance Array[Object] */
8744 var143
= NEW_array__NativeArray(var142
, &type_array__NativeArraykernel__Object
);
8745 ((struct instance_array__NativeArray
*)var143
)->values
[0] = (val
*) var132
;
8746 ((struct instance_array__NativeArray
*)var143
)->values
[1] = (val
*) var_value
;
8747 ((struct instance_array__NativeArray
*)var143
)->values
[2] = (val
*) var137
;
8748 ((void (*)(val
*, val
*, long))(var141
->class->vft
[COLOR_array__Array__with_native
]))(var141
, var143
, var142
) /* with_native on <var141:Array[Object]>*/;
8750 var144
= ((val
* (*)(val
*))(var141
->class->vft
[COLOR_string__Object__to_s
]))(var141
) /* to_s on <var141:Array[Object]>*/;
8751 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var144
) /* add on <self:GlobalCompilerVisitor>*/;
8752 var145
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_types
) /* iterator on <var_types:Array[MClassType]>*/;
8754 var146
= ((short int (*)(val
*))(var145
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var145
) /* is_ok on <var145:Iterator[nullable Object]>*/;
8756 var147
= ((val
* (*)(val
*))(var145
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var145
) /* item on <var145:Iterator[nullable Object]>*/;
8758 var148
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8759 var149
= ((val
* (*)(val
*))(var148
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var148
) /* mainmodule on <var148:AbstractCompiler(GlobalCompiler)>*/;
8761 var151
= ((short int (*)(val
*, val
*, val
*, val
*))(var_t
->class->vft
[COLOR_model__MType__is_subtype
]))(var_t
, var149
, var150
, var_mtype
) /* is_subtype on <var_t:MClassType>*/;
8764 var153
= varonce152
;
8768 var156
= string__NativeString__to_s_with_length(var154
, var155
);
8770 varonce152
= var153
;
8772 var157
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
8773 var158
= ((val
* (*)(val
*, val
*))(var157
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var157
, var_t
) /* classid on <var157:AbstractCompiler(GlobalCompiler)>*/;
8775 var160
= varonce159
;
8779 var163
= string__NativeString__to_s_with_length(var161
, var162
);
8781 varonce159
= var160
;
8784 var165
= varonce164
;
8788 var168
= string__NativeString__to_s_with_length(var166
, var167
);
8790 varonce164
= var165
;
8792 var169
= NEW_array__Array(&type_array__Arraykernel__Object
);
8793 { /* var169 = array_instance Array[Object] */
8795 var171
= NEW_array__NativeArray(var170
, &type_array__NativeArraykernel__Object
);
8796 ((struct instance_array__NativeArray
*)var171
)->values
[0] = (val
*) var153
;
8797 ((struct instance_array__NativeArray
*)var171
)->values
[1] = (val
*) var158
;
8798 ((struct instance_array__NativeArray
*)var171
)->values
[2] = (val
*) var160
;
8799 ((struct instance_array__NativeArray
*)var171
)->values
[3] = (val
*) var_t
;
8800 ((struct instance_array__NativeArray
*)var171
)->values
[4] = (val
*) var165
;
8801 ((void (*)(val
*, val
*, long))(var169
->class->vft
[COLOR_array__Array__with_native
]))(var169
, var171
, var170
) /* with_native on <var169:Array[Object]>*/;
8803 var172
= ((val
* (*)(val
*))(var169
->class->vft
[COLOR_string__Object__to_s
]))(var169
) /* to_s on <var169:Array[Object]>*/;
8804 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var172
) /* add on <self:GlobalCompilerVisitor>*/;
8807 CONTINUE_label
: (void)0;
8808 ((void (*)(val
*))(var145
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var145
) /* next on <var145:Iterator[nullable Object]>*/;
8810 BREAK_label
: (void)0;
8812 var174
= varonce173
;
8816 var177
= string__NativeString__to_s_with_length(var175
, var176
);
8818 varonce173
= var174
;
8820 var178
= NEW_array__Array(&type_array__Arraykernel__Object
);
8821 { /* var178 = array_instance Array[Object] */
8823 var180
= NEW_array__NativeArray(var179
, &type_array__NativeArraykernel__Object
);
8824 ((struct instance_array__NativeArray
*)var180
)->values
[0] = (val
*) var_res
;
8825 ((struct instance_array__NativeArray
*)var180
)->values
[1] = (val
*) var174
;
8826 ((void (*)(val
*, val
*, long))(var178
->class->vft
[COLOR_array__Array__with_native
]))(var178
, var180
, var179
) /* with_native on <var178:Array[Object]>*/;
8828 var181
= ((val
* (*)(val
*))(var178
->class->vft
[COLOR_string__Object__to_s
]))(var178
) /* to_s on <var178:Array[Object]>*/;
8829 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var181
) /* add on <self:GlobalCompilerVisitor>*/;
8831 var183
= varonce182
;
8835 var186
= string__NativeString__to_s_with_length(var184
, var185
);
8837 varonce182
= var183
;
8839 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var183
) /* add on <self:GlobalCompilerVisitor>*/;
8841 var188
= varonce187
;
8843 var189
= "default:";
8845 var191
= string__NativeString__to_s_with_length(var189
, var190
);
8847 varonce187
= var188
;
8849 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var188
) /* add on <self:GlobalCompilerVisitor>*/;
8851 var193
= varonce192
;
8855 var196
= string__NativeString__to_s_with_length(var194
, var195
);
8857 varonce192
= var193
;
8859 var197
= NEW_array__Array(&type_array__Arraykernel__Object
);
8860 { /* var197 = array_instance Array[Object] */
8862 var199
= NEW_array__NativeArray(var198
, &type_array__NativeArraykernel__Object
);
8863 ((struct instance_array__NativeArray
*)var199
)->values
[0] = (val
*) var_res
;
8864 ((struct instance_array__NativeArray
*)var199
)->values
[1] = (val
*) var193
;
8865 ((void (*)(val
*, val
*, long))(var197
->class->vft
[COLOR_array__Array__with_native
]))(var197
, var199
, var198
) /* with_native on <var197:Array[Object]>*/;
8867 var200
= ((val
* (*)(val
*))(var197
->class->vft
[COLOR_string__Object__to_s
]))(var197
) /* to_s on <var197:Array[Object]>*/;
8868 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var200
) /* add on <self:GlobalCompilerVisitor>*/;
8870 var202
= varonce201
;
8874 var205
= string__NativeString__to_s_with_length(var203
, var204
);
8876 varonce201
= var202
;
8878 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var202
) /* add on <self:GlobalCompilerVisitor>*/;
8884 /* method global_compiler#GlobalCompilerVisitor#type_test for (self: Object, RuntimeVariable, MType, String): RuntimeVariable */
8885 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8886 val
* var
/* : RuntimeVariable */;
8887 val
* var1
/* : RuntimeVariable */;
8888 var1
= global_compiler__GlobalCompilerVisitor__type_test(self
, p0
, p1
, p2
);
8893 /* method global_compiler#GlobalCompilerVisitor#is_same_type_test for (self: GlobalCompilerVisitor, RuntimeVariable, RuntimeVariable): RuntimeVariable */
8894 val
* global_compiler__GlobalCompilerVisitor__is_same_type_test(val
* self
, val
* p0
, val
* p1
) {
8895 val
* var
/* : RuntimeVariable */;
8896 val
* var_value1
/* var value1: RuntimeVariable */;
8897 val
* var_value2
/* var value2: RuntimeVariable */;
8898 val
* var1
/* : MClassType */;
8899 val
* var2
/* : RuntimeVariable */;
8900 val
* var_res
/* var res: RuntimeVariable */;
8901 val
* var3
/* : MType */;
8902 val
* var4
/* : String */;
8903 static val
* varonce
;
8904 val
* var5
/* : String */;
8905 char* var6
/* : NativeString */;
8906 long var7
/* : Int */;
8907 val
* var8
/* : String */;
8908 short int var9
/* : Bool */;
8909 val
* var10
/* : MType */;
8910 val
* var11
/* : String */;
8911 static val
* varonce12
;
8912 val
* var13
/* : String */;
8913 char* var14
/* : NativeString */;
8914 long var15
/* : Int */;
8915 val
* var16
/* : String */;
8916 short int var17
/* : Bool */;
8917 static val
* varonce18
;
8918 val
* var19
/* : String */;
8919 char* var20
/* : NativeString */;
8920 long var21
/* : Int */;
8921 val
* var22
/* : String */;
8922 static val
* varonce23
;
8923 val
* var24
/* : String */;
8924 char* var25
/* : NativeString */;
8925 long var26
/* : Int */;
8926 val
* var27
/* : String */;
8927 static val
* varonce28
;
8928 val
* var29
/* : String */;
8929 char* var30
/* : NativeString */;
8930 long var31
/* : Int */;
8931 val
* var32
/* : String */;
8932 val
* var33
/* : Array[Object] */;
8933 long var34
/* : Int */;
8934 val
* var35
/* : NativeArray[Object] */;
8935 val
* var36
/* : String */;
8936 static val
* varonce37
;
8937 val
* var38
/* : String */;
8938 char* var39
/* : NativeString */;
8939 long var40
/* : Int */;
8940 val
* var41
/* : String */;
8941 val
* var42
/* : AbstractCompiler */;
8942 val
* var43
/* : MType */;
8943 short int var44
/* : Bool */;
8946 const char* var_class_name
;
8947 val
* var45
/* : String */;
8948 static val
* varonce46
;
8949 val
* var47
/* : String */;
8950 char* var48
/* : NativeString */;
8951 long var49
/* : Int */;
8952 val
* var50
/* : String */;
8953 static val
* varonce51
;
8954 val
* var52
/* : String */;
8955 char* var53
/* : NativeString */;
8956 long var54
/* : Int */;
8957 val
* var55
/* : String */;
8958 val
* var56
/* : Array[Object] */;
8959 long var57
/* : Int */;
8960 val
* var58
/* : NativeArray[Object] */;
8961 val
* var59
/* : String */;
8962 val
* var60
/* : MType */;
8963 val
* var61
/* : String */;
8964 static val
* varonce62
;
8965 val
* var63
/* : String */;
8966 char* var64
/* : NativeString */;
8967 long var65
/* : Int */;
8968 val
* var66
/* : String */;
8969 short int var67
/* : Bool */;
8970 static val
* varonce68
;
8971 val
* var69
/* : String */;
8972 char* var70
/* : NativeString */;
8973 long var71
/* : Int */;
8974 val
* var72
/* : String */;
8975 static val
* varonce73
;
8976 val
* var74
/* : String */;
8977 char* var75
/* : NativeString */;
8978 long var76
/* : Int */;
8979 val
* var77
/* : String */;
8980 val
* var78
/* : AbstractCompiler */;
8981 val
* var79
/* : MType */;
8982 short int var80
/* : Bool */;
8985 const char* var_class_name83
;
8986 val
* var84
/* : String */;
8987 static val
* varonce85
;
8988 val
* var86
/* : String */;
8989 char* var87
/* : NativeString */;
8990 long var88
/* : Int */;
8991 val
* var89
/* : String */;
8992 val
* var90
/* : Array[Object] */;
8993 long var91
/* : Int */;
8994 val
* var92
/* : NativeArray[Object] */;
8995 val
* var93
/* : String */;
8996 val
* var94
/* : MType */;
8997 val
* var95
/* : MType */;
8998 short int var96
/* : Bool */;
8999 static val
* varonce97
;
9000 val
* var98
/* : String */;
9001 char* var99
/* : NativeString */;
9002 long var100
/* : Int */;
9003 val
* var101
/* : String */;
9004 val
* var102
/* : Array[Object] */;
9005 long var103
/* : Int */;
9006 val
* var104
/* : NativeArray[Object] */;
9007 val
* var105
/* : String */;
9008 static val
* varonce106
;
9009 val
* var107
/* : String */;
9010 char* var108
/* : NativeString */;
9011 long var109
/* : Int */;
9012 val
* var110
/* : String */;
9013 val
* var111
/* : Array[Object] */;
9014 long var112
/* : Int */;
9015 val
* var113
/* : NativeArray[Object] */;
9016 val
* var114
/* : String */;
9019 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type
]))(self
) /* bool_type on <self:GlobalCompilerVisitor>*/;
9020 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var1
) /* new_var on <self:GlobalCompilerVisitor>*/;
9022 var3
= ((val
* (*)(val
*))(var_value2
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value2
) /* mtype on <var_value2:RuntimeVariable>*/;
9023 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var3
) /* ctype on <var3:MType>*/;
9029 var8
= string__NativeString__to_s_with_length(var6
, var7
);
9033 var9
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var4
, var5
) /* == on <var4:String>*/;
9035 var10
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value1
) /* mtype on <var_value1:RuntimeVariable>*/;
9036 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var10
) /* ctype on <var10:MType>*/;
9042 var16
= string__NativeString__to_s_with_length(var14
, var15
);
9046 var17
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var11
, var13
) /* == on <var11:String>*/;
9053 var22
= string__NativeString__to_s_with_length(var20
, var21
);
9060 var25
= "->classid == ";
9062 var27
= string__NativeString__to_s_with_length(var25
, var26
);
9069 var30
= "->classid;";
9071 var32
= string__NativeString__to_s_with_length(var30
, var31
);
9075 var33
= NEW_array__Array(&type_array__Arraykernel__Object
);
9076 { /* var33 = array_instance Array[Object] */
9078 var35
= NEW_array__NativeArray(var34
, &type_array__NativeArraykernel__Object
);
9079 ((struct instance_array__NativeArray
*)var35
)->values
[0] = (val
*) var_res
;
9080 ((struct instance_array__NativeArray
*)var35
)->values
[1] = (val
*) var19
;
9081 ((struct instance_array__NativeArray
*)var35
)->values
[2] = (val
*) var_value1
;
9082 ((struct instance_array__NativeArray
*)var35
)->values
[3] = (val
*) var24
;
9083 ((struct instance_array__NativeArray
*)var35
)->values
[4] = (val
*) var_value2
;
9084 ((struct instance_array__NativeArray
*)var35
)->values
[5] = (val
*) var29
;
9085 ((void (*)(val
*, val
*, long))(var33
->class->vft
[COLOR_array__Array__with_native
]))(var33
, var35
, var34
) /* with_native on <var33:Array[Object]>*/;
9087 var36
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_string__Object__to_s
]))(var33
) /* to_s on <var33:Array[Object]>*/;
9088 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var36
) /* add on <self:GlobalCompilerVisitor>*/;
9095 var41
= string__NativeString__to_s_with_length(var39
, var40
);
9099 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9100 var43
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value1
) /* mtype on <var_value1:RuntimeVariable>*/;
9101 /* <var43:MType> isa MClassType */
9102 cltype
= type_model__MClassType
.color
;
9103 idtype
= type_model__MClassType
.id
;
9104 if(cltype
>= var43
->type
->table_size
) {
9107 var44
= var43
->type
->type_table
[cltype
] == idtype
;
9110 var_class_name
= var43
== NULL ?
"null" : var43
->type
->name
;
9111 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
9112 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 753);
9115 var45
= ((val
* (*)(val
*, val
*))(var42
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var42
, var43
) /* classid on <var42:AbstractCompiler(GlobalCompiler)>*/;
9121 var50
= string__NativeString__to_s_with_length(var48
, var49
);
9128 var53
= "->classid;";
9130 var55
= string__NativeString__to_s_with_length(var53
, var54
);
9134 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
9135 { /* var56 = array_instance Array[Object] */
9137 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
9138 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var_res
;
9139 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var38
;
9140 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var45
;
9141 ((struct instance_array__NativeArray
*)var58
)->values
[3] = (val
*) var47
;
9142 ((struct instance_array__NativeArray
*)var58
)->values
[4] = (val
*) var_value2
;
9143 ((struct instance_array__NativeArray
*)var58
)->values
[5] = (val
*) var52
;
9144 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
9146 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
9147 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var59
) /* add on <self:GlobalCompilerVisitor>*/;
9150 var60
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value1
) /* mtype on <var_value1:RuntimeVariable>*/;
9151 var61
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var60
) /* ctype on <var60:MType>*/;
9157 var66
= string__NativeString__to_s_with_length(var64
, var65
);
9161 var67
= ((short int (*)(val
*, val
*))(var61
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var61
, var63
) /* == on <var61:String>*/;
9168 var72
= string__NativeString__to_s_with_length(var70
, var71
);
9175 var75
= "->classid == ";
9177 var77
= string__NativeString__to_s_with_length(var75
, var76
);
9181 var78
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9182 var79
= ((val
* (*)(val
*))(var_value2
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value2
) /* mtype on <var_value2:RuntimeVariable>*/;
9183 /* <var79:MType> isa MClassType */
9184 cltype81
= type_model__MClassType
.color
;
9185 idtype82
= type_model__MClassType
.id
;
9186 if(cltype81
>= var79
->type
->table_size
) {
9189 var80
= var79
->type
->type_table
[cltype81
] == idtype82
;
9192 var_class_name83
= var79
== NULL ?
"null" : var79
->type
->name
;
9193 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name83
);
9194 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 757);
9197 var84
= ((val
* (*)(val
*, val
*))(var78
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var78
, var79
) /* classid on <var78:AbstractCompiler(GlobalCompiler)>*/;
9203 var89
= string__NativeString__to_s_with_length(var87
, var88
);
9207 var90
= NEW_array__Array(&type_array__Arraykernel__Object
);
9208 { /* var90 = array_instance Array[Object] */
9210 var92
= NEW_array__NativeArray(var91
, &type_array__NativeArraykernel__Object
);
9211 ((struct instance_array__NativeArray
*)var92
)->values
[0] = (val
*) var_res
;
9212 ((struct instance_array__NativeArray
*)var92
)->values
[1] = (val
*) var69
;
9213 ((struct instance_array__NativeArray
*)var92
)->values
[2] = (val
*) var_value1
;
9214 ((struct instance_array__NativeArray
*)var92
)->values
[3] = (val
*) var74
;
9215 ((struct instance_array__NativeArray
*)var92
)->values
[4] = (val
*) var84
;
9216 ((struct instance_array__NativeArray
*)var92
)->values
[5] = (val
*) var86
;
9217 ((void (*)(val
*, val
*, long))(var90
->class->vft
[COLOR_array__Array__with_native
]))(var90
, var92
, var91
) /* with_native on <var90:Array[Object]>*/;
9219 var93
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_string__Object__to_s
]))(var90
) /* to_s on <var90:Array[Object]>*/;
9220 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var93
) /* add on <self:GlobalCompilerVisitor>*/;
9222 var94
= ((val
* (*)(val
*))(var_value1
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value1
) /* mcasttype on <var_value1:RuntimeVariable>*/;
9223 var95
= ((val
* (*)(val
*))(var_value2
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value2
) /* mcasttype on <var_value2:RuntimeVariable>*/;
9224 var96
= ((short int (*)(val
*, val
*))(var94
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var94
, var95
) /* == on <var94:MType>*/;
9231 var101
= string__NativeString__to_s_with_length(var99
, var100
);
9235 var102
= NEW_array__Array(&type_array__Arraykernel__Object
);
9236 { /* var102 = array_instance Array[Object] */
9238 var104
= NEW_array__NativeArray(var103
, &type_array__NativeArraykernel__Object
);
9239 ((struct instance_array__NativeArray
*)var104
)->values
[0] = (val
*) var_res
;
9240 ((struct instance_array__NativeArray
*)var104
)->values
[1] = (val
*) var98
;
9241 ((void (*)(val
*, val
*, long))(var102
->class->vft
[COLOR_array__Array__with_native
]))(var102
, var104
, var103
) /* with_native on <var102:Array[Object]>*/;
9243 var105
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_string__Object__to_s
]))(var102
) /* to_s on <var102:Array[Object]>*/;
9244 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var105
) /* add on <self:GlobalCompilerVisitor>*/;
9247 var107
= varonce106
;
9251 var110
= string__NativeString__to_s_with_length(var108
, var109
);
9253 varonce106
= var107
;
9255 var111
= NEW_array__Array(&type_array__Arraykernel__Object
);
9256 { /* var111 = array_instance Array[Object] */
9258 var113
= NEW_array__NativeArray(var112
, &type_array__NativeArraykernel__Object
);
9259 ((struct instance_array__NativeArray
*)var113
)->values
[0] = (val
*) var_res
;
9260 ((struct instance_array__NativeArray
*)var113
)->values
[1] = (val
*) var107
;
9261 ((void (*)(val
*, val
*, long))(var111
->class->vft
[COLOR_array__Array__with_native
]))(var111
, var113
, var112
) /* with_native on <var111:Array[Object]>*/;
9263 var114
= ((val
* (*)(val
*))(var111
->class->vft
[COLOR_string__Object__to_s
]))(var111
) /* to_s on <var111:Array[Object]>*/;
9264 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var114
) /* add on <self:GlobalCompilerVisitor>*/;
9273 /* method global_compiler#GlobalCompilerVisitor#is_same_type_test for (self: Object, RuntimeVariable, RuntimeVariable): RuntimeVariable */
9274 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__is_same_type_test(val
* self
, val
* p0
, val
* p1
) {
9275 val
* var
/* : RuntimeVariable */;
9276 val
* var1
/* : RuntimeVariable */;
9277 var1
= global_compiler__GlobalCompilerVisitor__is_same_type_test(self
, p0
, p1
);
9282 /* method global_compiler#GlobalCompilerVisitor#class_name_string for (self: GlobalCompilerVisitor, RuntimeVariable): String */
9283 val
* global_compiler__GlobalCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
9284 val
* var
/* : String */;
9285 val
* var_value
/* var value: RuntimeVariable */;
9286 static val
* varonce
;
9287 val
* var1
/* : String */;
9288 char* var2
/* : NativeString */;
9289 long var3
/* : Int */;
9290 val
* var4
/* : String */;
9291 val
* var5
/* : String */;
9292 val
* var_res
/* var res: String */;
9293 static val
* varonce6
;
9294 val
* var7
/* : String */;
9295 char* var8
/* : NativeString */;
9296 long var9
/* : Int */;
9297 val
* var10
/* : String */;
9298 static val
* varonce11
;
9299 val
* var12
/* : String */;
9300 char* var13
/* : NativeString */;
9301 long var14
/* : Int */;
9302 val
* var15
/* : String */;
9303 val
* var16
/* : Array[Object] */;
9304 long var17
/* : Int */;
9305 val
* var18
/* : NativeArray[Object] */;
9306 val
* var19
/* : String */;
9307 val
* var20
/* : MType */;
9308 val
* var21
/* : String */;
9309 static val
* varonce22
;
9310 val
* var23
/* : String */;
9311 char* var24
/* : NativeString */;
9312 long var25
/* : Int */;
9313 val
* var26
/* : String */;
9314 short int var27
/* : Bool */;
9315 static val
* varonce28
;
9316 val
* var29
/* : String */;
9317 char* var30
/* : NativeString */;
9318 long var31
/* : Int */;
9319 val
* var32
/* : String */;
9320 static val
* varonce33
;
9321 val
* var34
/* : String */;
9322 char* var35
/* : NativeString */;
9323 long var36
/* : Int */;
9324 val
* var37
/* : String */;
9325 val
* var38
/* : Array[Object] */;
9326 long var39
/* : Int */;
9327 val
* var40
/* : NativeArray[Object] */;
9328 val
* var41
/* : String */;
9329 static val
* varonce42
;
9330 val
* var43
/* : String */;
9331 char* var44
/* : NativeString */;
9332 long var45
/* : Int */;
9333 val
* var46
/* : String */;
9334 val
* var47
/* : AbstractCompiler */;
9335 val
* var48
/* : MType */;
9336 short int var49
/* : Bool */;
9339 const char* var_class_name
;
9340 val
* var50
/* : String */;
9341 static val
* varonce51
;
9342 val
* var52
/* : String */;
9343 char* var53
/* : NativeString */;
9344 long var54
/* : Int */;
9345 val
* var55
/* : String */;
9346 val
* var56
/* : Array[Object] */;
9347 long var57
/* : Int */;
9348 val
* var58
/* : NativeArray[Object] */;
9349 val
* var59
/* : String */;
9354 var2
= "var_class_name";
9356 var4
= string__NativeString__to_s_with_length(var2
, var3
);
9360 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var1
) /* get_name on <self:GlobalCompilerVisitor>*/;
9365 var8
= "const char* ";
9367 var10
= string__NativeString__to_s_with_length(var8
, var9
);
9376 var15
= string__NativeString__to_s_with_length(var13
, var14
);
9380 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
9381 { /* var16 = array_instance Array[Object] */
9383 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
9384 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
9385 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var_res
;
9386 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
9387 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
9389 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
9390 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var19
) /* add_decl on <self:GlobalCompilerVisitor>*/;
9391 var20
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9392 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var20
) /* ctype on <var20:MType>*/;
9398 var26
= string__NativeString__to_s_with_length(var24
, var25
);
9402 var27
= ((short int (*)(val
*, val
*))(var21
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var21
, var23
) /* == on <var21:String>*/;
9407 var30
= " = class_names[";
9409 var32
= string__NativeString__to_s_with_length(var30
, var31
);
9416 var35
= "->classid];";
9418 var37
= string__NativeString__to_s_with_length(var35
, var36
);
9422 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
9423 { /* var38 = array_instance Array[Object] */
9425 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
9426 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var_res
;
9427 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var29
;
9428 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var_value
;
9429 ((struct instance_array__NativeArray
*)var40
)->values
[3] = (val
*) var34
;
9430 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
9432 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
9433 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var41
) /* add on <self:GlobalCompilerVisitor>*/;
9438 var44
= " = class_names[";
9440 var46
= string__NativeString__to_s_with_length(var44
, var45
);
9444 var47
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:GlobalCompilerVisitor>*/;
9445 var48
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9446 /* <var48:MType> isa MClassType */
9447 cltype
= type_model__MClassType
.color
;
9448 idtype
= type_model__MClassType
.id
;
9449 if(cltype
>= var48
->type
->table_size
) {
9452 var49
= var48
->type
->type_table
[cltype
] == idtype
;
9455 var_class_name
= var48
== NULL ?
"null" : var48
->type
->name
;
9456 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
9457 fprintf(stderr
, " (%s:%d)\n", "src/global_compiler.nit", 774);
9460 var50
= ((val
* (*)(val
*, val
*))(var47
->class->vft
[COLOR_global_compiler__GlobalCompiler__classid
]))(var47
, var48
) /* classid on <var47:AbstractCompiler(GlobalCompiler)>*/;
9466 var55
= string__NativeString__to_s_with_length(var53
, var54
);
9470 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
9471 { /* var56 = array_instance Array[Object] */
9473 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
9474 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var_res
;
9475 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var43
;
9476 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var50
;
9477 ((struct instance_array__NativeArray
*)var58
)->values
[3] = (val
*) var52
;
9478 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
9480 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
9481 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var59
) /* add on <self:GlobalCompilerVisitor>*/;
9488 /* method global_compiler#GlobalCompilerVisitor#class_name_string for (self: Object, RuntimeVariable): String */
9489 val
* VIRTUAL_global_compiler__GlobalCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
9490 val
* var
/* : String */;
9491 val
* var1
/* : String */;
9492 var1
= global_compiler__GlobalCompilerVisitor__class_name_string(self
, p0
);