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", "Reciever 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", 260);
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", 260);
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", "Reciever 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", 260);
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
/* : Map[MClass, Array[nullable MPropDef]] */;
1383 val
* var4
/* : nullable Object */;
1384 val
* var_vft
/* var vft: Array[nullable MPropDef] */;
1385 val
* var5
/* : Map[MClass, Array[nullable MPropDef]] */;
1386 val
* var6
/* : nullable Object */;
1387 val
* var_attrs
/* var attrs: Array[nullable MPropDef] */;
1388 val
* var7
/* : Map[MClass, Array[nullable MClass]] */;
1389 val
* var8
/* : nullable Object */;
1390 val
* var_class_table
/* var class_table: Array[nullable MClass] */;
1391 val
* var9
/* : AbstractCompilerVisitor */;
1392 val
* var_v
/* var v: SeparateCompilerVisitor */;
1393 static val
* varonce
;
1394 val
* var10
/* : String */;
1395 char* var11
/* : NativeString */;
1396 long var12
/* : Int */;
1397 val
* var13
/* : String */;
1398 static val
* varonce14
;
1399 val
* var15
/* : String */;
1400 char* var16
/* : NativeString */;
1401 long var17
/* : Int */;
1402 val
* var18
/* : String */;
1403 val
* var19
/* : Array[Object] */;
1404 long var20
/* : Int */;
1405 val
* var21
/* : NativeArray[Object] */;
1406 val
* var22
/* : String */;
1407 static val
* varonce23
;
1408 val
* var24
/* : String */;
1409 char* var25
/* : NativeString */;
1410 long var26
/* : Int */;
1411 val
* var27
/* : String */;
1412 val
* var28
/* : Array[Object] */;
1413 long var29
/* : Int */;
1414 val
* var30
/* : NativeArray[Object] */;
1415 val
* var31
/* : String */;
1416 static val
* varonce32
;
1417 val
* var33
/* : String */;
1418 char* var34
/* : NativeString */;
1419 long var35
/* : Int */;
1420 val
* var36
/* : String */;
1421 static val
* varonce37
;
1422 val
* var38
/* : String */;
1423 char* var39
/* : NativeString */;
1424 long var40
/* : Int */;
1425 val
* var41
/* : String */;
1426 val
* var42
/* : Array[Object] */;
1427 long var43
/* : Int */;
1428 val
* var44
/* : NativeArray[Object] */;
1429 val
* var45
/* : String */;
1430 static val
* varonce46
;
1431 val
* var47
/* : String */;
1432 char* var48
/* : NativeString */;
1433 long var49
/* : Int */;
1434 val
* var50
/* : String */;
1435 static val
* varonce51
;
1436 val
* var52
/* : String */;
1437 char* var53
/* : NativeString */;
1438 long var54
/* : Int */;
1439 val
* var55
/* : String */;
1440 val
* var56
/* : Array[Object] */;
1441 long var57
/* : Int */;
1442 val
* var58
/* : NativeArray[Object] */;
1443 val
* var59
/* : String */;
1444 static val
* varonce60
;
1445 val
* var61
/* : String */;
1446 char* var62
/* : NativeString */;
1447 long var63
/* : Int */;
1448 val
* var64
/* : String */;
1449 static val
* varonce65
;
1450 val
* var66
/* : String */;
1451 char* var67
/* : NativeString */;
1452 long var68
/* : Int */;
1453 val
* var69
/* : String */;
1454 val
* var70
/* : Array[Object] */;
1455 long var71
/* : Int */;
1456 val
* var72
/* : NativeArray[Object] */;
1457 val
* var73
/* : String */;
1458 val
* var74
/* : nullable Layout[MClass] */;
1459 val
* var75
/* : Map[Object, Int] */;
1460 val
* var76
/* : nullable Object */;
1461 static val
* varonce77
;
1462 val
* var78
/* : String */;
1463 char* var79
/* : NativeString */;
1464 long var80
/* : Int */;
1465 val
* var81
/* : String */;
1466 val
* var82
/* : Array[Object] */;
1467 long var83
/* : Int */;
1468 val
* var84
/* : NativeArray[Object] */;
1469 val
* var85
/* : String */;
1470 static val
* varonce86
;
1471 val
* var87
/* : String */;
1472 char* var88
/* : NativeString */;
1473 long var89
/* : Int */;
1474 val
* var90
/* : String */;
1475 val
* var91
/* : String */;
1476 static val
* varonce92
;
1477 val
* var93
/* : String */;
1478 char* var94
/* : NativeString */;
1479 long var95
/* : Int */;
1480 val
* var96
/* : String */;
1481 val
* var97
/* : Array[Object] */;
1482 long var98
/* : Int */;
1483 val
* var99
/* : NativeArray[Object] */;
1484 val
* var100
/* : String */;
1485 long var101
/* : Int */;
1486 static val
* varonce102
;
1487 val
* var103
/* : String */;
1488 char* var104
/* : NativeString */;
1489 long var105
/* : Int */;
1490 val
* var106
/* : String */;
1491 val
* var107
/* : Array[Object] */;
1492 long var108
/* : Int */;
1493 val
* var109
/* : NativeArray[Object] */;
1494 val
* var110
/* : Object */;
1495 val
* var111
/* : String */;
1496 val
* var112
/* : nullable Layout[MClass] */;
1497 val
* var_layout
/* var layout: nullable Layout[MClass] */;
1498 short int var113
/* : Bool */;
1501 val
* var114
/* : Map[Object, Int] */;
1502 val
* var115
/* : nullable Object */;
1503 static val
* varonce116
;
1504 val
* var117
/* : String */;
1505 char* var118
/* : NativeString */;
1506 long var119
/* : Int */;
1507 val
* var120
/* : String */;
1508 val
* var121
/* : Array[Object] */;
1509 long var122
/* : Int */;
1510 val
* var123
/* : NativeArray[Object] */;
1511 val
* var124
/* : String */;
1512 val
* var125
/* : Map[Object, Int] */;
1513 val
* var126
/* : nullable Object */;
1514 static val
* varonce127
;
1515 val
* var128
/* : String */;
1516 char* var129
/* : NativeString */;
1517 long var130
/* : Int */;
1518 val
* var131
/* : String */;
1519 val
* var132
/* : Array[Object] */;
1520 long var133
/* : Int */;
1521 val
* var134
/* : NativeArray[Object] */;
1522 val
* var135
/* : String */;
1523 short int var136
/* : Bool */;
1524 static val
* varonce137
;
1525 val
* var138
/* : String */;
1526 char* var139
/* : NativeString */;
1527 long var140
/* : Int */;
1528 val
* var141
/* : String */;
1529 val
* var142
/* : Array[Object] */;
1530 long var143
/* : Int */;
1531 val
* var144
/* : NativeArray[Object] */;
1532 val
* var145
/* : String */;
1533 static val
* varonce146
;
1534 val
* var147
/* : String */;
1535 char* var148
/* : NativeString */;
1536 long var149
/* : Int */;
1537 val
* var150
/* : String */;
1538 static val
* varonce151
;
1539 val
* var152
/* : String */;
1540 char* var153
/* : NativeString */;
1541 long var154
/* : Int */;
1542 val
* var155
/* : String */;
1543 val
* var156
/* : Array[Object] */;
1544 long var157
/* : Int */;
1545 val
* var158
/* : NativeArray[Object] */;
1546 val
* var159
/* : String */;
1547 static val
* varonce160
;
1548 val
* var161
/* : String */;
1549 char* var162
/* : NativeString */;
1550 long var163
/* : Int */;
1551 val
* var164
/* : String */;
1552 static val
* varonce165
;
1553 val
* var166
/* : String */;
1554 char* var167
/* : NativeString */;
1555 long var168
/* : Int */;
1556 val
* var169
/* : String */;
1557 static val
* varonce170
;
1558 val
* var171
/* : String */;
1559 char* var172
/* : NativeString */;
1560 long var173
/* : Int */;
1561 val
* var174
/* : String */;
1562 val
* var175
/* : Array[Object] */;
1563 long var176
/* : Int */;
1564 val
* var177
/* : NativeArray[Object] */;
1565 val
* var178
/* : String */;
1566 static val
* varonce179
;
1567 val
* var180
/* : String */;
1568 char* var181
/* : NativeString */;
1569 long var182
/* : Int */;
1570 val
* var183
/* : String */;
1571 val
* var184
/* : Range[Int] */;
1572 long var185
/* : Int */;
1573 long var186
/* : Int */;
1574 val
* var187
/* : Discrete */;
1575 val
* var188
/* : Discrete */;
1576 val
* var189
/* : Iterator[nullable Object] */;
1577 short int var190
/* : Bool */;
1578 val
* var191
/* : nullable Object */;
1579 long var_i
/* var i: Int */;
1580 long var192
/* : Int */;
1581 val
* var193
/* : nullable Object */;
1582 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
1583 val
* var194
/* : null */;
1584 short int var195
/* : Bool */;
1585 static val
* varonce196
;
1586 val
* var197
/* : String */;
1587 char* var198
/* : NativeString */;
1588 long var199
/* : Int */;
1589 val
* var200
/* : String */;
1590 short int var201
/* : Bool */;
1591 short int var202
/* : Bool */;
1592 short int var_
/* var : Bool */;
1593 val
* var203
/* : MClassDef */;
1594 val
* var204
/* : MClassType */;
1595 val
* var205
/* : String */;
1596 static val
* varonce206
;
1597 val
* var207
/* : String */;
1598 char* var208
/* : NativeString */;
1599 long var209
/* : Int */;
1600 val
* var210
/* : String */;
1601 short int var211
/* : Bool */;
1602 static val
* varonce212
;
1603 val
* var213
/* : String */;
1604 char* var214
/* : NativeString */;
1605 long var215
/* : Int */;
1606 val
* var216
/* : String */;
1607 val
* var217
/* : String */;
1608 val
* var218
/* : Array[Object] */;
1609 long var219
/* : Int */;
1610 val
* var220
/* : NativeArray[Object] */;
1611 val
* var221
/* : String */;
1612 static val
* varonce222
;
1613 val
* var223
/* : String */;
1614 char* var224
/* : NativeString */;
1615 long var225
/* : Int */;
1616 val
* var226
/* : String */;
1617 val
* var227
/* : String */;
1618 static val
* varonce228
;
1619 val
* var229
/* : String */;
1620 char* var230
/* : NativeString */;
1621 long var231
/* : Int */;
1622 val
* var232
/* : String */;
1623 val
* var233
/* : MModule */;
1624 static val
* varonce234
;
1625 val
* var235
/* : String */;
1626 char* var236
/* : NativeString */;
1627 long var237
/* : Int */;
1628 val
* var238
/* : String */;
1629 static val
* varonce239
;
1630 val
* var240
/* : String */;
1631 char* var241
/* : NativeString */;
1632 long var242
/* : Int */;
1633 val
* var243
/* : String */;
1634 static val
* varonce244
;
1635 val
* var245
/* : String */;
1636 char* var246
/* : NativeString */;
1637 long var247
/* : Int */;
1638 val
* var248
/* : String */;
1639 val
* var249
/* : Array[Object] */;
1640 long var250
/* : Int */;
1641 val
* var251
/* : NativeArray[Object] */;
1642 val
* var252
/* : String */;
1643 val
* var253
/* : String */;
1644 val
* var254
/* : Array[Object] */;
1645 long var255
/* : Int */;
1646 val
* var256
/* : NativeArray[Object] */;
1647 val
* var257
/* : String */;
1648 static val
* varonce258
;
1649 val
* var259
/* : String */;
1650 char* var260
/* : NativeString */;
1651 long var261
/* : Int */;
1652 val
* var262
/* : String */;
1653 val
* var263
/* : String */;
1654 static val
* varonce264
;
1655 val
* var265
/* : String */;
1656 char* var266
/* : NativeString */;
1657 long var267
/* : Int */;
1658 val
* var268
/* : String */;
1659 val
* var269
/* : MModule */;
1660 static val
* varonce270
;
1661 val
* var271
/* : String */;
1662 char* var272
/* : NativeString */;
1663 long var273
/* : Int */;
1664 val
* var274
/* : String */;
1665 static val
* varonce275
;
1666 val
* var276
/* : String */;
1667 char* var277
/* : NativeString */;
1668 long var278
/* : Int */;
1669 val
* var279
/* : String */;
1670 static val
* varonce280
;
1671 val
* var281
/* : String */;
1672 char* var282
/* : NativeString */;
1673 long var283
/* : Int */;
1674 val
* var284
/* : String */;
1675 val
* var285
/* : Array[Object] */;
1676 long var286
/* : Int */;
1677 val
* var287
/* : NativeArray[Object] */;
1678 val
* var288
/* : String */;
1679 static val
* varonce289
;
1680 val
* var290
/* : String */;
1681 char* var291
/* : NativeString */;
1682 long var292
/* : Int */;
1683 val
* var293
/* : String */;
1684 static val
* varonce294
;
1685 val
* var295
/* : String */;
1686 char* var296
/* : NativeString */;
1687 long var297
/* : Int */;
1688 val
* var298
/* : String */;
1689 static val
* varonce299
;
1690 val
* var300
/* : String */;
1691 char* var301
/* : NativeString */;
1692 long var302
/* : Int */;
1693 val
* var303
/* : String */;
1694 static val
* varonce304
;
1695 val
* var305
/* : String */;
1696 char* var306
/* : NativeString */;
1697 long var307
/* : Int */;
1698 val
* var308
/* : String */;
1699 val
* var309
/* : Array[Object] */;
1700 long var310
/* : Int */;
1701 val
* var311
/* : NativeArray[Object] */;
1702 val
* var312
/* : String */;
1703 long var313
/* : Int */;
1704 static val
* varonce314
;
1705 val
* var315
/* : String */;
1706 char* var316
/* : NativeString */;
1707 long var317
/* : Int */;
1708 val
* var318
/* : String */;
1709 val
* var319
/* : Array[Object] */;
1710 long var320
/* : Int */;
1711 val
* var321
/* : NativeArray[Object] */;
1712 val
* var322
/* : Object */;
1713 val
* var323
/* : String */;
1714 static val
* varonce324
;
1715 val
* var325
/* : String */;
1716 char* var326
/* : NativeString */;
1717 long var327
/* : Int */;
1718 val
* var328
/* : String */;
1719 val
* var329
/* : Iterator[nullable Object] */;
1720 short int var330
/* : Bool */;
1721 val
* var331
/* : nullable Object */;
1722 val
* var_msuper
/* var msuper: nullable MClass */;
1723 val
* var332
/* : null */;
1724 short int var333
/* : Bool */;
1725 static val
* varonce334
;
1726 val
* var335
/* : String */;
1727 char* var336
/* : NativeString */;
1728 long var337
/* : Int */;
1729 val
* var338
/* : String */;
1730 val
* var339
/* : nullable Layout[MClass] */;
1731 val
* var340
/* : Map[Object, Int] */;
1732 val
* var341
/* : nullable Object */;
1733 static val
* varonce342
;
1734 val
* var343
/* : String */;
1735 char* var344
/* : NativeString */;
1736 long var345
/* : Int */;
1737 val
* var346
/* : String */;
1738 static val
* varonce347
;
1739 val
* var348
/* : String */;
1740 char* var349
/* : NativeString */;
1741 long var350
/* : Int */;
1742 val
* var351
/* : String */;
1743 val
* var352
/* : Array[Object] */;
1744 long var353
/* : Int */;
1745 val
* var354
/* : NativeArray[Object] */;
1746 val
* var355
/* : String */;
1747 static val
* varonce357
;
1748 val
* var358
/* : String */;
1749 char* var359
/* : NativeString */;
1750 long var360
/* : Int */;
1751 val
* var361
/* : String */;
1752 static val
* varonce362
;
1753 val
* var363
/* : String */;
1754 char* var364
/* : NativeString */;
1755 long var365
/* : Int */;
1756 val
* var366
/* : String */;
1757 val
* var367
/* : String */;
1758 static val
* varonce368
;
1759 val
* var369
/* : String */;
1760 char* var370
/* : NativeString */;
1761 long var371
/* : Int */;
1762 val
* var372
/* : String */;
1763 short int var373
/* : Bool */;
1764 val
* var374
/* : CodeWriter */;
1765 static val
* varonce375
;
1766 val
* var376
/* : String */;
1767 char* var377
/* : NativeString */;
1768 long var378
/* : Int */;
1769 val
* var379
/* : String */;
1770 static val
* varonce380
;
1771 val
* var381
/* : String */;
1772 char* var382
/* : NativeString */;
1773 long var383
/* : Int */;
1774 val
* var384
/* : String */;
1775 val
* var385
/* : Array[Object] */;
1776 long var386
/* : Int */;
1777 val
* var387
/* : NativeArray[Object] */;
1778 val
* var388
/* : String */;
1779 val
* var389
/* : CodeWriter */;
1780 static val
* varonce390
;
1781 val
* var391
/* : String */;
1782 char* var392
/* : NativeString */;
1783 long var393
/* : Int */;
1784 val
* var394
/* : String */;
1785 val
* var395
/* : CodeWriter */;
1786 val
* var396
/* : String */;
1787 static val
* varonce397
;
1788 val
* var398
/* : String */;
1789 char* var399
/* : NativeString */;
1790 long var400
/* : Int */;
1791 val
* var401
/* : String */;
1792 val
* var402
/* : Array[Object] */;
1793 long var403
/* : Int */;
1794 val
* var404
/* : NativeArray[Object] */;
1795 val
* var405
/* : String */;
1796 val
* var406
/* : CodeWriter */;
1797 static val
* varonce407
;
1798 val
* var408
/* : String */;
1799 char* var409
/* : NativeString */;
1800 long var410
/* : Int */;
1801 val
* var411
/* : String */;
1802 val
* var412
/* : CodeWriter */;
1803 static val
* varonce413
;
1804 val
* var414
/* : String */;
1805 char* var415
/* : NativeString */;
1806 long var416
/* : Int */;
1807 val
* var417
/* : String */;
1808 static val
* varonce418
;
1809 val
* var419
/* : String */;
1810 char* var420
/* : NativeString */;
1811 long var421
/* : Int */;
1812 val
* var422
/* : String */;
1813 val
* var423
/* : String */;
1814 static val
* varonce424
;
1815 val
* var425
/* : String */;
1816 char* var426
/* : NativeString */;
1817 long var427
/* : Int */;
1818 val
* var428
/* : String */;
1819 val
* var429
/* : Array[Object] */;
1820 long var430
/* : Int */;
1821 val
* var431
/* : NativeArray[Object] */;
1822 val
* var432
/* : String */;
1823 static val
* varonce433
;
1824 val
* var434
/* : String */;
1825 char* var435
/* : NativeString */;
1826 long var436
/* : Int */;
1827 val
* var437
/* : String */;
1828 static val
* varonce438
;
1829 val
* var439
/* : String */;
1830 char* var440
/* : NativeString */;
1831 long var441
/* : Int */;
1832 val
* var442
/* : String */;
1833 val
* var443
/* : Array[Object] */;
1834 long var444
/* : Int */;
1835 val
* var445
/* : NativeArray[Object] */;
1836 val
* var446
/* : String */;
1837 static val
* varonce447
;
1838 val
* var448
/* : String */;
1839 char* var449
/* : NativeString */;
1840 long var450
/* : Int */;
1841 val
* var451
/* : String */;
1842 val
* var452
/* : String */;
1843 static val
* varonce453
;
1844 val
* var454
/* : String */;
1845 char* var455
/* : NativeString */;
1846 long var456
/* : Int */;
1847 val
* var457
/* : String */;
1848 val
* var458
/* : String */;
1849 static val
* varonce459
;
1850 val
* var460
/* : String */;
1851 char* var461
/* : NativeString */;
1852 long var462
/* : Int */;
1853 val
* var463
/* : String */;
1854 val
* var464
/* : Array[Object] */;
1855 long var465
/* : Int */;
1856 val
* var466
/* : NativeArray[Object] */;
1857 val
* var467
/* : String */;
1858 static val
* varonce468
;
1859 val
* var469
/* : String */;
1860 char* var470
/* : NativeString */;
1861 long var471
/* : Int */;
1862 val
* var472
/* : String */;
1863 static val
* varonce473
;
1864 val
* var474
/* : String */;
1865 char* var475
/* : NativeString */;
1866 long var476
/* : Int */;
1867 val
* var477
/* : String */;
1868 static val
* varonce478
;
1869 val
* var479
/* : String */;
1870 char* var480
/* : NativeString */;
1871 long var481
/* : Int */;
1872 val
* var482
/* : String */;
1873 val
* var483
/* : Array[Object] */;
1874 long var484
/* : Int */;
1875 val
* var485
/* : NativeArray[Object] */;
1876 val
* var486
/* : String */;
1877 static val
* varonce487
;
1878 val
* var488
/* : String */;
1879 char* var489
/* : NativeString */;
1880 long var490
/* : Int */;
1881 val
* var491
/* : String */;
1882 val
* var492
/* : Array[Object] */;
1883 long var493
/* : Int */;
1884 val
* var494
/* : NativeArray[Object] */;
1885 val
* var495
/* : String */;
1886 static val
* varonce496
;
1887 val
* var497
/* : String */;
1888 char* var498
/* : NativeString */;
1889 long var499
/* : Int */;
1890 val
* var500
/* : String */;
1891 static val
* varonce501
;
1892 val
* var502
/* : String */;
1893 char* var503
/* : NativeString */;
1894 long var504
/* : Int */;
1895 val
* var505
/* : String */;
1896 val
* var506
/* : Array[Object] */;
1897 long var507
/* : Int */;
1898 val
* var508
/* : NativeArray[Object] */;
1899 val
* var509
/* : String */;
1900 static val
* varonce510
;
1901 val
* var511
/* : String */;
1902 char* var512
/* : NativeString */;
1903 long var513
/* : Int */;
1904 val
* var514
/* : String */;
1905 static val
* varonce515
;
1906 val
* var516
/* : String */;
1907 char* var517
/* : NativeString */;
1908 long var518
/* : Int */;
1909 val
* var519
/* : String */;
1910 static val
* varonce520
;
1911 val
* var521
/* : String */;
1912 char* var522
/* : NativeString */;
1913 long var523
/* : Int */;
1914 val
* var524
/* : String */;
1915 val
* var525
/* : String */;
1916 static val
* varonce526
;
1917 val
* var527
/* : String */;
1918 char* var528
/* : NativeString */;
1919 long var529
/* : Int */;
1920 val
* var530
/* : String */;
1921 short int var531
/* : Bool */;
1922 val
* var532
/* : CodeWriter */;
1923 static val
* varonce533
;
1924 val
* var534
/* : String */;
1925 char* var535
/* : NativeString */;
1926 long var536
/* : Int */;
1927 val
* var537
/* : String */;
1928 static val
* varonce538
;
1929 val
* var539
/* : String */;
1930 char* var540
/* : NativeString */;
1931 long var541
/* : Int */;
1932 val
* var542
/* : String */;
1933 val
* var543
/* : Array[Object] */;
1934 long var544
/* : Int */;
1935 val
* var545
/* : NativeArray[Object] */;
1936 val
* var546
/* : String */;
1937 val
* var547
/* : CodeWriter */;
1938 static val
* varonce548
;
1939 val
* var549
/* : String */;
1940 char* var550
/* : NativeString */;
1941 long var551
/* : Int */;
1942 val
* var552
/* : String */;
1943 val
* var553
/* : CodeWriter */;
1944 static val
* varonce554
;
1945 val
* var555
/* : String */;
1946 char* var556
/* : NativeString */;
1947 long var557
/* : Int */;
1948 val
* var558
/* : String */;
1949 val
* var559
/* : CodeWriter */;
1950 static val
* varonce560
;
1951 val
* var561
/* : String */;
1952 char* var562
/* : NativeString */;
1953 long var563
/* : Int */;
1954 val
* var564
/* : String */;
1955 static val
* varonce565
;
1956 val
* var566
/* : String */;
1957 char* var567
/* : NativeString */;
1958 long var568
/* : Int */;
1959 val
* var569
/* : String */;
1960 val
* var570
/* : Array[Object] */;
1961 long var571
/* : Int */;
1962 val
* var572
/* : NativeArray[Object] */;
1963 val
* var573
/* : String */;
1964 val
* var574
/* : String */;
1965 static val
* varonce575
;
1966 val
* var576
/* : String */;
1967 char* var577
/* : NativeString */;
1968 long var578
/* : Int */;
1969 val
* var579
/* : String */;
1970 static val
* varonce580
;
1971 val
* var581
/* : String */;
1972 char* var582
/* : NativeString */;
1973 long var583
/* : Int */;
1974 val
* var584
/* : String */;
1975 val
* var585
/* : Array[Object] */;
1976 long var586
/* : Int */;
1977 val
* var587
/* : NativeArray[Object] */;
1978 val
* var588
/* : String */;
1979 static val
* varonce589
;
1980 val
* var590
/* : String */;
1981 char* var591
/* : NativeString */;
1982 long var592
/* : Int */;
1983 val
* var593
/* : String */;
1984 static val
* varonce594
;
1985 val
* var595
/* : String */;
1986 char* var596
/* : NativeString */;
1987 long var597
/* : Int */;
1988 val
* var598
/* : String */;
1989 val
* var599
/* : Array[Object] */;
1990 long var600
/* : Int */;
1991 val
* var601
/* : NativeArray[Object] */;
1992 val
* var602
/* : String */;
1993 val
* var603
/* : String */;
1994 static val
* varonce604
;
1995 val
* var605
/* : String */;
1996 char* var606
/* : NativeString */;
1997 long var607
/* : Int */;
1998 val
* var608
/* : String */;
1999 static val
* varonce609
;
2000 val
* var610
/* : String */;
2001 char* var611
/* : NativeString */;
2002 long var612
/* : Int */;
2003 val
* var613
/* : String */;
2004 val
* var614
/* : Array[Object] */;
2005 long var615
/* : Int */;
2006 val
* var616
/* : NativeArray[Object] */;
2007 val
* var617
/* : String */;
2008 static val
* varonce618
;
2009 val
* var619
/* : String */;
2010 char* var620
/* : NativeString */;
2011 long var621
/* : Int */;
2012 val
* var622
/* : String */;
2013 val
* var623
/* : RuntimeVariable */;
2014 val
* var_res
/* var res: RuntimeVariable */;
2015 short int var624
/* : Bool */;
2016 val
* var625
/* : Array[MType] */;
2017 val
* var626
/* : nullable Object */;
2018 val
* var_mtype_elt
/* var mtype_elt: MType */;
2019 static val
* varonce627
;
2020 val
* var628
/* : String */;
2021 char* var629
/* : NativeString */;
2022 long var630
/* : Int */;
2023 val
* var631
/* : String */;
2024 static val
* varonce632
;
2025 val
* var633
/* : String */;
2026 char* var634
/* : NativeString */;
2027 long var635
/* : Int */;
2028 val
* var636
/* : String */;
2029 val
* var637
/* : String */;
2030 static val
* varonce638
;
2031 val
* var639
/* : String */;
2032 char* var640
/* : NativeString */;
2033 long var641
/* : Int */;
2034 val
* var642
/* : String */;
2035 val
* var643
/* : Array[Object] */;
2036 long var644
/* : Int */;
2037 val
* var645
/* : NativeArray[Object] */;
2038 val
* var646
/* : String */;
2039 static val
* varonce647
;
2040 val
* var648
/* : String */;
2041 char* var649
/* : NativeString */;
2042 long var650
/* : Int */;
2043 val
* var651
/* : String */;
2044 val
* var652
/* : Array[Object] */;
2045 long var653
/* : Int */;
2046 val
* var654
/* : NativeArray[Object] */;
2047 val
* var655
/* : String */;
2048 static val
* varonce656
;
2049 val
* var657
/* : String */;
2050 char* var658
/* : NativeString */;
2051 long var659
/* : Int */;
2052 val
* var660
/* : String */;
2053 static val
* varonce661
;
2054 val
* var662
/* : String */;
2055 char* var663
/* : NativeString */;
2056 long var664
/* : Int */;
2057 val
* var665
/* : String */;
2058 val
* var666
/* : Array[Object] */;
2059 long var667
/* : Int */;
2060 val
* var668
/* : NativeArray[Object] */;
2061 val
* var669
/* : String */;
2062 static val
* varonce670
;
2063 val
* var671
/* : String */;
2064 char* var672
/* : NativeString */;
2065 long var673
/* : Int */;
2066 val
* var674
/* : String */;
2067 static val
* varonce675
;
2068 val
* var676
/* : String */;
2069 char* var677
/* : NativeString */;
2070 long var678
/* : Int */;
2071 val
* var679
/* : String */;
2072 val
* var680
/* : Array[Object] */;
2073 long var681
/* : Int */;
2074 val
* var682
/* : NativeArray[Object] */;
2075 val
* var683
/* : String */;
2076 static val
* varonce684
;
2077 val
* var685
/* : String */;
2078 char* var686
/* : NativeString */;
2079 long var687
/* : Int */;
2080 val
* var688
/* : String */;
2081 static val
* varonce689
;
2082 val
* var690
/* : String */;
2083 char* var691
/* : NativeString */;
2084 long var692
/* : Int */;
2085 val
* var693
/* : String */;
2086 val
* var694
/* : Array[Object] */;
2087 long var695
/* : Int */;
2088 val
* var696
/* : NativeArray[Object] */;
2089 val
* var697
/* : String */;
2090 val
* var698
/* : String */;
2091 static val
* varonce699
;
2092 val
* var700
/* : String */;
2093 char* var701
/* : NativeString */;
2094 long var702
/* : Int */;
2095 val
* var703
/* : String */;
2096 static val
* varonce704
;
2097 val
* var705
/* : String */;
2098 char* var706
/* : NativeString */;
2099 long var707
/* : Int */;
2100 val
* var708
/* : String */;
2101 val
* var709
/* : Array[Object] */;
2102 long var710
/* : Int */;
2103 val
* var711
/* : NativeArray[Object] */;
2104 val
* var712
/* : String */;
2105 static val
* varonce713
;
2106 val
* var714
/* : String */;
2107 char* var715
/* : NativeString */;
2108 long var716
/* : Int */;
2109 val
* var717
/* : String */;
2110 static val
* varonce718
;
2111 val
* var719
/* : String */;
2112 char* var720
/* : NativeString */;
2113 long var721
/* : Int */;
2114 val
* var722
/* : String */;
2115 val
* var723
/* : Array[Object] */;
2116 long var724
/* : Int */;
2117 val
* var725
/* : NativeArray[Object] */;
2118 val
* var726
/* : String */;
2119 val
* var727
/* : String */;
2120 static val
* varonce728
;
2121 val
* var729
/* : String */;
2122 char* var730
/* : NativeString */;
2123 long var731
/* : Int */;
2124 val
* var732
/* : String */;
2125 static val
* varonce733
;
2126 val
* var734
/* : String */;
2127 char* var735
/* : NativeString */;
2128 long var736
/* : Int */;
2129 val
* var737
/* : String */;
2130 val
* var738
/* : Array[Object] */;
2131 long var739
/* : Int */;
2132 val
* var740
/* : NativeArray[Object] */;
2133 val
* var741
/* : String */;
2134 static val
* varonce742
;
2135 val
* var743
/* : String */;
2136 char* var744
/* : NativeString */;
2137 long var745
/* : Int */;
2138 val
* var746
/* : String */;
2139 val
* var747
/* : RuntimeVariable */;
2140 val
* var_res748
/* var res: RuntimeVariable */;
2141 short int var749
/* : Bool */;
2142 static val
* varonce750
;
2143 val
* var751
/* : String */;
2144 char* var752
/* : NativeString */;
2145 long var753
/* : Int */;
2146 val
* var754
/* : String */;
2147 long var755
/* : Int */;
2148 static val
* varonce756
;
2149 val
* var757
/* : String */;
2150 char* var758
/* : NativeString */;
2151 long var759
/* : Int */;
2152 val
* var760
/* : String */;
2153 val
* var761
/* : Array[Object] */;
2154 long var762
/* : Int */;
2155 val
* var763
/* : NativeArray[Object] */;
2156 val
* var764
/* : Object */;
2157 val
* var765
/* : String */;
2158 static val
* varonce766
;
2159 val
* var767
/* : String */;
2160 char* var768
/* : NativeString */;
2161 long var769
/* : Int */;
2162 val
* var770
/* : String */;
2163 val
* var771
/* : Array[Object] */;
2164 long var772
/* : Int */;
2165 val
* var773
/* : NativeArray[Object] */;
2166 val
* var774
/* : String */;
2167 static val
* varonce775
;
2168 val
* var776
/* : String */;
2169 char* var777
/* : NativeString */;
2170 long var778
/* : Int */;
2171 val
* var779
/* : String */;
2172 static val
* varonce780
;
2173 val
* var781
/* : String */;
2174 char* var782
/* : NativeString */;
2175 long var783
/* : Int */;
2176 val
* var784
/* : String */;
2177 val
* var785
/* : Array[Object] */;
2178 long var786
/* : Int */;
2179 val
* var787
/* : NativeArray[Object] */;
2180 val
* var788
/* : String */;
2181 static val
* varonce789
;
2182 val
* var790
/* : String */;
2183 char* var791
/* : NativeString */;
2184 long var792
/* : Int */;
2185 val
* var793
/* : String */;
2186 static val
* varonce794
;
2187 val
* var795
/* : String */;
2188 char* var796
/* : NativeString */;
2189 long var797
/* : Int */;
2190 val
* var798
/* : String */;
2191 val
* var799
/* : Array[Object] */;
2192 long var800
/* : Int */;
2193 val
* var801
/* : NativeArray[Object] */;
2194 val
* var802
/* : String */;
2195 static val
* varonce803
;
2196 val
* var804
/* : String */;
2197 char* var805
/* : NativeString */;
2198 long var806
/* : Int */;
2199 val
* var807
/* : String */;
2201 var
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
2202 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var
) /* bound_mtype on <var:MClassDef>*/;
2204 var2
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
2206 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_tables
]))(self
) /* method_tables on <self:SeparateErasureCompiler>*/;
2207 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var3
, var_mclass
) /* [] on <var3:Map[MClass, Array[nullable MPropDef]]>*/;
2209 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_tables
]))(self
) /* attr_tables on <self:SeparateErasureCompiler>*/;
2210 var6
= ((val
* (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var5
, var_mclass
) /* [] on <var5:Map[MClass, Array[nullable MPropDef]]>*/;
2212 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_tables
]))(self
) /* class_tables on <self:SeparateErasureCompiler>*/;
2213 var8
= ((val
* (*)(val
*, val
*))(var7
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var7
, var_mclass
) /* [] on <var7:Map[MClass, Array[nullable MClass]]>*/;
2214 var_class_table
= var8
;
2215 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateErasureCompiler>*/;
2220 var11
= "/* runtime class ";
2222 var13
= string__NativeString__to_s_with_length(var11
, var12
);
2231 var18
= string__NativeString__to_s_with_length(var16
, var17
);
2235 var19
= NEW_array__Array(&type_array__Arraykernel__Object
);
2236 { /* var19 = array_instance Array[Object] */
2238 var21
= NEW_array__NativeArray(var20
, &type_array__NativeArraykernel__Object
);
2239 ((struct instance_array__NativeArray
*)var21
)->values
[0] = (val
*) var10
;
2240 ((struct instance_array__NativeArray
*)var21
)->values
[1] = (val
*) var_c_name
;
2241 ((struct instance_array__NativeArray
*)var21
)->values
[2] = (val
*) var15
;
2242 ((void (*)(val
*, val
*, long))(var19
->class->vft
[COLOR_array__Array__with_native
]))(var19
, var21
, var20
) /* with_native on <var19:Array[Object]>*/;
2244 var22
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_string__Object__to_s
]))(var19
) /* to_s on <var19:Array[Object]>*/;
2245 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var22
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2251 var27
= string__NativeString__to_s_with_length(var25
, var26
);
2255 var28
= NEW_array__Array(&type_array__Arraykernel__Object
);
2256 { /* var28 = array_instance Array[Object] */
2258 var30
= NEW_array__NativeArray(var29
, &type_array__NativeArraykernel__Object
);
2259 ((struct instance_array__NativeArray
*)var30
)->values
[0] = (val
*) var24
;
2260 ((struct instance_array__NativeArray
*)var30
)->values
[1] = (val
*) var_c_name
;
2261 ((void (*)(val
*, val
*, long))(var28
->class->vft
[COLOR_array__Array__with_native
]))(var28
, var30
, var29
) /* with_native on <var28:Array[Object]>*/;
2263 var31
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_string__Object__to_s
]))(var28
) /* to_s on <var28:Array[Object]>*/;
2267 var34
= "extern const struct class class_";
2269 var36
= string__NativeString__to_s_with_length(var34
, var35
);
2278 var41
= string__NativeString__to_s_with_length(var39
, var40
);
2282 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
2283 { /* var42 = array_instance Array[Object] */
2285 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
2286 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var33
;
2287 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_c_name
;
2288 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var38
;
2289 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
2291 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
2292 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var31
, var45
) /* provide_declaration on <self:SeparateErasureCompiler>*/;
2296 var48
= "extern const struct type_table type_table_";
2298 var50
= string__NativeString__to_s_with_length(var48
, var49
);
2307 var55
= string__NativeString__to_s_with_length(var53
, var54
);
2311 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
2312 { /* var56 = array_instance Array[Object] */
2314 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
2315 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var47
;
2316 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var_c_name
;
2317 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var52
;
2318 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
2320 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
2321 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var59
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2325 var62
= "const struct class class_";
2327 var64
= string__NativeString__to_s_with_length(var62
, var63
);
2336 var69
= string__NativeString__to_s_with_length(var67
, var68
);
2340 var70
= NEW_array__Array(&type_array__Arraykernel__Object
);
2341 { /* var70 = array_instance Array[Object] */
2343 var72
= NEW_array__NativeArray(var71
, &type_array__NativeArraykernel__Object
);
2344 ((struct instance_array__NativeArray
*)var72
)->values
[0] = (val
*) var61
;
2345 ((struct instance_array__NativeArray
*)var72
)->values
[1] = (val
*) var_c_name
;
2346 ((struct instance_array__NativeArray
*)var72
)->values
[2] = (val
*) var66
;
2347 ((void (*)(val
*, val
*, long))(var70
->class->vft
[COLOR_array__Array__with_native
]))(var70
, var72
, var71
) /* with_native on <var70:Array[Object]>*/;
2349 var73
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_string__Object__to_s
]))(var70
) /* to_s on <var70:Array[Object]>*/;
2350 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var73
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2351 var74
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout
]))(self
) /* class_layout on <self:SeparateErasureCompiler>*/;
2352 if (var74
== NULL
) {
2353 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2354 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 235);
2357 var75
= ((val
* (*)(val
*))(var74
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var74
) /* ids on <var74:nullable Layout[MClass]>*/;
2359 var76
= ((val
* (*)(val
*, val
*))(var75
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var75
, var_mclass
) /* [] on <var75:Map[Object, Int](Map[MClass, Int])>*/;
2365 var81
= string__NativeString__to_s_with_length(var79
, var80
);
2369 var82
= NEW_array__Array(&type_array__Arraykernel__Object
);
2370 { /* var82 = array_instance Array[Object] */
2372 var84
= NEW_array__NativeArray(var83
, &type_array__NativeArraykernel__Object
);
2373 ((struct instance_array__NativeArray
*)var84
)->values
[0] = (val
*) var76
;
2374 ((struct instance_array__NativeArray
*)var84
)->values
[1] = (val
*) var78
;
2375 ((void (*)(val
*, val
*, long))(var82
->class->vft
[COLOR_array__Array__with_native
]))(var82
, var84
, var83
) /* with_native on <var82:Array[Object]>*/;
2377 var85
= ((val
* (*)(val
*))(var82
->class->vft
[COLOR_string__Object__to_s
]))(var82
) /* to_s on <var82:Array[Object]>*/;
2378 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var85
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2384 var90
= string__NativeString__to_s_with_length(var88
, var89
);
2388 var91
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__name
]))(var_mclass
) /* name on <var_mclass:MClass>*/;
2392 var94
= "\", /* class_name_string */";
2394 var96
= string__NativeString__to_s_with_length(var94
, var95
);
2398 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
2399 { /* var97 = array_instance Array[Object] */
2401 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
2402 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var87
;
2403 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var91
;
2404 ((struct instance_array__NativeArray
*)var99
)->values
[2] = (val
*) var93
;
2405 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
2407 var100
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
2408 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var100
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2409 var101
= ((long (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kind_of
]))(self
, var_mclass
) /* box_kind_of on <self:SeparateErasureCompiler>*/;
2411 var103
= varonce102
;
2413 var104
= ", /* box_kind */";
2415 var106
= string__NativeString__to_s_with_length(var104
, var105
);
2417 varonce102
= var103
;
2419 var107
= NEW_array__Array(&type_array__Arraykernel__Object
);
2420 { /* var107 = array_instance Array[Object] */
2422 var109
= NEW_array__NativeArray(var108
, &type_array__NativeArraykernel__Object
);
2423 var110
= BOX_kernel__Int(var101
); /* autobox from Int to Object */
2424 ((struct instance_array__NativeArray
*)var109
)->values
[0] = (val
*) var110
;
2425 ((struct instance_array__NativeArray
*)var109
)->values
[1] = (val
*) var103
;
2426 ((void (*)(val
*, val
*, long))(var107
->class->vft
[COLOR_array__Array__with_native
]))(var107
, var109
, var108
) /* with_native on <var107:Array[Object]>*/;
2428 var111
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_string__Object__to_s
]))(var107
) /* to_s on <var107:Array[Object]>*/;
2429 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var111
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2430 var112
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout
]))(self
) /* class_layout on <self:SeparateErasureCompiler>*/;
2431 var_layout
= var112
;
2432 /* <var_layout:nullable Layout[MClass]> isa PHLayout[MClass, MClass] */
2433 cltype
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.color
;
2434 idtype
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.id
;
2435 if(var_layout
== NULL
) {
2438 if(cltype
>= var_layout
->type
->table_size
) {
2441 var113
= var_layout
->type
->type_table
[cltype
] == idtype
;
2445 var114
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__masks
]))(var_layout
) /* masks on <var_layout:nullable Layout[MClass](PHLayout[MClass, MClass])>*/;
2446 var115
= ((val
* (*)(val
*, val
*))(var114
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var114
, var_mclass
) /* [] on <var114:Map[Object, Int](Map[MClass, Int])>*/;
2448 var117
= varonce116
;
2452 var120
= string__NativeString__to_s_with_length(var118
, var119
);
2454 varonce116
= var117
;
2456 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
2457 { /* var121 = array_instance Array[Object] */
2459 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
2460 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var115
;
2461 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var117
;
2462 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
2464 var124
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
2465 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var124
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2467 if (var_layout
== NULL
) {
2468 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2469 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 242);
2472 var125
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MClass]>*/;
2474 var126
= ((val
* (*)(val
*, val
*))(var125
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var125
, var_mclass
) /* [] on <var125:Map[Object, Int](Map[MClass, Int])>*/;
2476 var128
= varonce127
;
2480 var131
= string__NativeString__to_s_with_length(var129
, var130
);
2482 varonce127
= var128
;
2484 var132
= NEW_array__Array(&type_array__Arraykernel__Object
);
2485 { /* var132 = array_instance Array[Object] */
2487 var134
= NEW_array__NativeArray(var133
, &type_array__NativeArraykernel__Object
);
2488 ((struct instance_array__NativeArray
*)var134
)->values
[0] = (val
*) var126
;
2489 ((struct instance_array__NativeArray
*)var134
)->values
[1] = (val
*) var128
;
2490 ((void (*)(val
*, val
*, long))(var132
->class->vft
[COLOR_array__Array__with_native
]))(var132
, var134
, var133
) /* with_native on <var132:Array[Object]>*/;
2492 var135
= ((val
* (*)(val
*))(var132
->class->vft
[COLOR_string__Object__to_s
]))(var132
) /* to_s on <var132:Array[Object]>*/;
2493 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var135
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2495 var136
= ((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>*/;
2498 var138
= varonce137
;
2500 var139
= "vts_table_";
2502 var141
= string__NativeString__to_s_with_length(var139
, var140
);
2504 varonce137
= var138
;
2506 var142
= NEW_array__Array(&type_array__Arraykernel__Object
);
2507 { /* var142 = array_instance Array[Object] */
2509 var144
= NEW_array__NativeArray(var143
, &type_array__NativeArraykernel__Object
);
2510 ((struct instance_array__NativeArray
*)var144
)->values
[0] = (val
*) var138
;
2511 ((struct instance_array__NativeArray
*)var144
)->values
[1] = (val
*) var_c_name
;
2512 ((void (*)(val
*, val
*, long))(var142
->class->vft
[COLOR_array__Array__with_native
]))(var142
, var144
, var143
) /* with_native on <var142:Array[Object]>*/;
2514 var145
= ((val
* (*)(val
*))(var142
->class->vft
[COLOR_string__Object__to_s
]))(var142
) /* to_s on <var142:Array[Object]>*/;
2515 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var145
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
2517 var147
= varonce146
;
2519 var148
= "&vts_table_";
2521 var150
= string__NativeString__to_s_with_length(var148
, var149
);
2523 varonce146
= var147
;
2526 var152
= varonce151
;
2530 var155
= string__NativeString__to_s_with_length(var153
, var154
);
2532 varonce151
= var152
;
2534 var156
= NEW_array__Array(&type_array__Arraykernel__Object
);
2535 { /* var156 = array_instance Array[Object] */
2537 var158
= NEW_array__NativeArray(var157
, &type_array__NativeArraykernel__Object
);
2538 ((struct instance_array__NativeArray
*)var158
)->values
[0] = (val
*) var147
;
2539 ((struct instance_array__NativeArray
*)var158
)->values
[1] = (val
*) var_c_name
;
2540 ((struct instance_array__NativeArray
*)var158
)->values
[2] = (val
*) var152
;
2541 ((void (*)(val
*, val
*, long))(var156
->class->vft
[COLOR_array__Array__with_native
]))(var156
, var158
, var157
) /* with_native on <var156:Array[Object]>*/;
2543 var159
= ((val
* (*)(val
*))(var156
->class->vft
[COLOR_string__Object__to_s
]))(var156
) /* to_s on <var156:Array[Object]>*/;
2544 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var159
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2547 var161
= varonce160
;
2551 var164
= string__NativeString__to_s_with_length(var162
, var163
);
2553 varonce160
= var161
;
2555 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var161
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2558 var166
= varonce165
;
2560 var167
= "&type_table_";
2562 var169
= string__NativeString__to_s_with_length(var167
, var168
);
2564 varonce165
= var166
;
2567 var171
= varonce170
;
2571 var174
= string__NativeString__to_s_with_length(var172
, var173
);
2573 varonce170
= var171
;
2575 var175
= NEW_array__Array(&type_array__Arraykernel__Object
);
2576 { /* var175 = array_instance Array[Object] */
2578 var177
= NEW_array__NativeArray(var176
, &type_array__NativeArraykernel__Object
);
2579 ((struct instance_array__NativeArray
*)var177
)->values
[0] = (val
*) var166
;
2580 ((struct instance_array__NativeArray
*)var177
)->values
[1] = (val
*) var_c_name
;
2581 ((struct instance_array__NativeArray
*)var177
)->values
[2] = (val
*) var171
;
2582 ((void (*)(val
*, val
*, long))(var175
->class->vft
[COLOR_array__Array__with_native
]))(var175
, var177
, var176
) /* with_native on <var175:Array[Object]>*/;
2584 var178
= ((val
* (*)(val
*))(var175
->class->vft
[COLOR_string__Object__to_s
]))(var175
) /* to_s on <var175:Array[Object]>*/;
2585 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var178
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2587 var180
= varonce179
;
2591 var183
= string__NativeString__to_s_with_length(var181
, var182
);
2593 varonce179
= var180
;
2595 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var180
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2596 var184
= NEW_range__Range(&type_range__Rangekernel__Int
);
2598 var186
= ((long (*)(val
*))(var_vft
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_vft
) /* length on <var_vft:Array[nullable MPropDef]>*/;
2599 var187
= BOX_kernel__Int(var185
); /* autobox from Int to Discrete */
2600 var188
= BOX_kernel__Int(var186
); /* autobox from Int to Discrete */
2601 ((void (*)(val
*, val
*, val
*))(var184
->class->vft
[COLOR_range__Range__without_last
]))(var184
, var187
, var188
) /* without_last on <var184:Range[Int]>*/;
2602 var189
= ((val
* (*)(val
*))(var184
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var184
) /* iterator on <var184:Range[Int]>*/;
2604 var190
= ((short int (*)(val
*))(var189
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var189
) /* is_ok on <var189:Iterator[nullable Object]>*/;
2606 var191
= ((val
* (*)(val
*))(var189
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var189
) /* item on <var189:Iterator[nullable Object]>*/;
2607 var192
= ((struct instance_kernel__Int
*)var191
)->value
; /* autounbox from nullable Object to Int */;
2609 var193
= ((val
* (*)(val
*, long))(var_vft
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_vft
, var_i
) /* [] on <var_vft:Array[nullable MPropDef]>*/;
2610 var_mpropdef
= var193
;
2612 if (var_mpropdef
== NULL
) {
2613 var195
= 1; /* is null */
2615 var195
= 0; /* arg is null but recv is not */
2619 var197
= varonce196
;
2621 var198
= "NULL, /* empty */";
2623 var200
= string__NativeString__to_s_with_length(var198
, var199
);
2625 varonce196
= var197
;
2627 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var197
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2634 var203
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
2635 var204
= ((val
* (*)(val
*))(var203
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var203
) /* bound_mtype on <var203:MClassDef>*/;
2636 var205
= ((val
* (*)(val
*))(var204
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var204
) /* ctype on <var204:MClassType>*/;
2638 var207
= varonce206
;
2642 var210
= string__NativeString__to_s_with_length(var208
, var209
);
2644 varonce206
= var207
;
2646 var211
= ((short int (*)(val
*, val
*))(var205
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var205
, var207
) /* != on <var205:String>*/;
2651 var213
= varonce212
;
2653 var214
= "VIRTUAL_";
2655 var216
= string__NativeString__to_s_with_length(var214
, var215
);
2657 varonce212
= var213
;
2659 var217
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var_mpropdef
) /* c_name on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
2660 var218
= NEW_array__Array(&type_array__Arraykernel__Object
);
2661 { /* var218 = array_instance Array[Object] */
2663 var220
= NEW_array__NativeArray(var219
, &type_array__NativeArraykernel__Object
);
2664 ((struct instance_array__NativeArray
*)var220
)->values
[0] = (val
*) var213
;
2665 ((struct instance_array__NativeArray
*)var220
)->values
[1] = (val
*) var217
;
2666 ((void (*)(val
*, val
*, long))(var218
->class->vft
[COLOR_array__Array__with_native
]))(var218
, var220
, var219
) /* with_native on <var218:Array[Object]>*/;
2668 var221
= ((val
* (*)(val
*))(var218
->class->vft
[COLOR_string__Object__to_s
]))(var218
) /* to_s on <var218:Array[Object]>*/;
2669 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var221
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
2671 var223
= varonce222
;
2673 var224
= "(nitmethod_t)VIRTUAL_";
2675 var226
= string__NativeString__to_s_with_length(var224
, var225
);
2677 varonce222
= var223
;
2679 var227
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var_mpropdef
) /* c_name on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
2681 var229
= varonce228
;
2683 var230
= ", /* pointer to ";
2685 var232
= string__NativeString__to_s_with_length(var230
, var231
);
2687 varonce228
= var229
;
2689 var233
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var_mclass
) /* intro_mmodule on <var_mclass:MClass>*/;
2691 var235
= varonce234
;
2695 var238
= string__NativeString__to_s_with_length(var236
, var237
);
2697 varonce234
= var235
;
2700 var240
= varonce239
;
2704 var243
= string__NativeString__to_s_with_length(var241
, var242
);
2706 varonce239
= var240
;
2709 var245
= varonce244
;
2713 var248
= string__NativeString__to_s_with_length(var246
, var247
);
2715 varonce244
= var245
;
2717 var249
= NEW_array__Array(&type_array__Arraykernel__Object
);
2718 { /* var249 = array_instance Array[Object] */
2720 var251
= NEW_array__NativeArray(var250
, &type_array__NativeArraykernel__Object
);
2721 ((struct instance_array__NativeArray
*)var251
)->values
[0] = (val
*) var223
;
2722 ((struct instance_array__NativeArray
*)var251
)->values
[1] = (val
*) var227
;
2723 ((struct instance_array__NativeArray
*)var251
)->values
[2] = (val
*) var229
;
2724 ((struct instance_array__NativeArray
*)var251
)->values
[3] = (val
*) var233
;
2725 ((struct instance_array__NativeArray
*)var251
)->values
[4] = (val
*) var235
;
2726 ((struct instance_array__NativeArray
*)var251
)->values
[5] = (val
*) var_mclass
;
2727 ((struct instance_array__NativeArray
*)var251
)->values
[6] = (val
*) var240
;
2728 ((struct instance_array__NativeArray
*)var251
)->values
[7] = (val
*) var_mpropdef
;
2729 ((struct instance_array__NativeArray
*)var251
)->values
[8] = (val
*) var245
;
2730 ((void (*)(val
*, val
*, long))(var249
->class->vft
[COLOR_array__Array__with_native
]))(var249
, var251
, var250
) /* with_native on <var249:Array[Object]>*/;
2732 var252
= ((val
* (*)(val
*))(var249
->class->vft
[COLOR_string__Object__to_s
]))(var249
) /* to_s on <var249:Array[Object]>*/;
2733 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var252
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2735 var253
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var_mpropdef
) /* c_name on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
2736 var254
= NEW_array__Array(&type_array__Arraykernel__Object
);
2737 { /* var254 = array_instance Array[Object] */
2739 var256
= NEW_array__NativeArray(var255
, &type_array__NativeArraykernel__Object
);
2740 ((struct instance_array__NativeArray
*)var256
)->values
[0] = (val
*) var253
;
2741 ((void (*)(val
*, val
*, long))(var254
->class->vft
[COLOR_array__Array__with_native
]))(var254
, var256
, var255
) /* with_native on <var254:Array[Object]>*/;
2743 var257
= ((val
* (*)(val
*))(var254
->class->vft
[COLOR_string__Object__to_s
]))(var254
) /* to_s on <var254:Array[Object]>*/;
2744 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var257
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
2746 var259
= varonce258
;
2748 var260
= "(nitmethod_t)";
2750 var262
= string__NativeString__to_s_with_length(var260
, var261
);
2752 varonce258
= var259
;
2754 var263
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var_mpropdef
) /* c_name on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
2756 var265
= varonce264
;
2758 var266
= ", /* pointer to ";
2760 var268
= string__NativeString__to_s_with_length(var266
, var267
);
2762 varonce264
= var265
;
2764 var269
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var_mclass
) /* intro_mmodule on <var_mclass:MClass>*/;
2766 var271
= varonce270
;
2770 var274
= string__NativeString__to_s_with_length(var272
, var273
);
2772 varonce270
= var271
;
2775 var276
= varonce275
;
2779 var279
= string__NativeString__to_s_with_length(var277
, var278
);
2781 varonce275
= var276
;
2784 var281
= varonce280
;
2788 var284
= string__NativeString__to_s_with_length(var282
, var283
);
2790 varonce280
= var281
;
2792 var285
= NEW_array__Array(&type_array__Arraykernel__Object
);
2793 { /* var285 = array_instance Array[Object] */
2795 var287
= NEW_array__NativeArray(var286
, &type_array__NativeArraykernel__Object
);
2796 ((struct instance_array__NativeArray
*)var287
)->values
[0] = (val
*) var259
;
2797 ((struct instance_array__NativeArray
*)var287
)->values
[1] = (val
*) var263
;
2798 ((struct instance_array__NativeArray
*)var287
)->values
[2] = (val
*) var265
;
2799 ((struct instance_array__NativeArray
*)var287
)->values
[3] = (val
*) var269
;
2800 ((struct instance_array__NativeArray
*)var287
)->values
[4] = (val
*) var271
;
2801 ((struct instance_array__NativeArray
*)var287
)->values
[5] = (val
*) var_mclass
;
2802 ((struct instance_array__NativeArray
*)var287
)->values
[6] = (val
*) var276
;
2803 ((struct instance_array__NativeArray
*)var287
)->values
[7] = (val
*) var_mpropdef
;
2804 ((struct instance_array__NativeArray
*)var287
)->values
[8] = (val
*) var281
;
2805 ((void (*)(val
*, val
*, long))(var285
->class->vft
[COLOR_array__Array__with_native
]))(var285
, var287
, var286
) /* with_native on <var285:Array[Object]>*/;
2807 var288
= ((val
* (*)(val
*))(var285
->class->vft
[COLOR_string__Object__to_s
]))(var285
) /* to_s on <var285:Array[Object]>*/;
2808 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var288
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2811 CONTINUE_label
: (void)0;
2812 ((void (*)(val
*))(var189
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var189
) /* next on <var189:Iterator[nullable Object]>*/;
2814 BREAK_label
: (void)0;
2816 var290
= varonce289
;
2820 var293
= string__NativeString__to_s_with_length(var291
, var292
);
2822 varonce289
= var290
;
2824 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var290
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2826 var295
= varonce294
;
2830 var298
= string__NativeString__to_s_with_length(var296
, var297
);
2832 varonce294
= var295
;
2834 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var295
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2836 var300
= varonce299
;
2838 var301
= "const struct type_table type_table_";
2840 var303
= string__NativeString__to_s_with_length(var301
, var302
);
2842 varonce299
= var300
;
2845 var305
= varonce304
;
2849 var308
= string__NativeString__to_s_with_length(var306
, var307
);
2851 varonce304
= var305
;
2853 var309
= NEW_array__Array(&type_array__Arraykernel__Object
);
2854 { /* var309 = array_instance Array[Object] */
2856 var311
= NEW_array__NativeArray(var310
, &type_array__NativeArraykernel__Object
);
2857 ((struct instance_array__NativeArray
*)var311
)->values
[0] = (val
*) var300
;
2858 ((struct instance_array__NativeArray
*)var311
)->values
[1] = (val
*) var_c_name
;
2859 ((struct instance_array__NativeArray
*)var311
)->values
[2] = (val
*) var305
;
2860 ((void (*)(val
*, val
*, long))(var309
->class->vft
[COLOR_array__Array__with_native
]))(var309
, var311
, var310
) /* with_native on <var309:Array[Object]>*/;
2862 var312
= ((val
* (*)(val
*))(var309
->class->vft
[COLOR_string__Object__to_s
]))(var309
) /* to_s on <var309:Array[Object]>*/;
2863 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var312
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2864 var313
= ((long (*)(val
*))(var_class_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_class_table
) /* length on <var_class_table:Array[nullable MClass]>*/;
2866 var315
= varonce314
;
2870 var318
= string__NativeString__to_s_with_length(var316
, var317
);
2872 varonce314
= var315
;
2874 var319
= NEW_array__Array(&type_array__Arraykernel__Object
);
2875 { /* var319 = array_instance Array[Object] */
2877 var321
= NEW_array__NativeArray(var320
, &type_array__NativeArraykernel__Object
);
2878 var322
= BOX_kernel__Int(var313
); /* autobox from Int to Object */
2879 ((struct instance_array__NativeArray
*)var321
)->values
[0] = (val
*) var322
;
2880 ((struct instance_array__NativeArray
*)var321
)->values
[1] = (val
*) var315
;
2881 ((void (*)(val
*, val
*, long))(var319
->class->vft
[COLOR_array__Array__with_native
]))(var319
, var321
, var320
) /* with_native on <var319:Array[Object]>*/;
2883 var323
= ((val
* (*)(val
*))(var319
->class->vft
[COLOR_string__Object__to_s
]))(var319
) /* to_s on <var319:Array[Object]>*/;
2884 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var323
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2886 var325
= varonce324
;
2890 var328
= string__NativeString__to_s_with_length(var326
, var327
);
2892 varonce324
= var325
;
2894 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var325
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2895 var329
= ((val
* (*)(val
*))(var_class_table
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_class_table
) /* iterator on <var_class_table:Array[nullable MClass]>*/;
2897 var330
= ((short int (*)(val
*))(var329
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var329
) /* is_ok on <var329:Iterator[nullable Object]>*/;
2899 var331
= ((val
* (*)(val
*))(var329
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var329
) /* item on <var329:Iterator[nullable Object]>*/;
2900 var_msuper
= var331
;
2902 if (var_msuper
== NULL
) {
2903 var333
= 1; /* is null */
2905 var333
= 0; /* arg is null but recv is not */
2909 var335
= varonce334
;
2911 var336
= "-1, /* empty */";
2913 var338
= string__NativeString__to_s_with_length(var336
, var337
);
2915 varonce334
= var335
;
2917 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var335
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2919 var339
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout
]))(self
) /* class_layout on <self:SeparateErasureCompiler>*/;
2920 if (var339
== NULL
) {
2921 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2922 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 278);
2925 var340
= ((val
* (*)(val
*))(var339
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var339
) /* ids on <var339:nullable Layout[MClass]>*/;
2927 var341
= ((val
* (*)(val
*, val
*))(var340
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var340
, var_msuper
) /* [] on <var340:Map[Object, Int](Map[MClass, Int])>*/;
2929 var343
= varonce342
;
2933 var346
= string__NativeString__to_s_with_length(var344
, var345
);
2935 varonce342
= var343
;
2938 var348
= varonce347
;
2942 var351
= string__NativeString__to_s_with_length(var349
, var350
);
2944 varonce347
= var348
;
2946 var352
= NEW_array__Array(&type_array__Arraykernel__Object
);
2947 { /* var352 = array_instance Array[Object] */
2949 var354
= NEW_array__NativeArray(var353
, &type_array__NativeArraykernel__Object
);
2950 ((struct instance_array__NativeArray
*)var354
)->values
[0] = (val
*) var341
;
2951 ((struct instance_array__NativeArray
*)var354
)->values
[1] = (val
*) var343
;
2952 ((struct instance_array__NativeArray
*)var354
)->values
[2] = (val
*) var_msuper
;
2953 ((struct instance_array__NativeArray
*)var354
)->values
[3] = (val
*) var348
;
2954 ((void (*)(val
*, val
*, long))(var352
->class->vft
[COLOR_array__Array__with_native
]))(var352
, var354
, var353
) /* with_native on <var352:Array[Object]>*/;
2956 var355
= ((val
* (*)(val
*))(var352
->class->vft
[COLOR_string__Object__to_s
]))(var352
) /* to_s on <var352:Array[Object]>*/;
2957 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var355
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2959 CONTINUE_label356
: (void)0;
2960 ((void (*)(val
*))(var329
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var329
) /* next on <var329:Iterator[nullable Object]>*/;
2962 BREAK_label356
: (void)0;
2964 var358
= varonce357
;
2968 var361
= string__NativeString__to_s_with_length(var359
, var360
);
2970 varonce357
= var358
;
2972 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var358
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2974 var363
= varonce362
;
2978 var366
= string__NativeString__to_s_with_length(var364
, var365
);
2980 varonce362
= var363
;
2982 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var363
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2983 var367
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
2985 var369
= varonce368
;
2989 var372
= string__NativeString__to_s_with_length(var370
, var371
);
2991 varonce368
= var369
;
2993 var373
= ((short int (*)(val
*, val
*))(var367
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var367
, var369
) /* != on <var367:String>*/;
2995 var374
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
2997 var376
= varonce375
;
2999 var377
= "struct instance_";
3001 var379
= string__NativeString__to_s_with_length(var377
, var378
);
3003 varonce375
= var376
;
3006 var381
= varonce380
;
3010 var384
= string__NativeString__to_s_with_length(var382
, var383
);
3012 varonce380
= var381
;
3014 var385
= NEW_array__Array(&type_array__Arraykernel__Object
);
3015 { /* var385 = array_instance Array[Object] */
3017 var387
= NEW_array__NativeArray(var386
, &type_array__NativeArraykernel__Object
);
3018 ((struct instance_array__NativeArray
*)var387
)->values
[0] = (val
*) var376
;
3019 ((struct instance_array__NativeArray
*)var387
)->values
[1] = (val
*) var_c_name
;
3020 ((struct instance_array__NativeArray
*)var387
)->values
[2] = (val
*) var381
;
3021 ((void (*)(val
*, val
*, long))(var385
->class->vft
[COLOR_array__Array__with_native
]))(var385
, var387
, var386
) /* with_native on <var385:Array[Object]>*/;
3023 var388
= ((val
* (*)(val
*))(var385
->class->vft
[COLOR_string__Object__to_s
]))(var385
) /* to_s on <var385:Array[Object]>*/;
3024 ((void (*)(val
*, val
*))(var374
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var374
, var388
) /* add_decl on <var374:CodeWriter>*/;
3025 var389
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3027 var391
= varonce390
;
3029 var392
= "const struct class *class;";
3031 var394
= string__NativeString__to_s_with_length(var392
, var393
);
3033 varonce390
= var391
;
3035 ((void (*)(val
*, val
*))(var389
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var389
, var391
) /* add_decl on <var389:CodeWriter>*/;
3036 var395
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3037 var396
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3039 var398
= varonce397
;
3043 var401
= string__NativeString__to_s_with_length(var399
, var400
);
3045 varonce397
= var398
;
3047 var402
= NEW_array__Array(&type_array__Arraykernel__Object
);
3048 { /* var402 = array_instance Array[Object] */
3050 var404
= NEW_array__NativeArray(var403
, &type_array__NativeArraykernel__Object
);
3051 ((struct instance_array__NativeArray
*)var404
)->values
[0] = (val
*) var396
;
3052 ((struct instance_array__NativeArray
*)var404
)->values
[1] = (val
*) var398
;
3053 ((void (*)(val
*, val
*, long))(var402
->class->vft
[COLOR_array__Array__with_native
]))(var402
, var404
, var403
) /* with_native on <var402:Array[Object]>*/;
3055 var405
= ((val
* (*)(val
*))(var402
->class->vft
[COLOR_string__Object__to_s
]))(var402
) /* to_s on <var402:Array[Object]>*/;
3056 ((void (*)(val
*, val
*))(var395
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var395
, var405
) /* add_decl on <var395:CodeWriter>*/;
3057 var406
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3059 var408
= varonce407
;
3063 var411
= string__NativeString__to_s_with_length(var409
, var410
);
3065 varonce407
= var408
;
3067 ((void (*)(val
*, val
*))(var406
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var406
, var408
) /* add_decl on <var406:CodeWriter>*/;
3068 var412
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3070 var414
= varonce413
;
3072 var415
= "val* BOX_";
3074 var417
= string__NativeString__to_s_with_length(var415
, var416
);
3076 varonce413
= var414
;
3079 var419
= varonce418
;
3083 var422
= string__NativeString__to_s_with_length(var420
, var421
);
3085 varonce418
= var419
;
3087 var423
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3089 var425
= varonce424
;
3093 var428
= string__NativeString__to_s_with_length(var426
, var427
);
3095 varonce424
= var425
;
3097 var429
= NEW_array__Array(&type_array__Arraykernel__Object
);
3098 { /* var429 = array_instance Array[Object] */
3100 var431
= NEW_array__NativeArray(var430
, &type_array__NativeArraykernel__Object
);
3101 ((struct instance_array__NativeArray
*)var431
)->values
[0] = (val
*) var414
;
3102 ((struct instance_array__NativeArray
*)var431
)->values
[1] = (val
*) var_c_name
;
3103 ((struct instance_array__NativeArray
*)var431
)->values
[2] = (val
*) var419
;
3104 ((struct instance_array__NativeArray
*)var431
)->values
[3] = (val
*) var423
;
3105 ((struct instance_array__NativeArray
*)var431
)->values
[4] = (val
*) var425
;
3106 ((void (*)(val
*, val
*, long))(var429
->class->vft
[COLOR_array__Array__with_native
]))(var429
, var431
, var430
) /* with_native on <var429:Array[Object]>*/;
3108 var432
= ((val
* (*)(val
*))(var429
->class->vft
[COLOR_string__Object__to_s
]))(var429
) /* to_s on <var429:Array[Object]>*/;
3109 ((void (*)(val
*, val
*))(var412
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var412
, var432
) /* add_decl on <var412:CodeWriter>*/;
3111 var434
= varonce433
;
3113 var435
= "/* allocate ";
3115 var437
= string__NativeString__to_s_with_length(var435
, var436
);
3117 varonce433
= var434
;
3120 var439
= varonce438
;
3124 var442
= string__NativeString__to_s_with_length(var440
, var441
);
3126 varonce438
= var439
;
3128 var443
= NEW_array__Array(&type_array__Arraykernel__Object
);
3129 { /* var443 = array_instance Array[Object] */
3131 var445
= NEW_array__NativeArray(var444
, &type_array__NativeArraykernel__Object
);
3132 ((struct instance_array__NativeArray
*)var445
)->values
[0] = (val
*) var434
;
3133 ((struct instance_array__NativeArray
*)var445
)->values
[1] = (val
*) var_mtype
;
3134 ((struct instance_array__NativeArray
*)var445
)->values
[2] = (val
*) var439
;
3135 ((void (*)(val
*, val
*, long))(var443
->class->vft
[COLOR_array__Array__with_native
]))(var443
, var445
, var444
) /* with_native on <var443:Array[Object]>*/;
3137 var446
= ((val
* (*)(val
*))(var443
->class->vft
[COLOR_string__Object__to_s
]))(var443
) /* to_s on <var443:Array[Object]>*/;
3138 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var446
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3140 var448
= varonce447
;
3142 var449
= "val* BOX_";
3144 var451
= string__NativeString__to_s_with_length(var449
, var450
);
3146 varonce447
= var448
;
3148 var452
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
3150 var454
= varonce453
;
3154 var457
= string__NativeString__to_s_with_length(var455
, var456
);
3156 varonce453
= var454
;
3158 var458
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3160 var460
= varonce459
;
3162 var461
= " value) {";
3164 var463
= string__NativeString__to_s_with_length(var461
, var462
);
3166 varonce459
= var460
;
3168 var464
= NEW_array__Array(&type_array__Arraykernel__Object
);
3169 { /* var464 = array_instance Array[Object] */
3171 var466
= NEW_array__NativeArray(var465
, &type_array__NativeArraykernel__Object
);
3172 ((struct instance_array__NativeArray
*)var466
)->values
[0] = (val
*) var448
;
3173 ((struct instance_array__NativeArray
*)var466
)->values
[1] = (val
*) var452
;
3174 ((struct instance_array__NativeArray
*)var466
)->values
[2] = (val
*) var454
;
3175 ((struct instance_array__NativeArray
*)var466
)->values
[3] = (val
*) var458
;
3176 ((struct instance_array__NativeArray
*)var466
)->values
[4] = (val
*) var460
;
3177 ((void (*)(val
*, val
*, long))(var464
->class->vft
[COLOR_array__Array__with_native
]))(var464
, var466
, var465
) /* with_native on <var464:Array[Object]>*/;
3179 var467
= ((val
* (*)(val
*))(var464
->class->vft
[COLOR_string__Object__to_s
]))(var464
) /* to_s on <var464:Array[Object]>*/;
3180 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var467
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3182 var469
= varonce468
;
3184 var470
= "struct instance_";
3186 var472
= string__NativeString__to_s_with_length(var470
, var471
);
3188 varonce468
= var469
;
3191 var474
= varonce473
;
3193 var475
= "*res = nit_alloc(sizeof(struct instance_";
3195 var477
= string__NativeString__to_s_with_length(var475
, var476
);
3197 varonce473
= var474
;
3200 var479
= varonce478
;
3204 var482
= string__NativeString__to_s_with_length(var480
, var481
);
3206 varonce478
= var479
;
3208 var483
= NEW_array__Array(&type_array__Arraykernel__Object
);
3209 { /* var483 = array_instance Array[Object] */
3211 var485
= NEW_array__NativeArray(var484
, &type_array__NativeArraykernel__Object
);
3212 ((struct instance_array__NativeArray
*)var485
)->values
[0] = (val
*) var469
;
3213 ((struct instance_array__NativeArray
*)var485
)->values
[1] = (val
*) var_c_name
;
3214 ((struct instance_array__NativeArray
*)var485
)->values
[2] = (val
*) var474
;
3215 ((struct instance_array__NativeArray
*)var485
)->values
[3] = (val
*) var_c_name
;
3216 ((struct instance_array__NativeArray
*)var485
)->values
[4] = (val
*) var479
;
3217 ((void (*)(val
*, val
*, long))(var483
->class->vft
[COLOR_array__Array__with_native
]))(var483
, var485
, var484
) /* with_native on <var483:Array[Object]>*/;
3219 var486
= ((val
* (*)(val
*))(var483
->class->vft
[COLOR_string__Object__to_s
]))(var483
) /* to_s on <var483:Array[Object]>*/;
3220 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var486
) /* add on <var_v:SeparateCompilerVisitor>*/;
3222 var488
= varonce487
;
3226 var491
= string__NativeString__to_s_with_length(var489
, var490
);
3228 varonce487
= var488
;
3230 var492
= NEW_array__Array(&type_array__Arraykernel__Object
);
3231 { /* var492 = array_instance Array[Object] */
3233 var494
= NEW_array__NativeArray(var493
, &type_array__NativeArraykernel__Object
);
3234 ((struct instance_array__NativeArray
*)var494
)->values
[0] = (val
*) var488
;
3235 ((struct instance_array__NativeArray
*)var494
)->values
[1] = (val
*) var_c_name
;
3236 ((void (*)(val
*, val
*, long))(var492
->class->vft
[COLOR_array__Array__with_native
]))(var492
, var494
, var493
) /* with_native on <var492:Array[Object]>*/;
3238 var495
= ((val
* (*)(val
*))(var492
->class->vft
[COLOR_string__Object__to_s
]))(var492
) /* to_s on <var492:Array[Object]>*/;
3239 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var495
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
3241 var497
= varonce496
;
3243 var498
= "res->class = &class_";
3245 var500
= string__NativeString__to_s_with_length(var498
, var499
);
3247 varonce496
= var497
;
3250 var502
= varonce501
;
3254 var505
= string__NativeString__to_s_with_length(var503
, var504
);
3256 varonce501
= var502
;
3258 var506
= NEW_array__Array(&type_array__Arraykernel__Object
);
3259 { /* var506 = array_instance Array[Object] */
3261 var508
= NEW_array__NativeArray(var507
, &type_array__NativeArraykernel__Object
);
3262 ((struct instance_array__NativeArray
*)var508
)->values
[0] = (val
*) var497
;
3263 ((struct instance_array__NativeArray
*)var508
)->values
[1] = (val
*) var_c_name
;
3264 ((struct instance_array__NativeArray
*)var508
)->values
[2] = (val
*) var502
;
3265 ((void (*)(val
*, val
*, long))(var506
->class->vft
[COLOR_array__Array__with_native
]))(var506
, var508
, var507
) /* with_native on <var506:Array[Object]>*/;
3267 var509
= ((val
* (*)(val
*))(var506
->class->vft
[COLOR_string__Object__to_s
]))(var506
) /* to_s on <var506:Array[Object]>*/;
3268 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var509
) /* add on <var_v:SeparateCompilerVisitor>*/;
3270 var511
= varonce510
;
3272 var512
= "res->value = value;";
3274 var514
= string__NativeString__to_s_with_length(var512
, var513
);
3276 varonce510
= var511
;
3278 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var511
) /* add on <var_v:SeparateCompilerVisitor>*/;
3280 var516
= varonce515
;
3282 var517
= "return (val*)res;";
3284 var519
= string__NativeString__to_s_with_length(var517
, var518
);
3286 varonce515
= var516
;
3288 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var516
) /* add on <var_v:SeparateCompilerVisitor>*/;
3290 var521
= varonce520
;
3294 var524
= string__NativeString__to_s_with_length(var522
, var523
);
3296 varonce520
= var521
;
3298 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var521
) /* add on <var_v:SeparateCompilerVisitor>*/;
3301 var525
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__name
]))(var_mclass
) /* name on <var_mclass:MClass>*/;
3303 var527
= varonce526
;
3305 var528
= "NativeArray";
3307 var530
= string__NativeString__to_s_with_length(var528
, var529
);
3309 varonce526
= var527
;
3311 var531
= ((short int (*)(val
*, val
*))(var525
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var525
, var527
) /* == on <var525:String>*/;
3313 var532
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3315 var534
= varonce533
;
3317 var535
= "struct instance_";
3319 var537
= string__NativeString__to_s_with_length(var535
, var536
);
3321 varonce533
= var534
;
3324 var539
= varonce538
;
3328 var542
= string__NativeString__to_s_with_length(var540
, var541
);
3330 varonce538
= var539
;
3332 var543
= NEW_array__Array(&type_array__Arraykernel__Object
);
3333 { /* var543 = array_instance Array[Object] */
3335 var545
= NEW_array__NativeArray(var544
, &type_array__NativeArraykernel__Object
);
3336 ((struct instance_array__NativeArray
*)var545
)->values
[0] = (val
*) var534
;
3337 ((struct instance_array__NativeArray
*)var545
)->values
[1] = (val
*) var_c_name
;
3338 ((struct instance_array__NativeArray
*)var545
)->values
[2] = (val
*) var539
;
3339 ((void (*)(val
*, val
*, long))(var543
->class->vft
[COLOR_array__Array__with_native
]))(var543
, var545
, var544
) /* with_native on <var543:Array[Object]>*/;
3341 var546
= ((val
* (*)(val
*))(var543
->class->vft
[COLOR_string__Object__to_s
]))(var543
) /* to_s on <var543:Array[Object]>*/;
3342 ((void (*)(val
*, val
*))(var532
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var532
, var546
) /* add_decl on <var532:CodeWriter>*/;
3343 var547
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3345 var549
= varonce548
;
3347 var550
= "const struct class *class;";
3349 var552
= string__NativeString__to_s_with_length(var550
, var551
);
3351 varonce548
= var549
;
3353 ((void (*)(val
*, val
*))(var547
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var547
, var549
) /* add_decl on <var547:CodeWriter>*/;
3354 var553
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3356 var555
= varonce554
;
3358 var556
= "val* values[];";
3360 var558
= string__NativeString__to_s_with_length(var556
, var557
);
3362 varonce554
= var555
;
3364 ((void (*)(val
*, val
*))(var553
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var553
, var555
) /* add_decl on <var553:CodeWriter>*/;
3365 var559
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3367 var561
= varonce560
;
3371 var564
= string__NativeString__to_s_with_length(var562
, var563
);
3373 varonce560
= var561
;
3375 ((void (*)(val
*, val
*))(var559
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var559
, var561
) /* add_decl on <var559:CodeWriter>*/;
3377 var566
= varonce565
;
3381 var569
= string__NativeString__to_s_with_length(var567
, var568
);
3383 varonce565
= var566
;
3385 var570
= NEW_array__Array(&type_array__Arraykernel__Object
);
3386 { /* var570 = array_instance Array[Object] */
3388 var572
= NEW_array__NativeArray(var571
, &type_array__NativeArraykernel__Object
);
3389 ((struct instance_array__NativeArray
*)var572
)->values
[0] = (val
*) var566
;
3390 ((struct instance_array__NativeArray
*)var572
)->values
[1] = (val
*) var_c_name
;
3391 ((void (*)(val
*, val
*, long))(var570
->class->vft
[COLOR_array__Array__with_native
]))(var570
, var572
, var571
) /* with_native on <var570:Array[Object]>*/;
3393 var573
= ((val
* (*)(val
*))(var570
->class->vft
[COLOR_string__Object__to_s
]))(var570
) /* to_s on <var570:Array[Object]>*/;
3394 var574
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3396 var576
= varonce575
;
3400 var579
= string__NativeString__to_s_with_length(var577
, var578
);
3402 varonce575
= var576
;
3405 var581
= varonce580
;
3407 var582
= "(int length);";
3409 var584
= string__NativeString__to_s_with_length(var582
, var583
);
3411 varonce580
= var581
;
3413 var585
= NEW_array__Array(&type_array__Arraykernel__Object
);
3414 { /* var585 = array_instance Array[Object] */
3416 var587
= NEW_array__NativeArray(var586
, &type_array__NativeArraykernel__Object
);
3417 ((struct instance_array__NativeArray
*)var587
)->values
[0] = (val
*) var574
;
3418 ((struct instance_array__NativeArray
*)var587
)->values
[1] = (val
*) var576
;
3419 ((struct instance_array__NativeArray
*)var587
)->values
[2] = (val
*) var_c_name
;
3420 ((struct instance_array__NativeArray
*)var587
)->values
[3] = (val
*) var581
;
3421 ((void (*)(val
*, val
*, long))(var585
->class->vft
[COLOR_array__Array__with_native
]))(var585
, var587
, var586
) /* with_native on <var585:Array[Object]>*/;
3423 var588
= ((val
* (*)(val
*))(var585
->class->vft
[COLOR_string__Object__to_s
]))(var585
) /* to_s on <var585:Array[Object]>*/;
3424 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var573
, var588
) /* provide_declaration on <self:SeparateErasureCompiler>*/;
3426 var590
= varonce589
;
3428 var591
= "/* allocate ";
3430 var593
= string__NativeString__to_s_with_length(var591
, var592
);
3432 varonce589
= var590
;
3435 var595
= varonce594
;
3439 var598
= string__NativeString__to_s_with_length(var596
, var597
);
3441 varonce594
= var595
;
3443 var599
= NEW_array__Array(&type_array__Arraykernel__Object
);
3444 { /* var599 = array_instance Array[Object] */
3446 var601
= NEW_array__NativeArray(var600
, &type_array__NativeArraykernel__Object
);
3447 ((struct instance_array__NativeArray
*)var601
)->values
[0] = (val
*) var590
;
3448 ((struct instance_array__NativeArray
*)var601
)->values
[1] = (val
*) var_mtype
;
3449 ((struct instance_array__NativeArray
*)var601
)->values
[2] = (val
*) var595
;
3450 ((void (*)(val
*, val
*, long))(var599
->class->vft
[COLOR_array__Array__with_native
]))(var599
, var601
, var600
) /* with_native on <var599:Array[Object]>*/;
3452 var602
= ((val
* (*)(val
*))(var599
->class->vft
[COLOR_string__Object__to_s
]))(var599
) /* to_s on <var599:Array[Object]>*/;
3453 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var602
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3454 var603
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3456 var605
= varonce604
;
3460 var608
= string__NativeString__to_s_with_length(var606
, var607
);
3462 varonce604
= var605
;
3465 var610
= varonce609
;
3467 var611
= "(int length) {";
3469 var613
= string__NativeString__to_s_with_length(var611
, var612
);
3471 varonce609
= var610
;
3473 var614
= NEW_array__Array(&type_array__Arraykernel__Object
);
3474 { /* var614 = array_instance Array[Object] */
3476 var616
= NEW_array__NativeArray(var615
, &type_array__NativeArraykernel__Object
);
3477 ((struct instance_array__NativeArray
*)var616
)->values
[0] = (val
*) var603
;
3478 ((struct instance_array__NativeArray
*)var616
)->values
[1] = (val
*) var605
;
3479 ((struct instance_array__NativeArray
*)var616
)->values
[2] = (val
*) var_c_name
;
3480 ((struct instance_array__NativeArray
*)var616
)->values
[3] = (val
*) var610
;
3481 ((void (*)(val
*, val
*, long))(var614
->class->vft
[COLOR_array__Array__with_native
]))(var614
, var616
, var615
) /* with_native on <var614:Array[Object]>*/;
3483 var617
= ((val
* (*)(val
*))(var614
->class->vft
[COLOR_string__Object__to_s
]))(var614
) /* to_s on <var614:Array[Object]>*/;
3484 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var617
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3486 var619
= varonce618
;
3490 var622
= string__NativeString__to_s_with_length(var620
, var621
);
3492 varonce618
= var619
;
3494 var623
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_named_var
]))(var_v
, var_mtype
, var619
) /* new_named_var on <var_v:SeparateCompilerVisitor>*/;
3497 ((void (*)(val
*, short int))(var_res
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res
, var624
) /* is_exact= on <var_res:RuntimeVariable>*/;
3498 var625
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
3499 var626
= ((val
* (*)(val
*))(var625
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var625
) /* first on <var625:Array[MType]>*/;
3500 var_mtype_elt
= var626
;
3502 var628
= varonce627
;
3504 var629
= " = nit_alloc(sizeof(struct instance_";
3506 var631
= string__NativeString__to_s_with_length(var629
, var630
);
3508 varonce627
= var628
;
3511 var633
= varonce632
;
3513 var634
= ") + length*sizeof(";
3515 var636
= string__NativeString__to_s_with_length(var634
, var635
);
3517 varonce632
= var633
;
3519 var637
= ((val
* (*)(val
*))(var_mtype_elt
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype_elt
) /* ctype on <var_mtype_elt:MType>*/;
3521 var639
= varonce638
;
3525 var642
= string__NativeString__to_s_with_length(var640
, var641
);
3527 varonce638
= var639
;
3529 var643
= NEW_array__Array(&type_array__Arraykernel__Object
);
3530 { /* var643 = array_instance Array[Object] */
3532 var645
= NEW_array__NativeArray(var644
, &type_array__NativeArraykernel__Object
);
3533 ((struct instance_array__NativeArray
*)var645
)->values
[0] = (val
*) var_res
;
3534 ((struct instance_array__NativeArray
*)var645
)->values
[1] = (val
*) var628
;
3535 ((struct instance_array__NativeArray
*)var645
)->values
[2] = (val
*) var_c_name
;
3536 ((struct instance_array__NativeArray
*)var645
)->values
[3] = (val
*) var633
;
3537 ((struct instance_array__NativeArray
*)var645
)->values
[4] = (val
*) var637
;
3538 ((struct instance_array__NativeArray
*)var645
)->values
[5] = (val
*) var639
;
3539 ((void (*)(val
*, val
*, long))(var643
->class->vft
[COLOR_array__Array__with_native
]))(var643
, var645
, var644
) /* with_native on <var643:Array[Object]>*/;
3541 var646
= ((val
* (*)(val
*))(var643
->class->vft
[COLOR_string__Object__to_s
]))(var643
) /* to_s on <var643:Array[Object]>*/;
3542 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var646
) /* add on <var_v:SeparateCompilerVisitor>*/;
3544 var648
= varonce647
;
3548 var651
= string__NativeString__to_s_with_length(var649
, var650
);
3550 varonce647
= var648
;
3552 var652
= NEW_array__Array(&type_array__Arraykernel__Object
);
3553 { /* var652 = array_instance Array[Object] */
3555 var654
= NEW_array__NativeArray(var653
, &type_array__NativeArraykernel__Object
);
3556 ((struct instance_array__NativeArray
*)var654
)->values
[0] = (val
*) var648
;
3557 ((struct instance_array__NativeArray
*)var654
)->values
[1] = (val
*) var_c_name
;
3558 ((void (*)(val
*, val
*, long))(var652
->class->vft
[COLOR_array__Array__with_native
]))(var652
, var654
, var653
) /* with_native on <var652:Array[Object]>*/;
3560 var655
= ((val
* (*)(val
*))(var652
->class->vft
[COLOR_string__Object__to_s
]))(var652
) /* to_s on <var652:Array[Object]>*/;
3561 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var655
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
3563 var657
= varonce656
;
3565 var658
= "->class = &class_";
3567 var660
= string__NativeString__to_s_with_length(var658
, var659
);
3569 varonce656
= var657
;
3572 var662
= varonce661
;
3576 var665
= string__NativeString__to_s_with_length(var663
, var664
);
3578 varonce661
= var662
;
3580 var666
= NEW_array__Array(&type_array__Arraykernel__Object
);
3581 { /* var666 = array_instance Array[Object] */
3583 var668
= NEW_array__NativeArray(var667
, &type_array__NativeArraykernel__Object
);
3584 ((struct instance_array__NativeArray
*)var668
)->values
[0] = (val
*) var_res
;
3585 ((struct instance_array__NativeArray
*)var668
)->values
[1] = (val
*) var657
;
3586 ((struct instance_array__NativeArray
*)var668
)->values
[2] = (val
*) var_c_name
;
3587 ((struct instance_array__NativeArray
*)var668
)->values
[3] = (val
*) var662
;
3588 ((void (*)(val
*, val
*, long))(var666
->class->vft
[COLOR_array__Array__with_native
]))(var666
, var668
, var667
) /* with_native on <var666:Array[Object]>*/;
3590 var669
= ((val
* (*)(val
*))(var666
->class->vft
[COLOR_string__Object__to_s
]))(var666
) /* to_s on <var666:Array[Object]>*/;
3591 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var669
) /* add on <var_v:SeparateCompilerVisitor>*/;
3593 var671
= varonce670
;
3597 var674
= string__NativeString__to_s_with_length(var672
, var673
);
3599 varonce670
= var671
;
3602 var676
= varonce675
;
3606 var679
= string__NativeString__to_s_with_length(var677
, var678
);
3608 varonce675
= var676
;
3610 var680
= NEW_array__Array(&type_array__Arraykernel__Object
);
3611 { /* var680 = array_instance Array[Object] */
3613 var682
= NEW_array__NativeArray(var681
, &type_array__NativeArraykernel__Object
);
3614 ((struct instance_array__NativeArray
*)var682
)->values
[0] = (val
*) var671
;
3615 ((struct instance_array__NativeArray
*)var682
)->values
[1] = (val
*) var_res
;
3616 ((struct instance_array__NativeArray
*)var682
)->values
[2] = (val
*) var676
;
3617 ((void (*)(val
*, val
*, long))(var680
->class->vft
[COLOR_array__Array__with_native
]))(var680
, var682
, var681
) /* with_native on <var680:Array[Object]>*/;
3619 var683
= ((val
* (*)(val
*))(var680
->class->vft
[COLOR_string__Object__to_s
]))(var680
) /* to_s on <var680:Array[Object]>*/;
3620 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var683
) /* add on <var_v:SeparateCompilerVisitor>*/;
3622 var685
= varonce684
;
3626 var688
= string__NativeString__to_s_with_length(var686
, var687
);
3628 varonce684
= var685
;
3630 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var685
) /* add on <var_v:SeparateCompilerVisitor>*/;
3636 var690
= varonce689
;
3640 var693
= string__NativeString__to_s_with_length(var691
, var692
);
3642 varonce689
= var690
;
3644 var694
= NEW_array__Array(&type_array__Arraykernel__Object
);
3645 { /* var694 = array_instance Array[Object] */
3647 var696
= NEW_array__NativeArray(var695
, &type_array__NativeArraykernel__Object
);
3648 ((struct instance_array__NativeArray
*)var696
)->values
[0] = (val
*) var690
;
3649 ((struct instance_array__NativeArray
*)var696
)->values
[1] = (val
*) var_c_name
;
3650 ((void (*)(val
*, val
*, long))(var694
->class->vft
[COLOR_array__Array__with_native
]))(var694
, var696
, var695
) /* with_native on <var694:Array[Object]>*/;
3652 var697
= ((val
* (*)(val
*))(var694
->class->vft
[COLOR_string__Object__to_s
]))(var694
) /* to_s on <var694:Array[Object]>*/;
3653 var698
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3655 var700
= varonce699
;
3659 var703
= string__NativeString__to_s_with_length(var701
, var702
);
3661 varonce699
= var700
;
3664 var705
= varonce704
;
3668 var708
= string__NativeString__to_s_with_length(var706
, var707
);
3670 varonce704
= var705
;
3672 var709
= NEW_array__Array(&type_array__Arraykernel__Object
);
3673 { /* var709 = array_instance Array[Object] */
3675 var711
= NEW_array__NativeArray(var710
, &type_array__NativeArraykernel__Object
);
3676 ((struct instance_array__NativeArray
*)var711
)->values
[0] = (val
*) var698
;
3677 ((struct instance_array__NativeArray
*)var711
)->values
[1] = (val
*) var700
;
3678 ((struct instance_array__NativeArray
*)var711
)->values
[2] = (val
*) var_c_name
;
3679 ((struct instance_array__NativeArray
*)var711
)->values
[3] = (val
*) var705
;
3680 ((void (*)(val
*, val
*, long))(var709
->class->vft
[COLOR_array__Array__with_native
]))(var709
, var711
, var710
) /* with_native on <var709:Array[Object]>*/;
3682 var712
= ((val
* (*)(val
*))(var709
->class->vft
[COLOR_string__Object__to_s
]))(var709
) /* to_s on <var709:Array[Object]>*/;
3683 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var697
, var712
) /* provide_declaration on <self:SeparateErasureCompiler>*/;
3685 var714
= varonce713
;
3687 var715
= "/* allocate ";
3689 var717
= string__NativeString__to_s_with_length(var715
, var716
);
3691 varonce713
= var714
;
3694 var719
= varonce718
;
3698 var722
= string__NativeString__to_s_with_length(var720
, var721
);
3700 varonce718
= var719
;
3702 var723
= NEW_array__Array(&type_array__Arraykernel__Object
);
3703 { /* var723 = array_instance Array[Object] */
3705 var725
= NEW_array__NativeArray(var724
, &type_array__NativeArraykernel__Object
);
3706 ((struct instance_array__NativeArray
*)var725
)->values
[0] = (val
*) var714
;
3707 ((struct instance_array__NativeArray
*)var725
)->values
[1] = (val
*) var_mtype
;
3708 ((struct instance_array__NativeArray
*)var725
)->values
[2] = (val
*) var719
;
3709 ((void (*)(val
*, val
*, long))(var723
->class->vft
[COLOR_array__Array__with_native
]))(var723
, var725
, var724
) /* with_native on <var723:Array[Object]>*/;
3711 var726
= ((val
* (*)(val
*))(var723
->class->vft
[COLOR_string__Object__to_s
]))(var723
) /* to_s on <var723:Array[Object]>*/;
3712 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var726
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3713 var727
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3715 var729
= varonce728
;
3719 var732
= string__NativeString__to_s_with_length(var730
, var731
);
3721 varonce728
= var729
;
3724 var734
= varonce733
;
3726 var735
= "(void) {";
3728 var737
= string__NativeString__to_s_with_length(var735
, var736
);
3730 varonce733
= var734
;
3732 var738
= NEW_array__Array(&type_array__Arraykernel__Object
);
3733 { /* var738 = array_instance Array[Object] */
3735 var740
= NEW_array__NativeArray(var739
, &type_array__NativeArraykernel__Object
);
3736 ((struct instance_array__NativeArray
*)var740
)->values
[0] = (val
*) var727
;
3737 ((struct instance_array__NativeArray
*)var740
)->values
[1] = (val
*) var729
;
3738 ((struct instance_array__NativeArray
*)var740
)->values
[2] = (val
*) var_c_name
;
3739 ((struct instance_array__NativeArray
*)var740
)->values
[3] = (val
*) var734
;
3740 ((void (*)(val
*, val
*, long))(var738
->class->vft
[COLOR_array__Array__with_native
]))(var738
, var740
, var739
) /* with_native on <var738:Array[Object]>*/;
3742 var741
= ((val
* (*)(val
*))(var738
->class->vft
[COLOR_string__Object__to_s
]))(var738
) /* to_s on <var738:Array[Object]>*/;
3743 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var741
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3745 var743
= varonce742
;
3749 var746
= string__NativeString__to_s_with_length(var744
, var745
);
3751 varonce742
= var743
;
3753 var747
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_named_var
]))(var_v
, var_mtype
, var743
) /* new_named_var on <var_v:SeparateCompilerVisitor>*/;
3754 var_res748
= var747
;
3756 ((void (*)(val
*, short int))(var_res748
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res748
, var749
) /* is_exact= on <var_res748:RuntimeVariable>*/;
3758 var751
= varonce750
;
3760 var752
= " = nit_alloc(sizeof(struct instance) + ";
3762 var754
= string__NativeString__to_s_with_length(var752
, var753
);
3764 varonce750
= var751
;
3766 var755
= ((long (*)(val
*))(var_attrs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_attrs
) /* length on <var_attrs:Array[nullable MPropDef]>*/;
3768 var757
= varonce756
;
3770 var758
= "*sizeof(nitattribute_t));";
3772 var760
= string__NativeString__to_s_with_length(var758
, var759
);
3774 varonce756
= var757
;
3776 var761
= NEW_array__Array(&type_array__Arraykernel__Object
);
3777 { /* var761 = array_instance Array[Object] */
3779 var763
= NEW_array__NativeArray(var762
, &type_array__NativeArraykernel__Object
);
3780 ((struct instance_array__NativeArray
*)var763
)->values
[0] = (val
*) var_res748
;
3781 ((struct instance_array__NativeArray
*)var763
)->values
[1] = (val
*) var751
;
3782 var764
= BOX_kernel__Int(var755
); /* autobox from Int to Object */
3783 ((struct instance_array__NativeArray
*)var763
)->values
[2] = (val
*) var764
;
3784 ((struct instance_array__NativeArray
*)var763
)->values
[3] = (val
*) var757
;
3785 ((void (*)(val
*, val
*, long))(var761
->class->vft
[COLOR_array__Array__with_native
]))(var761
, var763
, var762
) /* with_native on <var761:Array[Object]>*/;
3787 var765
= ((val
* (*)(val
*))(var761
->class->vft
[COLOR_string__Object__to_s
]))(var761
) /* to_s on <var761:Array[Object]>*/;
3788 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var765
) /* add on <var_v:SeparateCompilerVisitor>*/;
3790 var767
= varonce766
;
3794 var770
= string__NativeString__to_s_with_length(var768
, var769
);
3796 varonce766
= var767
;
3798 var771
= NEW_array__Array(&type_array__Arraykernel__Object
);
3799 { /* var771 = array_instance Array[Object] */
3801 var773
= NEW_array__NativeArray(var772
, &type_array__NativeArraykernel__Object
);
3802 ((struct instance_array__NativeArray
*)var773
)->values
[0] = (val
*) var767
;
3803 ((struct instance_array__NativeArray
*)var773
)->values
[1] = (val
*) var_c_name
;
3804 ((void (*)(val
*, val
*, long))(var771
->class->vft
[COLOR_array__Array__with_native
]))(var771
, var773
, var772
) /* with_native on <var771:Array[Object]>*/;
3806 var774
= ((val
* (*)(val
*))(var771
->class->vft
[COLOR_string__Object__to_s
]))(var771
) /* to_s on <var771:Array[Object]>*/;
3807 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var774
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
3809 var776
= varonce775
;
3811 var777
= "->class = &class_";
3813 var779
= string__NativeString__to_s_with_length(var777
, var778
);
3815 varonce775
= var776
;
3818 var781
= varonce780
;
3822 var784
= string__NativeString__to_s_with_length(var782
, var783
);
3824 varonce780
= var781
;
3826 var785
= NEW_array__Array(&type_array__Arraykernel__Object
);
3827 { /* var785 = array_instance Array[Object] */
3829 var787
= NEW_array__NativeArray(var786
, &type_array__NativeArraykernel__Object
);
3830 ((struct instance_array__NativeArray
*)var787
)->values
[0] = (val
*) var_res748
;
3831 ((struct instance_array__NativeArray
*)var787
)->values
[1] = (val
*) var776
;
3832 ((struct instance_array__NativeArray
*)var787
)->values
[2] = (val
*) var_c_name
;
3833 ((struct instance_array__NativeArray
*)var787
)->values
[3] = (val
*) var781
;
3834 ((void (*)(val
*, val
*, long))(var785
->class->vft
[COLOR_array__Array__with_native
]))(var785
, var787
, var786
) /* with_native on <var785:Array[Object]>*/;
3836 var788
= ((val
* (*)(val
*))(var785
->class->vft
[COLOR_string__Object__to_s
]))(var785
) /* to_s on <var785:Array[Object]>*/;
3837 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var788
) /* add on <var_v:SeparateCompilerVisitor>*/;
3838 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__generate_init_attr
]))(self
, var_v
, var_res748
, var_mtype
) /* generate_init_attr on <self:SeparateErasureCompiler>*/;
3840 var790
= varonce789
;
3844 var793
= string__NativeString__to_s_with_length(var791
, var792
);
3846 varonce789
= var790
;
3849 var795
= varonce794
;
3853 var798
= string__NativeString__to_s_with_length(var796
, var797
);
3855 varonce794
= var795
;
3857 var799
= NEW_array__Array(&type_array__Arraykernel__Object
);
3858 { /* var799 = array_instance Array[Object] */
3860 var801
= NEW_array__NativeArray(var800
, &type_array__NativeArraykernel__Object
);
3861 ((struct instance_array__NativeArray
*)var801
)->values
[0] = (val
*) var790
;
3862 ((struct instance_array__NativeArray
*)var801
)->values
[1] = (val
*) var_res748
;
3863 ((struct instance_array__NativeArray
*)var801
)->values
[2] = (val
*) var795
;
3864 ((void (*)(val
*, val
*, long))(var799
->class->vft
[COLOR_array__Array__with_native
]))(var799
, var801
, var800
) /* with_native on <var799:Array[Object]>*/;
3866 var802
= ((val
* (*)(val
*))(var799
->class->vft
[COLOR_string__Object__to_s
]))(var799
) /* to_s on <var799:Array[Object]>*/;
3867 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var802
) /* add on <var_v:SeparateCompilerVisitor>*/;
3869 var804
= varonce803
;
3873 var807
= string__NativeString__to_s_with_length(var805
, var806
);
3875 varonce803
= var804
;
3877 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var804
) /* add on <var_v:SeparateCompilerVisitor>*/;
3880 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_class_to_c for (self: Object, MClass) */
3881 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__compile_class_to_c(val
* self
, val
* p0
) {
3882 separate_erasure_compiler__SeparateErasureCompiler__compile_class_to_c(self
, p0
);
3885 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_vts_table for (self: SeparateErasureCompiler, MClass): Bool */
3886 short int separate_erasure_compiler__SeparateErasureCompiler__build_class_vts_table(val
* self
, val
* p0
) {
3887 short int var
/* : Bool */;
3888 val
* var_mclass
/* var mclass: MClass */;
3889 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
3890 val
* var2
/* : nullable Object */;
3891 short int var3
/* : Bool */;
3892 short int var4
/* : Bool */;
3893 static val
* varonce
;
3894 val
* var5
/* : String */;
3895 char* var6
/* : NativeString */;
3896 long var7
/* : Int */;
3897 val
* var8
/* : String */;
3898 val
* var9
/* : String */;
3899 val
* var10
/* : Array[Object] */;
3900 long var11
/* : Int */;
3901 val
* var12
/* : NativeArray[Object] */;
3902 val
* var13
/* : String */;
3903 static val
* varonce14
;
3904 val
* var15
/* : String */;
3905 char* var16
/* : NativeString */;
3906 long var17
/* : Int */;
3907 val
* var18
/* : String */;
3908 val
* var19
/* : String */;
3909 static val
* varonce20
;
3910 val
* var21
/* : String */;
3911 char* var22
/* : NativeString */;
3912 long var23
/* : Int */;
3913 val
* var24
/* : String */;
3914 val
* var25
/* : Array[Object] */;
3915 long var26
/* : Int */;
3916 val
* var27
/* : NativeArray[Object] */;
3917 val
* var28
/* : String */;
3918 val
* var29
/* : AbstractCompilerVisitor */;
3919 val
* var_v
/* var v: SeparateCompilerVisitor */;
3920 static val
* varonce30
;
3921 val
* var31
/* : String */;
3922 char* var32
/* : NativeString */;
3923 long var33
/* : Int */;
3924 val
* var34
/* : String */;
3925 val
* var35
/* : String */;
3926 static val
* varonce36
;
3927 val
* var37
/* : String */;
3928 char* var38
/* : NativeString */;
3929 long var39
/* : Int */;
3930 val
* var40
/* : String */;
3931 val
* var41
/* : Array[Object] */;
3932 long var42
/* : Int */;
3933 val
* var43
/* : NativeArray[Object] */;
3934 val
* var44
/* : String */;
3935 val
* var45
/* : nullable Layout[MVirtualTypeProp] */;
3936 short int var46
/* : Bool */;
3939 static val
* varonce47
;
3940 val
* var48
/* : String */;
3941 char* var49
/* : NativeString */;
3942 long var50
/* : Int */;
3943 val
* var51
/* : String */;
3944 static val
* varonce52
;
3945 val
* var53
/* : String */;
3946 char* var54
/* : NativeString */;
3947 long var55
/* : Int */;
3948 val
* var56
/* : String */;
3949 val
* var57
/* : Map[MClass, Array[nullable MPropDef]] */;
3950 val
* var58
/* : nullable Object */;
3951 val
* var59
/* : Iterator[nullable Object] */;
3952 short int var60
/* : Bool */;
3953 val
* var61
/* : nullable Object */;
3954 val
* var_vt
/* var vt: nullable MPropDef */;
3955 val
* var62
/* : null */;
3956 short int var63
/* : Bool */;
3957 static val
* varonce64
;
3958 val
* var65
/* : String */;
3959 char* var66
/* : NativeString */;
3960 long var67
/* : Int */;
3961 val
* var68
/* : String */;
3962 long var69
/* : Int */;
3963 long var_is_null
/* var is_null: Int */;
3964 val
* var70
/* : MClassDef */;
3965 val
* var71
/* : MClassType */;
3966 short int var72
/* : Bool */;
3969 const char* var_class_name
;
3970 val
* var75
/* : nullable MType */;
3971 val
* var76
/* : MType */;
3972 val
* var_bound
/* var bound: MType */;
3973 short int var77
/* : Bool */;
3976 val
* var80
/* : MClassDef */;
3977 val
* var81
/* : MClassType */;
3978 val
* var82
/* : MType */;
3979 val
* var83
/* : MType */;
3980 long var84
/* : Int */;
3981 short int var85
/* : Bool */;
3984 const char* var_class_name88
;
3985 val
* var89
/* : MClass */;
3986 val
* var_vtclass
/* var vtclass: MClass */;
3987 static val
* varonce90
;
3988 val
* var91
/* : String */;
3989 char* var92
/* : NativeString */;
3990 long var93
/* : Int */;
3991 val
* var94
/* : String */;
3992 val
* var95
/* : String */;
3993 val
* var96
/* : Array[Object] */;
3994 long var97
/* : Int */;
3995 val
* var98
/* : NativeArray[Object] */;
3996 val
* var99
/* : String */;
3997 static val
* varonce100
;
3998 val
* var101
/* : String */;
3999 char* var102
/* : NativeString */;
4000 long var103
/* : Int */;
4001 val
* var104
/* : String */;
4002 static val
* varonce105
;
4003 val
* var106
/* : String */;
4004 char* var107
/* : NativeString */;
4005 long var108
/* : Int */;
4006 val
* var109
/* : String */;
4007 val
* var110
/* : String */;
4008 static val
* varonce111
;
4009 val
* var112
/* : String */;
4010 char* var113
/* : NativeString */;
4011 long var114
/* : Int */;
4012 val
* var115
/* : String */;
4013 static val
* varonce116
;
4014 val
* var117
/* : String */;
4015 char* var118
/* : NativeString */;
4016 long var119
/* : Int */;
4017 val
* var120
/* : String */;
4018 val
* var121
/* : Array[Object] */;
4019 long var122
/* : Int */;
4020 val
* var123
/* : NativeArray[Object] */;
4021 val
* var124
/* : Object */;
4022 val
* var125
/* : String */;
4023 static val
* varonce127
;
4024 val
* var128
/* : String */;
4025 char* var129
/* : NativeString */;
4026 long var130
/* : Int */;
4027 val
* var131
/* : String */;
4028 static val
* varonce132
;
4029 val
* var133
/* : String */;
4030 char* var134
/* : NativeString */;
4031 long var135
/* : Int */;
4032 val
* var136
/* : String */;
4033 short int var137
/* : Bool */;
4035 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_tables
]))(self
) /* vt_tables on <self:SeparateErasureCompiler>*/;
4036 var2
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var1
, var_mclass
) /* [] on <var1:Map[MClass, Array[nullable MPropDef]]>*/;
4037 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var2
) /* is_empty on <var2:nullable Object(Array[nullable MPropDef])>*/;
4047 var6
= "vts_table_";
4049 var8
= string__NativeString__to_s_with_length(var6
, var7
);
4053 var9
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
4054 var10
= NEW_array__Array(&type_array__Arraykernel__Object
);
4055 { /* var10 = array_instance Array[Object] */
4057 var12
= NEW_array__NativeArray(var11
, &type_array__NativeArraykernel__Object
);
4058 ((struct instance_array__NativeArray
*)var12
)->values
[0] = (val
*) var5
;
4059 ((struct instance_array__NativeArray
*)var12
)->values
[1] = (val
*) var9
;
4060 ((void (*)(val
*, val
*, long))(var10
->class->vft
[COLOR_array__Array__with_native
]))(var10
, var12
, var11
) /* with_native on <var10:Array[Object]>*/;
4062 var13
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_string__Object__to_s
]))(var10
) /* to_s on <var10:Array[Object]>*/;
4066 var16
= "extern const struct vts_table vts_table_";
4068 var18
= string__NativeString__to_s_with_length(var16
, var17
);
4072 var19
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
4078 var24
= string__NativeString__to_s_with_length(var22
, var23
);
4082 var25
= NEW_array__Array(&type_array__Arraykernel__Object
);
4083 { /* var25 = array_instance Array[Object] */
4085 var27
= NEW_array__NativeArray(var26
, &type_array__NativeArraykernel__Object
);
4086 ((struct instance_array__NativeArray
*)var27
)->values
[0] = (val
*) var15
;
4087 ((struct instance_array__NativeArray
*)var27
)->values
[1] = (val
*) var19
;
4088 ((struct instance_array__NativeArray
*)var27
)->values
[2] = (val
*) var21
;
4089 ((void (*)(val
*, val
*, long))(var25
->class->vft
[COLOR_array__Array__with_native
]))(var25
, var27
, var26
) /* with_native on <var25:Array[Object]>*/;
4091 var28
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_string__Object__to_s
]))(var25
) /* to_s on <var25:Array[Object]>*/;
4092 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var13
, var28
) /* provide_declaration on <self:SeparateErasureCompiler>*/;
4093 var29
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateErasureCompiler>*/;
4098 var32
= "const struct vts_table vts_table_";
4100 var34
= string__NativeString__to_s_with_length(var32
, var33
);
4104 var35
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
4110 var40
= string__NativeString__to_s_with_length(var38
, var39
);
4114 var41
= NEW_array__Array(&type_array__Arraykernel__Object
);
4115 { /* var41 = array_instance Array[Object] */
4117 var43
= NEW_array__NativeArray(var42
, &type_array__NativeArraykernel__Object
);
4118 ((struct instance_array__NativeArray
*)var43
)->values
[0] = (val
*) var31
;
4119 ((struct instance_array__NativeArray
*)var43
)->values
[1] = (val
*) var35
;
4120 ((struct instance_array__NativeArray
*)var43
)->values
[2] = (val
*) var37
;
4121 ((void (*)(val
*, val
*, long))(var41
->class->vft
[COLOR_array__Array__with_native
]))(var41
, var43
, var42
) /* with_native on <var41:Array[Object]>*/;
4123 var44
= ((val
* (*)(val
*))(var41
->class->vft
[COLOR_string__Object__to_s
]))(var41
) /* to_s on <var41:Array[Object]>*/;
4124 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var44
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4125 var45
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_layout
]))(self
) /* vt_layout on <self:SeparateErasureCompiler>*/;
4126 /* <var45:nullable Layout[MVirtualTypeProp]> isa PHLayout[MClass, MVirtualTypeProp] */
4127 cltype
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.color
;
4128 idtype
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.id
;
4132 if(cltype
>= var45
->type
->table_size
) {
4135 var46
= var45
->type
->type_table
[cltype
] == idtype
;
4143 var49
= "0, /* dummy */";
4145 var51
= string__NativeString__to_s_with_length(var49
, var50
);
4149 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var48
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4156 var56
= string__NativeString__to_s_with_length(var54
, var55
);
4160 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var53
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4161 var57
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_tables
]))(self
) /* vt_tables on <self:SeparateErasureCompiler>*/;
4162 var58
= ((val
* (*)(val
*, val
*))(var57
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var57
, var_mclass
) /* [] on <var57:Map[MClass, Array[nullable MPropDef]]>*/;
4163 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var58
) /* iterator on <var58:nullable Object(Array[nullable MPropDef])>*/;
4165 var60
= ((short int (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var59
) /* is_ok on <var59:Iterator[nullable Object]>*/;
4167 var61
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var59
) /* item on <var59:Iterator[nullable Object]>*/;
4170 if (var_vt
== NULL
) {
4171 var63
= 1; /* is null */
4173 var63
= 0; /* arg is null but recv is not */
4179 var66
= "{-1, NULL}, /* empty */";
4181 var68
= string__NativeString__to_s_with_length(var66
, var67
);
4185 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var65
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4188 var_is_null
= var69
;
4189 var70
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
4190 var71
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var70
) /* bound_mtype on <var70:MClassDef>*/;
4191 /* <var_vt:nullable MPropDef(MPropDef)> isa MVirtualTypeDef */
4192 cltype73
= type_model__MVirtualTypeDef
.color
;
4193 idtype74
= type_model__MVirtualTypeDef
.id
;
4194 if(cltype73
>= var_vt
->type
->table_size
) {
4197 var72
= var_vt
->type
->type_table
[cltype73
] == idtype74
;
4200 var_class_name
= var_vt
== NULL ?
"null" : var_vt
->type
->name
;
4201 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name
);
4202 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 358);
4205 var75
= ((val
* (*)(val
*))(var_vt
->class->vft
[COLOR_model__MVirtualTypeDef__bound
]))(var_vt
) /* bound on <var_vt:MPropDef(MVirtualTypeDef)>*/;
4206 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>*/;
4209 /* <var_bound:MType> isa MNullableType */
4210 cltype78
= type_model__MNullableType
.color
;
4211 idtype79
= type_model__MNullableType
.id
;
4212 if(cltype78
>= var_bound
->type
->table_size
) {
4215 var77
= var_bound
->type
->type_table
[cltype78
] == idtype79
;
4218 var80
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
4219 var81
= ((val
* (*)(val
*))(var80
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var80
) /* bound_mtype on <var80:MClassDef>*/;
4220 var82
= ((val
* (*)(val
*))(var_bound
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_bound
) /* mtype on <var_bound:MType(MNullableType)>*/;
4221 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>*/;
4224 var_is_null
= var84
;
4225 CONTINUE_label
: (void)0;
4227 BREAK_label
: (void)0;
4228 /* <var_bound:MType> isa MClassType */
4229 cltype86
= type_model__MClassType
.color
;
4230 idtype87
= type_model__MClassType
.id
;
4231 if(cltype86
>= var_bound
->type
->table_size
) {
4234 var85
= var_bound
->type
->type_table
[cltype86
] == idtype87
;
4237 var_class_name88
= var_bound
== NULL ?
"null" : var_bound
->type
->name
;
4238 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name88
);
4239 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 363);
4242 var89
= ((val
* (*)(val
*))(var_bound
->class->vft
[COLOR_model__MClassType__mclass
]))(var_bound
) /* mclass on <var_bound:MType(MClassType)>*/;
4243 var_vtclass
= var89
;
4249 var94
= string__NativeString__to_s_with_length(var92
, var93
);
4253 var95
= ((val
* (*)(val
*))(var_vtclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_vtclass
) /* c_name on <var_vtclass:MClass>*/;
4254 var96
= NEW_array__Array(&type_array__Arraykernel__Object
);
4255 { /* var96 = array_instance Array[Object] */
4257 var98
= NEW_array__NativeArray(var97
, &type_array__NativeArraykernel__Object
);
4258 ((struct instance_array__NativeArray
*)var98
)->values
[0] = (val
*) var91
;
4259 ((struct instance_array__NativeArray
*)var98
)->values
[1] = (val
*) var95
;
4260 ((void (*)(val
*, val
*, long))(var96
->class->vft
[COLOR_array__Array__with_native
]))(var96
, var98
, var97
) /* with_native on <var96:Array[Object]>*/;
4262 var99
= ((val
* (*)(val
*))(var96
->class->vft
[COLOR_string__Object__to_s
]))(var96
) /* to_s on <var96:Array[Object]>*/;
4263 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var99
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
4265 var101
= varonce100
;
4269 var104
= string__NativeString__to_s_with_length(var102
, var103
);
4271 varonce100
= var101
;
4274 var106
= varonce105
;
4276 var107
= ", &class_";
4278 var109
= string__NativeString__to_s_with_length(var107
, var108
);
4280 varonce105
= var106
;
4282 var110
= ((val
* (*)(val
*))(var_vtclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_vtclass
) /* c_name on <var_vtclass:MClass>*/;
4284 var112
= varonce111
;
4288 var115
= string__NativeString__to_s_with_length(var113
, var114
);
4290 varonce111
= var112
;
4293 var117
= varonce116
;
4297 var120
= string__NativeString__to_s_with_length(var118
, var119
);
4299 varonce116
= var117
;
4301 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
4302 { /* var121 = array_instance Array[Object] */
4304 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
4305 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var101
;
4306 var124
= BOX_kernel__Int(var_is_null
); /* autobox from Int to Object */
4307 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var124
;
4308 ((struct instance_array__NativeArray
*)var123
)->values
[2] = (val
*) var106
;
4309 ((struct instance_array__NativeArray
*)var123
)->values
[3] = (val
*) var110
;
4310 ((struct instance_array__NativeArray
*)var123
)->values
[4] = (val
*) var112
;
4311 ((struct instance_array__NativeArray
*)var123
)->values
[5] = (val
*) var_vt
;
4312 ((struct instance_array__NativeArray
*)var123
)->values
[6] = (val
*) var117
;
4313 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
4315 var125
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
4316 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var125
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4318 CONTINUE_label126
: (void)0;
4319 ((void (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var59
) /* next on <var59:Iterator[nullable Object]>*/;
4321 BREAK_label126
: (void)0;
4323 var128
= varonce127
;
4327 var131
= string__NativeString__to_s_with_length(var129
, var130
);
4329 varonce127
= var128
;
4331 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var128
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4333 var133
= varonce132
;
4337 var136
= string__NativeString__to_s_with_length(var134
, var135
);
4339 varonce132
= var133
;
4341 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var133
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4348 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_vts_table for (self: Object, MClass): Bool */
4349 short int VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__build_class_vts_table(val
* self
, val
* p0
) {
4350 short int var
/* : Bool */;
4351 short int var1
/* : Bool */;
4352 var1
= separate_erasure_compiler__SeparateErasureCompiler__build_class_vts_table(self
, p0
);
4357 /* method separate_erasure_compiler#SeparateErasureCompiler#retrieve_vt_bound for (self: SeparateErasureCompiler, MClassType, nullable MType): MType */
4358 val
* separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound(val
* self
, val
* p0
, val
* p1
) {
4359 val
* var
/* : MType */;
4360 val
* var_anchor
/* var anchor: MClassType */;
4361 val
* var_mtype
/* var mtype: nullable MType */;
4362 val
* var1
/* : null */;
4363 short int var2
/* : Bool */;
4364 static val
* varonce
;
4365 val
* var3
/* : String */;
4366 char* var4
/* : NativeString */;
4367 long var5
/* : Int */;
4368 val
* var6
/* : String */;
4369 short int var7
/* : Bool */;
4372 val
* var8
/* : MModule */;
4373 val
* var9
/* : MType */;
4374 short int var10
/* : Bool */;
4377 val
* var13
/* : MModule */;
4378 val
* var14
/* : MType */;
4382 if (var_mtype
== NULL
) {
4383 var2
= 1; /* is null */
4385 var2
= 0; /* arg is null but recv is not */
4391 var4
= "NOT YET IMPLEMENTED: retrieve_vt_bound on null";
4393 var6
= string__NativeString__to_s_with_length(var4
, var5
);
4397 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var3
) /* print on <self:SeparateErasureCompiler>*/;
4398 fprintf(stderr
, "Runtime error: %s", "Aborted");
4399 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 376);
4403 /* <var_mtype:nullable MType(MType)> isa MVirtualType */
4404 cltype
= type_model__MVirtualType
.color
;
4405 idtype
= type_model__MVirtualType
.id
;
4406 if(cltype
>= var_mtype
->type
->table_size
) {
4409 var7
= var_mtype
->type
->type_table
[cltype
] == idtype
;
4412 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
4413 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)>*/;
4417 /* <var_mtype:nullable MType(MType)> isa MParameterType */
4418 cltype11
= type_model__MParameterType
.color
;
4419 idtype12
= type_model__MParameterType
.id
;
4420 if(cltype11
>= var_mtype
->type
->table_size
) {
4423 var10
= var_mtype
->type
->type_table
[cltype11
] == idtype12
;
4426 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
4427 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)>*/;
4438 /* method separate_erasure_compiler#SeparateErasureCompiler#retrieve_vt_bound for (self: Object, MClassType, nullable MType): MType */
4439 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound(val
* self
, val
* p0
, val
* p1
) {
4440 val
* var
/* : MType */;
4441 val
* var1
/* : MType */;
4442 var1
= separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound(self
, p0
, p1
);
4447 /* method separate_erasure_compiler#SeparateErasureCompiler#new_visitor for (self: SeparateErasureCompiler): SeparateCompilerVisitor */
4448 val
* separate_erasure_compiler__SeparateErasureCompiler__new_visitor(val
* self
) {
4449 val
* var
/* : SeparateCompilerVisitor */;
4450 val
* var1
/* : SeparateErasureCompilerVisitor */;
4451 short int var2
/* : Bool */;
4454 const struct type
* type_struct
;
4455 const char* var_class_name
;
4456 var1
= NEW_separate_erasure_compiler__SeparateErasureCompilerVisitor(&type_separate_erasure_compiler__SeparateErasureCompilerVisitor
);
4457 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init
]))(var1
, self
) /* init on <var1:SeparateErasureCompilerVisitor>*/;
4458 /* <var1:SeparateErasureCompilerVisitor> isa VISITOR */
4459 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
4460 cltype
= type_struct
->color
;
4461 idtype
= type_struct
->id
;
4462 if(cltype
>= var1
->type
->table_size
) {
4465 var2
= var1
->type
->type_table
[cltype
] == idtype
;
4468 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
4469 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
4470 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 387);
4478 /* method separate_erasure_compiler#SeparateErasureCompiler#new_visitor for (self: Object): AbstractCompilerVisitor */
4479 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__new_visitor(val
* self
) {
4480 val
* var
/* : AbstractCompilerVisitor */;
4481 val
* var1
/* : SeparateCompilerVisitor */;
4482 var1
= separate_erasure_compiler__SeparateErasureCompiler__new_visitor(self
);
4487 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables for (self: SeparateErasureCompiler): Map[MClass, Array[nullable MClass]] */
4488 val
* separate_erasure_compiler__SeparateErasureCompiler__class_tables(val
* self
) {
4489 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
4490 val
* var1
/* : Map[MClass, Array[nullable MClass]] */;
4491 var1
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dclass_tables
].val
; /* @class_tables on <self:SeparateErasureCompiler> */
4493 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @class_tables");
4494 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 391);
4501 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables for (self: Object): Map[MClass, Array[nullable MClass]] */
4502 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_tables(val
* self
) {
4503 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
4504 val
* var1
/* : Map[MClass, Array[nullable MClass]] */;
4505 var1
= separate_erasure_compiler__SeparateErasureCompiler__class_tables(self
);
4510 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables= for (self: SeparateErasureCompiler, Map[MClass, Array[nullable MClass]]) */
4511 void separate_erasure_compiler__SeparateErasureCompiler__class_tables_61d(val
* self
, val
* p0
) {
4512 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dclass_tables
].val
= p0
; /* @class_tables on <self:SeparateErasureCompiler> */
4515 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables= for (self: Object, Map[MClass, Array[nullable MClass]]) */
4516 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_tables_61d(val
* self
, val
* p0
) {
4517 separate_erasure_compiler__SeparateErasureCompiler__class_tables_61d(self
, p0
);
4520 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables for (self: SeparateErasureCompiler): Map[MClass, Array[nullable MPropDef]] */
4521 val
* separate_erasure_compiler__SeparateErasureCompiler__vt_tables(val
* self
) {
4522 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
4523 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
4524 var1
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dvt_tables
].val
; /* @vt_tables on <self:SeparateErasureCompiler> */
4526 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @vt_tables");
4527 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 392);
4534 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables for (self: Object): Map[MClass, Array[nullable MPropDef]] */
4535 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__vt_tables(val
* self
) {
4536 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
4537 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
4538 var1
= separate_erasure_compiler__SeparateErasureCompiler__vt_tables(self
);
4543 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables= for (self: SeparateErasureCompiler, Map[MClass, Array[nullable MPropDef]]) */
4544 void separate_erasure_compiler__SeparateErasureCompiler__vt_tables_61d(val
* self
, val
* p0
) {
4545 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dvt_tables
].val
= p0
; /* @vt_tables on <self:SeparateErasureCompiler> */
4548 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables= for (self: Object, Map[MClass, Array[nullable MPropDef]]) */
4549 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__vt_tables_61d(val
* self
, val
* p0
) {
4550 separate_erasure_compiler__SeparateErasureCompiler__vt_tables_61d(self
, p0
);
4553 /* method separate_erasure_compiler#SeparateErasureCompiler#display_sizes for (self: SeparateErasureCompiler) */
4554 void separate_erasure_compiler__SeparateErasureCompiler__display_sizes(val
* self
) {
4555 static val
* varonce
;
4556 val
* var
/* : String */;
4557 char* var1
/* : NativeString */;
4558 long var2
/* : Int */;
4559 val
* var3
/* : String */;
4560 static val
* varonce4
;
4561 val
* var5
/* : String */;
4562 char* var6
/* : NativeString */;
4563 long var7
/* : Int */;
4564 val
* var8
/* : String */;
4565 long var9
/* : Int */;
4566 long var_total
/* var total: Int */;
4567 long var10
/* : Int */;
4568 long var_holes
/* var holes: Int */;
4569 val
* var11
/* : Map[MClass, Array[nullable MClass]] */;
4570 val
* var12
/* : MapIterator[Object, nullable Object] */;
4571 short int var13
/* : Bool */;
4572 val
* var14
/* : Object */;
4573 val
* var_t
/* var t: MClass */;
4574 val
* var15
/* : nullable Object */;
4575 val
* var_table
/* var table: Array[nullable MClass] */;
4576 long var16
/* : Int */;
4577 long var17
/* : Int */;
4578 long var19
/* : Int */;
4579 val
* var20
/* : Iterator[nullable Object] */;
4580 short int var21
/* : Bool */;
4581 val
* var22
/* : nullable Object */;
4582 val
* var_e
/* var e: nullable MClass */;
4583 val
* var23
/* : null */;
4584 short int var24
/* : Bool */;
4585 long var25
/* : Int */;
4586 long var26
/* : Int */;
4587 long var28
/* : Int */;
4588 static val
* varonce30
;
4589 val
* var31
/* : String */;
4590 char* var32
/* : NativeString */;
4591 long var33
/* : Int */;
4592 val
* var34
/* : String */;
4593 static val
* varonce35
;
4594 val
* var36
/* : String */;
4595 char* var37
/* : NativeString */;
4596 long var38
/* : Int */;
4597 val
* var39
/* : String */;
4598 val
* var40
/* : Array[Object] */;
4599 long var41
/* : Int */;
4600 val
* var42
/* : NativeArray[Object] */;
4601 val
* var43
/* : Object */;
4602 val
* var44
/* : Object */;
4603 val
* var45
/* : String */;
4604 static val
* varonce46
;
4605 val
* var47
/* : String */;
4606 char* var48
/* : NativeString */;
4607 long var49
/* : Int */;
4608 val
* var50
/* : String */;
4609 static val
* varonce51
;
4610 val
* var52
/* : String */;
4611 char* var53
/* : NativeString */;
4612 long var54
/* : Int */;
4613 val
* var55
/* : String */;
4614 long var56
/* : Int */;
4615 long var57
/* : Int */;
4616 val
* var58
/* : Map[MClass, Array[nullable MPropDef]] */;
4617 val
* var59
/* : MapIterator[Object, nullable Object] */;
4618 short int var60
/* : Bool */;
4619 val
* var61
/* : Object */;
4620 val
* var_t62
/* var t: MClass */;
4621 val
* var63
/* : nullable Object */;
4622 val
* var_table64
/* var table: Array[nullable MPropDef] */;
4623 long var65
/* : Int */;
4624 long var66
/* : Int */;
4625 long var68
/* : Int */;
4626 val
* var69
/* : Iterator[nullable Object] */;
4627 short int var70
/* : Bool */;
4628 val
* var71
/* : nullable Object */;
4629 val
* var_e72
/* var e: nullable MPropDef */;
4630 val
* var73
/* : null */;
4631 short int var74
/* : Bool */;
4632 long var75
/* : Int */;
4633 long var76
/* : Int */;
4634 long var78
/* : Int */;
4635 static val
* varonce81
;
4636 val
* var82
/* : String */;
4637 char* var83
/* : NativeString */;
4638 long var84
/* : Int */;
4639 val
* var85
/* : String */;
4640 static val
* varonce86
;
4641 val
* var87
/* : String */;
4642 char* var88
/* : NativeString */;
4643 long var89
/* : Int */;
4644 val
* var90
/* : String */;
4645 val
* var91
/* : Array[Object] */;
4646 long var92
/* : Int */;
4647 val
* var93
/* : NativeArray[Object] */;
4648 val
* var94
/* : Object */;
4649 val
* var95
/* : Object */;
4650 val
* var96
/* : String */;
4651 static val
* varonce97
;
4652 val
* var98
/* : String */;
4653 char* var99
/* : NativeString */;
4654 long var100
/* : Int */;
4655 val
* var101
/* : String */;
4656 static val
* varonce102
;
4657 val
* var103
/* : String */;
4658 char* var104
/* : NativeString */;
4659 long var105
/* : Int */;
4660 val
* var106
/* : String */;
4661 long var107
/* : Int */;
4662 long var108
/* : Int */;
4663 val
* var109
/* : Map[MClass, Array[nullable MPropDef]] */;
4664 val
* var110
/* : MapIterator[Object, nullable Object] */;
4665 short int var111
/* : Bool */;
4666 val
* var112
/* : Object */;
4667 val
* var_t113
/* var t: MClass */;
4668 val
* var114
/* : nullable Object */;
4669 val
* var_table115
/* var table: Array[nullable MPropDef] */;
4670 long var116
/* : Int */;
4671 long var117
/* : Int */;
4672 long var119
/* : Int */;
4673 val
* var120
/* : Iterator[nullable Object] */;
4674 short int var121
/* : Bool */;
4675 val
* var122
/* : nullable Object */;
4676 val
* var_e123
/* var e: nullable MPropDef */;
4677 val
* var124
/* : null */;
4678 short int var125
/* : Bool */;
4679 long var126
/* : Int */;
4680 long var127
/* : Int */;
4681 long var129
/* : Int */;
4682 static val
* varonce132
;
4683 val
* var133
/* : String */;
4684 char* var134
/* : NativeString */;
4685 long var135
/* : Int */;
4686 val
* var136
/* : String */;
4687 static val
* varonce137
;
4688 val
* var138
/* : String */;
4689 char* var139
/* : NativeString */;
4690 long var140
/* : Int */;
4691 val
* var141
/* : String */;
4692 val
* var142
/* : Array[Object] */;
4693 long var143
/* : Int */;
4694 val
* var144
/* : NativeArray[Object] */;
4695 val
* var145
/* : Object */;
4696 val
* var146
/* : Object */;
4697 val
* var147
/* : String */;
4698 static val
* varonce148
;
4699 val
* var149
/* : String */;
4700 char* var150
/* : NativeString */;
4701 long var151
/* : Int */;
4702 val
* var152
/* : String */;
4703 static val
* varonce153
;
4704 val
* var154
/* : String */;
4705 char* var155
/* : NativeString */;
4706 long var156
/* : Int */;
4707 val
* var157
/* : String */;
4708 long var158
/* : Int */;
4709 long var159
/* : Int */;
4710 val
* var160
/* : Map[MClass, Array[nullable MPropDef]] */;
4711 val
* var161
/* : MapIterator[Object, nullable Object] */;
4712 short int var162
/* : Bool */;
4713 val
* var163
/* : Object */;
4714 val
* var_t164
/* var t: MClass */;
4715 val
* var165
/* : nullable Object */;
4716 val
* var_table166
/* var table: Array[nullable MPropDef] */;
4717 long var167
/* : Int */;
4718 long var168
/* : Int */;
4719 long var170
/* : Int */;
4720 val
* var171
/* : Iterator[nullable Object] */;
4721 short int var172
/* : Bool */;
4722 val
* var173
/* : nullable Object */;
4723 val
* var_e174
/* var e: nullable MPropDef */;
4724 val
* var175
/* : null */;
4725 short int var176
/* : Bool */;
4726 long var177
/* : Int */;
4727 long var178
/* : Int */;
4728 long var180
/* : Int */;
4729 static val
* varonce183
;
4730 val
* var184
/* : String */;
4731 char* var185
/* : NativeString */;
4732 long var186
/* : Int */;
4733 val
* var187
/* : String */;
4734 static val
* varonce188
;
4735 val
* var189
/* : String */;
4736 char* var190
/* : NativeString */;
4737 long var191
/* : Int */;
4738 val
* var192
/* : String */;
4739 val
* var193
/* : Array[Object] */;
4740 long var194
/* : Int */;
4741 val
* var195
/* : NativeArray[Object] */;
4742 val
* var196
/* : Object */;
4743 val
* var197
/* : Object */;
4744 val
* var198
/* : String */;
4748 var1
= "# size of subtyping tables";
4750 var3
= string__NativeString__to_s_with_length(var1
, var2
);
4754 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var
) /* print on <self:SeparateErasureCompiler>*/;
4758 var6
= "\11total \11holes";
4760 var8
= string__NativeString__to_s_with_length(var6
, var7
);
4764 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var5
) /* print on <self:SeparateErasureCompiler>*/;
4769 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_tables
]))(self
) /* class_tables on <self:SeparateErasureCompiler>*/;
4770 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var11
) /* iterator on <var11:Map[MClass, Array[nullable MClass]]>*/;
4772 var13
= ((short int (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var12
) /* is_ok on <var12:MapIterator[Object, nullable Object]>*/;
4774 var14
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var12
) /* key on <var12:MapIterator[Object, nullable Object]>*/;
4776 var15
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var12
) /* item on <var12:MapIterator[Object, nullable Object]>*/;
4778 var16
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MClass]>*/;
4779 { /* Inline kernel#Int#+ (var_total,var16) */
4780 var19
= var_total
+ var16
;
4783 RET_LABEL18
:(void)0;
4786 var20
= ((val
* (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table
) /* iterator on <var_table:Array[nullable MClass]>*/;
4788 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var20
) /* is_ok on <var20:Iterator[nullable Object]>*/;
4790 var22
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var20
) /* item on <var20:Iterator[nullable Object]>*/;
4793 if (var_e
== NULL
) {
4794 var24
= 1; /* is null */
4796 var24
= 0; /* arg is null but recv is not */
4800 { /* Inline kernel#Int#+ (var_holes,var25) */
4801 var28
= var_holes
+ var25
;
4804 RET_LABEL27
:(void)0;
4809 CONTINUE_label
: (void)0;
4810 ((void (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var20
) /* next on <var20:Iterator[nullable Object]>*/;
4812 BREAK_label
: (void)0;
4813 CONTINUE_label29
: (void)0;
4814 ((void (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var12
) /* next on <var12:MapIterator[Object, nullable Object]>*/;
4816 BREAK_label29
: (void)0;
4822 var34
= string__NativeString__to_s_with_length(var32
, var33
);
4831 var39
= string__NativeString__to_s_with_length(var37
, var38
);
4835 var40
= NEW_array__Array(&type_array__Arraykernel__Object
);
4836 { /* var40 = array_instance Array[Object] */
4838 var42
= NEW_array__NativeArray(var41
, &type_array__NativeArraykernel__Object
);
4839 ((struct instance_array__NativeArray
*)var42
)->values
[0] = (val
*) var31
;
4840 var43
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
4841 ((struct instance_array__NativeArray
*)var42
)->values
[1] = (val
*) var43
;
4842 ((struct instance_array__NativeArray
*)var42
)->values
[2] = (val
*) var36
;
4843 var44
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
4844 ((struct instance_array__NativeArray
*)var42
)->values
[3] = (val
*) var44
;
4845 ((void (*)(val
*, val
*, long))(var40
->class->vft
[COLOR_array__Array__with_native
]))(var40
, var42
, var41
) /* with_native on <var40:Array[Object]>*/;
4847 var45
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_string__Object__to_s
]))(var40
) /* to_s on <var40:Array[Object]>*/;
4848 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var45
) /* print on <self:SeparateErasureCompiler>*/;
4852 var48
= "# size of resolution tables";
4854 var50
= string__NativeString__to_s_with_length(var48
, var49
);
4858 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var47
) /* print on <self:SeparateErasureCompiler>*/;
4862 var53
= "\11total \11holes";
4864 var55
= string__NativeString__to_s_with_length(var53
, var54
);
4868 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var52
) /* print on <self:SeparateErasureCompiler>*/;
4873 var58
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_tables
]))(self
) /* vt_tables on <self:SeparateErasureCompiler>*/;
4874 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var58
) /* iterator on <var58:Map[MClass, Array[nullable MPropDef]]>*/;
4876 var60
= ((short int (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var59
) /* is_ok on <var59:MapIterator[Object, nullable Object]>*/;
4878 var61
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var59
) /* key on <var59:MapIterator[Object, nullable Object]>*/;
4880 var63
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var59
) /* item on <var59:MapIterator[Object, nullable Object]>*/;
4881 var_table64
= var63
;
4882 var65
= ((long (*)(val
*))(var_table64
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table64
) /* length on <var_table64:Array[nullable MPropDef]>*/;
4883 { /* Inline kernel#Int#+ (var_total,var65) */
4884 var68
= var_total
+ var65
;
4887 RET_LABEL67
:(void)0;
4890 var69
= ((val
* (*)(val
*))(var_table64
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table64
) /* iterator on <var_table64:Array[nullable MPropDef]>*/;
4892 var70
= ((short int (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var69
) /* is_ok on <var69:Iterator[nullable Object]>*/;
4894 var71
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var69
) /* item on <var69:Iterator[nullable Object]>*/;
4897 if (var_e72
== NULL
) {
4898 var74
= 1; /* is null */
4900 var74
= 0; /* arg is null but recv is not */
4904 { /* Inline kernel#Int#+ (var_holes,var75) */
4905 var78
= var_holes
+ var75
;
4908 RET_LABEL77
:(void)0;
4913 CONTINUE_label79
: (void)0;
4914 ((void (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var69
) /* next on <var69:Iterator[nullable Object]>*/;
4916 BREAK_label79
: (void)0;
4917 CONTINUE_label80
: (void)0;
4918 ((void (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var59
) /* next on <var59:MapIterator[Object, nullable Object]>*/;
4920 BREAK_label80
: (void)0;
4926 var85
= string__NativeString__to_s_with_length(var83
, var84
);
4935 var90
= string__NativeString__to_s_with_length(var88
, var89
);
4939 var91
= NEW_array__Array(&type_array__Arraykernel__Object
);
4940 { /* var91 = array_instance Array[Object] */
4942 var93
= NEW_array__NativeArray(var92
, &type_array__NativeArraykernel__Object
);
4943 ((struct instance_array__NativeArray
*)var93
)->values
[0] = (val
*) var82
;
4944 var94
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
4945 ((struct instance_array__NativeArray
*)var93
)->values
[1] = (val
*) var94
;
4946 ((struct instance_array__NativeArray
*)var93
)->values
[2] = (val
*) var87
;
4947 var95
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
4948 ((struct instance_array__NativeArray
*)var93
)->values
[3] = (val
*) var95
;
4949 ((void (*)(val
*, val
*, long))(var91
->class->vft
[COLOR_array__Array__with_native
]))(var91
, var93
, var92
) /* with_native on <var91:Array[Object]>*/;
4951 var96
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_string__Object__to_s
]))(var91
) /* to_s on <var91:Array[Object]>*/;
4952 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var96
) /* print on <self:SeparateErasureCompiler>*/;
4956 var99
= "# size of methods tables";
4958 var101
= string__NativeString__to_s_with_length(var99
, var100
);
4962 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var98
) /* print on <self:SeparateErasureCompiler>*/;
4964 var103
= varonce102
;
4966 var104
= "\11total \11holes";
4968 var106
= string__NativeString__to_s_with_length(var104
, var105
);
4970 varonce102
= var103
;
4972 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var103
) /* print on <self:SeparateErasureCompiler>*/;
4977 var109
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_tables
]))(self
) /* method_tables on <self:SeparateErasureCompiler>*/;
4978 var110
= ((val
* (*)(val
*))(var109
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var109
) /* iterator on <var109:Map[MClass, Array[nullable MPropDef]]>*/;
4980 var111
= ((short int (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var110
) /* is_ok on <var110:MapIterator[Object, nullable Object]>*/;
4982 var112
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var110
) /* key on <var110:MapIterator[Object, nullable Object]>*/;
4984 var114
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var110
) /* item on <var110:MapIterator[Object, nullable Object]>*/;
4985 var_table115
= var114
;
4986 var116
= ((long (*)(val
*))(var_table115
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table115
) /* length on <var_table115:Array[nullable MPropDef]>*/;
4987 { /* Inline kernel#Int#+ (var_total,var116) */
4988 var119
= var_total
+ var116
;
4991 RET_LABEL118
:(void)0;
4994 var120
= ((val
* (*)(val
*))(var_table115
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table115
) /* iterator on <var_table115:Array[nullable MPropDef]>*/;
4996 var121
= ((short int (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var120
) /* is_ok on <var120:Iterator[nullable Object]>*/;
4998 var122
= ((val
* (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var120
) /* item on <var120:Iterator[nullable Object]>*/;
5001 if (var_e123
== NULL
) {
5002 var125
= 1; /* is null */
5004 var125
= 0; /* arg is null but recv is not */
5008 { /* Inline kernel#Int#+ (var_holes,var126) */
5009 var129
= var_holes
+ var126
;
5012 RET_LABEL128
:(void)0;
5017 CONTINUE_label130
: (void)0;
5018 ((void (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var120
) /* next on <var120:Iterator[nullable Object]>*/;
5020 BREAK_label130
: (void)0;
5021 CONTINUE_label131
: (void)0;
5022 ((void (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var110
) /* next on <var110:MapIterator[Object, nullable Object]>*/;
5024 BREAK_label131
: (void)0;
5026 var133
= varonce132
;
5030 var136
= string__NativeString__to_s_with_length(var134
, var135
);
5032 varonce132
= var133
;
5035 var138
= varonce137
;
5039 var141
= string__NativeString__to_s_with_length(var139
, var140
);
5041 varonce137
= var138
;
5043 var142
= NEW_array__Array(&type_array__Arraykernel__Object
);
5044 { /* var142 = array_instance Array[Object] */
5046 var144
= NEW_array__NativeArray(var143
, &type_array__NativeArraykernel__Object
);
5047 ((struct instance_array__NativeArray
*)var144
)->values
[0] = (val
*) var133
;
5048 var145
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
5049 ((struct instance_array__NativeArray
*)var144
)->values
[1] = (val
*) var145
;
5050 ((struct instance_array__NativeArray
*)var144
)->values
[2] = (val
*) var138
;
5051 var146
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
5052 ((struct instance_array__NativeArray
*)var144
)->values
[3] = (val
*) var146
;
5053 ((void (*)(val
*, val
*, long))(var142
->class->vft
[COLOR_array__Array__with_native
]))(var142
, var144
, var143
) /* with_native on <var142:Array[Object]>*/;
5055 var147
= ((val
* (*)(val
*))(var142
->class->vft
[COLOR_string__Object__to_s
]))(var142
) /* to_s on <var142:Array[Object]>*/;
5056 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var147
) /* print on <self:SeparateErasureCompiler>*/;
5058 var149
= varonce148
;
5060 var150
= "# size of attributes tables";
5062 var152
= string__NativeString__to_s_with_length(var150
, var151
);
5064 varonce148
= var149
;
5066 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var149
) /* print on <self:SeparateErasureCompiler>*/;
5068 var154
= varonce153
;
5070 var155
= "\11total \11holes";
5072 var157
= string__NativeString__to_s_with_length(var155
, var156
);
5074 varonce153
= var154
;
5076 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var154
) /* print on <self:SeparateErasureCompiler>*/;
5081 var160
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_tables
]))(self
) /* attr_tables on <self:SeparateErasureCompiler>*/;
5082 var161
= ((val
* (*)(val
*))(var160
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var160
) /* iterator on <var160:Map[MClass, Array[nullable MPropDef]]>*/;
5084 var162
= ((short int (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var161
) /* is_ok on <var161:MapIterator[Object, nullable Object]>*/;
5086 var163
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var161
) /* key on <var161:MapIterator[Object, nullable Object]>*/;
5088 var165
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var161
) /* item on <var161:MapIterator[Object, nullable Object]>*/;
5089 var_table166
= var165
;
5090 var167
= ((long (*)(val
*))(var_table166
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table166
) /* length on <var_table166:Array[nullable MPropDef]>*/;
5091 { /* Inline kernel#Int#+ (var_total,var167) */
5092 var170
= var_total
+ var167
;
5095 RET_LABEL169
:(void)0;
5098 var171
= ((val
* (*)(val
*))(var_table166
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table166
) /* iterator on <var_table166:Array[nullable MPropDef]>*/;
5100 var172
= ((short int (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var171
) /* is_ok on <var171:Iterator[nullable Object]>*/;
5102 var173
= ((val
* (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var171
) /* item on <var171:Iterator[nullable Object]>*/;
5105 if (var_e174
== NULL
) {
5106 var176
= 1; /* is null */
5108 var176
= 0; /* arg is null but recv is not */
5112 { /* Inline kernel#Int#+ (var_holes,var177) */
5113 var180
= var_holes
+ var177
;
5116 RET_LABEL179
:(void)0;
5121 CONTINUE_label181
: (void)0;
5122 ((void (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var171
) /* next on <var171:Iterator[nullable Object]>*/;
5124 BREAK_label181
: (void)0;
5125 CONTINUE_label182
: (void)0;
5126 ((void (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var161
) /* next on <var161:MapIterator[Object, nullable Object]>*/;
5128 BREAK_label182
: (void)0;
5130 var184
= varonce183
;
5134 var187
= string__NativeString__to_s_with_length(var185
, var186
);
5136 varonce183
= var184
;
5139 var189
= varonce188
;
5143 var192
= string__NativeString__to_s_with_length(var190
, var191
);
5145 varonce188
= var189
;
5147 var193
= NEW_array__Array(&type_array__Arraykernel__Object
);
5148 { /* var193 = array_instance Array[Object] */
5150 var195
= NEW_array__NativeArray(var194
, &type_array__NativeArraykernel__Object
);
5151 ((struct instance_array__NativeArray
*)var195
)->values
[0] = (val
*) var184
;
5152 var196
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
5153 ((struct instance_array__NativeArray
*)var195
)->values
[1] = (val
*) var196
;
5154 ((struct instance_array__NativeArray
*)var195
)->values
[2] = (val
*) var189
;
5155 var197
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
5156 ((struct instance_array__NativeArray
*)var195
)->values
[3] = (val
*) var197
;
5157 ((void (*)(val
*, val
*, long))(var193
->class->vft
[COLOR_array__Array__with_native
]))(var193
, var195
, var194
) /* with_native on <var193:Array[Object]>*/;
5159 var198
= ((val
* (*)(val
*))(var193
->class->vft
[COLOR_string__Object__to_s
]))(var193
) /* to_s on <var193:Array[Object]>*/;
5160 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var198
) /* print on <self:SeparateErasureCompiler>*/;
5163 /* method separate_erasure_compiler#SeparateErasureCompiler#display_sizes for (self: Object) */
5164 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__display_sizes(val
* self
) {
5165 separate_erasure_compiler__SeparateErasureCompiler__display_sizes(self
);
5168 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#compile_callsite for (self: SeparateErasureCompilerVisitor, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
5169 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite(val
* self
, val
* p0
, val
* p1
) {
5170 val
* var
/* : nullable RuntimeVariable */;
5171 val
* var_callsite
/* var callsite: CallSite */;
5172 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
5173 val
* var1
/* : nullable RuntimeVariable */;
5174 val
* var_res
/* var res: nullable RuntimeVariable */;
5175 short int var2
/* : Bool */;
5176 short int var3
/* : Bool */;
5177 short int var_
/* var : Bool */;
5178 val
* var4
/* : AbstractCompiler */;
5179 short int var5
/* : Bool */;
5182 const char* var_class_name
;
5183 val
* var6
/* : ModelBuilder */;
5184 val
* var7
/* : ToolContext */;
5185 val
* var8
/* : OptionBool */;
5186 val
* var9
/* : nullable Object */;
5187 short int var10
/* : Bool */;
5188 short int var11
/* : Bool */;
5189 val
* var12
/* : null */;
5190 short int var13
/* : Bool */;
5191 val
* var14
/* : MSignature */;
5192 val
* var15
/* : nullable MType */;
5193 val
* var_mtype
/* var mtype: nullable MType */;
5194 val
* var16
/* : null */;
5195 short int var17
/* : Bool */;
5196 static val
* varonce
;
5197 val
* var18
/* : String */;
5198 char* var19
/* : NativeString */;
5199 long var20
/* : Int */;
5200 val
* var21
/* : String */;
5201 static val
* varonce22
;
5202 val
* var23
/* : String */;
5203 char* var24
/* : NativeString */;
5204 long var25
/* : Int */;
5205 val
* var26
/* : String */;
5206 static val
* varonce27
;
5207 val
* var28
/* : String */;
5208 char* var29
/* : NativeString */;
5209 long var30
/* : Int */;
5210 val
* var31
/* : String */;
5211 val
* var32
/* : Array[Object] */;
5212 long var33
/* : Int */;
5213 val
* var34
/* : NativeArray[Object] */;
5214 val
* var35
/* : String */;
5215 static val
* varonce36
;
5216 val
* var37
/* : String */;
5217 char* var38
/* : NativeString */;
5218 long var39
/* : Int */;
5219 val
* var40
/* : String */;
5220 val
* var41
/* : RuntimeVariable */;
5221 val
* var_cond
/* var cond: RuntimeVariable */;
5222 static val
* varonce42
;
5223 val
* var43
/* : String */;
5224 char* var44
/* : NativeString */;
5225 long var45
/* : Int */;
5226 val
* var46
/* : String */;
5227 static val
* varonce47
;
5228 val
* var48
/* : String */;
5229 char* var49
/* : NativeString */;
5230 long var50
/* : Int */;
5231 val
* var51
/* : String */;
5232 val
* var52
/* : Array[Object] */;
5233 long var53
/* : Int */;
5234 val
* var54
/* : NativeArray[Object] */;
5235 val
* var55
/* : String */;
5236 static val
* varonce56
;
5237 val
* var57
/* : String */;
5238 char* var58
/* : NativeString */;
5239 long var59
/* : Int */;
5240 val
* var60
/* : String */;
5241 static val
* varonce61
;
5242 val
* var62
/* : String */;
5243 char* var63
/* : NativeString */;
5244 long var64
/* : Int */;
5245 val
* var65
/* : String */;
5248 var1
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite
]))(self
, p0
, p1
) /* compile_callsite on <self:SeparateErasureCompilerVisitor>*/;
5250 var3
= ((short int (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__erasure_cast
]))(var_callsite
) /* erasure_cast on <var_callsite:CallSite>*/;
5253 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
5254 /* <var4:AbstractCompiler(SeparateCompiler)> isa SeparateErasureCompiler */
5255 cltype
= type_separate_erasure_compiler__SeparateErasureCompiler
.color
;
5256 idtype
= type_separate_erasure_compiler__SeparateErasureCompiler
.id
;
5257 if(cltype
>= var4
->type
->table_size
) {
5260 var5
= var4
->type
->type_table
[cltype
] == idtype
;
5263 var_class_name
= var4
== NULL ?
"null" : var4
->type
->name
;
5264 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "SeparateErasureCompiler", var_class_name
);
5265 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 444);
5268 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var4
) /* modelbuilder on <var4:SeparateCompiler(SeparateErasureCompiler)>*/;
5269 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var6
) /* toolcontext on <var6:ModelBuilder>*/;
5270 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>*/;
5271 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_opts__Option__value
]))(var8
) /* value on <var8:OptionBool>*/;
5272 var10
= ((struct instance_kernel__Bool
*)var9
)->value
; /* autounbox from nullable Object to Bool */;
5280 if (var_res
== NULL
) {
5281 var13
= 0; /* is null */
5283 var13
= 1; /* arg is null and recv is not */
5286 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5287 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 445);
5290 var14
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_callsite
) /* msignature on <var_callsite:CallSite>*/;
5291 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var14
) /* return_mtype on <var14:MSignature>*/;
5294 if (var_mtype
== NULL
) {
5295 var17
= 0; /* is null */
5297 var17
= 1; /* arg is null and recv is not */
5300 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5301 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 447);
5307 var19
= "/* Erasure cast for return ";
5309 var21
= string__NativeString__to_s_with_length(var19
, var20
);
5318 var26
= string__NativeString__to_s_with_length(var24
, var25
);
5327 var31
= string__NativeString__to_s_with_length(var29
, var30
);
5331 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
5332 { /* var32 = array_instance Array[Object] */
5334 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
5335 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var18
;
5336 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_res
;
5337 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var23
;
5338 ((struct instance_array__NativeArray
*)var34
)->values
[3] = (val
*) var_mtype
;
5339 ((struct instance_array__NativeArray
*)var34
)->values
[4] = (val
*) var28
;
5340 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
5342 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
5343 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var35
) /* add on <self:SeparateErasureCompilerVisitor>*/;
5349 var40
= string__NativeString__to_s_with_length(var38
, var39
);
5353 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>*/;
5360 var46
= string__NativeString__to_s_with_length(var44
, var45
);
5369 var51
= string__NativeString__to_s_with_length(var49
, var50
);
5373 var52
= NEW_array__Array(&type_array__Arraykernel__Object
);
5374 { /* var52 = array_instance Array[Object] */
5376 var54
= NEW_array__NativeArray(var53
, &type_array__NativeArraykernel__Object
);
5377 ((struct instance_array__NativeArray
*)var54
)->values
[0] = (val
*) var43
;
5378 ((struct instance_array__NativeArray
*)var54
)->values
[1] = (val
*) var_cond
;
5379 ((struct instance_array__NativeArray
*)var54
)->values
[2] = (val
*) var48
;
5380 ((void (*)(val
*, val
*, long))(var52
->class->vft
[COLOR_array__Array__with_native
]))(var52
, var54
, var53
) /* with_native on <var52:Array[Object]>*/;
5382 var55
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_string__Object__to_s
]))(var52
) /* to_s on <var52:Array[Object]>*/;
5383 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var55
) /* add on <self:SeparateErasureCompilerVisitor>*/;
5387 var58
= "Cast failed";
5389 var60
= string__NativeString__to_s_with_length(var58
, var59
);
5393 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(self
, var57
) /* add_abort on <self:SeparateErasureCompilerVisitor>*/;
5399 var65
= string__NativeString__to_s_with_length(var63
, var64
);
5403 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var62
) /* add on <self:SeparateErasureCompilerVisitor>*/;
5411 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#compile_callsite for (self: Object, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
5412 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite(val
* self
, val
* p0
, val
* p1
) {
5413 val
* var
/* : nullable RuntimeVariable */;
5414 val
* var1
/* : nullable RuntimeVariable */;
5415 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite(self
, p0
, p1
);
5420 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#init_instance for (self: SeparateErasureCompilerVisitor, MClassType): RuntimeVariable */
5421 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__init_instance(val
* self
, val
* p0
) {
5422 val
* var
/* : RuntimeVariable */;
5423 val
* var_mtype
/* var mtype: MClassType */;
5424 static val
* varonce
;
5425 val
* var1
/* : String */;
5426 char* var2
/* : NativeString */;
5427 long var3
/* : Int */;
5428 val
* var4
/* : String */;
5429 val
* var5
/* : MClass */;
5430 val
* var6
/* : String */;
5431 val
* var7
/* : Array[Object] */;
5432 long var8
/* : Int */;
5433 val
* var9
/* : NativeArray[Object] */;
5434 val
* var10
/* : String */;
5435 static val
* varonce11
;
5436 val
* var12
/* : String */;
5437 char* var13
/* : NativeString */;
5438 long var14
/* : Int */;
5439 val
* var15
/* : String */;
5440 val
* var16
/* : MClass */;
5441 val
* var17
/* : String */;
5442 static val
* varonce18
;
5443 val
* var19
/* : String */;
5444 char* var20
/* : NativeString */;
5445 long var21
/* : Int */;
5446 val
* var22
/* : String */;
5447 val
* var23
/* : Array[Object] */;
5448 long var24
/* : Int */;
5449 val
* var25
/* : NativeArray[Object] */;
5450 val
* var26
/* : String */;
5451 val
* var27
/* : RuntimeVariable */;
5458 var4
= string__NativeString__to_s_with_length(var2
, var3
);
5462 var5
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
5463 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var5
) /* c_name on <var5:MClass>*/;
5464 var7
= NEW_array__Array(&type_array__Arraykernel__Object
);
5465 { /* var7 = array_instance Array[Object] */
5467 var9
= NEW_array__NativeArray(var8
, &type_array__NativeArraykernel__Object
);
5468 ((struct instance_array__NativeArray
*)var9
)->values
[0] = (val
*) var1
;
5469 ((struct instance_array__NativeArray
*)var9
)->values
[1] = (val
*) var6
;
5470 ((void (*)(val
*, val
*, long))(var7
->class->vft
[COLOR_array__Array__with_native
]))(var7
, var9
, var8
) /* with_native on <var7:Array[Object]>*/;
5472 var10
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_string__Object__to_s
]))(var7
) /* to_s on <var7:Array[Object]>*/;
5473 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var10
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
5479 var15
= string__NativeString__to_s_with_length(var13
, var14
);
5483 var16
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
5484 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var16
) /* c_name on <var16:MClass>*/;
5490 var22
= string__NativeString__to_s_with_length(var20
, var21
);
5494 var23
= NEW_array__Array(&type_array__Arraykernel__Object
);
5495 { /* var23 = array_instance Array[Object] */
5497 var25
= NEW_array__NativeArray(var24
, &type_array__NativeArraykernel__Object
);
5498 ((struct instance_array__NativeArray
*)var25
)->values
[0] = (val
*) var12
;
5499 ((struct instance_array__NativeArray
*)var25
)->values
[1] = (val
*) var17
;
5500 ((struct instance_array__NativeArray
*)var25
)->values
[2] = (val
*) var19
;
5501 ((void (*)(val
*, val
*, long))(var23
->class->vft
[COLOR_array__Array__with_native
]))(var23
, var25
, var24
) /* with_native on <var23:Array[Object]>*/;
5503 var26
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_string__Object__to_s
]))(var23
) /* to_s on <var23:Array[Object]>*/;
5504 var27
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var26
, var_mtype
) /* new_expr on <self:SeparateErasureCompilerVisitor>*/;
5510 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#init_instance for (self: Object, MClassType): RuntimeVariable */
5511 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__init_instance(val
* self
, val
* p0
) {
5512 val
* var
/* : RuntimeVariable */;
5513 val
* var1
/* : RuntimeVariable */;
5514 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__init_instance(self
, p0
);
5519 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#type_test for (self: SeparateErasureCompilerVisitor, RuntimeVariable, MType, String): RuntimeVariable */
5520 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5521 val
* var
/* : RuntimeVariable */;
5522 val
* var_value
/* var value: RuntimeVariable */;
5523 val
* var_mtype
/* var mtype: MType */;
5524 val
* var_tag
/* var tag: String */;
5525 static val
* varonce
;
5526 val
* var1
/* : String */;
5527 char* var2
/* : NativeString */;
5528 long var3
/* : Int */;
5529 val
* var4
/* : String */;
5530 val
* var5
/* : String */;
5531 static val
* varonce6
;
5532 val
* var7
/* : String */;
5533 char* var8
/* : NativeString */;
5534 long var9
/* : Int */;
5535 val
* var10
/* : String */;
5536 static val
* varonce11
;
5537 val
* var12
/* : String */;
5538 char* var13
/* : NativeString */;
5539 long var14
/* : Int */;
5540 val
* var15
/* : String */;
5541 val
* var16
/* : Array[Object] */;
5542 long var17
/* : Int */;
5543 val
* var18
/* : NativeArray[Object] */;
5544 val
* var19
/* : String */;
5545 val
* var20
/* : MClassType */;
5546 val
* var21
/* : RuntimeVariable */;
5547 val
* var_res
/* var res: RuntimeVariable */;
5548 static val
* varonce22
;
5549 val
* var23
/* : String */;
5550 char* var24
/* : NativeString */;
5551 long var25
/* : Int */;
5552 val
* var26
/* : String */;
5553 val
* var27
/* : String */;
5554 val
* var_cltype
/* var cltype: String */;
5555 static val
* varonce28
;
5556 val
* var29
/* : String */;
5557 char* var30
/* : NativeString */;
5558 long var31
/* : Int */;
5559 val
* var32
/* : String */;
5560 static val
* varonce33
;
5561 val
* var34
/* : String */;
5562 char* var35
/* : NativeString */;
5563 long var36
/* : Int */;
5564 val
* var37
/* : String */;
5565 val
* var38
/* : Array[Object] */;
5566 long var39
/* : Int */;
5567 val
* var40
/* : NativeArray[Object] */;
5568 val
* var41
/* : String */;
5569 static val
* varonce42
;
5570 val
* var43
/* : String */;
5571 char* var44
/* : NativeString */;
5572 long var45
/* : Int */;
5573 val
* var46
/* : String */;
5574 val
* var47
/* : String */;
5575 val
* var_idtype
/* var idtype: String */;
5576 static val
* varonce48
;
5577 val
* var49
/* : String */;
5578 char* var50
/* : NativeString */;
5579 long var51
/* : Int */;
5580 val
* var52
/* : String */;
5581 static val
* varonce53
;
5582 val
* var54
/* : String */;
5583 char* var55
/* : NativeString */;
5584 long var56
/* : Int */;
5585 val
* var57
/* : String */;
5586 val
* var58
/* : Array[Object] */;
5587 long var59
/* : Int */;
5588 val
* var60
/* : NativeArray[Object] */;
5589 val
* var61
/* : String */;
5590 short int var62
/* : Bool */;
5591 short int var_maybe_null
/* var maybe_null: Bool */;
5592 static val
* varonce63
;
5593 val
* var64
/* : String */;
5594 char* var65
/* : NativeString */;
5595 long var66
/* : Int */;
5596 val
* var67
/* : String */;
5597 val
* var_accept_null
/* var accept_null: String */;
5598 short int var68
/* : Bool */;
5601 val
* var69
/* : MType */;
5602 static val
* varonce70
;
5603 val
* var71
/* : String */;
5604 char* var72
/* : NativeString */;
5605 long var73
/* : Int */;
5606 val
* var74
/* : String */;
5607 short int var75
/* : Bool */;
5610 val
* var78
/* : nullable Frame */;
5611 val
* var79
/* : MPropDef */;
5612 val
* var80
/* : MClassDef */;
5613 val
* var81
/* : MClassType */;
5614 val
* var82
/* : nullable Frame */;
5615 val
* var83
/* : MPropDef */;
5616 val
* var84
/* : MClassDef */;
5617 val
* var85
/* : MClassType */;
5618 val
* var86
/* : nullable Frame */;
5619 val
* var87
/* : MPropDef */;
5620 val
* var88
/* : MClassDef */;
5621 val
* var89
/* : MModule */;
5622 short int var90
/* : Bool */;
5623 val
* var91
/* : MType */;
5624 short int var92
/* : Bool */;
5627 val
* var95
/* : MType */;
5628 static val
* varonce96
;
5629 val
* var97
/* : String */;
5630 char* var98
/* : NativeString */;
5631 long var99
/* : Int */;
5632 val
* var100
/* : String */;
5633 val
* var101
/* : MType */;
5634 val
* var102
/* : nullable Frame */;
5635 val
* var103
/* : MPropDef */;
5636 val
* var104
/* : MClassDef */;
5637 val
* var105
/* : MModule */;
5638 val
* var106
/* : nullable Frame */;
5639 val
* var107
/* : MPropDef */;
5640 val
* var108
/* : MClassDef */;
5641 val
* var109
/* : MClassType */;
5642 short int var110
/* : Bool */;
5643 static val
* varonce111
;
5644 val
* var112
/* : String */;
5645 char* var113
/* : NativeString */;
5646 long var114
/* : Int */;
5647 val
* var115
/* : String */;
5648 val
* var116
/* : String */;
5649 static val
* varonce117
;
5650 val
* var118
/* : String */;
5651 char* var119
/* : NativeString */;
5652 long var120
/* : Int */;
5653 val
* var121
/* : String */;
5654 static val
* varonce122
;
5655 val
* var123
/* : String */;
5656 char* var124
/* : NativeString */;
5657 long var125
/* : Int */;
5658 val
* var126
/* : String */;
5659 val
* var127
/* : Array[Object] */;
5660 long var128
/* : Int */;
5661 val
* var129
/* : NativeArray[Object] */;
5662 val
* var130
/* : String */;
5663 val
* var131
/* : AbstractCompiler */;
5664 val
* var132
/* : ModelBuilder */;
5665 val
* var133
/* : ToolContext */;
5666 val
* var134
/* : OptionBool */;
5667 val
* var135
/* : nullable Object */;
5668 short int var136
/* : Bool */;
5669 val
* var137
/* : AbstractCompiler */;
5670 val
* var138
/* : HashMap[String, Int] */;
5671 val
* var_
/* var : HashMap[String, Int] */;
5672 val
* var_139
/* var : String */;
5673 val
* var140
/* : nullable Object */;
5674 long var141
/* : Int */;
5675 long var142
/* : Int */;
5676 long var144
/* : Int */;
5677 long var145
/* : Int */;
5678 val
* var146
/* : nullable Object */;
5679 static val
* varonce147
;
5680 val
* var148
/* : String */;
5681 char* var149
/* : NativeString */;
5682 long var150
/* : Int */;
5683 val
* var151
/* : String */;
5684 static val
* varonce152
;
5685 val
* var153
/* : String */;
5686 char* var154
/* : NativeString */;
5687 long var155
/* : Int */;
5688 val
* var156
/* : String */;
5689 val
* var157
/* : Array[Object] */;
5690 long var158
/* : Int */;
5691 val
* var159
/* : NativeArray[Object] */;
5692 val
* var160
/* : String */;
5693 val
* var161
/* : MType */;
5694 val
* var162
/* : String */;
5695 static val
* varonce163
;
5696 val
* var164
/* : String */;
5697 char* var165
/* : NativeString */;
5698 long var166
/* : Int */;
5699 val
* var167
/* : String */;
5700 short int var168
/* : Bool */;
5701 val
* var169
/* : Array[Object] */;
5702 long var170
/* : Int */;
5703 val
* var_171
/* var : Array[Object] */;
5704 static val
* varonce172
;
5705 val
* var173
/* : String */;
5706 char* var174
/* : NativeString */;
5707 long var175
/* : Int */;
5708 val
* var176
/* : String */;
5709 static val
* varonce177
;
5710 val
* var178
/* : String */;
5711 char* var179
/* : NativeString */;
5712 long var180
/* : Int */;
5713 val
* var181
/* : String */;
5714 val
* var182
/* : String */;
5715 val
* var_class_ptr
/* var class_ptr: nullable Object */;
5716 val
* var183
/* : MType */;
5717 short int var184
/* : Bool */;
5720 const char* var_class_name
;
5721 val
* var187
/* : MClass */;
5722 val
* var_mclass
/* var mclass: MClass */;
5723 static val
* varonce188
;
5724 val
* var189
/* : String */;
5725 char* var190
/* : NativeString */;
5726 long var191
/* : Int */;
5727 val
* var192
/* : String */;
5728 val
* var193
/* : String */;
5729 val
* var194
/* : Array[Object] */;
5730 long var195
/* : Int */;
5731 val
* var196
/* : NativeArray[Object] */;
5732 val
* var197
/* : String */;
5733 val
* var198
/* : Array[Object] */;
5734 long var199
/* : Int */;
5735 val
* var_200
/* var : Array[Object] */;
5736 static val
* varonce201
;
5737 val
* var202
/* : String */;
5738 char* var203
/* : NativeString */;
5739 long var204
/* : Int */;
5740 val
* var205
/* : String */;
5741 val
* var206
/* : String */;
5742 static val
* varonce207
;
5743 val
* var208
/* : String */;
5744 char* var209
/* : NativeString */;
5745 long var210
/* : Int */;
5746 val
* var211
/* : String */;
5747 val
* var212
/* : String */;
5748 short int var213
/* : Bool */;
5751 static val
* varonce216
;
5752 val
* var217
/* : String */;
5753 char* var218
/* : NativeString */;
5754 long var219
/* : Int */;
5755 val
* var220
/* : String */;
5756 val
* var221
/* : MClass */;
5757 val
* var222
/* : String */;
5758 val
* var223
/* : Array[Object] */;
5759 long var224
/* : Int */;
5760 val
* var225
/* : NativeArray[Object] */;
5761 val
* var226
/* : String */;
5762 static val
* varonce227
;
5763 val
* var228
/* : String */;
5764 char* var229
/* : NativeString */;
5765 long var230
/* : Int */;
5766 val
* var231
/* : String */;
5767 val
* var232
/* : MClass */;
5768 val
* var233
/* : String */;
5769 static val
* varonce234
;
5770 val
* var235
/* : String */;
5771 char* var236
/* : NativeString */;
5772 long var237
/* : Int */;
5773 val
* var238
/* : String */;
5774 val
* var239
/* : Array[Object] */;
5775 long var240
/* : Int */;
5776 val
* var241
/* : NativeArray[Object] */;
5777 val
* var242
/* : String */;
5778 static val
* varonce243
;
5779 val
* var244
/* : String */;
5780 char* var245
/* : NativeString */;
5781 long var246
/* : Int */;
5782 val
* var247
/* : String */;
5783 val
* var248
/* : MClass */;
5784 val
* var249
/* : String */;
5785 static val
* varonce250
;
5786 val
* var251
/* : String */;
5787 char* var252
/* : NativeString */;
5788 long var253
/* : Int */;
5789 val
* var254
/* : String */;
5790 val
* var255
/* : Array[Object] */;
5791 long var256
/* : Int */;
5792 val
* var257
/* : NativeArray[Object] */;
5793 val
* var258
/* : String */;
5794 val
* var259
/* : AbstractCompiler */;
5795 val
* var260
/* : ModelBuilder */;
5796 val
* var261
/* : ToolContext */;
5797 val
* var262
/* : OptionBool */;
5798 val
* var263
/* : nullable Object */;
5799 short int var264
/* : Bool */;
5800 val
* var265
/* : AbstractCompiler */;
5801 val
* var266
/* : HashMap[String, Int] */;
5802 val
* var_267
/* var : HashMap[String, Int] */;
5803 val
* var_268
/* var : String */;
5804 val
* var269
/* : nullable Object */;
5805 long var270
/* : Int */;
5806 long var271
/* : Int */;
5807 long var273
/* : Int */;
5808 long var274
/* : Int */;
5809 val
* var275
/* : nullable Object */;
5810 static val
* varonce276
;
5811 val
* var277
/* : String */;
5812 char* var278
/* : NativeString */;
5813 long var279
/* : Int */;
5814 val
* var280
/* : String */;
5815 static val
* varonce281
;
5816 val
* var282
/* : String */;
5817 char* var283
/* : NativeString */;
5818 long var284
/* : Int */;
5819 val
* var285
/* : String */;
5820 val
* var286
/* : Array[Object] */;
5821 long var287
/* : Int */;
5822 val
* var288
/* : NativeArray[Object] */;
5823 val
* var289
/* : String */;
5824 short int var290
/* : Bool */;
5827 val
* var293
/* : nullable Frame */;
5828 val
* var294
/* : Array[RuntimeVariable] */;
5829 val
* var295
/* : nullable Object */;
5830 val
* var_recv
/* var recv: RuntimeVariable */;
5831 val
* var296
/* : MType */;
5832 val
* var297
/* : String */;
5833 static val
* varonce298
;
5834 val
* var299
/* : String */;
5835 char* var300
/* : NativeString */;
5836 long var301
/* : Int */;
5837 val
* var302
/* : String */;
5838 short int var303
/* : Bool */;
5839 static val
* varonce304
;
5840 val
* var305
/* : String */;
5841 char* var306
/* : NativeString */;
5842 long var307
/* : Int */;
5843 val
* var308
/* : String */;
5844 val
* var309
/* : Array[Object] */;
5845 long var310
/* : Int */;
5846 val
* var311
/* : NativeArray[Object] */;
5847 val
* var312
/* : String */;
5848 val
* var_recv_ptr
/* var recv_ptr: nullable Object */;
5849 val
* var313
/* : MType */;
5850 short int var314
/* : Bool */;
5853 const char* var_class_name317
;
5854 val
* var318
/* : MClass */;
5855 val
* var_mclass319
/* var mclass: MClass */;
5856 static val
* varonce320
;
5857 val
* var321
/* : String */;
5858 char* var322
/* : NativeString */;
5859 long var323
/* : Int */;
5860 val
* var324
/* : String */;
5861 val
* var325
/* : String */;
5862 val
* var326
/* : Array[Object] */;
5863 long var327
/* : Int */;
5864 val
* var328
/* : NativeArray[Object] */;
5865 val
* var329
/* : String */;
5866 static val
* varonce330
;
5867 val
* var331
/* : String */;
5868 char* var332
/* : NativeString */;
5869 long var333
/* : Int */;
5870 val
* var334
/* : String */;
5871 val
* var335
/* : String */;
5872 static val
* varonce336
;
5873 val
* var337
/* : String */;
5874 char* var338
/* : NativeString */;
5875 long var339
/* : Int */;
5876 val
* var340
/* : String */;
5877 val
* var341
/* : Array[Object] */;
5878 long var342
/* : Int */;
5879 val
* var343
/* : NativeArray[Object] */;
5880 val
* var344
/* : String */;
5881 static val
* varonce345
;
5882 val
* var346
/* : String */;
5883 char* var347
/* : NativeString */;
5884 long var348
/* : Int */;
5885 val
* var349
/* : String */;
5886 val
* var350
/* : String */;
5887 val
* var_entry
/* var entry: String */;
5888 static val
* varonce351
;
5889 val
* var352
/* : String */;
5890 char* var353
/* : NativeString */;
5891 long var354
/* : Int */;
5892 val
* var355
/* : String */;
5893 static val
* varonce356
;
5894 val
* var357
/* : String */;
5895 char* var358
/* : NativeString */;
5896 long var359
/* : Int */;
5897 val
* var360
/* : String */;
5898 val
* var361
/* : Array[Object] */;
5899 long var362
/* : Int */;
5900 val
* var363
/* : NativeArray[Object] */;
5901 val
* var364
/* : String */;
5902 val
* var365
/* : MProperty */;
5903 val
* var366
/* : String */;
5904 val
* var367
/* : AbstractCompiler */;
5905 short int var368
/* : Bool */;
5908 const char* var_class_name371
;
5909 val
* var372
/* : nullable Layout[MVirtualTypeProp] */;
5910 short int var373
/* : Bool */;
5913 static val
* varonce376
;
5914 val
* var377
/* : String */;
5915 char* var378
/* : NativeString */;
5916 long var379
/* : Int */;
5917 val
* var380
/* : String */;
5918 static val
* varonce381
;
5919 val
* var382
/* : String */;
5920 char* var383
/* : NativeString */;
5921 long var384
/* : Int */;
5922 val
* var385
/* : String */;
5923 static val
* varonce386
;
5924 val
* var387
/* : String */;
5925 char* var388
/* : NativeString */;
5926 long var389
/* : Int */;
5927 val
* var390
/* : String */;
5928 val
* var391
/* : MProperty */;
5929 val
* var392
/* : String */;
5930 static val
* varonce393
;
5931 val
* var394
/* : String */;
5932 char* var395
/* : NativeString */;
5933 long var396
/* : Int */;
5934 val
* var397
/* : String */;
5935 val
* var398
/* : Array[Object] */;
5936 long var399
/* : Int */;
5937 val
* var400
/* : NativeArray[Object] */;
5938 val
* var401
/* : String */;
5939 static val
* varonce402
;
5940 val
* var403
/* : String */;
5941 char* var404
/* : NativeString */;
5942 long var405
/* : Int */;
5943 val
* var406
/* : String */;
5944 static val
* varonce407
;
5945 val
* var408
/* : String */;
5946 char* var409
/* : NativeString */;
5947 long var410
/* : Int */;
5948 val
* var411
/* : String */;
5949 val
* var412
/* : MProperty */;
5950 val
* var413
/* : String */;
5951 static val
* varonce414
;
5952 val
* var415
/* : String */;
5953 char* var416
/* : NativeString */;
5954 long var417
/* : Int */;
5955 val
* var418
/* : String */;
5956 val
* var419
/* : Array[Object] */;
5957 long var420
/* : Int */;
5958 val
* var421
/* : NativeArray[Object] */;
5959 val
* var422
/* : String */;
5960 static val
* varonce423
;
5961 val
* var424
/* : String */;
5962 char* var425
/* : NativeString */;
5963 long var426
/* : Int */;
5964 val
* var427
/* : String */;
5965 static val
* varonce428
;
5966 val
* var429
/* : String */;
5967 char* var430
/* : NativeString */;
5968 long var431
/* : Int */;
5969 val
* var432
/* : String */;
5970 val
* var433
/* : Array[Object] */;
5971 long var434
/* : Int */;
5972 val
* var435
/* : NativeArray[Object] */;
5973 val
* var436
/* : String */;
5974 static val
* varonce437
;
5975 val
* var438
/* : String */;
5976 char* var439
/* : NativeString */;
5977 long var440
/* : Int */;
5978 val
* var441
/* : String */;
5979 static val
* varonce442
;
5980 val
* var443
/* : String */;
5981 char* var444
/* : NativeString */;
5982 long var445
/* : Int */;
5983 val
* var446
/* : String */;
5984 val
* var447
/* : Array[Object] */;
5985 long var448
/* : Int */;
5986 val
* var449
/* : NativeArray[Object] */;
5987 val
* var450
/* : String */;
5988 short int var451
/* : Bool */;
5989 short int var_452
/* var : Bool */;
5990 static val
* varonce453
;
5991 val
* var454
/* : String */;
5992 char* var455
/* : NativeString */;
5993 long var456
/* : Int */;
5994 val
* var457
/* : String */;
5995 short int var458
/* : Bool */;
5996 static val
* varonce459
;
5997 val
* var460
/* : String */;
5998 char* var461
/* : NativeString */;
5999 long var462
/* : Int */;
6000 val
* var463
/* : String */;
6001 val
* var464
/* : String */;
6002 val
* var_is_nullable
/* var is_nullable: String */;
6003 static val
* varonce465
;
6004 val
* var466
/* : String */;
6005 char* var467
/* : NativeString */;
6006 long var468
/* : Int */;
6007 val
* var469
/* : String */;
6008 static val
* varonce470
;
6009 val
* var471
/* : String */;
6010 char* var472
/* : NativeString */;
6011 long var473
/* : Int */;
6012 val
* var474
/* : String */;
6013 val
* var475
/* : Array[Object] */;
6014 long var476
/* : Int */;
6015 val
* var477
/* : NativeArray[Object] */;
6016 val
* var478
/* : String */;
6017 static val
* varonce479
;
6018 val
* var480
/* : String */;
6019 char* var481
/* : NativeString */;
6020 long var482
/* : Int */;
6021 val
* var483
/* : String */;
6022 static val
* varonce484
;
6023 val
* var485
/* : String */;
6024 char* var486
/* : NativeString */;
6025 long var487
/* : Int */;
6026 val
* var488
/* : String */;
6027 val
* var489
/* : Array[Object] */;
6028 long var490
/* : Int */;
6029 val
* var491
/* : NativeArray[Object] */;
6030 val
* var492
/* : String */;
6031 val
* var493
/* : String */;
6032 val
* var494
/* : AbstractCompiler */;
6033 val
* var495
/* : ModelBuilder */;
6034 val
* var496
/* : ToolContext */;
6035 val
* var497
/* : OptionBool */;
6036 val
* var498
/* : nullable Object */;
6037 short int var499
/* : Bool */;
6038 val
* var500
/* : AbstractCompiler */;
6039 val
* var501
/* : HashMap[String, Int] */;
6040 val
* var_502
/* var : HashMap[String, Int] */;
6041 val
* var_503
/* var : String */;
6042 val
* var504
/* : nullable Object */;
6043 long var505
/* : Int */;
6044 long var506
/* : Int */;
6045 long var508
/* : Int */;
6046 long var509
/* : Int */;
6047 val
* var510
/* : nullable Object */;
6048 static val
* varonce511
;
6049 val
* var512
/* : String */;
6050 char* var513
/* : NativeString */;
6051 long var514
/* : Int */;
6052 val
* var515
/* : String */;
6053 static val
* varonce516
;
6054 val
* var517
/* : String */;
6055 char* var518
/* : NativeString */;
6056 long var519
/* : Int */;
6057 val
* var520
/* : String */;
6058 val
* var521
/* : Array[Object] */;
6059 long var522
/* : Int */;
6060 val
* var523
/* : NativeArray[Object] */;
6061 val
* var524
/* : String */;
6062 static val
* varonce525
;
6063 val
* var526
/* : String */;
6064 char* var527
/* : NativeString */;
6065 long var528
/* : Int */;
6066 val
* var529
/* : String */;
6067 val
* var530
/* : String */;
6068 static val
* varonce531
;
6069 val
* var532
/* : String */;
6070 char* var533
/* : NativeString */;
6071 long var534
/* : Int */;
6072 val
* var535
/* : String */;
6073 static val
* varonce536
;
6074 val
* var537
/* : String */;
6075 char* var538
/* : NativeString */;
6076 long var539
/* : Int */;
6077 val
* var540
/* : String */;
6078 val
* var541
/* : Array[Object] */;
6079 long var542
/* : Int */;
6080 val
* var543
/* : NativeArray[Object] */;
6081 val
* var544
/* : String */;
6082 static val
* varonce545
;
6083 val
* var546
/* : String */;
6084 char* var547
/* : NativeString */;
6085 long var548
/* : Int */;
6086 val
* var549
/* : String */;
6087 static val
* varonce550
;
6088 val
* var551
/* : String */;
6089 char* var552
/* : NativeString */;
6090 long var553
/* : Int */;
6091 val
* var554
/* : String */;
6092 val
* var555
/* : Array[Object] */;
6093 long var556
/* : Int */;
6094 val
* var557
/* : NativeArray[Object] */;
6095 val
* var558
/* : String */;
6096 static val
* varonce559
;
6097 val
* var560
/* : String */;
6098 char* var561
/* : NativeString */;
6099 long var562
/* : Int */;
6100 val
* var563
/* : String */;
6101 static val
* varonce564
;
6102 val
* var565
/* : String */;
6103 char* var566
/* : NativeString */;
6104 long var567
/* : Int */;
6105 val
* var568
/* : String */;
6106 val
* var569
/* : Array[Object] */;
6107 long var570
/* : Int */;
6108 val
* var571
/* : NativeArray[Object] */;
6109 val
* var572
/* : String */;
6110 static val
* varonce573
;
6111 val
* var574
/* : String */;
6112 char* var575
/* : NativeString */;
6113 long var576
/* : Int */;
6114 val
* var577
/* : String */;
6115 val
* var578
/* : AbstractCompiler */;
6116 short int var579
/* : Bool */;
6119 const char* var_class_name582
;
6120 val
* var583
/* : nullable Layout[MClass] */;
6121 short int var584
/* : Bool */;
6124 static val
* varonce587
;
6125 val
* var588
/* : String */;
6126 char* var589
/* : NativeString */;
6127 long var590
/* : Int */;
6128 val
* var591
/* : String */;
6129 static val
* varonce592
;
6130 val
* var593
/* : String */;
6131 char* var594
/* : NativeString */;
6132 long var595
/* : Int */;
6133 val
* var596
/* : String */;
6134 static val
* varonce597
;
6135 val
* var598
/* : String */;
6136 char* var599
/* : NativeString */;
6137 long var600
/* : Int */;
6138 val
* var601
/* : String */;
6139 val
* var602
/* : Array[Object] */;
6140 long var603
/* : Int */;
6141 val
* var604
/* : NativeArray[Object] */;
6142 val
* var605
/* : String */;
6143 static val
* varonce606
;
6144 val
* var607
/* : String */;
6145 char* var608
/* : NativeString */;
6146 long var609
/* : Int */;
6147 val
* var610
/* : String */;
6148 static val
* varonce611
;
6149 val
* var612
/* : String */;
6150 char* var613
/* : NativeString */;
6151 long var614
/* : Int */;
6152 val
* var615
/* : String */;
6153 static val
* varonce616
;
6154 val
* var617
/* : String */;
6155 char* var618
/* : NativeString */;
6156 long var619
/* : Int */;
6157 val
* var620
/* : String */;
6158 val
* var621
/* : Array[Object] */;
6159 long var622
/* : Int */;
6160 val
* var623
/* : NativeArray[Object] */;
6161 val
* var624
/* : String */;
6162 static val
* varonce625
;
6163 val
* var626
/* : String */;
6164 char* var627
/* : NativeString */;
6165 long var628
/* : Int */;
6166 val
* var629
/* : String */;
6167 val
* var630
/* : Array[Object] */;
6168 long var631
/* : Int */;
6169 val
* var632
/* : NativeArray[Object] */;
6170 val
* var633
/* : String */;
6171 static val
* varonce634
;
6172 val
* var635
/* : String */;
6173 char* var636
/* : NativeString */;
6174 long var637
/* : Int */;
6175 val
* var638
/* : String */;
6176 static val
* varonce639
;
6177 val
* var640
/* : String */;
6178 char* var641
/* : NativeString */;
6179 long var642
/* : Int */;
6180 val
* var643
/* : String */;
6181 static val
* varonce644
;
6182 val
* var645
/* : String */;
6183 char* var646
/* : NativeString */;
6184 long var647
/* : Int */;
6185 val
* var648
/* : String */;
6186 static val
* varonce649
;
6187 val
* var650
/* : String */;
6188 char* var651
/* : NativeString */;
6189 long var652
/* : Int */;
6190 val
* var653
/* : String */;
6191 static val
* varonce654
;
6192 val
* var655
/* : String */;
6193 char* var656
/* : NativeString */;
6194 long var657
/* : Int */;
6195 val
* var658
/* : String */;
6196 val
* var659
/* : Array[Object] */;
6197 long var660
/* : Int */;
6198 val
* var661
/* : NativeArray[Object] */;
6199 val
* var662
/* : String */;
6200 static val
* varonce663
;
6201 val
* var664
/* : String */;
6202 char* var665
/* : NativeString */;
6203 long var666
/* : Int */;
6204 val
* var667
/* : String */;
6205 static val
* varonce668
;
6206 val
* var669
/* : String */;
6207 char* var670
/* : NativeString */;
6208 long var671
/* : Int */;
6209 val
* var672
/* : String */;
6216 var2
= "/* type test for ";
6218 var4
= string__NativeString__to_s_with_length(var2
, var3
);
6222 var5
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_string__Object__inspect
]))(var_value
) /* inspect on <var_value:RuntimeVariable>*/;
6228 var10
= string__NativeString__to_s_with_length(var8
, var9
);
6237 var15
= string__NativeString__to_s_with_length(var13
, var14
);
6241 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
6242 { /* var16 = array_instance Array[Object] */
6244 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
6245 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var1
;
6246 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var5
;
6247 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var7
;
6248 ((struct instance_array__NativeArray
*)var18
)->values
[3] = (val
*) var_mtype
;
6249 ((struct instance_array__NativeArray
*)var18
)->values
[4] = (val
*) var12
;
6250 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
6252 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
6253 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var19
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6254 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type
]))(self
) /* bool_type on <self:SeparateErasureCompilerVisitor>*/;
6255 var21
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var20
) /* new_var on <self:SeparateErasureCompilerVisitor>*/;
6262 var26
= string__NativeString__to_s_with_length(var24
, var25
);
6266 var27
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var23
) /* get_name on <self:SeparateErasureCompilerVisitor>*/;
6273 var32
= string__NativeString__to_s_with_length(var30
, var31
);
6282 var37
= string__NativeString__to_s_with_length(var35
, var36
);
6286 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
6287 { /* var38 = array_instance Array[Object] */
6289 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
6290 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var29
;
6291 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var_cltype
;
6292 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var34
;
6293 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
6295 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
6296 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var41
) /* add_decl on <self:SeparateErasureCompilerVisitor>*/;
6302 var46
= string__NativeString__to_s_with_length(var44
, var45
);
6306 var47
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var43
) /* get_name on <self:SeparateErasureCompilerVisitor>*/;
6313 var52
= string__NativeString__to_s_with_length(var50
, var51
);
6322 var57
= string__NativeString__to_s_with_length(var55
, var56
);
6326 var58
= NEW_array__Array(&type_array__Arraykernel__Object
);
6327 { /* var58 = array_instance Array[Object] */
6329 var60
= NEW_array__NativeArray(var59
, &type_array__NativeArraykernel__Object
);
6330 ((struct instance_array__NativeArray
*)var60
)->values
[0] = (val
*) var49
;
6331 ((struct instance_array__NativeArray
*)var60
)->values
[1] = (val
*) var_idtype
;
6332 ((struct instance_array__NativeArray
*)var60
)->values
[2] = (val
*) var54
;
6333 ((void (*)(val
*, val
*, long))(var58
->class->vft
[COLOR_array__Array__with_native
]))(var58
, var60
, var59
) /* with_native on <var58:Array[Object]>*/;
6335 var61
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_string__Object__to_s
]))(var58
) /* to_s on <var58:Array[Object]>*/;
6336 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var61
) /* add_decl on <self:SeparateErasureCompilerVisitor>*/;
6337 var62
= ((short int (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompilerVisitor__maybe_null
]))(self
, var_value
) /* maybe_null on <self:SeparateErasureCompilerVisitor>*/;
6338 var_maybe_null
= var62
;
6344 var67
= string__NativeString__to_s_with_length(var65
, var66
);
6348 var_accept_null
= var64
;
6349 /* <var_mtype:MType> isa MNullableType */
6350 cltype
= type_model__MNullableType
.color
;
6351 idtype
= type_model__MNullableType
.id
;
6352 if(cltype
>= var_mtype
->type
->table_size
) {
6355 var68
= var_mtype
->type
->type_table
[cltype
] == idtype
;
6358 var69
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
6365 var74
= string__NativeString__to_s_with_length(var72
, var73
);
6369 var_accept_null
= var71
;
6372 /* <var_mtype:MType> isa MParameterType */
6373 cltype76
= type_model__MParameterType
.color
;
6374 idtype77
= type_model__MParameterType
.id
;
6375 if(cltype76
>= var_mtype
->type
->table_size
) {
6378 var75
= var_mtype
->type
->type_table
[cltype76
] == idtype77
;
6381 var78
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6382 if (var78
== NULL
) {
6383 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
6384 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 485);
6387 var79
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var78
) /* mpropdef on <var78:nullable Frame>*/;
6389 var80
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var79
) /* mclassdef on <var79:MPropDef>*/;
6390 var81
= ((val
* (*)(val
*))(var80
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var80
) /* bound_mtype on <var80:MClassDef>*/;
6391 var82
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6392 if (var82
== NULL
) {
6393 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
6394 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 485);
6397 var83
= ((val
* (*)(val
*))(var82
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var82
) /* mpropdef on <var82:nullable Frame>*/;
6399 var84
= ((val
* (*)(val
*))(var83
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var83
) /* mclassdef on <var83:MPropDef>*/;
6400 var85
= ((val
* (*)(val
*))(var84
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var84
) /* bound_mtype on <var84:MClassDef>*/;
6401 var86
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6402 if (var86
== NULL
) {
6403 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
6404 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 485);
6407 var87
= ((val
* (*)(val
*))(var86
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var86
) /* mpropdef on <var86:nullable Frame>*/;
6409 var88
= ((val
* (*)(val
*))(var87
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var87
) /* mclassdef on <var87:MPropDef>*/;
6410 var89
= ((val
* (*)(val
*))(var88
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var88
) /* mmodule on <var88:MClassDef>*/;
6412 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)>*/;
6414 /* <var_mtype:MType> isa MNullableType */
6415 cltype93
= type_model__MNullableType
.color
;
6416 idtype94
= type_model__MNullableType
.id
;
6417 if(cltype93
>= var_mtype
->type
->table_size
) {
6420 var92
= var_mtype
->type
->type_table
[cltype93
] == idtype94
;
6423 var95
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
6430 var100
= string__NativeString__to_s_with_length(var98
, var99
);
6434 var_accept_null
= var97
;
6439 var101
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value
) /* mcasttype on <var_value:RuntimeVariable>*/;
6440 var102
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6441 if (var102
== NULL
) {
6442 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
6443 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 492);
6446 var103
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var102
) /* mpropdef on <var102:nullable Frame>*/;
6448 var104
= ((val
* (*)(val
*))(var103
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var103
) /* mclassdef on <var103:MPropDef>*/;
6449 var105
= ((val
* (*)(val
*))(var104
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var104
) /* mmodule on <var104:MClassDef>*/;
6450 var106
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6451 if (var106
== NULL
) {
6452 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
6453 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 492);
6456 var107
= ((val
* (*)(val
*))(var106
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var106
) /* mpropdef on <var106:nullable Frame>*/;
6458 var108
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var107
) /* mclassdef on <var107:MPropDef>*/;
6459 var109
= ((val
* (*)(val
*))(var108
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var108
) /* bound_mtype on <var108:MClassDef>*/;
6460 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>*/;
6463 var112
= varonce111
;
6465 var113
= " = 1; /* easy ";
6467 var115
= string__NativeString__to_s_with_length(var113
, var114
);
6469 varonce111
= var112
;
6471 var116
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_string__Object__inspect
]))(var_value
) /* inspect on <var_value:RuntimeVariable>*/;
6473 var118
= varonce117
;
6477 var121
= string__NativeString__to_s_with_length(var119
, var120
);
6479 varonce117
= var118
;
6482 var123
= varonce122
;
6486 var126
= string__NativeString__to_s_with_length(var124
, var125
);
6488 varonce122
= var123
;
6490 var127
= NEW_array__Array(&type_array__Arraykernel__Object
);
6491 { /* var127 = array_instance Array[Object] */
6493 var129
= NEW_array__NativeArray(var128
, &type_array__NativeArraykernel__Object
);
6494 ((struct instance_array__NativeArray
*)var129
)->values
[0] = (val
*) var_res
;
6495 ((struct instance_array__NativeArray
*)var129
)->values
[1] = (val
*) var112
;
6496 ((struct instance_array__NativeArray
*)var129
)->values
[2] = (val
*) var116
;
6497 ((struct instance_array__NativeArray
*)var129
)->values
[3] = (val
*) var118
;
6498 ((struct instance_array__NativeArray
*)var129
)->values
[4] = (val
*) var_mtype
;
6499 ((struct instance_array__NativeArray
*)var129
)->values
[5] = (val
*) var123
;
6500 ((void (*)(val
*, val
*, long))(var127
->class->vft
[COLOR_array__Array__with_native
]))(var127
, var129
, var128
) /* with_native on <var127:Array[Object]>*/;
6502 var130
= ((val
* (*)(val
*))(var127
->class->vft
[COLOR_string__Object__to_s
]))(var127
) /* to_s on <var127:Array[Object]>*/;
6503 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var130
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6504 var131
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
6505 var132
= ((val
* (*)(val
*))(var131
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var131
) /* modelbuilder on <var131:AbstractCompiler(SeparateCompiler)>*/;
6506 var133
= ((val
* (*)(val
*))(var132
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var132
) /* toolcontext on <var132:ModelBuilder>*/;
6507 var134
= ((val
* (*)(val
*))(var133
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_typing_test_metrics
]))(var133
) /* opt_typing_test_metrics on <var133:ToolContext>*/;
6508 var135
= ((val
* (*)(val
*))(var134
->class->vft
[COLOR_opts__Option__value
]))(var134
) /* value on <var134:OptionBool>*/;
6509 var136
= ((struct instance_kernel__Bool
*)var135
)->value
; /* autounbox from nullable Object to Bool */;
6511 var137
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
6512 var138
= ((val
* (*)(val
*))(var137
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__count_type_test_skipped
]))(var137
) /* count_type_test_skipped on <var137:AbstractCompiler(SeparateCompiler)>*/;
6515 var140
= ((val
* (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_
, var_139
) /* [] on <var_:HashMap[String, Int]>*/;
6517 { /* Inline kernel#Int#+ (var140,var141) */
6518 var144
= ((struct instance_kernel__Int
*)var140
)->value
; /* autounbox from nullable Object to Int */;
6519 var145
= var144
+ var141
;
6522 RET_LABEL143
:(void)0;
6524 var146
= BOX_kernel__Int(var142
); /* autobox from Int to nullable Object */
6525 ((void (*)(val
*, val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_
, var_139
, var146
) /* []= on <var_:HashMap[String, Int]>*/;
6527 var148
= varonce147
;
6529 var149
= "count_type_test_skipped_";
6531 var151
= string__NativeString__to_s_with_length(var149
, var150
);
6533 varonce147
= var148
;
6536 var153
= varonce152
;
6540 var156
= string__NativeString__to_s_with_length(var154
, var155
);
6542 varonce152
= var153
;
6544 var157
= NEW_array__Array(&type_array__Arraykernel__Object
);
6545 { /* var157 = array_instance Array[Object] */
6547 var159
= NEW_array__NativeArray(var158
, &type_array__NativeArraykernel__Object
);
6548 ((struct instance_array__NativeArray
*)var159
)->values
[0] = (val
*) var148
;
6549 ((struct instance_array__NativeArray
*)var159
)->values
[1] = (val
*) var_tag
;
6550 ((struct instance_array__NativeArray
*)var159
)->values
[2] = (val
*) var153
;
6551 ((void (*)(val
*, val
*, long))(var157
->class->vft
[COLOR_array__Array__with_native
]))(var157
, var159
, var158
) /* with_native on <var157:Array[Object]>*/;
6553 var160
= ((val
* (*)(val
*))(var157
->class->vft
[COLOR_string__Object__to_s
]))(var157
) /* to_s on <var157:Array[Object]>*/;
6554 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var160
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6561 var161
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
6562 var162
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var161
) /* ctype on <var161:MType>*/;
6564 var164
= varonce163
;
6568 var167
= string__NativeString__to_s_with_length(var165
, var166
);
6570 varonce163
= var164
;
6572 var168
= ((short int (*)(val
*, val
*))(var162
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var162
, var164
) /* == on <var162:String>*/;
6574 var169
= NEW_array__Array(&type_array__Arraykernel__Object
);
6576 ((void (*)(val
*, long))(var169
->class->vft
[COLOR_array__Array__with_capacity
]))(var169
, var170
) /* with_capacity on <var169:Array[Object]>*/;
6579 var173
= varonce172
;
6583 var176
= string__NativeString__to_s_with_length(var174
, var175
);
6585 varonce172
= var173
;
6587 ((void (*)(val
*, val
*))(var_171
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_171
, var173
) /* add on <var_171:Array[Object]>*/;
6588 ((void (*)(val
*, val
*))(var_171
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_171
, var_value
) /* add on <var_171:Array[Object]>*/;
6590 var178
= varonce177
;
6592 var179
= "->class->";
6594 var181
= string__NativeString__to_s_with_length(var179
, var180
);
6596 varonce177
= var178
;
6598 ((void (*)(val
*, val
*))(var_171
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_171
, var178
) /* add on <var_171:Array[Object]>*/;
6599 var182
= ((val
* (*)(val
*))(var_171
->class->vft
[COLOR_string__Object__to_s
]))(var_171
) /* to_s on <var_171:Array[Object]>*/;
6600 var_class_ptr
= var182
;
6602 var183
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
6603 /* <var183:MType> isa MClassType */
6604 cltype185
= type_model__MClassType
.color
;
6605 idtype186
= type_model__MClassType
.id
;
6606 if(cltype185
>= var183
->type
->table_size
) {
6609 var184
= var183
->type
->type_table
[cltype185
] == idtype186
;
6612 var_class_name
= var183
== NULL ?
"null" : var183
->type
->name
;
6613 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6614 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 506);
6617 var187
= ((val
* (*)(val
*))(var183
->class->vft
[COLOR_model__MClassType__mclass
]))(var183
) /* mclass on <var183:MType(MClassType)>*/;
6618 var_mclass
= var187
;
6620 var189
= varonce188
;
6624 var192
= string__NativeString__to_s_with_length(var190
, var191
);
6626 varonce188
= var189
;
6628 var193
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
6629 var194
= NEW_array__Array(&type_array__Arraykernel__Object
);
6630 { /* var194 = array_instance Array[Object] */
6632 var196
= NEW_array__NativeArray(var195
, &type_array__NativeArraykernel__Object
);
6633 ((struct instance_array__NativeArray
*)var196
)->values
[0] = (val
*) var189
;
6634 ((struct instance_array__NativeArray
*)var196
)->values
[1] = (val
*) var193
;
6635 ((void (*)(val
*, val
*, long))(var194
->class->vft
[COLOR_array__Array__with_native
]))(var194
, var196
, var195
) /* with_native on <var194:Array[Object]>*/;
6637 var197
= ((val
* (*)(val
*))(var194
->class->vft
[COLOR_string__Object__to_s
]))(var194
) /* to_s on <var194:Array[Object]>*/;
6638 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var197
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
6639 var198
= NEW_array__Array(&type_array__Arraykernel__Object
);
6641 ((void (*)(val
*, long))(var198
->class->vft
[COLOR_array__Array__with_capacity
]))(var198
, var199
) /* with_capacity on <var198:Array[Object]>*/;
6644 var202
= varonce201
;
6648 var205
= string__NativeString__to_s_with_length(var203
, var204
);
6650 varonce201
= var202
;
6652 ((void (*)(val
*, val
*))(var_200
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_200
, var202
) /* add on <var_200:Array[Object]>*/;
6653 var206
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
6654 ((void (*)(val
*, val
*))(var_200
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_200
, var206
) /* add on <var_200:Array[Object]>*/;
6656 var208
= varonce207
;
6660 var211
= string__NativeString__to_s_with_length(var209
, var210
);
6662 varonce207
= var208
;
6664 ((void (*)(val
*, val
*))(var_200
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_200
, var208
) /* add on <var_200:Array[Object]>*/;
6665 var212
= ((val
* (*)(val
*))(var_200
->class->vft
[COLOR_string__Object__to_s
]))(var_200
) /* to_s on <var_200:Array[Object]>*/;
6666 var_class_ptr
= var212
;
6668 /* <var_mtype:MType> isa MClassType */
6669 cltype214
= type_model__MClassType
.color
;
6670 idtype215
= type_model__MClassType
.id
;
6671 if(cltype214
>= var_mtype
->type
->table_size
) {
6674 var213
= var_mtype
->type
->type_table
[cltype214
] == idtype215
;
6678 var217
= varonce216
;
6682 var220
= string__NativeString__to_s_with_length(var218
, var219
);
6684 varonce216
= var217
;
6686 var221
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MType(MClassType)>*/;
6687 var222
= ((val
* (*)(val
*))(var221
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var221
) /* c_name on <var221:MClass>*/;
6688 var223
= NEW_array__Array(&type_array__Arraykernel__Object
);
6689 { /* var223 = array_instance Array[Object] */
6691 var225
= NEW_array__NativeArray(var224
, &type_array__NativeArraykernel__Object
);
6692 ((struct instance_array__NativeArray
*)var225
)->values
[0] = (val
*) var217
;
6693 ((struct instance_array__NativeArray
*)var225
)->values
[1] = (val
*) var222
;
6694 ((void (*)(val
*, val
*, long))(var223
->class->vft
[COLOR_array__Array__with_native
]))(var223
, var225
, var224
) /* with_native on <var223:Array[Object]>*/;
6696 var226
= ((val
* (*)(val
*))(var223
->class->vft
[COLOR_string__Object__to_s
]))(var223
) /* to_s on <var223:Array[Object]>*/;
6697 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var226
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
6699 var228
= varonce227
;
6701 var229
= " = class_";
6703 var231
= string__NativeString__to_s_with_length(var229
, var230
);
6705 varonce227
= var228
;
6707 var232
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MType(MClassType)>*/;
6708 var233
= ((val
* (*)(val
*))(var232
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var232
) /* c_name on <var232:MClass>*/;
6710 var235
= varonce234
;
6714 var238
= string__NativeString__to_s_with_length(var236
, var237
);
6716 varonce234
= var235
;
6718 var239
= NEW_array__Array(&type_array__Arraykernel__Object
);
6719 { /* var239 = array_instance Array[Object] */
6721 var241
= NEW_array__NativeArray(var240
, &type_array__NativeArraykernel__Object
);
6722 ((struct instance_array__NativeArray
*)var241
)->values
[0] = (val
*) var_cltype
;
6723 ((struct instance_array__NativeArray
*)var241
)->values
[1] = (val
*) var228
;
6724 ((struct instance_array__NativeArray
*)var241
)->values
[2] = (val
*) var233
;
6725 ((struct instance_array__NativeArray
*)var241
)->values
[3] = (val
*) var235
;
6726 ((void (*)(val
*, val
*, long))(var239
->class->vft
[COLOR_array__Array__with_native
]))(var239
, var241
, var240
) /* with_native on <var239:Array[Object]>*/;
6728 var242
= ((val
* (*)(val
*))(var239
->class->vft
[COLOR_string__Object__to_s
]))(var239
) /* to_s on <var239:Array[Object]>*/;
6729 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var242
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6731 var244
= varonce243
;
6733 var245
= " = class_";
6735 var247
= string__NativeString__to_s_with_length(var245
, var246
);
6737 varonce243
= var244
;
6739 var248
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MType(MClassType)>*/;
6740 var249
= ((val
* (*)(val
*))(var248
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var248
) /* c_name on <var248:MClass>*/;
6742 var251
= varonce250
;
6746 var254
= string__NativeString__to_s_with_length(var252
, var253
);
6748 varonce250
= var251
;
6750 var255
= NEW_array__Array(&type_array__Arraykernel__Object
);
6751 { /* var255 = array_instance Array[Object] */
6753 var257
= NEW_array__NativeArray(var256
, &type_array__NativeArraykernel__Object
);
6754 ((struct instance_array__NativeArray
*)var257
)->values
[0] = (val
*) var_idtype
;
6755 ((struct instance_array__NativeArray
*)var257
)->values
[1] = (val
*) var244
;
6756 ((struct instance_array__NativeArray
*)var257
)->values
[2] = (val
*) var249
;
6757 ((struct instance_array__NativeArray
*)var257
)->values
[3] = (val
*) var251
;
6758 ((void (*)(val
*, val
*, long))(var255
->class->vft
[COLOR_array__Array__with_native
]))(var255
, var257
, var256
) /* with_native on <var255:Array[Object]>*/;
6760 var258
= ((val
* (*)(val
*))(var255
->class->vft
[COLOR_string__Object__to_s
]))(var255
) /* to_s on <var255:Array[Object]>*/;
6761 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var258
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6762 var259
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
6763 var260
= ((val
* (*)(val
*))(var259
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var259
) /* modelbuilder on <var259:AbstractCompiler(SeparateCompiler)>*/;
6764 var261
= ((val
* (*)(val
*))(var260
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var260
) /* toolcontext on <var260:ModelBuilder>*/;
6765 var262
= ((val
* (*)(val
*))(var261
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_typing_test_metrics
]))(var261
) /* opt_typing_test_metrics on <var261:ToolContext>*/;
6766 var263
= ((val
* (*)(val
*))(var262
->class->vft
[COLOR_opts__Option__value
]))(var262
) /* value on <var262:OptionBool>*/;
6767 var264
= ((struct instance_kernel__Bool
*)var263
)->value
; /* autounbox from nullable Object to Bool */;
6769 var265
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
6770 var266
= ((val
* (*)(val
*))(var265
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__count_type_test_resolved
]))(var265
) /* count_type_test_resolved on <var265:AbstractCompiler(SeparateCompiler)>*/;
6773 var269
= ((val
* (*)(val
*, val
*))(var_267
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_267
, var_268
) /* [] on <var_267:HashMap[String, Int]>*/;
6775 { /* Inline kernel#Int#+ (var269,var270) */
6776 var273
= ((struct instance_kernel__Int
*)var269
)->value
; /* autounbox from nullable Object to Int */;
6777 var274
= var273
+ var270
;
6780 RET_LABEL272
:(void)0;
6782 var275
= BOX_kernel__Int(var271
); /* autobox from Int to nullable Object */
6783 ((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]>*/;
6785 var277
= varonce276
;
6787 var278
= "count_type_test_resolved_";
6789 var280
= string__NativeString__to_s_with_length(var278
, var279
);
6791 varonce276
= var277
;
6794 var282
= varonce281
;
6798 var285
= string__NativeString__to_s_with_length(var283
, var284
);
6800 varonce281
= var282
;
6802 var286
= NEW_array__Array(&type_array__Arraykernel__Object
);
6803 { /* var286 = array_instance Array[Object] */
6805 var288
= NEW_array__NativeArray(var287
, &type_array__NativeArraykernel__Object
);
6806 ((struct instance_array__NativeArray
*)var288
)->values
[0] = (val
*) var277
;
6807 ((struct instance_array__NativeArray
*)var288
)->values
[1] = (val
*) var_tag
;
6808 ((struct instance_array__NativeArray
*)var288
)->values
[2] = (val
*) var282
;
6809 ((void (*)(val
*, val
*, long))(var286
->class->vft
[COLOR_array__Array__with_native
]))(var286
, var288
, var287
) /* with_native on <var286:Array[Object]>*/;
6811 var289
= ((val
* (*)(val
*))(var286
->class->vft
[COLOR_string__Object__to_s
]))(var286
) /* to_s on <var286:Array[Object]>*/;
6812 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var289
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6816 /* <var_mtype:MType> isa MVirtualType */
6817 cltype291
= type_model__MVirtualType
.color
;
6818 idtype292
= type_model__MVirtualType
.id
;
6819 if(cltype291
>= var_mtype
->type
->table_size
) {
6822 var290
= var_mtype
->type
->type_table
[cltype291
] == idtype292
;
6825 var293
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6826 if (var293
== NULL
) {
6827 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
6828 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 520);
6831 var294
= ((val
* (*)(val
*))(var293
->class->vft
[COLOR_abstract_compiler__Frame__arguments
]))(var293
) /* arguments on <var293:nullable Frame>*/;
6833 var295
= ((val
* (*)(val
*))(var294
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var294
) /* first on <var294:Array[RuntimeVariable]>*/;
6835 var296
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_recv
) /* mtype on <var_recv:RuntimeVariable>*/;
6836 var297
= ((val
* (*)(val
*))(var296
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var296
) /* ctype on <var296:MType>*/;
6838 var299
= varonce298
;
6842 var302
= string__NativeString__to_s_with_length(var300
, var301
);
6844 varonce298
= var299
;
6846 var303
= ((short int (*)(val
*, val
*))(var297
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var297
, var299
) /* == on <var297:String>*/;
6849 var305
= varonce304
;
6851 var306
= "->class->";
6853 var308
= string__NativeString__to_s_with_length(var306
, var307
);
6855 varonce304
= var305
;
6857 var309
= NEW_array__Array(&type_array__Arraykernel__Object
);
6858 { /* var309 = array_instance Array[Object] */
6860 var311
= NEW_array__NativeArray(var310
, &type_array__NativeArraykernel__Object
);
6861 ((struct instance_array__NativeArray
*)var311
)->values
[0] = (val
*) var_recv
;
6862 ((struct instance_array__NativeArray
*)var311
)->values
[1] = (val
*) var305
;
6863 ((void (*)(val
*, val
*, long))(var309
->class->vft
[COLOR_array__Array__with_native
]))(var309
, var311
, var310
) /* with_native on <var309:Array[Object]>*/;
6865 var312
= ((val
* (*)(val
*))(var309
->class->vft
[COLOR_string__Object__to_s
]))(var309
) /* to_s on <var309:Array[Object]>*/;
6866 var_recv_ptr
= var312
;
6868 var313
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_recv
) /* mtype on <var_recv:RuntimeVariable>*/;
6869 /* <var313:MType> isa MClassType */
6870 cltype315
= type_model__MClassType
.color
;
6871 idtype316
= type_model__MClassType
.id
;
6872 if(cltype315
>= var313
->type
->table_size
) {
6875 var314
= var313
->type
->type_table
[cltype315
] == idtype316
;
6878 var_class_name317
= var313
== NULL ?
"null" : var313
->type
->name
;
6879 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name317
);
6880 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 525);
6883 var318
= ((val
* (*)(val
*))(var313
->class->vft
[COLOR_model__MClassType__mclass
]))(var313
) /* mclass on <var313:MType(MClassType)>*/;
6884 var_mclass319
= var318
;
6886 var321
= varonce320
;
6890 var324
= string__NativeString__to_s_with_length(var322
, var323
);
6892 varonce320
= var321
;
6894 var325
= ((val
* (*)(val
*))(var_mclass319
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass319
) /* c_name on <var_mclass319:MClass>*/;
6895 var326
= NEW_array__Array(&type_array__Arraykernel__Object
);
6896 { /* var326 = array_instance Array[Object] */
6898 var328
= NEW_array__NativeArray(var327
, &type_array__NativeArraykernel__Object
);
6899 ((struct instance_array__NativeArray
*)var328
)->values
[0] = (val
*) var321
;
6900 ((struct instance_array__NativeArray
*)var328
)->values
[1] = (val
*) var325
;
6901 ((void (*)(val
*, val
*, long))(var326
->class->vft
[COLOR_array__Array__with_native
]))(var326
, var328
, var327
) /* with_native on <var326:Array[Object]>*/;
6903 var329
= ((val
* (*)(val
*))(var326
->class->vft
[COLOR_string__Object__to_s
]))(var326
) /* to_s on <var326:Array[Object]>*/;
6904 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var329
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
6906 var331
= varonce330
;
6910 var334
= string__NativeString__to_s_with_length(var332
, var333
);
6912 varonce330
= var331
;
6914 var335
= ((val
* (*)(val
*))(var_mclass319
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass319
) /* c_name on <var_mclass319:MClass>*/;
6916 var337
= varonce336
;
6920 var340
= string__NativeString__to_s_with_length(var338
, var339
);
6922 varonce336
= var337
;
6924 var341
= NEW_array__Array(&type_array__Arraykernel__Object
);
6925 { /* var341 = array_instance Array[Object] */
6927 var343
= NEW_array__NativeArray(var342
, &type_array__NativeArraykernel__Object
);
6928 ((struct instance_array__NativeArray
*)var343
)->values
[0] = (val
*) var331
;
6929 ((struct instance_array__NativeArray
*)var343
)->values
[1] = (val
*) var335
;
6930 ((struct instance_array__NativeArray
*)var343
)->values
[2] = (val
*) var337
;
6931 ((void (*)(val
*, val
*, long))(var341
->class->vft
[COLOR_array__Array__with_native
]))(var341
, var343
, var342
) /* with_native on <var341:Array[Object]>*/;
6933 var344
= ((val
* (*)(val
*))(var341
->class->vft
[COLOR_string__Object__to_s
]))(var341
) /* to_s on <var341:Array[Object]>*/;
6934 var_recv_ptr
= var344
;
6937 var346
= varonce345
;
6941 var349
= string__NativeString__to_s_with_length(var347
, var348
);
6943 varonce345
= var346
;
6945 var350
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var346
) /* get_name on <self:SeparateErasureCompilerVisitor>*/;
6948 var352
= varonce351
;
6950 var353
= "struct vts_entry ";
6952 var355
= string__NativeString__to_s_with_length(var353
, var354
);
6954 varonce351
= var352
;
6957 var357
= varonce356
;
6961 var360
= string__NativeString__to_s_with_length(var358
, var359
);
6963 varonce356
= var357
;
6965 var361
= NEW_array__Array(&type_array__Arraykernel__Object
);
6966 { /* var361 = array_instance Array[Object] */
6968 var363
= NEW_array__NativeArray(var362
, &type_array__NativeArraykernel__Object
);
6969 ((struct instance_array__NativeArray
*)var363
)->values
[0] = (val
*) var352
;
6970 ((struct instance_array__NativeArray
*)var363
)->values
[1] = (val
*) var_entry
;
6971 ((struct instance_array__NativeArray
*)var363
)->values
[2] = (val
*) var357
;
6972 ((void (*)(val
*, val
*, long))(var361
->class->vft
[COLOR_array__Array__with_native
]))(var361
, var363
, var362
) /* with_native on <var361:Array[Object]>*/;
6974 var364
= ((val
* (*)(val
*))(var361
->class->vft
[COLOR_string__Object__to_s
]))(var361
) /* to_s on <var361:Array[Object]>*/;
6975 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var364
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6976 var365
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(var_mtype
) /* mproperty on <var_mtype:MType(MVirtualType)>*/;
6977 var366
= ((val
* (*)(val
*))(var365
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var365
) /* const_color on <var365:MProperty>*/;
6978 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var366
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
6979 var367
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
6980 /* <var367:AbstractCompiler(SeparateCompiler)> isa SeparateErasureCompiler */
6981 cltype369
= type_separate_erasure_compiler__SeparateErasureCompiler
.color
;
6982 idtype370
= type_separate_erasure_compiler__SeparateErasureCompiler
.id
;
6983 if(cltype369
>= var367
->type
->table_size
) {
6986 var368
= var367
->type
->type_table
[cltype369
] == idtype370
;
6989 var_class_name371
= var367
== NULL ?
"null" : var367
->type
->name
;
6990 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "SeparateErasureCompiler", var_class_name371
);
6991 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 532);
6994 var372
= ((val
* (*)(val
*))(var367
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_layout
]))(var367
) /* vt_layout on <var367:SeparateCompiler(SeparateErasureCompiler)>*/;
6995 /* <var372:nullable Layout[MVirtualTypeProp]> isa PHLayout[MClass, MVirtualTypeProp] */
6996 cltype374
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.color
;
6997 idtype375
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.id
;
6998 if(var372
== NULL
) {
7001 if(cltype374
>= var372
->type
->table_size
) {
7004 var373
= var372
->type
->type_table
[cltype374
] == idtype375
;
7009 var377
= varonce376
;
7013 var380
= string__NativeString__to_s_with_length(var378
, var379
);
7015 varonce376
= var377
;
7018 var382
= varonce381
;
7020 var383
= "vts_table->vts[HASH(";
7022 var385
= string__NativeString__to_s_with_length(var383
, var384
);
7024 varonce381
= var382
;
7027 var387
= varonce386
;
7029 var388
= "vts_table->mask, ";
7031 var390
= string__NativeString__to_s_with_length(var388
, var389
);
7033 varonce386
= var387
;
7035 var391
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(var_mtype
) /* mproperty on <var_mtype:MType(MVirtualType)>*/;
7036 var392
= ((val
* (*)(val
*))(var391
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var391
) /* const_color on <var391:MProperty>*/;
7038 var394
= varonce393
;
7042 var397
= string__NativeString__to_s_with_length(var395
, var396
);
7044 varonce393
= var394
;
7046 var398
= NEW_array__Array(&type_array__Arraykernel__Object
);
7047 { /* var398 = array_instance Array[Object] */
7049 var400
= NEW_array__NativeArray(var399
, &type_array__NativeArraykernel__Object
);
7050 ((struct instance_array__NativeArray
*)var400
)->values
[0] = (val
*) var_entry
;
7051 ((struct instance_array__NativeArray
*)var400
)->values
[1] = (val
*) var377
;
7052 ((struct instance_array__NativeArray
*)var400
)->values
[2] = (val
*) var_recv_ptr
;
7053 ((struct instance_array__NativeArray
*)var400
)->values
[3] = (val
*) var382
;
7054 ((struct instance_array__NativeArray
*)var400
)->values
[4] = (val
*) var_recv_ptr
;
7055 ((struct instance_array__NativeArray
*)var400
)->values
[5] = (val
*) var387
;
7056 ((struct instance_array__NativeArray
*)var400
)->values
[6] = (val
*) var392
;
7057 ((struct instance_array__NativeArray
*)var400
)->values
[7] = (val
*) var394
;
7058 ((void (*)(val
*, val
*, long))(var398
->class->vft
[COLOR_array__Array__with_native
]))(var398
, var400
, var399
) /* with_native on <var398:Array[Object]>*/;
7060 var401
= ((val
* (*)(val
*))(var398
->class->vft
[COLOR_string__Object__to_s
]))(var398
) /* to_s on <var398:Array[Object]>*/;
7061 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var401
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7064 var403
= varonce402
;
7068 var406
= string__NativeString__to_s_with_length(var404
, var405
);
7070 varonce402
= var403
;
7073 var408
= varonce407
;
7075 var409
= "vts_table->vts[";
7077 var411
= string__NativeString__to_s_with_length(var409
, var410
);
7079 varonce407
= var408
;
7081 var412
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(var_mtype
) /* mproperty on <var_mtype:MType(MVirtualType)>*/;
7082 var413
= ((val
* (*)(val
*))(var412
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var412
) /* const_color on <var412:MProperty>*/;
7084 var415
= varonce414
;
7088 var418
= string__NativeString__to_s_with_length(var416
, var417
);
7090 varonce414
= var415
;
7092 var419
= NEW_array__Array(&type_array__Arraykernel__Object
);
7093 { /* var419 = array_instance Array[Object] */
7095 var421
= NEW_array__NativeArray(var420
, &type_array__NativeArraykernel__Object
);
7096 ((struct instance_array__NativeArray
*)var421
)->values
[0] = (val
*) var_entry
;
7097 ((struct instance_array__NativeArray
*)var421
)->values
[1] = (val
*) var403
;
7098 ((struct instance_array__NativeArray
*)var421
)->values
[2] = (val
*) var_recv_ptr
;
7099 ((struct instance_array__NativeArray
*)var421
)->values
[3] = (val
*) var408
;
7100 ((struct instance_array__NativeArray
*)var421
)->values
[4] = (val
*) var413
;
7101 ((struct instance_array__NativeArray
*)var421
)->values
[5] = (val
*) var415
;
7102 ((void (*)(val
*, val
*, long))(var419
->class->vft
[COLOR_array__Array__with_native
]))(var419
, var421
, var420
) /* with_native on <var419:Array[Object]>*/;
7104 var422
= ((val
* (*)(val
*))(var419
->class->vft
[COLOR_string__Object__to_s
]))(var419
) /* to_s on <var419:Array[Object]>*/;
7105 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var422
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7108 var424
= varonce423
;
7112 var427
= string__NativeString__to_s_with_length(var425
, var426
);
7114 varonce423
= var424
;
7117 var429
= varonce428
;
7119 var430
= ".class->color;";
7121 var432
= string__NativeString__to_s_with_length(var430
, var431
);
7123 varonce428
= var429
;
7125 var433
= NEW_array__Array(&type_array__Arraykernel__Object
);
7126 { /* var433 = array_instance Array[Object] */
7128 var435
= NEW_array__NativeArray(var434
, &type_array__NativeArraykernel__Object
);
7129 ((struct instance_array__NativeArray
*)var435
)->values
[0] = (val
*) var_cltype
;
7130 ((struct instance_array__NativeArray
*)var435
)->values
[1] = (val
*) var424
;
7131 ((struct instance_array__NativeArray
*)var435
)->values
[2] = (val
*) var_entry
;
7132 ((struct instance_array__NativeArray
*)var435
)->values
[3] = (val
*) var429
;
7133 ((void (*)(val
*, val
*, long))(var433
->class->vft
[COLOR_array__Array__with_native
]))(var433
, var435
, var434
) /* with_native on <var433:Array[Object]>*/;
7135 var436
= ((val
* (*)(val
*))(var433
->class->vft
[COLOR_string__Object__to_s
]))(var433
) /* to_s on <var433:Array[Object]>*/;
7136 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var436
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7138 var438
= varonce437
;
7142 var441
= string__NativeString__to_s_with_length(var439
, var440
);
7144 varonce437
= var438
;
7147 var443
= varonce442
;
7149 var444
= ".class->id;";
7151 var446
= string__NativeString__to_s_with_length(var444
, var445
);
7153 varonce442
= var443
;
7155 var447
= NEW_array__Array(&type_array__Arraykernel__Object
);
7156 { /* var447 = array_instance Array[Object] */
7158 var449
= NEW_array__NativeArray(var448
, &type_array__NativeArraykernel__Object
);
7159 ((struct instance_array__NativeArray
*)var449
)->values
[0] = (val
*) var_idtype
;
7160 ((struct instance_array__NativeArray
*)var449
)->values
[1] = (val
*) var438
;
7161 ((struct instance_array__NativeArray
*)var449
)->values
[2] = (val
*) var_entry
;
7162 ((struct instance_array__NativeArray
*)var449
)->values
[3] = (val
*) var443
;
7163 ((void (*)(val
*, val
*, long))(var447
->class->vft
[COLOR_array__Array__with_native
]))(var447
, var449
, var448
) /* with_native on <var447:Array[Object]>*/;
7165 var450
= ((val
* (*)(val
*))(var447
->class->vft
[COLOR_string__Object__to_s
]))(var447
) /* to_s on <var447:Array[Object]>*/;
7166 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var450
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7167 var_452
= var_maybe_null
;
7168 if (var_maybe_null
){
7170 var454
= varonce453
;
7174 var457
= string__NativeString__to_s_with_length(var455
, var456
);
7176 varonce453
= var454
;
7178 var458
= ((short int (*)(val
*, val
*))(var_accept_null
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_accept_null
, var454
) /* == on <var_accept_null:String>*/;
7185 var460
= varonce459
;
7187 var461
= "is_nullable";
7189 var463
= string__NativeString__to_s_with_length(var461
, var462
);
7191 varonce459
= var460
;
7193 var464
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var460
) /* get_name on <self:SeparateErasureCompilerVisitor>*/;
7194 var_is_nullable
= var464
;
7196 var466
= varonce465
;
7198 var467
= "short int ";
7200 var469
= string__NativeString__to_s_with_length(var467
, var468
);
7202 varonce465
= var466
;
7205 var471
= varonce470
;
7209 var474
= string__NativeString__to_s_with_length(var472
, var473
);
7211 varonce470
= var471
;
7213 var475
= NEW_array__Array(&type_array__Arraykernel__Object
);
7214 { /* var475 = array_instance Array[Object] */
7216 var477
= NEW_array__NativeArray(var476
, &type_array__NativeArraykernel__Object
);
7217 ((struct instance_array__NativeArray
*)var477
)->values
[0] = (val
*) var466
;
7218 ((struct instance_array__NativeArray
*)var477
)->values
[1] = (val
*) var_is_nullable
;
7219 ((struct instance_array__NativeArray
*)var477
)->values
[2] = (val
*) var471
;
7220 ((void (*)(val
*, val
*, long))(var475
->class->vft
[COLOR_array__Array__with_native
]))(var475
, var477
, var476
) /* with_native on <var475:Array[Object]>*/;
7222 var478
= ((val
* (*)(val
*))(var475
->class->vft
[COLOR_string__Object__to_s
]))(var475
) /* to_s on <var475:Array[Object]>*/;
7223 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var478
) /* add_decl on <self:SeparateErasureCompilerVisitor>*/;
7225 var480
= varonce479
;
7229 var483
= string__NativeString__to_s_with_length(var481
, var482
);
7231 varonce479
= var480
;
7234 var485
= varonce484
;
7236 var486
= ".is_nullable;";
7238 var488
= string__NativeString__to_s_with_length(var486
, var487
);
7240 varonce484
= var485
;
7242 var489
= NEW_array__Array(&type_array__Arraykernel__Object
);
7243 { /* var489 = array_instance Array[Object] */
7245 var491
= NEW_array__NativeArray(var490
, &type_array__NativeArraykernel__Object
);
7246 ((struct instance_array__NativeArray
*)var491
)->values
[0] = (val
*) var_is_nullable
;
7247 ((struct instance_array__NativeArray
*)var491
)->values
[1] = (val
*) var480
;
7248 ((struct instance_array__NativeArray
*)var491
)->values
[2] = (val
*) var_entry
;
7249 ((struct instance_array__NativeArray
*)var491
)->values
[3] = (val
*) var485
;
7250 ((void (*)(val
*, val
*, long))(var489
->class->vft
[COLOR_array__Array__with_native
]))(var489
, var491
, var490
) /* with_native on <var489:Array[Object]>*/;
7252 var492
= ((val
* (*)(val
*))(var489
->class->vft
[COLOR_string__Object__to_s
]))(var489
) /* to_s on <var489:Array[Object]>*/;
7253 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var492
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7254 var493
= ((val
* (*)(val
*))(var_is_nullable
->class->vft
[COLOR_string__Object__to_s
]))(var_is_nullable
) /* to_s on <var_is_nullable:String>*/;
7255 var_accept_null
= var493
;
7258 var494
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
7259 var495
= ((val
* (*)(val
*))(var494
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var494
) /* modelbuilder on <var494:AbstractCompiler(SeparateCompiler)>*/;
7260 var496
= ((val
* (*)(val
*))(var495
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var495
) /* toolcontext on <var495:ModelBuilder>*/;
7261 var497
= ((val
* (*)(val
*))(var496
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_typing_test_metrics
]))(var496
) /* opt_typing_test_metrics on <var496:ToolContext>*/;
7262 var498
= ((val
* (*)(val
*))(var497
->class->vft
[COLOR_opts__Option__value
]))(var497
) /* value on <var497:OptionBool>*/;
7263 var499
= ((struct instance_kernel__Bool
*)var498
)->value
; /* autounbox from nullable Object to Bool */;
7265 var500
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
7266 var501
= ((val
* (*)(val
*))(var500
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__count_type_test_unresolved
]))(var500
) /* count_type_test_unresolved on <var500:AbstractCompiler(SeparateCompiler)>*/;
7269 var504
= ((val
* (*)(val
*, val
*))(var_502
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_502
, var_503
) /* [] on <var_502:HashMap[String, Int]>*/;
7271 { /* Inline kernel#Int#+ (var504,var505) */
7272 var508
= ((struct instance_kernel__Int
*)var504
)->value
; /* autounbox from nullable Object to Int */;
7273 var509
= var508
+ var505
;
7276 RET_LABEL507
:(void)0;
7278 var510
= BOX_kernel__Int(var506
); /* autobox from Int to nullable Object */
7279 ((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]>*/;
7281 var512
= varonce511
;
7283 var513
= "count_type_test_unresolved_";
7285 var515
= string__NativeString__to_s_with_length(var513
, var514
);
7287 varonce511
= var512
;
7290 var517
= varonce516
;
7294 var520
= string__NativeString__to_s_with_length(var518
, var519
);
7296 varonce516
= var517
;
7298 var521
= NEW_array__Array(&type_array__Arraykernel__Object
);
7299 { /* var521 = array_instance Array[Object] */
7301 var523
= NEW_array__NativeArray(var522
, &type_array__NativeArraykernel__Object
);
7302 ((struct instance_array__NativeArray
*)var523
)->values
[0] = (val
*) var512
;
7303 ((struct instance_array__NativeArray
*)var523
)->values
[1] = (val
*) var_tag
;
7304 ((struct instance_array__NativeArray
*)var523
)->values
[2] = (val
*) var517
;
7305 ((void (*)(val
*, val
*, long))(var521
->class->vft
[COLOR_array__Array__with_native
]))(var521
, var523
, var522
) /* with_native on <var521:Array[Object]>*/;
7307 var524
= ((val
* (*)(val
*))(var521
->class->vft
[COLOR_string__Object__to_s
]))(var521
) /* to_s on <var521:Array[Object]>*/;
7308 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var524
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7313 var526
= varonce525
;
7315 var527
= "type_test(";
7317 var529
= string__NativeString__to_s_with_length(var527
, var528
);
7319 varonce525
= var526
;
7321 var530
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_string__Object__inspect
]))(var_value
) /* inspect on <var_value:RuntimeVariable>*/;
7323 var532
= varonce531
;
7327 var535
= string__NativeString__to_s_with_length(var533
, var534
);
7329 varonce531
= var532
;
7332 var537
= varonce536
;
7336 var540
= string__NativeString__to_s_with_length(var538
, var539
);
7338 varonce536
= var537
;
7340 var541
= NEW_array__Array(&type_array__Arraykernel__Object
);
7341 { /* var541 = array_instance Array[Object] */
7343 var543
= NEW_array__NativeArray(var542
, &type_array__NativeArraykernel__Object
);
7344 ((struct instance_array__NativeArray
*)var543
)->values
[0] = (val
*) var526
;
7345 ((struct instance_array__NativeArray
*)var543
)->values
[1] = (val
*) var530
;
7346 ((struct instance_array__NativeArray
*)var543
)->values
[2] = (val
*) var532
;
7347 ((struct instance_array__NativeArray
*)var543
)->values
[3] = (val
*) var_mtype
;
7348 ((struct instance_array__NativeArray
*)var543
)->values
[4] = (val
*) var537
;
7349 ((void (*)(val
*, val
*, long))(var541
->class->vft
[COLOR_array__Array__with_native
]))(var541
, var543
, var542
) /* with_native on <var541:Array[Object]>*/;
7351 var544
= ((val
* (*)(val
*))(var541
->class->vft
[COLOR_string__Object__to_s
]))(var541
) /* to_s on <var541:Array[Object]>*/;
7352 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__debug
]))(self
, var544
) /* debug on <self:SeparateErasureCompilerVisitor>*/;
7353 fprintf(stderr
, "Runtime error: %s", "Aborted");
7354 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 551);
7358 if (var_maybe_null
){
7360 var546
= varonce545
;
7364 var549
= string__NativeString__to_s_with_length(var547
, var548
);
7366 varonce545
= var546
;
7369 var551
= varonce550
;
7371 var552
= " == NULL) {";
7373 var554
= string__NativeString__to_s_with_length(var552
, var553
);
7375 varonce550
= var551
;
7377 var555
= NEW_array__Array(&type_array__Arraykernel__Object
);
7378 { /* var555 = array_instance Array[Object] */
7380 var557
= NEW_array__NativeArray(var556
, &type_array__NativeArraykernel__Object
);
7381 ((struct instance_array__NativeArray
*)var557
)->values
[0] = (val
*) var546
;
7382 ((struct instance_array__NativeArray
*)var557
)->values
[1] = (val
*) var_value
;
7383 ((struct instance_array__NativeArray
*)var557
)->values
[2] = (val
*) var551
;
7384 ((void (*)(val
*, val
*, long))(var555
->class->vft
[COLOR_array__Array__with_native
]))(var555
, var557
, var556
) /* with_native on <var555:Array[Object]>*/;
7386 var558
= ((val
* (*)(val
*))(var555
->class->vft
[COLOR_string__Object__to_s
]))(var555
) /* to_s on <var555:Array[Object]>*/;
7387 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var558
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7389 var560
= varonce559
;
7393 var563
= string__NativeString__to_s_with_length(var561
, var562
);
7395 varonce559
= var560
;
7398 var565
= varonce564
;
7402 var568
= string__NativeString__to_s_with_length(var566
, var567
);
7404 varonce564
= var565
;
7406 var569
= NEW_array__Array(&type_array__Arraykernel__Object
);
7407 { /* var569 = array_instance Array[Object] */
7409 var571
= NEW_array__NativeArray(var570
, &type_array__NativeArraykernel__Object
);
7410 ((struct instance_array__NativeArray
*)var571
)->values
[0] = (val
*) var_res
;
7411 ((struct instance_array__NativeArray
*)var571
)->values
[1] = (val
*) var560
;
7412 ((struct instance_array__NativeArray
*)var571
)->values
[2] = (val
*) var_accept_null
;
7413 ((struct instance_array__NativeArray
*)var571
)->values
[3] = (val
*) var565
;
7414 ((void (*)(val
*, val
*, long))(var569
->class->vft
[COLOR_array__Array__with_native
]))(var569
, var571
, var570
) /* with_native on <var569:Array[Object]>*/;
7416 var572
= ((val
* (*)(val
*))(var569
->class->vft
[COLOR_string__Object__to_s
]))(var569
) /* to_s on <var569:Array[Object]>*/;
7417 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var572
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7419 var574
= varonce573
;
7421 var575
= "} else {";
7423 var577
= string__NativeString__to_s_with_length(var575
, var576
);
7425 varonce573
= var574
;
7427 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var574
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7430 var578
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
7431 /* <var578:AbstractCompiler(SeparateCompiler)> isa SeparateErasureCompiler */
7432 cltype580
= type_separate_erasure_compiler__SeparateErasureCompiler
.color
;
7433 idtype581
= type_separate_erasure_compiler__SeparateErasureCompiler
.id
;
7434 if(cltype580
>= var578
->type
->table_size
) {
7437 var579
= var578
->type
->type_table
[cltype580
] == idtype581
;
7440 var_class_name582
= var578
== NULL ?
"null" : var578
->type
->name
;
7441 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "SeparateErasureCompiler", var_class_name582
);
7442 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 560);
7445 var583
= ((val
* (*)(val
*))(var578
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout
]))(var578
) /* class_layout on <var578:SeparateCompiler(SeparateErasureCompiler)>*/;
7446 /* <var583:nullable Layout[MClass]> isa PHLayout[MClass, MClass] */
7447 cltype585
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.color
;
7448 idtype586
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.id
;
7449 if(var583
== NULL
) {
7452 if(cltype585
>= var583
->type
->table_size
) {
7455 var584
= var583
->type
->type_table
[cltype585
] == idtype586
;
7460 var588
= varonce587
;
7462 var589
= " = HASH(";
7464 var591
= string__NativeString__to_s_with_length(var589
, var590
);
7466 varonce587
= var588
;
7469 var593
= varonce592
;
7473 var596
= string__NativeString__to_s_with_length(var594
, var595
);
7475 varonce592
= var593
;
7478 var598
= varonce597
;
7482 var601
= string__NativeString__to_s_with_length(var599
, var600
);
7484 varonce597
= var598
;
7486 var602
= NEW_array__Array(&type_array__Arraykernel__Object
);
7487 { /* var602 = array_instance Array[Object] */
7489 var604
= NEW_array__NativeArray(var603
, &type_array__NativeArraykernel__Object
);
7490 ((struct instance_array__NativeArray
*)var604
)->values
[0] = (val
*) var_cltype
;
7491 ((struct instance_array__NativeArray
*)var604
)->values
[1] = (val
*) var588
;
7492 ((struct instance_array__NativeArray
*)var604
)->values
[2] = (val
*) var_class_ptr
;
7493 ((struct instance_array__NativeArray
*)var604
)->values
[3] = (val
*) var593
;
7494 ((struct instance_array__NativeArray
*)var604
)->values
[4] = (val
*) var_idtype
;
7495 ((struct instance_array__NativeArray
*)var604
)->values
[5] = (val
*) var598
;
7496 ((void (*)(val
*, val
*, long))(var602
->class->vft
[COLOR_array__Array__with_native
]))(var602
, var604
, var603
) /* with_native on <var602:Array[Object]>*/;
7498 var605
= ((val
* (*)(val
*))(var602
->class->vft
[COLOR_string__Object__to_s
]))(var602
) /* to_s on <var602:Array[Object]>*/;
7499 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var605
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7503 var607
= varonce606
;
7507 var610
= string__NativeString__to_s_with_length(var608
, var609
);
7509 varonce606
= var607
;
7512 var612
= varonce611
;
7516 var615
= string__NativeString__to_s_with_length(var613
, var614
);
7518 varonce611
= var612
;
7521 var617
= varonce616
;
7523 var618
= "type_table->size) {";
7525 var620
= string__NativeString__to_s_with_length(var618
, var619
);
7527 varonce616
= var617
;
7529 var621
= NEW_array__Array(&type_array__Arraykernel__Object
);
7530 { /* var621 = array_instance Array[Object] */
7532 var623
= NEW_array__NativeArray(var622
, &type_array__NativeArraykernel__Object
);
7533 ((struct instance_array__NativeArray
*)var623
)->values
[0] = (val
*) var607
;
7534 ((struct instance_array__NativeArray
*)var623
)->values
[1] = (val
*) var_cltype
;
7535 ((struct instance_array__NativeArray
*)var623
)->values
[2] = (val
*) var612
;
7536 ((struct instance_array__NativeArray
*)var623
)->values
[3] = (val
*) var_class_ptr
;
7537 ((struct instance_array__NativeArray
*)var623
)->values
[4] = (val
*) var617
;
7538 ((void (*)(val
*, val
*, long))(var621
->class->vft
[COLOR_array__Array__with_native
]))(var621
, var623
, var622
) /* with_native on <var621:Array[Object]>*/;
7540 var624
= ((val
* (*)(val
*))(var621
->class->vft
[COLOR_string__Object__to_s
]))(var621
) /* to_s on <var621:Array[Object]>*/;
7541 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var624
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7543 var626
= varonce625
;
7547 var629
= string__NativeString__to_s_with_length(var627
, var628
);
7549 varonce625
= var626
;
7551 var630
= NEW_array__Array(&type_array__Arraykernel__Object
);
7552 { /* var630 = array_instance Array[Object] */
7554 var632
= NEW_array__NativeArray(var631
, &type_array__NativeArraykernel__Object
);
7555 ((struct instance_array__NativeArray
*)var632
)->values
[0] = (val
*) var_res
;
7556 ((struct instance_array__NativeArray
*)var632
)->values
[1] = (val
*) var626
;
7557 ((void (*)(val
*, val
*, long))(var630
->class->vft
[COLOR_array__Array__with_native
]))(var630
, var632
, var631
) /* with_native on <var630:Array[Object]>*/;
7559 var633
= ((val
* (*)(val
*))(var630
->class->vft
[COLOR_string__Object__to_s
]))(var630
) /* to_s on <var630:Array[Object]>*/;
7560 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var633
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7562 var635
= varonce634
;
7564 var636
= "} else {";
7566 var638
= string__NativeString__to_s_with_length(var636
, var637
);
7568 varonce634
= var635
;
7570 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var635
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7572 var640
= varonce639
;
7576 var643
= string__NativeString__to_s_with_length(var641
, var642
);
7578 varonce639
= var640
;
7581 var645
= varonce644
;
7583 var646
= "type_table->table[";
7585 var648
= string__NativeString__to_s_with_length(var646
, var647
);
7587 varonce644
= var645
;
7590 var650
= varonce649
;
7594 var653
= string__NativeString__to_s_with_length(var651
, var652
);
7596 varonce649
= var650
;
7599 var655
= varonce654
;
7603 var658
= string__NativeString__to_s_with_length(var656
, var657
);
7605 varonce654
= var655
;
7607 var659
= NEW_array__Array(&type_array__Arraykernel__Object
);
7608 { /* var659 = array_instance Array[Object] */
7610 var661
= NEW_array__NativeArray(var660
, &type_array__NativeArraykernel__Object
);
7611 ((struct instance_array__NativeArray
*)var661
)->values
[0] = (val
*) var_res
;
7612 ((struct instance_array__NativeArray
*)var661
)->values
[1] = (val
*) var640
;
7613 ((struct instance_array__NativeArray
*)var661
)->values
[2] = (val
*) var_class_ptr
;
7614 ((struct instance_array__NativeArray
*)var661
)->values
[3] = (val
*) var645
;
7615 ((struct instance_array__NativeArray
*)var661
)->values
[4] = (val
*) var_cltype
;
7616 ((struct instance_array__NativeArray
*)var661
)->values
[5] = (val
*) var650
;
7617 ((struct instance_array__NativeArray
*)var661
)->values
[6] = (val
*) var_idtype
;
7618 ((struct instance_array__NativeArray
*)var661
)->values
[7] = (val
*) var655
;
7619 ((void (*)(val
*, val
*, long))(var659
->class->vft
[COLOR_array__Array__with_native
]))(var659
, var661
, var660
) /* with_native on <var659:Array[Object]>*/;
7621 var662
= ((val
* (*)(val
*))(var659
->class->vft
[COLOR_string__Object__to_s
]))(var659
) /* to_s on <var659:Array[Object]>*/;
7622 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var662
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7624 var664
= varonce663
;
7628 var667
= string__NativeString__to_s_with_length(var665
, var666
);
7630 varonce663
= var664
;
7632 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var664
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7633 if (var_maybe_null
){
7635 var669
= varonce668
;
7639 var672
= string__NativeString__to_s_with_length(var670
, var671
);
7641 varonce668
= var669
;
7643 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var669
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7651 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#type_test for (self: Object, RuntimeVariable, MType, String): RuntimeVariable */
7652 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7653 val
* var
/* : RuntimeVariable */;
7654 val
* var1
/* : RuntimeVariable */;
7655 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__type_test(self
, p0
, p1
, p2
);
7660 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#class_name_string for (self: SeparateErasureCompilerVisitor, RuntimeVariable): String */
7661 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
7662 val
* var
/* : String */;
7663 val
* var_value
/* var value: RuntimeVariable */;
7664 static val
* varonce
;
7665 val
* var1
/* : String */;
7666 char* var2
/* : NativeString */;
7667 long var3
/* : Int */;
7668 val
* var4
/* : String */;
7669 val
* var5
/* : String */;
7670 val
* var_res
/* var res: String */;
7671 static val
* varonce6
;
7672 val
* var7
/* : String */;
7673 char* var8
/* : NativeString */;
7674 long var9
/* : Int */;
7675 val
* var10
/* : String */;
7676 static val
* varonce11
;
7677 val
* var12
/* : String */;
7678 char* var13
/* : NativeString */;
7679 long var14
/* : Int */;
7680 val
* var15
/* : String */;
7681 val
* var16
/* : Array[Object] */;
7682 long var17
/* : Int */;
7683 val
* var18
/* : NativeArray[Object] */;
7684 val
* var19
/* : String */;
7685 val
* var20
/* : MType */;
7686 val
* var21
/* : String */;
7687 static val
* varonce22
;
7688 val
* var23
/* : String */;
7689 char* var24
/* : NativeString */;
7690 long var25
/* : Int */;
7691 val
* var26
/* : String */;
7692 short int var27
/* : Bool */;
7693 static val
* varonce28
;
7694 val
* var29
/* : String */;
7695 char* var30
/* : NativeString */;
7696 long var31
/* : Int */;
7697 val
* var32
/* : String */;
7698 static val
* varonce33
;
7699 val
* var34
/* : String */;
7700 char* var35
/* : NativeString */;
7701 long var36
/* : Int */;
7702 val
* var37
/* : String */;
7703 static val
* varonce38
;
7704 val
* var39
/* : String */;
7705 char* var40
/* : NativeString */;
7706 long var41
/* : Int */;
7707 val
* var42
/* : String */;
7708 val
* var43
/* : Array[Object] */;
7709 long var44
/* : Int */;
7710 val
* var45
/* : NativeArray[Object] */;
7711 val
* var46
/* : String */;
7712 static val
* varonce47
;
7713 val
* var48
/* : String */;
7714 char* var49
/* : NativeString */;
7715 long var50
/* : Int */;
7716 val
* var51
/* : String */;
7717 val
* var52
/* : MType */;
7718 val
* var53
/* : String */;
7719 val
* var54
/* : Array[Object] */;
7720 long var55
/* : Int */;
7721 val
* var56
/* : NativeArray[Object] */;
7722 val
* var57
/* : String */;
7723 static val
* varonce58
;
7724 val
* var59
/* : String */;
7725 char* var60
/* : NativeString */;
7726 long var61
/* : Int */;
7727 val
* var62
/* : String */;
7728 val
* var63
/* : MType */;
7729 val
* var64
/* : String */;
7730 static val
* varonce65
;
7731 val
* var66
/* : String */;
7732 char* var67
/* : NativeString */;
7733 long var68
/* : Int */;
7734 val
* var69
/* : String */;
7735 val
* var70
/* : Array[Object] */;
7736 long var71
/* : Int */;
7737 val
* var72
/* : NativeArray[Object] */;
7738 val
* var73
/* : String */;
7743 var2
= "var_class_name";
7745 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7749 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var1
) /* get_name on <self:SeparateErasureCompilerVisitor>*/;
7754 var8
= "const char* ";
7756 var10
= string__NativeString__to_s_with_length(var8
, var9
);
7765 var15
= string__NativeString__to_s_with_length(var13
, var14
);
7769 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
7770 { /* var16 = array_instance Array[Object] */
7772 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
7773 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
7774 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var_res
;
7775 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
7776 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
7778 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
7779 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var19
) /* add_decl on <self:SeparateErasureCompilerVisitor>*/;
7780 var20
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
7781 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var20
) /* ctype on <var20:MType>*/;
7787 var26
= string__NativeString__to_s_with_length(var24
, var25
);
7791 var27
= ((short int (*)(val
*, val
*))(var21
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var21
, var23
) /* == on <var21:String>*/;
7798 var32
= string__NativeString__to_s_with_length(var30
, var31
);
7805 var35
= " == NULL ? \"null\" : ";
7807 var37
= string__NativeString__to_s_with_length(var35
, var36
);
7814 var40
= "->class->name;";
7816 var42
= string__NativeString__to_s_with_length(var40
, var41
);
7820 var43
= NEW_array__Array(&type_array__Arraykernel__Object
);
7821 { /* var43 = array_instance Array[Object] */
7823 var45
= NEW_array__NativeArray(var44
, &type_array__NativeArraykernel__Object
);
7824 ((struct instance_array__NativeArray
*)var45
)->values
[0] = (val
*) var_res
;
7825 ((struct instance_array__NativeArray
*)var45
)->values
[1] = (val
*) var29
;
7826 ((struct instance_array__NativeArray
*)var45
)->values
[2] = (val
*) var_value
;
7827 ((struct instance_array__NativeArray
*)var45
)->values
[3] = (val
*) var34
;
7828 ((struct instance_array__NativeArray
*)var45
)->values
[4] = (val
*) var_value
;
7829 ((struct instance_array__NativeArray
*)var45
)->values
[5] = (val
*) var39
;
7830 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[Object]>*/;
7832 var46
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_string__Object__to_s
]))(var43
) /* to_s on <var43:Array[Object]>*/;
7833 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var46
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7840 var51
= string__NativeString__to_s_with_length(var49
, var50
);
7844 var52
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
7845 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var52
) /* c_name on <var52:MType>*/;
7846 var54
= NEW_array__Array(&type_array__Arraykernel__Object
);
7847 { /* var54 = array_instance Array[Object] */
7849 var56
= NEW_array__NativeArray(var55
, &type_array__NativeArraykernel__Object
);
7850 ((struct instance_array__NativeArray
*)var56
)->values
[0] = (val
*) var48
;
7851 ((struct instance_array__NativeArray
*)var56
)->values
[1] = (val
*) var53
;
7852 ((void (*)(val
*, val
*, long))(var54
->class->vft
[COLOR_array__Array__with_native
]))(var54
, var56
, var55
) /* with_native on <var54:Array[Object]>*/;
7854 var57
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_string__Object__to_s
]))(var54
) /* to_s on <var54:Array[Object]>*/;
7855 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var57
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
7859 var60
= " = class_";
7861 var62
= string__NativeString__to_s_with_length(var60
, var61
);
7865 var63
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
7866 var64
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var63
) /* c_name on <var63:MType>*/;
7872 var69
= string__NativeString__to_s_with_length(var67
, var68
);
7876 var70
= NEW_array__Array(&type_array__Arraykernel__Object
);
7877 { /* var70 = array_instance Array[Object] */
7879 var72
= NEW_array__NativeArray(var71
, &type_array__NativeArraykernel__Object
);
7880 ((struct instance_array__NativeArray
*)var72
)->values
[0] = (val
*) var_res
;
7881 ((struct instance_array__NativeArray
*)var72
)->values
[1] = (val
*) var59
;
7882 ((struct instance_array__NativeArray
*)var72
)->values
[2] = (val
*) var64
;
7883 ((struct instance_array__NativeArray
*)var72
)->values
[3] = (val
*) var66
;
7884 ((void (*)(val
*, val
*, long))(var70
->class->vft
[COLOR_array__Array__with_native
]))(var70
, var72
, var71
) /* with_native on <var70:Array[Object]>*/;
7886 var73
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_string__Object__to_s
]))(var70
) /* to_s on <var70:Array[Object]>*/;
7887 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var73
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7894 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#class_name_string for (self: Object, RuntimeVariable): String */
7895 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
7896 val
* var
/* : String */;
7897 val
* var1
/* : String */;
7898 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__class_name_string(self
, p0
);
7903 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#array_instance for (self: SeparateErasureCompilerVisitor, Array[RuntimeVariable], MType): RuntimeVariable */
7904 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__array_instance(val
* self
, val
* p0
, val
* p1
) {
7905 val
* var
/* : RuntimeVariable */;
7906 val
* var_array
/* var array: Array[RuntimeVariable] */;
7907 val
* var_elttype
/* var elttype: MType */;
7908 static val
* varonce
;
7909 val
* var1
/* : String */;
7910 char* var2
/* : NativeString */;
7911 long var3
/* : Int */;
7912 val
* var4
/* : String */;
7913 val
* var5
/* : MClass */;
7914 val
* var_nclass
/* var nclass: MClass */;
7915 val
* var6
/* : MType */;
7916 static val
* varonce7
;
7917 val
* var8
/* : String */;
7918 char* var9
/* : NativeString */;
7919 long var10
/* : Int */;
7920 val
* var11
/* : String */;
7921 val
* var12
/* : MClass */;
7922 val
* var13
/* : Array[MType] */;
7923 long var14
/* : Int */;
7924 val
* var15
/* : NativeArray[MType] */;
7925 val
* var16
/* : MClassType */;
7926 val
* var_arraytype
/* var arraytype: MClassType */;
7927 val
* var17
/* : RuntimeVariable */;
7928 val
* var_res
/* var res: RuntimeVariable */;
7929 static val
* varonce18
;
7930 val
* var19
/* : String */;
7931 char* var20
/* : NativeString */;
7932 long var21
/* : Int */;
7933 val
* var22
/* : String */;
7934 static val
* varonce23
;
7935 val
* var24
/* : String */;
7936 char* var25
/* : NativeString */;
7937 long var26
/* : Int */;
7938 val
* var27
/* : String */;
7939 static val
* varonce28
;
7940 val
* var29
/* : String */;
7941 char* var30
/* : NativeString */;
7942 long var31
/* : Int */;
7943 val
* var32
/* : String */;
7944 val
* var33
/* : Array[Object] */;
7945 long var34
/* : Int */;
7946 val
* var35
/* : NativeArray[Object] */;
7947 val
* var36
/* : String */;
7948 static val
* varonce37
;
7949 val
* var38
/* : String */;
7950 char* var39
/* : NativeString */;
7951 long var40
/* : Int */;
7952 val
* var41
/* : String */;
7953 val
* var42
/* : MClass */;
7954 val
* var43
/* : Array[MType] */;
7955 long var44
/* : Int */;
7956 val
* var45
/* : NativeArray[MType] */;
7957 val
* var46
/* : MClassType */;
7958 val
* var47
/* : RuntimeVariable */;
7959 val
* var_nat
/* var nat: RuntimeVariable */;
7960 short int var48
/* : Bool */;
7961 static val
* varonce49
;
7962 val
* var50
/* : String */;
7963 char* var51
/* : NativeString */;
7964 long var52
/* : Int */;
7965 val
* var53
/* : String */;
7966 val
* var54
/* : String */;
7967 val
* var55
/* : Array[Object] */;
7968 long var56
/* : Int */;
7969 val
* var57
/* : NativeArray[Object] */;
7970 val
* var58
/* : String */;
7971 static val
* varonce59
;
7972 val
* var60
/* : String */;
7973 char* var61
/* : NativeString */;
7974 long var62
/* : Int */;
7975 val
* var63
/* : String */;
7976 val
* var64
/* : String */;
7977 static val
* varonce65
;
7978 val
* var66
/* : String */;
7979 char* var67
/* : NativeString */;
7980 long var68
/* : Int */;
7981 val
* var69
/* : String */;
7982 long var70
/* : Int */;
7983 static val
* varonce71
;
7984 val
* var72
/* : String */;
7985 char* var73
/* : NativeString */;
7986 long var74
/* : Int */;
7987 val
* var75
/* : String */;
7988 val
* var76
/* : Array[Object] */;
7989 long var77
/* : Int */;
7990 val
* var78
/* : NativeArray[Object] */;
7991 val
* var79
/* : Object */;
7992 val
* var80
/* : String */;
7993 val
* var81
/* : Range[Int] */;
7994 long var82
/* : Int */;
7995 long var83
/* : Int */;
7996 val
* var84
/* : Discrete */;
7997 val
* var85
/* : Discrete */;
7998 val
* var86
/* : Iterator[nullable Object] */;
7999 short int var87
/* : Bool */;
8000 val
* var88
/* : nullable Object */;
8001 long var_i
/* var i: Int */;
8002 long var89
/* : Int */;
8003 val
* var90
/* : nullable Object */;
8004 val
* var91
/* : MClassType */;
8005 val
* var92
/* : RuntimeVariable */;
8006 val
* var_r
/* var r: RuntimeVariable */;
8007 static val
* varonce93
;
8008 val
* var94
/* : String */;
8009 char* var95
/* : NativeString */;
8010 long var96
/* : Int */;
8011 val
* var97
/* : String */;
8012 val
* var98
/* : String */;
8013 static val
* varonce99
;
8014 val
* var100
/* : String */;
8015 char* var101
/* : NativeString */;
8016 long var102
/* : Int */;
8017 val
* var103
/* : String */;
8018 static val
* varonce104
;
8019 val
* var105
/* : String */;
8020 char* var106
/* : NativeString */;
8021 long var107
/* : Int */;
8022 val
* var108
/* : String */;
8023 static val
* varonce109
;
8024 val
* var110
/* : String */;
8025 char* var111
/* : NativeString */;
8026 long var112
/* : Int */;
8027 val
* var113
/* : String */;
8028 static val
* varonce114
;
8029 val
* var115
/* : String */;
8030 char* var116
/* : NativeString */;
8031 long var117
/* : Int */;
8032 val
* var118
/* : String */;
8033 val
* var119
/* : Array[Object] */;
8034 long var120
/* : Int */;
8035 val
* var121
/* : NativeArray[Object] */;
8036 val
* var122
/* : Object */;
8037 val
* var123
/* : String */;
8038 long var124
/* : Int */;
8039 val
* var125
/* : RuntimeVariable */;
8040 val
* var_length
/* var length: RuntimeVariable */;
8041 static val
* varonce126
;
8042 val
* var127
/* : String */;
8043 char* var128
/* : NativeString */;
8044 long var129
/* : Int */;
8045 val
* var130
/* : String */;
8046 val
* var131
/* : MMethod */;
8047 val
* var132
/* : Array[RuntimeVariable] */;
8048 long var133
/* : Int */;
8049 val
* var134
/* : NativeArray[RuntimeVariable] */;
8050 val
* var135
/* : nullable RuntimeVariable */;
8051 static val
* varonce136
;
8052 val
* var137
/* : String */;
8053 char* var138
/* : NativeString */;
8054 long var139
/* : Int */;
8055 val
* var140
/* : String */;
8061 var2
= "NativeArray";
8063 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8067 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_class
]))(self
, var1
) /* get_class on <self:SeparateErasureCompilerVisitor>*/;
8069 var6
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__anchor
]))(self
, var_elttype
) /* anchor on <self:SeparateErasureCompilerVisitor>*/;
8076 var11
= string__NativeString__to_s_with_length(var9
, var10
);
8080 var12
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_class
]))(self
, var8
) /* get_class on <self:SeparateErasureCompilerVisitor>*/;
8081 var13
= NEW_array__Array(&type_array__Arraymodel__MType
);
8082 { /* var13 = array_instance Array[MType] */
8084 var15
= NEW_array__NativeArray(var14
, &type_array__NativeArraymodel__MType
);
8085 ((struct instance_array__NativeArray
*)var15
)->values
[0] = (val
*) var_elttype
;
8086 ((void (*)(val
*, val
*, long))(var13
->class->vft
[COLOR_array__Array__with_native
]))(var13
, var15
, var14
) /* with_native on <var13:Array[MType]>*/;
8088 var16
= ((val
* (*)(val
*, val
*))(var12
->class->vft
[COLOR_model__MClass__get_mtype
]))(var12
, var13
) /* get_mtype on <var12:MClass>*/;
8089 var_arraytype
= var16
;
8090 var17
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init_instance
]))(self
, var_arraytype
) /* init_instance on <self:SeparateErasureCompilerVisitor>*/;
8097 var22
= string__NativeString__to_s_with_length(var20
, var21
);
8104 var25
= " = array_instance Array[";
8106 var27
= string__NativeString__to_s_with_length(var25
, var26
);
8115 var32
= string__NativeString__to_s_with_length(var30
, var31
);
8119 var33
= NEW_array__Array(&type_array__Arraykernel__Object
);
8120 { /* var33 = array_instance Array[Object] */
8122 var35
= NEW_array__NativeArray(var34
, &type_array__NativeArraykernel__Object
);
8123 ((struct instance_array__NativeArray
*)var35
)->values
[0] = (val
*) var19
;
8124 ((struct instance_array__NativeArray
*)var35
)->values
[1] = (val
*) var_res
;
8125 ((struct instance_array__NativeArray
*)var35
)->values
[2] = (val
*) var24
;
8126 ((struct instance_array__NativeArray
*)var35
)->values
[3] = (val
*) var_elttype
;
8127 ((struct instance_array__NativeArray
*)var35
)->values
[4] = (val
*) var29
;
8128 ((void (*)(val
*, val
*, long))(var33
->class->vft
[COLOR_array__Array__with_native
]))(var33
, var35
, var34
) /* with_native on <var33:Array[Object]>*/;
8130 var36
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_string__Object__to_s
]))(var33
) /* to_s on <var33:Array[Object]>*/;
8131 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var36
) /* add on <self:SeparateErasureCompilerVisitor>*/;
8135 var39
= "NativeArray";
8137 var41
= string__NativeString__to_s_with_length(var39
, var40
);
8141 var42
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_class
]))(self
, var38
) /* get_class on <self:SeparateErasureCompilerVisitor>*/;
8142 var43
= NEW_array__Array(&type_array__Arraymodel__MType
);
8143 { /* var43 = array_instance Array[MType] */
8145 var45
= NEW_array__NativeArray(var44
, &type_array__NativeArraymodel__MType
);
8146 ((struct instance_array__NativeArray
*)var45
)->values
[0] = (val
*) var_elttype
;
8147 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[MType]>*/;
8149 var46
= ((val
* (*)(val
*, val
*))(var42
->class->vft
[COLOR_model__MClass__get_mtype
]))(var42
, var43
) /* get_mtype on <var42:MClass>*/;
8150 var47
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var46
) /* new_var on <self:SeparateErasureCompilerVisitor>*/;
8153 ((void (*)(val
*, short int))(var_nat
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_nat
, var48
) /* is_exact= on <var_nat:RuntimeVariable>*/;
8159 var53
= string__NativeString__to_s_with_length(var51
, var52
);
8163 var54
= ((val
* (*)(val
*))(var_nclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_nclass
) /* c_name on <var_nclass:MClass>*/;
8164 var55
= NEW_array__Array(&type_array__Arraykernel__Object
);
8165 { /* var55 = array_instance Array[Object] */
8167 var57
= NEW_array__NativeArray(var56
, &type_array__NativeArraykernel__Object
);
8168 ((struct instance_array__NativeArray
*)var57
)->values
[0] = (val
*) var50
;
8169 ((struct instance_array__NativeArray
*)var57
)->values
[1] = (val
*) var54
;
8170 ((void (*)(val
*, val
*, long))(var55
->class->vft
[COLOR_array__Array__with_native
]))(var55
, var57
, var56
) /* with_native on <var55:Array[Object]>*/;
8172 var58
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_string__Object__to_s
]))(var55
) /* to_s on <var55:Array[Object]>*/;
8173 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var58
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
8179 var63
= string__NativeString__to_s_with_length(var61
, var62
);
8183 var64
= ((val
* (*)(val
*))(var_nclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_nclass
) /* c_name on <var_nclass:MClass>*/;
8189 var69
= string__NativeString__to_s_with_length(var67
, var68
);
8193 var70
= ((long (*)(val
*))(var_array
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_array
) /* length on <var_array:Array[RuntimeVariable]>*/;
8199 var75
= string__NativeString__to_s_with_length(var73
, var74
);
8203 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
8204 { /* var76 = array_instance Array[Object] */
8206 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
8207 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var_nat
;
8208 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var60
;
8209 ((struct instance_array__NativeArray
*)var78
)->values
[2] = (val
*) var64
;
8210 ((struct instance_array__NativeArray
*)var78
)->values
[3] = (val
*) var66
;
8211 var79
= BOX_kernel__Int(var70
); /* autobox from Int to Object */
8212 ((struct instance_array__NativeArray
*)var78
)->values
[4] = (val
*) var79
;
8213 ((struct instance_array__NativeArray
*)var78
)->values
[5] = (val
*) var72
;
8214 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
8216 var80
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
8217 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var80
) /* add on <self:SeparateErasureCompilerVisitor>*/;
8218 var81
= NEW_range__Range(&type_range__Rangekernel__Int
);
8220 var83
= ((long (*)(val
*))(var_array
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_array
) /* length on <var_array:Array[RuntimeVariable]>*/;
8221 var84
= BOX_kernel__Int(var82
); /* autobox from Int to Discrete */
8222 var85
= BOX_kernel__Int(var83
); /* autobox from Int to Discrete */
8223 ((void (*)(val
*, val
*, val
*))(var81
->class->vft
[COLOR_range__Range__without_last
]))(var81
, var84
, var85
) /* without_last on <var81:Range[Int]>*/;
8224 var86
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var81
) /* iterator on <var81:Range[Int]>*/;
8226 var87
= ((short int (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var86
) /* is_ok on <var86:Iterator[nullable Object]>*/;
8228 var88
= ((val
* (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var86
) /* item on <var86:Iterator[nullable Object]>*/;
8229 var89
= ((struct instance_kernel__Int
*)var88
)->value
; /* autounbox from nullable Object to Int */;
8231 var90
= ((val
* (*)(val
*, long))(var_array
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_array
, var_i
) /* [] on <var_array:Array[RuntimeVariable]>*/;
8232 var91
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__object_type
]))(self
) /* object_type on <self:SeparateErasureCompilerVisitor>*/;
8233 var92
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var90
, var91
) /* autobox on <self:SeparateErasureCompilerVisitor>*/;
8238 var95
= "((struct instance_";
8240 var97
= string__NativeString__to_s_with_length(var95
, var96
);
8244 var98
= ((val
* (*)(val
*))(var_nclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_nclass
) /* c_name on <var_nclass:MClass>*/;
8250 var103
= string__NativeString__to_s_with_length(var101
, var102
);
8255 var105
= varonce104
;
8257 var106
= ")->values[";
8259 var108
= string__NativeString__to_s_with_length(var106
, var107
);
8261 varonce104
= var105
;
8264 var110
= varonce109
;
8266 var111
= "] = (val*) ";
8268 var113
= string__NativeString__to_s_with_length(var111
, var112
);
8270 varonce109
= var110
;
8273 var115
= varonce114
;
8277 var118
= string__NativeString__to_s_with_length(var116
, var117
);
8279 varonce114
= var115
;
8281 var119
= NEW_array__Array(&type_array__Arraykernel__Object
);
8282 { /* var119 = array_instance Array[Object] */
8284 var121
= NEW_array__NativeArray(var120
, &type_array__NativeArraykernel__Object
);
8285 ((struct instance_array__NativeArray
*)var121
)->values
[0] = (val
*) var94
;
8286 ((struct instance_array__NativeArray
*)var121
)->values
[1] = (val
*) var98
;
8287 ((struct instance_array__NativeArray
*)var121
)->values
[2] = (val
*) var100
;
8288 ((struct instance_array__NativeArray
*)var121
)->values
[3] = (val
*) var_nat
;
8289 ((struct instance_array__NativeArray
*)var121
)->values
[4] = (val
*) var105
;
8290 var122
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
8291 ((struct instance_array__NativeArray
*)var121
)->values
[5] = (val
*) var122
;
8292 ((struct instance_array__NativeArray
*)var121
)->values
[6] = (val
*) var110
;
8293 ((struct instance_array__NativeArray
*)var121
)->values
[7] = (val
*) var_r
;
8294 ((struct instance_array__NativeArray
*)var121
)->values
[8] = (val
*) var115
;
8295 ((void (*)(val
*, val
*, long))(var119
->class->vft
[COLOR_array__Array__with_native
]))(var119
, var121
, var120
) /* with_native on <var119:Array[Object]>*/;
8297 var123
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_string__Object__to_s
]))(var119
) /* to_s on <var119:Array[Object]>*/;
8298 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var123
) /* add on <self:SeparateErasureCompilerVisitor>*/;
8299 CONTINUE_label
: (void)0;
8300 ((void (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var86
) /* next on <var86:Iterator[nullable Object]>*/;
8302 BREAK_label
: (void)0;
8303 var124
= ((long (*)(val
*))(var_array
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_array
) /* length on <var_array:Array[RuntimeVariable]>*/;
8304 var125
= ((val
* (*)(val
*, long))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__int_instance
]))(self
, var124
) /* int_instance on <self:SeparateErasureCompilerVisitor>*/;
8305 var_length
= var125
;
8307 var127
= varonce126
;
8309 var128
= "with_native";
8311 var130
= string__NativeString__to_s_with_length(var128
, var129
);
8313 varonce126
= var127
;
8315 var131
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_property
]))(self
, var127
, var_arraytype
) /* get_property on <self:SeparateErasureCompilerVisitor>*/;
8316 var132
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
8317 { /* var132 = array_instance Array[RuntimeVariable] */
8319 var134
= NEW_array__NativeArray(var133
, &type_array__NativeArrayabstract_compiler__RuntimeVariable
);
8320 ((struct instance_array__NativeArray
*)var134
)->values
[0] = (val
*) var_res
;
8321 ((struct instance_array__NativeArray
*)var134
)->values
[1] = (val
*) var_nat
;
8322 ((struct instance_array__NativeArray
*)var134
)->values
[2] = (val
*) var_length
;
8323 ((void (*)(val
*, val
*, long))(var132
->class->vft
[COLOR_array__Array__with_native
]))(var132
, var134
, var133
) /* with_native on <var132:Array[RuntimeVariable]>*/;
8325 var135
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__send
]))(self
, var131
, var132
) /* send on <self:SeparateErasureCompilerVisitor>*/;
8328 var137
= varonce136
;
8332 var140
= string__NativeString__to_s_with_length(var138
, var139
);
8334 varonce136
= var137
;
8336 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var137
) /* add on <self:SeparateErasureCompilerVisitor>*/;
8342 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#array_instance for (self: Object, Array[RuntimeVariable], MType): RuntimeVariable */
8343 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__array_instance(val
* self
, val
* p0
, val
* p1
) {
8344 val
* var
/* : RuntimeVariable */;
8345 val
* var1
/* : RuntimeVariable */;
8346 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__array_instance(self
, p0
, p1
);
8351 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#calloc_array for (self: SeparateErasureCompilerVisitor, MType, Array[RuntimeVariable]) */
8352 void separate_erasure_compiler__SeparateErasureCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
8353 val
* var_ret_type
/* var ret_type: MType */;
8354 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
8355 short int var
/* : Bool */;
8358 const char* var_class_name
;
8359 val
* var_ret
/* var ret: MClassType */;
8360 static val
* varonce
;
8361 val
* var1
/* : String */;
8362 char* var2
/* : NativeString */;
8363 long var3
/* : Int */;
8364 val
* var4
/* : String */;
8365 val
* var5
/* : MClass */;
8366 val
* var6
/* : String */;
8367 val
* var7
/* : Array[Object] */;
8368 long var8
/* : Int */;
8369 val
* var9
/* : NativeArray[Object] */;
8370 val
* var10
/* : String */;
8371 static val
* varonce11
;
8372 val
* var12
/* : String */;
8373 char* var13
/* : NativeString */;
8374 long var14
/* : Int */;
8375 val
* var15
/* : String */;
8376 val
* var16
/* : MClass */;
8377 val
* var17
/* : String */;
8378 static val
* varonce18
;
8379 val
* var19
/* : String */;
8380 char* var20
/* : NativeString */;
8381 long var21
/* : Int */;
8382 val
* var22
/* : String */;
8383 long var23
/* : Int */;
8384 val
* var24
/* : nullable Object */;
8385 static val
* varonce25
;
8386 val
* var26
/* : String */;
8387 char* var27
/* : NativeString */;
8388 long var28
/* : Int */;
8389 val
* var29
/* : String */;
8390 val
* var30
/* : Array[Object] */;
8391 long var31
/* : Int */;
8392 val
* var32
/* : NativeArray[Object] */;
8393 val
* var33
/* : String */;
8394 val
* var34
/* : RuntimeVariable */;
8397 /* <var_ret_type:MType> isa MClassType */
8398 cltype
= type_model__MClassType
.color
;
8399 idtype
= type_model__MClassType
.id
;
8400 if(cltype
>= var_ret_type
->type
->table_size
) {
8403 var
= var_ret_type
->type
->type_table
[cltype
] == idtype
;
8406 var_class_name
= var_ret_type
== NULL ?
"null" : var_ret_type
->type
->name
;
8407 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
8408 fprintf(stderr
, " (%s:%d)\n", "src/separate_erasure_compiler.nit", 611);
8411 var_ret
= var_ret_type
;
8417 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8421 var5
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_model__MClassType__mclass
]))(var_ret
) /* mclass on <var_ret:MClassType>*/;
8422 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var5
) /* c_name on <var5:MClass>*/;
8423 var7
= NEW_array__Array(&type_array__Arraykernel__Object
);
8424 { /* var7 = array_instance Array[Object] */
8426 var9
= NEW_array__NativeArray(var8
, &type_array__NativeArraykernel__Object
);
8427 ((struct instance_array__NativeArray
*)var9
)->values
[0] = (val
*) var1
;
8428 ((struct instance_array__NativeArray
*)var9
)->values
[1] = (val
*) var6
;
8429 ((void (*)(val
*, val
*, long))(var7
->class->vft
[COLOR_array__Array__with_native
]))(var7
, var9
, var8
) /* with_native on <var7:Array[Object]>*/;
8431 var10
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_string__Object__to_s
]))(var7
) /* to_s on <var7:Array[Object]>*/;
8432 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var10
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
8438 var15
= string__NativeString__to_s_with_length(var13
, var14
);
8442 var16
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_model__MClassType__mclass
]))(var_ret
) /* mclass on <var_ret:MClassType>*/;
8443 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var16
) /* c_name on <var16:MClass>*/;
8449 var22
= string__NativeString__to_s_with_length(var20
, var21
);
8454 var24
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var23
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8460 var29
= string__NativeString__to_s_with_length(var27
, var28
);
8464 var30
= NEW_array__Array(&type_array__Arraykernel__Object
);
8465 { /* var30 = array_instance Array[Object] */
8467 var32
= NEW_array__NativeArray(var31
, &type_array__NativeArraykernel__Object
);
8468 ((struct instance_array__NativeArray
*)var32
)->values
[0] = (val
*) var12
;
8469 ((struct instance_array__NativeArray
*)var32
)->values
[1] = (val
*) var17
;
8470 ((struct instance_array__NativeArray
*)var32
)->values
[2] = (val
*) var19
;
8471 ((struct instance_array__NativeArray
*)var32
)->values
[3] = (val
*) var24
;
8472 ((struct instance_array__NativeArray
*)var32
)->values
[4] = (val
*) var26
;
8473 ((void (*)(val
*, val
*, long))(var30
->class->vft
[COLOR_array__Array__with_native
]))(var30
, var32
, var31
) /* with_native on <var30:Array[Object]>*/;
8475 var33
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_string__Object__to_s
]))(var30
) /* to_s on <var30:Array[Object]>*/;
8476 var34
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var33
, var_ret_type
) /* new_expr on <self:SeparateErasureCompilerVisitor>*/;
8477 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__ret
]))(self
, var34
) /* ret on <self:SeparateErasureCompilerVisitor>*/;
8480 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#calloc_array for (self: Object, MType, Array[RuntimeVariable]) */
8481 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
8482 separate_erasure_compiler__SeparateErasureCompilerVisitor__calloc_array(self
, p0
, p1
);