1 #include "separate_erasure_compiler.sep.0.h"
2 /* method separate_erasure_compiler#ToolContext#opt_erasure for (self: ToolContext): OptionBool */
3 val
* separate_erasure_compiler__ToolContext__opt_erasure(val
* self
) {
4 val
* var
/* : OptionBool */;
5 val
* var1
/* : OptionBool */;
6 var1
= self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___64dopt_erasure
].val
; /* @opt_erasure on <self:ToolContext> */
8 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @opt_erasure");
9 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 22);
16 /* method separate_erasure_compiler#ToolContext#opt_erasure for (self: Object): OptionBool */
17 val
* VIRTUAL_separate_erasure_compiler__ToolContext__opt_erasure(val
* self
) {
18 val
* var
/* : OptionBool */;
19 val
* var1
/* : OptionBool */;
20 var1
= separate_erasure_compiler__ToolContext__opt_erasure(self
);
25 /* method separate_erasure_compiler#ToolContext#opt_erasure= for (self: ToolContext, OptionBool) */
26 void separate_erasure_compiler__ToolContext__opt_erasure_61d(val
* self
, val
* p0
) {
27 self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___64dopt_erasure
].val
= p0
; /* @opt_erasure on <self:ToolContext> */
30 /* method separate_erasure_compiler#ToolContext#opt_erasure= for (self: Object, OptionBool) */
31 void VIRTUAL_separate_erasure_compiler__ToolContext__opt_erasure_61d(val
* self
, val
* p0
) {
32 separate_erasure_compiler__ToolContext__opt_erasure_61d(self
, p0
);
35 /* method separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast for (self: ToolContext): OptionBool */
36 val
* separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast(val
* self
) {
37 val
* var
/* : OptionBool */;
38 val
* var1
/* : OptionBool */;
39 var1
= self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___64dopt_no_check_erasure_cast
].val
; /* @opt_no_check_erasure_cast on <self:ToolContext> */
41 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @opt_no_check_erasure_cast");
42 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 24);
49 /* method separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast for (self: Object): OptionBool */
50 val
* VIRTUAL_separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast(val
* self
) {
51 val
* var
/* : OptionBool */;
52 val
* var1
/* : OptionBool */;
53 var1
= separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast(self
);
58 /* method separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast= for (self: ToolContext, OptionBool) */
59 void separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast_61d(val
* self
, val
* p0
) {
60 self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___64dopt_no_check_erasure_cast
].val
= p0
; /* @opt_no_check_erasure_cast on <self:ToolContext> */
63 /* method separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast= for (self: Object, OptionBool) */
64 void VIRTUAL_separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast_61d(val
* self
, val
* p0
) {
65 separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast_61d(self
, p0
);
68 /* method separate_erasure_compiler#ToolContext#init for (self: ToolContext) */
69 void separate_erasure_compiler__ToolContext__init(val
* self
) {
70 val
* var
/* : OptionContext */;
71 val
* var1
/* : OptionBool */;
72 val
* var2
/* : OptionBool */;
73 val
* var3
/* : Array[Option] */;
74 long var4
/* : Int */;
75 val
* var5
/* : NativeArray[Option] */;
76 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__ToolContext__init
]))(self
) /* init on <self:ToolContext>*/;
77 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
78 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__ToolContext__opt_erasure
]))(self
) /* opt_erasure on <self:ToolContext>*/;
79 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast
]))(self
) /* opt_no_check_erasure_cast on <self:ToolContext>*/;
80 var3
= NEW_array__Array(&type_array__Arrayopts__Option
);
81 { /* var3 = array_instance Array[Option] */
83 var5
= NEW_array__NativeArray(var4
, &type_array__NativeArrayopts__Option
);
84 ((struct instance_array__NativeArray
*)var5
)->values
[0] = (val
*) var1
;
85 ((struct instance_array__NativeArray
*)var5
)->values
[1] = (val
*) var2
;
86 ((void (*)(val
*, val
*, long))(var3
->class->vft
[COLOR_array__Array__with_native
]))(var3
, var5
, var4
) /* with_native on <var3:Array[Option]>*/;
88 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var
, var3
) /* add_option on <var:OptionContext>*/;
91 /* method separate_erasure_compiler#ToolContext#init for (self: Object) */
92 void VIRTUAL_separate_erasure_compiler__ToolContext__init(val
* self
) {
93 separate_erasure_compiler__ToolContext__init(self
);
96 /* method separate_erasure_compiler#ModelBuilder#run_separate_erasure_compiler for (self: ModelBuilder, MModule, nullable RapidTypeAnalysis) */
97 void separate_erasure_compiler__ModelBuilder__run_separate_erasure_compiler(val
* self
, val
* p0
, val
* p1
) {
98 val
* var_mainmodule
/* var mainmodule: MModule */;
99 val
* var_runtime_type_analysis
/* var runtime_type_analysis: nullable RapidTypeAnalysis */;
100 long var
/* : Int */;
101 long var_time0
/* var time0: Int */;
102 val
* var1
/* : ToolContext */;
104 val
* var2
/* : String */;
105 char* var3
/* : NativeString */;
106 long var4
/* : Int */;
107 val
* var5
/* : String */;
108 long var6
/* : Int */;
109 val
* var7
/* : SeparateErasureCompiler */;
110 val
* var_compiler
/* var compiler: SeparateErasureCompiler */;
111 val
* var8
/* : ToolContext */;
112 static val
* varonce9
;
113 val
* var10
/* : String */;
114 char* var11
/* : NativeString */;
115 long var12
/* : Int */;
116 val
* var13
/* : String */;
117 long var14
/* : Int */;
118 val
* var15
/* : String */;
119 static val
* varonce16
;
120 val
* var17
/* : String */;
121 char* var18
/* : NativeString */;
122 long var19
/* : Int */;
123 val
* var20
/* : String */;
124 val
* var21
/* : Array[Object] */;
125 long var22
/* : Int */;
126 val
* var23
/* : NativeArray[Object] */;
127 val
* var24
/* : String */;
128 val
* var25
/* : CodeFile */;
129 val
* var26
/* : POSetElement[MModule] */;
130 val
* var27
/* : Collection[Object] */;
131 val
* var28
/* : Iterator[nullable Object] */;
132 short int var29
/* : Bool */;
133 val
* var30
/* : nullable Object */;
134 val
* var_m
/* var m: MModule */;
135 val
* var31
/* : Array[MClass] */;
136 val
* var32
/* : Iterator[nullable Object] */;
137 short int var33
/* : Bool */;
138 val
* var34
/* : nullable Object */;
139 val
* var_mclass
/* var mclass: MClass */;
140 val
* var36
/* : nullable Layout[MVirtualTypeProp] */;
141 val
* var37
/* : Map[Object, Int] */;
142 val
* var38
/* : String */;
143 static val
* varonce39
;
144 val
* var40
/* : String */;
145 char* var41
/* : NativeString */;
146 long var42
/* : Int */;
147 val
* var43
/* : String */;
148 val
* var44
/* : Array[Object] */;
149 long var45
/* : Int */;
150 val
* var46
/* : NativeArray[Object] */;
151 val
* var47
/* : String */;
152 val
* var48
/* : CodeFile */;
153 val
* var49
/* : POSetElement[MModule] */;
154 val
* var50
/* : Collection[Object] */;
155 val
* var51
/* : Iterator[nullable Object] */;
156 short int var52
/* : Bool */;
157 val
* var53
/* : nullable Object */;
158 val
* var_m54
/* var m: MModule */;
159 val
* var55
/* : ToolContext */;
160 static val
* varonce56
;
161 val
* var57
/* : String */;
162 char* var58
/* : NativeString */;
163 long var59
/* : Int */;
164 val
* var60
/* : String */;
165 val
* var61
/* : Array[Object] */;
166 long var62
/* : Int */;
167 val
* var63
/* : NativeArray[Object] */;
168 val
* var64
/* : String */;
169 long var65
/* : Int */;
170 val
* var66
/* : String */;
171 static val
* varonce67
;
172 val
* var68
/* : String */;
173 char* var69
/* : NativeString */;
174 long var70
/* : Int */;
175 val
* var71
/* : String */;
176 val
* var72
/* : Array[Object] */;
177 long var73
/* : Int */;
178 val
* var74
/* : NativeArray[Object] */;
179 val
* var75
/* : String */;
180 val
* var76
/* : CodeFile */;
181 long var78
/* : Int */;
182 long var_time1
/* var time1: Int */;
183 val
* var79
/* : ToolContext */;
184 static val
* varonce80
;
185 val
* var81
/* : String */;
186 char* var82
/* : NativeString */;
187 long var83
/* : Int */;
188 val
* var84
/* : String */;
189 long var85
/* : Int */;
190 long var87
/* : Int */;
191 static val
* varonce88
;
192 val
* var89
/* : String */;
193 char* var90
/* : NativeString */;
194 long var91
/* : Int */;
195 val
* var92
/* : String */;
196 val
* var93
/* : Array[Object] */;
197 long var94
/* : Int */;
198 val
* var95
/* : NativeArray[Object] */;
199 val
* var96
/* : Object */;
200 val
* var97
/* : String */;
201 long var98
/* : Int */;
203 var_runtime_type_analysis
= p1
;
204 var
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
206 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
210 var3
= "*** GENERATING C ***";
212 var5
= string__NativeString__to_s_with_length(var3
, var4
);
217 ((void (*)(val
*, val
*, long))(var1
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var1
, var2
, var6
) /* info on <var1:ToolContext>*/;
218 var7
= NEW_separate_erasure_compiler__SeparateErasureCompiler(&type_separate_erasure_compiler__SeparateErasureCompiler
);
219 ((void (*)(val
*, val
*, val
*, val
*))(var7
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__init
]))(var7
, var_mainmodule
, self
, var_runtime_type_analysis
) /* init on <var7:SeparateErasureCompiler>*/;
221 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_header
]))(var_compiler
) /* compile_header on <var_compiler:SeparateErasureCompiler>*/;
222 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
226 var11
= "Property coloring";
228 var13
= string__NativeString__to_s_with_length(var11
, var12
);
233 ((void (*)(val
*, val
*, long))(var8
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var8
, var10
, var14
) /* info on <var8:ToolContext>*/;
234 var15
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__name
]))(var_mainmodule
) /* name on <var_mainmodule:MModule>*/;
240 var20
= string__NativeString__to_s_with_length(var18
, var19
);
244 var21
= NEW_array__Array(&type_array__Arraykernel__Object
);
245 { /* var21 = array_instance Array[Object] */
247 var23
= NEW_array__NativeArray(var22
, &type_array__NativeArraykernel__Object
);
248 ((struct instance_array__NativeArray
*)var23
)->values
[0] = (val
*) var15
;
249 ((struct instance_array__NativeArray
*)var23
)->values
[1] = (val
*) var17
;
250 ((void (*)(val
*, val
*, long))(var21
->class->vft
[COLOR_array__Array__with_native
]))(var21
, var23
, var22
) /* with_native on <var21:Array[Object]>*/;
252 var24
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_string__Object__to_s
]))(var21
) /* to_s on <var21:Array[Object]>*/;
253 var25
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var24
) /* new_file on <var_compiler:SeparateErasureCompiler>*/;
255 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__do_property_coloring
]))(var_compiler
) /* do_property_coloring on <var_compiler:SeparateErasureCompiler>*/;
256 var26
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(var_mainmodule
) /* in_importation on <var_mainmodule:MModule>*/;
257 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var26
) /* greaters on <var26:POSetElement[MModule]>*/;
258 var28
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var27
) /* iterator on <var27:Collection[Object](Collection[MModule])>*/;
260 var29
= ((short int (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var28
) /* is_ok on <var28:Iterator[nullable Object]>*/;
262 var30
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var28
) /* item on <var28:Iterator[nullable Object]>*/;
264 var31
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MModule__intro_mclasses
]))(var_m
) /* intro_mclasses on <var_m:MModule>*/;
265 var32
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var31
) /* iterator on <var31:Array[MClass]>*/;
267 var33
= ((short int (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var32
) /* is_ok on <var32:Iterator[nullable Object]>*/;
269 var34
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var32
) /* item on <var32:Iterator[nullable Object]>*/;
271 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_class_to_c
]))(var_compiler
, var_mclass
) /* compile_class_to_c on <var_compiler:SeparateErasureCompiler>*/;
272 CONTINUE_label
: (void)0;
273 ((void (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var32
) /* next on <var32:Iterator[nullable Object]>*/;
275 BREAK_label
: (void)0;
276 CONTINUE_label35
: (void)0;
277 ((void (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var28
) /* next on <var28:Iterator[nullable Object]>*/;
279 BREAK_label35
: (void)0;
280 var36
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_layout
]))(var_compiler
) /* vt_layout on <var_compiler:SeparateErasureCompiler>*/;
282 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
283 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 52);
286 var37
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var36
) /* pos on <var36:nullable Layout[MVirtualTypeProp]>*/;
288 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_color_consts
]))(var_compiler
, var37
) /* compile_color_consts on <var_compiler:SeparateErasureCompiler>*/;
289 var38
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__name
]))(var_mainmodule
) /* name on <var_mainmodule:MModule>*/;
295 var43
= string__NativeString__to_s_with_length(var41
, var42
);
299 var44
= NEW_array__Array(&type_array__Arraykernel__Object
);
300 { /* var44 = array_instance Array[Object] */
302 var46
= NEW_array__NativeArray(var45
, &type_array__NativeArraykernel__Object
);
303 ((struct instance_array__NativeArray
*)var46
)->values
[0] = (val
*) var38
;
304 ((struct instance_array__NativeArray
*)var46
)->values
[1] = (val
*) var40
;
305 ((void (*)(val
*, val
*, long))(var44
->class->vft
[COLOR_array__Array__with_native
]))(var44
, var46
, var45
) /* with_native on <var44:Array[Object]>*/;
307 var47
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_string__Object__to_s
]))(var44
) /* to_s on <var44:Array[Object]>*/;
308 var48
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var47
) /* new_file on <var_compiler:SeparateErasureCompiler>*/;
310 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_main_function
]))(var_compiler
) /* compile_main_function on <var_compiler:SeparateErasureCompiler>*/;
311 var49
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(var_mainmodule
) /* in_importation on <var_mainmodule:MModule>*/;
312 var50
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var49
) /* greaters on <var49:POSetElement[MModule]>*/;
313 var51
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var50
) /* iterator on <var50:Collection[Object](Collection[MModule])>*/;
315 var52
= ((short int (*)(val
*))(var51
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var51
) /* is_ok on <var51:Iterator[nullable Object]>*/;
317 var53
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var51
) /* item on <var51:Iterator[nullable Object]>*/;
319 var55
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
323 var58
= "Generate C for module ";
325 var60
= string__NativeString__to_s_with_length(var58
, var59
);
329 var61
= NEW_array__Array(&type_array__Arraykernel__Object
);
330 { /* var61 = array_instance Array[Object] */
332 var63
= NEW_array__NativeArray(var62
, &type_array__NativeArraykernel__Object
);
333 ((struct instance_array__NativeArray
*)var63
)->values
[0] = (val
*) var57
;
334 ((struct instance_array__NativeArray
*)var63
)->values
[1] = (val
*) var_m54
;
335 ((void (*)(val
*, val
*, long))(var61
->class->vft
[COLOR_array__Array__with_native
]))(var61
, var63
, var62
) /* with_native on <var61:Array[Object]>*/;
337 var64
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_string__Object__to_s
]))(var61
) /* to_s on <var61:Array[Object]>*/;
339 ((void (*)(val
*, val
*, long))(var55
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var55
, var64
, var65
) /* info on <var55:ToolContext>*/;
340 var66
= ((val
* (*)(val
*))(var_m54
->class->vft
[COLOR_mmodule__MModule__name
]))(var_m54
) /* name on <var_m54:MModule>*/;
346 var71
= string__NativeString__to_s_with_length(var69
, var70
);
350 var72
= NEW_array__Array(&type_array__Arraykernel__Object
);
351 { /* var72 = array_instance Array[Object] */
353 var74
= NEW_array__NativeArray(var73
, &type_array__NativeArraykernel__Object
);
354 ((struct instance_array__NativeArray
*)var74
)->values
[0] = (val
*) var66
;
355 ((struct instance_array__NativeArray
*)var74
)->values
[1] = (val
*) var68
;
356 ((void (*)(val
*, val
*, long))(var72
->class->vft
[COLOR_array__Array__with_native
]))(var72
, var74
, var73
) /* with_native on <var72:Array[Object]>*/;
358 var75
= ((val
* (*)(val
*))(var72
->class->vft
[COLOR_string__Object__to_s
]))(var72
) /* to_s on <var72:Array[Object]>*/;
359 var76
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var75
) /* new_file on <var_compiler:SeparateErasureCompiler>*/;
361 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_module_to_c
]))(var_compiler
, var_m54
) /* compile_module_to_c on <var_compiler:SeparateErasureCompiler>*/;
362 CONTINUE_label77
: (void)0;
363 ((void (*)(val
*))(var51
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var51
) /* next on <var51:Iterator[nullable Object]>*/;
365 BREAK_label77
: (void)0;
366 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__display_stats
]))(var_compiler
) /* display_stats on <var_compiler:SeparateErasureCompiler>*/;
367 var78
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
369 var79
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
373 var82
= "*** END GENERATING C: ";
375 var84
= string__NativeString__to_s_with_length(var82
, var83
);
379 { /* Inline kernel#Int#- (var_time1,var_time0) */
380 var87
= var_time1
- var_time0
;
390 var92
= string__NativeString__to_s_with_length(var90
, var91
);
394 var93
= NEW_array__Array(&type_array__Arraykernel__Object
);
395 { /* var93 = array_instance Array[Object] */
397 var95
= NEW_array__NativeArray(var94
, &type_array__NativeArraykernel__Object
);
398 ((struct instance_array__NativeArray
*)var95
)->values
[0] = (val
*) var81
;
399 var96
= BOX_kernel__Int(var85
); /* autobox from Int to Object */
400 ((struct instance_array__NativeArray
*)var95
)->values
[1] = (val
*) var96
;
401 ((struct instance_array__NativeArray
*)var95
)->values
[2] = (val
*) var89
;
402 ((void (*)(val
*, val
*, long))(var93
->class->vft
[COLOR_array__Array__with_native
]))(var93
, var95
, var94
) /* with_native on <var93:Array[Object]>*/;
404 var97
= ((val
* (*)(val
*))(var93
->class->vft
[COLOR_string__Object__to_s
]))(var93
) /* to_s on <var93:Array[Object]>*/;
406 ((void (*)(val
*, val
*, long))(var79
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var79
, var97
, var98
) /* info on <var79:ToolContext>*/;
407 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__ModelBuilder__write_and_make
]))(self
, var_compiler
) /* write_and_make on <self:ModelBuilder>*/;
410 /* method separate_erasure_compiler#ModelBuilder#run_separate_erasure_compiler for (self: Object, MModule, nullable RapidTypeAnalysis) */
411 void VIRTUAL_separate_erasure_compiler__ModelBuilder__run_separate_erasure_compiler(val
* self
, val
* p0
, val
* p1
) {
412 separate_erasure_compiler__ModelBuilder__run_separate_erasure_compiler(self
, p0
, p1
);
415 /* method separate_erasure_compiler#SeparateErasureCompiler#class_layout for (self: SeparateErasureCompiler): nullable Layout[MClass] */
416 val
* separate_erasure_compiler__SeparateErasureCompiler__class_layout(val
* self
) {
417 val
* var
/* : nullable Layout[MClass] */;
418 val
* var1
/* : nullable Layout[MClass] */;
419 var1
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dclass_layout
].val
; /* @class_layout on <self:SeparateErasureCompiler> */
424 /* method separate_erasure_compiler#SeparateErasureCompiler#class_layout for (self: Object): nullable Layout[MClass] */
425 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_layout(val
* self
) {
426 val
* var
/* : nullable Layout[MClass] */;
427 val
* var1
/* : nullable Layout[MClass] */;
428 var1
= separate_erasure_compiler__SeparateErasureCompiler__class_layout(self
);
433 /* method separate_erasure_compiler#SeparateErasureCompiler#class_layout= for (self: SeparateErasureCompiler, nullable Layout[MClass]) */
434 void separate_erasure_compiler__SeparateErasureCompiler__class_layout_61d(val
* self
, val
* p0
) {
435 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dclass_layout
].val
= p0
; /* @class_layout on <self:SeparateErasureCompiler> */
438 /* method separate_erasure_compiler#SeparateErasureCompiler#class_layout= for (self: Object, nullable Layout[MClass]) */
439 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_layout_61d(val
* self
, val
* p0
) {
440 separate_erasure_compiler__SeparateErasureCompiler__class_layout_61d(self
, p0
);
443 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_layout for (self: SeparateErasureCompiler): nullable Layout[MVirtualTypeProp] */
444 val
* separate_erasure_compiler__SeparateErasureCompiler__vt_layout(val
* self
) {
445 val
* var
/* : nullable Layout[MVirtualTypeProp] */;
446 val
* var1
/* : nullable Layout[MVirtualTypeProp] */;
447 var1
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dvt_layout
].val
; /* @vt_layout on <self:SeparateErasureCompiler> */
452 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_layout for (self: Object): nullable Layout[MVirtualTypeProp] */
453 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__vt_layout(val
* self
) {
454 val
* var
/* : nullable Layout[MVirtualTypeProp] */;
455 val
* var1
/* : nullable Layout[MVirtualTypeProp] */;
456 var1
= separate_erasure_compiler__SeparateErasureCompiler__vt_layout(self
);
461 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_layout= for (self: SeparateErasureCompiler, nullable Layout[MVirtualTypeProp]) */
462 void separate_erasure_compiler__SeparateErasureCompiler__vt_layout_61d(val
* self
, val
* p0
) {
463 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dvt_layout
].val
= p0
; /* @vt_layout on <self:SeparateErasureCompiler> */
466 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_layout= for (self: Object, nullable Layout[MVirtualTypeProp]) */
467 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__vt_layout_61d(val
* self
, val
* p0
) {
468 separate_erasure_compiler__SeparateErasureCompiler__vt_layout_61d(self
, p0
);
471 /* method separate_erasure_compiler#SeparateErasureCompiler#init for (self: SeparateErasureCompiler, MModule, ModelBuilder, nullable RapidTypeAnalysis) */
472 void separate_erasure_compiler__SeparateErasureCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
473 val
* var_mainmodule
/* var mainmodule: MModule */;
474 val
* var_mmbuilder
/* var mmbuilder: ModelBuilder */;
475 val
* var_runtime_type_analysis
/* var runtime_type_analysis: nullable RapidTypeAnalysis */;
476 val
* var
/* : HashSet[MClass] */;
477 val
* var1
/* : Model */;
478 val
* var2
/* : Array[MClass] */;
479 val
* var_mclasses
/* var mclasses: HashSet[MClass] */;
480 val
* var3
/* : MClassColorer */;
481 val
* var_class_colorer
/* var class_colorer: MClassColorer */;
482 val
* var4
/* : ModelBuilder */;
483 val
* var5
/* : ToolContext */;
484 val
* var6
/* : OptionBool */;
485 val
* var7
/* : nullable Object */;
486 short int var8
/* : Bool */;
487 val
* var9
/* : MClassHasher */;
488 val
* var10
/* : PHModOperator */;
489 val
* var_layout_builder
/* var layout_builder: TypingLayoutBuilder[MClass] */;
490 val
* var11
/* : Layout[Object] */;
491 val
* var12
/* : ModelBuilder */;
492 val
* var13
/* : ToolContext */;
493 val
* var14
/* : OptionBool */;
494 val
* var15
/* : nullable Object */;
495 short int var16
/* : Bool */;
496 val
* var17
/* : MClassHasher */;
497 val
* var18
/* : PHAndOperator */;
498 val
* var19
/* : Layout[Object] */;
499 val
* var20
/* : ModelBuilder */;
500 val
* var21
/* : ToolContext */;
501 val
* var22
/* : OptionBool */;
502 val
* var23
/* : nullable Object */;
503 short int var24
/* : Bool */;
504 val
* var25
/* : MClassBMizer */;
505 val
* var26
/* : Layout[Object] */;
506 val
* var27
/* : Layout[Object] */;
507 val
* var28
/* : Map[MClass, Array[nullable MClass]] */;
508 val
* var29
/* : HashMap[MClass, Set[MVirtualTypeProp]] */;
509 val
* var_vts
/* var vts: HashMap[MClass, Set[MVirtualTypeProp]] */;
510 val
* var30
/* : Iterator[nullable Object] */;
511 short int var31
/* : Bool */;
512 val
* var32
/* : nullable Object */;
513 val
* var_mclass
/* var mclass: MClass */;
514 val
* var33
/* : HashSet[MVirtualTypeProp] */;
515 val
* var34
/* : MModule */;
516 val
* var35
/* : Set[MProperty] */;
517 val
* var36
/* : Iterator[nullable Object] */;
518 short int var37
/* : Bool */;
519 val
* var38
/* : nullable Object */;
520 val
* var_mprop
/* var mprop: MProperty */;
521 short int var39
/* : Bool */;
524 val
* var40
/* : nullable Object */;
525 val
* var42
/* : MPropertyColorer[MVirtualTypeProp] */;
526 val
* var_vt_coloring
/* var vt_coloring: MPropertyColorer[MVirtualTypeProp] */;
527 val
* var43
/* : Layout[PropertyLayoutElement] */;
528 val
* var_vt_layout
/* var vt_layout: Layout[MVirtualTypeProp] */;
529 val
* var44
/* : Map[MClass, Array[nullable MPropDef]] */;
532 var_runtime_type_analysis
= p2
;
533 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__init
]))(self
, p0
, p1
, p2
) /* init on <self:SeparateErasureCompiler>*/;
534 var
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass
);
535 var1
= ((val
* (*)(val
*))(var_mmbuilder
->class->vft
[COLOR_modelbuilder__ModelBuilder__model
]))(var_mmbuilder
) /* model on <var_mmbuilder:ModelBuilder>*/;
536 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__Model__mclasses
]))(var1
) /* mclasses on <var1:Model>*/;
537 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_hash_collection__HashSet__from
]))(var
, var2
) /* from on <var:HashSet[MClass]>*/;
539 var3
= NEW_layout_builders__MClassColorer(&type_layout_builders__MClassColorer
);
540 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_layout_builders__MClassColorer__init
]))(var3
, var_mainmodule
) /* init on <var3:MClassColorer>*/;
541 var_class_colorer
= var3
;
542 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateErasureCompiler>*/;
543 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var4
) /* toolcontext on <var4:ModelBuilder>*/;
544 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var5
) /* opt_phmod_typing on <var5:ToolContext>*/;
545 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_opts__Option__value
]))(var6
) /* value on <var6:OptionBool>*/;
546 var8
= ((struct instance_kernel__Bool
*)var7
)->value
; /* autounbox from nullable Object to Bool */;
548 var9
= NEW_layout_builders__MClassHasher(&type_layout_builders__MClassHasher
);
549 var10
= NEW_layout_builders__PHModOperator(&type_layout_builders__PHModOperator
);
550 ((void (*)(val
*))(var10
->class->vft
[COLOR_layout_builders__PHModOperator__init
]))(var10
) /* init on <var10:PHModOperator>*/;
551 ((void (*)(val
*, val
*, val
*))(var9
->class->vft
[COLOR_layout_builders__MClassHasher__init
]))(var9
, var10
, var_mainmodule
) /* init on <var9:MClassHasher>*/;
552 var_layout_builder
= var9
;
553 var11
= ((val
* (*)(val
*, val
*))(var_class_colorer
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__build_layout
]))(var_class_colorer
, var_mclasses
) /* build_layout on <var_class_colorer:MClassColorer>*/;
556 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateErasureCompiler>*/;
557 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var12
) /* toolcontext on <var12:ModelBuilder>*/;
558 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var13
) /* opt_phand_typing on <var13:ToolContext>*/;
559 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_opts__Option__value
]))(var14
) /* value on <var14:OptionBool>*/;
560 var16
= ((struct instance_kernel__Bool
*)var15
)->value
; /* autounbox from nullable Object to Bool */;
562 var17
= NEW_layout_builders__MClassHasher(&type_layout_builders__MClassHasher
);
563 var18
= NEW_layout_builders__PHAndOperator(&type_layout_builders__PHAndOperator
);
564 ((void (*)(val
*))(var18
->class->vft
[COLOR_layout_builders__PHAndOperator__init
]))(var18
) /* init on <var18:PHAndOperator>*/;
565 ((void (*)(val
*, val
*, val
*))(var17
->class->vft
[COLOR_layout_builders__MClassHasher__init
]))(var17
, var18
, var_mainmodule
) /* init on <var17:MClassHasher>*/;
566 var_layout_builder
= var17
;
567 var19
= ((val
* (*)(val
*, val
*))(var_class_colorer
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__build_layout
]))(var_class_colorer
, var_mclasses
) /* build_layout on <var_class_colorer:MClassColorer>*/;
570 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateErasureCompiler>*/;
571 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var20
) /* toolcontext on <var20:ModelBuilder>*/;
572 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_separate_compiler__ToolContext__opt_bm_typing
]))(var21
) /* opt_bm_typing on <var21:ToolContext>*/;
573 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_opts__Option__value
]))(var22
) /* value on <var22:OptionBool>*/;
574 var24
= ((struct instance_kernel__Bool
*)var23
)->value
; /* autounbox from nullable Object to Bool */;
576 var25
= NEW_layout_builders__MClassBMizer(&type_layout_builders__MClassBMizer
);
577 ((void (*)(val
*, val
*))(var25
->class->vft
[COLOR_layout_builders__MClassBMizer__init
]))(var25
, var_mainmodule
) /* init on <var25:MClassBMizer>*/;
578 var_layout_builder
= var25
;
579 var26
= ((val
* (*)(val
*, val
*))(var_class_colorer
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__build_layout
]))(var_class_colorer
, var_mclasses
) /* build_layout on <var_class_colorer:MClassColorer>*/;
582 var_layout_builder
= var_class_colorer
;
586 var27
= ((val
* (*)(val
*, val
*))(var_layout_builder
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__build_layout
]))(var_layout_builder
, var_mclasses
) /* build_layout on <var_layout_builder:TypingLayoutBuilder[MClass]>*/;
587 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout_61d
]))(self
, var27
) /* class_layout= on <self:SeparateErasureCompiler>*/;
588 var28
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__build_class_typing_tables
]))(self
, var_mclasses
) /* build_class_typing_tables on <self:SeparateErasureCompiler>*/;
589 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_tables_61d
]))(self
, var28
) /* class_tables= on <self:SeparateErasureCompiler>*/;
590 var29
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp
);
591 ((void (*)(val
*))(var29
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var29
) /* init on <var29:HashMap[MClass, Set[MVirtualTypeProp]]>*/;
593 var30
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:HashSet[MClass]>*/;
595 var31
= ((short int (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var30
) /* is_ok on <var30:Iterator[nullable Object]>*/;
597 var32
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var30
) /* item on <var30:Iterator[nullable Object]>*/;
599 var33
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MVirtualTypeProp
);
600 ((void (*)(val
*))(var33
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var33
) /* init on <var33:HashSet[MVirtualTypeProp]>*/;
601 ((void (*)(val
*, val
*, val
*))(var_vts
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_vts
, var_mclass
, var33
) /* []= on <var_vts:HashMap[MClass, Set[MVirtualTypeProp]]>*/;
602 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
603 var35
= ((val
* (*)(val
*, val
*))(var34
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var34
, var_mclass
) /* properties on <var34:MModule>*/;
604 var36
= ((val
* (*)(val
*))(var35
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var35
) /* iterator on <var35:Set[MProperty]>*/;
606 var37
= ((short int (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var36
) /* is_ok on <var36:Iterator[nullable Object]>*/;
608 var38
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var36
) /* item on <var36:Iterator[nullable Object]>*/;
610 /* <var_mprop:MProperty> isa MVirtualTypeProp */
611 cltype
= type_model__MVirtualTypeProp
.color
;
612 idtype
= type_model__MVirtualTypeProp
.id
;
613 if(cltype
>= var_mprop
->type
->table_size
) {
616 var39
= var_mprop
->type
->type_table
[cltype
] == idtype
;
619 var40
= ((val
* (*)(val
*, val
*))(var_vts
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_vts
, var_mclass
) /* [] on <var_vts:HashMap[MClass, Set[MVirtualTypeProp]]>*/;
620 ((void (*)(val
*, val
*))(var40
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var40
, var_mprop
) /* add on <var40:nullable Object(Set[MVirtualTypeProp])>*/;
623 CONTINUE_label
: (void)0;
624 ((void (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var36
) /* next on <var36:Iterator[nullable Object]>*/;
626 BREAK_label
: (void)0;
627 CONTINUE_label41
: (void)0;
628 ((void (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var30
) /* next on <var30:Iterator[nullable Object]>*/;
630 BREAK_label41
: (void)0;
631 var42
= NEW_layout_builders__MPropertyColorer(&type_layout_builders__MPropertyColorermodel__MVirtualTypeProp
);
632 ((void (*)(val
*, val
*, val
*))(var42
->class->vft
[COLOR_layout_builders__MPropertyColorer__init
]))(var42
, var_mainmodule
, var_class_colorer
) /* init on <var42:MPropertyColorer[MVirtualTypeProp]>*/;
633 var_vt_coloring
= var42
;
634 var43
= ((val
* (*)(val
*, val
*))(var_vt_coloring
->class->vft
[COLOR_layout_builders__PropertyLayoutBuilder__build_layout
]))(var_vt_coloring
, var_vts
) /* build_layout on <var_vt_coloring:MPropertyColorer[MVirtualTypeProp]>*/;
635 var_vt_layout
= var43
;
636 var44
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__build_vt_tables
]))(self
, var_mclasses
, var_vt_layout
) /* build_vt_tables on <self:SeparateErasureCompiler>*/;
637 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_tables_61d
]))(self
, var44
) /* vt_tables= on <self:SeparateErasureCompiler>*/;
638 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_layout_61d
]))(self
, var_vt_layout
) /* vt_layout= on <self:SeparateErasureCompiler>*/;
641 /* method separate_erasure_compiler#SeparateErasureCompiler#init for (self: Object, MModule, ModelBuilder, nullable RapidTypeAnalysis) */
642 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
643 separate_erasure_compiler__SeparateErasureCompiler__init(self
, p0
, p1
, p2
);
646 /* method separate_erasure_compiler#SeparateErasureCompiler#build_vt_tables for (self: SeparateErasureCompiler, Set[MClass], Layout[MProperty]): Map[MClass, Array[nullable MPropDef]] */
647 val
* separate_erasure_compiler__SeparateErasureCompiler__build_vt_tables(val
* self
, val
* p0
, val
* p1
) {
648 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
649 val
* var_mclasses
/* var mclasses: Set[MClass] */;
650 val
* var_layout
/* var layout: Layout[MProperty] */;
651 val
* var1
/* : HashMap[MClass, Array[nullable MPropDef]] */;
652 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MPropDef]] */;
653 val
* var2
/* : Iterator[nullable Object] */;
654 short int var3
/* : Bool */;
655 val
* var4
/* : nullable Object */;
656 val
* var_mclass
/* var mclass: MClass */;
657 val
* var5
/* : Array[nullable MPropDef] */;
658 val
* var_table
/* var table: Array[nullable MPropDef] */;
659 val
* var6
/* : Array[MClass] */;
660 val
* var_parents
/* var parents: Array[MClass] */;
661 val
* var7
/* : MModule */;
662 val
* var8
/* : POSet[MClass] */;
663 short int var9
/* : Bool */;
664 val
* var10
/* : MModule */;
665 val
* var11
/* : POSetElement[MClass] */;
666 val
* var12
/* : Collection[Object] */;
667 val
* var13
/* : Array[nullable Object] */;
668 val
* var14
/* : MModule */;
669 val
* var15
/* : Iterator[nullable Object] */;
670 short int var16
/* : Bool */;
671 val
* var17
/* : nullable Object */;
672 val
* var_parent
/* var parent: MClass */;
673 short int var18
/* : Bool */;
674 val
* var19
/* : MModule */;
675 val
* var20
/* : Set[MProperty] */;
676 val
* var21
/* : Iterator[nullable Object] */;
677 short int var22
/* : Bool */;
678 val
* var23
/* : nullable Object */;
679 val
* var_mproperty
/* var mproperty: MProperty */;
680 short int var24
/* : Bool */;
683 short int var25
/* : Bool */;
684 val
* var27
/* : Map[Object, Int] */;
685 val
* var28
/* : nullable Object */;
686 long var29
/* : Int */;
687 long var_color
/* var color: Int */;
688 long var30
/* : Int */;
689 short int var31
/* : Bool */;
690 short int var33
/* : Bool */;
693 const char* var_class_name
;
694 short int var36
/* : Bool */;
695 val
* var37
/* : Range[Int] */;
696 long var38
/* : Int */;
697 val
* var39
/* : Discrete */;
698 val
* var40
/* : Discrete */;
699 val
* var41
/* : Iterator[nullable Object] */;
700 short int var42
/* : Bool */;
701 val
* var43
/* : nullable Object */;
702 long var_i
/* var i: Int */;
703 long var44
/* : Int */;
704 val
* var45
/* : null */;
705 val
* var47
/* : Array[MPropDef] */;
706 val
* var48
/* : Iterator[nullable Object] */;
707 short int var49
/* : Bool */;
708 val
* var50
/* : nullable Object */;
709 val
* var_mpropdef
/* var mpropdef: MVirtualTypeDef */;
710 val
* var51
/* : MClassDef */;
711 val
* var52
/* : MClass */;
712 short int var53
/* : Bool */;
713 val
* var55
/* : MModule */;
714 val
* var56
/* : Set[MProperty] */;
715 val
* var57
/* : Iterator[nullable Object] */;
716 short int var58
/* : Bool */;
717 val
* var59
/* : nullable Object */;
718 val
* var_mproperty60
/* var mproperty: MProperty */;
719 short int var61
/* : Bool */;
722 short int var64
/* : Bool */;
723 val
* var66
/* : Map[Object, Int] */;
724 val
* var67
/* : nullable Object */;
725 long var68
/* : Int */;
726 long var_color69
/* var color: Int */;
727 long var70
/* : Int */;
728 short int var71
/* : Bool */;
729 short int var73
/* : Bool */;
732 const char* var_class_name76
;
733 short int var77
/* : Bool */;
734 val
* var78
/* : Range[Int] */;
735 long var79
/* : Int */;
736 val
* var80
/* : Discrete */;
737 val
* var81
/* : Discrete */;
738 val
* var82
/* : Iterator[nullable Object] */;
739 short int var83
/* : Bool */;
740 val
* var84
/* : nullable Object */;
741 long var_i85
/* var i: Int */;
742 long var86
/* : Int */;
743 val
* var87
/* : null */;
744 val
* var89
/* : Array[MPropDef] */;
745 val
* var90
/* : Iterator[nullable Object] */;
746 short int var91
/* : Bool */;
747 val
* var92
/* : nullable Object */;
748 val
* var_mpropdef93
/* var mpropdef: MVirtualTypeDef */;
749 val
* var94
/* : MClassDef */;
750 val
* var95
/* : MClass */;
751 short int var96
/* : Bool */;
754 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef
);
755 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var1
) /* init on <var1:HashMap[MClass, Array[nullable MPropDef]]>*/;
757 var2
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:Set[MClass]>*/;
759 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var2
) /* is_ok on <var2:Iterator[nullable Object]>*/;
761 var4
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var2
) /* item on <var2:Iterator[nullable Object]>*/;
763 var5
= NEW_array__Array(&type_array__Arraynullable_model__MPropDef
);
764 ((void (*)(val
*))(var5
->class->vft
[COLOR_array__Array__init
]))(var5
) /* init on <var5:Array[nullable MPropDef]>*/;
766 var6
= NEW_array__Array(&type_array__Arraymodel__MClass
);
767 ((void (*)(val
*))(var6
->class->vft
[COLOR_array__Array__init
]))(var6
) /* init on <var6:Array[MClass]>*/;
769 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
770 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var7
) /* flatten_mclass_hierarchy on <var7:MModule>*/;
771 var9
= ((short int (*)(val
*, val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var8
, var_mclass
) /* has on <var8:POSet[MClass]>*/;
773 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
774 var11
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass
, var10
) /* in_hierarchy on <var_mclass:MClass>*/;
775 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var11
) /* greaters on <var11:POSetElement[MClass]>*/;
776 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_array__Collection__to_a
]))(var12
) /* to_a on <var12:Collection[Object](Collection[MClass])>*/;
778 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
779 ((void (*)(val
*, val
*))(var14
->class->vft
[COLOR_model__MModule__linearize_mclasses
]))(var14
, var_parents
) /* linearize_mclasses on <var14:MModule>*/;
782 var15
= ((val
* (*)(val
*))(var_parents
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_parents
) /* iterator on <var_parents:Array[MClass]>*/;
784 var16
= ((short int (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var15
) /* is_ok on <var15:Iterator[nullable Object]>*/;
786 var17
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var15
) /* item on <var15:Iterator[nullable Object]>*/;
788 var18
= ((short int (*)(val
*, val
*))(var_parent
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_parent
, var_mclass
) /* == on <var_parent:MClass>*/;
793 var19
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
794 var20
= ((val
* (*)(val
*, val
*))(var19
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var19
, var_parent
) /* properties on <var19:MModule>*/;
795 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var20
) /* iterator on <var20:Set[MProperty]>*/;
797 var22
= ((short int (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var21
) /* is_ok on <var21:Iterator[nullable Object]>*/;
799 var23
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var21
) /* item on <var21:Iterator[nullable Object]>*/;
800 var_mproperty
= var23
;
801 /* <var_mproperty:MProperty> isa MVirtualTypeProp */
802 cltype
= type_model__MVirtualTypeProp
.color
;
803 idtype
= type_model__MVirtualTypeProp
.id
;
804 if(cltype
>= var_mproperty
->type
->table_size
) {
807 var24
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
811 goto CONTINUE_label26
;
814 var27
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:Layout[MProperty]>*/;
815 var28
= ((val
* (*)(val
*, val
*))(var27
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var27
, var_mproperty
) /* [] on <var27:Map[Object, Int](Map[MProperty, Int])>*/;
816 var29
= ((struct instance_kernel__Int
*)var28
)->value
; /* autounbox from nullable Object to Int */;
818 var30
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
819 { /* Inline kernel#Int#<= (var30,var_color) */
820 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
821 /* <var_color:Int> isa OTHER */
822 var33
= 1; /* easy <var_color:Int> isa OTHER*/
824 var_class_name
= type_kernel__Int
.name
;
825 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
826 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
829 var36
= var30
<= var_color
;
835 var37
= NEW_range__Range(&type_range__Rangekernel__Int
);
836 var38
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
837 var39
= BOX_kernel__Int(var38
); /* autobox from Int to Discrete */
838 var40
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
839 ((void (*)(val
*, val
*, val
*))(var37
->class->vft
[COLOR_range__Range__without_last
]))(var37
, var39
, var40
) /* without_last on <var37:Range[Int]>*/;
840 var41
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var37
) /* iterator on <var37:Range[Int]>*/;
842 var42
= ((short int (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var41
) /* is_ok on <var41:Iterator[nullable Object]>*/;
844 var43
= ((val
* (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var41
) /* item on <var41:Iterator[nullable Object]>*/;
845 var44
= ((struct instance_kernel__Int
*)var43
)->value
; /* autounbox from nullable Object to Int */;
848 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_i
, var45
) /* []= on <var_table:Array[nullable MPropDef]>*/;
849 CONTINUE_label46
: (void)0;
850 ((void (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var41
) /* next on <var41:Iterator[nullable Object]>*/;
852 BREAK_label46
: (void)0;
855 var47
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty
) /* mpropdefs on <var_mproperty:MProperty(MVirtualTypeProp)>*/;
856 var48
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var47
) /* iterator on <var47:Array[MPropDef](Array[MVirtualTypeDef])>*/;
858 var49
= ((short int (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var48
) /* is_ok on <var48:Iterator[nullable Object]>*/;
860 var50
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var48
) /* item on <var48:Iterator[nullable Object]>*/;
861 var_mpropdef
= var50
;
862 var51
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MVirtualTypeDef>*/;
863 var52
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_model__MClassDef__mclass
]))(var51
) /* mclass on <var51:MClassDef>*/;
864 var53
= ((short int (*)(val
*, val
*))(var52
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var52
, var_parent
) /* == on <var52:MClass>*/;
866 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_color
, var_mpropdef
) /* []= on <var_table:Array[nullable MPropDef]>*/;
869 CONTINUE_label54
: (void)0;
870 ((void (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var48
) /* next on <var48:Iterator[nullable Object]>*/;
872 BREAK_label54
: (void)0;
873 CONTINUE_label26
: (void)0;
874 ((void (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var21
) /* next on <var21:Iterator[nullable Object]>*/;
876 BREAK_label26
: (void)0;
877 CONTINUE_label
: (void)0;
878 ((void (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var15
) /* next on <var15:Iterator[nullable Object]>*/;
880 BREAK_label
: (void)0;
881 var55
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
882 var56
= ((val
* (*)(val
*, val
*))(var55
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var55
, var_mclass
) /* properties on <var55:MModule>*/;
883 var57
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var56
) /* iterator on <var56:Set[MProperty]>*/;
885 var58
= ((short int (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var57
) /* is_ok on <var57:Iterator[nullable Object]>*/;
887 var59
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var57
) /* item on <var57:Iterator[nullable Object]>*/;
888 var_mproperty60
= var59
;
889 /* <var_mproperty60:MProperty> isa MVirtualTypeProp */
890 cltype62
= type_model__MVirtualTypeProp
.color
;
891 idtype63
= type_model__MVirtualTypeProp
.id
;
892 if(cltype62
>= var_mproperty60
->type
->table_size
) {
895 var61
= var_mproperty60
->type
->type_table
[cltype62
] == idtype63
;
899 goto CONTINUE_label65
;
902 var66
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:Layout[MProperty]>*/;
903 var67
= ((val
* (*)(val
*, val
*))(var66
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var66
, var_mproperty60
) /* [] on <var66:Map[Object, Int](Map[MProperty, Int])>*/;
904 var68
= ((struct instance_kernel__Int
*)var67
)->value
; /* autounbox from nullable Object to Int */;
906 var70
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
907 { /* Inline kernel#Int#<= (var70,var_color69) */
908 /* Covariant cast for argument 0 (i) <var_color69:Int> isa OTHER */
909 /* <var_color69:Int> isa OTHER */
910 var73
= 1; /* easy <var_color69:Int> isa OTHER*/
912 var_class_name76
= type_kernel__Int
.name
;
913 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name76
);
914 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
917 var77
= var70
<= var_color69
;
923 var78
= NEW_range__Range(&type_range__Rangekernel__Int
);
924 var79
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
925 var80
= BOX_kernel__Int(var79
); /* autobox from Int to Discrete */
926 var81
= BOX_kernel__Int(var_color69
); /* autobox from Int to Discrete */
927 ((void (*)(val
*, val
*, val
*))(var78
->class->vft
[COLOR_range__Range__without_last
]))(var78
, var80
, var81
) /* without_last on <var78:Range[Int]>*/;
928 var82
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var78
) /* iterator on <var78:Range[Int]>*/;
930 var83
= ((short int (*)(val
*))(var82
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var82
) /* is_ok on <var82:Iterator[nullable Object]>*/;
932 var84
= ((val
* (*)(val
*))(var82
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var82
) /* item on <var82:Iterator[nullable Object]>*/;
933 var86
= ((struct instance_kernel__Int
*)var84
)->value
; /* autounbox from nullable Object to Int */;
936 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_i85
, var87
) /* []= on <var_table:Array[nullable MPropDef]>*/;
937 CONTINUE_label88
: (void)0;
938 ((void (*)(val
*))(var82
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var82
) /* next on <var82:Iterator[nullable Object]>*/;
940 BREAK_label88
: (void)0;
943 var89
= ((val
* (*)(val
*))(var_mproperty60
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty60
) /* mpropdefs on <var_mproperty60:MProperty(MVirtualTypeProp)>*/;
944 var90
= ((val
* (*)(val
*))(var89
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var89
) /* iterator on <var89:Array[MPropDef](Array[MVirtualTypeDef])>*/;
946 var91
= ((short int (*)(val
*))(var90
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var90
) /* is_ok on <var90:Iterator[nullable Object]>*/;
948 var92
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var90
) /* item on <var90:Iterator[nullable Object]>*/;
949 var_mpropdef93
= var92
;
950 var94
= ((val
* (*)(val
*))(var_mpropdef93
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef93
) /* mclassdef on <var_mpropdef93:MVirtualTypeDef>*/;
951 var95
= ((val
* (*)(val
*))(var94
->class->vft
[COLOR_model__MClassDef__mclass
]))(var94
) /* mclass on <var94:MClassDef>*/;
952 var96
= ((short int (*)(val
*, val
*))(var95
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var95
, var_mclass
) /* == on <var95:MClass>*/;
954 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_color69
, var_mpropdef93
) /* []= on <var_table:Array[nullable MPropDef]>*/;
957 CONTINUE_label97
: (void)0;
958 ((void (*)(val
*))(var90
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var90
) /* next on <var90:Iterator[nullable Object]>*/;
960 BREAK_label97
: (void)0;
961 CONTINUE_label65
: (void)0;
962 ((void (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var57
) /* next on <var57:Iterator[nullable Object]>*/;
964 BREAK_label65
: (void)0;
965 ((void (*)(val
*, val
*, val
*))(var_tables
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_tables
, var_mclass
, var_table
) /* []= on <var_tables:HashMap[MClass, Array[nullable MPropDef]]>*/;
966 CONTINUE_label98
: (void)0;
967 ((void (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var2
) /* next on <var2:Iterator[nullable Object]>*/;
969 BREAK_label98
: (void)0;
975 /* method separate_erasure_compiler#SeparateErasureCompiler#build_vt_tables for (self: Object, Set[MClass], Layout[MProperty]): Map[MClass, Array[nullable MPropDef]] */
976 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__build_vt_tables(val
* self
, val
* p0
, val
* p1
) {
977 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
978 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
979 var1
= separate_erasure_compiler__SeparateErasureCompiler__build_vt_tables(self
, p0
, p1
);
984 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_typing_tables for (self: SeparateErasureCompiler, Set[MClass]): Map[MClass, Array[nullable MClass]] */
985 val
* separate_erasure_compiler__SeparateErasureCompiler__build_class_typing_tables(val
* self
, val
* p0
) {
986 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
987 val
* var_mclasses
/* var mclasses: Set[MClass] */;
988 val
* var1
/* : HashMap[MClass, Array[nullable MClass]] */;
989 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MClass]] */;
990 val
* var2
/* : nullable Layout[MClass] */;
991 val
* var_layout
/* var layout: nullable Layout[MClass] */;
992 val
* var3
/* : Iterator[nullable Object] */;
993 short int var4
/* : Bool */;
994 val
* var5
/* : nullable Object */;
995 val
* var_mclass
/* var mclass: MClass */;
996 val
* var6
/* : Array[nullable MClass] */;
997 val
* var_table
/* var table: Array[nullable MClass] */;
998 val
* var7
/* : Array[MClass] */;
999 val
* var_supers
/* var supers: Array[MClass] */;
1000 val
* var8
/* : MModule */;
1001 val
* var9
/* : POSet[MClass] */;
1002 short int var10
/* : Bool */;
1003 val
* var11
/* : MModule */;
1004 val
* var12
/* : POSetElement[MClass] */;
1005 val
* var13
/* : Collection[Object] */;
1006 val
* var14
/* : Array[nullable Object] */;
1007 val
* var15
/* : Iterator[nullable Object] */;
1008 short int var16
/* : Bool */;
1009 val
* var17
/* : nullable Object */;
1010 val
* var_sup
/* var sup: MClass */;
1011 short int var18
/* : Bool */;
1014 val
* var19
/* : Map[Object, Map[Object, Int]] */;
1015 val
* var20
/* : nullable Object */;
1016 val
* var21
/* : nullable Object */;
1017 long var22
/* : Int */;
1018 long var_color
/* var color: Int */;
1019 val
* var23
/* : Map[Object, Int] */;
1020 val
* var24
/* : nullable Object */;
1021 long var25
/* : Int */;
1022 long var26
/* : Int */;
1023 short int var27
/* : Bool */;
1024 short int var29
/* : Bool */;
1027 const char* var_class_name
;
1028 short int var32
/* : Bool */;
1029 val
* var33
/* : Range[Int] */;
1030 long var34
/* : Int */;
1031 val
* var35
/* : Discrete */;
1032 val
* var36
/* : Discrete */;
1033 val
* var37
/* : Iterator[nullable Object] */;
1034 short int var38
/* : Bool */;
1035 val
* var39
/* : nullable Object */;
1036 long var_i
/* var i: Int */;
1037 long var40
/* : Int */;
1038 val
* var41
/* : null */;
1040 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MClass
);
1041 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var1
) /* init on <var1:HashMap[MClass, Array[nullable MClass]]>*/;
1043 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout
]))(self
) /* class_layout on <self:SeparateErasureCompiler>*/;
1045 var3
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:Set[MClass]>*/;
1047 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
1049 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
1051 var6
= NEW_array__Array(&type_array__Arraynullable_model__MClass
);
1052 ((void (*)(val
*))(var6
->class->vft
[COLOR_array__Array__init
]))(var6
) /* init on <var6:Array[nullable MClass]>*/;
1054 var7
= NEW_array__Array(&type_array__Arraymodel__MClass
);
1055 ((void (*)(val
*))(var7
->class->vft
[COLOR_array__Array__init
]))(var7
) /* init on <var7:Array[MClass]>*/;
1057 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
1058 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var8
) /* flatten_mclass_hierarchy on <var8:MModule>*/;
1059 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var9
, var_mclass
) /* has on <var9:POSet[MClass]>*/;
1061 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
1062 var12
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass
, var11
) /* in_hierarchy on <var_mclass:MClass>*/;
1063 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var12
) /* greaters on <var12:POSetElement[MClass]>*/;
1064 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_array__Collection__to_a
]))(var13
) /* to_a on <var13:Collection[Object](Collection[MClass])>*/;
1068 var15
= ((val
* (*)(val
*))(var_supers
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_supers
) /* iterator on <var_supers:Array[MClass]>*/;
1070 var16
= ((short int (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var15
) /* is_ok on <var15:Iterator[nullable Object]>*/;
1072 var17
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var15
) /* item on <var15:Iterator[nullable Object]>*/;
1074 /* <var_layout:nullable Layout[MClass]> isa PHLayout[MClass, MClass] */
1075 cltype
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.color
;
1076 idtype
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.id
;
1077 if(var_layout
== NULL
) {
1080 if(cltype
>= var_layout
->type
->table_size
) {
1083 var18
= var_layout
->type
->type_table
[cltype
] == idtype
;
1087 var19
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__hashes
]))(var_layout
) /* hashes on <var_layout:nullable Layout[MClass](PHLayout[MClass, MClass])>*/;
1088 var20
= ((val
* (*)(val
*, val
*))(var19
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var19
, var_mclass
) /* [] on <var19:Map[Object, Map[Object, Int]](Map[MClass, Map[MClass, Int]])>*/;
1089 var21
= ((val
* (*)(val
*, val
*))(var20
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var20
, var_sup
) /* [] on <var20:nullable Object(Map[MClass, Int])>*/;
1090 var22
= ((struct instance_kernel__Int
*)var21
)->value
; /* autounbox from nullable Object to Int */;
1093 if (var_layout
== NULL
) {
1094 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1095 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 182);
1098 var23
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MClass]>*/;
1100 var24
= ((val
* (*)(val
*, val
*))(var23
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var23
, var_sup
) /* [] on <var23:Map[Object, Int](Map[MClass, Int])>*/;
1101 var25
= ((struct instance_kernel__Int
*)var24
)->value
; /* autounbox from nullable Object to Int */;
1104 var26
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MClass]>*/;
1105 { /* Inline kernel#Int#<= (var26,var_color) */
1106 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
1107 /* <var_color:Int> isa OTHER */
1108 var29
= 1; /* easy <var_color:Int> isa OTHER*/
1110 var_class_name
= type_kernel__Int
.name
;
1111 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1112 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
1115 var32
= var26
<= var_color
;
1118 RET_LABEL28
:(void)0;
1121 var33
= NEW_range__Range(&type_range__Rangekernel__Int
);
1122 var34
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MClass]>*/;
1123 var35
= BOX_kernel__Int(var34
); /* autobox from Int to Discrete */
1124 var36
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
1125 ((void (*)(val
*, val
*, val
*))(var33
->class->vft
[COLOR_range__Range__without_last
]))(var33
, var35
, var36
) /* without_last on <var33:Range[Int]>*/;
1126 var37
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var33
) /* iterator on <var33:Range[Int]>*/;
1128 var38
= ((short int (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var37
) /* is_ok on <var37:Iterator[nullable Object]>*/;
1130 var39
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var37
) /* item on <var37:Iterator[nullable Object]>*/;
1131 var40
= ((struct instance_kernel__Int
*)var39
)->value
; /* autounbox from nullable Object to Int */;
1134 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_i
, var41
) /* []= on <var_table:Array[nullable MClass]>*/;
1135 CONTINUE_label
: (void)0;
1136 ((void (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var37
) /* next on <var37:Iterator[nullable Object]>*/;
1138 BREAK_label
: (void)0;
1141 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_color
, var_sup
) /* []= on <var_table:Array[nullable MClass]>*/;
1142 CONTINUE_label42
: (void)0;
1143 ((void (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var15
) /* next on <var15:Iterator[nullable Object]>*/;
1145 BREAK_label42
: (void)0;
1146 ((void (*)(val
*, val
*, val
*))(var_tables
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_tables
, var_mclass
, var_table
) /* []= on <var_tables:HashMap[MClass, Array[nullable MClass]]>*/;
1147 CONTINUE_label43
: (void)0;
1148 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
1150 BREAK_label43
: (void)0;
1156 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_typing_tables for (self: Object, Set[MClass]): Map[MClass, Array[nullable MClass]] */
1157 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__build_class_typing_tables(val
* self
, val
* p0
) {
1158 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
1159 val
* var1
/* : Map[MClass, Array[nullable MClass]] */;
1160 var1
= separate_erasure_compiler__SeparateErasureCompiler__build_class_typing_tables(self
, p0
);
1165 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_header_structs for (self: SeparateErasureCompiler) */
1166 void separate_erasure_compiler__SeparateErasureCompiler__compile_header_structs(val
* self
) {
1167 val
* var
/* : CodeWriter */;
1168 static val
* varonce
;
1169 val
* var1
/* : String */;
1170 char* var2
/* : NativeString */;
1171 long var3
/* : Int */;
1172 val
* var4
/* : String */;
1173 val
* var5
/* : CodeWriter */;
1174 static val
* varonce6
;
1175 val
* var7
/* : String */;
1176 char* var8
/* : NativeString */;
1177 long var9
/* : Int */;
1178 val
* var10
/* : String */;
1179 val
* var11
/* : CodeWriter */;
1180 static val
* varonce12
;
1181 val
* var13
/* : String */;
1182 char* var14
/* : NativeString */;
1183 long var15
/* : Int */;
1184 val
* var16
/* : String */;
1185 val
* var17
/* : CodeWriter */;
1186 static val
* varonce18
;
1187 val
* var19
/* : String */;
1188 char* var20
/* : NativeString */;
1189 long var21
/* : Int */;
1190 val
* var22
/* : String */;
1191 val
* var23
/* : nullable Layout[MVirtualTypeProp] */;
1192 short int var24
/* : Bool */;
1195 val
* var25
/* : CodeWriter */;
1196 static val
* varonce26
;
1197 val
* var27
/* : String */;
1198 char* var28
/* : NativeString */;
1199 long var29
/* : Int */;
1200 val
* var30
/* : String */;
1201 val
* var31
/* : CodeWriter */;
1202 static val
* varonce32
;
1203 val
* var33
/* : String */;
1204 char* var34
/* : NativeString */;
1205 long var35
/* : Int */;
1206 val
* var36
/* : String */;
1207 val
* var37
/* : ModelBuilder */;
1208 val
* var38
/* : ToolContext */;
1209 val
* var39
/* : OptionBool */;
1210 val
* var40
/* : nullable Object */;
1211 short int var41
/* : Bool */;
1212 val
* var42
/* : CodeWriter */;
1213 static val
* varonce43
;
1214 val
* var44
/* : String */;
1215 char* var45
/* : NativeString */;
1216 long var46
/* : Int */;
1217 val
* var47
/* : String */;
1218 val
* var48
/* : ModelBuilder */;
1219 val
* var49
/* : ToolContext */;
1220 val
* var50
/* : OptionBool */;
1221 val
* var51
/* : nullable Object */;
1222 short int var52
/* : Bool */;
1223 val
* var53
/* : CodeWriter */;
1224 static val
* varonce54
;
1225 val
* var55
/* : String */;
1226 char* var56
/* : NativeString */;
1227 long var57
/* : Int */;
1228 val
* var58
/* : String */;
1229 val
* var59
/* : CodeWriter */;
1230 static val
* varonce60
;
1231 val
* var61
/* : String */;
1232 char* var62
/* : NativeString */;
1233 long var63
/* : Int */;
1234 val
* var64
/* : String */;
1235 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1239 var2
= "typedef void(*nitmethod_t)(void); /* general C type representing a Nit method. */";
1241 var4
= string__NativeString__to_s_with_length(var2
, var3
);
1245 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var
, var1
) /* add_decl on <var:CodeWriter>*/;
1246 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_header_attribute_structs
]))(self
) /* compile_header_attribute_structs on <self:SeparateErasureCompiler>*/;
1247 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1251 var8
= "struct class { int id; const char *name; int box_kind; int color; const struct vts_table *vts_table; const struct type_table *type_table; nitmethod_t vft[]; }; /* general C type representing a Nit class. */";
1253 var10
= string__NativeString__to_s_with_length(var8
, var9
);
1257 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var5
, var7
) /* add_decl on <var5:CodeWriter>*/;
1258 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1262 var14
= "struct type_table { int size; int table[]; }; /* colorized type table. */";
1264 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1268 ((void (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var11
, var13
) /* add_decl on <var11:CodeWriter>*/;
1269 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1273 var20
= "struct vts_entry { short int is_nullable; const struct class *class; }; /* link (nullable or not) between the vts and is bound. */";
1275 var22
= string__NativeString__to_s_with_length(var20
, var21
);
1279 ((void (*)(val
*, val
*))(var17
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var17
, var19
) /* add_decl on <var17:CodeWriter>*/;
1280 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_layout
]))(self
) /* vt_layout on <self:SeparateErasureCompiler>*/;
1281 /* <var23:nullable Layout[MVirtualTypeProp]> isa PHLayout[MClass, MVirtualTypeProp] */
1282 cltype
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.color
;
1283 idtype
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.id
;
1287 if(cltype
>= var23
->type
->table_size
) {
1290 var24
= var23
->type
->type_table
[cltype
] == idtype
;
1294 var25
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1298 var28
= "struct vts_table { int mask; const struct vts_entry vts[]; }; /* vts list of a C type representation. */";
1300 var30
= string__NativeString__to_s_with_length(var28
, var29
);
1304 ((void (*)(val
*, val
*))(var25
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var25
, var27
) /* add_decl on <var25:CodeWriter>*/;
1306 var31
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1310 var34
= "struct vts_table { int dummy; const struct vts_entry vts[]; }; /* vts list of a C type representation. */";
1312 var36
= string__NativeString__to_s_with_length(var34
, var35
);
1316 ((void (*)(val
*, val
*))(var31
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var31
, var33
) /* add_decl on <var31:CodeWriter>*/;
1318 var37
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateErasureCompiler>*/;
1319 var38
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var37
) /* toolcontext on <var37:ModelBuilder>*/;
1320 var39
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var38
) /* opt_phmod_typing on <var38:ToolContext>*/;
1321 var40
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_opts__Option__value
]))(var39
) /* value on <var39:OptionBool>*/;
1322 var41
= ((struct instance_kernel__Bool
*)var40
)->value
; /* autounbox from nullable Object to Bool */;
1324 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1328 var45
= "#define HASH(mask, id) ((mask)%(id))";
1330 var47
= string__NativeString__to_s_with_length(var45
, var46
);
1334 ((void (*)(val
*, val
*))(var42
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var42
, var44
) /* add_decl on <var42:CodeWriter>*/;
1336 var48
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateErasureCompiler>*/;
1337 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var48
) /* toolcontext on <var48:ModelBuilder>*/;
1338 var50
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var49
) /* opt_phand_typing on <var49:ToolContext>*/;
1339 var51
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_opts__Option__value
]))(var50
) /* value on <var50:OptionBool>*/;
1340 var52
= ((struct instance_kernel__Bool
*)var51
)->value
; /* autounbox from nullable Object to Bool */;
1342 var53
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1346 var56
= "#define HASH(mask, id) ((mask)&(id))";
1348 var58
= string__NativeString__to_s_with_length(var56
, var57
);
1352 ((void (*)(val
*, val
*))(var53
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var53
, var55
) /* add_decl on <var53:CodeWriter>*/;
1356 var59
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1360 var62
= "typedef struct instance { const struct class *class; nitattribute_t attrs[1]; } val; /* general C type representing a Nit instance. */";
1362 var64
= string__NativeString__to_s_with_length(var62
, var63
);
1366 ((void (*)(val
*, val
*))(var59
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var59
, var61
) /* add_decl on <var59:CodeWriter>*/;
1369 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_header_structs for (self: Object) */
1370 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__compile_header_structs(val
* self
) {
1371 separate_erasure_compiler__SeparateErasureCompiler__compile_header_structs(self
);
1374 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_class_to_c for (self: SeparateErasureCompiler, MClass) */
1375 void separate_erasure_compiler__SeparateErasureCompiler__compile_class_to_c(val
* self
, val
* p0
) {
1376 val
* var_mclass
/* var mclass: MClass */;
1377 val
* var
/* : MClassDef */;
1378 val
* var1
/* : MClassType */;
1379 val
* var_mtype
/* var mtype: MClassType */;
1380 val
* var2
/* : String */;
1381 val
* var_c_name
/* var c_name: String */;
1382 val
* var3
/* : String */;
1383 val
* var_c_instance_name
/* var c_instance_name: String */;
1384 val
* var4
/* : Map[MClass, Array[nullable MPropDef]] */;
1385 val
* var5
/* : nullable Object */;
1386 val
* var_vft
/* var vft: Array[nullable MPropDef] */;
1387 val
* var6
/* : Map[MClass, Array[nullable MPropDef]] */;
1388 val
* var7
/* : nullable Object */;
1389 val
* var_attrs
/* var attrs: Array[nullable MPropDef] */;
1390 val
* var8
/* : Map[MClass, Array[nullable MClass]] */;
1391 val
* var9
/* : nullable Object */;
1392 val
* var_class_table
/* var class_table: Array[nullable MClass] */;
1393 val
* var10
/* : AbstractCompilerVisitor */;
1394 val
* var_v
/* var v: SeparateCompilerVisitor */;
1395 static val
* varonce
;
1396 val
* var11
/* : String */;
1397 char* var12
/* : NativeString */;
1398 long var13
/* : Int */;
1399 val
* var14
/* : String */;
1400 static val
* varonce15
;
1401 val
* var16
/* : String */;
1402 char* var17
/* : NativeString */;
1403 long var18
/* : Int */;
1404 val
* var19
/* : String */;
1405 val
* var20
/* : Array[Object] */;
1406 long var21
/* : Int */;
1407 val
* var22
/* : NativeArray[Object] */;
1408 val
* var23
/* : String */;
1409 static val
* varonce24
;
1410 val
* var25
/* : String */;
1411 char* var26
/* : NativeString */;
1412 long var27
/* : Int */;
1413 val
* var28
/* : String */;
1414 val
* var29
/* : Array[Object] */;
1415 long var30
/* : Int */;
1416 val
* var31
/* : NativeArray[Object] */;
1417 val
* var32
/* : String */;
1418 static val
* varonce33
;
1419 val
* var34
/* : String */;
1420 char* var35
/* : NativeString */;
1421 long var36
/* : Int */;
1422 val
* var37
/* : String */;
1423 static val
* varonce38
;
1424 val
* var39
/* : String */;
1425 char* var40
/* : NativeString */;
1426 long var41
/* : Int */;
1427 val
* var42
/* : String */;
1428 val
* var43
/* : Array[Object] */;
1429 long var44
/* : Int */;
1430 val
* var45
/* : NativeArray[Object] */;
1431 val
* var46
/* : String */;
1432 static val
* varonce47
;
1433 val
* var48
/* : String */;
1434 char* var49
/* : NativeString */;
1435 long var50
/* : Int */;
1436 val
* var51
/* : String */;
1437 static val
* varonce52
;
1438 val
* var53
/* : String */;
1439 char* var54
/* : NativeString */;
1440 long var55
/* : Int */;
1441 val
* var56
/* : String */;
1442 val
* var57
/* : Array[Object] */;
1443 long var58
/* : Int */;
1444 val
* var59
/* : NativeArray[Object] */;
1445 val
* var60
/* : String */;
1446 static val
* varonce61
;
1447 val
* var62
/* : String */;
1448 char* var63
/* : NativeString */;
1449 long var64
/* : Int */;
1450 val
* var65
/* : String */;
1451 static val
* varonce66
;
1452 val
* var67
/* : String */;
1453 char* var68
/* : NativeString */;
1454 long var69
/* : Int */;
1455 val
* var70
/* : String */;
1456 val
* var71
/* : Array[Object] */;
1457 long var72
/* : Int */;
1458 val
* var73
/* : NativeArray[Object] */;
1459 val
* var74
/* : String */;
1460 val
* var75
/* : nullable Layout[MClass] */;
1461 val
* var76
/* : Map[Object, Int] */;
1462 val
* var77
/* : nullable Object */;
1463 static val
* varonce78
;
1464 val
* var79
/* : String */;
1465 char* var80
/* : NativeString */;
1466 long var81
/* : Int */;
1467 val
* var82
/* : String */;
1468 val
* var83
/* : Array[Object] */;
1469 long var84
/* : Int */;
1470 val
* var85
/* : NativeArray[Object] */;
1471 val
* var86
/* : String */;
1472 static val
* varonce87
;
1473 val
* var88
/* : String */;
1474 char* var89
/* : NativeString */;
1475 long var90
/* : Int */;
1476 val
* var91
/* : String */;
1477 val
* var92
/* : String */;
1478 static val
* varonce93
;
1479 val
* var94
/* : String */;
1480 char* var95
/* : NativeString */;
1481 long var96
/* : Int */;
1482 val
* var97
/* : String */;
1483 val
* var98
/* : Array[Object] */;
1484 long var99
/* : Int */;
1485 val
* var100
/* : NativeArray[Object] */;
1486 val
* var101
/* : String */;
1487 long var102
/* : Int */;
1488 static val
* varonce103
;
1489 val
* var104
/* : String */;
1490 char* var105
/* : NativeString */;
1491 long var106
/* : Int */;
1492 val
* var107
/* : String */;
1493 val
* var108
/* : Array[Object] */;
1494 long var109
/* : Int */;
1495 val
* var110
/* : NativeArray[Object] */;
1496 val
* var111
/* : Object */;
1497 val
* var112
/* : String */;
1498 val
* var113
/* : nullable Layout[MClass] */;
1499 val
* var_layout
/* var layout: nullable Layout[MClass] */;
1500 short int var114
/* : Bool */;
1503 val
* var115
/* : Map[Object, Int] */;
1504 val
* var116
/* : nullable Object */;
1505 static val
* varonce117
;
1506 val
* var118
/* : String */;
1507 char* var119
/* : NativeString */;
1508 long var120
/* : Int */;
1509 val
* var121
/* : String */;
1510 val
* var122
/* : Array[Object] */;
1511 long var123
/* : Int */;
1512 val
* var124
/* : NativeArray[Object] */;
1513 val
* var125
/* : String */;
1514 val
* var126
/* : Map[Object, Int] */;
1515 val
* var127
/* : nullable Object */;
1516 static val
* varonce128
;
1517 val
* var129
/* : String */;
1518 char* var130
/* : NativeString */;
1519 long var131
/* : Int */;
1520 val
* var132
/* : String */;
1521 val
* var133
/* : Array[Object] */;
1522 long var134
/* : Int */;
1523 val
* var135
/* : NativeArray[Object] */;
1524 val
* var136
/* : String */;
1525 short int var137
/* : Bool */;
1526 static val
* varonce138
;
1527 val
* var139
/* : String */;
1528 char* var140
/* : NativeString */;
1529 long var141
/* : Int */;
1530 val
* var142
/* : String */;
1531 val
* var143
/* : Array[Object] */;
1532 long var144
/* : Int */;
1533 val
* var145
/* : NativeArray[Object] */;
1534 val
* var146
/* : String */;
1535 static val
* varonce147
;
1536 val
* var148
/* : String */;
1537 char* var149
/* : NativeString */;
1538 long var150
/* : Int */;
1539 val
* var151
/* : String */;
1540 static val
* varonce152
;
1541 val
* var153
/* : String */;
1542 char* var154
/* : NativeString */;
1543 long var155
/* : Int */;
1544 val
* var156
/* : String */;
1545 val
* var157
/* : Array[Object] */;
1546 long var158
/* : Int */;
1547 val
* var159
/* : NativeArray[Object] */;
1548 val
* var160
/* : String */;
1549 static val
* varonce161
;
1550 val
* var162
/* : String */;
1551 char* var163
/* : NativeString */;
1552 long var164
/* : Int */;
1553 val
* var165
/* : String */;
1554 static val
* varonce166
;
1555 val
* var167
/* : String */;
1556 char* var168
/* : NativeString */;
1557 long var169
/* : Int */;
1558 val
* var170
/* : String */;
1559 static val
* varonce171
;
1560 val
* var172
/* : String */;
1561 char* var173
/* : NativeString */;
1562 long var174
/* : Int */;
1563 val
* var175
/* : String */;
1564 val
* var176
/* : Array[Object] */;
1565 long var177
/* : Int */;
1566 val
* var178
/* : NativeArray[Object] */;
1567 val
* var179
/* : String */;
1568 static val
* varonce180
;
1569 val
* var181
/* : String */;
1570 char* var182
/* : NativeString */;
1571 long var183
/* : Int */;
1572 val
* var184
/* : String */;
1573 val
* var185
/* : Range[Int] */;
1574 long var186
/* : Int */;
1575 long var187
/* : Int */;
1576 val
* var188
/* : Discrete */;
1577 val
* var189
/* : Discrete */;
1578 val
* var190
/* : Iterator[nullable Object] */;
1579 short int var191
/* : Bool */;
1580 val
* var192
/* : nullable Object */;
1581 long var_i
/* var i: Int */;
1582 long var193
/* : Int */;
1583 val
* var194
/* : nullable Object */;
1584 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
1585 val
* var195
/* : null */;
1586 short int var196
/* : Bool */;
1587 static val
* varonce197
;
1588 val
* var198
/* : String */;
1589 char* var199
/* : NativeString */;
1590 long var200
/* : Int */;
1591 val
* var201
/* : String */;
1592 short int var202
/* : Bool */;
1593 short int var203
/* : Bool */;
1594 short int var_
/* var : Bool */;
1595 val
* var204
/* : MClassDef */;
1596 val
* var205
/* : MClassType */;
1597 val
* var206
/* : String */;
1598 static val
* varonce207
;
1599 val
* var208
/* : String */;
1600 char* var209
/* : NativeString */;
1601 long var210
/* : Int */;
1602 val
* var211
/* : String */;
1603 short int var212
/* : Bool */;
1604 static val
* varonce213
;
1605 val
* var214
/* : String */;
1606 char* var215
/* : NativeString */;
1607 long var216
/* : Int */;
1608 val
* var217
/* : String */;
1609 val
* var218
/* : String */;
1610 val
* var219
/* : Array[Object] */;
1611 long var220
/* : Int */;
1612 val
* var221
/* : NativeArray[Object] */;
1613 val
* var222
/* : String */;
1614 static val
* varonce223
;
1615 val
* var224
/* : String */;
1616 char* var225
/* : NativeString */;
1617 long var226
/* : Int */;
1618 val
* var227
/* : String */;
1619 val
* var228
/* : String */;
1620 static val
* varonce229
;
1621 val
* var230
/* : String */;
1622 char* var231
/* : NativeString */;
1623 long var232
/* : Int */;
1624 val
* var233
/* : String */;
1625 val
* var234
/* : MModule */;
1626 static val
* varonce235
;
1627 val
* var236
/* : String */;
1628 char* var237
/* : NativeString */;
1629 long var238
/* : Int */;
1630 val
* var239
/* : String */;
1631 static val
* varonce240
;
1632 val
* var241
/* : String */;
1633 char* var242
/* : NativeString */;
1634 long var243
/* : Int */;
1635 val
* var244
/* : String */;
1636 static val
* varonce245
;
1637 val
* var246
/* : String */;
1638 char* var247
/* : NativeString */;
1639 long var248
/* : Int */;
1640 val
* var249
/* : String */;
1641 val
* var250
/* : Array[Object] */;
1642 long var251
/* : Int */;
1643 val
* var252
/* : NativeArray[Object] */;
1644 val
* var253
/* : String */;
1645 val
* var254
/* : String */;
1646 val
* var255
/* : Array[Object] */;
1647 long var256
/* : Int */;
1648 val
* var257
/* : NativeArray[Object] */;
1649 val
* var258
/* : String */;
1650 static val
* varonce259
;
1651 val
* var260
/* : String */;
1652 char* var261
/* : NativeString */;
1653 long var262
/* : Int */;
1654 val
* var263
/* : String */;
1655 val
* var264
/* : String */;
1656 static val
* varonce265
;
1657 val
* var266
/* : String */;
1658 char* var267
/* : NativeString */;
1659 long var268
/* : Int */;
1660 val
* var269
/* : String */;
1661 val
* var270
/* : MModule */;
1662 static val
* varonce271
;
1663 val
* var272
/* : String */;
1664 char* var273
/* : NativeString */;
1665 long var274
/* : Int */;
1666 val
* var275
/* : String */;
1667 static val
* varonce276
;
1668 val
* var277
/* : String */;
1669 char* var278
/* : NativeString */;
1670 long var279
/* : Int */;
1671 val
* var280
/* : String */;
1672 static val
* varonce281
;
1673 val
* var282
/* : String */;
1674 char* var283
/* : NativeString */;
1675 long var284
/* : Int */;
1676 val
* var285
/* : String */;
1677 val
* var286
/* : Array[Object] */;
1678 long var287
/* : Int */;
1679 val
* var288
/* : NativeArray[Object] */;
1680 val
* var289
/* : String */;
1681 static val
* varonce290
;
1682 val
* var291
/* : String */;
1683 char* var292
/* : NativeString */;
1684 long var293
/* : Int */;
1685 val
* var294
/* : String */;
1686 static val
* varonce295
;
1687 val
* var296
/* : String */;
1688 char* var297
/* : NativeString */;
1689 long var298
/* : Int */;
1690 val
* var299
/* : String */;
1691 static val
* varonce300
;
1692 val
* var301
/* : String */;
1693 char* var302
/* : NativeString */;
1694 long var303
/* : Int */;
1695 val
* var304
/* : String */;
1696 static val
* varonce305
;
1697 val
* var306
/* : String */;
1698 char* var307
/* : NativeString */;
1699 long var308
/* : Int */;
1700 val
* var309
/* : String */;
1701 val
* var310
/* : Array[Object] */;
1702 long var311
/* : Int */;
1703 val
* var312
/* : NativeArray[Object] */;
1704 val
* var313
/* : String */;
1705 long var314
/* : Int */;
1706 static val
* varonce315
;
1707 val
* var316
/* : String */;
1708 char* var317
/* : NativeString */;
1709 long var318
/* : Int */;
1710 val
* var319
/* : String */;
1711 val
* var320
/* : Array[Object] */;
1712 long var321
/* : Int */;
1713 val
* var322
/* : NativeArray[Object] */;
1714 val
* var323
/* : Object */;
1715 val
* var324
/* : String */;
1716 static val
* varonce325
;
1717 val
* var326
/* : String */;
1718 char* var327
/* : NativeString */;
1719 long var328
/* : Int */;
1720 val
* var329
/* : String */;
1721 val
* var330
/* : Iterator[nullable Object] */;
1722 short int var331
/* : Bool */;
1723 val
* var332
/* : nullable Object */;
1724 val
* var_msuper
/* var msuper: nullable MClass */;
1725 val
* var333
/* : null */;
1726 short int var334
/* : Bool */;
1727 static val
* varonce335
;
1728 val
* var336
/* : String */;
1729 char* var337
/* : NativeString */;
1730 long var338
/* : Int */;
1731 val
* var339
/* : String */;
1732 val
* var340
/* : nullable Layout[MClass] */;
1733 val
* var341
/* : Map[Object, Int] */;
1734 val
* var342
/* : nullable Object */;
1735 static val
* varonce343
;
1736 val
* var344
/* : String */;
1737 char* var345
/* : NativeString */;
1738 long var346
/* : Int */;
1739 val
* var347
/* : String */;
1740 static val
* varonce348
;
1741 val
* var349
/* : String */;
1742 char* var350
/* : NativeString */;
1743 long var351
/* : Int */;
1744 val
* var352
/* : String */;
1745 val
* var353
/* : Array[Object] */;
1746 long var354
/* : Int */;
1747 val
* var355
/* : NativeArray[Object] */;
1748 val
* var356
/* : String */;
1749 static val
* varonce358
;
1750 val
* var359
/* : String */;
1751 char* var360
/* : NativeString */;
1752 long var361
/* : Int */;
1753 val
* var362
/* : String */;
1754 static val
* varonce363
;
1755 val
* var364
/* : String */;
1756 char* var365
/* : NativeString */;
1757 long var366
/* : Int */;
1758 val
* var367
/* : String */;
1759 val
* var368
/* : String */;
1760 static val
* varonce369
;
1761 val
* var370
/* : String */;
1762 char* var371
/* : NativeString */;
1763 long var372
/* : Int */;
1764 val
* var373
/* : String */;
1765 short int var374
/* : Bool */;
1766 short int var375
/* : Bool */;
1767 val
* var376
/* : MClass */;
1768 val
* var377
/* : String */;
1769 static val
* varonce378
;
1770 val
* var379
/* : String */;
1771 char* var380
/* : NativeString */;
1772 long var381
/* : Int */;
1773 val
* var382
/* : String */;
1774 short int var383
/* : Bool */;
1775 short int var_384
/* var : Bool */;
1776 val
* var385
/* : MClass */;
1777 val
* var386
/* : MClassKind */;
1778 val
* var387
/* : MClassKind */;
1779 short int var388
/* : Bool */;
1780 val
* var389
/* : CodeWriter */;
1781 static val
* varonce390
;
1782 val
* var391
/* : String */;
1783 char* var392
/* : NativeString */;
1784 long var393
/* : Int */;
1785 val
* var394
/* : String */;
1786 static val
* varonce395
;
1787 val
* var396
/* : String */;
1788 char* var397
/* : NativeString */;
1789 long var398
/* : Int */;
1790 val
* var399
/* : String */;
1791 val
* var400
/* : Array[Object] */;
1792 long var401
/* : Int */;
1793 val
* var402
/* : NativeArray[Object] */;
1794 val
* var403
/* : String */;
1795 val
* var404
/* : CodeWriter */;
1796 static val
* varonce405
;
1797 val
* var406
/* : String */;
1798 char* var407
/* : NativeString */;
1799 long var408
/* : Int */;
1800 val
* var409
/* : String */;
1801 val
* var410
/* : CodeWriter */;
1802 val
* var411
/* : String */;
1803 static val
* varonce412
;
1804 val
* var413
/* : String */;
1805 char* var414
/* : NativeString */;
1806 long var415
/* : Int */;
1807 val
* var416
/* : String */;
1808 val
* var417
/* : Array[Object] */;
1809 long var418
/* : Int */;
1810 val
* var419
/* : NativeArray[Object] */;
1811 val
* var420
/* : String */;
1812 val
* var421
/* : CodeWriter */;
1813 static val
* varonce422
;
1814 val
* var423
/* : String */;
1815 char* var424
/* : NativeString */;
1816 long var425
/* : Int */;
1817 val
* var426
/* : String */;
1818 static val
* varonce427
;
1819 val
* var428
/* : String */;
1820 char* var429
/* : NativeString */;
1821 long var430
/* : Int */;
1822 val
* var431
/* : String */;
1823 val
* var432
/* : Array[Object] */;
1824 long var433
/* : Int */;
1825 val
* var434
/* : NativeArray[Object] */;
1826 val
* var435
/* : String */;
1827 static val
* varonce436
;
1828 val
* var437
/* : String */;
1829 char* var438
/* : NativeString */;
1830 long var439
/* : Int */;
1831 val
* var440
/* : String */;
1832 static val
* varonce441
;
1833 val
* var442
/* : String */;
1834 char* var443
/* : NativeString */;
1835 long var444
/* : Int */;
1836 val
* var445
/* : String */;
1837 val
* var446
/* : String */;
1838 static val
* varonce447
;
1839 val
* var448
/* : String */;
1840 char* var449
/* : NativeString */;
1841 long var450
/* : Int */;
1842 val
* var451
/* : String */;
1843 val
* var452
/* : Array[Object] */;
1844 long var453
/* : Int */;
1845 val
* var454
/* : NativeArray[Object] */;
1846 val
* var455
/* : String */;
1847 static val
* varonce456
;
1848 val
* var457
/* : String */;
1849 char* var458
/* : NativeString */;
1850 long var459
/* : Int */;
1851 val
* var460
/* : String */;
1852 static val
* varonce461
;
1853 val
* var462
/* : String */;
1854 char* var463
/* : NativeString */;
1855 long var464
/* : Int */;
1856 val
* var465
/* : String */;
1857 val
* var466
/* : Array[Object] */;
1858 long var467
/* : Int */;
1859 val
* var468
/* : NativeArray[Object] */;
1860 val
* var469
/* : String */;
1861 static val
* varonce470
;
1862 val
* var471
/* : String */;
1863 char* var472
/* : NativeString */;
1864 long var473
/* : Int */;
1865 val
* var474
/* : String */;
1866 val
* var475
/* : String */;
1867 static val
* varonce476
;
1868 val
* var477
/* : String */;
1869 char* var478
/* : NativeString */;
1870 long var479
/* : Int */;
1871 val
* var480
/* : String */;
1872 val
* var481
/* : String */;
1873 static val
* varonce482
;
1874 val
* var483
/* : String */;
1875 char* var484
/* : NativeString */;
1876 long var485
/* : Int */;
1877 val
* var486
/* : String */;
1878 val
* var487
/* : Array[Object] */;
1879 long var488
/* : Int */;
1880 val
* var489
/* : NativeArray[Object] */;
1881 val
* var490
/* : String */;
1882 static val
* varonce491
;
1883 val
* var492
/* : String */;
1884 char* var493
/* : NativeString */;
1885 long var494
/* : Int */;
1886 val
* var495
/* : String */;
1887 static val
* varonce496
;
1888 val
* var497
/* : String */;
1889 char* var498
/* : NativeString */;
1890 long var499
/* : Int */;
1891 val
* var500
/* : String */;
1892 static val
* varonce501
;
1893 val
* var502
/* : String */;
1894 char* var503
/* : NativeString */;
1895 long var504
/* : Int */;
1896 val
* var505
/* : String */;
1897 val
* var506
/* : Array[Object] */;
1898 long var507
/* : Int */;
1899 val
* var508
/* : NativeArray[Object] */;
1900 val
* var509
/* : String */;
1901 static val
* varonce510
;
1902 val
* var511
/* : String */;
1903 char* var512
/* : NativeString */;
1904 long var513
/* : Int */;
1905 val
* var514
/* : String */;
1906 val
* var515
/* : Array[Object] */;
1907 long var516
/* : Int */;
1908 val
* var517
/* : NativeArray[Object] */;
1909 val
* var518
/* : String */;
1910 static val
* varonce519
;
1911 val
* var520
/* : String */;
1912 char* var521
/* : NativeString */;
1913 long var522
/* : Int */;
1914 val
* var523
/* : String */;
1915 static val
* varonce524
;
1916 val
* var525
/* : String */;
1917 char* var526
/* : NativeString */;
1918 long var527
/* : Int */;
1919 val
* var528
/* : String */;
1920 val
* var529
/* : Array[Object] */;
1921 long var530
/* : Int */;
1922 val
* var531
/* : NativeArray[Object] */;
1923 val
* var532
/* : String */;
1924 static val
* varonce533
;
1925 val
* var534
/* : String */;
1926 char* var535
/* : NativeString */;
1927 long var536
/* : Int */;
1928 val
* var537
/* : String */;
1929 static val
* varonce538
;
1930 val
* var539
/* : String */;
1931 char* var540
/* : NativeString */;
1932 long var541
/* : Int */;
1933 val
* var542
/* : String */;
1934 static val
* varonce543
;
1935 val
* var544
/* : String */;
1936 char* var545
/* : NativeString */;
1937 long var546
/* : Int */;
1938 val
* var547
/* : String */;
1939 val
* var548
/* : String */;
1940 static val
* varonce549
;
1941 val
* var550
/* : String */;
1942 char* var551
/* : NativeString */;
1943 long var552
/* : Int */;
1944 val
* var553
/* : String */;
1945 short int var554
/* : Bool */;
1946 val
* var555
/* : CodeWriter */;
1947 static val
* varonce556
;
1948 val
* var557
/* : String */;
1949 char* var558
/* : NativeString */;
1950 long var559
/* : Int */;
1951 val
* var560
/* : String */;
1952 static val
* varonce561
;
1953 val
* var562
/* : String */;
1954 char* var563
/* : NativeString */;
1955 long var564
/* : Int */;
1956 val
* var565
/* : String */;
1957 val
* var566
/* : Array[Object] */;
1958 long var567
/* : Int */;
1959 val
* var568
/* : NativeArray[Object] */;
1960 val
* var569
/* : String */;
1961 val
* var570
/* : CodeWriter */;
1962 static val
* varonce571
;
1963 val
* var572
/* : String */;
1964 char* var573
/* : NativeString */;
1965 long var574
/* : Int */;
1966 val
* var575
/* : String */;
1967 val
* var576
/* : CodeWriter */;
1968 static val
* varonce577
;
1969 val
* var578
/* : String */;
1970 char* var579
/* : NativeString */;
1971 long var580
/* : Int */;
1972 val
* var581
/* : String */;
1973 val
* var582
/* : CodeWriter */;
1974 static val
* varonce583
;
1975 val
* var584
/* : String */;
1976 char* var585
/* : NativeString */;
1977 long var586
/* : Int */;
1978 val
* var587
/* : String */;
1979 static val
* varonce588
;
1980 val
* var589
/* : String */;
1981 char* var590
/* : NativeString */;
1982 long var591
/* : Int */;
1983 val
* var592
/* : String */;
1984 val
* var593
/* : Array[Object] */;
1985 long var594
/* : Int */;
1986 val
* var595
/* : NativeArray[Object] */;
1987 val
* var596
/* : String */;
1988 val
* var597
/* : String */;
1989 static val
* varonce598
;
1990 val
* var599
/* : String */;
1991 char* var600
/* : NativeString */;
1992 long var601
/* : Int */;
1993 val
* var602
/* : String */;
1994 static val
* varonce603
;
1995 val
* var604
/* : String */;
1996 char* var605
/* : NativeString */;
1997 long var606
/* : Int */;
1998 val
* var607
/* : String */;
1999 val
* var608
/* : Array[Object] */;
2000 long var609
/* : Int */;
2001 val
* var610
/* : NativeArray[Object] */;
2002 val
* var611
/* : String */;
2003 static val
* varonce612
;
2004 val
* var613
/* : String */;
2005 char* var614
/* : NativeString */;
2006 long var615
/* : Int */;
2007 val
* var616
/* : String */;
2008 static val
* varonce617
;
2009 val
* var618
/* : String */;
2010 char* var619
/* : NativeString */;
2011 long var620
/* : Int */;
2012 val
* var621
/* : String */;
2013 val
* var622
/* : Array[Object] */;
2014 long var623
/* : Int */;
2015 val
* var624
/* : NativeArray[Object] */;
2016 val
* var625
/* : String */;
2017 val
* var626
/* : String */;
2018 static val
* varonce627
;
2019 val
* var628
/* : String */;
2020 char* var629
/* : NativeString */;
2021 long var630
/* : Int */;
2022 val
* var631
/* : String */;
2023 static val
* varonce632
;
2024 val
* var633
/* : String */;
2025 char* var634
/* : NativeString */;
2026 long var635
/* : Int */;
2027 val
* var636
/* : String */;
2028 val
* var637
/* : Array[Object] */;
2029 long var638
/* : Int */;
2030 val
* var639
/* : NativeArray[Object] */;
2031 val
* var640
/* : String */;
2032 static val
* varonce641
;
2033 val
* var642
/* : String */;
2034 char* var643
/* : NativeString */;
2035 long var644
/* : Int */;
2036 val
* var645
/* : String */;
2037 val
* var646
/* : RuntimeVariable */;
2038 val
* var_res
/* var res: RuntimeVariable */;
2039 short int var647
/* : Bool */;
2040 val
* var648
/* : Array[MType] */;
2041 val
* var649
/* : nullable Object */;
2042 val
* var_mtype_elt
/* var mtype_elt: MType */;
2043 static val
* varonce650
;
2044 val
* var651
/* : String */;
2045 char* var652
/* : NativeString */;
2046 long var653
/* : Int */;
2047 val
* var654
/* : String */;
2048 static val
* varonce655
;
2049 val
* var656
/* : String */;
2050 char* var657
/* : NativeString */;
2051 long var658
/* : Int */;
2052 val
* var659
/* : String */;
2053 val
* var660
/* : String */;
2054 static val
* varonce661
;
2055 val
* var662
/* : String */;
2056 char* var663
/* : NativeString */;
2057 long var664
/* : Int */;
2058 val
* var665
/* : String */;
2059 val
* var666
/* : Array[Object] */;
2060 long var667
/* : Int */;
2061 val
* var668
/* : NativeArray[Object] */;
2062 val
* var669
/* : String */;
2063 static val
* varonce670
;
2064 val
* var671
/* : String */;
2065 char* var672
/* : NativeString */;
2066 long var673
/* : Int */;
2067 val
* var674
/* : String */;
2068 val
* var675
/* : Array[Object] */;
2069 long var676
/* : Int */;
2070 val
* var677
/* : NativeArray[Object] */;
2071 val
* var678
/* : String */;
2072 static val
* varonce679
;
2073 val
* var680
/* : String */;
2074 char* var681
/* : NativeString */;
2075 long var682
/* : Int */;
2076 val
* var683
/* : String */;
2077 static val
* varonce684
;
2078 val
* var685
/* : String */;
2079 char* var686
/* : NativeString */;
2080 long var687
/* : Int */;
2081 val
* var688
/* : String */;
2082 val
* var689
/* : Array[Object] */;
2083 long var690
/* : Int */;
2084 val
* var691
/* : NativeArray[Object] */;
2085 val
* var692
/* : String */;
2086 static val
* varonce693
;
2087 val
* var694
/* : String */;
2088 char* var695
/* : NativeString */;
2089 long var696
/* : Int */;
2090 val
* var697
/* : String */;
2091 static val
* varonce698
;
2092 val
* var699
/* : String */;
2093 char* var700
/* : NativeString */;
2094 long var701
/* : Int */;
2095 val
* var702
/* : String */;
2096 val
* var703
/* : Array[Object] */;
2097 long var704
/* : Int */;
2098 val
* var705
/* : NativeArray[Object] */;
2099 val
* var706
/* : String */;
2100 static val
* varonce707
;
2101 val
* var708
/* : String */;
2102 char* var709
/* : NativeString */;
2103 long var710
/* : Int */;
2104 val
* var711
/* : String */;
2105 static val
* varonce712
;
2106 val
* var713
/* : String */;
2107 char* var714
/* : NativeString */;
2108 long var715
/* : Int */;
2109 val
* var716
/* : String */;
2110 val
* var717
/* : Array[Object] */;
2111 long var718
/* : Int */;
2112 val
* var719
/* : NativeArray[Object] */;
2113 val
* var720
/* : String */;
2114 val
* var721
/* : String */;
2115 static val
* varonce722
;
2116 val
* var723
/* : String */;
2117 char* var724
/* : NativeString */;
2118 long var725
/* : Int */;
2119 val
* var726
/* : String */;
2120 static val
* varonce727
;
2121 val
* var728
/* : String */;
2122 char* var729
/* : NativeString */;
2123 long var730
/* : Int */;
2124 val
* var731
/* : String */;
2125 val
* var732
/* : Array[Object] */;
2126 long var733
/* : Int */;
2127 val
* var734
/* : NativeArray[Object] */;
2128 val
* var735
/* : String */;
2129 static val
* varonce736
;
2130 val
* var737
/* : String */;
2131 char* var738
/* : NativeString */;
2132 long var739
/* : Int */;
2133 val
* var740
/* : String */;
2134 static val
* varonce741
;
2135 val
* var742
/* : String */;
2136 char* var743
/* : NativeString */;
2137 long var744
/* : Int */;
2138 val
* var745
/* : String */;
2139 val
* var746
/* : Array[Object] */;
2140 long var747
/* : Int */;
2141 val
* var748
/* : NativeArray[Object] */;
2142 val
* var749
/* : String */;
2143 val
* var750
/* : String */;
2144 static val
* varonce751
;
2145 val
* var752
/* : String */;
2146 char* var753
/* : NativeString */;
2147 long var754
/* : Int */;
2148 val
* var755
/* : String */;
2149 static val
* varonce756
;
2150 val
* var757
/* : String */;
2151 char* var758
/* : NativeString */;
2152 long var759
/* : Int */;
2153 val
* var760
/* : String */;
2154 val
* var761
/* : Array[Object] */;
2155 long var762
/* : Int */;
2156 val
* var763
/* : NativeArray[Object] */;
2157 val
* var764
/* : String */;
2158 static val
* varonce765
;
2159 val
* var766
/* : String */;
2160 char* var767
/* : NativeString */;
2161 long var768
/* : Int */;
2162 val
* var769
/* : String */;
2163 val
* var770
/* : RuntimeVariable */;
2164 val
* var_res771
/* var res: RuntimeVariable */;
2165 short int var772
/* : Bool */;
2166 static val
* varonce773
;
2167 val
* var774
/* : String */;
2168 char* var775
/* : NativeString */;
2169 long var776
/* : Int */;
2170 val
* var777
/* : String */;
2171 long var778
/* : Int */;
2172 static val
* varonce779
;
2173 val
* var780
/* : String */;
2174 char* var781
/* : NativeString */;
2175 long var782
/* : Int */;
2176 val
* var783
/* : String */;
2177 val
* var784
/* : Array[Object] */;
2178 long var785
/* : Int */;
2179 val
* var786
/* : NativeArray[Object] */;
2180 val
* var787
/* : Object */;
2181 val
* var788
/* : String */;
2182 static val
* varonce789
;
2183 val
* var790
/* : String */;
2184 char* var791
/* : NativeString */;
2185 long var792
/* : Int */;
2186 val
* var793
/* : String */;
2187 val
* var794
/* : Array[Object] */;
2188 long var795
/* : Int */;
2189 val
* var796
/* : NativeArray[Object] */;
2190 val
* var797
/* : String */;
2191 static val
* varonce798
;
2192 val
* var799
/* : String */;
2193 char* var800
/* : NativeString */;
2194 long var801
/* : Int */;
2195 val
* var802
/* : String */;
2196 static val
* varonce803
;
2197 val
* var804
/* : String */;
2198 char* var805
/* : NativeString */;
2199 long var806
/* : Int */;
2200 val
* var807
/* : String */;
2201 val
* var808
/* : Array[Object] */;
2202 long var809
/* : Int */;
2203 val
* var810
/* : NativeArray[Object] */;
2204 val
* var811
/* : String */;
2205 static val
* varonce812
;
2206 val
* var813
/* : String */;
2207 char* var814
/* : NativeString */;
2208 long var815
/* : Int */;
2209 val
* var816
/* : String */;
2210 static val
* varonce817
;
2211 val
* var818
/* : String */;
2212 char* var819
/* : NativeString */;
2213 long var820
/* : Int */;
2214 val
* var821
/* : String */;
2215 val
* var822
/* : Array[Object] */;
2216 long var823
/* : Int */;
2217 val
* var824
/* : NativeArray[Object] */;
2218 val
* var825
/* : String */;
2219 static val
* varonce826
;
2220 val
* var827
/* : String */;
2221 char* var828
/* : NativeString */;
2222 long var829
/* : Int */;
2223 val
* var830
/* : String */;
2225 var
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
2226 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var
) /* bound_mtype on <var:MClassDef>*/;
2228 var2
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
2230 var3
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_separate_compiler__MClass__c_instance_name
]))(var_mclass
) /* c_instance_name on <var_mclass:MClass>*/;
2231 var_c_instance_name
= var3
;
2232 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_tables
]))(self
) /* method_tables on <self:SeparateErasureCompiler>*/;
2233 var5
= ((val
* (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var4
, var_mclass
) /* [] on <var4:Map[MClass, Array[nullable MPropDef]]>*/;
2235 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_tables
]))(self
) /* attr_tables on <self:SeparateErasureCompiler>*/;
2236 var7
= ((val
* (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var6
, var_mclass
) /* [] on <var6:Map[MClass, Array[nullable MPropDef]]>*/;
2238 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_tables
]))(self
) /* class_tables on <self:SeparateErasureCompiler>*/;
2239 var9
= ((val
* (*)(val
*, val
*))(var8
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var8
, var_mclass
) /* [] on <var8:Map[MClass, Array[nullable MClass]]>*/;
2240 var_class_table
= var9
;
2241 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateErasureCompiler>*/;
2246 var12
= "/* runtime class ";
2248 var14
= string__NativeString__to_s_with_length(var12
, var13
);
2257 var19
= string__NativeString__to_s_with_length(var17
, var18
);
2261 var20
= NEW_array__Array(&type_array__Arraykernel__Object
);
2262 { /* var20 = array_instance Array[Object] */
2264 var22
= NEW_array__NativeArray(var21
, &type_array__NativeArraykernel__Object
);
2265 ((struct instance_array__NativeArray
*)var22
)->values
[0] = (val
*) var11
;
2266 ((struct instance_array__NativeArray
*)var22
)->values
[1] = (val
*) var_c_name
;
2267 ((struct instance_array__NativeArray
*)var22
)->values
[2] = (val
*) var16
;
2268 ((void (*)(val
*, val
*, long))(var20
->class->vft
[COLOR_array__Array__with_native
]))(var20
, var22
, var21
) /* with_native on <var20:Array[Object]>*/;
2270 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_string__Object__to_s
]))(var20
) /* to_s on <var20:Array[Object]>*/;
2271 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var23
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2277 var28
= string__NativeString__to_s_with_length(var26
, var27
);
2281 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
2282 { /* var29 = array_instance Array[Object] */
2284 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
2285 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var25
;
2286 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var_c_name
;
2287 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
2289 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
2293 var35
= "extern const struct class class_";
2295 var37
= string__NativeString__to_s_with_length(var35
, var36
);
2304 var42
= string__NativeString__to_s_with_length(var40
, var41
);
2308 var43
= NEW_array__Array(&type_array__Arraykernel__Object
);
2309 { /* var43 = array_instance Array[Object] */
2311 var45
= NEW_array__NativeArray(var44
, &type_array__NativeArraykernel__Object
);
2312 ((struct instance_array__NativeArray
*)var45
)->values
[0] = (val
*) var34
;
2313 ((struct instance_array__NativeArray
*)var45
)->values
[1] = (val
*) var_c_name
;
2314 ((struct instance_array__NativeArray
*)var45
)->values
[2] = (val
*) var39
;
2315 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[Object]>*/;
2317 var46
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_string__Object__to_s
]))(var43
) /* to_s on <var43:Array[Object]>*/;
2318 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var32
, var46
) /* provide_declaration on <self:SeparateErasureCompiler>*/;
2322 var49
= "extern const struct type_table type_table_";
2324 var51
= string__NativeString__to_s_with_length(var49
, var50
);
2333 var56
= string__NativeString__to_s_with_length(var54
, var55
);
2337 var57
= NEW_array__Array(&type_array__Arraykernel__Object
);
2338 { /* var57 = array_instance Array[Object] */
2340 var59
= NEW_array__NativeArray(var58
, &type_array__NativeArraykernel__Object
);
2341 ((struct instance_array__NativeArray
*)var59
)->values
[0] = (val
*) var48
;
2342 ((struct instance_array__NativeArray
*)var59
)->values
[1] = (val
*) var_c_name
;
2343 ((struct instance_array__NativeArray
*)var59
)->values
[2] = (val
*) var53
;
2344 ((void (*)(val
*, val
*, long))(var57
->class->vft
[COLOR_array__Array__with_native
]))(var57
, var59
, var58
) /* with_native on <var57:Array[Object]>*/;
2346 var60
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_string__Object__to_s
]))(var57
) /* to_s on <var57:Array[Object]>*/;
2347 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var60
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2351 var63
= "const struct class class_";
2353 var65
= string__NativeString__to_s_with_length(var63
, var64
);
2362 var70
= string__NativeString__to_s_with_length(var68
, var69
);
2366 var71
= NEW_array__Array(&type_array__Arraykernel__Object
);
2367 { /* var71 = array_instance Array[Object] */
2369 var73
= NEW_array__NativeArray(var72
, &type_array__NativeArraykernel__Object
);
2370 ((struct instance_array__NativeArray
*)var73
)->values
[0] = (val
*) var62
;
2371 ((struct instance_array__NativeArray
*)var73
)->values
[1] = (val
*) var_c_name
;
2372 ((struct instance_array__NativeArray
*)var73
)->values
[2] = (val
*) var67
;
2373 ((void (*)(val
*, val
*, long))(var71
->class->vft
[COLOR_array__Array__with_native
]))(var71
, var73
, var72
) /* with_native on <var71:Array[Object]>*/;
2375 var74
= ((val
* (*)(val
*))(var71
->class->vft
[COLOR_string__Object__to_s
]))(var71
) /* to_s on <var71:Array[Object]>*/;
2376 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var74
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2377 var75
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout
]))(self
) /* class_layout on <self:SeparateErasureCompiler>*/;
2378 if (var75
== NULL
) {
2379 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
2380 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 236);
2383 var76
= ((val
* (*)(val
*))(var75
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var75
) /* ids on <var75:nullable Layout[MClass]>*/;
2385 var77
= ((val
* (*)(val
*, val
*))(var76
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var76
, var_mclass
) /* [] on <var76:Map[Object, Int](Map[MClass, Int])>*/;
2391 var82
= string__NativeString__to_s_with_length(var80
, var81
);
2395 var83
= NEW_array__Array(&type_array__Arraykernel__Object
);
2396 { /* var83 = array_instance Array[Object] */
2398 var85
= NEW_array__NativeArray(var84
, &type_array__NativeArraykernel__Object
);
2399 ((struct instance_array__NativeArray
*)var85
)->values
[0] = (val
*) var77
;
2400 ((struct instance_array__NativeArray
*)var85
)->values
[1] = (val
*) var79
;
2401 ((void (*)(val
*, val
*, long))(var83
->class->vft
[COLOR_array__Array__with_native
]))(var83
, var85
, var84
) /* with_native on <var83:Array[Object]>*/;
2403 var86
= ((val
* (*)(val
*))(var83
->class->vft
[COLOR_string__Object__to_s
]))(var83
) /* to_s on <var83:Array[Object]>*/;
2404 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var86
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2410 var91
= string__NativeString__to_s_with_length(var89
, var90
);
2414 var92
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__name
]))(var_mclass
) /* name on <var_mclass:MClass>*/;
2418 var95
= "\", /* class_name_string */";
2420 var97
= string__NativeString__to_s_with_length(var95
, var96
);
2424 var98
= NEW_array__Array(&type_array__Arraykernel__Object
);
2425 { /* var98 = array_instance Array[Object] */
2427 var100
= NEW_array__NativeArray(var99
, &type_array__NativeArraykernel__Object
);
2428 ((struct instance_array__NativeArray
*)var100
)->values
[0] = (val
*) var88
;
2429 ((struct instance_array__NativeArray
*)var100
)->values
[1] = (val
*) var92
;
2430 ((struct instance_array__NativeArray
*)var100
)->values
[2] = (val
*) var94
;
2431 ((void (*)(val
*, val
*, long))(var98
->class->vft
[COLOR_array__Array__with_native
]))(var98
, var100
, var99
) /* with_native on <var98:Array[Object]>*/;
2433 var101
= ((val
* (*)(val
*))(var98
->class->vft
[COLOR_string__Object__to_s
]))(var98
) /* to_s on <var98:Array[Object]>*/;
2434 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var101
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2435 var102
= ((long (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kind_of
]))(self
, var_mclass
) /* box_kind_of on <self:SeparateErasureCompiler>*/;
2437 var104
= varonce103
;
2439 var105
= ", /* box_kind */";
2441 var107
= string__NativeString__to_s_with_length(var105
, var106
);
2443 varonce103
= var104
;
2445 var108
= NEW_array__Array(&type_array__Arraykernel__Object
);
2446 { /* var108 = array_instance Array[Object] */
2448 var110
= NEW_array__NativeArray(var109
, &type_array__NativeArraykernel__Object
);
2449 var111
= BOX_kernel__Int(var102
); /* autobox from Int to Object */
2450 ((struct instance_array__NativeArray
*)var110
)->values
[0] = (val
*) var111
;
2451 ((struct instance_array__NativeArray
*)var110
)->values
[1] = (val
*) var104
;
2452 ((void (*)(val
*, val
*, long))(var108
->class->vft
[COLOR_array__Array__with_native
]))(var108
, var110
, var109
) /* with_native on <var108:Array[Object]>*/;
2454 var112
= ((val
* (*)(val
*))(var108
->class->vft
[COLOR_string__Object__to_s
]))(var108
) /* to_s on <var108:Array[Object]>*/;
2455 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var112
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2456 var113
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout
]))(self
) /* class_layout on <self:SeparateErasureCompiler>*/;
2457 var_layout
= var113
;
2458 /* <var_layout:nullable Layout[MClass]> isa PHLayout[MClass, MClass] */
2459 cltype
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.color
;
2460 idtype
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.id
;
2461 if(var_layout
== NULL
) {
2464 if(cltype
>= var_layout
->type
->table_size
) {
2467 var114
= var_layout
->type
->type_table
[cltype
] == idtype
;
2471 var115
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__masks
]))(var_layout
) /* masks on <var_layout:nullable Layout[MClass](PHLayout[MClass, MClass])>*/;
2472 var116
= ((val
* (*)(val
*, val
*))(var115
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var115
, var_mclass
) /* [] on <var115:Map[Object, Int](Map[MClass, Int])>*/;
2474 var118
= varonce117
;
2478 var121
= string__NativeString__to_s_with_length(var119
, var120
);
2480 varonce117
= var118
;
2482 var122
= NEW_array__Array(&type_array__Arraykernel__Object
);
2483 { /* var122 = array_instance Array[Object] */
2485 var124
= NEW_array__NativeArray(var123
, &type_array__NativeArraykernel__Object
);
2486 ((struct instance_array__NativeArray
*)var124
)->values
[0] = (val
*) var116
;
2487 ((struct instance_array__NativeArray
*)var124
)->values
[1] = (val
*) var118
;
2488 ((void (*)(val
*, val
*, long))(var122
->class->vft
[COLOR_array__Array__with_native
]))(var122
, var124
, var123
) /* with_native on <var122:Array[Object]>*/;
2490 var125
= ((val
* (*)(val
*))(var122
->class->vft
[COLOR_string__Object__to_s
]))(var122
) /* to_s on <var122:Array[Object]>*/;
2491 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var125
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2493 if (var_layout
== NULL
) {
2494 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
2495 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 243);
2498 var126
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MClass]>*/;
2500 var127
= ((val
* (*)(val
*, val
*))(var126
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var126
, var_mclass
) /* [] on <var126:Map[Object, Int](Map[MClass, Int])>*/;
2502 var129
= varonce128
;
2506 var132
= string__NativeString__to_s_with_length(var130
, var131
);
2508 varonce128
= var129
;
2510 var133
= NEW_array__Array(&type_array__Arraykernel__Object
);
2511 { /* var133 = array_instance Array[Object] */
2513 var135
= NEW_array__NativeArray(var134
, &type_array__NativeArraykernel__Object
);
2514 ((struct instance_array__NativeArray
*)var135
)->values
[0] = (val
*) var127
;
2515 ((struct instance_array__NativeArray
*)var135
)->values
[1] = (val
*) var129
;
2516 ((void (*)(val
*, val
*, long))(var133
->class->vft
[COLOR_array__Array__with_native
]))(var133
, var135
, var134
) /* with_native on <var133:Array[Object]>*/;
2518 var136
= ((val
* (*)(val
*))(var133
->class->vft
[COLOR_string__Object__to_s
]))(var133
) /* to_s on <var133:Array[Object]>*/;
2519 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var136
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2521 var137
= ((short int (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__build_class_vts_table
]))(self
, var_mclass
) /* build_class_vts_table on <self:SeparateErasureCompiler>*/;
2524 var139
= varonce138
;
2526 var140
= "vts_table_";
2528 var142
= string__NativeString__to_s_with_length(var140
, var141
);
2530 varonce138
= var139
;
2532 var143
= NEW_array__Array(&type_array__Arraykernel__Object
);
2533 { /* var143 = array_instance Array[Object] */
2535 var145
= NEW_array__NativeArray(var144
, &type_array__NativeArraykernel__Object
);
2536 ((struct instance_array__NativeArray
*)var145
)->values
[0] = (val
*) var139
;
2537 ((struct instance_array__NativeArray
*)var145
)->values
[1] = (val
*) var_c_name
;
2538 ((void (*)(val
*, val
*, long))(var143
->class->vft
[COLOR_array__Array__with_native
]))(var143
, var145
, var144
) /* with_native on <var143:Array[Object]>*/;
2540 var146
= ((val
* (*)(val
*))(var143
->class->vft
[COLOR_string__Object__to_s
]))(var143
) /* to_s on <var143:Array[Object]>*/;
2541 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var146
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
2543 var148
= varonce147
;
2545 var149
= "&vts_table_";
2547 var151
= string__NativeString__to_s_with_length(var149
, var150
);
2549 varonce147
= var148
;
2552 var153
= varonce152
;
2556 var156
= string__NativeString__to_s_with_length(var154
, var155
);
2558 varonce152
= var153
;
2560 var157
= NEW_array__Array(&type_array__Arraykernel__Object
);
2561 { /* var157 = array_instance Array[Object] */
2563 var159
= NEW_array__NativeArray(var158
, &type_array__NativeArraykernel__Object
);
2564 ((struct instance_array__NativeArray
*)var159
)->values
[0] = (val
*) var148
;
2565 ((struct instance_array__NativeArray
*)var159
)->values
[1] = (val
*) var_c_name
;
2566 ((struct instance_array__NativeArray
*)var159
)->values
[2] = (val
*) var153
;
2567 ((void (*)(val
*, val
*, long))(var157
->class->vft
[COLOR_array__Array__with_native
]))(var157
, var159
, var158
) /* with_native on <var157:Array[Object]>*/;
2569 var160
= ((val
* (*)(val
*))(var157
->class->vft
[COLOR_string__Object__to_s
]))(var157
) /* to_s on <var157:Array[Object]>*/;
2570 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var160
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2573 var162
= varonce161
;
2577 var165
= string__NativeString__to_s_with_length(var163
, var164
);
2579 varonce161
= var162
;
2581 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var162
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2584 var167
= varonce166
;
2586 var168
= "&type_table_";
2588 var170
= string__NativeString__to_s_with_length(var168
, var169
);
2590 varonce166
= var167
;
2593 var172
= varonce171
;
2597 var175
= string__NativeString__to_s_with_length(var173
, var174
);
2599 varonce171
= var172
;
2601 var176
= NEW_array__Array(&type_array__Arraykernel__Object
);
2602 { /* var176 = array_instance Array[Object] */
2604 var178
= NEW_array__NativeArray(var177
, &type_array__NativeArraykernel__Object
);
2605 ((struct instance_array__NativeArray
*)var178
)->values
[0] = (val
*) var167
;
2606 ((struct instance_array__NativeArray
*)var178
)->values
[1] = (val
*) var_c_name
;
2607 ((struct instance_array__NativeArray
*)var178
)->values
[2] = (val
*) var172
;
2608 ((void (*)(val
*, val
*, long))(var176
->class->vft
[COLOR_array__Array__with_native
]))(var176
, var178
, var177
) /* with_native on <var176:Array[Object]>*/;
2610 var179
= ((val
* (*)(val
*))(var176
->class->vft
[COLOR_string__Object__to_s
]))(var176
) /* to_s on <var176:Array[Object]>*/;
2611 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var179
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2613 var181
= varonce180
;
2617 var184
= string__NativeString__to_s_with_length(var182
, var183
);
2619 varonce180
= var181
;
2621 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var181
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2622 var185
= NEW_range__Range(&type_range__Rangekernel__Int
);
2624 var187
= ((long (*)(val
*))(var_vft
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_vft
) /* length on <var_vft:Array[nullable MPropDef]>*/;
2625 var188
= BOX_kernel__Int(var186
); /* autobox from Int to Discrete */
2626 var189
= BOX_kernel__Int(var187
); /* autobox from Int to Discrete */
2627 ((void (*)(val
*, val
*, val
*))(var185
->class->vft
[COLOR_range__Range__without_last
]))(var185
, var188
, var189
) /* without_last on <var185:Range[Int]>*/;
2628 var190
= ((val
* (*)(val
*))(var185
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var185
) /* iterator on <var185:Range[Int]>*/;
2630 var191
= ((short int (*)(val
*))(var190
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var190
) /* is_ok on <var190:Iterator[nullable Object]>*/;
2632 var192
= ((val
* (*)(val
*))(var190
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var190
) /* item on <var190:Iterator[nullable Object]>*/;
2633 var193
= ((struct instance_kernel__Int
*)var192
)->value
; /* autounbox from nullable Object to Int */;
2635 var194
= ((val
* (*)(val
*, long))(var_vft
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_vft
, var_i
) /* [] on <var_vft:Array[nullable MPropDef]>*/;
2636 var_mpropdef
= var194
;
2638 if (var_mpropdef
== NULL
) {
2639 var196
= 1; /* is null */
2641 var196
= 0; /* arg is null but recv is not */
2645 var198
= varonce197
;
2647 var199
= "NULL, /* empty */";
2649 var201
= string__NativeString__to_s_with_length(var199
, var200
);
2651 varonce197
= var198
;
2653 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var198
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2660 var204
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
2661 var205
= ((val
* (*)(val
*))(var204
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var204
) /* bound_mtype on <var204:MClassDef>*/;
2662 var206
= ((val
* (*)(val
*))(var205
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var205
) /* ctype on <var205:MClassType>*/;
2664 var208
= varonce207
;
2668 var211
= string__NativeString__to_s_with_length(var209
, var210
);
2670 varonce207
= var208
;
2672 var212
= ((short int (*)(val
*, val
*))(var206
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var206
, var208
) /* != on <var206:String>*/;
2677 var214
= varonce213
;
2679 var215
= "VIRTUAL_";
2681 var217
= string__NativeString__to_s_with_length(var215
, var216
);
2683 varonce213
= var214
;
2685 var218
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var_mpropdef
) /* c_name on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
2686 var219
= NEW_array__Array(&type_array__Arraykernel__Object
);
2687 { /* var219 = array_instance Array[Object] */
2689 var221
= NEW_array__NativeArray(var220
, &type_array__NativeArraykernel__Object
);
2690 ((struct instance_array__NativeArray
*)var221
)->values
[0] = (val
*) var214
;
2691 ((struct instance_array__NativeArray
*)var221
)->values
[1] = (val
*) var218
;
2692 ((void (*)(val
*, val
*, long))(var219
->class->vft
[COLOR_array__Array__with_native
]))(var219
, var221
, var220
) /* with_native on <var219:Array[Object]>*/;
2694 var222
= ((val
* (*)(val
*))(var219
->class->vft
[COLOR_string__Object__to_s
]))(var219
) /* to_s on <var219:Array[Object]>*/;
2695 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var222
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
2697 var224
= varonce223
;
2699 var225
= "(nitmethod_t)VIRTUAL_";
2701 var227
= string__NativeString__to_s_with_length(var225
, var226
);
2703 varonce223
= var224
;
2705 var228
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var_mpropdef
) /* c_name on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
2707 var230
= varonce229
;
2709 var231
= ", /* pointer to ";
2711 var233
= string__NativeString__to_s_with_length(var231
, var232
);
2713 varonce229
= var230
;
2715 var234
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var_mclass
) /* intro_mmodule on <var_mclass:MClass>*/;
2717 var236
= varonce235
;
2721 var239
= string__NativeString__to_s_with_length(var237
, var238
);
2723 varonce235
= var236
;
2726 var241
= varonce240
;
2730 var244
= string__NativeString__to_s_with_length(var242
, var243
);
2732 varonce240
= var241
;
2735 var246
= varonce245
;
2739 var249
= string__NativeString__to_s_with_length(var247
, var248
);
2741 varonce245
= var246
;
2743 var250
= NEW_array__Array(&type_array__Arraykernel__Object
);
2744 { /* var250 = array_instance Array[Object] */
2746 var252
= NEW_array__NativeArray(var251
, &type_array__NativeArraykernel__Object
);
2747 ((struct instance_array__NativeArray
*)var252
)->values
[0] = (val
*) var224
;
2748 ((struct instance_array__NativeArray
*)var252
)->values
[1] = (val
*) var228
;
2749 ((struct instance_array__NativeArray
*)var252
)->values
[2] = (val
*) var230
;
2750 ((struct instance_array__NativeArray
*)var252
)->values
[3] = (val
*) var234
;
2751 ((struct instance_array__NativeArray
*)var252
)->values
[4] = (val
*) var236
;
2752 ((struct instance_array__NativeArray
*)var252
)->values
[5] = (val
*) var_mclass
;
2753 ((struct instance_array__NativeArray
*)var252
)->values
[6] = (val
*) var241
;
2754 ((struct instance_array__NativeArray
*)var252
)->values
[7] = (val
*) var_mpropdef
;
2755 ((struct instance_array__NativeArray
*)var252
)->values
[8] = (val
*) var246
;
2756 ((void (*)(val
*, val
*, long))(var250
->class->vft
[COLOR_array__Array__with_native
]))(var250
, var252
, var251
) /* with_native on <var250:Array[Object]>*/;
2758 var253
= ((val
* (*)(val
*))(var250
->class->vft
[COLOR_string__Object__to_s
]))(var250
) /* to_s on <var250:Array[Object]>*/;
2759 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var253
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2761 var254
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var_mpropdef
) /* c_name on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
2762 var255
= NEW_array__Array(&type_array__Arraykernel__Object
);
2763 { /* var255 = array_instance Array[Object] */
2765 var257
= NEW_array__NativeArray(var256
, &type_array__NativeArraykernel__Object
);
2766 ((struct instance_array__NativeArray
*)var257
)->values
[0] = (val
*) var254
;
2767 ((void (*)(val
*, val
*, long))(var255
->class->vft
[COLOR_array__Array__with_native
]))(var255
, var257
, var256
) /* with_native on <var255:Array[Object]>*/;
2769 var258
= ((val
* (*)(val
*))(var255
->class->vft
[COLOR_string__Object__to_s
]))(var255
) /* to_s on <var255:Array[Object]>*/;
2770 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var258
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
2772 var260
= varonce259
;
2774 var261
= "(nitmethod_t)";
2776 var263
= string__NativeString__to_s_with_length(var261
, var262
);
2778 varonce259
= var260
;
2780 var264
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var_mpropdef
) /* c_name on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
2782 var266
= varonce265
;
2784 var267
= ", /* pointer to ";
2786 var269
= string__NativeString__to_s_with_length(var267
, var268
);
2788 varonce265
= var266
;
2790 var270
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var_mclass
) /* intro_mmodule on <var_mclass:MClass>*/;
2792 var272
= varonce271
;
2796 var275
= string__NativeString__to_s_with_length(var273
, var274
);
2798 varonce271
= var272
;
2801 var277
= varonce276
;
2805 var280
= string__NativeString__to_s_with_length(var278
, var279
);
2807 varonce276
= var277
;
2810 var282
= varonce281
;
2814 var285
= string__NativeString__to_s_with_length(var283
, var284
);
2816 varonce281
= var282
;
2818 var286
= NEW_array__Array(&type_array__Arraykernel__Object
);
2819 { /* var286 = array_instance Array[Object] */
2821 var288
= NEW_array__NativeArray(var287
, &type_array__NativeArraykernel__Object
);
2822 ((struct instance_array__NativeArray
*)var288
)->values
[0] = (val
*) var260
;
2823 ((struct instance_array__NativeArray
*)var288
)->values
[1] = (val
*) var264
;
2824 ((struct instance_array__NativeArray
*)var288
)->values
[2] = (val
*) var266
;
2825 ((struct instance_array__NativeArray
*)var288
)->values
[3] = (val
*) var270
;
2826 ((struct instance_array__NativeArray
*)var288
)->values
[4] = (val
*) var272
;
2827 ((struct instance_array__NativeArray
*)var288
)->values
[5] = (val
*) var_mclass
;
2828 ((struct instance_array__NativeArray
*)var288
)->values
[6] = (val
*) var277
;
2829 ((struct instance_array__NativeArray
*)var288
)->values
[7] = (val
*) var_mpropdef
;
2830 ((struct instance_array__NativeArray
*)var288
)->values
[8] = (val
*) var282
;
2831 ((void (*)(val
*, val
*, long))(var286
->class->vft
[COLOR_array__Array__with_native
]))(var286
, var288
, var287
) /* with_native on <var286:Array[Object]>*/;
2833 var289
= ((val
* (*)(val
*))(var286
->class->vft
[COLOR_string__Object__to_s
]))(var286
) /* to_s on <var286:Array[Object]>*/;
2834 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var289
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2837 CONTINUE_label
: (void)0;
2838 ((void (*)(val
*))(var190
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var190
) /* next on <var190:Iterator[nullable Object]>*/;
2840 BREAK_label
: (void)0;
2842 var291
= varonce290
;
2846 var294
= string__NativeString__to_s_with_length(var292
, var293
);
2848 varonce290
= var291
;
2850 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var291
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2852 var296
= varonce295
;
2856 var299
= string__NativeString__to_s_with_length(var297
, var298
);
2858 varonce295
= var296
;
2860 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var296
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2862 var301
= varonce300
;
2864 var302
= "const struct type_table type_table_";
2866 var304
= string__NativeString__to_s_with_length(var302
, var303
);
2868 varonce300
= var301
;
2871 var306
= varonce305
;
2875 var309
= string__NativeString__to_s_with_length(var307
, var308
);
2877 varonce305
= var306
;
2879 var310
= NEW_array__Array(&type_array__Arraykernel__Object
);
2880 { /* var310 = array_instance Array[Object] */
2882 var312
= NEW_array__NativeArray(var311
, &type_array__NativeArraykernel__Object
);
2883 ((struct instance_array__NativeArray
*)var312
)->values
[0] = (val
*) var301
;
2884 ((struct instance_array__NativeArray
*)var312
)->values
[1] = (val
*) var_c_name
;
2885 ((struct instance_array__NativeArray
*)var312
)->values
[2] = (val
*) var306
;
2886 ((void (*)(val
*, val
*, long))(var310
->class->vft
[COLOR_array__Array__with_native
]))(var310
, var312
, var311
) /* with_native on <var310:Array[Object]>*/;
2888 var313
= ((val
* (*)(val
*))(var310
->class->vft
[COLOR_string__Object__to_s
]))(var310
) /* to_s on <var310:Array[Object]>*/;
2889 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var313
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2890 var314
= ((long (*)(val
*))(var_class_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_class_table
) /* length on <var_class_table:Array[nullable MClass]>*/;
2892 var316
= varonce315
;
2896 var319
= string__NativeString__to_s_with_length(var317
, var318
);
2898 varonce315
= var316
;
2900 var320
= NEW_array__Array(&type_array__Arraykernel__Object
);
2901 { /* var320 = array_instance Array[Object] */
2903 var322
= NEW_array__NativeArray(var321
, &type_array__NativeArraykernel__Object
);
2904 var323
= BOX_kernel__Int(var314
); /* autobox from Int to Object */
2905 ((struct instance_array__NativeArray
*)var322
)->values
[0] = (val
*) var323
;
2906 ((struct instance_array__NativeArray
*)var322
)->values
[1] = (val
*) var316
;
2907 ((void (*)(val
*, val
*, long))(var320
->class->vft
[COLOR_array__Array__with_native
]))(var320
, var322
, var321
) /* with_native on <var320:Array[Object]>*/;
2909 var324
= ((val
* (*)(val
*))(var320
->class->vft
[COLOR_string__Object__to_s
]))(var320
) /* to_s on <var320:Array[Object]>*/;
2910 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var324
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2912 var326
= varonce325
;
2916 var329
= string__NativeString__to_s_with_length(var327
, var328
);
2918 varonce325
= var326
;
2920 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var326
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2921 var330
= ((val
* (*)(val
*))(var_class_table
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_class_table
) /* iterator on <var_class_table:Array[nullable MClass]>*/;
2923 var331
= ((short int (*)(val
*))(var330
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var330
) /* is_ok on <var330:Iterator[nullable Object]>*/;
2925 var332
= ((val
* (*)(val
*))(var330
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var330
) /* item on <var330:Iterator[nullable Object]>*/;
2926 var_msuper
= var332
;
2928 if (var_msuper
== NULL
) {
2929 var334
= 1; /* is null */
2931 var334
= 0; /* arg is null but recv is not */
2935 var336
= varonce335
;
2937 var337
= "-1, /* empty */";
2939 var339
= string__NativeString__to_s_with_length(var337
, var338
);
2941 varonce335
= var336
;
2943 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var336
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2945 var340
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout
]))(self
) /* class_layout on <self:SeparateErasureCompiler>*/;
2946 if (var340
== NULL
) {
2947 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
2948 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 279);
2951 var341
= ((val
* (*)(val
*))(var340
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var340
) /* ids on <var340:nullable Layout[MClass]>*/;
2953 var342
= ((val
* (*)(val
*, val
*))(var341
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var341
, var_msuper
) /* [] on <var341:Map[Object, Int](Map[MClass, Int])>*/;
2955 var344
= varonce343
;
2959 var347
= string__NativeString__to_s_with_length(var345
, var346
);
2961 varonce343
= var344
;
2964 var349
= varonce348
;
2968 var352
= string__NativeString__to_s_with_length(var350
, var351
);
2970 varonce348
= var349
;
2972 var353
= NEW_array__Array(&type_array__Arraykernel__Object
);
2973 { /* var353 = array_instance Array[Object] */
2975 var355
= NEW_array__NativeArray(var354
, &type_array__NativeArraykernel__Object
);
2976 ((struct instance_array__NativeArray
*)var355
)->values
[0] = (val
*) var342
;
2977 ((struct instance_array__NativeArray
*)var355
)->values
[1] = (val
*) var344
;
2978 ((struct instance_array__NativeArray
*)var355
)->values
[2] = (val
*) var_msuper
;
2979 ((struct instance_array__NativeArray
*)var355
)->values
[3] = (val
*) var349
;
2980 ((void (*)(val
*, val
*, long))(var353
->class->vft
[COLOR_array__Array__with_native
]))(var353
, var355
, var354
) /* with_native on <var353:Array[Object]>*/;
2982 var356
= ((val
* (*)(val
*))(var353
->class->vft
[COLOR_string__Object__to_s
]))(var353
) /* to_s on <var353:Array[Object]>*/;
2983 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var356
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2985 CONTINUE_label357
: (void)0;
2986 ((void (*)(val
*))(var330
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var330
) /* next on <var330:Iterator[nullable Object]>*/;
2988 BREAK_label357
: (void)0;
2990 var359
= varonce358
;
2994 var362
= string__NativeString__to_s_with_length(var360
, var361
);
2996 varonce358
= var359
;
2998 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var359
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3000 var364
= varonce363
;
3004 var367
= string__NativeString__to_s_with_length(var365
, var366
);
3006 varonce363
= var364
;
3008 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var364
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3009 var368
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3011 var370
= varonce369
;
3015 var373
= string__NativeString__to_s_with_length(var371
, var372
);
3017 varonce369
= var370
;
3019 var374
= ((short int (*)(val
*, val
*))(var368
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var368
, var370
) /* != on <var368:String>*/;
3021 var376
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
3022 var377
= ((val
* (*)(val
*))(var376
->class->vft
[COLOR_model__MClass__name
]))(var376
) /* name on <var376:MClass>*/;
3024 var379
= varonce378
;
3028 var382
= string__NativeString__to_s_with_length(var380
, var381
);
3030 varonce378
= var379
;
3032 var383
= ((short int (*)(val
*, val
*))(var377
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var377
, var379
) /* == on <var377:String>*/;
3037 var385
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
3038 var386
= ((val
* (*)(val
*))(var385
->class->vft
[COLOR_model__MClass__kind
]))(var385
) /* kind on <var385:MClass>*/;
3039 var387
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__extern_kind
]))(self
) /* extern_kind on <self:SeparateErasureCompiler>*/;
3040 var388
= ((short int (*)(val
*, val
*))(var386
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var386
, var387
) /* != on <var386:MClassKind>*/;
3044 var389
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3046 var391
= varonce390
;
3048 var392
= "struct instance_";
3050 var394
= string__NativeString__to_s_with_length(var392
, var393
);
3052 varonce390
= var391
;
3055 var396
= varonce395
;
3059 var399
= string__NativeString__to_s_with_length(var397
, var398
);
3061 varonce395
= var396
;
3063 var400
= NEW_array__Array(&type_array__Arraykernel__Object
);
3064 { /* var400 = array_instance Array[Object] */
3066 var402
= NEW_array__NativeArray(var401
, &type_array__NativeArraykernel__Object
);
3067 ((struct instance_array__NativeArray
*)var402
)->values
[0] = (val
*) var391
;
3068 ((struct instance_array__NativeArray
*)var402
)->values
[1] = (val
*) var_c_instance_name
;
3069 ((struct instance_array__NativeArray
*)var402
)->values
[2] = (val
*) var396
;
3070 ((void (*)(val
*, val
*, long))(var400
->class->vft
[COLOR_array__Array__with_native
]))(var400
, var402
, var401
) /* with_native on <var400:Array[Object]>*/;
3072 var403
= ((val
* (*)(val
*))(var400
->class->vft
[COLOR_string__Object__to_s
]))(var400
) /* to_s on <var400:Array[Object]>*/;
3073 ((void (*)(val
*, val
*))(var389
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var389
, var403
) /* add_decl on <var389:CodeWriter>*/;
3074 var404
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3076 var406
= varonce405
;
3078 var407
= "const struct class *class;";
3080 var409
= string__NativeString__to_s_with_length(var407
, var408
);
3082 varonce405
= var406
;
3084 ((void (*)(val
*, val
*))(var404
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var404
, var406
) /* add_decl on <var404:CodeWriter>*/;
3085 var410
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3086 var411
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3088 var413
= varonce412
;
3092 var416
= string__NativeString__to_s_with_length(var414
, var415
);
3094 varonce412
= var413
;
3096 var417
= NEW_array__Array(&type_array__Arraykernel__Object
);
3097 { /* var417 = array_instance Array[Object] */
3099 var419
= NEW_array__NativeArray(var418
, &type_array__NativeArraykernel__Object
);
3100 ((struct instance_array__NativeArray
*)var419
)->values
[0] = (val
*) var411
;
3101 ((struct instance_array__NativeArray
*)var419
)->values
[1] = (val
*) var413
;
3102 ((void (*)(val
*, val
*, long))(var417
->class->vft
[COLOR_array__Array__with_native
]))(var417
, var419
, var418
) /* with_native on <var417:Array[Object]>*/;
3104 var420
= ((val
* (*)(val
*))(var417
->class->vft
[COLOR_string__Object__to_s
]))(var417
) /* to_s on <var417:Array[Object]>*/;
3105 ((void (*)(val
*, val
*))(var410
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var410
, var420
) /* add_decl on <var410:CodeWriter>*/;
3106 var421
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3108 var423
= varonce422
;
3112 var426
= string__NativeString__to_s_with_length(var424
, var425
);
3114 varonce422
= var423
;
3116 ((void (*)(val
*, val
*))(var421
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var421
, var423
) /* add_decl on <var421:CodeWriter>*/;
3120 var428
= varonce427
;
3124 var431
= string__NativeString__to_s_with_length(var429
, var430
);
3126 varonce427
= var428
;
3128 var432
= NEW_array__Array(&type_array__Arraykernel__Object
);
3129 { /* var432 = array_instance Array[Object] */
3131 var434
= NEW_array__NativeArray(var433
, &type_array__NativeArraykernel__Object
);
3132 ((struct instance_array__NativeArray
*)var434
)->values
[0] = (val
*) var428
;
3133 ((struct instance_array__NativeArray
*)var434
)->values
[1] = (val
*) var_c_name
;
3134 ((void (*)(val
*, val
*, long))(var432
->class->vft
[COLOR_array__Array__with_native
]))(var432
, var434
, var433
) /* with_native on <var432:Array[Object]>*/;
3136 var435
= ((val
* (*)(val
*))(var432
->class->vft
[COLOR_string__Object__to_s
]))(var432
) /* to_s on <var432:Array[Object]>*/;
3138 var437
= varonce436
;
3140 var438
= "val* BOX_";
3142 var440
= string__NativeString__to_s_with_length(var438
, var439
);
3144 varonce436
= var437
;
3147 var442
= varonce441
;
3151 var445
= string__NativeString__to_s_with_length(var443
, var444
);
3153 varonce441
= var442
;
3155 var446
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3157 var448
= varonce447
;
3161 var451
= string__NativeString__to_s_with_length(var449
, var450
);
3163 varonce447
= var448
;
3165 var452
= NEW_array__Array(&type_array__Arraykernel__Object
);
3166 { /* var452 = array_instance Array[Object] */
3168 var454
= NEW_array__NativeArray(var453
, &type_array__NativeArraykernel__Object
);
3169 ((struct instance_array__NativeArray
*)var454
)->values
[0] = (val
*) var437
;
3170 ((struct instance_array__NativeArray
*)var454
)->values
[1] = (val
*) var_c_name
;
3171 ((struct instance_array__NativeArray
*)var454
)->values
[2] = (val
*) var442
;
3172 ((struct instance_array__NativeArray
*)var454
)->values
[3] = (val
*) var446
;
3173 ((struct instance_array__NativeArray
*)var454
)->values
[4] = (val
*) var448
;
3174 ((void (*)(val
*, val
*, long))(var452
->class->vft
[COLOR_array__Array__with_native
]))(var452
, var454
, var453
) /* with_native on <var452:Array[Object]>*/;
3176 var455
= ((val
* (*)(val
*))(var452
->class->vft
[COLOR_string__Object__to_s
]))(var452
) /* to_s on <var452:Array[Object]>*/;
3177 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var435
, var455
) /* provide_declaration on <self:SeparateErasureCompiler>*/;
3179 var457
= varonce456
;
3181 var458
= "/* allocate ";
3183 var460
= string__NativeString__to_s_with_length(var458
, var459
);
3185 varonce456
= var457
;
3188 var462
= varonce461
;
3192 var465
= string__NativeString__to_s_with_length(var463
, var464
);
3194 varonce461
= var462
;
3196 var466
= NEW_array__Array(&type_array__Arraykernel__Object
);
3197 { /* var466 = array_instance Array[Object] */
3199 var468
= NEW_array__NativeArray(var467
, &type_array__NativeArraykernel__Object
);
3200 ((struct instance_array__NativeArray
*)var468
)->values
[0] = (val
*) var457
;
3201 ((struct instance_array__NativeArray
*)var468
)->values
[1] = (val
*) var_mtype
;
3202 ((struct instance_array__NativeArray
*)var468
)->values
[2] = (val
*) var462
;
3203 ((void (*)(val
*, val
*, long))(var466
->class->vft
[COLOR_array__Array__with_native
]))(var466
, var468
, var467
) /* with_native on <var466:Array[Object]>*/;
3205 var469
= ((val
* (*)(val
*))(var466
->class->vft
[COLOR_string__Object__to_s
]))(var466
) /* to_s on <var466:Array[Object]>*/;
3206 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var469
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3208 var471
= varonce470
;
3210 var472
= "val* BOX_";
3212 var474
= string__NativeString__to_s_with_length(var472
, var473
);
3214 varonce470
= var471
;
3216 var475
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
3218 var477
= varonce476
;
3222 var480
= string__NativeString__to_s_with_length(var478
, var479
);
3224 varonce476
= var477
;
3226 var481
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3228 var483
= varonce482
;
3230 var484
= " value) {";
3232 var486
= string__NativeString__to_s_with_length(var484
, var485
);
3234 varonce482
= var483
;
3236 var487
= NEW_array__Array(&type_array__Arraykernel__Object
);
3237 { /* var487 = array_instance Array[Object] */
3239 var489
= NEW_array__NativeArray(var488
, &type_array__NativeArraykernel__Object
);
3240 ((struct instance_array__NativeArray
*)var489
)->values
[0] = (val
*) var471
;
3241 ((struct instance_array__NativeArray
*)var489
)->values
[1] = (val
*) var475
;
3242 ((struct instance_array__NativeArray
*)var489
)->values
[2] = (val
*) var477
;
3243 ((struct instance_array__NativeArray
*)var489
)->values
[3] = (val
*) var481
;
3244 ((struct instance_array__NativeArray
*)var489
)->values
[4] = (val
*) var483
;
3245 ((void (*)(val
*, val
*, long))(var487
->class->vft
[COLOR_array__Array__with_native
]))(var487
, var489
, var488
) /* with_native on <var487:Array[Object]>*/;
3247 var490
= ((val
* (*)(val
*))(var487
->class->vft
[COLOR_string__Object__to_s
]))(var487
) /* to_s on <var487:Array[Object]>*/;
3248 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var490
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3250 var492
= varonce491
;
3252 var493
= "struct instance_";
3254 var495
= string__NativeString__to_s_with_length(var493
, var494
);
3256 varonce491
= var492
;
3259 var497
= varonce496
;
3261 var498
= "*res = nit_alloc(sizeof(struct instance_";
3263 var500
= string__NativeString__to_s_with_length(var498
, var499
);
3265 varonce496
= var497
;
3268 var502
= varonce501
;
3272 var505
= string__NativeString__to_s_with_length(var503
, var504
);
3274 varonce501
= var502
;
3276 var506
= NEW_array__Array(&type_array__Arraykernel__Object
);
3277 { /* var506 = array_instance Array[Object] */
3279 var508
= NEW_array__NativeArray(var507
, &type_array__NativeArraykernel__Object
);
3280 ((struct instance_array__NativeArray
*)var508
)->values
[0] = (val
*) var492
;
3281 ((struct instance_array__NativeArray
*)var508
)->values
[1] = (val
*) var_c_instance_name
;
3282 ((struct instance_array__NativeArray
*)var508
)->values
[2] = (val
*) var497
;
3283 ((struct instance_array__NativeArray
*)var508
)->values
[3] = (val
*) var_c_instance_name
;
3284 ((struct instance_array__NativeArray
*)var508
)->values
[4] = (val
*) var502
;
3285 ((void (*)(val
*, val
*, long))(var506
->class->vft
[COLOR_array__Array__with_native
]))(var506
, var508
, var507
) /* with_native on <var506:Array[Object]>*/;
3287 var509
= ((val
* (*)(val
*))(var506
->class->vft
[COLOR_string__Object__to_s
]))(var506
) /* to_s on <var506:Array[Object]>*/;
3288 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var509
) /* add on <var_v:SeparateCompilerVisitor>*/;
3290 var511
= varonce510
;
3294 var514
= string__NativeString__to_s_with_length(var512
, var513
);
3296 varonce510
= var511
;
3298 var515
= NEW_array__Array(&type_array__Arraykernel__Object
);
3299 { /* var515 = array_instance Array[Object] */
3301 var517
= NEW_array__NativeArray(var516
, &type_array__NativeArraykernel__Object
);
3302 ((struct instance_array__NativeArray
*)var517
)->values
[0] = (val
*) var511
;
3303 ((struct instance_array__NativeArray
*)var517
)->values
[1] = (val
*) var_c_name
;
3304 ((void (*)(val
*, val
*, long))(var515
->class->vft
[COLOR_array__Array__with_native
]))(var515
, var517
, var516
) /* with_native on <var515:Array[Object]>*/;
3306 var518
= ((val
* (*)(val
*))(var515
->class->vft
[COLOR_string__Object__to_s
]))(var515
) /* to_s on <var515:Array[Object]>*/;
3307 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var518
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
3309 var520
= varonce519
;
3311 var521
= "res->class = &class_";
3313 var523
= string__NativeString__to_s_with_length(var521
, var522
);
3315 varonce519
= var520
;
3318 var525
= varonce524
;
3322 var528
= string__NativeString__to_s_with_length(var526
, var527
);
3324 varonce524
= var525
;
3326 var529
= NEW_array__Array(&type_array__Arraykernel__Object
);
3327 { /* var529 = array_instance Array[Object] */
3329 var531
= NEW_array__NativeArray(var530
, &type_array__NativeArraykernel__Object
);
3330 ((struct instance_array__NativeArray
*)var531
)->values
[0] = (val
*) var520
;
3331 ((struct instance_array__NativeArray
*)var531
)->values
[1] = (val
*) var_c_name
;
3332 ((struct instance_array__NativeArray
*)var531
)->values
[2] = (val
*) var525
;
3333 ((void (*)(val
*, val
*, long))(var529
->class->vft
[COLOR_array__Array__with_native
]))(var529
, var531
, var530
) /* with_native on <var529:Array[Object]>*/;
3335 var532
= ((val
* (*)(val
*))(var529
->class->vft
[COLOR_string__Object__to_s
]))(var529
) /* to_s on <var529:Array[Object]>*/;
3336 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var532
) /* add on <var_v:SeparateCompilerVisitor>*/;
3338 var534
= varonce533
;
3340 var535
= "res->value = value;";
3342 var537
= string__NativeString__to_s_with_length(var535
, var536
);
3344 varonce533
= var534
;
3346 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var534
) /* add on <var_v:SeparateCompilerVisitor>*/;
3348 var539
= varonce538
;
3350 var540
= "return (val*)res;";
3352 var542
= string__NativeString__to_s_with_length(var540
, var541
);
3354 varonce538
= var539
;
3356 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var539
) /* add on <var_v:SeparateCompilerVisitor>*/;
3358 var544
= varonce543
;
3362 var547
= string__NativeString__to_s_with_length(var545
, var546
);
3364 varonce543
= var544
;
3366 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var544
) /* add on <var_v:SeparateCompilerVisitor>*/;
3369 var548
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__name
]))(var_mclass
) /* name on <var_mclass:MClass>*/;
3371 var550
= varonce549
;
3373 var551
= "NativeArray";
3375 var553
= string__NativeString__to_s_with_length(var551
, var552
);
3377 varonce549
= var550
;
3379 var554
= ((short int (*)(val
*, val
*))(var548
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var548
, var550
) /* == on <var548:String>*/;
3381 var555
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3383 var557
= varonce556
;
3385 var558
= "struct instance_";
3387 var560
= string__NativeString__to_s_with_length(var558
, var559
);
3389 varonce556
= var557
;
3392 var562
= varonce561
;
3396 var565
= string__NativeString__to_s_with_length(var563
, var564
);
3398 varonce561
= var562
;
3400 var566
= NEW_array__Array(&type_array__Arraykernel__Object
);
3401 { /* var566 = array_instance Array[Object] */
3403 var568
= NEW_array__NativeArray(var567
, &type_array__NativeArraykernel__Object
);
3404 ((struct instance_array__NativeArray
*)var568
)->values
[0] = (val
*) var557
;
3405 ((struct instance_array__NativeArray
*)var568
)->values
[1] = (val
*) var_c_name
;
3406 ((struct instance_array__NativeArray
*)var568
)->values
[2] = (val
*) var562
;
3407 ((void (*)(val
*, val
*, long))(var566
->class->vft
[COLOR_array__Array__with_native
]))(var566
, var568
, var567
) /* with_native on <var566:Array[Object]>*/;
3409 var569
= ((val
* (*)(val
*))(var566
->class->vft
[COLOR_string__Object__to_s
]))(var566
) /* to_s on <var566:Array[Object]>*/;
3410 ((void (*)(val
*, val
*))(var555
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var555
, var569
) /* add_decl on <var555:CodeWriter>*/;
3411 var570
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3413 var572
= varonce571
;
3415 var573
= "const struct class *class;";
3417 var575
= string__NativeString__to_s_with_length(var573
, var574
);
3419 varonce571
= var572
;
3421 ((void (*)(val
*, val
*))(var570
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var570
, var572
) /* add_decl on <var570:CodeWriter>*/;
3422 var576
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3424 var578
= varonce577
;
3426 var579
= "val* values[];";
3428 var581
= string__NativeString__to_s_with_length(var579
, var580
);
3430 varonce577
= var578
;
3432 ((void (*)(val
*, val
*))(var576
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var576
, var578
) /* add_decl on <var576:CodeWriter>*/;
3433 var582
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3435 var584
= varonce583
;
3439 var587
= string__NativeString__to_s_with_length(var585
, var586
);
3441 varonce583
= var584
;
3443 ((void (*)(val
*, val
*))(var582
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var582
, var584
) /* add_decl on <var582:CodeWriter>*/;
3445 var589
= varonce588
;
3449 var592
= string__NativeString__to_s_with_length(var590
, var591
);
3451 varonce588
= var589
;
3453 var593
= NEW_array__Array(&type_array__Arraykernel__Object
);
3454 { /* var593 = array_instance Array[Object] */
3456 var595
= NEW_array__NativeArray(var594
, &type_array__NativeArraykernel__Object
);
3457 ((struct instance_array__NativeArray
*)var595
)->values
[0] = (val
*) var589
;
3458 ((struct instance_array__NativeArray
*)var595
)->values
[1] = (val
*) var_c_name
;
3459 ((void (*)(val
*, val
*, long))(var593
->class->vft
[COLOR_array__Array__with_native
]))(var593
, var595
, var594
) /* with_native on <var593:Array[Object]>*/;
3461 var596
= ((val
* (*)(val
*))(var593
->class->vft
[COLOR_string__Object__to_s
]))(var593
) /* to_s on <var593:Array[Object]>*/;
3462 var597
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3464 var599
= varonce598
;
3468 var602
= string__NativeString__to_s_with_length(var600
, var601
);
3470 varonce598
= var599
;
3473 var604
= varonce603
;
3475 var605
= "(int length);";
3477 var607
= string__NativeString__to_s_with_length(var605
, var606
);
3479 varonce603
= var604
;
3481 var608
= NEW_array__Array(&type_array__Arraykernel__Object
);
3482 { /* var608 = array_instance Array[Object] */
3484 var610
= NEW_array__NativeArray(var609
, &type_array__NativeArraykernel__Object
);
3485 ((struct instance_array__NativeArray
*)var610
)->values
[0] = (val
*) var597
;
3486 ((struct instance_array__NativeArray
*)var610
)->values
[1] = (val
*) var599
;
3487 ((struct instance_array__NativeArray
*)var610
)->values
[2] = (val
*) var_c_name
;
3488 ((struct instance_array__NativeArray
*)var610
)->values
[3] = (val
*) var604
;
3489 ((void (*)(val
*, val
*, long))(var608
->class->vft
[COLOR_array__Array__with_native
]))(var608
, var610
, var609
) /* with_native on <var608:Array[Object]>*/;
3491 var611
= ((val
* (*)(val
*))(var608
->class->vft
[COLOR_string__Object__to_s
]))(var608
) /* to_s on <var608:Array[Object]>*/;
3492 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var596
, var611
) /* provide_declaration on <self:SeparateErasureCompiler>*/;
3494 var613
= varonce612
;
3496 var614
= "/* allocate ";
3498 var616
= string__NativeString__to_s_with_length(var614
, var615
);
3500 varonce612
= var613
;
3503 var618
= varonce617
;
3507 var621
= string__NativeString__to_s_with_length(var619
, var620
);
3509 varonce617
= var618
;
3511 var622
= NEW_array__Array(&type_array__Arraykernel__Object
);
3512 { /* var622 = array_instance Array[Object] */
3514 var624
= NEW_array__NativeArray(var623
, &type_array__NativeArraykernel__Object
);
3515 ((struct instance_array__NativeArray
*)var624
)->values
[0] = (val
*) var613
;
3516 ((struct instance_array__NativeArray
*)var624
)->values
[1] = (val
*) var_mtype
;
3517 ((struct instance_array__NativeArray
*)var624
)->values
[2] = (val
*) var618
;
3518 ((void (*)(val
*, val
*, long))(var622
->class->vft
[COLOR_array__Array__with_native
]))(var622
, var624
, var623
) /* with_native on <var622:Array[Object]>*/;
3520 var625
= ((val
* (*)(val
*))(var622
->class->vft
[COLOR_string__Object__to_s
]))(var622
) /* to_s on <var622:Array[Object]>*/;
3521 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var625
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3522 var626
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3524 var628
= varonce627
;
3528 var631
= string__NativeString__to_s_with_length(var629
, var630
);
3530 varonce627
= var628
;
3533 var633
= varonce632
;
3535 var634
= "(int length) {";
3537 var636
= string__NativeString__to_s_with_length(var634
, var635
);
3539 varonce632
= var633
;
3541 var637
= NEW_array__Array(&type_array__Arraykernel__Object
);
3542 { /* var637 = array_instance Array[Object] */
3544 var639
= NEW_array__NativeArray(var638
, &type_array__NativeArraykernel__Object
);
3545 ((struct instance_array__NativeArray
*)var639
)->values
[0] = (val
*) var626
;
3546 ((struct instance_array__NativeArray
*)var639
)->values
[1] = (val
*) var628
;
3547 ((struct instance_array__NativeArray
*)var639
)->values
[2] = (val
*) var_c_name
;
3548 ((struct instance_array__NativeArray
*)var639
)->values
[3] = (val
*) var633
;
3549 ((void (*)(val
*, val
*, long))(var637
->class->vft
[COLOR_array__Array__with_native
]))(var637
, var639
, var638
) /* with_native on <var637:Array[Object]>*/;
3551 var640
= ((val
* (*)(val
*))(var637
->class->vft
[COLOR_string__Object__to_s
]))(var637
) /* to_s on <var637:Array[Object]>*/;
3552 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var640
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3554 var642
= varonce641
;
3558 var645
= string__NativeString__to_s_with_length(var643
, var644
);
3560 varonce641
= var642
;
3562 var646
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_named_var
]))(var_v
, var_mtype
, var642
) /* new_named_var on <var_v:SeparateCompilerVisitor>*/;
3565 ((void (*)(val
*, short int))(var_res
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res
, var647
) /* is_exact= on <var_res:RuntimeVariable>*/;
3566 var648
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
3567 var649
= ((val
* (*)(val
*))(var648
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var648
) /* first on <var648:Array[MType]>*/;
3568 var_mtype_elt
= var649
;
3570 var651
= varonce650
;
3572 var652
= " = nit_alloc(sizeof(struct instance_";
3574 var654
= string__NativeString__to_s_with_length(var652
, var653
);
3576 varonce650
= var651
;
3579 var656
= varonce655
;
3581 var657
= ") + length*sizeof(";
3583 var659
= string__NativeString__to_s_with_length(var657
, var658
);
3585 varonce655
= var656
;
3587 var660
= ((val
* (*)(val
*))(var_mtype_elt
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype_elt
) /* ctype on <var_mtype_elt:MType>*/;
3589 var662
= varonce661
;
3593 var665
= string__NativeString__to_s_with_length(var663
, var664
);
3595 varonce661
= var662
;
3597 var666
= NEW_array__Array(&type_array__Arraykernel__Object
);
3598 { /* var666 = array_instance Array[Object] */
3600 var668
= NEW_array__NativeArray(var667
, &type_array__NativeArraykernel__Object
);
3601 ((struct instance_array__NativeArray
*)var668
)->values
[0] = (val
*) var_res
;
3602 ((struct instance_array__NativeArray
*)var668
)->values
[1] = (val
*) var651
;
3603 ((struct instance_array__NativeArray
*)var668
)->values
[2] = (val
*) var_c_name
;
3604 ((struct instance_array__NativeArray
*)var668
)->values
[3] = (val
*) var656
;
3605 ((struct instance_array__NativeArray
*)var668
)->values
[4] = (val
*) var660
;
3606 ((struct instance_array__NativeArray
*)var668
)->values
[5] = (val
*) var662
;
3607 ((void (*)(val
*, val
*, long))(var666
->class->vft
[COLOR_array__Array__with_native
]))(var666
, var668
, var667
) /* with_native on <var666:Array[Object]>*/;
3609 var669
= ((val
* (*)(val
*))(var666
->class->vft
[COLOR_string__Object__to_s
]))(var666
) /* to_s on <var666:Array[Object]>*/;
3610 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var669
) /* add on <var_v:SeparateCompilerVisitor>*/;
3612 var671
= varonce670
;
3616 var674
= string__NativeString__to_s_with_length(var672
, var673
);
3618 varonce670
= var671
;
3620 var675
= NEW_array__Array(&type_array__Arraykernel__Object
);
3621 { /* var675 = array_instance Array[Object] */
3623 var677
= NEW_array__NativeArray(var676
, &type_array__NativeArraykernel__Object
);
3624 ((struct instance_array__NativeArray
*)var677
)->values
[0] = (val
*) var671
;
3625 ((struct instance_array__NativeArray
*)var677
)->values
[1] = (val
*) var_c_name
;
3626 ((void (*)(val
*, val
*, long))(var675
->class->vft
[COLOR_array__Array__with_native
]))(var675
, var677
, var676
) /* with_native on <var675:Array[Object]>*/;
3628 var678
= ((val
* (*)(val
*))(var675
->class->vft
[COLOR_string__Object__to_s
]))(var675
) /* to_s on <var675:Array[Object]>*/;
3629 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var678
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
3631 var680
= varonce679
;
3633 var681
= "->class = &class_";
3635 var683
= string__NativeString__to_s_with_length(var681
, var682
);
3637 varonce679
= var680
;
3640 var685
= varonce684
;
3644 var688
= string__NativeString__to_s_with_length(var686
, var687
);
3646 varonce684
= var685
;
3648 var689
= NEW_array__Array(&type_array__Arraykernel__Object
);
3649 { /* var689 = array_instance Array[Object] */
3651 var691
= NEW_array__NativeArray(var690
, &type_array__NativeArraykernel__Object
);
3652 ((struct instance_array__NativeArray
*)var691
)->values
[0] = (val
*) var_res
;
3653 ((struct instance_array__NativeArray
*)var691
)->values
[1] = (val
*) var680
;
3654 ((struct instance_array__NativeArray
*)var691
)->values
[2] = (val
*) var_c_name
;
3655 ((struct instance_array__NativeArray
*)var691
)->values
[3] = (val
*) var685
;
3656 ((void (*)(val
*, val
*, long))(var689
->class->vft
[COLOR_array__Array__with_native
]))(var689
, var691
, var690
) /* with_native on <var689:Array[Object]>*/;
3658 var692
= ((val
* (*)(val
*))(var689
->class->vft
[COLOR_string__Object__to_s
]))(var689
) /* to_s on <var689:Array[Object]>*/;
3659 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var692
) /* add on <var_v:SeparateCompilerVisitor>*/;
3661 var694
= varonce693
;
3665 var697
= string__NativeString__to_s_with_length(var695
, var696
);
3667 varonce693
= var694
;
3670 var699
= varonce698
;
3674 var702
= string__NativeString__to_s_with_length(var700
, var701
);
3676 varonce698
= var699
;
3678 var703
= NEW_array__Array(&type_array__Arraykernel__Object
);
3679 { /* var703 = array_instance Array[Object] */
3681 var705
= NEW_array__NativeArray(var704
, &type_array__NativeArraykernel__Object
);
3682 ((struct instance_array__NativeArray
*)var705
)->values
[0] = (val
*) var694
;
3683 ((struct instance_array__NativeArray
*)var705
)->values
[1] = (val
*) var_res
;
3684 ((struct instance_array__NativeArray
*)var705
)->values
[2] = (val
*) var699
;
3685 ((void (*)(val
*, val
*, long))(var703
->class->vft
[COLOR_array__Array__with_native
]))(var703
, var705
, var704
) /* with_native on <var703:Array[Object]>*/;
3687 var706
= ((val
* (*)(val
*))(var703
->class->vft
[COLOR_string__Object__to_s
]))(var703
) /* to_s on <var703:Array[Object]>*/;
3688 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var706
) /* add on <var_v:SeparateCompilerVisitor>*/;
3690 var708
= varonce707
;
3694 var711
= string__NativeString__to_s_with_length(var709
, var710
);
3696 varonce707
= var708
;
3698 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var708
) /* add on <var_v:SeparateCompilerVisitor>*/;
3704 var713
= varonce712
;
3708 var716
= string__NativeString__to_s_with_length(var714
, var715
);
3710 varonce712
= var713
;
3712 var717
= NEW_array__Array(&type_array__Arraykernel__Object
);
3713 { /* var717 = array_instance Array[Object] */
3715 var719
= NEW_array__NativeArray(var718
, &type_array__NativeArraykernel__Object
);
3716 ((struct instance_array__NativeArray
*)var719
)->values
[0] = (val
*) var713
;
3717 ((struct instance_array__NativeArray
*)var719
)->values
[1] = (val
*) var_c_name
;
3718 ((void (*)(val
*, val
*, long))(var717
->class->vft
[COLOR_array__Array__with_native
]))(var717
, var719
, var718
) /* with_native on <var717:Array[Object]>*/;
3720 var720
= ((val
* (*)(val
*))(var717
->class->vft
[COLOR_string__Object__to_s
]))(var717
) /* to_s on <var717:Array[Object]>*/;
3721 var721
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3723 var723
= varonce722
;
3727 var726
= string__NativeString__to_s_with_length(var724
, var725
);
3729 varonce722
= var723
;
3732 var728
= varonce727
;
3736 var731
= string__NativeString__to_s_with_length(var729
, var730
);
3738 varonce727
= var728
;
3740 var732
= NEW_array__Array(&type_array__Arraykernel__Object
);
3741 { /* var732 = array_instance Array[Object] */
3743 var734
= NEW_array__NativeArray(var733
, &type_array__NativeArraykernel__Object
);
3744 ((struct instance_array__NativeArray
*)var734
)->values
[0] = (val
*) var721
;
3745 ((struct instance_array__NativeArray
*)var734
)->values
[1] = (val
*) var723
;
3746 ((struct instance_array__NativeArray
*)var734
)->values
[2] = (val
*) var_c_name
;
3747 ((struct instance_array__NativeArray
*)var734
)->values
[3] = (val
*) var728
;
3748 ((void (*)(val
*, val
*, long))(var732
->class->vft
[COLOR_array__Array__with_native
]))(var732
, var734
, var733
) /* with_native on <var732:Array[Object]>*/;
3750 var735
= ((val
* (*)(val
*))(var732
->class->vft
[COLOR_string__Object__to_s
]))(var732
) /* to_s on <var732:Array[Object]>*/;
3751 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var720
, var735
) /* provide_declaration on <self:SeparateErasureCompiler>*/;
3753 var737
= varonce736
;
3755 var738
= "/* allocate ";
3757 var740
= string__NativeString__to_s_with_length(var738
, var739
);
3759 varonce736
= var737
;
3762 var742
= varonce741
;
3766 var745
= string__NativeString__to_s_with_length(var743
, var744
);
3768 varonce741
= var742
;
3770 var746
= NEW_array__Array(&type_array__Arraykernel__Object
);
3771 { /* var746 = array_instance Array[Object] */
3773 var748
= NEW_array__NativeArray(var747
, &type_array__NativeArraykernel__Object
);
3774 ((struct instance_array__NativeArray
*)var748
)->values
[0] = (val
*) var737
;
3775 ((struct instance_array__NativeArray
*)var748
)->values
[1] = (val
*) var_mtype
;
3776 ((struct instance_array__NativeArray
*)var748
)->values
[2] = (val
*) var742
;
3777 ((void (*)(val
*, val
*, long))(var746
->class->vft
[COLOR_array__Array__with_native
]))(var746
, var748
, var747
) /* with_native on <var746:Array[Object]>*/;
3779 var749
= ((val
* (*)(val
*))(var746
->class->vft
[COLOR_string__Object__to_s
]))(var746
) /* to_s on <var746:Array[Object]>*/;
3780 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var749
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3781 var750
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3783 var752
= varonce751
;
3787 var755
= string__NativeString__to_s_with_length(var753
, var754
);
3789 varonce751
= var752
;
3792 var757
= varonce756
;
3794 var758
= "(void) {";
3796 var760
= string__NativeString__to_s_with_length(var758
, var759
);
3798 varonce756
= var757
;
3800 var761
= NEW_array__Array(&type_array__Arraykernel__Object
);
3801 { /* var761 = array_instance Array[Object] */
3803 var763
= NEW_array__NativeArray(var762
, &type_array__NativeArraykernel__Object
);
3804 ((struct instance_array__NativeArray
*)var763
)->values
[0] = (val
*) var750
;
3805 ((struct instance_array__NativeArray
*)var763
)->values
[1] = (val
*) var752
;
3806 ((struct instance_array__NativeArray
*)var763
)->values
[2] = (val
*) var_c_name
;
3807 ((struct instance_array__NativeArray
*)var763
)->values
[3] = (val
*) var757
;
3808 ((void (*)(val
*, val
*, long))(var761
->class->vft
[COLOR_array__Array__with_native
]))(var761
, var763
, var762
) /* with_native on <var761:Array[Object]>*/;
3810 var764
= ((val
* (*)(val
*))(var761
->class->vft
[COLOR_string__Object__to_s
]))(var761
) /* to_s on <var761:Array[Object]>*/;
3811 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var764
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3813 var766
= varonce765
;
3817 var769
= string__NativeString__to_s_with_length(var767
, var768
);
3819 varonce765
= var766
;
3821 var770
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_named_var
]))(var_v
, var_mtype
, var766
) /* new_named_var on <var_v:SeparateCompilerVisitor>*/;
3822 var_res771
= var770
;
3824 ((void (*)(val
*, short int))(var_res771
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res771
, var772
) /* is_exact= on <var_res771:RuntimeVariable>*/;
3826 var774
= varonce773
;
3828 var775
= " = nit_alloc(sizeof(struct instance) + ";
3830 var777
= string__NativeString__to_s_with_length(var775
, var776
);
3832 varonce773
= var774
;
3834 var778
= ((long (*)(val
*))(var_attrs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_attrs
) /* length on <var_attrs:Array[nullable MPropDef]>*/;
3836 var780
= varonce779
;
3838 var781
= "*sizeof(nitattribute_t));";
3840 var783
= string__NativeString__to_s_with_length(var781
, var782
);
3842 varonce779
= var780
;
3844 var784
= NEW_array__Array(&type_array__Arraykernel__Object
);
3845 { /* var784 = array_instance Array[Object] */
3847 var786
= NEW_array__NativeArray(var785
, &type_array__NativeArraykernel__Object
);
3848 ((struct instance_array__NativeArray
*)var786
)->values
[0] = (val
*) var_res771
;
3849 ((struct instance_array__NativeArray
*)var786
)->values
[1] = (val
*) var774
;
3850 var787
= BOX_kernel__Int(var778
); /* autobox from Int to Object */
3851 ((struct instance_array__NativeArray
*)var786
)->values
[2] = (val
*) var787
;
3852 ((struct instance_array__NativeArray
*)var786
)->values
[3] = (val
*) var780
;
3853 ((void (*)(val
*, val
*, long))(var784
->class->vft
[COLOR_array__Array__with_native
]))(var784
, var786
, var785
) /* with_native on <var784:Array[Object]>*/;
3855 var788
= ((val
* (*)(val
*))(var784
->class->vft
[COLOR_string__Object__to_s
]))(var784
) /* to_s on <var784:Array[Object]>*/;
3856 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var788
) /* add on <var_v:SeparateCompilerVisitor>*/;
3858 var790
= varonce789
;
3862 var793
= string__NativeString__to_s_with_length(var791
, var792
);
3864 varonce789
= var790
;
3866 var794
= NEW_array__Array(&type_array__Arraykernel__Object
);
3867 { /* var794 = array_instance Array[Object] */
3869 var796
= NEW_array__NativeArray(var795
, &type_array__NativeArraykernel__Object
);
3870 ((struct instance_array__NativeArray
*)var796
)->values
[0] = (val
*) var790
;
3871 ((struct instance_array__NativeArray
*)var796
)->values
[1] = (val
*) var_c_name
;
3872 ((void (*)(val
*, val
*, long))(var794
->class->vft
[COLOR_array__Array__with_native
]))(var794
, var796
, var795
) /* with_native on <var794:Array[Object]>*/;
3874 var797
= ((val
* (*)(val
*))(var794
->class->vft
[COLOR_string__Object__to_s
]))(var794
) /* to_s on <var794:Array[Object]>*/;
3875 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var797
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
3877 var799
= varonce798
;
3879 var800
= "->class = &class_";
3881 var802
= string__NativeString__to_s_with_length(var800
, var801
);
3883 varonce798
= var799
;
3886 var804
= varonce803
;
3890 var807
= string__NativeString__to_s_with_length(var805
, var806
);
3892 varonce803
= var804
;
3894 var808
= NEW_array__Array(&type_array__Arraykernel__Object
);
3895 { /* var808 = array_instance Array[Object] */
3897 var810
= NEW_array__NativeArray(var809
, &type_array__NativeArraykernel__Object
);
3898 ((struct instance_array__NativeArray
*)var810
)->values
[0] = (val
*) var_res771
;
3899 ((struct instance_array__NativeArray
*)var810
)->values
[1] = (val
*) var799
;
3900 ((struct instance_array__NativeArray
*)var810
)->values
[2] = (val
*) var_c_name
;
3901 ((struct instance_array__NativeArray
*)var810
)->values
[3] = (val
*) var804
;
3902 ((void (*)(val
*, val
*, long))(var808
->class->vft
[COLOR_array__Array__with_native
]))(var808
, var810
, var809
) /* with_native on <var808:Array[Object]>*/;
3904 var811
= ((val
* (*)(val
*))(var808
->class->vft
[COLOR_string__Object__to_s
]))(var808
) /* to_s on <var808:Array[Object]>*/;
3905 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var811
) /* add on <var_v:SeparateCompilerVisitor>*/;
3906 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__generate_init_attr
]))(self
, var_v
, var_res771
, var_mtype
) /* generate_init_attr on <self:SeparateErasureCompiler>*/;
3908 var813
= varonce812
;
3912 var816
= string__NativeString__to_s_with_length(var814
, var815
);
3914 varonce812
= var813
;
3917 var818
= varonce817
;
3921 var821
= string__NativeString__to_s_with_length(var819
, var820
);
3923 varonce817
= var818
;
3925 var822
= NEW_array__Array(&type_array__Arraykernel__Object
);
3926 { /* var822 = array_instance Array[Object] */
3928 var824
= NEW_array__NativeArray(var823
, &type_array__NativeArraykernel__Object
);
3929 ((struct instance_array__NativeArray
*)var824
)->values
[0] = (val
*) var813
;
3930 ((struct instance_array__NativeArray
*)var824
)->values
[1] = (val
*) var_res771
;
3931 ((struct instance_array__NativeArray
*)var824
)->values
[2] = (val
*) var818
;
3932 ((void (*)(val
*, val
*, long))(var822
->class->vft
[COLOR_array__Array__with_native
]))(var822
, var824
, var823
) /* with_native on <var822:Array[Object]>*/;
3934 var825
= ((val
* (*)(val
*))(var822
->class->vft
[COLOR_string__Object__to_s
]))(var822
) /* to_s on <var822:Array[Object]>*/;
3935 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var825
) /* add on <var_v:SeparateCompilerVisitor>*/;
3937 var827
= varonce826
;
3941 var830
= string__NativeString__to_s_with_length(var828
, var829
);
3943 varonce826
= var827
;
3945 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var827
) /* add on <var_v:SeparateCompilerVisitor>*/;
3948 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_class_to_c for (self: Object, MClass) */
3949 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__compile_class_to_c(val
* self
, val
* p0
) {
3950 separate_erasure_compiler__SeparateErasureCompiler__compile_class_to_c(self
, p0
);
3953 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_vts_table for (self: SeparateErasureCompiler, MClass): Bool */
3954 short int separate_erasure_compiler__SeparateErasureCompiler__build_class_vts_table(val
* self
, val
* p0
) {
3955 short int var
/* : Bool */;
3956 val
* var_mclass
/* var mclass: MClass */;
3957 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
3958 val
* var2
/* : nullable Object */;
3959 short int var3
/* : Bool */;
3960 short int var4
/* : Bool */;
3961 static val
* varonce
;
3962 val
* var5
/* : String */;
3963 char* var6
/* : NativeString */;
3964 long var7
/* : Int */;
3965 val
* var8
/* : String */;
3966 val
* var9
/* : String */;
3967 val
* var10
/* : Array[Object] */;
3968 long var11
/* : Int */;
3969 val
* var12
/* : NativeArray[Object] */;
3970 val
* var13
/* : String */;
3971 static val
* varonce14
;
3972 val
* var15
/* : String */;
3973 char* var16
/* : NativeString */;
3974 long var17
/* : Int */;
3975 val
* var18
/* : String */;
3976 val
* var19
/* : String */;
3977 static val
* varonce20
;
3978 val
* var21
/* : String */;
3979 char* var22
/* : NativeString */;
3980 long var23
/* : Int */;
3981 val
* var24
/* : String */;
3982 val
* var25
/* : Array[Object] */;
3983 long var26
/* : Int */;
3984 val
* var27
/* : NativeArray[Object] */;
3985 val
* var28
/* : String */;
3986 val
* var29
/* : AbstractCompilerVisitor */;
3987 val
* var_v
/* var v: SeparateCompilerVisitor */;
3988 static val
* varonce30
;
3989 val
* var31
/* : String */;
3990 char* var32
/* : NativeString */;
3991 long var33
/* : Int */;
3992 val
* var34
/* : String */;
3993 val
* var35
/* : String */;
3994 static val
* varonce36
;
3995 val
* var37
/* : String */;
3996 char* var38
/* : NativeString */;
3997 long var39
/* : Int */;
3998 val
* var40
/* : String */;
3999 val
* var41
/* : Array[Object] */;
4000 long var42
/* : Int */;
4001 val
* var43
/* : NativeArray[Object] */;
4002 val
* var44
/* : String */;
4003 val
* var45
/* : nullable Layout[MVirtualTypeProp] */;
4004 short int var46
/* : Bool */;
4007 static val
* varonce47
;
4008 val
* var48
/* : String */;
4009 char* var49
/* : NativeString */;
4010 long var50
/* : Int */;
4011 val
* var51
/* : String */;
4012 static val
* varonce52
;
4013 val
* var53
/* : String */;
4014 char* var54
/* : NativeString */;
4015 long var55
/* : Int */;
4016 val
* var56
/* : String */;
4017 val
* var57
/* : Map[MClass, Array[nullable MPropDef]] */;
4018 val
* var58
/* : nullable Object */;
4019 val
* var59
/* : Iterator[nullable Object] */;
4020 short int var60
/* : Bool */;
4021 val
* var61
/* : nullable Object */;
4022 val
* var_vt
/* var vt: nullable MPropDef */;
4023 val
* var62
/* : null */;
4024 short int var63
/* : Bool */;
4025 static val
* varonce64
;
4026 val
* var65
/* : String */;
4027 char* var66
/* : NativeString */;
4028 long var67
/* : Int */;
4029 val
* var68
/* : String */;
4030 long var69
/* : Int */;
4031 long var_is_null
/* var is_null: Int */;
4032 val
* var70
/* : MClassDef */;
4033 val
* var71
/* : MClassType */;
4034 short int var72
/* : Bool */;
4037 const char* var_class_name
;
4038 val
* var75
/* : nullable MType */;
4039 val
* var76
/* : MType */;
4040 val
* var_bound
/* var bound: MType */;
4041 short int var77
/* : Bool */;
4044 val
* var80
/* : MClassDef */;
4045 val
* var81
/* : MClassType */;
4046 val
* var82
/* : MType */;
4047 val
* var83
/* : MType */;
4048 long var84
/* : Int */;
4049 short int var85
/* : Bool */;
4052 const char* var_class_name88
;
4053 val
* var89
/* : MClass */;
4054 val
* var_vtclass
/* var vtclass: MClass */;
4055 static val
* varonce90
;
4056 val
* var91
/* : String */;
4057 char* var92
/* : NativeString */;
4058 long var93
/* : Int */;
4059 val
* var94
/* : String */;
4060 val
* var95
/* : String */;
4061 val
* var96
/* : Array[Object] */;
4062 long var97
/* : Int */;
4063 val
* var98
/* : NativeArray[Object] */;
4064 val
* var99
/* : String */;
4065 static val
* varonce100
;
4066 val
* var101
/* : String */;
4067 char* var102
/* : NativeString */;
4068 long var103
/* : Int */;
4069 val
* var104
/* : String */;
4070 static val
* varonce105
;
4071 val
* var106
/* : String */;
4072 char* var107
/* : NativeString */;
4073 long var108
/* : Int */;
4074 val
* var109
/* : String */;
4075 val
* var110
/* : String */;
4076 static val
* varonce111
;
4077 val
* var112
/* : String */;
4078 char* var113
/* : NativeString */;
4079 long var114
/* : Int */;
4080 val
* var115
/* : String */;
4081 static val
* varonce116
;
4082 val
* var117
/* : String */;
4083 char* var118
/* : NativeString */;
4084 long var119
/* : Int */;
4085 val
* var120
/* : String */;
4086 val
* var121
/* : Array[Object] */;
4087 long var122
/* : Int */;
4088 val
* var123
/* : NativeArray[Object] */;
4089 val
* var124
/* : Object */;
4090 val
* var125
/* : String */;
4091 static val
* varonce127
;
4092 val
* var128
/* : String */;
4093 char* var129
/* : NativeString */;
4094 long var130
/* : Int */;
4095 val
* var131
/* : String */;
4096 static val
* varonce132
;
4097 val
* var133
/* : String */;
4098 char* var134
/* : NativeString */;
4099 long var135
/* : Int */;
4100 val
* var136
/* : String */;
4101 short int var137
/* : Bool */;
4103 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_tables
]))(self
) /* vt_tables on <self:SeparateErasureCompiler>*/;
4104 var2
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var1
, var_mclass
) /* [] on <var1:Map[MClass, Array[nullable MPropDef]]>*/;
4105 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var2
) /* is_empty on <var2:nullable Object(Array[nullable MPropDef])>*/;
4115 var6
= "vts_table_";
4117 var8
= string__NativeString__to_s_with_length(var6
, var7
);
4121 var9
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
4122 var10
= NEW_array__Array(&type_array__Arraykernel__Object
);
4123 { /* var10 = array_instance Array[Object] */
4125 var12
= NEW_array__NativeArray(var11
, &type_array__NativeArraykernel__Object
);
4126 ((struct instance_array__NativeArray
*)var12
)->values
[0] = (val
*) var5
;
4127 ((struct instance_array__NativeArray
*)var12
)->values
[1] = (val
*) var9
;
4128 ((void (*)(val
*, val
*, long))(var10
->class->vft
[COLOR_array__Array__with_native
]))(var10
, var12
, var11
) /* with_native on <var10:Array[Object]>*/;
4130 var13
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_string__Object__to_s
]))(var10
) /* to_s on <var10:Array[Object]>*/;
4134 var16
= "extern const struct vts_table vts_table_";
4136 var18
= string__NativeString__to_s_with_length(var16
, var17
);
4140 var19
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
4146 var24
= string__NativeString__to_s_with_length(var22
, var23
);
4150 var25
= NEW_array__Array(&type_array__Arraykernel__Object
);
4151 { /* var25 = array_instance Array[Object] */
4153 var27
= NEW_array__NativeArray(var26
, &type_array__NativeArraykernel__Object
);
4154 ((struct instance_array__NativeArray
*)var27
)->values
[0] = (val
*) var15
;
4155 ((struct instance_array__NativeArray
*)var27
)->values
[1] = (val
*) var19
;
4156 ((struct instance_array__NativeArray
*)var27
)->values
[2] = (val
*) var21
;
4157 ((void (*)(val
*, val
*, long))(var25
->class->vft
[COLOR_array__Array__with_native
]))(var25
, var27
, var26
) /* with_native on <var25:Array[Object]>*/;
4159 var28
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_string__Object__to_s
]))(var25
) /* to_s on <var25:Array[Object]>*/;
4160 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var13
, var28
) /* provide_declaration on <self:SeparateErasureCompiler>*/;
4161 var29
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateErasureCompiler>*/;
4166 var32
= "const struct vts_table vts_table_";
4168 var34
= string__NativeString__to_s_with_length(var32
, var33
);
4172 var35
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
4178 var40
= string__NativeString__to_s_with_length(var38
, var39
);
4182 var41
= NEW_array__Array(&type_array__Arraykernel__Object
);
4183 { /* var41 = array_instance Array[Object] */
4185 var43
= NEW_array__NativeArray(var42
, &type_array__NativeArraykernel__Object
);
4186 ((struct instance_array__NativeArray
*)var43
)->values
[0] = (val
*) var31
;
4187 ((struct instance_array__NativeArray
*)var43
)->values
[1] = (val
*) var35
;
4188 ((struct instance_array__NativeArray
*)var43
)->values
[2] = (val
*) var37
;
4189 ((void (*)(val
*, val
*, long))(var41
->class->vft
[COLOR_array__Array__with_native
]))(var41
, var43
, var42
) /* with_native on <var41:Array[Object]>*/;
4191 var44
= ((val
* (*)(val
*))(var41
->class->vft
[COLOR_string__Object__to_s
]))(var41
) /* to_s on <var41:Array[Object]>*/;
4192 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var44
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4193 var45
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_layout
]))(self
) /* vt_layout on <self:SeparateErasureCompiler>*/;
4194 /* <var45:nullable Layout[MVirtualTypeProp]> isa PHLayout[MClass, MVirtualTypeProp] */
4195 cltype
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.color
;
4196 idtype
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.id
;
4200 if(cltype
>= var45
->type
->table_size
) {
4203 var46
= var45
->type
->type_table
[cltype
] == idtype
;
4211 var49
= "0, /* dummy */";
4213 var51
= string__NativeString__to_s_with_length(var49
, var50
);
4217 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var48
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4224 var56
= string__NativeString__to_s_with_length(var54
, var55
);
4228 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var53
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4229 var57
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_tables
]))(self
) /* vt_tables on <self:SeparateErasureCompiler>*/;
4230 var58
= ((val
* (*)(val
*, val
*))(var57
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var57
, var_mclass
) /* [] on <var57:Map[MClass, Array[nullable MPropDef]]>*/;
4231 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var58
) /* iterator on <var58:nullable Object(Array[nullable MPropDef])>*/;
4233 var60
= ((short int (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var59
) /* is_ok on <var59:Iterator[nullable Object]>*/;
4235 var61
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var59
) /* item on <var59:Iterator[nullable Object]>*/;
4238 if (var_vt
== NULL
) {
4239 var63
= 1; /* is null */
4241 var63
= 0; /* arg is null but recv is not */
4247 var66
= "{-1, NULL}, /* empty */";
4249 var68
= string__NativeString__to_s_with_length(var66
, var67
);
4253 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var65
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4256 var_is_null
= var69
;
4257 var70
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
4258 var71
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var70
) /* bound_mtype on <var70:MClassDef>*/;
4259 /* <var_vt:nullable MPropDef(MPropDef)> isa MVirtualTypeDef */
4260 cltype73
= type_model__MVirtualTypeDef
.color
;
4261 idtype74
= type_model__MVirtualTypeDef
.id
;
4262 if(cltype73
>= var_vt
->type
->table_size
) {
4265 var72
= var_vt
->type
->type_table
[cltype73
] == idtype74
;
4268 var_class_name
= var_vt
== NULL ?
"null" : var_vt
->type
->name
;
4269 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name
);
4270 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 361);
4273 var75
= ((val
* (*)(val
*))(var_vt
->class->vft
[COLOR_model__MVirtualTypeDef__bound
]))(var_vt
) /* bound on <var_vt:MPropDef(MVirtualTypeDef)>*/;
4274 var76
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound
]))(self
, var71
, var75
) /* retrieve_vt_bound on <self:SeparateErasureCompiler>*/;
4277 /* <var_bound:MType> isa MNullableType */
4278 cltype78
= type_model__MNullableType
.color
;
4279 idtype79
= type_model__MNullableType
.id
;
4280 if(cltype78
>= var_bound
->type
->table_size
) {
4283 var77
= var_bound
->type
->type_table
[cltype78
] == idtype79
;
4286 var80
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
4287 var81
= ((val
* (*)(val
*))(var80
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var80
) /* bound_mtype on <var80:MClassDef>*/;
4288 var82
= ((val
* (*)(val
*))(var_bound
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_bound
) /* mtype on <var_bound:MType(MNullableType)>*/;
4289 var83
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound
]))(self
, var81
, var82
) /* retrieve_vt_bound on <self:SeparateErasureCompiler>*/;
4292 var_is_null
= var84
;
4293 CONTINUE_label
: (void)0;
4295 BREAK_label
: (void)0;
4296 /* <var_bound:MType> isa MClassType */
4297 cltype86
= type_model__MClassType
.color
;
4298 idtype87
= type_model__MClassType
.id
;
4299 if(cltype86
>= var_bound
->type
->table_size
) {
4302 var85
= var_bound
->type
->type_table
[cltype86
] == idtype87
;
4305 var_class_name88
= var_bound
== NULL ?
"null" : var_bound
->type
->name
;
4306 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name88
);
4307 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 366);
4310 var89
= ((val
* (*)(val
*))(var_bound
->class->vft
[COLOR_model__MClassType__mclass
]))(var_bound
) /* mclass on <var_bound:MType(MClassType)>*/;
4311 var_vtclass
= var89
;
4317 var94
= string__NativeString__to_s_with_length(var92
, var93
);
4321 var95
= ((val
* (*)(val
*))(var_vtclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_vtclass
) /* c_name on <var_vtclass:MClass>*/;
4322 var96
= NEW_array__Array(&type_array__Arraykernel__Object
);
4323 { /* var96 = array_instance Array[Object] */
4325 var98
= NEW_array__NativeArray(var97
, &type_array__NativeArraykernel__Object
);
4326 ((struct instance_array__NativeArray
*)var98
)->values
[0] = (val
*) var91
;
4327 ((struct instance_array__NativeArray
*)var98
)->values
[1] = (val
*) var95
;
4328 ((void (*)(val
*, val
*, long))(var96
->class->vft
[COLOR_array__Array__with_native
]))(var96
, var98
, var97
) /* with_native on <var96:Array[Object]>*/;
4330 var99
= ((val
* (*)(val
*))(var96
->class->vft
[COLOR_string__Object__to_s
]))(var96
) /* to_s on <var96:Array[Object]>*/;
4331 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var99
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
4333 var101
= varonce100
;
4337 var104
= string__NativeString__to_s_with_length(var102
, var103
);
4339 varonce100
= var101
;
4342 var106
= varonce105
;
4344 var107
= ", &class_";
4346 var109
= string__NativeString__to_s_with_length(var107
, var108
);
4348 varonce105
= var106
;
4350 var110
= ((val
* (*)(val
*))(var_vtclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_vtclass
) /* c_name on <var_vtclass:MClass>*/;
4352 var112
= varonce111
;
4356 var115
= string__NativeString__to_s_with_length(var113
, var114
);
4358 varonce111
= var112
;
4361 var117
= varonce116
;
4365 var120
= string__NativeString__to_s_with_length(var118
, var119
);
4367 varonce116
= var117
;
4369 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
4370 { /* var121 = array_instance Array[Object] */
4372 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
4373 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var101
;
4374 var124
= BOX_kernel__Int(var_is_null
); /* autobox from Int to Object */
4375 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var124
;
4376 ((struct instance_array__NativeArray
*)var123
)->values
[2] = (val
*) var106
;
4377 ((struct instance_array__NativeArray
*)var123
)->values
[3] = (val
*) var110
;
4378 ((struct instance_array__NativeArray
*)var123
)->values
[4] = (val
*) var112
;
4379 ((struct instance_array__NativeArray
*)var123
)->values
[5] = (val
*) var_vt
;
4380 ((struct instance_array__NativeArray
*)var123
)->values
[6] = (val
*) var117
;
4381 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
4383 var125
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
4384 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var125
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4386 CONTINUE_label126
: (void)0;
4387 ((void (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var59
) /* next on <var59:Iterator[nullable Object]>*/;
4389 BREAK_label126
: (void)0;
4391 var128
= varonce127
;
4395 var131
= string__NativeString__to_s_with_length(var129
, var130
);
4397 varonce127
= var128
;
4399 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var128
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4401 var133
= varonce132
;
4405 var136
= string__NativeString__to_s_with_length(var134
, var135
);
4407 varonce132
= var133
;
4409 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var133
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4416 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_vts_table for (self: Object, MClass): Bool */
4417 short int VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__build_class_vts_table(val
* self
, val
* p0
) {
4418 short int var
/* : Bool */;
4419 short int var1
/* : Bool */;
4420 var1
= separate_erasure_compiler__SeparateErasureCompiler__build_class_vts_table(self
, p0
);
4425 /* method separate_erasure_compiler#SeparateErasureCompiler#retrieve_vt_bound for (self: SeparateErasureCompiler, MClassType, nullable MType): MType */
4426 val
* separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound(val
* self
, val
* p0
, val
* p1
) {
4427 val
* var
/* : MType */;
4428 val
* var_anchor
/* var anchor: MClassType */;
4429 val
* var_mtype
/* var mtype: nullable MType */;
4430 val
* var1
/* : null */;
4431 short int var2
/* : Bool */;
4432 static val
* varonce
;
4433 val
* var3
/* : String */;
4434 char* var4
/* : NativeString */;
4435 long var5
/* : Int */;
4436 val
* var6
/* : String */;
4437 short int var7
/* : Bool */;
4440 val
* var8
/* : MModule */;
4441 val
* var9
/* : MType */;
4442 short int var10
/* : Bool */;
4445 val
* var13
/* : MModule */;
4446 val
* var14
/* : MType */;
4450 if (var_mtype
== NULL
) {
4451 var2
= 1; /* is null */
4453 var2
= 0; /* arg is null but recv is not */
4459 var4
= "NOT YET IMPLEMENTED: retrieve_vt_bound on null";
4461 var6
= string__NativeString__to_s_with_length(var4
, var5
);
4465 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var3
) /* print on <self:SeparateErasureCompiler>*/;
4466 fprintf(stderr
, "Runtime error: %s", "Aborted");
4467 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 379);
4471 /* <var_mtype:nullable MType(MType)> isa MVirtualType */
4472 cltype
= type_model__MVirtualType
.color
;
4473 idtype
= type_model__MVirtualType
.id
;
4474 if(cltype
>= var_mtype
->type
->table_size
) {
4477 var7
= var_mtype
->type
->type_table
[cltype
] == idtype
;
4480 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
4481 var9
= ((val
* (*)(val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_mtype
, var8
, var_anchor
) /* anchor_to on <var_mtype:nullable MType(MVirtualType)>*/;
4485 /* <var_mtype:nullable MType(MType)> isa MParameterType */
4486 cltype11
= type_model__MParameterType
.color
;
4487 idtype12
= type_model__MParameterType
.id
;
4488 if(cltype11
>= var_mtype
->type
->table_size
) {
4491 var10
= var_mtype
->type
->type_table
[cltype11
] == idtype12
;
4494 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
4495 var14
= ((val
* (*)(val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_mtype
, var13
, var_anchor
) /* anchor_to on <var_mtype:nullable MType(MParameterType)>*/;
4506 /* method separate_erasure_compiler#SeparateErasureCompiler#retrieve_vt_bound for (self: Object, MClassType, nullable MType): MType */
4507 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound(val
* self
, val
* p0
, val
* p1
) {
4508 val
* var
/* : MType */;
4509 val
* var1
/* : MType */;
4510 var1
= separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound(self
, p0
, p1
);
4515 /* method separate_erasure_compiler#SeparateErasureCompiler#new_visitor for (self: SeparateErasureCompiler): SeparateCompilerVisitor */
4516 val
* separate_erasure_compiler__SeparateErasureCompiler__new_visitor(val
* self
) {
4517 val
* var
/* : SeparateCompilerVisitor */;
4518 val
* var1
/* : SeparateErasureCompilerVisitor */;
4519 short int var2
/* : Bool */;
4522 const struct type
* type_struct
;
4523 const char* var_class_name
;
4524 var1
= NEW_separate_erasure_compiler__SeparateErasureCompilerVisitor(&type_separate_erasure_compiler__SeparateErasureCompilerVisitor
);
4525 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init
]))(var1
, self
) /* init on <var1:SeparateErasureCompilerVisitor>*/;
4526 /* <var1:SeparateErasureCompilerVisitor> isa VISITOR */
4527 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
4528 cltype
= type_struct
->color
;
4529 idtype
= type_struct
->id
;
4530 if(cltype
>= var1
->type
->table_size
) {
4533 var2
= var1
->type
->type_table
[cltype
] == idtype
;
4536 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
4537 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
4538 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 390);
4546 /* method separate_erasure_compiler#SeparateErasureCompiler#new_visitor for (self: Object): AbstractCompilerVisitor */
4547 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__new_visitor(val
* self
) {
4548 val
* var
/* : AbstractCompilerVisitor */;
4549 val
* var1
/* : SeparateCompilerVisitor */;
4550 var1
= separate_erasure_compiler__SeparateErasureCompiler__new_visitor(self
);
4555 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables for (self: SeparateErasureCompiler): Map[MClass, Array[nullable MClass]] */
4556 val
* separate_erasure_compiler__SeparateErasureCompiler__class_tables(val
* self
) {
4557 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
4558 val
* var1
/* : Map[MClass, Array[nullable MClass]] */;
4559 var1
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dclass_tables
].val
; /* @class_tables on <self:SeparateErasureCompiler> */
4561 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @class_tables");
4562 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 394);
4569 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables for (self: Object): Map[MClass, Array[nullable MClass]] */
4570 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_tables(val
* self
) {
4571 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
4572 val
* var1
/* : Map[MClass, Array[nullable MClass]] */;
4573 var1
= separate_erasure_compiler__SeparateErasureCompiler__class_tables(self
);
4578 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables= for (self: SeparateErasureCompiler, Map[MClass, Array[nullable MClass]]) */
4579 void separate_erasure_compiler__SeparateErasureCompiler__class_tables_61d(val
* self
, val
* p0
) {
4580 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dclass_tables
].val
= p0
; /* @class_tables on <self:SeparateErasureCompiler> */
4583 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables= for (self: Object, Map[MClass, Array[nullable MClass]]) */
4584 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_tables_61d(val
* self
, val
* p0
) {
4585 separate_erasure_compiler__SeparateErasureCompiler__class_tables_61d(self
, p0
);
4588 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables for (self: SeparateErasureCompiler): Map[MClass, Array[nullable MPropDef]] */
4589 val
* separate_erasure_compiler__SeparateErasureCompiler__vt_tables(val
* self
) {
4590 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
4591 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
4592 var1
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dvt_tables
].val
; /* @vt_tables on <self:SeparateErasureCompiler> */
4594 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @vt_tables");
4595 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 395);
4602 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables for (self: Object): Map[MClass, Array[nullable MPropDef]] */
4603 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__vt_tables(val
* self
) {
4604 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
4605 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
4606 var1
= separate_erasure_compiler__SeparateErasureCompiler__vt_tables(self
);
4611 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables= for (self: SeparateErasureCompiler, Map[MClass, Array[nullable MPropDef]]) */
4612 void separate_erasure_compiler__SeparateErasureCompiler__vt_tables_61d(val
* self
, val
* p0
) {
4613 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dvt_tables
].val
= p0
; /* @vt_tables on <self:SeparateErasureCompiler> */
4616 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables= for (self: Object, Map[MClass, Array[nullable MPropDef]]) */
4617 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__vt_tables_61d(val
* self
, val
* p0
) {
4618 separate_erasure_compiler__SeparateErasureCompiler__vt_tables_61d(self
, p0
);
4621 /* method separate_erasure_compiler#SeparateErasureCompiler#display_sizes for (self: SeparateErasureCompiler) */
4622 void separate_erasure_compiler__SeparateErasureCompiler__display_sizes(val
* self
) {
4623 static val
* varonce
;
4624 val
* var
/* : String */;
4625 char* var1
/* : NativeString */;
4626 long var2
/* : Int */;
4627 val
* var3
/* : String */;
4628 static val
* varonce4
;
4629 val
* var5
/* : String */;
4630 char* var6
/* : NativeString */;
4631 long var7
/* : Int */;
4632 val
* var8
/* : String */;
4633 long var9
/* : Int */;
4634 long var_total
/* var total: Int */;
4635 long var10
/* : Int */;
4636 long var_holes
/* var holes: Int */;
4637 val
* var11
/* : Map[MClass, Array[nullable MClass]] */;
4638 val
* var12
/* : MapIterator[Object, nullable Object] */;
4639 short int var13
/* : Bool */;
4640 val
* var14
/* : Object */;
4641 val
* var_t
/* var t: MClass */;
4642 val
* var15
/* : nullable Object */;
4643 val
* var_table
/* var table: Array[nullable MClass] */;
4644 long var16
/* : Int */;
4645 long var17
/* : Int */;
4646 long var19
/* : Int */;
4647 val
* var20
/* : Iterator[nullable Object] */;
4648 short int var21
/* : Bool */;
4649 val
* var22
/* : nullable Object */;
4650 val
* var_e
/* var e: nullable MClass */;
4651 val
* var23
/* : null */;
4652 short int var24
/* : Bool */;
4653 long var25
/* : Int */;
4654 long var26
/* : Int */;
4655 long var28
/* : Int */;
4656 static val
* varonce30
;
4657 val
* var31
/* : String */;
4658 char* var32
/* : NativeString */;
4659 long var33
/* : Int */;
4660 val
* var34
/* : String */;
4661 static val
* varonce35
;
4662 val
* var36
/* : String */;
4663 char* var37
/* : NativeString */;
4664 long var38
/* : Int */;
4665 val
* var39
/* : String */;
4666 val
* var40
/* : Array[Object] */;
4667 long var41
/* : Int */;
4668 val
* var42
/* : NativeArray[Object] */;
4669 val
* var43
/* : Object */;
4670 val
* var44
/* : Object */;
4671 val
* var45
/* : String */;
4672 static val
* varonce46
;
4673 val
* var47
/* : String */;
4674 char* var48
/* : NativeString */;
4675 long var49
/* : Int */;
4676 val
* var50
/* : String */;
4677 static val
* varonce51
;
4678 val
* var52
/* : String */;
4679 char* var53
/* : NativeString */;
4680 long var54
/* : Int */;
4681 val
* var55
/* : String */;
4682 long var56
/* : Int */;
4683 long var57
/* : Int */;
4684 val
* var58
/* : Map[MClass, Array[nullable MPropDef]] */;
4685 val
* var59
/* : MapIterator[Object, nullable Object] */;
4686 short int var60
/* : Bool */;
4687 val
* var61
/* : Object */;
4688 val
* var_t62
/* var t: MClass */;
4689 val
* var63
/* : nullable Object */;
4690 val
* var_table64
/* var table: Array[nullable MPropDef] */;
4691 long var65
/* : Int */;
4692 long var66
/* : Int */;
4693 long var68
/* : Int */;
4694 val
* var69
/* : Iterator[nullable Object] */;
4695 short int var70
/* : Bool */;
4696 val
* var71
/* : nullable Object */;
4697 val
* var_e72
/* var e: nullable MPropDef */;
4698 val
* var73
/* : null */;
4699 short int var74
/* : Bool */;
4700 long var75
/* : Int */;
4701 long var76
/* : Int */;
4702 long var78
/* : Int */;
4703 static val
* varonce81
;
4704 val
* var82
/* : String */;
4705 char* var83
/* : NativeString */;
4706 long var84
/* : Int */;
4707 val
* var85
/* : String */;
4708 static val
* varonce86
;
4709 val
* var87
/* : String */;
4710 char* var88
/* : NativeString */;
4711 long var89
/* : Int */;
4712 val
* var90
/* : String */;
4713 val
* var91
/* : Array[Object] */;
4714 long var92
/* : Int */;
4715 val
* var93
/* : NativeArray[Object] */;
4716 val
* var94
/* : Object */;
4717 val
* var95
/* : Object */;
4718 val
* var96
/* : String */;
4719 static val
* varonce97
;
4720 val
* var98
/* : String */;
4721 char* var99
/* : NativeString */;
4722 long var100
/* : Int */;
4723 val
* var101
/* : String */;
4724 static val
* varonce102
;
4725 val
* var103
/* : String */;
4726 char* var104
/* : NativeString */;
4727 long var105
/* : Int */;
4728 val
* var106
/* : String */;
4729 long var107
/* : Int */;
4730 long var108
/* : Int */;
4731 val
* var109
/* : Map[MClass, Array[nullable MPropDef]] */;
4732 val
* var110
/* : MapIterator[Object, nullable Object] */;
4733 short int var111
/* : Bool */;
4734 val
* var112
/* : Object */;
4735 val
* var_t113
/* var t: MClass */;
4736 val
* var114
/* : nullable Object */;
4737 val
* var_table115
/* var table: Array[nullable MPropDef] */;
4738 long var116
/* : Int */;
4739 long var117
/* : Int */;
4740 long var119
/* : Int */;
4741 val
* var120
/* : Iterator[nullable Object] */;
4742 short int var121
/* : Bool */;
4743 val
* var122
/* : nullable Object */;
4744 val
* var_e123
/* var e: nullable MPropDef */;
4745 val
* var124
/* : null */;
4746 short int var125
/* : Bool */;
4747 long var126
/* : Int */;
4748 long var127
/* : Int */;
4749 long var129
/* : Int */;
4750 static val
* varonce132
;
4751 val
* var133
/* : String */;
4752 char* var134
/* : NativeString */;
4753 long var135
/* : Int */;
4754 val
* var136
/* : String */;
4755 static val
* varonce137
;
4756 val
* var138
/* : String */;
4757 char* var139
/* : NativeString */;
4758 long var140
/* : Int */;
4759 val
* var141
/* : String */;
4760 val
* var142
/* : Array[Object] */;
4761 long var143
/* : Int */;
4762 val
* var144
/* : NativeArray[Object] */;
4763 val
* var145
/* : Object */;
4764 val
* var146
/* : Object */;
4765 val
* var147
/* : String */;
4766 static val
* varonce148
;
4767 val
* var149
/* : String */;
4768 char* var150
/* : NativeString */;
4769 long var151
/* : Int */;
4770 val
* var152
/* : String */;
4771 static val
* varonce153
;
4772 val
* var154
/* : String */;
4773 char* var155
/* : NativeString */;
4774 long var156
/* : Int */;
4775 val
* var157
/* : String */;
4776 long var158
/* : Int */;
4777 long var159
/* : Int */;
4778 val
* var160
/* : Map[MClass, Array[nullable MPropDef]] */;
4779 val
* var161
/* : MapIterator[Object, nullable Object] */;
4780 short int var162
/* : Bool */;
4781 val
* var163
/* : Object */;
4782 val
* var_t164
/* var t: MClass */;
4783 val
* var165
/* : nullable Object */;
4784 val
* var_table166
/* var table: Array[nullable MPropDef] */;
4785 long var167
/* : Int */;
4786 long var168
/* : Int */;
4787 long var170
/* : Int */;
4788 val
* var171
/* : Iterator[nullable Object] */;
4789 short int var172
/* : Bool */;
4790 val
* var173
/* : nullable Object */;
4791 val
* var_e174
/* var e: nullable MPropDef */;
4792 val
* var175
/* : null */;
4793 short int var176
/* : Bool */;
4794 long var177
/* : Int */;
4795 long var178
/* : Int */;
4796 long var180
/* : Int */;
4797 static val
* varonce183
;
4798 val
* var184
/* : String */;
4799 char* var185
/* : NativeString */;
4800 long var186
/* : Int */;
4801 val
* var187
/* : String */;
4802 static val
* varonce188
;
4803 val
* var189
/* : String */;
4804 char* var190
/* : NativeString */;
4805 long var191
/* : Int */;
4806 val
* var192
/* : String */;
4807 val
* var193
/* : Array[Object] */;
4808 long var194
/* : Int */;
4809 val
* var195
/* : NativeArray[Object] */;
4810 val
* var196
/* : Object */;
4811 val
* var197
/* : Object */;
4812 val
* var198
/* : String */;
4816 var1
= "# size of subtyping tables";
4818 var3
= string__NativeString__to_s_with_length(var1
, var2
);
4822 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var
) /* print on <self:SeparateErasureCompiler>*/;
4826 var6
= "\11total \11holes";
4828 var8
= string__NativeString__to_s_with_length(var6
, var7
);
4832 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var5
) /* print on <self:SeparateErasureCompiler>*/;
4837 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_tables
]))(self
) /* class_tables on <self:SeparateErasureCompiler>*/;
4838 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var11
) /* iterator on <var11:Map[MClass, Array[nullable MClass]]>*/;
4840 var13
= ((short int (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var12
) /* is_ok on <var12:MapIterator[Object, nullable Object]>*/;
4842 var14
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var12
) /* key on <var12:MapIterator[Object, nullable Object]>*/;
4844 var15
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var12
) /* item on <var12:MapIterator[Object, nullable Object]>*/;
4846 var16
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MClass]>*/;
4847 { /* Inline kernel#Int#+ (var_total,var16) */
4848 var19
= var_total
+ var16
;
4851 RET_LABEL18
:(void)0;
4854 var20
= ((val
* (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table
) /* iterator on <var_table:Array[nullable MClass]>*/;
4856 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var20
) /* is_ok on <var20:Iterator[nullable Object]>*/;
4858 var22
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var20
) /* item on <var20:Iterator[nullable Object]>*/;
4861 if (var_e
== NULL
) {
4862 var24
= 1; /* is null */
4864 var24
= 0; /* arg is null but recv is not */
4868 { /* Inline kernel#Int#+ (var_holes,var25) */
4869 var28
= var_holes
+ var25
;
4872 RET_LABEL27
:(void)0;
4877 CONTINUE_label
: (void)0;
4878 ((void (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var20
) /* next on <var20:Iterator[nullable Object]>*/;
4880 BREAK_label
: (void)0;
4881 CONTINUE_label29
: (void)0;
4882 ((void (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var12
) /* next on <var12:MapIterator[Object, nullable Object]>*/;
4884 BREAK_label29
: (void)0;
4890 var34
= string__NativeString__to_s_with_length(var32
, var33
);
4899 var39
= string__NativeString__to_s_with_length(var37
, var38
);
4903 var40
= NEW_array__Array(&type_array__Arraykernel__Object
);
4904 { /* var40 = array_instance Array[Object] */
4906 var42
= NEW_array__NativeArray(var41
, &type_array__NativeArraykernel__Object
);
4907 ((struct instance_array__NativeArray
*)var42
)->values
[0] = (val
*) var31
;
4908 var43
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
4909 ((struct instance_array__NativeArray
*)var42
)->values
[1] = (val
*) var43
;
4910 ((struct instance_array__NativeArray
*)var42
)->values
[2] = (val
*) var36
;
4911 var44
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
4912 ((struct instance_array__NativeArray
*)var42
)->values
[3] = (val
*) var44
;
4913 ((void (*)(val
*, val
*, long))(var40
->class->vft
[COLOR_array__Array__with_native
]))(var40
, var42
, var41
) /* with_native on <var40:Array[Object]>*/;
4915 var45
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_string__Object__to_s
]))(var40
) /* to_s on <var40:Array[Object]>*/;
4916 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var45
) /* print on <self:SeparateErasureCompiler>*/;
4920 var48
= "# size of resolution tables";
4922 var50
= string__NativeString__to_s_with_length(var48
, var49
);
4926 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var47
) /* print on <self:SeparateErasureCompiler>*/;
4930 var53
= "\11total \11holes";
4932 var55
= string__NativeString__to_s_with_length(var53
, var54
);
4936 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var52
) /* print on <self:SeparateErasureCompiler>*/;
4941 var58
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_tables
]))(self
) /* vt_tables on <self:SeparateErasureCompiler>*/;
4942 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var58
) /* iterator on <var58:Map[MClass, Array[nullable MPropDef]]>*/;
4944 var60
= ((short int (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var59
) /* is_ok on <var59:MapIterator[Object, nullable Object]>*/;
4946 var61
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var59
) /* key on <var59:MapIterator[Object, nullable Object]>*/;
4948 var63
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var59
) /* item on <var59:MapIterator[Object, nullable Object]>*/;
4949 var_table64
= var63
;
4950 var65
= ((long (*)(val
*))(var_table64
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table64
) /* length on <var_table64:Array[nullable MPropDef]>*/;
4951 { /* Inline kernel#Int#+ (var_total,var65) */
4952 var68
= var_total
+ var65
;
4955 RET_LABEL67
:(void)0;
4958 var69
= ((val
* (*)(val
*))(var_table64
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table64
) /* iterator on <var_table64:Array[nullable MPropDef]>*/;
4960 var70
= ((short int (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var69
) /* is_ok on <var69:Iterator[nullable Object]>*/;
4962 var71
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var69
) /* item on <var69:Iterator[nullable Object]>*/;
4965 if (var_e72
== NULL
) {
4966 var74
= 1; /* is null */
4968 var74
= 0; /* arg is null but recv is not */
4972 { /* Inline kernel#Int#+ (var_holes,var75) */
4973 var78
= var_holes
+ var75
;
4976 RET_LABEL77
:(void)0;
4981 CONTINUE_label79
: (void)0;
4982 ((void (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var69
) /* next on <var69:Iterator[nullable Object]>*/;
4984 BREAK_label79
: (void)0;
4985 CONTINUE_label80
: (void)0;
4986 ((void (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var59
) /* next on <var59:MapIterator[Object, nullable Object]>*/;
4988 BREAK_label80
: (void)0;
4994 var85
= string__NativeString__to_s_with_length(var83
, var84
);
5003 var90
= string__NativeString__to_s_with_length(var88
, var89
);
5007 var91
= NEW_array__Array(&type_array__Arraykernel__Object
);
5008 { /* var91 = array_instance Array[Object] */
5010 var93
= NEW_array__NativeArray(var92
, &type_array__NativeArraykernel__Object
);
5011 ((struct instance_array__NativeArray
*)var93
)->values
[0] = (val
*) var82
;
5012 var94
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
5013 ((struct instance_array__NativeArray
*)var93
)->values
[1] = (val
*) var94
;
5014 ((struct instance_array__NativeArray
*)var93
)->values
[2] = (val
*) var87
;
5015 var95
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
5016 ((struct instance_array__NativeArray
*)var93
)->values
[3] = (val
*) var95
;
5017 ((void (*)(val
*, val
*, long))(var91
->class->vft
[COLOR_array__Array__with_native
]))(var91
, var93
, var92
) /* with_native on <var91:Array[Object]>*/;
5019 var96
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_string__Object__to_s
]))(var91
) /* to_s on <var91:Array[Object]>*/;
5020 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var96
) /* print on <self:SeparateErasureCompiler>*/;
5024 var99
= "# size of methods tables";
5026 var101
= string__NativeString__to_s_with_length(var99
, var100
);
5030 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var98
) /* print on <self:SeparateErasureCompiler>*/;
5032 var103
= varonce102
;
5034 var104
= "\11total \11holes";
5036 var106
= string__NativeString__to_s_with_length(var104
, var105
);
5038 varonce102
= var103
;
5040 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var103
) /* print on <self:SeparateErasureCompiler>*/;
5045 var109
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_tables
]))(self
) /* method_tables on <self:SeparateErasureCompiler>*/;
5046 var110
= ((val
* (*)(val
*))(var109
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var109
) /* iterator on <var109:Map[MClass, Array[nullable MPropDef]]>*/;
5048 var111
= ((short int (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var110
) /* is_ok on <var110:MapIterator[Object, nullable Object]>*/;
5050 var112
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var110
) /* key on <var110:MapIterator[Object, nullable Object]>*/;
5052 var114
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var110
) /* item on <var110:MapIterator[Object, nullable Object]>*/;
5053 var_table115
= var114
;
5054 var116
= ((long (*)(val
*))(var_table115
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table115
) /* length on <var_table115:Array[nullable MPropDef]>*/;
5055 { /* Inline kernel#Int#+ (var_total,var116) */
5056 var119
= var_total
+ var116
;
5059 RET_LABEL118
:(void)0;
5062 var120
= ((val
* (*)(val
*))(var_table115
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table115
) /* iterator on <var_table115:Array[nullable MPropDef]>*/;
5064 var121
= ((short int (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var120
) /* is_ok on <var120:Iterator[nullable Object]>*/;
5066 var122
= ((val
* (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var120
) /* item on <var120:Iterator[nullable Object]>*/;
5069 if (var_e123
== NULL
) {
5070 var125
= 1; /* is null */
5072 var125
= 0; /* arg is null but recv is not */
5076 { /* Inline kernel#Int#+ (var_holes,var126) */
5077 var129
= var_holes
+ var126
;
5080 RET_LABEL128
:(void)0;
5085 CONTINUE_label130
: (void)0;
5086 ((void (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var120
) /* next on <var120:Iterator[nullable Object]>*/;
5088 BREAK_label130
: (void)0;
5089 CONTINUE_label131
: (void)0;
5090 ((void (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var110
) /* next on <var110:MapIterator[Object, nullable Object]>*/;
5092 BREAK_label131
: (void)0;
5094 var133
= varonce132
;
5098 var136
= string__NativeString__to_s_with_length(var134
, var135
);
5100 varonce132
= var133
;
5103 var138
= varonce137
;
5107 var141
= string__NativeString__to_s_with_length(var139
, var140
);
5109 varonce137
= var138
;
5111 var142
= NEW_array__Array(&type_array__Arraykernel__Object
);
5112 { /* var142 = array_instance Array[Object] */
5114 var144
= NEW_array__NativeArray(var143
, &type_array__NativeArraykernel__Object
);
5115 ((struct instance_array__NativeArray
*)var144
)->values
[0] = (val
*) var133
;
5116 var145
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
5117 ((struct instance_array__NativeArray
*)var144
)->values
[1] = (val
*) var145
;
5118 ((struct instance_array__NativeArray
*)var144
)->values
[2] = (val
*) var138
;
5119 var146
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
5120 ((struct instance_array__NativeArray
*)var144
)->values
[3] = (val
*) var146
;
5121 ((void (*)(val
*, val
*, long))(var142
->class->vft
[COLOR_array__Array__with_native
]))(var142
, var144
, var143
) /* with_native on <var142:Array[Object]>*/;
5123 var147
= ((val
* (*)(val
*))(var142
->class->vft
[COLOR_string__Object__to_s
]))(var142
) /* to_s on <var142:Array[Object]>*/;
5124 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var147
) /* print on <self:SeparateErasureCompiler>*/;
5126 var149
= varonce148
;
5128 var150
= "# size of attributes tables";
5130 var152
= string__NativeString__to_s_with_length(var150
, var151
);
5132 varonce148
= var149
;
5134 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var149
) /* print on <self:SeparateErasureCompiler>*/;
5136 var154
= varonce153
;
5138 var155
= "\11total \11holes";
5140 var157
= string__NativeString__to_s_with_length(var155
, var156
);
5142 varonce153
= var154
;
5144 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var154
) /* print on <self:SeparateErasureCompiler>*/;
5149 var160
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_tables
]))(self
) /* attr_tables on <self:SeparateErasureCompiler>*/;
5150 var161
= ((val
* (*)(val
*))(var160
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var160
) /* iterator on <var160:Map[MClass, Array[nullable MPropDef]]>*/;
5152 var162
= ((short int (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var161
) /* is_ok on <var161:MapIterator[Object, nullable Object]>*/;
5154 var163
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var161
) /* key on <var161:MapIterator[Object, nullable Object]>*/;
5156 var165
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var161
) /* item on <var161:MapIterator[Object, nullable Object]>*/;
5157 var_table166
= var165
;
5158 var167
= ((long (*)(val
*))(var_table166
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table166
) /* length on <var_table166:Array[nullable MPropDef]>*/;
5159 { /* Inline kernel#Int#+ (var_total,var167) */
5160 var170
= var_total
+ var167
;
5163 RET_LABEL169
:(void)0;
5166 var171
= ((val
* (*)(val
*))(var_table166
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table166
) /* iterator on <var_table166:Array[nullable MPropDef]>*/;
5168 var172
= ((short int (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var171
) /* is_ok on <var171:Iterator[nullable Object]>*/;
5170 var173
= ((val
* (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var171
) /* item on <var171:Iterator[nullable Object]>*/;
5173 if (var_e174
== NULL
) {
5174 var176
= 1; /* is null */
5176 var176
= 0; /* arg is null but recv is not */
5180 { /* Inline kernel#Int#+ (var_holes,var177) */
5181 var180
= var_holes
+ var177
;
5184 RET_LABEL179
:(void)0;
5189 CONTINUE_label181
: (void)0;
5190 ((void (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var171
) /* next on <var171:Iterator[nullable Object]>*/;
5192 BREAK_label181
: (void)0;
5193 CONTINUE_label182
: (void)0;
5194 ((void (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var161
) /* next on <var161:MapIterator[Object, nullable Object]>*/;
5196 BREAK_label182
: (void)0;
5198 var184
= varonce183
;
5202 var187
= string__NativeString__to_s_with_length(var185
, var186
);
5204 varonce183
= var184
;
5207 var189
= varonce188
;
5211 var192
= string__NativeString__to_s_with_length(var190
, var191
);
5213 varonce188
= var189
;
5215 var193
= NEW_array__Array(&type_array__Arraykernel__Object
);
5216 { /* var193 = array_instance Array[Object] */
5218 var195
= NEW_array__NativeArray(var194
, &type_array__NativeArraykernel__Object
);
5219 ((struct instance_array__NativeArray
*)var195
)->values
[0] = (val
*) var184
;
5220 var196
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
5221 ((struct instance_array__NativeArray
*)var195
)->values
[1] = (val
*) var196
;
5222 ((struct instance_array__NativeArray
*)var195
)->values
[2] = (val
*) var189
;
5223 var197
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
5224 ((struct instance_array__NativeArray
*)var195
)->values
[3] = (val
*) var197
;
5225 ((void (*)(val
*, val
*, long))(var193
->class->vft
[COLOR_array__Array__with_native
]))(var193
, var195
, var194
) /* with_native on <var193:Array[Object]>*/;
5227 var198
= ((val
* (*)(val
*))(var193
->class->vft
[COLOR_string__Object__to_s
]))(var193
) /* to_s on <var193:Array[Object]>*/;
5228 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var198
) /* print on <self:SeparateErasureCompiler>*/;
5231 /* method separate_erasure_compiler#SeparateErasureCompiler#display_sizes for (self: Object) */
5232 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__display_sizes(val
* self
) {
5233 separate_erasure_compiler__SeparateErasureCompiler__display_sizes(self
);
5236 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#compile_callsite for (self: SeparateErasureCompilerVisitor, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
5237 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite(val
* self
, val
* p0
, val
* p1
) {
5238 val
* var
/* : nullable RuntimeVariable */;
5239 val
* var_callsite
/* var callsite: CallSite */;
5240 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
5241 val
* var1
/* : nullable RuntimeVariable */;
5242 val
* var_res
/* var res: nullable RuntimeVariable */;
5243 short int var2
/* : Bool */;
5244 short int var3
/* : Bool */;
5245 short int var_
/* var : Bool */;
5246 val
* var4
/* : AbstractCompiler */;
5247 short int var5
/* : Bool */;
5250 const char* var_class_name
;
5251 val
* var6
/* : ModelBuilder */;
5252 val
* var7
/* : ToolContext */;
5253 val
* var8
/* : OptionBool */;
5254 val
* var9
/* : nullable Object */;
5255 short int var10
/* : Bool */;
5256 short int var11
/* : Bool */;
5257 val
* var12
/* : null */;
5258 short int var13
/* : Bool */;
5259 val
* var14
/* : MSignature */;
5260 val
* var15
/* : nullable MType */;
5261 val
* var_mtype
/* var mtype: nullable MType */;
5262 val
* var16
/* : null */;
5263 short int var17
/* : Bool */;
5264 static val
* varonce
;
5265 val
* var18
/* : String */;
5266 char* var19
/* : NativeString */;
5267 long var20
/* : Int */;
5268 val
* var21
/* : String */;
5269 static val
* varonce22
;
5270 val
* var23
/* : String */;
5271 char* var24
/* : NativeString */;
5272 long var25
/* : Int */;
5273 val
* var26
/* : String */;
5274 static val
* varonce27
;
5275 val
* var28
/* : String */;
5276 char* var29
/* : NativeString */;
5277 long var30
/* : Int */;
5278 val
* var31
/* : String */;
5279 val
* var32
/* : Array[Object] */;
5280 long var33
/* : Int */;
5281 val
* var34
/* : NativeArray[Object] */;
5282 val
* var35
/* : String */;
5283 static val
* varonce36
;
5284 val
* var37
/* : String */;
5285 char* var38
/* : NativeString */;
5286 long var39
/* : Int */;
5287 val
* var40
/* : String */;
5288 val
* var41
/* : RuntimeVariable */;
5289 val
* var_cond
/* var cond: RuntimeVariable */;
5290 static val
* varonce42
;
5291 val
* var43
/* : String */;
5292 char* var44
/* : NativeString */;
5293 long var45
/* : Int */;
5294 val
* var46
/* : String */;
5295 static val
* varonce47
;
5296 val
* var48
/* : String */;
5297 char* var49
/* : NativeString */;
5298 long var50
/* : Int */;
5299 val
* var51
/* : String */;
5300 val
* var52
/* : Array[Object] */;
5301 long var53
/* : Int */;
5302 val
* var54
/* : NativeArray[Object] */;
5303 val
* var55
/* : String */;
5304 static val
* varonce56
;
5305 val
* var57
/* : String */;
5306 char* var58
/* : NativeString */;
5307 long var59
/* : Int */;
5308 val
* var60
/* : String */;
5309 static val
* varonce61
;
5310 val
* var62
/* : String */;
5311 char* var63
/* : NativeString */;
5312 long var64
/* : Int */;
5313 val
* var65
/* : String */;
5316 var1
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite
]))(self
, p0
, p1
) /* compile_callsite on <self:SeparateErasureCompilerVisitor>*/;
5318 var3
= ((short int (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__erasure_cast
]))(var_callsite
) /* erasure_cast on <var_callsite:CallSite>*/;
5321 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
5322 /* <var4:AbstractCompiler(SeparateCompiler)> isa SeparateErasureCompiler */
5323 cltype
= type_separate_erasure_compiler__SeparateErasureCompiler
.color
;
5324 idtype
= type_separate_erasure_compiler__SeparateErasureCompiler
.id
;
5325 if(cltype
>= var4
->type
->table_size
) {
5328 var5
= var4
->type
->type_table
[cltype
] == idtype
;
5331 var_class_name
= var4
== NULL ?
"null" : var4
->type
->name
;
5332 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "SeparateErasureCompiler", var_class_name
);
5333 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 447);
5336 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var4
) /* modelbuilder on <var4:SeparateCompiler(SeparateErasureCompiler)>*/;
5337 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var6
) /* toolcontext on <var6:ModelBuilder>*/;
5338 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast
]))(var7
) /* opt_no_check_erasure_cast on <var7:ToolContext>*/;
5339 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_opts__Option__value
]))(var8
) /* value on <var8:OptionBool>*/;
5340 var10
= ((struct instance_kernel__Bool
*)var9
)->value
; /* autounbox from nullable Object to Bool */;
5348 if (var_res
== NULL
) {
5349 var13
= 0; /* is null */
5351 var13
= 1; /* arg is null and recv is not */
5354 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5355 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 448);
5358 var14
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_callsite
) /* msignature on <var_callsite:CallSite>*/;
5359 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var14
) /* return_mtype on <var14:MSignature>*/;
5362 if (var_mtype
== NULL
) {
5363 var17
= 0; /* is null */
5365 var17
= 1; /* arg is null and recv is not */
5368 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5369 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 450);
5375 var19
= "/* Erasure cast for return ";
5377 var21
= string__NativeString__to_s_with_length(var19
, var20
);
5386 var26
= string__NativeString__to_s_with_length(var24
, var25
);
5395 var31
= string__NativeString__to_s_with_length(var29
, var30
);
5399 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
5400 { /* var32 = array_instance Array[Object] */
5402 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
5403 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var18
;
5404 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_res
;
5405 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var23
;
5406 ((struct instance_array__NativeArray
*)var34
)->values
[3] = (val
*) var_mtype
;
5407 ((struct instance_array__NativeArray
*)var34
)->values
[4] = (val
*) var28
;
5408 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
5410 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
5411 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var35
) /* add on <self:SeparateErasureCompilerVisitor>*/;
5417 var40
= string__NativeString__to_s_with_length(var38
, var39
);
5421 var41
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__type_test
]))(self
, var_res
, var_mtype
, var37
) /* type_test on <self:SeparateErasureCompilerVisitor>*/;
5428 var46
= string__NativeString__to_s_with_length(var44
, var45
);
5437 var51
= string__NativeString__to_s_with_length(var49
, var50
);
5441 var52
= NEW_array__Array(&type_array__Arraykernel__Object
);
5442 { /* var52 = array_instance Array[Object] */
5444 var54
= NEW_array__NativeArray(var53
, &type_array__NativeArraykernel__Object
);
5445 ((struct instance_array__NativeArray
*)var54
)->values
[0] = (val
*) var43
;
5446 ((struct instance_array__NativeArray
*)var54
)->values
[1] = (val
*) var_cond
;
5447 ((struct instance_array__NativeArray
*)var54
)->values
[2] = (val
*) var48
;
5448 ((void (*)(val
*, val
*, long))(var52
->class->vft
[COLOR_array__Array__with_native
]))(var52
, var54
, var53
) /* with_native on <var52:Array[Object]>*/;
5450 var55
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_string__Object__to_s
]))(var52
) /* to_s on <var52:Array[Object]>*/;
5451 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var55
) /* add on <self:SeparateErasureCompilerVisitor>*/;
5455 var58
= "Cast failed";
5457 var60
= string__NativeString__to_s_with_length(var58
, var59
);
5461 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(self
, var57
) /* add_abort on <self:SeparateErasureCompilerVisitor>*/;
5467 var65
= string__NativeString__to_s_with_length(var63
, var64
);
5471 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var62
) /* add on <self:SeparateErasureCompilerVisitor>*/;
5479 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#compile_callsite for (self: Object, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
5480 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite(val
* self
, val
* p0
, val
* p1
) {
5481 val
* var
/* : nullable RuntimeVariable */;
5482 val
* var1
/* : nullable RuntimeVariable */;
5483 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite(self
, p0
, p1
);
5488 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#init_instance for (self: SeparateErasureCompilerVisitor, MClassType): RuntimeVariable */
5489 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__init_instance(val
* self
, val
* p0
) {
5490 val
* var
/* : RuntimeVariable */;
5491 val
* var_mtype
/* var mtype: MClassType */;
5492 static val
* varonce
;
5493 val
* var1
/* : String */;
5494 char* var2
/* : NativeString */;
5495 long var3
/* : Int */;
5496 val
* var4
/* : String */;
5497 val
* var5
/* : MClass */;
5498 val
* var6
/* : String */;
5499 val
* var7
/* : Array[Object] */;
5500 long var8
/* : Int */;
5501 val
* var9
/* : NativeArray[Object] */;
5502 val
* var10
/* : String */;
5503 static val
* varonce11
;
5504 val
* var12
/* : String */;
5505 char* var13
/* : NativeString */;
5506 long var14
/* : Int */;
5507 val
* var15
/* : String */;
5508 val
* var16
/* : MClass */;
5509 val
* var17
/* : String */;
5510 static val
* varonce18
;
5511 val
* var19
/* : String */;
5512 char* var20
/* : NativeString */;
5513 long var21
/* : Int */;
5514 val
* var22
/* : String */;
5515 val
* var23
/* : Array[Object] */;
5516 long var24
/* : Int */;
5517 val
* var25
/* : NativeArray[Object] */;
5518 val
* var26
/* : String */;
5519 val
* var27
/* : RuntimeVariable */;
5526 var4
= string__NativeString__to_s_with_length(var2
, var3
);
5530 var5
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
5531 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var5
) /* c_name on <var5:MClass>*/;
5532 var7
= NEW_array__Array(&type_array__Arraykernel__Object
);
5533 { /* var7 = array_instance Array[Object] */
5535 var9
= NEW_array__NativeArray(var8
, &type_array__NativeArraykernel__Object
);
5536 ((struct instance_array__NativeArray
*)var9
)->values
[0] = (val
*) var1
;
5537 ((struct instance_array__NativeArray
*)var9
)->values
[1] = (val
*) var6
;
5538 ((void (*)(val
*, val
*, long))(var7
->class->vft
[COLOR_array__Array__with_native
]))(var7
, var9
, var8
) /* with_native on <var7:Array[Object]>*/;
5540 var10
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_string__Object__to_s
]))(var7
) /* to_s on <var7:Array[Object]>*/;
5541 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var10
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
5547 var15
= string__NativeString__to_s_with_length(var13
, var14
);
5551 var16
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
5552 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var16
) /* c_name on <var16:MClass>*/;
5558 var22
= string__NativeString__to_s_with_length(var20
, var21
);
5562 var23
= NEW_array__Array(&type_array__Arraykernel__Object
);
5563 { /* var23 = array_instance Array[Object] */
5565 var25
= NEW_array__NativeArray(var24
, &type_array__NativeArraykernel__Object
);
5566 ((struct instance_array__NativeArray
*)var25
)->values
[0] = (val
*) var12
;
5567 ((struct instance_array__NativeArray
*)var25
)->values
[1] = (val
*) var17
;
5568 ((struct instance_array__NativeArray
*)var25
)->values
[2] = (val
*) var19
;
5569 ((void (*)(val
*, val
*, long))(var23
->class->vft
[COLOR_array__Array__with_native
]))(var23
, var25
, var24
) /* with_native on <var23:Array[Object]>*/;
5571 var26
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_string__Object__to_s
]))(var23
) /* to_s on <var23:Array[Object]>*/;
5572 var27
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var26
, var_mtype
) /* new_expr on <self:SeparateErasureCompilerVisitor>*/;
5578 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#init_instance for (self: Object, MClassType): RuntimeVariable */
5579 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__init_instance(val
* self
, val
* p0
) {
5580 val
* var
/* : RuntimeVariable */;
5581 val
* var1
/* : RuntimeVariable */;
5582 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__init_instance(self
, p0
);
5587 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#type_test for (self: SeparateErasureCompilerVisitor, RuntimeVariable, MType, String): RuntimeVariable */
5588 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5589 val
* var
/* : RuntimeVariable */;
5590 val
* var_value
/* var value: RuntimeVariable */;
5591 val
* var_mtype
/* var mtype: MType */;
5592 val
* var_tag
/* var tag: String */;
5593 static val
* varonce
;
5594 val
* var1
/* : String */;
5595 char* var2
/* : NativeString */;
5596 long var3
/* : Int */;
5597 val
* var4
/* : String */;
5598 val
* var5
/* : String */;
5599 static val
* varonce6
;
5600 val
* var7
/* : String */;
5601 char* var8
/* : NativeString */;
5602 long var9
/* : Int */;
5603 val
* var10
/* : String */;
5604 static val
* varonce11
;
5605 val
* var12
/* : String */;
5606 char* var13
/* : NativeString */;
5607 long var14
/* : Int */;
5608 val
* var15
/* : String */;
5609 val
* var16
/* : Array[Object] */;
5610 long var17
/* : Int */;
5611 val
* var18
/* : NativeArray[Object] */;
5612 val
* var19
/* : String */;
5613 val
* var20
/* : MClassType */;
5614 val
* var21
/* : RuntimeVariable */;
5615 val
* var_res
/* var res: RuntimeVariable */;
5616 static val
* varonce22
;
5617 val
* var23
/* : String */;
5618 char* var24
/* : NativeString */;
5619 long var25
/* : Int */;
5620 val
* var26
/* : String */;
5621 val
* var27
/* : String */;
5622 val
* var_cltype
/* var cltype: String */;
5623 static val
* varonce28
;
5624 val
* var29
/* : String */;
5625 char* var30
/* : NativeString */;
5626 long var31
/* : Int */;
5627 val
* var32
/* : String */;
5628 static val
* varonce33
;
5629 val
* var34
/* : String */;
5630 char* var35
/* : NativeString */;
5631 long var36
/* : Int */;
5632 val
* var37
/* : String */;
5633 val
* var38
/* : Array[Object] */;
5634 long var39
/* : Int */;
5635 val
* var40
/* : NativeArray[Object] */;
5636 val
* var41
/* : String */;
5637 static val
* varonce42
;
5638 val
* var43
/* : String */;
5639 char* var44
/* : NativeString */;
5640 long var45
/* : Int */;
5641 val
* var46
/* : String */;
5642 val
* var47
/* : String */;
5643 val
* var_idtype
/* var idtype: String */;
5644 static val
* varonce48
;
5645 val
* var49
/* : String */;
5646 char* var50
/* : NativeString */;
5647 long var51
/* : Int */;
5648 val
* var52
/* : String */;
5649 static val
* varonce53
;
5650 val
* var54
/* : String */;
5651 char* var55
/* : NativeString */;
5652 long var56
/* : Int */;
5653 val
* var57
/* : String */;
5654 val
* var58
/* : Array[Object] */;
5655 long var59
/* : Int */;
5656 val
* var60
/* : NativeArray[Object] */;
5657 val
* var61
/* : String */;
5658 short int var62
/* : Bool */;
5659 short int var_maybe_null
/* var maybe_null: Bool */;
5660 static val
* varonce63
;
5661 val
* var64
/* : String */;
5662 char* var65
/* : NativeString */;
5663 long var66
/* : Int */;
5664 val
* var67
/* : String */;
5665 val
* var_accept_null
/* var accept_null: String */;
5666 short int var68
/* : Bool */;
5669 val
* var69
/* : MType */;
5670 static val
* varonce70
;
5671 val
* var71
/* : String */;
5672 char* var72
/* : NativeString */;
5673 long var73
/* : Int */;
5674 val
* var74
/* : String */;
5675 short int var75
/* : Bool */;
5678 val
* var78
/* : nullable Frame */;
5679 val
* var79
/* : MPropDef */;
5680 val
* var80
/* : MClassDef */;
5681 val
* var81
/* : MClassType */;
5682 val
* var82
/* : nullable Frame */;
5683 val
* var83
/* : MPropDef */;
5684 val
* var84
/* : MClassDef */;
5685 val
* var85
/* : MClassType */;
5686 val
* var86
/* : nullable Frame */;
5687 val
* var87
/* : MPropDef */;
5688 val
* var88
/* : MClassDef */;
5689 val
* var89
/* : MModule */;
5690 short int var90
/* : Bool */;
5691 val
* var91
/* : MType */;
5692 short int var92
/* : Bool */;
5695 val
* var95
/* : MType */;
5696 static val
* varonce96
;
5697 val
* var97
/* : String */;
5698 char* var98
/* : NativeString */;
5699 long var99
/* : Int */;
5700 val
* var100
/* : String */;
5701 val
* var101
/* : MType */;
5702 val
* var102
/* : nullable Frame */;
5703 val
* var103
/* : MPropDef */;
5704 val
* var104
/* : MClassDef */;
5705 val
* var105
/* : MModule */;
5706 val
* var106
/* : nullable Frame */;
5707 val
* var107
/* : MPropDef */;
5708 val
* var108
/* : MClassDef */;
5709 val
* var109
/* : MClassType */;
5710 short int var110
/* : Bool */;
5711 static val
* varonce111
;
5712 val
* var112
/* : String */;
5713 char* var113
/* : NativeString */;
5714 long var114
/* : Int */;
5715 val
* var115
/* : String */;
5716 val
* var116
/* : String */;
5717 static val
* varonce117
;
5718 val
* var118
/* : String */;
5719 char* var119
/* : NativeString */;
5720 long var120
/* : Int */;
5721 val
* var121
/* : String */;
5722 static val
* varonce122
;
5723 val
* var123
/* : String */;
5724 char* var124
/* : NativeString */;
5725 long var125
/* : Int */;
5726 val
* var126
/* : String */;
5727 val
* var127
/* : Array[Object] */;
5728 long var128
/* : Int */;
5729 val
* var129
/* : NativeArray[Object] */;
5730 val
* var130
/* : String */;
5731 val
* var131
/* : AbstractCompiler */;
5732 val
* var132
/* : ModelBuilder */;
5733 val
* var133
/* : ToolContext */;
5734 val
* var134
/* : OptionBool */;
5735 val
* var135
/* : nullable Object */;
5736 short int var136
/* : Bool */;
5737 val
* var137
/* : AbstractCompiler */;
5738 val
* var138
/* : HashMap[String, Int] */;
5739 val
* var_
/* var : HashMap[String, Int] */;
5740 val
* var_139
/* var : String */;
5741 val
* var140
/* : nullable Object */;
5742 long var141
/* : Int */;
5743 long var142
/* : Int */;
5744 long var144
/* : Int */;
5745 long var145
/* : Int */;
5746 val
* var146
/* : nullable Object */;
5747 static val
* varonce147
;
5748 val
* var148
/* : String */;
5749 char* var149
/* : NativeString */;
5750 long var150
/* : Int */;
5751 val
* var151
/* : String */;
5752 static val
* varonce152
;
5753 val
* var153
/* : String */;
5754 char* var154
/* : NativeString */;
5755 long var155
/* : Int */;
5756 val
* var156
/* : String */;
5757 val
* var157
/* : Array[Object] */;
5758 long var158
/* : Int */;
5759 val
* var159
/* : NativeArray[Object] */;
5760 val
* var160
/* : String */;
5761 val
* var161
/* : MType */;
5762 val
* var162
/* : String */;
5763 static val
* varonce163
;
5764 val
* var164
/* : String */;
5765 char* var165
/* : NativeString */;
5766 long var166
/* : Int */;
5767 val
* var167
/* : String */;
5768 short int var168
/* : Bool */;
5769 val
* var169
/* : Array[Object] */;
5770 long var170
/* : Int */;
5771 val
* var_171
/* var : Array[Object] */;
5772 static val
* varonce172
;
5773 val
* var173
/* : String */;
5774 char* var174
/* : NativeString */;
5775 long var175
/* : Int */;
5776 val
* var176
/* : String */;
5777 static val
* varonce177
;
5778 val
* var178
/* : String */;
5779 char* var179
/* : NativeString */;
5780 long var180
/* : Int */;
5781 val
* var181
/* : String */;
5782 val
* var182
/* : String */;
5783 val
* var_class_ptr
/* var class_ptr: nullable Object */;
5784 val
* var183
/* : MType */;
5785 short int var184
/* : Bool */;
5788 const char* var_class_name
;
5789 val
* var187
/* : MClass */;
5790 val
* var_mclass
/* var mclass: MClass */;
5791 static val
* varonce188
;
5792 val
* var189
/* : String */;
5793 char* var190
/* : NativeString */;
5794 long var191
/* : Int */;
5795 val
* var192
/* : String */;
5796 val
* var193
/* : String */;
5797 val
* var194
/* : Array[Object] */;
5798 long var195
/* : Int */;
5799 val
* var196
/* : NativeArray[Object] */;
5800 val
* var197
/* : String */;
5801 val
* var198
/* : Array[Object] */;
5802 long var199
/* : Int */;
5803 val
* var_200
/* var : Array[Object] */;
5804 static val
* varonce201
;
5805 val
* var202
/* : String */;
5806 char* var203
/* : NativeString */;
5807 long var204
/* : Int */;
5808 val
* var205
/* : String */;
5809 val
* var206
/* : String */;
5810 static val
* varonce207
;
5811 val
* var208
/* : String */;
5812 char* var209
/* : NativeString */;
5813 long var210
/* : Int */;
5814 val
* var211
/* : String */;
5815 val
* var212
/* : String */;
5816 short int var213
/* : Bool */;
5819 static val
* varonce216
;
5820 val
* var217
/* : String */;
5821 char* var218
/* : NativeString */;
5822 long var219
/* : Int */;
5823 val
* var220
/* : String */;
5824 val
* var221
/* : MClass */;
5825 val
* var222
/* : String */;
5826 val
* var223
/* : Array[Object] */;
5827 long var224
/* : Int */;
5828 val
* var225
/* : NativeArray[Object] */;
5829 val
* var226
/* : String */;
5830 static val
* varonce227
;
5831 val
* var228
/* : String */;
5832 char* var229
/* : NativeString */;
5833 long var230
/* : Int */;
5834 val
* var231
/* : String */;
5835 val
* var232
/* : MClass */;
5836 val
* var233
/* : String */;
5837 static val
* varonce234
;
5838 val
* var235
/* : String */;
5839 char* var236
/* : NativeString */;
5840 long var237
/* : Int */;
5841 val
* var238
/* : String */;
5842 val
* var239
/* : Array[Object] */;
5843 long var240
/* : Int */;
5844 val
* var241
/* : NativeArray[Object] */;
5845 val
* var242
/* : String */;
5846 static val
* varonce243
;
5847 val
* var244
/* : String */;
5848 char* var245
/* : NativeString */;
5849 long var246
/* : Int */;
5850 val
* var247
/* : String */;
5851 val
* var248
/* : MClass */;
5852 val
* var249
/* : String */;
5853 static val
* varonce250
;
5854 val
* var251
/* : String */;
5855 char* var252
/* : NativeString */;
5856 long var253
/* : Int */;
5857 val
* var254
/* : String */;
5858 val
* var255
/* : Array[Object] */;
5859 long var256
/* : Int */;
5860 val
* var257
/* : NativeArray[Object] */;
5861 val
* var258
/* : String */;
5862 val
* var259
/* : AbstractCompiler */;
5863 val
* var260
/* : ModelBuilder */;
5864 val
* var261
/* : ToolContext */;
5865 val
* var262
/* : OptionBool */;
5866 val
* var263
/* : nullable Object */;
5867 short int var264
/* : Bool */;
5868 val
* var265
/* : AbstractCompiler */;
5869 val
* var266
/* : HashMap[String, Int] */;
5870 val
* var_267
/* var : HashMap[String, Int] */;
5871 val
* var_268
/* var : String */;
5872 val
* var269
/* : nullable Object */;
5873 long var270
/* : Int */;
5874 long var271
/* : Int */;
5875 long var273
/* : Int */;
5876 long var274
/* : Int */;
5877 val
* var275
/* : nullable Object */;
5878 static val
* varonce276
;
5879 val
* var277
/* : String */;
5880 char* var278
/* : NativeString */;
5881 long var279
/* : Int */;
5882 val
* var280
/* : String */;
5883 static val
* varonce281
;
5884 val
* var282
/* : String */;
5885 char* var283
/* : NativeString */;
5886 long var284
/* : Int */;
5887 val
* var285
/* : String */;
5888 val
* var286
/* : Array[Object] */;
5889 long var287
/* : Int */;
5890 val
* var288
/* : NativeArray[Object] */;
5891 val
* var289
/* : String */;
5892 short int var290
/* : Bool */;
5895 val
* var293
/* : nullable Frame */;
5896 val
* var294
/* : Array[RuntimeVariable] */;
5897 val
* var295
/* : nullable Object */;
5898 val
* var_recv
/* var recv: RuntimeVariable */;
5899 val
* var296
/* : MType */;
5900 val
* var297
/* : String */;
5901 static val
* varonce298
;
5902 val
* var299
/* : String */;
5903 char* var300
/* : NativeString */;
5904 long var301
/* : Int */;
5905 val
* var302
/* : String */;
5906 short int var303
/* : Bool */;
5907 static val
* varonce304
;
5908 val
* var305
/* : String */;
5909 char* var306
/* : NativeString */;
5910 long var307
/* : Int */;
5911 val
* var308
/* : String */;
5912 val
* var309
/* : Array[Object] */;
5913 long var310
/* : Int */;
5914 val
* var311
/* : NativeArray[Object] */;
5915 val
* var312
/* : String */;
5916 val
* var_recv_ptr
/* var recv_ptr: nullable Object */;
5917 val
* var313
/* : MType */;
5918 short int var314
/* : Bool */;
5921 const char* var_class_name317
;
5922 val
* var318
/* : MClass */;
5923 val
* var_mclass319
/* var mclass: MClass */;
5924 static val
* varonce320
;
5925 val
* var321
/* : String */;
5926 char* var322
/* : NativeString */;
5927 long var323
/* : Int */;
5928 val
* var324
/* : String */;
5929 val
* var325
/* : String */;
5930 val
* var326
/* : Array[Object] */;
5931 long var327
/* : Int */;
5932 val
* var328
/* : NativeArray[Object] */;
5933 val
* var329
/* : String */;
5934 static val
* varonce330
;
5935 val
* var331
/* : String */;
5936 char* var332
/* : NativeString */;
5937 long var333
/* : Int */;
5938 val
* var334
/* : String */;
5939 val
* var335
/* : String */;
5940 static val
* varonce336
;
5941 val
* var337
/* : String */;
5942 char* var338
/* : NativeString */;
5943 long var339
/* : Int */;
5944 val
* var340
/* : String */;
5945 val
* var341
/* : Array[Object] */;
5946 long var342
/* : Int */;
5947 val
* var343
/* : NativeArray[Object] */;
5948 val
* var344
/* : String */;
5949 static val
* varonce345
;
5950 val
* var346
/* : String */;
5951 char* var347
/* : NativeString */;
5952 long var348
/* : Int */;
5953 val
* var349
/* : String */;
5954 val
* var350
/* : String */;
5955 val
* var_entry
/* var entry: String */;
5956 static val
* varonce351
;
5957 val
* var352
/* : String */;
5958 char* var353
/* : NativeString */;
5959 long var354
/* : Int */;
5960 val
* var355
/* : String */;
5961 static val
* varonce356
;
5962 val
* var357
/* : String */;
5963 char* var358
/* : NativeString */;
5964 long var359
/* : Int */;
5965 val
* var360
/* : String */;
5966 val
* var361
/* : Array[Object] */;
5967 long var362
/* : Int */;
5968 val
* var363
/* : NativeArray[Object] */;
5969 val
* var364
/* : String */;
5970 val
* var365
/* : MProperty */;
5971 val
* var366
/* : String */;
5972 val
* var367
/* : AbstractCompiler */;
5973 short int var368
/* : Bool */;
5976 const char* var_class_name371
;
5977 val
* var372
/* : nullable Layout[MVirtualTypeProp] */;
5978 short int var373
/* : Bool */;
5981 static val
* varonce376
;
5982 val
* var377
/* : String */;
5983 char* var378
/* : NativeString */;
5984 long var379
/* : Int */;
5985 val
* var380
/* : String */;
5986 static val
* varonce381
;
5987 val
* var382
/* : String */;
5988 char* var383
/* : NativeString */;
5989 long var384
/* : Int */;
5990 val
* var385
/* : String */;
5991 static val
* varonce386
;
5992 val
* var387
/* : String */;
5993 char* var388
/* : NativeString */;
5994 long var389
/* : Int */;
5995 val
* var390
/* : String */;
5996 val
* var391
/* : MProperty */;
5997 val
* var392
/* : String */;
5998 static val
* varonce393
;
5999 val
* var394
/* : String */;
6000 char* var395
/* : NativeString */;
6001 long var396
/* : Int */;
6002 val
* var397
/* : String */;
6003 val
* var398
/* : Array[Object] */;
6004 long var399
/* : Int */;
6005 val
* var400
/* : NativeArray[Object] */;
6006 val
* var401
/* : String */;
6007 static val
* varonce402
;
6008 val
* var403
/* : String */;
6009 char* var404
/* : NativeString */;
6010 long var405
/* : Int */;
6011 val
* var406
/* : String */;
6012 static val
* varonce407
;
6013 val
* var408
/* : String */;
6014 char* var409
/* : NativeString */;
6015 long var410
/* : Int */;
6016 val
* var411
/* : String */;
6017 val
* var412
/* : MProperty */;
6018 val
* var413
/* : String */;
6019 static val
* varonce414
;
6020 val
* var415
/* : String */;
6021 char* var416
/* : NativeString */;
6022 long var417
/* : Int */;
6023 val
* var418
/* : String */;
6024 val
* var419
/* : Array[Object] */;
6025 long var420
/* : Int */;
6026 val
* var421
/* : NativeArray[Object] */;
6027 val
* var422
/* : String */;
6028 static val
* varonce423
;
6029 val
* var424
/* : String */;
6030 char* var425
/* : NativeString */;
6031 long var426
/* : Int */;
6032 val
* var427
/* : String */;
6033 static val
* varonce428
;
6034 val
* var429
/* : String */;
6035 char* var430
/* : NativeString */;
6036 long var431
/* : Int */;
6037 val
* var432
/* : String */;
6038 val
* var433
/* : Array[Object] */;
6039 long var434
/* : Int */;
6040 val
* var435
/* : NativeArray[Object] */;
6041 val
* var436
/* : String */;
6042 static val
* varonce437
;
6043 val
* var438
/* : String */;
6044 char* var439
/* : NativeString */;
6045 long var440
/* : Int */;
6046 val
* var441
/* : String */;
6047 static val
* varonce442
;
6048 val
* var443
/* : String */;
6049 char* var444
/* : NativeString */;
6050 long var445
/* : Int */;
6051 val
* var446
/* : String */;
6052 val
* var447
/* : Array[Object] */;
6053 long var448
/* : Int */;
6054 val
* var449
/* : NativeArray[Object] */;
6055 val
* var450
/* : String */;
6056 short int var451
/* : Bool */;
6057 short int var_452
/* var : Bool */;
6058 static val
* varonce453
;
6059 val
* var454
/* : String */;
6060 char* var455
/* : NativeString */;
6061 long var456
/* : Int */;
6062 val
* var457
/* : String */;
6063 short int var458
/* : Bool */;
6064 static val
* varonce459
;
6065 val
* var460
/* : String */;
6066 char* var461
/* : NativeString */;
6067 long var462
/* : Int */;
6068 val
* var463
/* : String */;
6069 val
* var464
/* : String */;
6070 val
* var_is_nullable
/* var is_nullable: String */;
6071 static val
* varonce465
;
6072 val
* var466
/* : String */;
6073 char* var467
/* : NativeString */;
6074 long var468
/* : Int */;
6075 val
* var469
/* : String */;
6076 static val
* varonce470
;
6077 val
* var471
/* : String */;
6078 char* var472
/* : NativeString */;
6079 long var473
/* : Int */;
6080 val
* var474
/* : String */;
6081 val
* var475
/* : Array[Object] */;
6082 long var476
/* : Int */;
6083 val
* var477
/* : NativeArray[Object] */;
6084 val
* var478
/* : String */;
6085 static val
* varonce479
;
6086 val
* var480
/* : String */;
6087 char* var481
/* : NativeString */;
6088 long var482
/* : Int */;
6089 val
* var483
/* : String */;
6090 static val
* varonce484
;
6091 val
* var485
/* : String */;
6092 char* var486
/* : NativeString */;
6093 long var487
/* : Int */;
6094 val
* var488
/* : String */;
6095 val
* var489
/* : Array[Object] */;
6096 long var490
/* : Int */;
6097 val
* var491
/* : NativeArray[Object] */;
6098 val
* var492
/* : String */;
6099 val
* var493
/* : String */;
6100 val
* var494
/* : AbstractCompiler */;
6101 val
* var495
/* : ModelBuilder */;
6102 val
* var496
/* : ToolContext */;
6103 val
* var497
/* : OptionBool */;
6104 val
* var498
/* : nullable Object */;
6105 short int var499
/* : Bool */;
6106 val
* var500
/* : AbstractCompiler */;
6107 val
* var501
/* : HashMap[String, Int] */;
6108 val
* var_502
/* var : HashMap[String, Int] */;
6109 val
* var_503
/* var : String */;
6110 val
* var504
/* : nullable Object */;
6111 long var505
/* : Int */;
6112 long var506
/* : Int */;
6113 long var508
/* : Int */;
6114 long var509
/* : Int */;
6115 val
* var510
/* : nullable Object */;
6116 static val
* varonce511
;
6117 val
* var512
/* : String */;
6118 char* var513
/* : NativeString */;
6119 long var514
/* : Int */;
6120 val
* var515
/* : String */;
6121 static val
* varonce516
;
6122 val
* var517
/* : String */;
6123 char* var518
/* : NativeString */;
6124 long var519
/* : Int */;
6125 val
* var520
/* : String */;
6126 val
* var521
/* : Array[Object] */;
6127 long var522
/* : Int */;
6128 val
* var523
/* : NativeArray[Object] */;
6129 val
* var524
/* : String */;
6130 static val
* varonce525
;
6131 val
* var526
/* : String */;
6132 char* var527
/* : NativeString */;
6133 long var528
/* : Int */;
6134 val
* var529
/* : String */;
6135 val
* var530
/* : String */;
6136 static val
* varonce531
;
6137 val
* var532
/* : String */;
6138 char* var533
/* : NativeString */;
6139 long var534
/* : Int */;
6140 val
* var535
/* : String */;
6141 static val
* varonce536
;
6142 val
* var537
/* : String */;
6143 char* var538
/* : NativeString */;
6144 long var539
/* : Int */;
6145 val
* var540
/* : String */;
6146 val
* var541
/* : Array[Object] */;
6147 long var542
/* : Int */;
6148 val
* var543
/* : NativeArray[Object] */;
6149 val
* var544
/* : String */;
6150 static val
* varonce545
;
6151 val
* var546
/* : String */;
6152 char* var547
/* : NativeString */;
6153 long var548
/* : Int */;
6154 val
* var549
/* : String */;
6155 static val
* varonce550
;
6156 val
* var551
/* : String */;
6157 char* var552
/* : NativeString */;
6158 long var553
/* : Int */;
6159 val
* var554
/* : String */;
6160 val
* var555
/* : Array[Object] */;
6161 long var556
/* : Int */;
6162 val
* var557
/* : NativeArray[Object] */;
6163 val
* var558
/* : String */;
6164 static val
* varonce559
;
6165 val
* var560
/* : String */;
6166 char* var561
/* : NativeString */;
6167 long var562
/* : Int */;
6168 val
* var563
/* : String */;
6169 static val
* varonce564
;
6170 val
* var565
/* : String */;
6171 char* var566
/* : NativeString */;
6172 long var567
/* : Int */;
6173 val
* var568
/* : String */;
6174 val
* var569
/* : Array[Object] */;
6175 long var570
/* : Int */;
6176 val
* var571
/* : NativeArray[Object] */;
6177 val
* var572
/* : String */;
6178 static val
* varonce573
;
6179 val
* var574
/* : String */;
6180 char* var575
/* : NativeString */;
6181 long var576
/* : Int */;
6182 val
* var577
/* : String */;
6183 val
* var578
/* : AbstractCompiler */;
6184 short int var579
/* : Bool */;
6187 const char* var_class_name582
;
6188 val
* var583
/* : nullable Layout[MClass] */;
6189 short int var584
/* : Bool */;
6192 static val
* varonce587
;
6193 val
* var588
/* : String */;
6194 char* var589
/* : NativeString */;
6195 long var590
/* : Int */;
6196 val
* var591
/* : String */;
6197 static val
* varonce592
;
6198 val
* var593
/* : String */;
6199 char* var594
/* : NativeString */;
6200 long var595
/* : Int */;
6201 val
* var596
/* : String */;
6202 static val
* varonce597
;
6203 val
* var598
/* : String */;
6204 char* var599
/* : NativeString */;
6205 long var600
/* : Int */;
6206 val
* var601
/* : String */;
6207 val
* var602
/* : Array[Object] */;
6208 long var603
/* : Int */;
6209 val
* var604
/* : NativeArray[Object] */;
6210 val
* var605
/* : String */;
6211 static val
* varonce606
;
6212 val
* var607
/* : String */;
6213 char* var608
/* : NativeString */;
6214 long var609
/* : Int */;
6215 val
* var610
/* : String */;
6216 static val
* varonce611
;
6217 val
* var612
/* : String */;
6218 char* var613
/* : NativeString */;
6219 long var614
/* : Int */;
6220 val
* var615
/* : String */;
6221 static val
* varonce616
;
6222 val
* var617
/* : String */;
6223 char* var618
/* : NativeString */;
6224 long var619
/* : Int */;
6225 val
* var620
/* : String */;
6226 val
* var621
/* : Array[Object] */;
6227 long var622
/* : Int */;
6228 val
* var623
/* : NativeArray[Object] */;
6229 val
* var624
/* : String */;
6230 static val
* varonce625
;
6231 val
* var626
/* : String */;
6232 char* var627
/* : NativeString */;
6233 long var628
/* : Int */;
6234 val
* var629
/* : String */;
6235 val
* var630
/* : Array[Object] */;
6236 long var631
/* : Int */;
6237 val
* var632
/* : NativeArray[Object] */;
6238 val
* var633
/* : String */;
6239 static val
* varonce634
;
6240 val
* var635
/* : String */;
6241 char* var636
/* : NativeString */;
6242 long var637
/* : Int */;
6243 val
* var638
/* : String */;
6244 static val
* varonce639
;
6245 val
* var640
/* : String */;
6246 char* var641
/* : NativeString */;
6247 long var642
/* : Int */;
6248 val
* var643
/* : String */;
6249 static val
* varonce644
;
6250 val
* var645
/* : String */;
6251 char* var646
/* : NativeString */;
6252 long var647
/* : Int */;
6253 val
* var648
/* : String */;
6254 static val
* varonce649
;
6255 val
* var650
/* : String */;
6256 char* var651
/* : NativeString */;
6257 long var652
/* : Int */;
6258 val
* var653
/* : String */;
6259 static val
* varonce654
;
6260 val
* var655
/* : String */;
6261 char* var656
/* : NativeString */;
6262 long var657
/* : Int */;
6263 val
* var658
/* : String */;
6264 val
* var659
/* : Array[Object] */;
6265 long var660
/* : Int */;
6266 val
* var661
/* : NativeArray[Object] */;
6267 val
* var662
/* : String */;
6268 static val
* varonce663
;
6269 val
* var664
/* : String */;
6270 char* var665
/* : NativeString */;
6271 long var666
/* : Int */;
6272 val
* var667
/* : String */;
6273 static val
* varonce668
;
6274 val
* var669
/* : String */;
6275 char* var670
/* : NativeString */;
6276 long var671
/* : Int */;
6277 val
* var672
/* : String */;
6284 var2
= "/* type test for ";
6286 var4
= string__NativeString__to_s_with_length(var2
, var3
);
6290 var5
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_string__Object__inspect
]))(var_value
) /* inspect on <var_value:RuntimeVariable>*/;
6296 var10
= string__NativeString__to_s_with_length(var8
, var9
);
6305 var15
= string__NativeString__to_s_with_length(var13
, var14
);
6309 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
6310 { /* var16 = array_instance Array[Object] */
6312 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
6313 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var1
;
6314 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var5
;
6315 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var7
;
6316 ((struct instance_array__NativeArray
*)var18
)->values
[3] = (val
*) var_mtype
;
6317 ((struct instance_array__NativeArray
*)var18
)->values
[4] = (val
*) var12
;
6318 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
6320 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
6321 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var19
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6322 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type
]))(self
) /* bool_type on <self:SeparateErasureCompilerVisitor>*/;
6323 var21
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var20
) /* new_var on <self:SeparateErasureCompilerVisitor>*/;
6330 var26
= string__NativeString__to_s_with_length(var24
, var25
);
6334 var27
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var23
) /* get_name on <self:SeparateErasureCompilerVisitor>*/;
6341 var32
= string__NativeString__to_s_with_length(var30
, var31
);
6350 var37
= string__NativeString__to_s_with_length(var35
, var36
);
6354 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
6355 { /* var38 = array_instance Array[Object] */
6357 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
6358 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var29
;
6359 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var_cltype
;
6360 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var34
;
6361 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
6363 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
6364 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var41
) /* add_decl on <self:SeparateErasureCompilerVisitor>*/;
6370 var46
= string__NativeString__to_s_with_length(var44
, var45
);
6374 var47
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var43
) /* get_name on <self:SeparateErasureCompilerVisitor>*/;
6381 var52
= string__NativeString__to_s_with_length(var50
, var51
);
6390 var57
= string__NativeString__to_s_with_length(var55
, var56
);
6394 var58
= NEW_array__Array(&type_array__Arraykernel__Object
);
6395 { /* var58 = array_instance Array[Object] */
6397 var60
= NEW_array__NativeArray(var59
, &type_array__NativeArraykernel__Object
);
6398 ((struct instance_array__NativeArray
*)var60
)->values
[0] = (val
*) var49
;
6399 ((struct instance_array__NativeArray
*)var60
)->values
[1] = (val
*) var_idtype
;
6400 ((struct instance_array__NativeArray
*)var60
)->values
[2] = (val
*) var54
;
6401 ((void (*)(val
*, val
*, long))(var58
->class->vft
[COLOR_array__Array__with_native
]))(var58
, var60
, var59
) /* with_native on <var58:Array[Object]>*/;
6403 var61
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_string__Object__to_s
]))(var58
) /* to_s on <var58:Array[Object]>*/;
6404 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var61
) /* add_decl on <self:SeparateErasureCompilerVisitor>*/;
6405 var62
= ((short int (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompilerVisitor__maybe_null
]))(self
, var_value
) /* maybe_null on <self:SeparateErasureCompilerVisitor>*/;
6406 var_maybe_null
= var62
;
6412 var67
= string__NativeString__to_s_with_length(var65
, var66
);
6416 var_accept_null
= var64
;
6417 /* <var_mtype:MType> isa MNullableType */
6418 cltype
= type_model__MNullableType
.color
;
6419 idtype
= type_model__MNullableType
.id
;
6420 if(cltype
>= var_mtype
->type
->table_size
) {
6423 var68
= var_mtype
->type
->type_table
[cltype
] == idtype
;
6426 var69
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
6433 var74
= string__NativeString__to_s_with_length(var72
, var73
);
6437 var_accept_null
= var71
;
6440 /* <var_mtype:MType> isa MParameterType */
6441 cltype76
= type_model__MParameterType
.color
;
6442 idtype77
= type_model__MParameterType
.id
;
6443 if(cltype76
>= var_mtype
->type
->table_size
) {
6446 var75
= var_mtype
->type
->type_table
[cltype76
] == idtype77
;
6449 var78
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6450 if (var78
== NULL
) {
6451 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
6452 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 488);
6455 var79
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var78
) /* mpropdef on <var78:nullable Frame>*/;
6457 var80
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var79
) /* mclassdef on <var79:MPropDef>*/;
6458 var81
= ((val
* (*)(val
*))(var80
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var80
) /* bound_mtype on <var80:MClassDef>*/;
6459 var82
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6460 if (var82
== NULL
) {
6461 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
6462 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 488);
6465 var83
= ((val
* (*)(val
*))(var82
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var82
) /* mpropdef on <var82:nullable Frame>*/;
6467 var84
= ((val
* (*)(val
*))(var83
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var83
) /* mclassdef on <var83:MPropDef>*/;
6468 var85
= ((val
* (*)(val
*))(var84
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var84
) /* bound_mtype on <var84:MClassDef>*/;
6469 var86
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6470 if (var86
== NULL
) {
6471 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
6472 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 488);
6475 var87
= ((val
* (*)(val
*))(var86
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var86
) /* mpropdef on <var86:nullable Frame>*/;
6477 var88
= ((val
* (*)(val
*))(var87
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var87
) /* mclassdef on <var87:MPropDef>*/;
6478 var89
= ((val
* (*)(val
*))(var88
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var88
) /* mmodule on <var88:MClassDef>*/;
6480 var91
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_mtype
->class->vft
[COLOR_model__MType__resolve_for
]))(var_mtype
, var81
, var85
, var89
, var90
) /* resolve_for on <var_mtype:MType(MParameterType)>*/;
6482 /* <var_mtype:MType> isa MNullableType */
6483 cltype93
= type_model__MNullableType
.color
;
6484 idtype94
= type_model__MNullableType
.id
;
6485 if(cltype93
>= var_mtype
->type
->table_size
) {
6488 var92
= var_mtype
->type
->type_table
[cltype93
] == idtype94
;
6491 var95
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
6498 var100
= string__NativeString__to_s_with_length(var98
, var99
);
6502 var_accept_null
= var97
;
6507 var101
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value
) /* mcasttype on <var_value:RuntimeVariable>*/;
6508 var102
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6509 if (var102
== NULL
) {
6510 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
6511 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 495);
6514 var103
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var102
) /* mpropdef on <var102:nullable Frame>*/;
6516 var104
= ((val
* (*)(val
*))(var103
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var103
) /* mclassdef on <var103:MPropDef>*/;
6517 var105
= ((val
* (*)(val
*))(var104
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var104
) /* mmodule on <var104:MClassDef>*/;
6518 var106
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6519 if (var106
== NULL
) {
6520 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
6521 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 495);
6524 var107
= ((val
* (*)(val
*))(var106
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var106
) /* mpropdef on <var106:nullable Frame>*/;
6526 var108
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var107
) /* mclassdef on <var107:MPropDef>*/;
6527 var109
= ((val
* (*)(val
*))(var108
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var108
) /* bound_mtype on <var108:MClassDef>*/;
6528 var110
= ((short int (*)(val
*, val
*, val
*, val
*))(var101
->class->vft
[COLOR_model__MType__is_subtype
]))(var101
, var105
, var109
, var_mtype
) /* is_subtype on <var101:MType>*/;
6531 var112
= varonce111
;
6533 var113
= " = 1; /* easy ";
6535 var115
= string__NativeString__to_s_with_length(var113
, var114
);
6537 varonce111
= var112
;
6539 var116
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_string__Object__inspect
]))(var_value
) /* inspect on <var_value:RuntimeVariable>*/;
6541 var118
= varonce117
;
6545 var121
= string__NativeString__to_s_with_length(var119
, var120
);
6547 varonce117
= var118
;
6550 var123
= varonce122
;
6554 var126
= string__NativeString__to_s_with_length(var124
, var125
);
6556 varonce122
= var123
;
6558 var127
= NEW_array__Array(&type_array__Arraykernel__Object
);
6559 { /* var127 = array_instance Array[Object] */
6561 var129
= NEW_array__NativeArray(var128
, &type_array__NativeArraykernel__Object
);
6562 ((struct instance_array__NativeArray
*)var129
)->values
[0] = (val
*) var_res
;
6563 ((struct instance_array__NativeArray
*)var129
)->values
[1] = (val
*) var112
;
6564 ((struct instance_array__NativeArray
*)var129
)->values
[2] = (val
*) var116
;
6565 ((struct instance_array__NativeArray
*)var129
)->values
[3] = (val
*) var118
;
6566 ((struct instance_array__NativeArray
*)var129
)->values
[4] = (val
*) var_mtype
;
6567 ((struct instance_array__NativeArray
*)var129
)->values
[5] = (val
*) var123
;
6568 ((void (*)(val
*, val
*, long))(var127
->class->vft
[COLOR_array__Array__with_native
]))(var127
, var129
, var128
) /* with_native on <var127:Array[Object]>*/;
6570 var130
= ((val
* (*)(val
*))(var127
->class->vft
[COLOR_string__Object__to_s
]))(var127
) /* to_s on <var127:Array[Object]>*/;
6571 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var130
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6572 var131
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
6573 var132
= ((val
* (*)(val
*))(var131
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var131
) /* modelbuilder on <var131:AbstractCompiler(SeparateCompiler)>*/;
6574 var133
= ((val
* (*)(val
*))(var132
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var132
) /* toolcontext on <var132:ModelBuilder>*/;
6575 var134
= ((val
* (*)(val
*))(var133
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_typing_test_metrics
]))(var133
) /* opt_typing_test_metrics on <var133:ToolContext>*/;
6576 var135
= ((val
* (*)(val
*))(var134
->class->vft
[COLOR_opts__Option__value
]))(var134
) /* value on <var134:OptionBool>*/;
6577 var136
= ((struct instance_kernel__Bool
*)var135
)->value
; /* autounbox from nullable Object to Bool */;
6579 var137
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
6580 var138
= ((val
* (*)(val
*))(var137
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__count_type_test_skipped
]))(var137
) /* count_type_test_skipped on <var137:AbstractCompiler(SeparateCompiler)>*/;
6583 var140
= ((val
* (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_
, var_139
) /* [] on <var_:HashMap[String, Int]>*/;
6585 { /* Inline kernel#Int#+ (var140,var141) */
6586 var144
= ((struct instance_kernel__Int
*)var140
)->value
; /* autounbox from nullable Object to Int */;
6587 var145
= var144
+ var141
;
6590 RET_LABEL143
:(void)0;
6592 var146
= BOX_kernel__Int(var142
); /* autobox from Int to nullable Object */
6593 ((void (*)(val
*, val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_
, var_139
, var146
) /* []= on <var_:HashMap[String, Int]>*/;
6595 var148
= varonce147
;
6597 var149
= "count_type_test_skipped_";
6599 var151
= string__NativeString__to_s_with_length(var149
, var150
);
6601 varonce147
= var148
;
6604 var153
= varonce152
;
6608 var156
= string__NativeString__to_s_with_length(var154
, var155
);
6610 varonce152
= var153
;
6612 var157
= NEW_array__Array(&type_array__Arraykernel__Object
);
6613 { /* var157 = array_instance Array[Object] */
6615 var159
= NEW_array__NativeArray(var158
, &type_array__NativeArraykernel__Object
);
6616 ((struct instance_array__NativeArray
*)var159
)->values
[0] = (val
*) var148
;
6617 ((struct instance_array__NativeArray
*)var159
)->values
[1] = (val
*) var_tag
;
6618 ((struct instance_array__NativeArray
*)var159
)->values
[2] = (val
*) var153
;
6619 ((void (*)(val
*, val
*, long))(var157
->class->vft
[COLOR_array__Array__with_native
]))(var157
, var159
, var158
) /* with_native on <var157:Array[Object]>*/;
6621 var160
= ((val
* (*)(val
*))(var157
->class->vft
[COLOR_string__Object__to_s
]))(var157
) /* to_s on <var157:Array[Object]>*/;
6622 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var160
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6629 var161
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
6630 var162
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var161
) /* ctype on <var161:MType>*/;
6632 var164
= varonce163
;
6636 var167
= string__NativeString__to_s_with_length(var165
, var166
);
6638 varonce163
= var164
;
6640 var168
= ((short int (*)(val
*, val
*))(var162
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var162
, var164
) /* == on <var162:String>*/;
6642 var169
= NEW_array__Array(&type_array__Arraykernel__Object
);
6644 ((void (*)(val
*, long))(var169
->class->vft
[COLOR_array__Array__with_capacity
]))(var169
, var170
) /* with_capacity on <var169:Array[Object]>*/;
6647 var173
= varonce172
;
6651 var176
= string__NativeString__to_s_with_length(var174
, var175
);
6653 varonce172
= var173
;
6655 ((void (*)(val
*, val
*))(var_171
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_171
, var173
) /* add on <var_171:Array[Object]>*/;
6656 ((void (*)(val
*, val
*))(var_171
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_171
, var_value
) /* add on <var_171:Array[Object]>*/;
6658 var178
= varonce177
;
6660 var179
= "->class->";
6662 var181
= string__NativeString__to_s_with_length(var179
, var180
);
6664 varonce177
= var178
;
6666 ((void (*)(val
*, val
*))(var_171
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_171
, var178
) /* add on <var_171:Array[Object]>*/;
6667 var182
= ((val
* (*)(val
*))(var_171
->class->vft
[COLOR_string__Object__to_s
]))(var_171
) /* to_s on <var_171:Array[Object]>*/;
6668 var_class_ptr
= var182
;
6670 var183
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
6671 /* <var183:MType> isa MClassType */
6672 cltype185
= type_model__MClassType
.color
;
6673 idtype186
= type_model__MClassType
.id
;
6674 if(cltype185
>= var183
->type
->table_size
) {
6677 var184
= var183
->type
->type_table
[cltype185
] == idtype186
;
6680 var_class_name
= var183
== NULL ?
"null" : var183
->type
->name
;
6681 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6682 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 509);
6685 var187
= ((val
* (*)(val
*))(var183
->class->vft
[COLOR_model__MClassType__mclass
]))(var183
) /* mclass on <var183:MType(MClassType)>*/;
6686 var_mclass
= var187
;
6688 var189
= varonce188
;
6692 var192
= string__NativeString__to_s_with_length(var190
, var191
);
6694 varonce188
= var189
;
6696 var193
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
6697 var194
= NEW_array__Array(&type_array__Arraykernel__Object
);
6698 { /* var194 = array_instance Array[Object] */
6700 var196
= NEW_array__NativeArray(var195
, &type_array__NativeArraykernel__Object
);
6701 ((struct instance_array__NativeArray
*)var196
)->values
[0] = (val
*) var189
;
6702 ((struct instance_array__NativeArray
*)var196
)->values
[1] = (val
*) var193
;
6703 ((void (*)(val
*, val
*, long))(var194
->class->vft
[COLOR_array__Array__with_native
]))(var194
, var196
, var195
) /* with_native on <var194:Array[Object]>*/;
6705 var197
= ((val
* (*)(val
*))(var194
->class->vft
[COLOR_string__Object__to_s
]))(var194
) /* to_s on <var194:Array[Object]>*/;
6706 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var197
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
6707 var198
= NEW_array__Array(&type_array__Arraykernel__Object
);
6709 ((void (*)(val
*, long))(var198
->class->vft
[COLOR_array__Array__with_capacity
]))(var198
, var199
) /* with_capacity on <var198:Array[Object]>*/;
6712 var202
= varonce201
;
6716 var205
= string__NativeString__to_s_with_length(var203
, var204
);
6718 varonce201
= var202
;
6720 ((void (*)(val
*, val
*))(var_200
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_200
, var202
) /* add on <var_200:Array[Object]>*/;
6721 var206
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
6722 ((void (*)(val
*, val
*))(var_200
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_200
, var206
) /* add on <var_200:Array[Object]>*/;
6724 var208
= varonce207
;
6728 var211
= string__NativeString__to_s_with_length(var209
, var210
);
6730 varonce207
= var208
;
6732 ((void (*)(val
*, val
*))(var_200
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_200
, var208
) /* add on <var_200:Array[Object]>*/;
6733 var212
= ((val
* (*)(val
*))(var_200
->class->vft
[COLOR_string__Object__to_s
]))(var_200
) /* to_s on <var_200:Array[Object]>*/;
6734 var_class_ptr
= var212
;
6736 /* <var_mtype:MType> isa MClassType */
6737 cltype214
= type_model__MClassType
.color
;
6738 idtype215
= type_model__MClassType
.id
;
6739 if(cltype214
>= var_mtype
->type
->table_size
) {
6742 var213
= var_mtype
->type
->type_table
[cltype214
] == idtype215
;
6746 var217
= varonce216
;
6750 var220
= string__NativeString__to_s_with_length(var218
, var219
);
6752 varonce216
= var217
;
6754 var221
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MType(MClassType)>*/;
6755 var222
= ((val
* (*)(val
*))(var221
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var221
) /* c_name on <var221:MClass>*/;
6756 var223
= NEW_array__Array(&type_array__Arraykernel__Object
);
6757 { /* var223 = array_instance Array[Object] */
6759 var225
= NEW_array__NativeArray(var224
, &type_array__NativeArraykernel__Object
);
6760 ((struct instance_array__NativeArray
*)var225
)->values
[0] = (val
*) var217
;
6761 ((struct instance_array__NativeArray
*)var225
)->values
[1] = (val
*) var222
;
6762 ((void (*)(val
*, val
*, long))(var223
->class->vft
[COLOR_array__Array__with_native
]))(var223
, var225
, var224
) /* with_native on <var223:Array[Object]>*/;
6764 var226
= ((val
* (*)(val
*))(var223
->class->vft
[COLOR_string__Object__to_s
]))(var223
) /* to_s on <var223:Array[Object]>*/;
6765 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var226
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
6767 var228
= varonce227
;
6769 var229
= " = class_";
6771 var231
= string__NativeString__to_s_with_length(var229
, var230
);
6773 varonce227
= var228
;
6775 var232
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MType(MClassType)>*/;
6776 var233
= ((val
* (*)(val
*))(var232
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var232
) /* c_name on <var232:MClass>*/;
6778 var235
= varonce234
;
6782 var238
= string__NativeString__to_s_with_length(var236
, var237
);
6784 varonce234
= var235
;
6786 var239
= NEW_array__Array(&type_array__Arraykernel__Object
);
6787 { /* var239 = array_instance Array[Object] */
6789 var241
= NEW_array__NativeArray(var240
, &type_array__NativeArraykernel__Object
);
6790 ((struct instance_array__NativeArray
*)var241
)->values
[0] = (val
*) var_cltype
;
6791 ((struct instance_array__NativeArray
*)var241
)->values
[1] = (val
*) var228
;
6792 ((struct instance_array__NativeArray
*)var241
)->values
[2] = (val
*) var233
;
6793 ((struct instance_array__NativeArray
*)var241
)->values
[3] = (val
*) var235
;
6794 ((void (*)(val
*, val
*, long))(var239
->class->vft
[COLOR_array__Array__with_native
]))(var239
, var241
, var240
) /* with_native on <var239:Array[Object]>*/;
6796 var242
= ((val
* (*)(val
*))(var239
->class->vft
[COLOR_string__Object__to_s
]))(var239
) /* to_s on <var239:Array[Object]>*/;
6797 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var242
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6799 var244
= varonce243
;
6801 var245
= " = class_";
6803 var247
= string__NativeString__to_s_with_length(var245
, var246
);
6805 varonce243
= var244
;
6807 var248
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MType(MClassType)>*/;
6808 var249
= ((val
* (*)(val
*))(var248
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var248
) /* c_name on <var248:MClass>*/;
6810 var251
= varonce250
;
6814 var254
= string__NativeString__to_s_with_length(var252
, var253
);
6816 varonce250
= var251
;
6818 var255
= NEW_array__Array(&type_array__Arraykernel__Object
);
6819 { /* var255 = array_instance Array[Object] */
6821 var257
= NEW_array__NativeArray(var256
, &type_array__NativeArraykernel__Object
);
6822 ((struct instance_array__NativeArray
*)var257
)->values
[0] = (val
*) var_idtype
;
6823 ((struct instance_array__NativeArray
*)var257
)->values
[1] = (val
*) var244
;
6824 ((struct instance_array__NativeArray
*)var257
)->values
[2] = (val
*) var249
;
6825 ((struct instance_array__NativeArray
*)var257
)->values
[3] = (val
*) var251
;
6826 ((void (*)(val
*, val
*, long))(var255
->class->vft
[COLOR_array__Array__with_native
]))(var255
, var257
, var256
) /* with_native on <var255:Array[Object]>*/;
6828 var258
= ((val
* (*)(val
*))(var255
->class->vft
[COLOR_string__Object__to_s
]))(var255
) /* to_s on <var255:Array[Object]>*/;
6829 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var258
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6830 var259
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
6831 var260
= ((val
* (*)(val
*))(var259
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var259
) /* modelbuilder on <var259:AbstractCompiler(SeparateCompiler)>*/;
6832 var261
= ((val
* (*)(val
*))(var260
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var260
) /* toolcontext on <var260:ModelBuilder>*/;
6833 var262
= ((val
* (*)(val
*))(var261
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_typing_test_metrics
]))(var261
) /* opt_typing_test_metrics on <var261:ToolContext>*/;
6834 var263
= ((val
* (*)(val
*))(var262
->class->vft
[COLOR_opts__Option__value
]))(var262
) /* value on <var262:OptionBool>*/;
6835 var264
= ((struct instance_kernel__Bool
*)var263
)->value
; /* autounbox from nullable Object to Bool */;
6837 var265
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
6838 var266
= ((val
* (*)(val
*))(var265
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__count_type_test_resolved
]))(var265
) /* count_type_test_resolved on <var265:AbstractCompiler(SeparateCompiler)>*/;
6841 var269
= ((val
* (*)(val
*, val
*))(var_267
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_267
, var_268
) /* [] on <var_267:HashMap[String, Int]>*/;
6843 { /* Inline kernel#Int#+ (var269,var270) */
6844 var273
= ((struct instance_kernel__Int
*)var269
)->value
; /* autounbox from nullable Object to Int */;
6845 var274
= var273
+ var270
;
6848 RET_LABEL272
:(void)0;
6850 var275
= BOX_kernel__Int(var271
); /* autobox from Int to nullable Object */
6851 ((void (*)(val
*, val
*, val
*))(var_267
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_267
, var_268
, var275
) /* []= on <var_267:HashMap[String, Int]>*/;
6853 var277
= varonce276
;
6855 var278
= "count_type_test_resolved_";
6857 var280
= string__NativeString__to_s_with_length(var278
, var279
);
6859 varonce276
= var277
;
6862 var282
= varonce281
;
6866 var285
= string__NativeString__to_s_with_length(var283
, var284
);
6868 varonce281
= var282
;
6870 var286
= NEW_array__Array(&type_array__Arraykernel__Object
);
6871 { /* var286 = array_instance Array[Object] */
6873 var288
= NEW_array__NativeArray(var287
, &type_array__NativeArraykernel__Object
);
6874 ((struct instance_array__NativeArray
*)var288
)->values
[0] = (val
*) var277
;
6875 ((struct instance_array__NativeArray
*)var288
)->values
[1] = (val
*) var_tag
;
6876 ((struct instance_array__NativeArray
*)var288
)->values
[2] = (val
*) var282
;
6877 ((void (*)(val
*, val
*, long))(var286
->class->vft
[COLOR_array__Array__with_native
]))(var286
, var288
, var287
) /* with_native on <var286:Array[Object]>*/;
6879 var289
= ((val
* (*)(val
*))(var286
->class->vft
[COLOR_string__Object__to_s
]))(var286
) /* to_s on <var286:Array[Object]>*/;
6880 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var289
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6884 /* <var_mtype:MType> isa MVirtualType */
6885 cltype291
= type_model__MVirtualType
.color
;
6886 idtype292
= type_model__MVirtualType
.id
;
6887 if(cltype291
>= var_mtype
->type
->table_size
) {
6890 var290
= var_mtype
->type
->type_table
[cltype291
] == idtype292
;
6893 var293
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6894 if (var293
== NULL
) {
6895 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
6896 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 523);
6899 var294
= ((val
* (*)(val
*))(var293
->class->vft
[COLOR_abstract_compiler__Frame__arguments
]))(var293
) /* arguments on <var293:nullable Frame>*/;
6901 var295
= ((val
* (*)(val
*))(var294
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var294
) /* first on <var294:Array[RuntimeVariable]>*/;
6903 var296
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_recv
) /* mtype on <var_recv:RuntimeVariable>*/;
6904 var297
= ((val
* (*)(val
*))(var296
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var296
) /* ctype on <var296:MType>*/;
6906 var299
= varonce298
;
6910 var302
= string__NativeString__to_s_with_length(var300
, var301
);
6912 varonce298
= var299
;
6914 var303
= ((short int (*)(val
*, val
*))(var297
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var297
, var299
) /* == on <var297:String>*/;
6917 var305
= varonce304
;
6919 var306
= "->class->";
6921 var308
= string__NativeString__to_s_with_length(var306
, var307
);
6923 varonce304
= var305
;
6925 var309
= NEW_array__Array(&type_array__Arraykernel__Object
);
6926 { /* var309 = array_instance Array[Object] */
6928 var311
= NEW_array__NativeArray(var310
, &type_array__NativeArraykernel__Object
);
6929 ((struct instance_array__NativeArray
*)var311
)->values
[0] = (val
*) var_recv
;
6930 ((struct instance_array__NativeArray
*)var311
)->values
[1] = (val
*) var305
;
6931 ((void (*)(val
*, val
*, long))(var309
->class->vft
[COLOR_array__Array__with_native
]))(var309
, var311
, var310
) /* with_native on <var309:Array[Object]>*/;
6933 var312
= ((val
* (*)(val
*))(var309
->class->vft
[COLOR_string__Object__to_s
]))(var309
) /* to_s on <var309:Array[Object]>*/;
6934 var_recv_ptr
= var312
;
6936 var313
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_recv
) /* mtype on <var_recv:RuntimeVariable>*/;
6937 /* <var313:MType> isa MClassType */
6938 cltype315
= type_model__MClassType
.color
;
6939 idtype316
= type_model__MClassType
.id
;
6940 if(cltype315
>= var313
->type
->table_size
) {
6943 var314
= var313
->type
->type_table
[cltype315
] == idtype316
;
6946 var_class_name317
= var313
== NULL ?
"null" : var313
->type
->name
;
6947 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name317
);
6948 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 528);
6951 var318
= ((val
* (*)(val
*))(var313
->class->vft
[COLOR_model__MClassType__mclass
]))(var313
) /* mclass on <var313:MType(MClassType)>*/;
6952 var_mclass319
= var318
;
6954 var321
= varonce320
;
6958 var324
= string__NativeString__to_s_with_length(var322
, var323
);
6960 varonce320
= var321
;
6962 var325
= ((val
* (*)(val
*))(var_mclass319
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass319
) /* c_name on <var_mclass319:MClass>*/;
6963 var326
= NEW_array__Array(&type_array__Arraykernel__Object
);
6964 { /* var326 = array_instance Array[Object] */
6966 var328
= NEW_array__NativeArray(var327
, &type_array__NativeArraykernel__Object
);
6967 ((struct instance_array__NativeArray
*)var328
)->values
[0] = (val
*) var321
;
6968 ((struct instance_array__NativeArray
*)var328
)->values
[1] = (val
*) var325
;
6969 ((void (*)(val
*, val
*, long))(var326
->class->vft
[COLOR_array__Array__with_native
]))(var326
, var328
, var327
) /* with_native on <var326:Array[Object]>*/;
6971 var329
= ((val
* (*)(val
*))(var326
->class->vft
[COLOR_string__Object__to_s
]))(var326
) /* to_s on <var326:Array[Object]>*/;
6972 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var329
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
6974 var331
= varonce330
;
6978 var334
= string__NativeString__to_s_with_length(var332
, var333
);
6980 varonce330
= var331
;
6982 var335
= ((val
* (*)(val
*))(var_mclass319
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass319
) /* c_name on <var_mclass319:MClass>*/;
6984 var337
= varonce336
;
6988 var340
= string__NativeString__to_s_with_length(var338
, var339
);
6990 varonce336
= var337
;
6992 var341
= NEW_array__Array(&type_array__Arraykernel__Object
);
6993 { /* var341 = array_instance Array[Object] */
6995 var343
= NEW_array__NativeArray(var342
, &type_array__NativeArraykernel__Object
);
6996 ((struct instance_array__NativeArray
*)var343
)->values
[0] = (val
*) var331
;
6997 ((struct instance_array__NativeArray
*)var343
)->values
[1] = (val
*) var335
;
6998 ((struct instance_array__NativeArray
*)var343
)->values
[2] = (val
*) var337
;
6999 ((void (*)(val
*, val
*, long))(var341
->class->vft
[COLOR_array__Array__with_native
]))(var341
, var343
, var342
) /* with_native on <var341:Array[Object]>*/;
7001 var344
= ((val
* (*)(val
*))(var341
->class->vft
[COLOR_string__Object__to_s
]))(var341
) /* to_s on <var341:Array[Object]>*/;
7002 var_recv_ptr
= var344
;
7005 var346
= varonce345
;
7009 var349
= string__NativeString__to_s_with_length(var347
, var348
);
7011 varonce345
= var346
;
7013 var350
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var346
) /* get_name on <self:SeparateErasureCompilerVisitor>*/;
7016 var352
= varonce351
;
7018 var353
= "struct vts_entry ";
7020 var355
= string__NativeString__to_s_with_length(var353
, var354
);
7022 varonce351
= var352
;
7025 var357
= varonce356
;
7029 var360
= string__NativeString__to_s_with_length(var358
, var359
);
7031 varonce356
= var357
;
7033 var361
= NEW_array__Array(&type_array__Arraykernel__Object
);
7034 { /* var361 = array_instance Array[Object] */
7036 var363
= NEW_array__NativeArray(var362
, &type_array__NativeArraykernel__Object
);
7037 ((struct instance_array__NativeArray
*)var363
)->values
[0] = (val
*) var352
;
7038 ((struct instance_array__NativeArray
*)var363
)->values
[1] = (val
*) var_entry
;
7039 ((struct instance_array__NativeArray
*)var363
)->values
[2] = (val
*) var357
;
7040 ((void (*)(val
*, val
*, long))(var361
->class->vft
[COLOR_array__Array__with_native
]))(var361
, var363
, var362
) /* with_native on <var361:Array[Object]>*/;
7042 var364
= ((val
* (*)(val
*))(var361
->class->vft
[COLOR_string__Object__to_s
]))(var361
) /* to_s on <var361:Array[Object]>*/;
7043 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var364
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7044 var365
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(var_mtype
) /* mproperty on <var_mtype:MType(MVirtualType)>*/;
7045 var366
= ((val
* (*)(val
*))(var365
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var365
) /* const_color on <var365:MProperty>*/;
7046 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var366
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
7047 var367
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
7048 /* <var367:AbstractCompiler(SeparateCompiler)> isa SeparateErasureCompiler */
7049 cltype369
= type_separate_erasure_compiler__SeparateErasureCompiler
.color
;
7050 idtype370
= type_separate_erasure_compiler__SeparateErasureCompiler
.id
;
7051 if(cltype369
>= var367
->type
->table_size
) {
7054 var368
= var367
->type
->type_table
[cltype369
] == idtype370
;
7057 var_class_name371
= var367
== NULL ?
"null" : var367
->type
->name
;
7058 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "SeparateErasureCompiler", var_class_name371
);
7059 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 535);
7062 var372
= ((val
* (*)(val
*))(var367
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_layout
]))(var367
) /* vt_layout on <var367:SeparateCompiler(SeparateErasureCompiler)>*/;
7063 /* <var372:nullable Layout[MVirtualTypeProp]> isa PHLayout[MClass, MVirtualTypeProp] */
7064 cltype374
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.color
;
7065 idtype375
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.id
;
7066 if(var372
== NULL
) {
7069 if(cltype374
>= var372
->type
->table_size
) {
7072 var373
= var372
->type
->type_table
[cltype374
] == idtype375
;
7077 var377
= varonce376
;
7081 var380
= string__NativeString__to_s_with_length(var378
, var379
);
7083 varonce376
= var377
;
7086 var382
= varonce381
;
7088 var383
= "vts_table->vts[HASH(";
7090 var385
= string__NativeString__to_s_with_length(var383
, var384
);
7092 varonce381
= var382
;
7095 var387
= varonce386
;
7097 var388
= "vts_table->mask, ";
7099 var390
= string__NativeString__to_s_with_length(var388
, var389
);
7101 varonce386
= var387
;
7103 var391
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(var_mtype
) /* mproperty on <var_mtype:MType(MVirtualType)>*/;
7104 var392
= ((val
* (*)(val
*))(var391
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var391
) /* const_color on <var391:MProperty>*/;
7106 var394
= varonce393
;
7110 var397
= string__NativeString__to_s_with_length(var395
, var396
);
7112 varonce393
= var394
;
7114 var398
= NEW_array__Array(&type_array__Arraykernel__Object
);
7115 { /* var398 = array_instance Array[Object] */
7117 var400
= NEW_array__NativeArray(var399
, &type_array__NativeArraykernel__Object
);
7118 ((struct instance_array__NativeArray
*)var400
)->values
[0] = (val
*) var_entry
;
7119 ((struct instance_array__NativeArray
*)var400
)->values
[1] = (val
*) var377
;
7120 ((struct instance_array__NativeArray
*)var400
)->values
[2] = (val
*) var_recv_ptr
;
7121 ((struct instance_array__NativeArray
*)var400
)->values
[3] = (val
*) var382
;
7122 ((struct instance_array__NativeArray
*)var400
)->values
[4] = (val
*) var_recv_ptr
;
7123 ((struct instance_array__NativeArray
*)var400
)->values
[5] = (val
*) var387
;
7124 ((struct instance_array__NativeArray
*)var400
)->values
[6] = (val
*) var392
;
7125 ((struct instance_array__NativeArray
*)var400
)->values
[7] = (val
*) var394
;
7126 ((void (*)(val
*, val
*, long))(var398
->class->vft
[COLOR_array__Array__with_native
]))(var398
, var400
, var399
) /* with_native on <var398:Array[Object]>*/;
7128 var401
= ((val
* (*)(val
*))(var398
->class->vft
[COLOR_string__Object__to_s
]))(var398
) /* to_s on <var398:Array[Object]>*/;
7129 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var401
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7132 var403
= varonce402
;
7136 var406
= string__NativeString__to_s_with_length(var404
, var405
);
7138 varonce402
= var403
;
7141 var408
= varonce407
;
7143 var409
= "vts_table->vts[";
7145 var411
= string__NativeString__to_s_with_length(var409
, var410
);
7147 varonce407
= var408
;
7149 var412
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(var_mtype
) /* mproperty on <var_mtype:MType(MVirtualType)>*/;
7150 var413
= ((val
* (*)(val
*))(var412
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var412
) /* const_color on <var412:MProperty>*/;
7152 var415
= varonce414
;
7156 var418
= string__NativeString__to_s_with_length(var416
, var417
);
7158 varonce414
= var415
;
7160 var419
= NEW_array__Array(&type_array__Arraykernel__Object
);
7161 { /* var419 = array_instance Array[Object] */
7163 var421
= NEW_array__NativeArray(var420
, &type_array__NativeArraykernel__Object
);
7164 ((struct instance_array__NativeArray
*)var421
)->values
[0] = (val
*) var_entry
;
7165 ((struct instance_array__NativeArray
*)var421
)->values
[1] = (val
*) var403
;
7166 ((struct instance_array__NativeArray
*)var421
)->values
[2] = (val
*) var_recv_ptr
;
7167 ((struct instance_array__NativeArray
*)var421
)->values
[3] = (val
*) var408
;
7168 ((struct instance_array__NativeArray
*)var421
)->values
[4] = (val
*) var413
;
7169 ((struct instance_array__NativeArray
*)var421
)->values
[5] = (val
*) var415
;
7170 ((void (*)(val
*, val
*, long))(var419
->class->vft
[COLOR_array__Array__with_native
]))(var419
, var421
, var420
) /* with_native on <var419:Array[Object]>*/;
7172 var422
= ((val
* (*)(val
*))(var419
->class->vft
[COLOR_string__Object__to_s
]))(var419
) /* to_s on <var419:Array[Object]>*/;
7173 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var422
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7176 var424
= varonce423
;
7180 var427
= string__NativeString__to_s_with_length(var425
, var426
);
7182 varonce423
= var424
;
7185 var429
= varonce428
;
7187 var430
= ".class->color;";
7189 var432
= string__NativeString__to_s_with_length(var430
, var431
);
7191 varonce428
= var429
;
7193 var433
= NEW_array__Array(&type_array__Arraykernel__Object
);
7194 { /* var433 = array_instance Array[Object] */
7196 var435
= NEW_array__NativeArray(var434
, &type_array__NativeArraykernel__Object
);
7197 ((struct instance_array__NativeArray
*)var435
)->values
[0] = (val
*) var_cltype
;
7198 ((struct instance_array__NativeArray
*)var435
)->values
[1] = (val
*) var424
;
7199 ((struct instance_array__NativeArray
*)var435
)->values
[2] = (val
*) var_entry
;
7200 ((struct instance_array__NativeArray
*)var435
)->values
[3] = (val
*) var429
;
7201 ((void (*)(val
*, val
*, long))(var433
->class->vft
[COLOR_array__Array__with_native
]))(var433
, var435
, var434
) /* with_native on <var433:Array[Object]>*/;
7203 var436
= ((val
* (*)(val
*))(var433
->class->vft
[COLOR_string__Object__to_s
]))(var433
) /* to_s on <var433:Array[Object]>*/;
7204 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var436
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7206 var438
= varonce437
;
7210 var441
= string__NativeString__to_s_with_length(var439
, var440
);
7212 varonce437
= var438
;
7215 var443
= varonce442
;
7217 var444
= ".class->id;";
7219 var446
= string__NativeString__to_s_with_length(var444
, var445
);
7221 varonce442
= var443
;
7223 var447
= NEW_array__Array(&type_array__Arraykernel__Object
);
7224 { /* var447 = array_instance Array[Object] */
7226 var449
= NEW_array__NativeArray(var448
, &type_array__NativeArraykernel__Object
);
7227 ((struct instance_array__NativeArray
*)var449
)->values
[0] = (val
*) var_idtype
;
7228 ((struct instance_array__NativeArray
*)var449
)->values
[1] = (val
*) var438
;
7229 ((struct instance_array__NativeArray
*)var449
)->values
[2] = (val
*) var_entry
;
7230 ((struct instance_array__NativeArray
*)var449
)->values
[3] = (val
*) var443
;
7231 ((void (*)(val
*, val
*, long))(var447
->class->vft
[COLOR_array__Array__with_native
]))(var447
, var449
, var448
) /* with_native on <var447:Array[Object]>*/;
7233 var450
= ((val
* (*)(val
*))(var447
->class->vft
[COLOR_string__Object__to_s
]))(var447
) /* to_s on <var447:Array[Object]>*/;
7234 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var450
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7235 var_452
= var_maybe_null
;
7236 if (var_maybe_null
){
7238 var454
= varonce453
;
7242 var457
= string__NativeString__to_s_with_length(var455
, var456
);
7244 varonce453
= var454
;
7246 var458
= ((short int (*)(val
*, val
*))(var_accept_null
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_accept_null
, var454
) /* == on <var_accept_null:String>*/;
7253 var460
= varonce459
;
7255 var461
= "is_nullable";
7257 var463
= string__NativeString__to_s_with_length(var461
, var462
);
7259 varonce459
= var460
;
7261 var464
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var460
) /* get_name on <self:SeparateErasureCompilerVisitor>*/;
7262 var_is_nullable
= var464
;
7264 var466
= varonce465
;
7266 var467
= "short int ";
7268 var469
= string__NativeString__to_s_with_length(var467
, var468
);
7270 varonce465
= var466
;
7273 var471
= varonce470
;
7277 var474
= string__NativeString__to_s_with_length(var472
, var473
);
7279 varonce470
= var471
;
7281 var475
= NEW_array__Array(&type_array__Arraykernel__Object
);
7282 { /* var475 = array_instance Array[Object] */
7284 var477
= NEW_array__NativeArray(var476
, &type_array__NativeArraykernel__Object
);
7285 ((struct instance_array__NativeArray
*)var477
)->values
[0] = (val
*) var466
;
7286 ((struct instance_array__NativeArray
*)var477
)->values
[1] = (val
*) var_is_nullable
;
7287 ((struct instance_array__NativeArray
*)var477
)->values
[2] = (val
*) var471
;
7288 ((void (*)(val
*, val
*, long))(var475
->class->vft
[COLOR_array__Array__with_native
]))(var475
, var477
, var476
) /* with_native on <var475:Array[Object]>*/;
7290 var478
= ((val
* (*)(val
*))(var475
->class->vft
[COLOR_string__Object__to_s
]))(var475
) /* to_s on <var475:Array[Object]>*/;
7291 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var478
) /* add_decl on <self:SeparateErasureCompilerVisitor>*/;
7293 var480
= varonce479
;
7297 var483
= string__NativeString__to_s_with_length(var481
, var482
);
7299 varonce479
= var480
;
7302 var485
= varonce484
;
7304 var486
= ".is_nullable;";
7306 var488
= string__NativeString__to_s_with_length(var486
, var487
);
7308 varonce484
= var485
;
7310 var489
= NEW_array__Array(&type_array__Arraykernel__Object
);
7311 { /* var489 = array_instance Array[Object] */
7313 var491
= NEW_array__NativeArray(var490
, &type_array__NativeArraykernel__Object
);
7314 ((struct instance_array__NativeArray
*)var491
)->values
[0] = (val
*) var_is_nullable
;
7315 ((struct instance_array__NativeArray
*)var491
)->values
[1] = (val
*) var480
;
7316 ((struct instance_array__NativeArray
*)var491
)->values
[2] = (val
*) var_entry
;
7317 ((struct instance_array__NativeArray
*)var491
)->values
[3] = (val
*) var485
;
7318 ((void (*)(val
*, val
*, long))(var489
->class->vft
[COLOR_array__Array__with_native
]))(var489
, var491
, var490
) /* with_native on <var489:Array[Object]>*/;
7320 var492
= ((val
* (*)(val
*))(var489
->class->vft
[COLOR_string__Object__to_s
]))(var489
) /* to_s on <var489:Array[Object]>*/;
7321 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var492
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7322 var493
= ((val
* (*)(val
*))(var_is_nullable
->class->vft
[COLOR_string__Object__to_s
]))(var_is_nullable
) /* to_s on <var_is_nullable:String>*/;
7323 var_accept_null
= var493
;
7326 var494
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
7327 var495
= ((val
* (*)(val
*))(var494
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var494
) /* modelbuilder on <var494:AbstractCompiler(SeparateCompiler)>*/;
7328 var496
= ((val
* (*)(val
*))(var495
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var495
) /* toolcontext on <var495:ModelBuilder>*/;
7329 var497
= ((val
* (*)(val
*))(var496
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_typing_test_metrics
]))(var496
) /* opt_typing_test_metrics on <var496:ToolContext>*/;
7330 var498
= ((val
* (*)(val
*))(var497
->class->vft
[COLOR_opts__Option__value
]))(var497
) /* value on <var497:OptionBool>*/;
7331 var499
= ((struct instance_kernel__Bool
*)var498
)->value
; /* autounbox from nullable Object to Bool */;
7333 var500
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
7334 var501
= ((val
* (*)(val
*))(var500
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__count_type_test_unresolved
]))(var500
) /* count_type_test_unresolved on <var500:AbstractCompiler(SeparateCompiler)>*/;
7337 var504
= ((val
* (*)(val
*, val
*))(var_502
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_502
, var_503
) /* [] on <var_502:HashMap[String, Int]>*/;
7339 { /* Inline kernel#Int#+ (var504,var505) */
7340 var508
= ((struct instance_kernel__Int
*)var504
)->value
; /* autounbox from nullable Object to Int */;
7341 var509
= var508
+ var505
;
7344 RET_LABEL507
:(void)0;
7346 var510
= BOX_kernel__Int(var506
); /* autobox from Int to nullable Object */
7347 ((void (*)(val
*, val
*, val
*))(var_502
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_502
, var_503
, var510
) /* []= on <var_502:HashMap[String, Int]>*/;
7349 var512
= varonce511
;
7351 var513
= "count_type_test_unresolved_";
7353 var515
= string__NativeString__to_s_with_length(var513
, var514
);
7355 varonce511
= var512
;
7358 var517
= varonce516
;
7362 var520
= string__NativeString__to_s_with_length(var518
, var519
);
7364 varonce516
= var517
;
7366 var521
= NEW_array__Array(&type_array__Arraykernel__Object
);
7367 { /* var521 = array_instance Array[Object] */
7369 var523
= NEW_array__NativeArray(var522
, &type_array__NativeArraykernel__Object
);
7370 ((struct instance_array__NativeArray
*)var523
)->values
[0] = (val
*) var512
;
7371 ((struct instance_array__NativeArray
*)var523
)->values
[1] = (val
*) var_tag
;
7372 ((struct instance_array__NativeArray
*)var523
)->values
[2] = (val
*) var517
;
7373 ((void (*)(val
*, val
*, long))(var521
->class->vft
[COLOR_array__Array__with_native
]))(var521
, var523
, var522
) /* with_native on <var521:Array[Object]>*/;
7375 var524
= ((val
* (*)(val
*))(var521
->class->vft
[COLOR_string__Object__to_s
]))(var521
) /* to_s on <var521:Array[Object]>*/;
7376 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var524
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7381 var526
= varonce525
;
7383 var527
= "type_test(";
7385 var529
= string__NativeString__to_s_with_length(var527
, var528
);
7387 varonce525
= var526
;
7389 var530
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_string__Object__inspect
]))(var_value
) /* inspect on <var_value:RuntimeVariable>*/;
7391 var532
= varonce531
;
7395 var535
= string__NativeString__to_s_with_length(var533
, var534
);
7397 varonce531
= var532
;
7400 var537
= varonce536
;
7404 var540
= string__NativeString__to_s_with_length(var538
, var539
);
7406 varonce536
= var537
;
7408 var541
= NEW_array__Array(&type_array__Arraykernel__Object
);
7409 { /* var541 = array_instance Array[Object] */
7411 var543
= NEW_array__NativeArray(var542
, &type_array__NativeArraykernel__Object
);
7412 ((struct instance_array__NativeArray
*)var543
)->values
[0] = (val
*) var526
;
7413 ((struct instance_array__NativeArray
*)var543
)->values
[1] = (val
*) var530
;
7414 ((struct instance_array__NativeArray
*)var543
)->values
[2] = (val
*) var532
;
7415 ((struct instance_array__NativeArray
*)var543
)->values
[3] = (val
*) var_mtype
;
7416 ((struct instance_array__NativeArray
*)var543
)->values
[4] = (val
*) var537
;
7417 ((void (*)(val
*, val
*, long))(var541
->class->vft
[COLOR_array__Array__with_native
]))(var541
, var543
, var542
) /* with_native on <var541:Array[Object]>*/;
7419 var544
= ((val
* (*)(val
*))(var541
->class->vft
[COLOR_string__Object__to_s
]))(var541
) /* to_s on <var541:Array[Object]>*/;
7420 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__debug
]))(self
, var544
) /* debug on <self:SeparateErasureCompilerVisitor>*/;
7421 fprintf(stderr
, "Runtime error: %s", "Aborted");
7422 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 554);
7426 if (var_maybe_null
){
7428 var546
= varonce545
;
7432 var549
= string__NativeString__to_s_with_length(var547
, var548
);
7434 varonce545
= var546
;
7437 var551
= varonce550
;
7439 var552
= " == NULL) {";
7441 var554
= string__NativeString__to_s_with_length(var552
, var553
);
7443 varonce550
= var551
;
7445 var555
= NEW_array__Array(&type_array__Arraykernel__Object
);
7446 { /* var555 = array_instance Array[Object] */
7448 var557
= NEW_array__NativeArray(var556
, &type_array__NativeArraykernel__Object
);
7449 ((struct instance_array__NativeArray
*)var557
)->values
[0] = (val
*) var546
;
7450 ((struct instance_array__NativeArray
*)var557
)->values
[1] = (val
*) var_value
;
7451 ((struct instance_array__NativeArray
*)var557
)->values
[2] = (val
*) var551
;
7452 ((void (*)(val
*, val
*, long))(var555
->class->vft
[COLOR_array__Array__with_native
]))(var555
, var557
, var556
) /* with_native on <var555:Array[Object]>*/;
7454 var558
= ((val
* (*)(val
*))(var555
->class->vft
[COLOR_string__Object__to_s
]))(var555
) /* to_s on <var555:Array[Object]>*/;
7455 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var558
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7457 var560
= varonce559
;
7461 var563
= string__NativeString__to_s_with_length(var561
, var562
);
7463 varonce559
= var560
;
7466 var565
= varonce564
;
7470 var568
= string__NativeString__to_s_with_length(var566
, var567
);
7472 varonce564
= var565
;
7474 var569
= NEW_array__Array(&type_array__Arraykernel__Object
);
7475 { /* var569 = array_instance Array[Object] */
7477 var571
= NEW_array__NativeArray(var570
, &type_array__NativeArraykernel__Object
);
7478 ((struct instance_array__NativeArray
*)var571
)->values
[0] = (val
*) var_res
;
7479 ((struct instance_array__NativeArray
*)var571
)->values
[1] = (val
*) var560
;
7480 ((struct instance_array__NativeArray
*)var571
)->values
[2] = (val
*) var_accept_null
;
7481 ((struct instance_array__NativeArray
*)var571
)->values
[3] = (val
*) var565
;
7482 ((void (*)(val
*, val
*, long))(var569
->class->vft
[COLOR_array__Array__with_native
]))(var569
, var571
, var570
) /* with_native on <var569:Array[Object]>*/;
7484 var572
= ((val
* (*)(val
*))(var569
->class->vft
[COLOR_string__Object__to_s
]))(var569
) /* to_s on <var569:Array[Object]>*/;
7485 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var572
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7487 var574
= varonce573
;
7489 var575
= "} else {";
7491 var577
= string__NativeString__to_s_with_length(var575
, var576
);
7493 varonce573
= var574
;
7495 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var574
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7498 var578
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
7499 /* <var578:AbstractCompiler(SeparateCompiler)> isa SeparateErasureCompiler */
7500 cltype580
= type_separate_erasure_compiler__SeparateErasureCompiler
.color
;
7501 idtype581
= type_separate_erasure_compiler__SeparateErasureCompiler
.id
;
7502 if(cltype580
>= var578
->type
->table_size
) {
7505 var579
= var578
->type
->type_table
[cltype580
] == idtype581
;
7508 var_class_name582
= var578
== NULL ?
"null" : var578
->type
->name
;
7509 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "SeparateErasureCompiler", var_class_name582
);
7510 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 563);
7513 var583
= ((val
* (*)(val
*))(var578
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout
]))(var578
) /* class_layout on <var578:SeparateCompiler(SeparateErasureCompiler)>*/;
7514 /* <var583:nullable Layout[MClass]> isa PHLayout[MClass, MClass] */
7515 cltype585
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.color
;
7516 idtype586
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.id
;
7517 if(var583
== NULL
) {
7520 if(cltype585
>= var583
->type
->table_size
) {
7523 var584
= var583
->type
->type_table
[cltype585
] == idtype586
;
7528 var588
= varonce587
;
7530 var589
= " = HASH(";
7532 var591
= string__NativeString__to_s_with_length(var589
, var590
);
7534 varonce587
= var588
;
7537 var593
= varonce592
;
7541 var596
= string__NativeString__to_s_with_length(var594
, var595
);
7543 varonce592
= var593
;
7546 var598
= varonce597
;
7550 var601
= string__NativeString__to_s_with_length(var599
, var600
);
7552 varonce597
= var598
;
7554 var602
= NEW_array__Array(&type_array__Arraykernel__Object
);
7555 { /* var602 = array_instance Array[Object] */
7557 var604
= NEW_array__NativeArray(var603
, &type_array__NativeArraykernel__Object
);
7558 ((struct instance_array__NativeArray
*)var604
)->values
[0] = (val
*) var_cltype
;
7559 ((struct instance_array__NativeArray
*)var604
)->values
[1] = (val
*) var588
;
7560 ((struct instance_array__NativeArray
*)var604
)->values
[2] = (val
*) var_class_ptr
;
7561 ((struct instance_array__NativeArray
*)var604
)->values
[3] = (val
*) var593
;
7562 ((struct instance_array__NativeArray
*)var604
)->values
[4] = (val
*) var_idtype
;
7563 ((struct instance_array__NativeArray
*)var604
)->values
[5] = (val
*) var598
;
7564 ((void (*)(val
*, val
*, long))(var602
->class->vft
[COLOR_array__Array__with_native
]))(var602
, var604
, var603
) /* with_native on <var602:Array[Object]>*/;
7566 var605
= ((val
* (*)(val
*))(var602
->class->vft
[COLOR_string__Object__to_s
]))(var602
) /* to_s on <var602:Array[Object]>*/;
7567 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var605
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7571 var607
= varonce606
;
7575 var610
= string__NativeString__to_s_with_length(var608
, var609
);
7577 varonce606
= var607
;
7580 var612
= varonce611
;
7584 var615
= string__NativeString__to_s_with_length(var613
, var614
);
7586 varonce611
= var612
;
7589 var617
= varonce616
;
7591 var618
= "type_table->size) {";
7593 var620
= string__NativeString__to_s_with_length(var618
, var619
);
7595 varonce616
= var617
;
7597 var621
= NEW_array__Array(&type_array__Arraykernel__Object
);
7598 { /* var621 = array_instance Array[Object] */
7600 var623
= NEW_array__NativeArray(var622
, &type_array__NativeArraykernel__Object
);
7601 ((struct instance_array__NativeArray
*)var623
)->values
[0] = (val
*) var607
;
7602 ((struct instance_array__NativeArray
*)var623
)->values
[1] = (val
*) var_cltype
;
7603 ((struct instance_array__NativeArray
*)var623
)->values
[2] = (val
*) var612
;
7604 ((struct instance_array__NativeArray
*)var623
)->values
[3] = (val
*) var_class_ptr
;
7605 ((struct instance_array__NativeArray
*)var623
)->values
[4] = (val
*) var617
;
7606 ((void (*)(val
*, val
*, long))(var621
->class->vft
[COLOR_array__Array__with_native
]))(var621
, var623
, var622
) /* with_native on <var621:Array[Object]>*/;
7608 var624
= ((val
* (*)(val
*))(var621
->class->vft
[COLOR_string__Object__to_s
]))(var621
) /* to_s on <var621:Array[Object]>*/;
7609 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var624
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7611 var626
= varonce625
;
7615 var629
= string__NativeString__to_s_with_length(var627
, var628
);
7617 varonce625
= var626
;
7619 var630
= NEW_array__Array(&type_array__Arraykernel__Object
);
7620 { /* var630 = array_instance Array[Object] */
7622 var632
= NEW_array__NativeArray(var631
, &type_array__NativeArraykernel__Object
);
7623 ((struct instance_array__NativeArray
*)var632
)->values
[0] = (val
*) var_res
;
7624 ((struct instance_array__NativeArray
*)var632
)->values
[1] = (val
*) var626
;
7625 ((void (*)(val
*, val
*, long))(var630
->class->vft
[COLOR_array__Array__with_native
]))(var630
, var632
, var631
) /* with_native on <var630:Array[Object]>*/;
7627 var633
= ((val
* (*)(val
*))(var630
->class->vft
[COLOR_string__Object__to_s
]))(var630
) /* to_s on <var630:Array[Object]>*/;
7628 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var633
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7630 var635
= varonce634
;
7632 var636
= "} else {";
7634 var638
= string__NativeString__to_s_with_length(var636
, var637
);
7636 varonce634
= var635
;
7638 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var635
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7640 var640
= varonce639
;
7644 var643
= string__NativeString__to_s_with_length(var641
, var642
);
7646 varonce639
= var640
;
7649 var645
= varonce644
;
7651 var646
= "type_table->table[";
7653 var648
= string__NativeString__to_s_with_length(var646
, var647
);
7655 varonce644
= var645
;
7658 var650
= varonce649
;
7662 var653
= string__NativeString__to_s_with_length(var651
, var652
);
7664 varonce649
= var650
;
7667 var655
= varonce654
;
7671 var658
= string__NativeString__to_s_with_length(var656
, var657
);
7673 varonce654
= var655
;
7675 var659
= NEW_array__Array(&type_array__Arraykernel__Object
);
7676 { /* var659 = array_instance Array[Object] */
7678 var661
= NEW_array__NativeArray(var660
, &type_array__NativeArraykernel__Object
);
7679 ((struct instance_array__NativeArray
*)var661
)->values
[0] = (val
*) var_res
;
7680 ((struct instance_array__NativeArray
*)var661
)->values
[1] = (val
*) var640
;
7681 ((struct instance_array__NativeArray
*)var661
)->values
[2] = (val
*) var_class_ptr
;
7682 ((struct instance_array__NativeArray
*)var661
)->values
[3] = (val
*) var645
;
7683 ((struct instance_array__NativeArray
*)var661
)->values
[4] = (val
*) var_cltype
;
7684 ((struct instance_array__NativeArray
*)var661
)->values
[5] = (val
*) var650
;
7685 ((struct instance_array__NativeArray
*)var661
)->values
[6] = (val
*) var_idtype
;
7686 ((struct instance_array__NativeArray
*)var661
)->values
[7] = (val
*) var655
;
7687 ((void (*)(val
*, val
*, long))(var659
->class->vft
[COLOR_array__Array__with_native
]))(var659
, var661
, var660
) /* with_native on <var659:Array[Object]>*/;
7689 var662
= ((val
* (*)(val
*))(var659
->class->vft
[COLOR_string__Object__to_s
]))(var659
) /* to_s on <var659:Array[Object]>*/;
7690 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var662
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7692 var664
= varonce663
;
7696 var667
= string__NativeString__to_s_with_length(var665
, var666
);
7698 varonce663
= var664
;
7700 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var664
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7701 if (var_maybe_null
){
7703 var669
= varonce668
;
7707 var672
= string__NativeString__to_s_with_length(var670
, var671
);
7709 varonce668
= var669
;
7711 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var669
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7719 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#type_test for (self: Object, RuntimeVariable, MType, String): RuntimeVariable */
7720 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7721 val
* var
/* : RuntimeVariable */;
7722 val
* var1
/* : RuntimeVariable */;
7723 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__type_test(self
, p0
, p1
, p2
);
7728 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#class_name_string for (self: SeparateErasureCompilerVisitor, RuntimeVariable): String */
7729 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
7730 val
* var
/* : String */;
7731 val
* var_value
/* var value: RuntimeVariable */;
7732 static val
* varonce
;
7733 val
* var1
/* : String */;
7734 char* var2
/* : NativeString */;
7735 long var3
/* : Int */;
7736 val
* var4
/* : String */;
7737 val
* var5
/* : String */;
7738 val
* var_res
/* var res: String */;
7739 static val
* varonce6
;
7740 val
* var7
/* : String */;
7741 char* var8
/* : NativeString */;
7742 long var9
/* : Int */;
7743 val
* var10
/* : String */;
7744 static val
* varonce11
;
7745 val
* var12
/* : String */;
7746 char* var13
/* : NativeString */;
7747 long var14
/* : Int */;
7748 val
* var15
/* : String */;
7749 val
* var16
/* : Array[Object] */;
7750 long var17
/* : Int */;
7751 val
* var18
/* : NativeArray[Object] */;
7752 val
* var19
/* : String */;
7753 val
* var20
/* : MType */;
7754 val
* var21
/* : String */;
7755 static val
* varonce22
;
7756 val
* var23
/* : String */;
7757 char* var24
/* : NativeString */;
7758 long var25
/* : Int */;
7759 val
* var26
/* : String */;
7760 short int var27
/* : Bool */;
7761 static val
* varonce28
;
7762 val
* var29
/* : String */;
7763 char* var30
/* : NativeString */;
7764 long var31
/* : Int */;
7765 val
* var32
/* : String */;
7766 static val
* varonce33
;
7767 val
* var34
/* : String */;
7768 char* var35
/* : NativeString */;
7769 long var36
/* : Int */;
7770 val
* var37
/* : String */;
7771 static val
* varonce38
;
7772 val
* var39
/* : String */;
7773 char* var40
/* : NativeString */;
7774 long var41
/* : Int */;
7775 val
* var42
/* : String */;
7776 val
* var43
/* : Array[Object] */;
7777 long var44
/* : Int */;
7778 val
* var45
/* : NativeArray[Object] */;
7779 val
* var46
/* : String */;
7780 static val
* varonce47
;
7781 val
* var48
/* : String */;
7782 char* var49
/* : NativeString */;
7783 long var50
/* : Int */;
7784 val
* var51
/* : String */;
7785 val
* var52
/* : MType */;
7786 val
* var53
/* : String */;
7787 val
* var54
/* : Array[Object] */;
7788 long var55
/* : Int */;
7789 val
* var56
/* : NativeArray[Object] */;
7790 val
* var57
/* : String */;
7791 static val
* varonce58
;
7792 val
* var59
/* : String */;
7793 char* var60
/* : NativeString */;
7794 long var61
/* : Int */;
7795 val
* var62
/* : String */;
7796 val
* var63
/* : MType */;
7797 val
* var64
/* : String */;
7798 static val
* varonce65
;
7799 val
* var66
/* : String */;
7800 char* var67
/* : NativeString */;
7801 long var68
/* : Int */;
7802 val
* var69
/* : String */;
7803 val
* var70
/* : Array[Object] */;
7804 long var71
/* : Int */;
7805 val
* var72
/* : NativeArray[Object] */;
7806 val
* var73
/* : String */;
7811 var2
= "var_class_name";
7813 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7817 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var1
) /* get_name on <self:SeparateErasureCompilerVisitor>*/;
7822 var8
= "const char* ";
7824 var10
= string__NativeString__to_s_with_length(var8
, var9
);
7833 var15
= string__NativeString__to_s_with_length(var13
, var14
);
7837 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
7838 { /* var16 = array_instance Array[Object] */
7840 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
7841 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
7842 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var_res
;
7843 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
7844 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
7846 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
7847 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var19
) /* add_decl on <self:SeparateErasureCompilerVisitor>*/;
7848 var20
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
7849 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var20
) /* ctype on <var20:MType>*/;
7855 var26
= string__NativeString__to_s_with_length(var24
, var25
);
7859 var27
= ((short int (*)(val
*, val
*))(var21
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var21
, var23
) /* == on <var21:String>*/;
7866 var32
= string__NativeString__to_s_with_length(var30
, var31
);
7873 var35
= " == NULL ? \"null\" : ";
7875 var37
= string__NativeString__to_s_with_length(var35
, var36
);
7882 var40
= "->class->name;";
7884 var42
= string__NativeString__to_s_with_length(var40
, var41
);
7888 var43
= NEW_array__Array(&type_array__Arraykernel__Object
);
7889 { /* var43 = array_instance Array[Object] */
7891 var45
= NEW_array__NativeArray(var44
, &type_array__NativeArraykernel__Object
);
7892 ((struct instance_array__NativeArray
*)var45
)->values
[0] = (val
*) var_res
;
7893 ((struct instance_array__NativeArray
*)var45
)->values
[1] = (val
*) var29
;
7894 ((struct instance_array__NativeArray
*)var45
)->values
[2] = (val
*) var_value
;
7895 ((struct instance_array__NativeArray
*)var45
)->values
[3] = (val
*) var34
;
7896 ((struct instance_array__NativeArray
*)var45
)->values
[4] = (val
*) var_value
;
7897 ((struct instance_array__NativeArray
*)var45
)->values
[5] = (val
*) var39
;
7898 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[Object]>*/;
7900 var46
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_string__Object__to_s
]))(var43
) /* to_s on <var43:Array[Object]>*/;
7901 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var46
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7908 var51
= string__NativeString__to_s_with_length(var49
, var50
);
7912 var52
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
7913 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var52
) /* c_name on <var52:MType>*/;
7914 var54
= NEW_array__Array(&type_array__Arraykernel__Object
);
7915 { /* var54 = array_instance Array[Object] */
7917 var56
= NEW_array__NativeArray(var55
, &type_array__NativeArraykernel__Object
);
7918 ((struct instance_array__NativeArray
*)var56
)->values
[0] = (val
*) var48
;
7919 ((struct instance_array__NativeArray
*)var56
)->values
[1] = (val
*) var53
;
7920 ((void (*)(val
*, val
*, long))(var54
->class->vft
[COLOR_array__Array__with_native
]))(var54
, var56
, var55
) /* with_native on <var54:Array[Object]>*/;
7922 var57
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_string__Object__to_s
]))(var54
) /* to_s on <var54:Array[Object]>*/;
7923 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var57
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
7927 var60
= " = class_";
7929 var62
= string__NativeString__to_s_with_length(var60
, var61
);
7933 var63
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
7934 var64
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var63
) /* c_name on <var63:MType>*/;
7940 var69
= string__NativeString__to_s_with_length(var67
, var68
);
7944 var70
= NEW_array__Array(&type_array__Arraykernel__Object
);
7945 { /* var70 = array_instance Array[Object] */
7947 var72
= NEW_array__NativeArray(var71
, &type_array__NativeArraykernel__Object
);
7948 ((struct instance_array__NativeArray
*)var72
)->values
[0] = (val
*) var_res
;
7949 ((struct instance_array__NativeArray
*)var72
)->values
[1] = (val
*) var59
;
7950 ((struct instance_array__NativeArray
*)var72
)->values
[2] = (val
*) var64
;
7951 ((struct instance_array__NativeArray
*)var72
)->values
[3] = (val
*) var66
;
7952 ((void (*)(val
*, val
*, long))(var70
->class->vft
[COLOR_array__Array__with_native
]))(var70
, var72
, var71
) /* with_native on <var70:Array[Object]>*/;
7954 var73
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_string__Object__to_s
]))(var70
) /* to_s on <var70:Array[Object]>*/;
7955 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var73
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7962 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#class_name_string for (self: Object, RuntimeVariable): String */
7963 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
7964 val
* var
/* : String */;
7965 val
* var1
/* : String */;
7966 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__class_name_string(self
, p0
);
7971 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#array_instance for (self: SeparateErasureCompilerVisitor, Array[RuntimeVariable], MType): RuntimeVariable */
7972 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__array_instance(val
* self
, val
* p0
, val
* p1
) {
7973 val
* var
/* : RuntimeVariable */;
7974 val
* var_array
/* var array: Array[RuntimeVariable] */;
7975 val
* var_elttype
/* var elttype: MType */;
7976 static val
* varonce
;
7977 val
* var1
/* : String */;
7978 char* var2
/* : NativeString */;
7979 long var3
/* : Int */;
7980 val
* var4
/* : String */;
7981 val
* var5
/* : MClass */;
7982 val
* var_nclass
/* var nclass: MClass */;
7983 val
* var6
/* : MType */;
7984 static val
* varonce7
;
7985 val
* var8
/* : String */;
7986 char* var9
/* : NativeString */;
7987 long var10
/* : Int */;
7988 val
* var11
/* : String */;
7989 val
* var12
/* : MClass */;
7990 val
* var13
/* : Array[MType] */;
7991 long var14
/* : Int */;
7992 val
* var15
/* : NativeArray[MType] */;
7993 val
* var16
/* : MClassType */;
7994 val
* var_arraytype
/* var arraytype: MClassType */;
7995 val
* var17
/* : RuntimeVariable */;
7996 val
* var_res
/* var res: RuntimeVariable */;
7997 static val
* varonce18
;
7998 val
* var19
/* : String */;
7999 char* var20
/* : NativeString */;
8000 long var21
/* : Int */;
8001 val
* var22
/* : String */;
8002 static val
* varonce23
;
8003 val
* var24
/* : String */;
8004 char* var25
/* : NativeString */;
8005 long var26
/* : Int */;
8006 val
* var27
/* : String */;
8007 static val
* varonce28
;
8008 val
* var29
/* : String */;
8009 char* var30
/* : NativeString */;
8010 long var31
/* : Int */;
8011 val
* var32
/* : String */;
8012 val
* var33
/* : Array[Object] */;
8013 long var34
/* : Int */;
8014 val
* var35
/* : NativeArray[Object] */;
8015 val
* var36
/* : String */;
8016 static val
* varonce37
;
8017 val
* var38
/* : String */;
8018 char* var39
/* : NativeString */;
8019 long var40
/* : Int */;
8020 val
* var41
/* : String */;
8021 val
* var42
/* : MClass */;
8022 val
* var43
/* : Array[MType] */;
8023 long var44
/* : Int */;
8024 val
* var45
/* : NativeArray[MType] */;
8025 val
* var46
/* : MClassType */;
8026 val
* var47
/* : RuntimeVariable */;
8027 val
* var_nat
/* var nat: RuntimeVariable */;
8028 short int var48
/* : Bool */;
8029 static val
* varonce49
;
8030 val
* var50
/* : String */;
8031 char* var51
/* : NativeString */;
8032 long var52
/* : Int */;
8033 val
* var53
/* : String */;
8034 val
* var54
/* : String */;
8035 val
* var55
/* : Array[Object] */;
8036 long var56
/* : Int */;
8037 val
* var57
/* : NativeArray[Object] */;
8038 val
* var58
/* : String */;
8039 static val
* varonce59
;
8040 val
* var60
/* : String */;
8041 char* var61
/* : NativeString */;
8042 long var62
/* : Int */;
8043 val
* var63
/* : String */;
8044 val
* var64
/* : String */;
8045 static val
* varonce65
;
8046 val
* var66
/* : String */;
8047 char* var67
/* : NativeString */;
8048 long var68
/* : Int */;
8049 val
* var69
/* : String */;
8050 long var70
/* : Int */;
8051 static val
* varonce71
;
8052 val
* var72
/* : String */;
8053 char* var73
/* : NativeString */;
8054 long var74
/* : Int */;
8055 val
* var75
/* : String */;
8056 val
* var76
/* : Array[Object] */;
8057 long var77
/* : Int */;
8058 val
* var78
/* : NativeArray[Object] */;
8059 val
* var79
/* : Object */;
8060 val
* var80
/* : String */;
8061 val
* var81
/* : Range[Int] */;
8062 long var82
/* : Int */;
8063 long var83
/* : Int */;
8064 val
* var84
/* : Discrete */;
8065 val
* var85
/* : Discrete */;
8066 val
* var86
/* : Iterator[nullable Object] */;
8067 short int var87
/* : Bool */;
8068 val
* var88
/* : nullable Object */;
8069 long var_i
/* var i: Int */;
8070 long var89
/* : Int */;
8071 val
* var90
/* : nullable Object */;
8072 val
* var91
/* : MClassType */;
8073 val
* var92
/* : RuntimeVariable */;
8074 val
* var_r
/* var r: RuntimeVariable */;
8075 static val
* varonce93
;
8076 val
* var94
/* : String */;
8077 char* var95
/* : NativeString */;
8078 long var96
/* : Int */;
8079 val
* var97
/* : String */;
8080 val
* var98
/* : String */;
8081 static val
* varonce99
;
8082 val
* var100
/* : String */;
8083 char* var101
/* : NativeString */;
8084 long var102
/* : Int */;
8085 val
* var103
/* : String */;
8086 static val
* varonce104
;
8087 val
* var105
/* : String */;
8088 char* var106
/* : NativeString */;
8089 long var107
/* : Int */;
8090 val
* var108
/* : String */;
8091 static val
* varonce109
;
8092 val
* var110
/* : String */;
8093 char* var111
/* : NativeString */;
8094 long var112
/* : Int */;
8095 val
* var113
/* : String */;
8096 static val
* varonce114
;
8097 val
* var115
/* : String */;
8098 char* var116
/* : NativeString */;
8099 long var117
/* : Int */;
8100 val
* var118
/* : String */;
8101 val
* var119
/* : Array[Object] */;
8102 long var120
/* : Int */;
8103 val
* var121
/* : NativeArray[Object] */;
8104 val
* var122
/* : Object */;
8105 val
* var123
/* : String */;
8106 long var124
/* : Int */;
8107 val
* var125
/* : RuntimeVariable */;
8108 val
* var_length
/* var length: RuntimeVariable */;
8109 static val
* varonce126
;
8110 val
* var127
/* : String */;
8111 char* var128
/* : NativeString */;
8112 long var129
/* : Int */;
8113 val
* var130
/* : String */;
8114 val
* var131
/* : MMethod */;
8115 val
* var132
/* : Array[RuntimeVariable] */;
8116 long var133
/* : Int */;
8117 val
* var134
/* : NativeArray[RuntimeVariable] */;
8118 val
* var135
/* : nullable RuntimeVariable */;
8119 static val
* varonce136
;
8120 val
* var137
/* : String */;
8121 char* var138
/* : NativeString */;
8122 long var139
/* : Int */;
8123 val
* var140
/* : String */;
8129 var2
= "NativeArray";
8131 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8135 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_class
]))(self
, var1
) /* get_class on <self:SeparateErasureCompilerVisitor>*/;
8137 var6
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__anchor
]))(self
, var_elttype
) /* anchor on <self:SeparateErasureCompilerVisitor>*/;
8144 var11
= string__NativeString__to_s_with_length(var9
, var10
);
8148 var12
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_class
]))(self
, var8
) /* get_class on <self:SeparateErasureCompilerVisitor>*/;
8149 var13
= NEW_array__Array(&type_array__Arraymodel__MType
);
8150 { /* var13 = array_instance Array[MType] */
8152 var15
= NEW_array__NativeArray(var14
, &type_array__NativeArraymodel__MType
);
8153 ((struct instance_array__NativeArray
*)var15
)->values
[0] = (val
*) var_elttype
;
8154 ((void (*)(val
*, val
*, long))(var13
->class->vft
[COLOR_array__Array__with_native
]))(var13
, var15
, var14
) /* with_native on <var13:Array[MType]>*/;
8156 var16
= ((val
* (*)(val
*, val
*))(var12
->class->vft
[COLOR_model__MClass__get_mtype
]))(var12
, var13
) /* get_mtype on <var12:MClass>*/;
8157 var_arraytype
= var16
;
8158 var17
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init_instance
]))(self
, var_arraytype
) /* init_instance on <self:SeparateErasureCompilerVisitor>*/;
8165 var22
= string__NativeString__to_s_with_length(var20
, var21
);
8172 var25
= " = array_instance Array[";
8174 var27
= string__NativeString__to_s_with_length(var25
, var26
);
8183 var32
= string__NativeString__to_s_with_length(var30
, var31
);
8187 var33
= NEW_array__Array(&type_array__Arraykernel__Object
);
8188 { /* var33 = array_instance Array[Object] */
8190 var35
= NEW_array__NativeArray(var34
, &type_array__NativeArraykernel__Object
);
8191 ((struct instance_array__NativeArray
*)var35
)->values
[0] = (val
*) var19
;
8192 ((struct instance_array__NativeArray
*)var35
)->values
[1] = (val
*) var_res
;
8193 ((struct instance_array__NativeArray
*)var35
)->values
[2] = (val
*) var24
;
8194 ((struct instance_array__NativeArray
*)var35
)->values
[3] = (val
*) var_elttype
;
8195 ((struct instance_array__NativeArray
*)var35
)->values
[4] = (val
*) var29
;
8196 ((void (*)(val
*, val
*, long))(var33
->class->vft
[COLOR_array__Array__with_native
]))(var33
, var35
, var34
) /* with_native on <var33:Array[Object]>*/;
8198 var36
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_string__Object__to_s
]))(var33
) /* to_s on <var33:Array[Object]>*/;
8199 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var36
) /* add on <self:SeparateErasureCompilerVisitor>*/;
8203 var39
= "NativeArray";
8205 var41
= string__NativeString__to_s_with_length(var39
, var40
);
8209 var42
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_class
]))(self
, var38
) /* get_class on <self:SeparateErasureCompilerVisitor>*/;
8210 var43
= NEW_array__Array(&type_array__Arraymodel__MType
);
8211 { /* var43 = array_instance Array[MType] */
8213 var45
= NEW_array__NativeArray(var44
, &type_array__NativeArraymodel__MType
);
8214 ((struct instance_array__NativeArray
*)var45
)->values
[0] = (val
*) var_elttype
;
8215 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[MType]>*/;
8217 var46
= ((val
* (*)(val
*, val
*))(var42
->class->vft
[COLOR_model__MClass__get_mtype
]))(var42
, var43
) /* get_mtype on <var42:MClass>*/;
8218 var47
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var46
) /* new_var on <self:SeparateErasureCompilerVisitor>*/;
8221 ((void (*)(val
*, short int))(var_nat
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_nat
, var48
) /* is_exact= on <var_nat:RuntimeVariable>*/;
8227 var53
= string__NativeString__to_s_with_length(var51
, var52
);
8231 var54
= ((val
* (*)(val
*))(var_nclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_nclass
) /* c_name on <var_nclass:MClass>*/;
8232 var55
= NEW_array__Array(&type_array__Arraykernel__Object
);
8233 { /* var55 = array_instance Array[Object] */
8235 var57
= NEW_array__NativeArray(var56
, &type_array__NativeArraykernel__Object
);
8236 ((struct instance_array__NativeArray
*)var57
)->values
[0] = (val
*) var50
;
8237 ((struct instance_array__NativeArray
*)var57
)->values
[1] = (val
*) var54
;
8238 ((void (*)(val
*, val
*, long))(var55
->class->vft
[COLOR_array__Array__with_native
]))(var55
, var57
, var56
) /* with_native on <var55:Array[Object]>*/;
8240 var58
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_string__Object__to_s
]))(var55
) /* to_s on <var55:Array[Object]>*/;
8241 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var58
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
8247 var63
= string__NativeString__to_s_with_length(var61
, var62
);
8251 var64
= ((val
* (*)(val
*))(var_nclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_nclass
) /* c_name on <var_nclass:MClass>*/;
8257 var69
= string__NativeString__to_s_with_length(var67
, var68
);
8261 var70
= ((long (*)(val
*))(var_array
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_array
) /* length on <var_array:Array[RuntimeVariable]>*/;
8267 var75
= string__NativeString__to_s_with_length(var73
, var74
);
8271 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
8272 { /* var76 = array_instance Array[Object] */
8274 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
8275 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var_nat
;
8276 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var60
;
8277 ((struct instance_array__NativeArray
*)var78
)->values
[2] = (val
*) var64
;
8278 ((struct instance_array__NativeArray
*)var78
)->values
[3] = (val
*) var66
;
8279 var79
= BOX_kernel__Int(var70
); /* autobox from Int to Object */
8280 ((struct instance_array__NativeArray
*)var78
)->values
[4] = (val
*) var79
;
8281 ((struct instance_array__NativeArray
*)var78
)->values
[5] = (val
*) var72
;
8282 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
8284 var80
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
8285 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var80
) /* add on <self:SeparateErasureCompilerVisitor>*/;
8286 var81
= NEW_range__Range(&type_range__Rangekernel__Int
);
8288 var83
= ((long (*)(val
*))(var_array
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_array
) /* length on <var_array:Array[RuntimeVariable]>*/;
8289 var84
= BOX_kernel__Int(var82
); /* autobox from Int to Discrete */
8290 var85
= BOX_kernel__Int(var83
); /* autobox from Int to Discrete */
8291 ((void (*)(val
*, val
*, val
*))(var81
->class->vft
[COLOR_range__Range__without_last
]))(var81
, var84
, var85
) /* without_last on <var81:Range[Int]>*/;
8292 var86
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var81
) /* iterator on <var81:Range[Int]>*/;
8294 var87
= ((short int (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var86
) /* is_ok on <var86:Iterator[nullable Object]>*/;
8296 var88
= ((val
* (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var86
) /* item on <var86:Iterator[nullable Object]>*/;
8297 var89
= ((struct instance_kernel__Int
*)var88
)->value
; /* autounbox from nullable Object to Int */;
8299 var90
= ((val
* (*)(val
*, long))(var_array
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_array
, var_i
) /* [] on <var_array:Array[RuntimeVariable]>*/;
8300 var91
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__object_type
]))(self
) /* object_type on <self:SeparateErasureCompilerVisitor>*/;
8301 var92
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var90
, var91
) /* autobox on <self:SeparateErasureCompilerVisitor>*/;
8306 var95
= "((struct instance_";
8308 var97
= string__NativeString__to_s_with_length(var95
, var96
);
8312 var98
= ((val
* (*)(val
*))(var_nclass
->class->vft
[COLOR_separate_compiler__MClass__c_instance_name
]))(var_nclass
) /* c_instance_name on <var_nclass:MClass>*/;
8318 var103
= string__NativeString__to_s_with_length(var101
, var102
);
8323 var105
= varonce104
;
8325 var106
= ")->values[";
8327 var108
= string__NativeString__to_s_with_length(var106
, var107
);
8329 varonce104
= var105
;
8332 var110
= varonce109
;
8334 var111
= "] = (val*) ";
8336 var113
= string__NativeString__to_s_with_length(var111
, var112
);
8338 varonce109
= var110
;
8341 var115
= varonce114
;
8345 var118
= string__NativeString__to_s_with_length(var116
, var117
);
8347 varonce114
= var115
;
8349 var119
= NEW_array__Array(&type_array__Arraykernel__Object
);
8350 { /* var119 = array_instance Array[Object] */
8352 var121
= NEW_array__NativeArray(var120
, &type_array__NativeArraykernel__Object
);
8353 ((struct instance_array__NativeArray
*)var121
)->values
[0] = (val
*) var94
;
8354 ((struct instance_array__NativeArray
*)var121
)->values
[1] = (val
*) var98
;
8355 ((struct instance_array__NativeArray
*)var121
)->values
[2] = (val
*) var100
;
8356 ((struct instance_array__NativeArray
*)var121
)->values
[3] = (val
*) var_nat
;
8357 ((struct instance_array__NativeArray
*)var121
)->values
[4] = (val
*) var105
;
8358 var122
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
8359 ((struct instance_array__NativeArray
*)var121
)->values
[5] = (val
*) var122
;
8360 ((struct instance_array__NativeArray
*)var121
)->values
[6] = (val
*) var110
;
8361 ((struct instance_array__NativeArray
*)var121
)->values
[7] = (val
*) var_r
;
8362 ((struct instance_array__NativeArray
*)var121
)->values
[8] = (val
*) var115
;
8363 ((void (*)(val
*, val
*, long))(var119
->class->vft
[COLOR_array__Array__with_native
]))(var119
, var121
, var120
) /* with_native on <var119:Array[Object]>*/;
8365 var123
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_string__Object__to_s
]))(var119
) /* to_s on <var119:Array[Object]>*/;
8366 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var123
) /* add on <self:SeparateErasureCompilerVisitor>*/;
8367 CONTINUE_label
: (void)0;
8368 ((void (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var86
) /* next on <var86:Iterator[nullable Object]>*/;
8370 BREAK_label
: (void)0;
8371 var124
= ((long (*)(val
*))(var_array
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_array
) /* length on <var_array:Array[RuntimeVariable]>*/;
8372 var125
= ((val
* (*)(val
*, long))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__int_instance
]))(self
, var124
) /* int_instance on <self:SeparateErasureCompilerVisitor>*/;
8373 var_length
= var125
;
8375 var127
= varonce126
;
8377 var128
= "with_native";
8379 var130
= string__NativeString__to_s_with_length(var128
, var129
);
8381 varonce126
= var127
;
8383 var131
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_property
]))(self
, var127
, var_arraytype
) /* get_property on <self:SeparateErasureCompilerVisitor>*/;
8384 var132
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
8385 { /* var132 = array_instance Array[RuntimeVariable] */
8387 var134
= NEW_array__NativeArray(var133
, &type_array__NativeArrayabstract_compiler__RuntimeVariable
);
8388 ((struct instance_array__NativeArray
*)var134
)->values
[0] = (val
*) var_res
;
8389 ((struct instance_array__NativeArray
*)var134
)->values
[1] = (val
*) var_nat
;
8390 ((struct instance_array__NativeArray
*)var134
)->values
[2] = (val
*) var_length
;
8391 ((void (*)(val
*, val
*, long))(var132
->class->vft
[COLOR_array__Array__with_native
]))(var132
, var134
, var133
) /* with_native on <var132:Array[RuntimeVariable]>*/;
8393 var135
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__send
]))(self
, var131
, var132
) /* send on <self:SeparateErasureCompilerVisitor>*/;
8396 var137
= varonce136
;
8400 var140
= string__NativeString__to_s_with_length(var138
, var139
);
8402 varonce136
= var137
;
8404 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var137
) /* add on <self:SeparateErasureCompilerVisitor>*/;
8410 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#array_instance for (self: Object, Array[RuntimeVariable], MType): RuntimeVariable */
8411 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__array_instance(val
* self
, val
* p0
, val
* p1
) {
8412 val
* var
/* : RuntimeVariable */;
8413 val
* var1
/* : RuntimeVariable */;
8414 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__array_instance(self
, p0
, p1
);
8419 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#calloc_array for (self: SeparateErasureCompilerVisitor, MType, Array[RuntimeVariable]) */
8420 void separate_erasure_compiler__SeparateErasureCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
8421 val
* var_ret_type
/* var ret_type: MType */;
8422 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
8423 short int var
/* : Bool */;
8426 const char* var_class_name
;
8427 val
* var_ret
/* var ret: MClassType */;
8428 static val
* varonce
;
8429 val
* var1
/* : String */;
8430 char* var2
/* : NativeString */;
8431 long var3
/* : Int */;
8432 val
* var4
/* : String */;
8433 val
* var5
/* : MClass */;
8434 val
* var6
/* : String */;
8435 val
* var7
/* : Array[Object] */;
8436 long var8
/* : Int */;
8437 val
* var9
/* : NativeArray[Object] */;
8438 val
* var10
/* : String */;
8439 static val
* varonce11
;
8440 val
* var12
/* : String */;
8441 char* var13
/* : NativeString */;
8442 long var14
/* : Int */;
8443 val
* var15
/* : String */;
8444 val
* var16
/* : MClass */;
8445 val
* var17
/* : String */;
8446 static val
* varonce18
;
8447 val
* var19
/* : String */;
8448 char* var20
/* : NativeString */;
8449 long var21
/* : Int */;
8450 val
* var22
/* : String */;
8451 long var23
/* : Int */;
8452 val
* var24
/* : nullable Object */;
8453 static val
* varonce25
;
8454 val
* var26
/* : String */;
8455 char* var27
/* : NativeString */;
8456 long var28
/* : Int */;
8457 val
* var29
/* : String */;
8458 val
* var30
/* : Array[Object] */;
8459 long var31
/* : Int */;
8460 val
* var32
/* : NativeArray[Object] */;
8461 val
* var33
/* : String */;
8462 val
* var34
/* : RuntimeVariable */;
8465 /* <var_ret_type:MType> isa MClassType */
8466 cltype
= type_model__MClassType
.color
;
8467 idtype
= type_model__MClassType
.id
;
8468 if(cltype
>= var_ret_type
->type
->table_size
) {
8471 var
= var_ret_type
->type
->type_table
[cltype
] == idtype
;
8474 var_class_name
= var_ret_type
== NULL ?
"null" : var_ret_type
->type
->name
;
8475 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
8476 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 614);
8479 var_ret
= var_ret_type
;
8485 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8489 var5
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_model__MClassType__mclass
]))(var_ret
) /* mclass on <var_ret:MClassType>*/;
8490 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var5
) /* c_name on <var5:MClass>*/;
8491 var7
= NEW_array__Array(&type_array__Arraykernel__Object
);
8492 { /* var7 = array_instance Array[Object] */
8494 var9
= NEW_array__NativeArray(var8
, &type_array__NativeArraykernel__Object
);
8495 ((struct instance_array__NativeArray
*)var9
)->values
[0] = (val
*) var1
;
8496 ((struct instance_array__NativeArray
*)var9
)->values
[1] = (val
*) var6
;
8497 ((void (*)(val
*, val
*, long))(var7
->class->vft
[COLOR_array__Array__with_native
]))(var7
, var9
, var8
) /* with_native on <var7:Array[Object]>*/;
8499 var10
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_string__Object__to_s
]))(var7
) /* to_s on <var7:Array[Object]>*/;
8500 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var10
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
8506 var15
= string__NativeString__to_s_with_length(var13
, var14
);
8510 var16
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_model__MClassType__mclass
]))(var_ret
) /* mclass on <var_ret:MClassType>*/;
8511 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var16
) /* c_name on <var16:MClass>*/;
8517 var22
= string__NativeString__to_s_with_length(var20
, var21
);
8522 var24
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var23
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8528 var29
= string__NativeString__to_s_with_length(var27
, var28
);
8532 var30
= NEW_array__Array(&type_array__Arraykernel__Object
);
8533 { /* var30 = array_instance Array[Object] */
8535 var32
= NEW_array__NativeArray(var31
, &type_array__NativeArraykernel__Object
);
8536 ((struct instance_array__NativeArray
*)var32
)->values
[0] = (val
*) var12
;
8537 ((struct instance_array__NativeArray
*)var32
)->values
[1] = (val
*) var17
;
8538 ((struct instance_array__NativeArray
*)var32
)->values
[2] = (val
*) var19
;
8539 ((struct instance_array__NativeArray
*)var32
)->values
[3] = (val
*) var24
;
8540 ((struct instance_array__NativeArray
*)var32
)->values
[4] = (val
*) var26
;
8541 ((void (*)(val
*, val
*, long))(var30
->class->vft
[COLOR_array__Array__with_native
]))(var30
, var32
, var31
) /* with_native on <var30:Array[Object]>*/;
8543 var33
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_string__Object__to_s
]))(var30
) /* to_s on <var30:Array[Object]>*/;
8544 var34
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var33
, var_ret_type
) /* new_expr on <self:SeparateErasureCompilerVisitor>*/;
8545 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__ret
]))(self
, var34
) /* ret on <self:SeparateErasureCompilerVisitor>*/;
8548 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#calloc_array for (self: Object, MType, Array[RuntimeVariable]) */
8549 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
8550 separate_erasure_compiler__SeparateErasureCompilerVisitor__calloc_array(self
, p0
, p1
);