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 (%s:%d)\n", "Uninitialized attribute @opt_erasure", "src/separate_erasure_compiler.nit", 22);
15 /* method separate_erasure_compiler#ToolContext#opt_erasure for (self: Object): OptionBool */
16 val
* VIRTUAL_separate_erasure_compiler__ToolContext__opt_erasure(val
* self
) {
17 val
* var
/* : OptionBool */;
18 val
* var1
/* : OptionBool */;
19 var1
= separate_erasure_compiler__ToolContext__opt_erasure(self
);
24 /* method separate_erasure_compiler#ToolContext#opt_erasure= for (self: ToolContext, OptionBool) */
25 void separate_erasure_compiler__ToolContext__opt_erasure_61d(val
* self
, val
* p0
) {
26 self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___64dopt_erasure
].val
= p0
; /* @opt_erasure on <self:ToolContext> */
29 /* method separate_erasure_compiler#ToolContext#opt_erasure= for (self: Object, OptionBool) */
30 void VIRTUAL_separate_erasure_compiler__ToolContext__opt_erasure_61d(val
* self
, val
* p0
) {
31 separate_erasure_compiler__ToolContext__opt_erasure_61d(self
, p0
);
34 /* method separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast for (self: ToolContext): OptionBool */
35 val
* separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast(val
* self
) {
36 val
* var
/* : OptionBool */;
37 val
* var1
/* : OptionBool */;
38 var1
= self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___64dopt_no_check_erasure_cast
].val
; /* @opt_no_check_erasure_cast on <self:ToolContext> */
40 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @opt_no_check_erasure_cast", "src/separate_erasure_compiler.nit", 24);
47 /* method separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast for (self: Object): OptionBool */
48 val
* VIRTUAL_separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast(val
* self
) {
49 val
* var
/* : OptionBool */;
50 val
* var1
/* : OptionBool */;
51 var1
= separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast(self
);
56 /* method separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast= for (self: ToolContext, OptionBool) */
57 void separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast_61d(val
* self
, val
* p0
) {
58 self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___64dopt_no_check_erasure_cast
].val
= p0
; /* @opt_no_check_erasure_cast on <self:ToolContext> */
61 /* method separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast= for (self: Object, OptionBool) */
62 void VIRTUAL_separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast_61d(val
* self
, val
* p0
) {
63 separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast_61d(self
, p0
);
66 /* method separate_erasure_compiler#ToolContext#init for (self: ToolContext) */
67 void separate_erasure_compiler__ToolContext__init(val
* self
) {
68 val
* var
/* : OptionContext */;
69 val
* var1
/* : OptionBool */;
70 val
* var2
/* : OptionBool */;
71 val
* var3
/* : Array[Option] */;
72 long var4
/* : Int */;
73 val
* var5
/* : NativeArray[Option] */;
74 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__ToolContext__init
]))(self
) /* init on <self:ToolContext>*/;
75 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
76 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__ToolContext__opt_erasure
]))(self
) /* opt_erasure on <self:ToolContext>*/;
77 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>*/;
78 var3
= NEW_array__Array(&type_array__Arrayopts__Option
);
79 { /* var3 = array_instance Array[Option] */
81 var5
= NEW_array__NativeArray(var4
, &type_array__NativeArrayopts__Option
);
82 ((struct instance_array__NativeArray
*)var5
)->values
[0] = (val
*) var1
;
83 ((struct instance_array__NativeArray
*)var5
)->values
[1] = (val
*) var2
;
84 ((void (*)(val
*, val
*, long))(var3
->class->vft
[COLOR_array__Array__with_native
]))(var3
, var5
, var4
) /* with_native on <var3:Array[Option]>*/;
85 CHECK_NEW_array__Array(var3
);
87 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var
, var3
) /* add_option on <var:OptionContext>*/;
90 /* method separate_erasure_compiler#ToolContext#init for (self: Object) */
91 void VIRTUAL_separate_erasure_compiler__ToolContext__init(val
* self
) {
92 separate_erasure_compiler__ToolContext__init(self
);
95 /* method separate_erasure_compiler#ModelBuilder#run_separate_erasure_compiler for (self: ModelBuilder, MModule, RapidTypeAnalysis) */
96 void separate_erasure_compiler__ModelBuilder__run_separate_erasure_compiler(val
* self
, val
* p0
, val
* p1
) {
97 val
* var_mainmodule
/* var mainmodule: MModule */;
98 val
* var_runtime_type_analysis
/* var runtime_type_analysis: RapidTypeAnalysis */;
100 long var_time0
/* var time0: Int */;
101 val
* var1
/* : ToolContext */;
103 val
* var2
/* : String */;
104 char* var3
/* : NativeString */;
105 long var4
/* : Int */;
106 val
* var5
/* : String */;
107 long var6
/* : Int */;
108 val
* var7
/* : SeparateErasureCompiler */;
109 val
* var_compiler
/* var compiler: SeparateErasureCompiler */;
110 val
* var8
/* : ToolContext */;
111 static val
* varonce9
;
112 val
* var10
/* : String */;
113 char* var11
/* : NativeString */;
114 long var12
/* : Int */;
115 val
* var13
/* : String */;
116 long var14
/* : Int */;
117 val
* var15
/* : String */;
118 static val
* varonce16
;
119 val
* var17
/* : String */;
120 char* var18
/* : NativeString */;
121 long var19
/* : Int */;
122 val
* var20
/* : String */;
123 val
* var21
/* : Array[Object] */;
124 long var22
/* : Int */;
125 val
* var23
/* : NativeArray[Object] */;
126 val
* var24
/* : String */;
127 val
* var25
/* : CodeFile */;
128 val
* var26
/* : POSetElement[MModule] */;
129 val
* var27
/* : Collection[Object] */;
130 val
* var28
/* : Iterator[nullable Object] */;
131 short int var29
/* : Bool */;
132 val
* var30
/* : nullable Object */;
133 val
* var_m
/* var m: MModule */;
134 val
* var31
/* : Array[MClass] */;
135 val
* var32
/* : Iterator[nullable Object] */;
136 short int var33
/* : Bool */;
137 val
* var34
/* : nullable Object */;
138 val
* var_mclass
/* var mclass: MClass */;
139 val
* var36
/* : nullable Layout[MVirtualTypeProp] */;
140 val
* var37
/* : Map[Object, Int] */;
141 val
* var38
/* : String */;
142 static val
* varonce39
;
143 val
* var40
/* : String */;
144 char* var41
/* : NativeString */;
145 long var42
/* : Int */;
146 val
* var43
/* : String */;
147 val
* var44
/* : Array[Object] */;
148 long var45
/* : Int */;
149 val
* var46
/* : NativeArray[Object] */;
150 val
* var47
/* : String */;
151 val
* var48
/* : CodeFile */;
152 val
* var49
/* : POSetElement[MModule] */;
153 val
* var50
/* : Collection[Object] */;
154 val
* var51
/* : Iterator[nullable Object] */;
155 short int var52
/* : Bool */;
156 val
* var53
/* : nullable Object */;
157 val
* var_m54
/* var m: MModule */;
158 val
* var55
/* : ToolContext */;
159 static val
* varonce56
;
160 val
* var57
/* : String */;
161 char* var58
/* : NativeString */;
162 long var59
/* : Int */;
163 val
* var60
/* : String */;
164 val
* var61
/* : Array[Object] */;
165 long var62
/* : Int */;
166 val
* var63
/* : NativeArray[Object] */;
167 val
* var64
/* : String */;
168 long var65
/* : Int */;
169 val
* var66
/* : String */;
170 static val
* varonce67
;
171 val
* var68
/* : String */;
172 char* var69
/* : NativeString */;
173 long var70
/* : Int */;
174 val
* var71
/* : String */;
175 val
* var72
/* : Array[Object] */;
176 long var73
/* : Int */;
177 val
* var74
/* : NativeArray[Object] */;
178 val
* var75
/* : String */;
179 val
* var76
/* : CodeFile */;
180 long var78
/* : Int */;
181 long var_time1
/* var time1: Int */;
182 val
* var79
/* : ToolContext */;
183 static val
* varonce80
;
184 val
* var81
/* : String */;
185 char* var82
/* : NativeString */;
186 long var83
/* : Int */;
187 val
* var84
/* : String */;
188 long var85
/* : Int */;
189 long var87
/* : Int */;
190 static val
* varonce88
;
191 val
* var89
/* : String */;
192 char* var90
/* : NativeString */;
193 long var91
/* : Int */;
194 val
* var92
/* : String */;
195 val
* var93
/* : Array[Object] */;
196 long var94
/* : Int */;
197 val
* var95
/* : NativeArray[Object] */;
198 val
* var96
/* : Object */;
199 val
* var97
/* : String */;
200 long var98
/* : Int */;
202 var_runtime_type_analysis
= p1
;
203 var
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
205 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
209 var3
= "*** GENERATING C ***";
211 var5
= string__NativeString__to_s_with_length(var3
, var4
);
216 ((void (*)(val
*, val
*, long))(var1
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var1
, var2
, var6
) /* info on <var1:ToolContext>*/;
217 var7
= NEW_separate_erasure_compiler__SeparateErasureCompiler(&type_separate_erasure_compiler__SeparateErasureCompiler
);
218 ((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>*/;
219 CHECK_NEW_separate_erasure_compiler__SeparateErasureCompiler(var7
);
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_model_base__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]>*/;
251 CHECK_NEW_array__Array(var21
);
253 var24
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_string__Object__to_s
]))(var21
) /* to_s on <var21:Array[Object]>*/;
254 var25
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var24
) /* new_file on <var_compiler:SeparateErasureCompiler>*/;
256 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__do_property_coloring
]))(var_compiler
) /* do_property_coloring on <var_compiler:SeparateErasureCompiler>*/;
257 var26
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_model_base__MModule__in_importation
]))(var_mainmodule
) /* in_importation on <var_mainmodule:MModule>*/;
258 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var26
) /* greaters on <var26:POSetElement[MModule]>*/;
259 var28
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var27
) /* iterator on <var27:Collection[Object](Collection[MModule])>*/;
261 var29
= ((short int (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var28
) /* is_ok on <var28:Iterator[nullable Object]>*/;
263 var30
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var28
) /* item on <var28:Iterator[nullable Object]>*/;
265 var31
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MModule__intro_mclasses
]))(var_m
) /* intro_mclasses on <var_m:MModule>*/;
266 var32
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var31
) /* iterator on <var31:Array[MClass]>*/;
268 var33
= ((short int (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var32
) /* is_ok on <var32:Iterator[nullable Object]>*/;
270 var34
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var32
) /* item on <var32:Iterator[nullable Object]>*/;
272 ((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>*/;
273 CONTINUE_label
: (void)0;
274 ((void (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var32
) /* next on <var32:Iterator[nullable Object]>*/;
276 BREAK_label
: (void)0;
277 CONTINUE_label35
: (void)0;
278 ((void (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var28
) /* next on <var28:Iterator[nullable Object]>*/;
280 BREAK_label35
: (void)0;
281 var36
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_layout
]))(var_compiler
) /* vt_layout on <var_compiler:SeparateErasureCompiler>*/;
283 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "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_model_base__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]>*/;
306 CHECK_NEW_array__Array(var44
);
308 var47
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_string__Object__to_s
]))(var44
) /* to_s on <var44:Array[Object]>*/;
309 var48
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var47
) /* new_file on <var_compiler:SeparateErasureCompiler>*/;
311 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_main_function
]))(var_compiler
) /* compile_main_function on <var_compiler:SeparateErasureCompiler>*/;
312 var49
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_model_base__MModule__in_importation
]))(var_mainmodule
) /* in_importation on <var_mainmodule:MModule>*/;
313 var50
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var49
) /* greaters on <var49:POSetElement[MModule]>*/;
314 var51
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var50
) /* iterator on <var50:Collection[Object](Collection[MModule])>*/;
316 var52
= ((short int (*)(val
*))(var51
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var51
) /* is_ok on <var51:Iterator[nullable Object]>*/;
318 var53
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var51
) /* item on <var51:Iterator[nullable Object]>*/;
320 var55
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
324 var58
= "Generate C for module ";
326 var60
= string__NativeString__to_s_with_length(var58
, var59
);
330 var61
= NEW_array__Array(&type_array__Arraykernel__Object
);
331 { /* var61 = array_instance Array[Object] */
333 var63
= NEW_array__NativeArray(var62
, &type_array__NativeArraykernel__Object
);
334 ((struct instance_array__NativeArray
*)var63
)->values
[0] = (val
*) var57
;
335 ((struct instance_array__NativeArray
*)var63
)->values
[1] = (val
*) var_m54
;
336 ((void (*)(val
*, val
*, long))(var61
->class->vft
[COLOR_array__Array__with_native
]))(var61
, var63
, var62
) /* with_native on <var61:Array[Object]>*/;
337 CHECK_NEW_array__Array(var61
);
339 var64
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_string__Object__to_s
]))(var61
) /* to_s on <var61:Array[Object]>*/;
341 ((void (*)(val
*, val
*, long))(var55
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var55
, var64
, var65
) /* info on <var55:ToolContext>*/;
342 var66
= ((val
* (*)(val
*))(var_m54
->class->vft
[COLOR_model_base__MModule__name
]))(var_m54
) /* name on <var_m54:MModule>*/;
348 var71
= string__NativeString__to_s_with_length(var69
, var70
);
352 var72
= NEW_array__Array(&type_array__Arraykernel__Object
);
353 { /* var72 = array_instance Array[Object] */
355 var74
= NEW_array__NativeArray(var73
, &type_array__NativeArraykernel__Object
);
356 ((struct instance_array__NativeArray
*)var74
)->values
[0] = (val
*) var66
;
357 ((struct instance_array__NativeArray
*)var74
)->values
[1] = (val
*) var68
;
358 ((void (*)(val
*, val
*, long))(var72
->class->vft
[COLOR_array__Array__with_native
]))(var72
, var74
, var73
) /* with_native on <var72:Array[Object]>*/;
359 CHECK_NEW_array__Array(var72
);
361 var75
= ((val
* (*)(val
*))(var72
->class->vft
[COLOR_string__Object__to_s
]))(var72
) /* to_s on <var72:Array[Object]>*/;
362 var76
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var75
) /* new_file on <var_compiler:SeparateErasureCompiler>*/;
364 ((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>*/;
365 CONTINUE_label77
: (void)0;
366 ((void (*)(val
*))(var51
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var51
) /* next on <var51:Iterator[nullable Object]>*/;
368 BREAK_label77
: (void)0;
369 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__display_stats
]))(var_compiler
) /* display_stats on <var_compiler:SeparateErasureCompiler>*/;
370 var78
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
372 var79
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
376 var82
= "*** END GENERATING C: ";
378 var84
= string__NativeString__to_s_with_length(var82
, var83
);
382 { /* Inline kernel#Int#- (var_time1,var_time0) */
383 var87
= var_time1
- var_time0
;
393 var92
= string__NativeString__to_s_with_length(var90
, var91
);
397 var93
= NEW_array__Array(&type_array__Arraykernel__Object
);
398 { /* var93 = array_instance Array[Object] */
400 var95
= NEW_array__NativeArray(var94
, &type_array__NativeArraykernel__Object
);
401 ((struct instance_array__NativeArray
*)var95
)->values
[0] = (val
*) var81
;
402 var96
= BOX_kernel__Int(var85
); /* autobox from Int to Object */
403 ((struct instance_array__NativeArray
*)var95
)->values
[1] = (val
*) var96
;
404 ((struct instance_array__NativeArray
*)var95
)->values
[2] = (val
*) var89
;
405 ((void (*)(val
*, val
*, long))(var93
->class->vft
[COLOR_array__Array__with_native
]))(var93
, var95
, var94
) /* with_native on <var93:Array[Object]>*/;
406 CHECK_NEW_array__Array(var93
);
408 var97
= ((val
* (*)(val
*))(var93
->class->vft
[COLOR_string__Object__to_s
]))(var93
) /* to_s on <var93:Array[Object]>*/;
410 ((void (*)(val
*, val
*, long))(var79
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var79
, var97
, var98
) /* info on <var79:ToolContext>*/;
411 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__ModelBuilder__write_and_make
]))(self
, var_compiler
) /* write_and_make on <self:ModelBuilder>*/;
414 /* method separate_erasure_compiler#ModelBuilder#run_separate_erasure_compiler for (self: Object, MModule, RapidTypeAnalysis) */
415 void VIRTUAL_separate_erasure_compiler__ModelBuilder__run_separate_erasure_compiler(val
* self
, val
* p0
, val
* p1
) {
416 separate_erasure_compiler__ModelBuilder__run_separate_erasure_compiler(self
, p0
, p1
);
419 /* method separate_erasure_compiler#SeparateErasureCompiler#class_layout for (self: SeparateErasureCompiler): nullable Layout[MClass] */
420 val
* separate_erasure_compiler__SeparateErasureCompiler__class_layout(val
* self
) {
421 val
* var
/* : nullable Layout[MClass] */;
422 val
* var1
/* : nullable Layout[MClass] */;
423 var1
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dclass_layout
].val
; /* @class_layout on <self:SeparateErasureCompiler> */
428 /* method separate_erasure_compiler#SeparateErasureCompiler#class_layout for (self: Object): nullable Layout[MClass] */
429 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_layout(val
* self
) {
430 val
* var
/* : nullable Layout[MClass] */;
431 val
* var1
/* : nullable Layout[MClass] */;
432 var1
= separate_erasure_compiler__SeparateErasureCompiler__class_layout(self
);
437 /* method separate_erasure_compiler#SeparateErasureCompiler#class_layout= for (self: SeparateErasureCompiler, nullable Layout[MClass]) */
438 void separate_erasure_compiler__SeparateErasureCompiler__class_layout_61d(val
* self
, val
* p0
) {
439 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dclass_layout
].val
= p0
; /* @class_layout on <self:SeparateErasureCompiler> */
442 /* method separate_erasure_compiler#SeparateErasureCompiler#class_layout= for (self: Object, nullable Layout[MClass]) */
443 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_layout_61d(val
* self
, val
* p0
) {
444 separate_erasure_compiler__SeparateErasureCompiler__class_layout_61d(self
, p0
);
447 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_layout for (self: SeparateErasureCompiler): nullable Layout[MVirtualTypeProp] */
448 val
* separate_erasure_compiler__SeparateErasureCompiler__vt_layout(val
* self
) {
449 val
* var
/* : nullable Layout[MVirtualTypeProp] */;
450 val
* var1
/* : nullable Layout[MVirtualTypeProp] */;
451 var1
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dvt_layout
].val
; /* @vt_layout on <self:SeparateErasureCompiler> */
456 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_layout for (self: Object): nullable Layout[MVirtualTypeProp] */
457 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__vt_layout(val
* self
) {
458 val
* var
/* : nullable Layout[MVirtualTypeProp] */;
459 val
* var1
/* : nullable Layout[MVirtualTypeProp] */;
460 var1
= separate_erasure_compiler__SeparateErasureCompiler__vt_layout(self
);
465 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_layout= for (self: SeparateErasureCompiler, nullable Layout[MVirtualTypeProp]) */
466 void separate_erasure_compiler__SeparateErasureCompiler__vt_layout_61d(val
* self
, val
* p0
) {
467 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dvt_layout
].val
= p0
; /* @vt_layout on <self:SeparateErasureCompiler> */
470 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_layout= for (self: Object, nullable Layout[MVirtualTypeProp]) */
471 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__vt_layout_61d(val
* self
, val
* p0
) {
472 separate_erasure_compiler__SeparateErasureCompiler__vt_layout_61d(self
, p0
);
475 /* method separate_erasure_compiler#SeparateErasureCompiler#init for (self: SeparateErasureCompiler, MModule, ModelBuilder, RapidTypeAnalysis) */
476 void separate_erasure_compiler__SeparateErasureCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
477 val
* var_mainmodule
/* var mainmodule: MModule */;
478 val
* var_mmbuilder
/* var mmbuilder: ModelBuilder */;
479 val
* var_runtime_type_analysis
/* var runtime_type_analysis: RapidTypeAnalysis */;
480 val
* var
/* : HashSet[MClass] */;
481 val
* var1
/* : Model */;
482 val
* var2
/* : Array[MClass] */;
483 val
* var_mclasses
/* var mclasses: HashSet[MClass] */;
484 val
* var3
/* : MClassColorer */;
485 val
* var_class_colorer
/* var class_colorer: MClassColorer */;
486 val
* var4
/* : ModelBuilder */;
487 val
* var5
/* : ToolContext */;
488 val
* var6
/* : OptionBool */;
489 val
* var7
/* : nullable Object */;
490 short int var8
/* : Bool */;
491 val
* var9
/* : MClassHasher */;
492 val
* var10
/* : PHModOperator */;
493 val
* var_layout_builder
/* var layout_builder: TypingLayoutBuilder[MClass] */;
494 val
* var11
/* : Layout[Object] */;
495 val
* var12
/* : ModelBuilder */;
496 val
* var13
/* : ToolContext */;
497 val
* var14
/* : OptionBool */;
498 val
* var15
/* : nullable Object */;
499 short int var16
/* : Bool */;
500 val
* var17
/* : MClassHasher */;
501 val
* var18
/* : PHAndOperator */;
502 val
* var19
/* : Layout[Object] */;
503 val
* var20
/* : ModelBuilder */;
504 val
* var21
/* : ToolContext */;
505 val
* var22
/* : OptionBool */;
506 val
* var23
/* : nullable Object */;
507 short int var24
/* : Bool */;
508 val
* var25
/* : MClassBMizer */;
509 val
* var26
/* : Layout[Object] */;
510 val
* var27
/* : Layout[Object] */;
511 val
* var28
/* : Map[MClass, Array[nullable MClass]] */;
512 val
* var29
/* : HashMap[MClass, Set[MVirtualTypeProp]] */;
513 val
* var_vts
/* var vts: HashMap[MClass, Set[MVirtualTypeProp]] */;
514 val
* var30
/* : Iterator[nullable Object] */;
515 short int var31
/* : Bool */;
516 val
* var32
/* : nullable Object */;
517 val
* var_mclass
/* var mclass: MClass */;
518 val
* var33
/* : HashSet[MVirtualTypeProp] */;
519 val
* var34
/* : MModule */;
520 val
* var35
/* : Set[MProperty] */;
521 val
* var36
/* : Iterator[nullable Object] */;
522 short int var37
/* : Bool */;
523 val
* var38
/* : nullable Object */;
524 val
* var_mprop
/* var mprop: MProperty */;
525 short int var39
/* : Bool */;
528 val
* var40
/* : nullable Object */;
529 val
* var42
/* : MPropertyColorer[MVirtualTypeProp] */;
530 val
* var_vt_coloring
/* var vt_coloring: MPropertyColorer[MVirtualTypeProp] */;
531 val
* var43
/* : Layout[PropertyLayoutElement] */;
532 val
* var_vt_layout
/* var vt_layout: Layout[MVirtualTypeProp] */;
533 val
* var44
/* : Map[MClass, Array[nullable MPropDef]] */;
536 var_runtime_type_analysis
= p2
;
537 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__init
]))(self
, p0
, p1
, p2
) /* init on <self:SeparateErasureCompiler>*/;
538 var
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass
);
539 var1
= ((val
* (*)(val
*))(var_mmbuilder
->class->vft
[COLOR_modelbuilder__ModelBuilder__model
]))(var_mmbuilder
) /* model on <var_mmbuilder:ModelBuilder>*/;
540 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__Model__mclasses
]))(var1
) /* mclasses on <var1:Model>*/;
541 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_hash_collection__HashSet__from
]))(var
, var2
) /* from on <var:HashSet[MClass]>*/;
542 CHECK_NEW_hash_collection__HashSet(var
);
544 var3
= NEW_layout_builders__MClassColorer(&type_layout_builders__MClassColorer
);
545 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_layout_builders__MClassColorer__init
]))(var3
, var_mainmodule
) /* init on <var3:MClassColorer>*/;
546 CHECK_NEW_layout_builders__MClassColorer(var3
);
547 var_class_colorer
= var3
;
548 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateErasureCompiler>*/;
549 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var4
) /* toolcontext on <var4:ModelBuilder>*/;
550 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var5
) /* opt_phmod_typing on <var5:ToolContext>*/;
551 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_opts__Option__value
]))(var6
) /* value on <var6:OptionBool>*/;
552 var8
= ((struct instance_kernel__Bool
*)var7
)->value
; /* autounbox from nullable Object to Bool */;
554 var9
= NEW_layout_builders__MClassHasher(&type_layout_builders__MClassHasher
);
555 var10
= NEW_layout_builders__PHModOperator(&type_layout_builders__PHModOperator
);
556 ((void (*)(val
*))(var10
->class->vft
[COLOR_layout_builders__PHModOperator__init
]))(var10
) /* init on <var10:PHModOperator>*/;
557 CHECK_NEW_layout_builders__PHModOperator(var10
);
558 ((void (*)(val
*, val
*, val
*))(var9
->class->vft
[COLOR_layout_builders__MClassHasher__init
]))(var9
, var10
, var_mainmodule
) /* init on <var9:MClassHasher>*/;
559 CHECK_NEW_layout_builders__MClassHasher(var9
);
560 var_layout_builder
= var9
;
561 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>*/;
564 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateErasureCompiler>*/;
565 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var12
) /* toolcontext on <var12:ModelBuilder>*/;
566 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var13
) /* opt_phand_typing on <var13:ToolContext>*/;
567 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_opts__Option__value
]))(var14
) /* value on <var14:OptionBool>*/;
568 var16
= ((struct instance_kernel__Bool
*)var15
)->value
; /* autounbox from nullable Object to Bool */;
570 var17
= NEW_layout_builders__MClassHasher(&type_layout_builders__MClassHasher
);
571 var18
= NEW_layout_builders__PHAndOperator(&type_layout_builders__PHAndOperator
);
572 ((void (*)(val
*))(var18
->class->vft
[COLOR_layout_builders__PHAndOperator__init
]))(var18
) /* init on <var18:PHAndOperator>*/;
573 CHECK_NEW_layout_builders__PHAndOperator(var18
);
574 ((void (*)(val
*, val
*, val
*))(var17
->class->vft
[COLOR_layout_builders__MClassHasher__init
]))(var17
, var18
, var_mainmodule
) /* init on <var17:MClassHasher>*/;
575 CHECK_NEW_layout_builders__MClassHasher(var17
);
576 var_layout_builder
= var17
;
577 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>*/;
580 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateErasureCompiler>*/;
581 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var20
) /* toolcontext on <var20:ModelBuilder>*/;
582 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_separate_compiler__ToolContext__opt_bm_typing
]))(var21
) /* opt_bm_typing on <var21:ToolContext>*/;
583 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_opts__Option__value
]))(var22
) /* value on <var22:OptionBool>*/;
584 var24
= ((struct instance_kernel__Bool
*)var23
)->value
; /* autounbox from nullable Object to Bool */;
586 var25
= NEW_layout_builders__MClassBMizer(&type_layout_builders__MClassBMizer
);
587 ((void (*)(val
*, val
*))(var25
->class->vft
[COLOR_layout_builders__MClassBMizer__init
]))(var25
, var_mainmodule
) /* init on <var25:MClassBMizer>*/;
588 CHECK_NEW_layout_builders__MClassBMizer(var25
);
589 var_layout_builder
= var25
;
590 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>*/;
593 var_layout_builder
= var_class_colorer
;
597 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]>*/;
598 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout_61d
]))(self
, var27
) /* class_layout= on <self:SeparateErasureCompiler>*/;
599 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>*/;
600 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_tables_61d
]))(self
, var28
) /* class_tables= on <self:SeparateErasureCompiler>*/;
601 var29
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp
);
602 ((void (*)(val
*))(var29
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var29
) /* init on <var29:HashMap[MClass, Set[MVirtualTypeProp]]>*/;
603 CHECK_NEW_hash_collection__HashMap(var29
);
605 var30
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:HashSet[MClass]>*/;
607 var31
= ((short int (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var30
) /* is_ok on <var30:Iterator[nullable Object]>*/;
609 var32
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var30
) /* item on <var30:Iterator[nullable Object]>*/;
611 var33
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MVirtualTypeProp
);
612 ((void (*)(val
*))(var33
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var33
) /* init on <var33:HashSet[MVirtualTypeProp]>*/;
613 CHECK_NEW_hash_collection__HashSet(var33
);
614 ((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]]>*/;
615 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
616 var35
= ((val
* (*)(val
*, val
*))(var34
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var34
, var_mclass
) /* properties on <var34:MModule>*/;
617 var36
= ((val
* (*)(val
*))(var35
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var35
) /* iterator on <var35:Set[MProperty]>*/;
619 var37
= ((short int (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var36
) /* is_ok on <var36:Iterator[nullable Object]>*/;
621 var38
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var36
) /* item on <var36:Iterator[nullable Object]>*/;
623 /* <var_mprop:MProperty> isa MVirtualTypeProp */
624 cltype
= type_model__MVirtualTypeProp
.color
;
625 idtype
= type_model__MVirtualTypeProp
.id
;
626 if(cltype
>= var_mprop
->type
->table_size
) {
629 var39
= var_mprop
->type
->type_table
[cltype
] == idtype
;
632 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]]>*/;
633 ((void (*)(val
*, val
*))(var40
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var40
, var_mprop
) /* add on <var40:nullable Object(Set[MVirtualTypeProp])>*/;
636 CONTINUE_label
: (void)0;
637 ((void (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var36
) /* next on <var36:Iterator[nullable Object]>*/;
639 BREAK_label
: (void)0;
640 CONTINUE_label41
: (void)0;
641 ((void (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var30
) /* next on <var30:Iterator[nullable Object]>*/;
643 BREAK_label41
: (void)0;
644 var42
= NEW_layout_builders__MPropertyColorer(&type_layout_builders__MPropertyColorermodel__MVirtualTypeProp
);
645 ((void (*)(val
*, val
*, val
*))(var42
->class->vft
[COLOR_layout_builders__MPropertyColorer__init
]))(var42
, var_mainmodule
, var_class_colorer
) /* init on <var42:MPropertyColorer[MVirtualTypeProp]>*/;
646 CHECK_NEW_layout_builders__MPropertyColorer(var42
);
647 var_vt_coloring
= var42
;
648 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]>*/;
649 var_vt_layout
= var43
;
650 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>*/;
651 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_tables_61d
]))(self
, var44
) /* vt_tables= on <self:SeparateErasureCompiler>*/;
652 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_layout_61d
]))(self
, var_vt_layout
) /* vt_layout= on <self:SeparateErasureCompiler>*/;
655 /* method separate_erasure_compiler#SeparateErasureCompiler#init for (self: Object, MModule, ModelBuilder, RapidTypeAnalysis) */
656 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
657 separate_erasure_compiler__SeparateErasureCompiler__init(self
, p0
, p1
, p2
);
660 /* method separate_erasure_compiler#SeparateErasureCompiler#build_vt_tables for (self: SeparateErasureCompiler, Set[MClass], Layout[MProperty]): Map[MClass, Array[nullable MPropDef]] */
661 val
* separate_erasure_compiler__SeparateErasureCompiler__build_vt_tables(val
* self
, val
* p0
, val
* p1
) {
662 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
663 val
* var_mclasses
/* var mclasses: Set[MClass] */;
664 val
* var_layout
/* var layout: Layout[MProperty] */;
665 val
* var1
/* : HashMap[MClass, Array[nullable MPropDef]] */;
666 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MPropDef]] */;
667 val
* var2
/* : Iterator[nullable Object] */;
668 short int var3
/* : Bool */;
669 val
* var4
/* : nullable Object */;
670 val
* var_mclass
/* var mclass: MClass */;
671 val
* var5
/* : Array[nullable MPropDef] */;
672 val
* var_table
/* var table: Array[nullable MPropDef] */;
673 val
* var6
/* : Array[MClass] */;
674 val
* var_parents
/* var parents: Array[MClass] */;
675 val
* var7
/* : MModule */;
676 val
* var8
/* : POSet[MClass] */;
677 short int var9
/* : Bool */;
678 val
* var10
/* : MModule */;
679 val
* var11
/* : POSetElement[MClass] */;
680 val
* var12
/* : Collection[Object] */;
681 val
* var13
/* : Array[nullable Object] */;
682 val
* var14
/* : MModule */;
683 val
* var15
/* : Iterator[nullable Object] */;
684 short int var16
/* : Bool */;
685 val
* var17
/* : nullable Object */;
686 val
* var_parent
/* var parent: MClass */;
687 short int var18
/* : Bool */;
688 val
* var19
/* : MModule */;
689 val
* var20
/* : Set[MProperty] */;
690 val
* var21
/* : Iterator[nullable Object] */;
691 short int var22
/* : Bool */;
692 val
* var23
/* : nullable Object */;
693 val
* var_mproperty
/* var mproperty: MProperty */;
694 short int var24
/* : Bool */;
697 short int var25
/* : Bool */;
698 val
* var27
/* : Map[Object, Int] */;
699 val
* var28
/* : nullable Object */;
700 long var29
/* : Int */;
701 long var_color
/* var color: Int */;
702 long var30
/* : Int */;
703 short int var31
/* : Bool */;
704 short int var33
/* : Bool */;
707 short int var36
/* : Bool */;
708 val
* var37
/* : Range[Int] */;
709 long var38
/* : Int */;
710 val
* var39
/* : Discrete */;
711 val
* var40
/* : Discrete */;
712 val
* var41
/* : Iterator[nullable Object] */;
713 short int var42
/* : Bool */;
714 val
* var43
/* : nullable Object */;
715 long var_i
/* var i: Int */;
716 long var44
/* : Int */;
717 val
* var45
/* : null */;
718 val
* var47
/* : Array[MPropDef] */;
719 val
* var48
/* : Iterator[nullable Object] */;
720 short int var49
/* : Bool */;
721 val
* var50
/* : nullable Object */;
722 val
* var_mpropdef
/* var mpropdef: MVirtualTypeDef */;
723 val
* var51
/* : MClassDef */;
724 val
* var52
/* : MClass */;
725 short int var53
/* : Bool */;
726 val
* var55
/* : MModule */;
727 val
* var56
/* : Set[MProperty] */;
728 val
* var57
/* : Iterator[nullable Object] */;
729 short int var58
/* : Bool */;
730 val
* var59
/* : nullable Object */;
731 val
* var_mproperty60
/* var mproperty: MProperty */;
732 short int var61
/* : Bool */;
735 short int var64
/* : Bool */;
736 val
* var66
/* : Map[Object, Int] */;
737 val
* var67
/* : nullable Object */;
738 long var68
/* : Int */;
739 long var_color69
/* var color: Int */;
740 long var70
/* : Int */;
741 short int var71
/* : Bool */;
742 short int var73
/* : Bool */;
745 short int var76
/* : Bool */;
746 val
* var77
/* : Range[Int] */;
747 long var78
/* : Int */;
748 val
* var79
/* : Discrete */;
749 val
* var80
/* : Discrete */;
750 val
* var81
/* : Iterator[nullable Object] */;
751 short int var82
/* : Bool */;
752 val
* var83
/* : nullable Object */;
753 long var_i84
/* var i: Int */;
754 long var85
/* : Int */;
755 val
* var86
/* : null */;
756 val
* var88
/* : Array[MPropDef] */;
757 val
* var89
/* : Iterator[nullable Object] */;
758 short int var90
/* : Bool */;
759 val
* var91
/* : nullable Object */;
760 val
* var_mpropdef92
/* var mpropdef: MVirtualTypeDef */;
761 val
* var93
/* : MClassDef */;
762 val
* var94
/* : MClass */;
763 short int var95
/* : Bool */;
766 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef
);
767 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var1
) /* init on <var1:HashMap[MClass, Array[nullable MPropDef]]>*/;
768 CHECK_NEW_hash_collection__HashMap(var1
);
770 var2
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:Set[MClass]>*/;
772 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var2
) /* is_ok on <var2:Iterator[nullable Object]>*/;
774 var4
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var2
) /* item on <var2:Iterator[nullable Object]>*/;
776 var5
= NEW_array__Array(&type_array__Arraynullable_model__MPropDef
);
777 ((void (*)(val
*))(var5
->class->vft
[COLOR_array__Array__init
]))(var5
) /* init on <var5:Array[nullable MPropDef]>*/;
778 CHECK_NEW_array__Array(var5
);
780 var6
= NEW_array__Array(&type_array__Arraymodel__MClass
);
781 ((void (*)(val
*))(var6
->class->vft
[COLOR_array__Array__init
]))(var6
) /* init on <var6:Array[MClass]>*/;
782 CHECK_NEW_array__Array(var6
);
784 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
785 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var7
) /* flatten_mclass_hierarchy on <var7:MModule>*/;
786 var9
= ((short int (*)(val
*, val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var8
, var_mclass
) /* has on <var8:POSet[MClass]>*/;
788 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
789 var11
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass
, var10
) /* in_hierarchy on <var_mclass:MClass>*/;
790 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var11
) /* greaters on <var11:POSetElement[MClass]>*/;
791 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_array__Collection__to_a
]))(var12
) /* to_a on <var12:Collection[Object](Collection[MClass])>*/;
793 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
794 ((void (*)(val
*, val
*))(var14
->class->vft
[COLOR_model__MModule__linearize_mclasses
]))(var14
, var_parents
) /* linearize_mclasses on <var14:MModule>*/;
797 var15
= ((val
* (*)(val
*))(var_parents
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_parents
) /* iterator on <var_parents:Array[MClass]>*/;
799 var16
= ((short int (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var15
) /* is_ok on <var15:Iterator[nullable Object]>*/;
801 var17
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var15
) /* item on <var15:Iterator[nullable Object]>*/;
803 var18
= ((short int (*)(val
*, val
*))(var_parent
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_parent
, var_mclass
) /* == on <var_parent:MClass>*/;
808 var19
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
809 var20
= ((val
* (*)(val
*, val
*))(var19
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var19
, var_parent
) /* properties on <var19:MModule>*/;
810 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var20
) /* iterator on <var20:Set[MProperty]>*/;
812 var22
= ((short int (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var21
) /* is_ok on <var21:Iterator[nullable Object]>*/;
814 var23
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var21
) /* item on <var21:Iterator[nullable Object]>*/;
815 var_mproperty
= var23
;
816 /* <var_mproperty:MProperty> isa MVirtualTypeProp */
817 cltype
= type_model__MVirtualTypeProp
.color
;
818 idtype
= type_model__MVirtualTypeProp
.id
;
819 if(cltype
>= var_mproperty
->type
->table_size
) {
822 var24
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
826 goto CONTINUE_label26
;
829 var27
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:Layout[MProperty]>*/;
830 var28
= ((val
* (*)(val
*, val
*))(var27
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var27
, var_mproperty
) /* [] on <var27:Map[Object, Int](Map[MProperty, Int])>*/;
831 var29
= ((struct instance_kernel__Int
*)var28
)->value
; /* autounbox from nullable Object to Int */;
833 var30
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
834 { /* Inline kernel#Int#<= (var30,var_color) */
835 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
836 /* <var_color:Int> isa OTHER */
837 var33
= 1; /* easy <var_color:Int> isa OTHER*/
839 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256);
842 var36
= var30
<= var_color
;
848 var37
= NEW_range__Range(&type_range__Rangekernel__Int
);
849 var38
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
850 var39
= BOX_kernel__Int(var38
); /* autobox from Int to Discrete */
851 var40
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
852 ((void (*)(val
*, val
*, val
*))(var37
->class->vft
[COLOR_range__Range__without_last
]))(var37
, var39
, var40
) /* without_last on <var37:Range[Int]>*/;
853 CHECK_NEW_range__Range(var37
);
854 var41
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var37
) /* iterator on <var37:Range[Int]>*/;
856 var42
= ((short int (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var41
) /* is_ok on <var41:Iterator[nullable Object]>*/;
858 var43
= ((val
* (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var41
) /* item on <var41:Iterator[nullable Object]>*/;
859 var44
= ((struct instance_kernel__Int
*)var43
)->value
; /* autounbox from nullable Object to Int */;
862 ((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]>*/;
863 CONTINUE_label46
: (void)0;
864 ((void (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var41
) /* next on <var41:Iterator[nullable Object]>*/;
866 BREAK_label46
: (void)0;
869 var47
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty
) /* mpropdefs on <var_mproperty:MProperty(MVirtualTypeProp)>*/;
870 var48
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var47
) /* iterator on <var47:Array[MPropDef](Array[MVirtualTypeDef])>*/;
872 var49
= ((short int (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var48
) /* is_ok on <var48:Iterator[nullable Object]>*/;
874 var50
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var48
) /* item on <var48:Iterator[nullable Object]>*/;
875 var_mpropdef
= var50
;
876 var51
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MVirtualTypeDef>*/;
877 var52
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_model__MClassDef__mclass
]))(var51
) /* mclass on <var51:MClassDef>*/;
878 var53
= ((short int (*)(val
*, val
*))(var52
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var52
, var_parent
) /* == on <var52:MClass>*/;
880 ((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]>*/;
883 CONTINUE_label54
: (void)0;
884 ((void (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var48
) /* next on <var48:Iterator[nullable Object]>*/;
886 BREAK_label54
: (void)0;
887 CONTINUE_label26
: (void)0;
888 ((void (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var21
) /* next on <var21:Iterator[nullable Object]>*/;
890 BREAK_label26
: (void)0;
891 CONTINUE_label
: (void)0;
892 ((void (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var15
) /* next on <var15:Iterator[nullable Object]>*/;
894 BREAK_label
: (void)0;
895 var55
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
896 var56
= ((val
* (*)(val
*, val
*))(var55
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var55
, var_mclass
) /* properties on <var55:MModule>*/;
897 var57
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var56
) /* iterator on <var56:Set[MProperty]>*/;
899 var58
= ((short int (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var57
) /* is_ok on <var57:Iterator[nullable Object]>*/;
901 var59
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var57
) /* item on <var57:Iterator[nullable Object]>*/;
902 var_mproperty60
= var59
;
903 /* <var_mproperty60:MProperty> isa MVirtualTypeProp */
904 cltype62
= type_model__MVirtualTypeProp
.color
;
905 idtype63
= type_model__MVirtualTypeProp
.id
;
906 if(cltype62
>= var_mproperty60
->type
->table_size
) {
909 var61
= var_mproperty60
->type
->type_table
[cltype62
] == idtype63
;
913 goto CONTINUE_label65
;
916 var66
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:Layout[MProperty]>*/;
917 var67
= ((val
* (*)(val
*, val
*))(var66
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var66
, var_mproperty60
) /* [] on <var66:Map[Object, Int](Map[MProperty, Int])>*/;
918 var68
= ((struct instance_kernel__Int
*)var67
)->value
; /* autounbox from nullable Object to Int */;
920 var70
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
921 { /* Inline kernel#Int#<= (var70,var_color69) */
922 /* Covariant cast for argument 0 (i) <var_color69:Int> isa OTHER */
923 /* <var_color69:Int> isa OTHER */
924 var73
= 1; /* easy <var_color69:Int> isa OTHER*/
926 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256);
929 var76
= var70
<= var_color69
;
935 var77
= NEW_range__Range(&type_range__Rangekernel__Int
);
936 var78
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
937 var79
= BOX_kernel__Int(var78
); /* autobox from Int to Discrete */
938 var80
= BOX_kernel__Int(var_color69
); /* autobox from Int to Discrete */
939 ((void (*)(val
*, val
*, val
*))(var77
->class->vft
[COLOR_range__Range__without_last
]))(var77
, var79
, var80
) /* without_last on <var77:Range[Int]>*/;
940 CHECK_NEW_range__Range(var77
);
941 var81
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var77
) /* iterator on <var77:Range[Int]>*/;
943 var82
= ((short int (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var81
) /* is_ok on <var81:Iterator[nullable Object]>*/;
945 var83
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var81
) /* item on <var81:Iterator[nullable Object]>*/;
946 var85
= ((struct instance_kernel__Int
*)var83
)->value
; /* autounbox from nullable Object to Int */;
949 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_i84
, var86
) /* []= on <var_table:Array[nullable MPropDef]>*/;
950 CONTINUE_label87
: (void)0;
951 ((void (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var81
) /* next on <var81:Iterator[nullable Object]>*/;
953 BREAK_label87
: (void)0;
956 var88
= ((val
* (*)(val
*))(var_mproperty60
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty60
) /* mpropdefs on <var_mproperty60:MProperty(MVirtualTypeProp)>*/;
957 var89
= ((val
* (*)(val
*))(var88
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var88
) /* iterator on <var88:Array[MPropDef](Array[MVirtualTypeDef])>*/;
959 var90
= ((short int (*)(val
*))(var89
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var89
) /* is_ok on <var89:Iterator[nullable Object]>*/;
961 var91
= ((val
* (*)(val
*))(var89
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var89
) /* item on <var89:Iterator[nullable Object]>*/;
962 var_mpropdef92
= var91
;
963 var93
= ((val
* (*)(val
*))(var_mpropdef92
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef92
) /* mclassdef on <var_mpropdef92:MVirtualTypeDef>*/;
964 var94
= ((val
* (*)(val
*))(var93
->class->vft
[COLOR_model__MClassDef__mclass
]))(var93
) /* mclass on <var93:MClassDef>*/;
965 var95
= ((short int (*)(val
*, val
*))(var94
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var94
, var_mclass
) /* == on <var94:MClass>*/;
967 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_color69
, var_mpropdef92
) /* []= on <var_table:Array[nullable MPropDef]>*/;
970 CONTINUE_label96
: (void)0;
971 ((void (*)(val
*))(var89
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var89
) /* next on <var89:Iterator[nullable Object]>*/;
973 BREAK_label96
: (void)0;
974 CONTINUE_label65
: (void)0;
975 ((void (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var57
) /* next on <var57:Iterator[nullable Object]>*/;
977 BREAK_label65
: (void)0;
978 ((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]]>*/;
979 CONTINUE_label97
: (void)0;
980 ((void (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var2
) /* next on <var2:Iterator[nullable Object]>*/;
982 BREAK_label97
: (void)0;
988 /* method separate_erasure_compiler#SeparateErasureCompiler#build_vt_tables for (self: Object, Set[MClass], Layout[MProperty]): Map[MClass, Array[nullable MPropDef]] */
989 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__build_vt_tables(val
* self
, val
* p0
, val
* p1
) {
990 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
991 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
992 var1
= separate_erasure_compiler__SeparateErasureCompiler__build_vt_tables(self
, p0
, p1
);
997 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_typing_tables for (self: SeparateErasureCompiler, Set[MClass]): Map[MClass, Array[nullable MClass]] */
998 val
* separate_erasure_compiler__SeparateErasureCompiler__build_class_typing_tables(val
* self
, val
* p0
) {
999 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
1000 val
* var_mclasses
/* var mclasses: Set[MClass] */;
1001 val
* var1
/* : HashMap[MClass, Array[nullable MClass]] */;
1002 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MClass]] */;
1003 val
* var2
/* : nullable Layout[MClass] */;
1004 val
* var_layout
/* var layout: nullable Layout[MClass] */;
1005 val
* var3
/* : Iterator[nullable Object] */;
1006 short int var4
/* : Bool */;
1007 val
* var5
/* : nullable Object */;
1008 val
* var_mclass
/* var mclass: MClass */;
1009 val
* var6
/* : Array[nullable MClass] */;
1010 val
* var_table
/* var table: Array[nullable MClass] */;
1011 val
* var7
/* : Array[MClass] */;
1012 val
* var_supers
/* var supers: Array[MClass] */;
1013 val
* var8
/* : MModule */;
1014 val
* var9
/* : POSet[MClass] */;
1015 short int var10
/* : Bool */;
1016 val
* var11
/* : MModule */;
1017 val
* var12
/* : POSetElement[MClass] */;
1018 val
* var13
/* : Collection[Object] */;
1019 val
* var14
/* : Array[nullable Object] */;
1020 val
* var15
/* : Iterator[nullable Object] */;
1021 short int var16
/* : Bool */;
1022 val
* var17
/* : nullable Object */;
1023 val
* var_sup
/* var sup: MClass */;
1024 short int var18
/* : Bool */;
1027 val
* var19
/* : Map[Object, Map[Object, Int]] */;
1028 val
* var20
/* : nullable Object */;
1029 val
* var21
/* : nullable Object */;
1030 long var22
/* : Int */;
1031 long var_color
/* var color: Int */;
1032 val
* var23
/* : Map[Object, Int] */;
1033 val
* var24
/* : nullable Object */;
1034 long var25
/* : Int */;
1035 long var26
/* : Int */;
1036 short int var27
/* : Bool */;
1037 short int var29
/* : Bool */;
1040 short int var32
/* : Bool */;
1041 val
* var33
/* : Range[Int] */;
1042 long var34
/* : Int */;
1043 val
* var35
/* : Discrete */;
1044 val
* var36
/* : Discrete */;
1045 val
* var37
/* : Iterator[nullable Object] */;
1046 short int var38
/* : Bool */;
1047 val
* var39
/* : nullable Object */;
1048 long var_i
/* var i: Int */;
1049 long var40
/* : Int */;
1050 val
* var41
/* : null */;
1052 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MClass
);
1053 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var1
) /* init on <var1:HashMap[MClass, Array[nullable MClass]]>*/;
1054 CHECK_NEW_hash_collection__HashMap(var1
);
1056 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout
]))(self
) /* class_layout on <self:SeparateErasureCompiler>*/;
1058 var3
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:Set[MClass]>*/;
1060 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
1062 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
1064 var6
= NEW_array__Array(&type_array__Arraynullable_model__MClass
);
1065 ((void (*)(val
*))(var6
->class->vft
[COLOR_array__Array__init
]))(var6
) /* init on <var6:Array[nullable MClass]>*/;
1066 CHECK_NEW_array__Array(var6
);
1068 var7
= NEW_array__Array(&type_array__Arraymodel__MClass
);
1069 ((void (*)(val
*))(var7
->class->vft
[COLOR_array__Array__init
]))(var7
) /* init on <var7:Array[MClass]>*/;
1070 CHECK_NEW_array__Array(var7
);
1072 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
1073 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var8
) /* flatten_mclass_hierarchy on <var8:MModule>*/;
1074 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var9
, var_mclass
) /* has on <var9:POSet[MClass]>*/;
1076 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
1077 var12
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass
, var11
) /* in_hierarchy on <var_mclass:MClass>*/;
1078 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var12
) /* greaters on <var12:POSetElement[MClass]>*/;
1079 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_array__Collection__to_a
]))(var13
) /* to_a on <var13:Collection[Object](Collection[MClass])>*/;
1083 var15
= ((val
* (*)(val
*))(var_supers
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_supers
) /* iterator on <var_supers:Array[MClass]>*/;
1085 var16
= ((short int (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var15
) /* is_ok on <var15:Iterator[nullable Object]>*/;
1087 var17
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var15
) /* item on <var15:Iterator[nullable Object]>*/;
1089 /* <var_layout:nullable Layout[MClass]> isa PHLayout[MClass, MClass] */
1090 cltype
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.color
;
1091 idtype
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.id
;
1092 if(var_layout
== NULL
) {
1095 if(cltype
>= var_layout
->type
->table_size
) {
1098 var18
= var_layout
->type
->type_table
[cltype
] == idtype
;
1102 var19
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__hashes
]))(var_layout
) /* hashes on <var_layout:nullable Layout[MClass](PHLayout[MClass, MClass])>*/;
1103 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]])>*/;
1104 var21
= ((val
* (*)(val
*, val
*))(var20
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var20
, var_sup
) /* [] on <var20:nullable Object(Map[MClass, Int])>*/;
1105 var22
= ((struct instance_kernel__Int
*)var21
)->value
; /* autounbox from nullable Object to Int */;
1108 if (var_layout
== NULL
) {
1109 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/separate_erasure_compiler.nit", 182);
1112 var23
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MClass]>*/;
1114 var24
= ((val
* (*)(val
*, val
*))(var23
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var23
, var_sup
) /* [] on <var23:Map[Object, Int](Map[MClass, Int])>*/;
1115 var25
= ((struct instance_kernel__Int
*)var24
)->value
; /* autounbox from nullable Object to Int */;
1118 var26
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MClass]>*/;
1119 { /* Inline kernel#Int#<= (var26,var_color) */
1120 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
1121 /* <var_color:Int> isa OTHER */
1122 var29
= 1; /* easy <var_color:Int> isa OTHER*/
1124 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256);
1127 var32
= var26
<= var_color
;
1130 RET_LABEL28
:(void)0;
1133 var33
= NEW_range__Range(&type_range__Rangekernel__Int
);
1134 var34
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MClass]>*/;
1135 var35
= BOX_kernel__Int(var34
); /* autobox from Int to Discrete */
1136 var36
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
1137 ((void (*)(val
*, val
*, val
*))(var33
->class->vft
[COLOR_range__Range__without_last
]))(var33
, var35
, var36
) /* without_last on <var33:Range[Int]>*/;
1138 CHECK_NEW_range__Range(var33
);
1139 var37
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var33
) /* iterator on <var33:Range[Int]>*/;
1141 var38
= ((short int (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var37
) /* is_ok on <var37:Iterator[nullable Object]>*/;
1143 var39
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var37
) /* item on <var37:Iterator[nullable Object]>*/;
1144 var40
= ((struct instance_kernel__Int
*)var39
)->value
; /* autounbox from nullable Object to Int */;
1147 ((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]>*/;
1148 CONTINUE_label
: (void)0;
1149 ((void (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var37
) /* next on <var37:Iterator[nullable Object]>*/;
1151 BREAK_label
: (void)0;
1154 ((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]>*/;
1155 CONTINUE_label42
: (void)0;
1156 ((void (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var15
) /* next on <var15:Iterator[nullable Object]>*/;
1158 BREAK_label42
: (void)0;
1159 ((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]]>*/;
1160 CONTINUE_label43
: (void)0;
1161 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
1163 BREAK_label43
: (void)0;
1169 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_typing_tables for (self: Object, Set[MClass]): Map[MClass, Array[nullable MClass]] */
1170 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__build_class_typing_tables(val
* self
, val
* p0
) {
1171 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
1172 val
* var1
/* : Map[MClass, Array[nullable MClass]] */;
1173 var1
= separate_erasure_compiler__SeparateErasureCompiler__build_class_typing_tables(self
, p0
);
1178 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_header_structs for (self: SeparateErasureCompiler) */
1179 void separate_erasure_compiler__SeparateErasureCompiler__compile_header_structs(val
* self
) {
1180 val
* var
/* : CodeWriter */;
1181 static val
* varonce
;
1182 val
* var1
/* : String */;
1183 char* var2
/* : NativeString */;
1184 long var3
/* : Int */;
1185 val
* var4
/* : String */;
1186 val
* var5
/* : CodeWriter */;
1187 static val
* varonce6
;
1188 val
* var7
/* : String */;
1189 char* var8
/* : NativeString */;
1190 long var9
/* : Int */;
1191 val
* var10
/* : String */;
1192 val
* var11
/* : CodeWriter */;
1193 static val
* varonce12
;
1194 val
* var13
/* : String */;
1195 char* var14
/* : NativeString */;
1196 long var15
/* : Int */;
1197 val
* var16
/* : String */;
1198 val
* var17
/* : CodeWriter */;
1199 static val
* varonce18
;
1200 val
* var19
/* : String */;
1201 char* var20
/* : NativeString */;
1202 long var21
/* : Int */;
1203 val
* var22
/* : String */;
1204 val
* var23
/* : nullable Layout[MVirtualTypeProp] */;
1205 short int var24
/* : Bool */;
1208 val
* var25
/* : CodeWriter */;
1209 static val
* varonce26
;
1210 val
* var27
/* : String */;
1211 char* var28
/* : NativeString */;
1212 long var29
/* : Int */;
1213 val
* var30
/* : String */;
1214 val
* var31
/* : CodeWriter */;
1215 static val
* varonce32
;
1216 val
* var33
/* : String */;
1217 char* var34
/* : NativeString */;
1218 long var35
/* : Int */;
1219 val
* var36
/* : String */;
1220 val
* var37
/* : ModelBuilder */;
1221 val
* var38
/* : ToolContext */;
1222 val
* var39
/* : OptionBool */;
1223 val
* var40
/* : nullable Object */;
1224 short int var41
/* : Bool */;
1225 val
* var42
/* : CodeWriter */;
1226 static val
* varonce43
;
1227 val
* var44
/* : String */;
1228 char* var45
/* : NativeString */;
1229 long var46
/* : Int */;
1230 val
* var47
/* : String */;
1231 val
* var48
/* : ModelBuilder */;
1232 val
* var49
/* : ToolContext */;
1233 val
* var50
/* : OptionBool */;
1234 val
* var51
/* : nullable Object */;
1235 short int var52
/* : Bool */;
1236 val
* var53
/* : CodeWriter */;
1237 static val
* varonce54
;
1238 val
* var55
/* : String */;
1239 char* var56
/* : NativeString */;
1240 long var57
/* : Int */;
1241 val
* var58
/* : String */;
1242 val
* var59
/* : CodeWriter */;
1243 static val
* varonce60
;
1244 val
* var61
/* : String */;
1245 char* var62
/* : NativeString */;
1246 long var63
/* : Int */;
1247 val
* var64
/* : String */;
1248 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1252 var2
= "typedef void(*nitmethod_t)(void); /* general C type representing a Nit method. */";
1254 var4
= string__NativeString__to_s_with_length(var2
, var3
);
1258 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var
, var1
) /* add_decl on <var:CodeWriter>*/;
1259 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_header_attribute_structs
]))(self
) /* compile_header_attribute_structs on <self:SeparateErasureCompiler>*/;
1260 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1264 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. */";
1266 var10
= string__NativeString__to_s_with_length(var8
, var9
);
1270 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var5
, var7
) /* add_decl on <var5:CodeWriter>*/;
1271 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1275 var14
= "struct type_table { int size; int table[]; }; /* colorized type table. */";
1277 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1281 ((void (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var11
, var13
) /* add_decl on <var11:CodeWriter>*/;
1282 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1286 var20
= "struct vts_entry { short int is_nullable; const struct class *class; }; /* link (nullable or not) between the vts and is bound. */";
1288 var22
= string__NativeString__to_s_with_length(var20
, var21
);
1292 ((void (*)(val
*, val
*))(var17
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var17
, var19
) /* add_decl on <var17:CodeWriter>*/;
1293 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_layout
]))(self
) /* vt_layout on <self:SeparateErasureCompiler>*/;
1294 /* <var23:nullable Layout[MVirtualTypeProp]> isa PHLayout[MClass, MVirtualTypeProp] */
1295 cltype
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.color
;
1296 idtype
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.id
;
1300 if(cltype
>= var23
->type
->table_size
) {
1303 var24
= var23
->type
->type_table
[cltype
] == idtype
;
1307 var25
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1311 var28
= "struct vts_table { int mask; const struct vts_entry vts[]; }; /* vts list of a C type representation. */";
1313 var30
= string__NativeString__to_s_with_length(var28
, var29
);
1317 ((void (*)(val
*, val
*))(var25
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var25
, var27
) /* add_decl on <var25:CodeWriter>*/;
1319 var31
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1323 var34
= "struct vts_table { int dummy; const struct vts_entry vts[]; }; /* vts list of a C type representation. */";
1325 var36
= string__NativeString__to_s_with_length(var34
, var35
);
1329 ((void (*)(val
*, val
*))(var31
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var31
, var33
) /* add_decl on <var31:CodeWriter>*/;
1331 var37
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateErasureCompiler>*/;
1332 var38
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var37
) /* toolcontext on <var37:ModelBuilder>*/;
1333 var39
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var38
) /* opt_phmod_typing on <var38:ToolContext>*/;
1334 var40
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_opts__Option__value
]))(var39
) /* value on <var39:OptionBool>*/;
1335 var41
= ((struct instance_kernel__Bool
*)var40
)->value
; /* autounbox from nullable Object to Bool */;
1337 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1341 var45
= "#define HASH(mask, id) ((mask)%(id))";
1343 var47
= string__NativeString__to_s_with_length(var45
, var46
);
1347 ((void (*)(val
*, val
*))(var42
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var42
, var44
) /* add_decl on <var42:CodeWriter>*/;
1349 var48
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateErasureCompiler>*/;
1350 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var48
) /* toolcontext on <var48:ModelBuilder>*/;
1351 var50
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var49
) /* opt_phand_typing on <var49:ToolContext>*/;
1352 var51
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_opts__Option__value
]))(var50
) /* value on <var50:OptionBool>*/;
1353 var52
= ((struct instance_kernel__Bool
*)var51
)->value
; /* autounbox from nullable Object to Bool */;
1355 var53
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1359 var56
= "#define HASH(mask, id) ((mask)&(id))";
1361 var58
= string__NativeString__to_s_with_length(var56
, var57
);
1365 ((void (*)(val
*, val
*))(var53
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var53
, var55
) /* add_decl on <var53:CodeWriter>*/;
1369 var59
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
1373 var62
= "typedef struct instance { const struct class *class; nitattribute_t attrs[1]; } val; /* general C type representing a Nit instance. */";
1375 var64
= string__NativeString__to_s_with_length(var62
, var63
);
1379 ((void (*)(val
*, val
*))(var59
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var59
, var61
) /* add_decl on <var59:CodeWriter>*/;
1382 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_header_structs for (self: Object) */
1383 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__compile_header_structs(val
* self
) {
1384 separate_erasure_compiler__SeparateErasureCompiler__compile_header_structs(self
);
1387 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_class_to_c for (self: SeparateErasureCompiler, MClass) */
1388 void separate_erasure_compiler__SeparateErasureCompiler__compile_class_to_c(val
* self
, val
* p0
) {
1389 val
* var_mclass
/* var mclass: MClass */;
1390 val
* var
/* : MClassDef */;
1391 val
* var1
/* : MClassType */;
1392 val
* var_mtype
/* var mtype: MClassType */;
1393 val
* var2
/* : String */;
1394 val
* var_c_name
/* var c_name: String */;
1395 val
* var3
/* : Map[MClass, Array[nullable MPropDef]] */;
1396 val
* var4
/* : nullable Object */;
1397 val
* var_vft
/* var vft: Array[nullable MPropDef] */;
1398 val
* var5
/* : Map[MClass, Array[nullable MPropDef]] */;
1399 val
* var6
/* : nullable Object */;
1400 val
* var_attrs
/* var attrs: Array[nullable MPropDef] */;
1401 val
* var7
/* : Map[MClass, Array[nullable MClass]] */;
1402 val
* var8
/* : nullable Object */;
1403 val
* var_class_table
/* var class_table: Array[nullable MClass] */;
1404 val
* var9
/* : AbstractCompilerVisitor */;
1405 val
* var_v
/* var v: SeparateCompilerVisitor */;
1406 static val
* varonce
;
1407 val
* var10
/* : String */;
1408 char* var11
/* : NativeString */;
1409 long var12
/* : Int */;
1410 val
* var13
/* : String */;
1411 static val
* varonce14
;
1412 val
* var15
/* : String */;
1413 char* var16
/* : NativeString */;
1414 long var17
/* : Int */;
1415 val
* var18
/* : String */;
1416 val
* var19
/* : Array[Object] */;
1417 long var20
/* : Int */;
1418 val
* var21
/* : NativeArray[Object] */;
1419 val
* var22
/* : String */;
1420 static val
* varonce23
;
1421 val
* var24
/* : String */;
1422 char* var25
/* : NativeString */;
1423 long var26
/* : Int */;
1424 val
* var27
/* : String */;
1425 val
* var28
/* : Array[Object] */;
1426 long var29
/* : Int */;
1427 val
* var30
/* : NativeArray[Object] */;
1428 val
* var31
/* : String */;
1429 static val
* varonce32
;
1430 val
* var33
/* : String */;
1431 char* var34
/* : NativeString */;
1432 long var35
/* : Int */;
1433 val
* var36
/* : String */;
1434 static val
* varonce37
;
1435 val
* var38
/* : String */;
1436 char* var39
/* : NativeString */;
1437 long var40
/* : Int */;
1438 val
* var41
/* : String */;
1439 val
* var42
/* : Array[Object] */;
1440 long var43
/* : Int */;
1441 val
* var44
/* : NativeArray[Object] */;
1442 val
* var45
/* : String */;
1443 static val
* varonce46
;
1444 val
* var47
/* : String */;
1445 char* var48
/* : NativeString */;
1446 long var49
/* : Int */;
1447 val
* var50
/* : String */;
1448 static val
* varonce51
;
1449 val
* var52
/* : String */;
1450 char* var53
/* : NativeString */;
1451 long var54
/* : Int */;
1452 val
* var55
/* : String */;
1453 val
* var56
/* : Array[Object] */;
1454 long var57
/* : Int */;
1455 val
* var58
/* : NativeArray[Object] */;
1456 val
* var59
/* : String */;
1457 static val
* varonce60
;
1458 val
* var61
/* : String */;
1459 char* var62
/* : NativeString */;
1460 long var63
/* : Int */;
1461 val
* var64
/* : String */;
1462 static val
* varonce65
;
1463 val
* var66
/* : String */;
1464 char* var67
/* : NativeString */;
1465 long var68
/* : Int */;
1466 val
* var69
/* : String */;
1467 val
* var70
/* : Array[Object] */;
1468 long var71
/* : Int */;
1469 val
* var72
/* : NativeArray[Object] */;
1470 val
* var73
/* : String */;
1471 val
* var74
/* : nullable Layout[MClass] */;
1472 val
* var75
/* : Map[Object, Int] */;
1473 val
* var76
/* : nullable Object */;
1474 static val
* varonce77
;
1475 val
* var78
/* : String */;
1476 char* var79
/* : NativeString */;
1477 long var80
/* : Int */;
1478 val
* var81
/* : String */;
1479 val
* var82
/* : Array[Object] */;
1480 long var83
/* : Int */;
1481 val
* var84
/* : NativeArray[Object] */;
1482 val
* var85
/* : String */;
1483 static val
* varonce86
;
1484 val
* var87
/* : String */;
1485 char* var88
/* : NativeString */;
1486 long var89
/* : Int */;
1487 val
* var90
/* : String */;
1488 val
* var91
/* : String */;
1489 static val
* varonce92
;
1490 val
* var93
/* : String */;
1491 char* var94
/* : NativeString */;
1492 long var95
/* : Int */;
1493 val
* var96
/* : String */;
1494 val
* var97
/* : Array[Object] */;
1495 long var98
/* : Int */;
1496 val
* var99
/* : NativeArray[Object] */;
1497 val
* var100
/* : String */;
1498 long var101
/* : Int */;
1499 static val
* varonce102
;
1500 val
* var103
/* : String */;
1501 char* var104
/* : NativeString */;
1502 long var105
/* : Int */;
1503 val
* var106
/* : String */;
1504 val
* var107
/* : Array[Object] */;
1505 long var108
/* : Int */;
1506 val
* var109
/* : NativeArray[Object] */;
1507 val
* var110
/* : Object */;
1508 val
* var111
/* : String */;
1509 val
* var112
/* : nullable Layout[MClass] */;
1510 val
* var_layout
/* var layout: nullable Layout[MClass] */;
1511 short int var113
/* : Bool */;
1514 val
* var114
/* : Map[Object, Int] */;
1515 val
* var115
/* : nullable Object */;
1516 static val
* varonce116
;
1517 val
* var117
/* : String */;
1518 char* var118
/* : NativeString */;
1519 long var119
/* : Int */;
1520 val
* var120
/* : String */;
1521 val
* var121
/* : Array[Object] */;
1522 long var122
/* : Int */;
1523 val
* var123
/* : NativeArray[Object] */;
1524 val
* var124
/* : String */;
1525 val
* var125
/* : Map[Object, Int] */;
1526 val
* var126
/* : nullable Object */;
1527 static val
* varonce127
;
1528 val
* var128
/* : String */;
1529 char* var129
/* : NativeString */;
1530 long var130
/* : Int */;
1531 val
* var131
/* : String */;
1532 val
* var132
/* : Array[Object] */;
1533 long var133
/* : Int */;
1534 val
* var134
/* : NativeArray[Object] */;
1535 val
* var135
/* : String */;
1536 short int var136
/* : Bool */;
1537 static val
* varonce137
;
1538 val
* var138
/* : String */;
1539 char* var139
/* : NativeString */;
1540 long var140
/* : Int */;
1541 val
* var141
/* : String */;
1542 val
* var142
/* : Array[Object] */;
1543 long var143
/* : Int */;
1544 val
* var144
/* : NativeArray[Object] */;
1545 val
* var145
/* : String */;
1546 static val
* varonce146
;
1547 val
* var147
/* : String */;
1548 char* var148
/* : NativeString */;
1549 long var149
/* : Int */;
1550 val
* var150
/* : String */;
1551 static val
* varonce151
;
1552 val
* var152
/* : String */;
1553 char* var153
/* : NativeString */;
1554 long var154
/* : Int */;
1555 val
* var155
/* : String */;
1556 val
* var156
/* : Array[Object] */;
1557 long var157
/* : Int */;
1558 val
* var158
/* : NativeArray[Object] */;
1559 val
* var159
/* : String */;
1560 static val
* varonce160
;
1561 val
* var161
/* : String */;
1562 char* var162
/* : NativeString */;
1563 long var163
/* : Int */;
1564 val
* var164
/* : String */;
1565 static val
* varonce165
;
1566 val
* var166
/* : String */;
1567 char* var167
/* : NativeString */;
1568 long var168
/* : Int */;
1569 val
* var169
/* : String */;
1570 static val
* varonce170
;
1571 val
* var171
/* : String */;
1572 char* var172
/* : NativeString */;
1573 long var173
/* : Int */;
1574 val
* var174
/* : String */;
1575 val
* var175
/* : Array[Object] */;
1576 long var176
/* : Int */;
1577 val
* var177
/* : NativeArray[Object] */;
1578 val
* var178
/* : String */;
1579 static val
* varonce179
;
1580 val
* var180
/* : String */;
1581 char* var181
/* : NativeString */;
1582 long var182
/* : Int */;
1583 val
* var183
/* : String */;
1584 val
* var184
/* : Range[Int] */;
1585 long var185
/* : Int */;
1586 long var186
/* : Int */;
1587 val
* var187
/* : Discrete */;
1588 val
* var188
/* : Discrete */;
1589 val
* var189
/* : Iterator[nullable Object] */;
1590 short int var190
/* : Bool */;
1591 val
* var191
/* : nullable Object */;
1592 long var_i
/* var i: Int */;
1593 long var192
/* : Int */;
1594 val
* var193
/* : nullable Object */;
1595 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
1596 val
* var194
/* : null */;
1597 short int var195
/* : Bool */;
1598 static val
* varonce196
;
1599 val
* var197
/* : String */;
1600 char* var198
/* : NativeString */;
1601 long var199
/* : Int */;
1602 val
* var200
/* : String */;
1603 short int var201
/* : Bool */;
1604 short int var202
/* : Bool */;
1605 short int var_
/* var : Bool */;
1606 val
* var203
/* : MClassDef */;
1607 val
* var204
/* : MClassType */;
1608 val
* var205
/* : String */;
1609 static val
* varonce206
;
1610 val
* var207
/* : String */;
1611 char* var208
/* : NativeString */;
1612 long var209
/* : Int */;
1613 val
* var210
/* : String */;
1614 short int var211
/* : Bool */;
1615 static val
* varonce212
;
1616 val
* var213
/* : String */;
1617 char* var214
/* : NativeString */;
1618 long var215
/* : Int */;
1619 val
* var216
/* : String */;
1620 val
* var217
/* : String */;
1621 val
* var218
/* : Array[Object] */;
1622 long var219
/* : Int */;
1623 val
* var220
/* : NativeArray[Object] */;
1624 val
* var221
/* : String */;
1625 static val
* varonce222
;
1626 val
* var223
/* : String */;
1627 char* var224
/* : NativeString */;
1628 long var225
/* : Int */;
1629 val
* var226
/* : String */;
1630 val
* var227
/* : String */;
1631 static val
* varonce228
;
1632 val
* var229
/* : String */;
1633 char* var230
/* : NativeString */;
1634 long var231
/* : Int */;
1635 val
* var232
/* : String */;
1636 val
* var233
/* : MModule */;
1637 static val
* varonce234
;
1638 val
* var235
/* : String */;
1639 char* var236
/* : NativeString */;
1640 long var237
/* : Int */;
1641 val
* var238
/* : String */;
1642 static val
* varonce239
;
1643 val
* var240
/* : String */;
1644 char* var241
/* : NativeString */;
1645 long var242
/* : Int */;
1646 val
* var243
/* : String */;
1647 static val
* varonce244
;
1648 val
* var245
/* : String */;
1649 char* var246
/* : NativeString */;
1650 long var247
/* : Int */;
1651 val
* var248
/* : String */;
1652 val
* var249
/* : Array[Object] */;
1653 long var250
/* : Int */;
1654 val
* var251
/* : NativeArray[Object] */;
1655 val
* var252
/* : String */;
1656 val
* var253
/* : String */;
1657 val
* var254
/* : Array[Object] */;
1658 long var255
/* : Int */;
1659 val
* var256
/* : NativeArray[Object] */;
1660 val
* var257
/* : String */;
1661 static val
* varonce258
;
1662 val
* var259
/* : String */;
1663 char* var260
/* : NativeString */;
1664 long var261
/* : Int */;
1665 val
* var262
/* : String */;
1666 val
* var263
/* : String */;
1667 static val
* varonce264
;
1668 val
* var265
/* : String */;
1669 char* var266
/* : NativeString */;
1670 long var267
/* : Int */;
1671 val
* var268
/* : String */;
1672 val
* var269
/* : MModule */;
1673 static val
* varonce270
;
1674 val
* var271
/* : String */;
1675 char* var272
/* : NativeString */;
1676 long var273
/* : Int */;
1677 val
* var274
/* : String */;
1678 static val
* varonce275
;
1679 val
* var276
/* : String */;
1680 char* var277
/* : NativeString */;
1681 long var278
/* : Int */;
1682 val
* var279
/* : String */;
1683 static val
* varonce280
;
1684 val
* var281
/* : String */;
1685 char* var282
/* : NativeString */;
1686 long var283
/* : Int */;
1687 val
* var284
/* : String */;
1688 val
* var285
/* : Array[Object] */;
1689 long var286
/* : Int */;
1690 val
* var287
/* : NativeArray[Object] */;
1691 val
* var288
/* : String */;
1692 static val
* varonce289
;
1693 val
* var290
/* : String */;
1694 char* var291
/* : NativeString */;
1695 long var292
/* : Int */;
1696 val
* var293
/* : String */;
1697 static val
* varonce294
;
1698 val
* var295
/* : String */;
1699 char* var296
/* : NativeString */;
1700 long var297
/* : Int */;
1701 val
* var298
/* : String */;
1702 static val
* varonce299
;
1703 val
* var300
/* : String */;
1704 char* var301
/* : NativeString */;
1705 long var302
/* : Int */;
1706 val
* var303
/* : String */;
1707 static val
* varonce304
;
1708 val
* var305
/* : String */;
1709 char* var306
/* : NativeString */;
1710 long var307
/* : Int */;
1711 val
* var308
/* : String */;
1712 val
* var309
/* : Array[Object] */;
1713 long var310
/* : Int */;
1714 val
* var311
/* : NativeArray[Object] */;
1715 val
* var312
/* : String */;
1716 long var313
/* : Int */;
1717 static val
* varonce314
;
1718 val
* var315
/* : String */;
1719 char* var316
/* : NativeString */;
1720 long var317
/* : Int */;
1721 val
* var318
/* : String */;
1722 val
* var319
/* : Array[Object] */;
1723 long var320
/* : Int */;
1724 val
* var321
/* : NativeArray[Object] */;
1725 val
* var322
/* : Object */;
1726 val
* var323
/* : String */;
1727 static val
* varonce324
;
1728 val
* var325
/* : String */;
1729 char* var326
/* : NativeString */;
1730 long var327
/* : Int */;
1731 val
* var328
/* : String */;
1732 val
* var329
/* : Iterator[nullable Object] */;
1733 short int var330
/* : Bool */;
1734 val
* var331
/* : nullable Object */;
1735 val
* var_msuper
/* var msuper: nullable MClass */;
1736 val
* var332
/* : null */;
1737 short int var333
/* : Bool */;
1738 static val
* varonce334
;
1739 val
* var335
/* : String */;
1740 char* var336
/* : NativeString */;
1741 long var337
/* : Int */;
1742 val
* var338
/* : String */;
1743 val
* var339
/* : nullable Layout[MClass] */;
1744 val
* var340
/* : Map[Object, Int] */;
1745 val
* var341
/* : nullable Object */;
1746 static val
* varonce342
;
1747 val
* var343
/* : String */;
1748 char* var344
/* : NativeString */;
1749 long var345
/* : Int */;
1750 val
* var346
/* : String */;
1751 static val
* varonce347
;
1752 val
* var348
/* : String */;
1753 char* var349
/* : NativeString */;
1754 long var350
/* : Int */;
1755 val
* var351
/* : String */;
1756 val
* var352
/* : Array[Object] */;
1757 long var353
/* : Int */;
1758 val
* var354
/* : NativeArray[Object] */;
1759 val
* var355
/* : String */;
1760 static val
* varonce357
;
1761 val
* var358
/* : String */;
1762 char* var359
/* : NativeString */;
1763 long var360
/* : Int */;
1764 val
* var361
/* : String */;
1765 static val
* varonce362
;
1766 val
* var363
/* : String */;
1767 char* var364
/* : NativeString */;
1768 long var365
/* : Int */;
1769 val
* var366
/* : String */;
1770 val
* var367
/* : String */;
1771 static val
* varonce368
;
1772 val
* var369
/* : String */;
1773 char* var370
/* : NativeString */;
1774 long var371
/* : Int */;
1775 val
* var372
/* : String */;
1776 short int var373
/* : Bool */;
1777 val
* var374
/* : CodeWriter */;
1778 static val
* varonce375
;
1779 val
* var376
/* : String */;
1780 char* var377
/* : NativeString */;
1781 long var378
/* : Int */;
1782 val
* var379
/* : String */;
1783 static val
* varonce380
;
1784 val
* var381
/* : String */;
1785 char* var382
/* : NativeString */;
1786 long var383
/* : Int */;
1787 val
* var384
/* : String */;
1788 val
* var385
/* : Array[Object] */;
1789 long var386
/* : Int */;
1790 val
* var387
/* : NativeArray[Object] */;
1791 val
* var388
/* : String */;
1792 val
* var389
/* : CodeWriter */;
1793 static val
* varonce390
;
1794 val
* var391
/* : String */;
1795 char* var392
/* : NativeString */;
1796 long var393
/* : Int */;
1797 val
* var394
/* : String */;
1798 val
* var395
/* : CodeWriter */;
1799 val
* var396
/* : String */;
1800 static val
* varonce397
;
1801 val
* var398
/* : String */;
1802 char* var399
/* : NativeString */;
1803 long var400
/* : Int */;
1804 val
* var401
/* : String */;
1805 val
* var402
/* : Array[Object] */;
1806 long var403
/* : Int */;
1807 val
* var404
/* : NativeArray[Object] */;
1808 val
* var405
/* : String */;
1809 val
* var406
/* : CodeWriter */;
1810 static val
* varonce407
;
1811 val
* var408
/* : String */;
1812 char* var409
/* : NativeString */;
1813 long var410
/* : Int */;
1814 val
* var411
/* : String */;
1815 val
* var412
/* : CodeWriter */;
1816 static val
* varonce413
;
1817 val
* var414
/* : String */;
1818 char* var415
/* : NativeString */;
1819 long var416
/* : Int */;
1820 val
* var417
/* : String */;
1821 static val
* varonce418
;
1822 val
* var419
/* : String */;
1823 char* var420
/* : NativeString */;
1824 long var421
/* : Int */;
1825 val
* var422
/* : String */;
1826 val
* var423
/* : String */;
1827 static val
* varonce424
;
1828 val
* var425
/* : String */;
1829 char* var426
/* : NativeString */;
1830 long var427
/* : Int */;
1831 val
* var428
/* : String */;
1832 val
* var429
/* : Array[Object] */;
1833 long var430
/* : Int */;
1834 val
* var431
/* : NativeArray[Object] */;
1835 val
* var432
/* : String */;
1836 static val
* varonce433
;
1837 val
* var434
/* : String */;
1838 char* var435
/* : NativeString */;
1839 long var436
/* : Int */;
1840 val
* var437
/* : String */;
1841 static val
* varonce438
;
1842 val
* var439
/* : String */;
1843 char* var440
/* : NativeString */;
1844 long var441
/* : Int */;
1845 val
* var442
/* : String */;
1846 val
* var443
/* : Array[Object] */;
1847 long var444
/* : Int */;
1848 val
* var445
/* : NativeArray[Object] */;
1849 val
* var446
/* : String */;
1850 static val
* varonce447
;
1851 val
* var448
/* : String */;
1852 char* var449
/* : NativeString */;
1853 long var450
/* : Int */;
1854 val
* var451
/* : String */;
1855 val
* var452
/* : String */;
1856 static val
* varonce453
;
1857 val
* var454
/* : String */;
1858 char* var455
/* : NativeString */;
1859 long var456
/* : Int */;
1860 val
* var457
/* : String */;
1861 val
* var458
/* : String */;
1862 static val
* varonce459
;
1863 val
* var460
/* : String */;
1864 char* var461
/* : NativeString */;
1865 long var462
/* : Int */;
1866 val
* var463
/* : String */;
1867 val
* var464
/* : Array[Object] */;
1868 long var465
/* : Int */;
1869 val
* var466
/* : NativeArray[Object] */;
1870 val
* var467
/* : String */;
1871 static val
* varonce468
;
1872 val
* var469
/* : String */;
1873 char* var470
/* : NativeString */;
1874 long var471
/* : Int */;
1875 val
* var472
/* : String */;
1876 static val
* varonce473
;
1877 val
* var474
/* : String */;
1878 char* var475
/* : NativeString */;
1879 long var476
/* : Int */;
1880 val
* var477
/* : String */;
1881 static val
* varonce478
;
1882 val
* var479
/* : String */;
1883 char* var480
/* : NativeString */;
1884 long var481
/* : Int */;
1885 val
* var482
/* : String */;
1886 val
* var483
/* : Array[Object] */;
1887 long var484
/* : Int */;
1888 val
* var485
/* : NativeArray[Object] */;
1889 val
* var486
/* : String */;
1890 static val
* varonce487
;
1891 val
* var488
/* : String */;
1892 char* var489
/* : NativeString */;
1893 long var490
/* : Int */;
1894 val
* var491
/* : String */;
1895 val
* var492
/* : Array[Object] */;
1896 long var493
/* : Int */;
1897 val
* var494
/* : NativeArray[Object] */;
1898 val
* var495
/* : String */;
1899 static val
* varonce496
;
1900 val
* var497
/* : String */;
1901 char* var498
/* : NativeString */;
1902 long var499
/* : Int */;
1903 val
* var500
/* : String */;
1904 static val
* varonce501
;
1905 val
* var502
/* : String */;
1906 char* var503
/* : NativeString */;
1907 long var504
/* : Int */;
1908 val
* var505
/* : String */;
1909 val
* var506
/* : Array[Object] */;
1910 long var507
/* : Int */;
1911 val
* var508
/* : NativeArray[Object] */;
1912 val
* var509
/* : String */;
1913 static val
* varonce510
;
1914 val
* var511
/* : String */;
1915 char* var512
/* : NativeString */;
1916 long var513
/* : Int */;
1917 val
* var514
/* : String */;
1918 static val
* varonce515
;
1919 val
* var516
/* : String */;
1920 char* var517
/* : NativeString */;
1921 long var518
/* : Int */;
1922 val
* var519
/* : String */;
1923 static val
* varonce520
;
1924 val
* var521
/* : String */;
1925 char* var522
/* : NativeString */;
1926 long var523
/* : Int */;
1927 val
* var524
/* : String */;
1928 val
* var525
/* : String */;
1929 static val
* varonce526
;
1930 val
* var527
/* : String */;
1931 char* var528
/* : NativeString */;
1932 long var529
/* : Int */;
1933 val
* var530
/* : String */;
1934 short int var531
/* : Bool */;
1935 val
* var532
/* : CodeWriter */;
1936 static val
* varonce533
;
1937 val
* var534
/* : String */;
1938 char* var535
/* : NativeString */;
1939 long var536
/* : Int */;
1940 val
* var537
/* : String */;
1941 static val
* varonce538
;
1942 val
* var539
/* : String */;
1943 char* var540
/* : NativeString */;
1944 long var541
/* : Int */;
1945 val
* var542
/* : String */;
1946 val
* var543
/* : Array[Object] */;
1947 long var544
/* : Int */;
1948 val
* var545
/* : NativeArray[Object] */;
1949 val
* var546
/* : String */;
1950 val
* var547
/* : CodeWriter */;
1951 static val
* varonce548
;
1952 val
* var549
/* : String */;
1953 char* var550
/* : NativeString */;
1954 long var551
/* : Int */;
1955 val
* var552
/* : String */;
1956 val
* var553
/* : CodeWriter */;
1957 static val
* varonce554
;
1958 val
* var555
/* : String */;
1959 char* var556
/* : NativeString */;
1960 long var557
/* : Int */;
1961 val
* var558
/* : String */;
1962 val
* var559
/* : CodeWriter */;
1963 static val
* varonce560
;
1964 val
* var561
/* : String */;
1965 char* var562
/* : NativeString */;
1966 long var563
/* : Int */;
1967 val
* var564
/* : String */;
1968 static val
* varonce565
;
1969 val
* var566
/* : String */;
1970 char* var567
/* : NativeString */;
1971 long var568
/* : Int */;
1972 val
* var569
/* : String */;
1973 val
* var570
/* : Array[Object] */;
1974 long var571
/* : Int */;
1975 val
* var572
/* : NativeArray[Object] */;
1976 val
* var573
/* : String */;
1977 val
* var574
/* : String */;
1978 static val
* varonce575
;
1979 val
* var576
/* : String */;
1980 char* var577
/* : NativeString */;
1981 long var578
/* : Int */;
1982 val
* var579
/* : String */;
1983 static val
* varonce580
;
1984 val
* var581
/* : String */;
1985 char* var582
/* : NativeString */;
1986 long var583
/* : Int */;
1987 val
* var584
/* : String */;
1988 val
* var585
/* : Array[Object] */;
1989 long var586
/* : Int */;
1990 val
* var587
/* : NativeArray[Object] */;
1991 val
* var588
/* : String */;
1992 static val
* varonce589
;
1993 val
* var590
/* : String */;
1994 char* var591
/* : NativeString */;
1995 long var592
/* : Int */;
1996 val
* var593
/* : String */;
1997 static val
* varonce594
;
1998 val
* var595
/* : String */;
1999 char* var596
/* : NativeString */;
2000 long var597
/* : Int */;
2001 val
* var598
/* : String */;
2002 val
* var599
/* : Array[Object] */;
2003 long var600
/* : Int */;
2004 val
* var601
/* : NativeArray[Object] */;
2005 val
* var602
/* : String */;
2006 val
* var603
/* : String */;
2007 static val
* varonce604
;
2008 val
* var605
/* : String */;
2009 char* var606
/* : NativeString */;
2010 long var607
/* : Int */;
2011 val
* var608
/* : String */;
2012 static val
* varonce609
;
2013 val
* var610
/* : String */;
2014 char* var611
/* : NativeString */;
2015 long var612
/* : Int */;
2016 val
* var613
/* : String */;
2017 val
* var614
/* : Array[Object] */;
2018 long var615
/* : Int */;
2019 val
* var616
/* : NativeArray[Object] */;
2020 val
* var617
/* : String */;
2021 static val
* varonce618
;
2022 val
* var619
/* : String */;
2023 char* var620
/* : NativeString */;
2024 long var621
/* : Int */;
2025 val
* var622
/* : String */;
2026 val
* var623
/* : RuntimeVariable */;
2027 val
* var_res
/* var res: RuntimeVariable */;
2028 short int var624
/* : Bool */;
2029 val
* var625
/* : Array[MType] */;
2030 val
* var626
/* : nullable Object */;
2031 val
* var_mtype_elt
/* var mtype_elt: MType */;
2032 static val
* varonce627
;
2033 val
* var628
/* : String */;
2034 char* var629
/* : NativeString */;
2035 long var630
/* : Int */;
2036 val
* var631
/* : String */;
2037 static val
* varonce632
;
2038 val
* var633
/* : String */;
2039 char* var634
/* : NativeString */;
2040 long var635
/* : Int */;
2041 val
* var636
/* : String */;
2042 val
* var637
/* : String */;
2043 static val
* varonce638
;
2044 val
* var639
/* : String */;
2045 char* var640
/* : NativeString */;
2046 long var641
/* : Int */;
2047 val
* var642
/* : String */;
2048 val
* var643
/* : Array[Object] */;
2049 long var644
/* : Int */;
2050 val
* var645
/* : NativeArray[Object] */;
2051 val
* var646
/* : String */;
2052 static val
* varonce647
;
2053 val
* var648
/* : String */;
2054 char* var649
/* : NativeString */;
2055 long var650
/* : Int */;
2056 val
* var651
/* : String */;
2057 val
* var652
/* : Array[Object] */;
2058 long var653
/* : Int */;
2059 val
* var654
/* : NativeArray[Object] */;
2060 val
* var655
/* : String */;
2061 static val
* varonce656
;
2062 val
* var657
/* : String */;
2063 char* var658
/* : NativeString */;
2064 long var659
/* : Int */;
2065 val
* var660
/* : String */;
2066 static val
* varonce661
;
2067 val
* var662
/* : String */;
2068 char* var663
/* : NativeString */;
2069 long var664
/* : Int */;
2070 val
* var665
/* : String */;
2071 val
* var666
/* : Array[Object] */;
2072 long var667
/* : Int */;
2073 val
* var668
/* : NativeArray[Object] */;
2074 val
* var669
/* : String */;
2075 static val
* varonce670
;
2076 val
* var671
/* : String */;
2077 char* var672
/* : NativeString */;
2078 long var673
/* : Int */;
2079 val
* var674
/* : String */;
2080 static val
* varonce675
;
2081 val
* var676
/* : String */;
2082 char* var677
/* : NativeString */;
2083 long var678
/* : Int */;
2084 val
* var679
/* : String */;
2085 val
* var680
/* : Array[Object] */;
2086 long var681
/* : Int */;
2087 val
* var682
/* : NativeArray[Object] */;
2088 val
* var683
/* : String */;
2089 static val
* varonce684
;
2090 val
* var685
/* : String */;
2091 char* var686
/* : NativeString */;
2092 long var687
/* : Int */;
2093 val
* var688
/* : String */;
2094 static val
* varonce689
;
2095 val
* var690
/* : String */;
2096 char* var691
/* : NativeString */;
2097 long var692
/* : Int */;
2098 val
* var693
/* : String */;
2099 val
* var694
/* : Array[Object] */;
2100 long var695
/* : Int */;
2101 val
* var696
/* : NativeArray[Object] */;
2102 val
* var697
/* : String */;
2103 val
* var698
/* : String */;
2104 static val
* varonce699
;
2105 val
* var700
/* : String */;
2106 char* var701
/* : NativeString */;
2107 long var702
/* : Int */;
2108 val
* var703
/* : String */;
2109 static val
* varonce704
;
2110 val
* var705
/* : String */;
2111 char* var706
/* : NativeString */;
2112 long var707
/* : Int */;
2113 val
* var708
/* : String */;
2114 val
* var709
/* : Array[Object] */;
2115 long var710
/* : Int */;
2116 val
* var711
/* : NativeArray[Object] */;
2117 val
* var712
/* : String */;
2118 static val
* varonce713
;
2119 val
* var714
/* : String */;
2120 char* var715
/* : NativeString */;
2121 long var716
/* : Int */;
2122 val
* var717
/* : String */;
2123 static val
* varonce718
;
2124 val
* var719
/* : String */;
2125 char* var720
/* : NativeString */;
2126 long var721
/* : Int */;
2127 val
* var722
/* : String */;
2128 val
* var723
/* : Array[Object] */;
2129 long var724
/* : Int */;
2130 val
* var725
/* : NativeArray[Object] */;
2131 val
* var726
/* : String */;
2132 val
* var727
/* : String */;
2133 static val
* varonce728
;
2134 val
* var729
/* : String */;
2135 char* var730
/* : NativeString */;
2136 long var731
/* : Int */;
2137 val
* var732
/* : String */;
2138 static val
* varonce733
;
2139 val
* var734
/* : String */;
2140 char* var735
/* : NativeString */;
2141 long var736
/* : Int */;
2142 val
* var737
/* : String */;
2143 val
* var738
/* : Array[Object] */;
2144 long var739
/* : Int */;
2145 val
* var740
/* : NativeArray[Object] */;
2146 val
* var741
/* : String */;
2147 static val
* varonce742
;
2148 val
* var743
/* : String */;
2149 char* var744
/* : NativeString */;
2150 long var745
/* : Int */;
2151 val
* var746
/* : String */;
2152 val
* var747
/* : RuntimeVariable */;
2153 val
* var_res748
/* var res: RuntimeVariable */;
2154 short int var749
/* : Bool */;
2155 static val
* varonce750
;
2156 val
* var751
/* : String */;
2157 char* var752
/* : NativeString */;
2158 long var753
/* : Int */;
2159 val
* var754
/* : String */;
2160 long var755
/* : Int */;
2161 static val
* varonce756
;
2162 val
* var757
/* : String */;
2163 char* var758
/* : NativeString */;
2164 long var759
/* : Int */;
2165 val
* var760
/* : String */;
2166 val
* var761
/* : Array[Object] */;
2167 long var762
/* : Int */;
2168 val
* var763
/* : NativeArray[Object] */;
2169 val
* var764
/* : Object */;
2170 val
* var765
/* : String */;
2171 static val
* varonce766
;
2172 val
* var767
/* : String */;
2173 char* var768
/* : NativeString */;
2174 long var769
/* : Int */;
2175 val
* var770
/* : String */;
2176 val
* var771
/* : Array[Object] */;
2177 long var772
/* : Int */;
2178 val
* var773
/* : NativeArray[Object] */;
2179 val
* var774
/* : String */;
2180 static val
* varonce775
;
2181 val
* var776
/* : String */;
2182 char* var777
/* : NativeString */;
2183 long var778
/* : Int */;
2184 val
* var779
/* : String */;
2185 static val
* varonce780
;
2186 val
* var781
/* : String */;
2187 char* var782
/* : NativeString */;
2188 long var783
/* : Int */;
2189 val
* var784
/* : String */;
2190 val
* var785
/* : Array[Object] */;
2191 long var786
/* : Int */;
2192 val
* var787
/* : NativeArray[Object] */;
2193 val
* var788
/* : String */;
2194 static val
* varonce789
;
2195 val
* var790
/* : String */;
2196 char* var791
/* : NativeString */;
2197 long var792
/* : Int */;
2198 val
* var793
/* : String */;
2199 static val
* varonce794
;
2200 val
* var795
/* : String */;
2201 char* var796
/* : NativeString */;
2202 long var797
/* : Int */;
2203 val
* var798
/* : String */;
2204 val
* var799
/* : Array[Object] */;
2205 long var800
/* : Int */;
2206 val
* var801
/* : NativeArray[Object] */;
2207 val
* var802
/* : String */;
2208 static val
* varonce803
;
2209 val
* var804
/* : String */;
2210 char* var805
/* : NativeString */;
2211 long var806
/* : Int */;
2212 val
* var807
/* : String */;
2214 var
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
2215 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var
) /* bound_mtype on <var:MClassDef>*/;
2217 var2
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
2219 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_tables
]))(self
) /* method_tables on <self:SeparateErasureCompiler>*/;
2220 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var3
, var_mclass
) /* [] on <var3:Map[MClass, Array[nullable MPropDef]]>*/;
2222 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_tables
]))(self
) /* attr_tables on <self:SeparateErasureCompiler>*/;
2223 var6
= ((val
* (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var5
, var_mclass
) /* [] on <var5:Map[MClass, Array[nullable MPropDef]]>*/;
2225 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_tables
]))(self
) /* class_tables on <self:SeparateErasureCompiler>*/;
2226 var8
= ((val
* (*)(val
*, val
*))(var7
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var7
, var_mclass
) /* [] on <var7:Map[MClass, Array[nullable MClass]]>*/;
2227 var_class_table
= var8
;
2228 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateErasureCompiler>*/;
2233 var11
= "/* runtime class ";
2235 var13
= string__NativeString__to_s_with_length(var11
, var12
);
2244 var18
= string__NativeString__to_s_with_length(var16
, var17
);
2248 var19
= NEW_array__Array(&type_array__Arraykernel__Object
);
2249 { /* var19 = array_instance Array[Object] */
2251 var21
= NEW_array__NativeArray(var20
, &type_array__NativeArraykernel__Object
);
2252 ((struct instance_array__NativeArray
*)var21
)->values
[0] = (val
*) var10
;
2253 ((struct instance_array__NativeArray
*)var21
)->values
[1] = (val
*) var_c_name
;
2254 ((struct instance_array__NativeArray
*)var21
)->values
[2] = (val
*) var15
;
2255 ((void (*)(val
*, val
*, long))(var19
->class->vft
[COLOR_array__Array__with_native
]))(var19
, var21
, var20
) /* with_native on <var19:Array[Object]>*/;
2256 CHECK_NEW_array__Array(var19
);
2258 var22
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_string__Object__to_s
]))(var19
) /* to_s on <var19:Array[Object]>*/;
2259 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var22
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2265 var27
= string__NativeString__to_s_with_length(var25
, var26
);
2269 var28
= NEW_array__Array(&type_array__Arraykernel__Object
);
2270 { /* var28 = array_instance Array[Object] */
2272 var30
= NEW_array__NativeArray(var29
, &type_array__NativeArraykernel__Object
);
2273 ((struct instance_array__NativeArray
*)var30
)->values
[0] = (val
*) var24
;
2274 ((struct instance_array__NativeArray
*)var30
)->values
[1] = (val
*) var_c_name
;
2275 ((void (*)(val
*, val
*, long))(var28
->class->vft
[COLOR_array__Array__with_native
]))(var28
, var30
, var29
) /* with_native on <var28:Array[Object]>*/;
2276 CHECK_NEW_array__Array(var28
);
2278 var31
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_string__Object__to_s
]))(var28
) /* to_s on <var28:Array[Object]>*/;
2282 var34
= "extern const struct class class_";
2284 var36
= string__NativeString__to_s_with_length(var34
, var35
);
2293 var41
= string__NativeString__to_s_with_length(var39
, var40
);
2297 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
2298 { /* var42 = array_instance Array[Object] */
2300 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
2301 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var33
;
2302 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_c_name
;
2303 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var38
;
2304 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
2305 CHECK_NEW_array__Array(var42
);
2307 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
2308 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var31
, var45
) /* provide_declaration on <self:SeparateErasureCompiler>*/;
2312 var48
= "extern const struct type_table type_table_";
2314 var50
= string__NativeString__to_s_with_length(var48
, var49
);
2323 var55
= string__NativeString__to_s_with_length(var53
, var54
);
2327 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
2328 { /* var56 = array_instance Array[Object] */
2330 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
2331 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var47
;
2332 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var_c_name
;
2333 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var52
;
2334 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
2335 CHECK_NEW_array__Array(var56
);
2337 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
2338 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var59
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2342 var62
= "const struct class class_";
2344 var64
= string__NativeString__to_s_with_length(var62
, var63
);
2353 var69
= string__NativeString__to_s_with_length(var67
, var68
);
2357 var70
= NEW_array__Array(&type_array__Arraykernel__Object
);
2358 { /* var70 = array_instance Array[Object] */
2360 var72
= NEW_array__NativeArray(var71
, &type_array__NativeArraykernel__Object
);
2361 ((struct instance_array__NativeArray
*)var72
)->values
[0] = (val
*) var61
;
2362 ((struct instance_array__NativeArray
*)var72
)->values
[1] = (val
*) var_c_name
;
2363 ((struct instance_array__NativeArray
*)var72
)->values
[2] = (val
*) var66
;
2364 ((void (*)(val
*, val
*, long))(var70
->class->vft
[COLOR_array__Array__with_native
]))(var70
, var72
, var71
) /* with_native on <var70:Array[Object]>*/;
2365 CHECK_NEW_array__Array(var70
);
2367 var73
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_string__Object__to_s
]))(var70
) /* to_s on <var70:Array[Object]>*/;
2368 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var73
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2369 var74
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout
]))(self
) /* class_layout on <self:SeparateErasureCompiler>*/;
2370 if (var74
== NULL
) {
2371 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/separate_erasure_compiler.nit", 235);
2374 var75
= ((val
* (*)(val
*))(var74
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var74
) /* ids on <var74:nullable Layout[MClass]>*/;
2376 var76
= ((val
* (*)(val
*, val
*))(var75
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var75
, var_mclass
) /* [] on <var75:Map[Object, Int](Map[MClass, Int])>*/;
2382 var81
= string__NativeString__to_s_with_length(var79
, var80
);
2386 var82
= NEW_array__Array(&type_array__Arraykernel__Object
);
2387 { /* var82 = array_instance Array[Object] */
2389 var84
= NEW_array__NativeArray(var83
, &type_array__NativeArraykernel__Object
);
2390 ((struct instance_array__NativeArray
*)var84
)->values
[0] = (val
*) var76
;
2391 ((struct instance_array__NativeArray
*)var84
)->values
[1] = (val
*) var78
;
2392 ((void (*)(val
*, val
*, long))(var82
->class->vft
[COLOR_array__Array__with_native
]))(var82
, var84
, var83
) /* with_native on <var82:Array[Object]>*/;
2393 CHECK_NEW_array__Array(var82
);
2395 var85
= ((val
* (*)(val
*))(var82
->class->vft
[COLOR_string__Object__to_s
]))(var82
) /* to_s on <var82:Array[Object]>*/;
2396 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var85
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2402 var90
= string__NativeString__to_s_with_length(var88
, var89
);
2406 var91
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__name
]))(var_mclass
) /* name on <var_mclass:MClass>*/;
2410 var94
= "\", /* class_name_string */";
2412 var96
= string__NativeString__to_s_with_length(var94
, var95
);
2416 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
2417 { /* var97 = array_instance Array[Object] */
2419 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
2420 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var87
;
2421 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var91
;
2422 ((struct instance_array__NativeArray
*)var99
)->values
[2] = (val
*) var93
;
2423 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
2424 CHECK_NEW_array__Array(var97
);
2426 var100
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
2427 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var100
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2428 var101
= ((long (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kind_of
]))(self
, var_mclass
) /* box_kind_of on <self:SeparateErasureCompiler>*/;
2430 var103
= varonce102
;
2432 var104
= ", /* box_kind */";
2434 var106
= string__NativeString__to_s_with_length(var104
, var105
);
2436 varonce102
= var103
;
2438 var107
= NEW_array__Array(&type_array__Arraykernel__Object
);
2439 { /* var107 = array_instance Array[Object] */
2441 var109
= NEW_array__NativeArray(var108
, &type_array__NativeArraykernel__Object
);
2442 var110
= BOX_kernel__Int(var101
); /* autobox from Int to Object */
2443 ((struct instance_array__NativeArray
*)var109
)->values
[0] = (val
*) var110
;
2444 ((struct instance_array__NativeArray
*)var109
)->values
[1] = (val
*) var103
;
2445 ((void (*)(val
*, val
*, long))(var107
->class->vft
[COLOR_array__Array__with_native
]))(var107
, var109
, var108
) /* with_native on <var107:Array[Object]>*/;
2446 CHECK_NEW_array__Array(var107
);
2448 var111
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_string__Object__to_s
]))(var107
) /* to_s on <var107:Array[Object]>*/;
2449 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var111
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2450 var112
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout
]))(self
) /* class_layout on <self:SeparateErasureCompiler>*/;
2451 var_layout
= var112
;
2452 /* <var_layout:nullable Layout[MClass]> isa PHLayout[MClass, MClass] */
2453 cltype
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.color
;
2454 idtype
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.id
;
2455 if(var_layout
== NULL
) {
2458 if(cltype
>= var_layout
->type
->table_size
) {
2461 var113
= var_layout
->type
->type_table
[cltype
] == idtype
;
2465 var114
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__masks
]))(var_layout
) /* masks on <var_layout:nullable Layout[MClass](PHLayout[MClass, MClass])>*/;
2466 var115
= ((val
* (*)(val
*, val
*))(var114
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var114
, var_mclass
) /* [] on <var114:Map[Object, Int](Map[MClass, Int])>*/;
2468 var117
= varonce116
;
2472 var120
= string__NativeString__to_s_with_length(var118
, var119
);
2474 varonce116
= var117
;
2476 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
2477 { /* var121 = array_instance Array[Object] */
2479 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
2480 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var115
;
2481 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var117
;
2482 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
2483 CHECK_NEW_array__Array(var121
);
2485 var124
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
2486 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var124
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2488 if (var_layout
== NULL
) {
2489 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/separate_erasure_compiler.nit", 242);
2492 var125
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MClass]>*/;
2494 var126
= ((val
* (*)(val
*, val
*))(var125
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var125
, var_mclass
) /* [] on <var125:Map[Object, Int](Map[MClass, Int])>*/;
2496 var128
= varonce127
;
2500 var131
= string__NativeString__to_s_with_length(var129
, var130
);
2502 varonce127
= var128
;
2504 var132
= NEW_array__Array(&type_array__Arraykernel__Object
);
2505 { /* var132 = array_instance Array[Object] */
2507 var134
= NEW_array__NativeArray(var133
, &type_array__NativeArraykernel__Object
);
2508 ((struct instance_array__NativeArray
*)var134
)->values
[0] = (val
*) var126
;
2509 ((struct instance_array__NativeArray
*)var134
)->values
[1] = (val
*) var128
;
2510 ((void (*)(val
*, val
*, long))(var132
->class->vft
[COLOR_array__Array__with_native
]))(var132
, var134
, var133
) /* with_native on <var132:Array[Object]>*/;
2511 CHECK_NEW_array__Array(var132
);
2513 var135
= ((val
* (*)(val
*))(var132
->class->vft
[COLOR_string__Object__to_s
]))(var132
) /* to_s on <var132:Array[Object]>*/;
2514 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var135
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2516 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>*/;
2519 var138
= varonce137
;
2521 var139
= "vts_table_";
2523 var141
= string__NativeString__to_s_with_length(var139
, var140
);
2525 varonce137
= var138
;
2527 var142
= NEW_array__Array(&type_array__Arraykernel__Object
);
2528 { /* var142 = array_instance Array[Object] */
2530 var144
= NEW_array__NativeArray(var143
, &type_array__NativeArraykernel__Object
);
2531 ((struct instance_array__NativeArray
*)var144
)->values
[0] = (val
*) var138
;
2532 ((struct instance_array__NativeArray
*)var144
)->values
[1] = (val
*) var_c_name
;
2533 ((void (*)(val
*, val
*, long))(var142
->class->vft
[COLOR_array__Array__with_native
]))(var142
, var144
, var143
) /* with_native on <var142:Array[Object]>*/;
2534 CHECK_NEW_array__Array(var142
);
2536 var145
= ((val
* (*)(val
*))(var142
->class->vft
[COLOR_string__Object__to_s
]))(var142
) /* to_s on <var142:Array[Object]>*/;
2537 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var145
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
2539 var147
= varonce146
;
2541 var148
= "&vts_table_";
2543 var150
= string__NativeString__to_s_with_length(var148
, var149
);
2545 varonce146
= var147
;
2548 var152
= varonce151
;
2552 var155
= string__NativeString__to_s_with_length(var153
, var154
);
2554 varonce151
= var152
;
2556 var156
= NEW_array__Array(&type_array__Arraykernel__Object
);
2557 { /* var156 = array_instance Array[Object] */
2559 var158
= NEW_array__NativeArray(var157
, &type_array__NativeArraykernel__Object
);
2560 ((struct instance_array__NativeArray
*)var158
)->values
[0] = (val
*) var147
;
2561 ((struct instance_array__NativeArray
*)var158
)->values
[1] = (val
*) var_c_name
;
2562 ((struct instance_array__NativeArray
*)var158
)->values
[2] = (val
*) var152
;
2563 ((void (*)(val
*, val
*, long))(var156
->class->vft
[COLOR_array__Array__with_native
]))(var156
, var158
, var157
) /* with_native on <var156:Array[Object]>*/;
2564 CHECK_NEW_array__Array(var156
);
2566 var159
= ((val
* (*)(val
*))(var156
->class->vft
[COLOR_string__Object__to_s
]))(var156
) /* to_s on <var156:Array[Object]>*/;
2567 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var159
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2570 var161
= varonce160
;
2574 var164
= string__NativeString__to_s_with_length(var162
, var163
);
2576 varonce160
= var161
;
2578 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var161
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2581 var166
= varonce165
;
2583 var167
= "&type_table_";
2585 var169
= string__NativeString__to_s_with_length(var167
, var168
);
2587 varonce165
= var166
;
2590 var171
= varonce170
;
2594 var174
= string__NativeString__to_s_with_length(var172
, var173
);
2596 varonce170
= var171
;
2598 var175
= NEW_array__Array(&type_array__Arraykernel__Object
);
2599 { /* var175 = array_instance Array[Object] */
2601 var177
= NEW_array__NativeArray(var176
, &type_array__NativeArraykernel__Object
);
2602 ((struct instance_array__NativeArray
*)var177
)->values
[0] = (val
*) var166
;
2603 ((struct instance_array__NativeArray
*)var177
)->values
[1] = (val
*) var_c_name
;
2604 ((struct instance_array__NativeArray
*)var177
)->values
[2] = (val
*) var171
;
2605 ((void (*)(val
*, val
*, long))(var175
->class->vft
[COLOR_array__Array__with_native
]))(var175
, var177
, var176
) /* with_native on <var175:Array[Object]>*/;
2606 CHECK_NEW_array__Array(var175
);
2608 var178
= ((val
* (*)(val
*))(var175
->class->vft
[COLOR_string__Object__to_s
]))(var175
) /* to_s on <var175:Array[Object]>*/;
2609 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var178
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2611 var180
= varonce179
;
2615 var183
= string__NativeString__to_s_with_length(var181
, var182
);
2617 varonce179
= var180
;
2619 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var180
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2620 var184
= NEW_range__Range(&type_range__Rangekernel__Int
);
2622 var186
= ((long (*)(val
*))(var_vft
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_vft
) /* length on <var_vft:Array[nullable MPropDef]>*/;
2623 var187
= BOX_kernel__Int(var185
); /* autobox from Int to Discrete */
2624 var188
= BOX_kernel__Int(var186
); /* autobox from Int to Discrete */
2625 ((void (*)(val
*, val
*, val
*))(var184
->class->vft
[COLOR_range__Range__without_last
]))(var184
, var187
, var188
) /* without_last on <var184:Range[Int]>*/;
2626 CHECK_NEW_range__Range(var184
);
2627 var189
= ((val
* (*)(val
*))(var184
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var184
) /* iterator on <var184:Range[Int]>*/;
2629 var190
= ((short int (*)(val
*))(var189
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var189
) /* is_ok on <var189:Iterator[nullable Object]>*/;
2631 var191
= ((val
* (*)(val
*))(var189
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var189
) /* item on <var189:Iterator[nullable Object]>*/;
2632 var192
= ((struct instance_kernel__Int
*)var191
)->value
; /* autounbox from nullable Object to Int */;
2634 var193
= ((val
* (*)(val
*, long))(var_vft
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_vft
, var_i
) /* [] on <var_vft:Array[nullable MPropDef]>*/;
2635 var_mpropdef
= var193
;
2637 if (var_mpropdef
== NULL
) {
2638 var195
= 1; /* is null */
2640 var195
= 0; /* arg is null but recv is not */
2644 var197
= varonce196
;
2646 var198
= "NULL, /* empty */";
2648 var200
= string__NativeString__to_s_with_length(var198
, var199
);
2650 varonce196
= var197
;
2652 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var197
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2659 var203
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
2660 var204
= ((val
* (*)(val
*))(var203
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var203
) /* bound_mtype on <var203:MClassDef>*/;
2661 var205
= ((val
* (*)(val
*))(var204
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var204
) /* ctype on <var204:MClassType>*/;
2663 var207
= varonce206
;
2667 var210
= string__NativeString__to_s_with_length(var208
, var209
);
2669 varonce206
= var207
;
2671 var211
= ((short int (*)(val
*, val
*))(var205
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var205
, var207
) /* != on <var205:String>*/;
2676 var213
= varonce212
;
2678 var214
= "VIRTUAL_";
2680 var216
= string__NativeString__to_s_with_length(var214
, var215
);
2682 varonce212
= var213
;
2684 var217
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var_mpropdef
) /* c_name on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
2685 var218
= NEW_array__Array(&type_array__Arraykernel__Object
);
2686 { /* var218 = array_instance Array[Object] */
2688 var220
= NEW_array__NativeArray(var219
, &type_array__NativeArraykernel__Object
);
2689 ((struct instance_array__NativeArray
*)var220
)->values
[0] = (val
*) var213
;
2690 ((struct instance_array__NativeArray
*)var220
)->values
[1] = (val
*) var217
;
2691 ((void (*)(val
*, val
*, long))(var218
->class->vft
[COLOR_array__Array__with_native
]))(var218
, var220
, var219
) /* with_native on <var218:Array[Object]>*/;
2692 CHECK_NEW_array__Array(var218
);
2694 var221
= ((val
* (*)(val
*))(var218
->class->vft
[COLOR_string__Object__to_s
]))(var218
) /* to_s on <var218:Array[Object]>*/;
2695 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var221
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
2697 var223
= varonce222
;
2699 var224
= "(nitmethod_t)VIRTUAL_";
2701 var226
= string__NativeString__to_s_with_length(var224
, var225
);
2703 varonce222
= var223
;
2705 var227
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var_mpropdef
) /* c_name on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
2707 var229
= varonce228
;
2709 var230
= ", /* pointer to ";
2711 var232
= string__NativeString__to_s_with_length(var230
, var231
);
2713 varonce228
= var229
;
2715 var233
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var_mclass
) /* intro_mmodule on <var_mclass:MClass>*/;
2717 var235
= varonce234
;
2721 var238
= string__NativeString__to_s_with_length(var236
, var237
);
2723 varonce234
= var235
;
2726 var240
= varonce239
;
2730 var243
= string__NativeString__to_s_with_length(var241
, var242
);
2732 varonce239
= var240
;
2735 var245
= varonce244
;
2739 var248
= string__NativeString__to_s_with_length(var246
, var247
);
2741 varonce244
= var245
;
2743 var249
= NEW_array__Array(&type_array__Arraykernel__Object
);
2744 { /* var249 = array_instance Array[Object] */
2746 var251
= NEW_array__NativeArray(var250
, &type_array__NativeArraykernel__Object
);
2747 ((struct instance_array__NativeArray
*)var251
)->values
[0] = (val
*) var223
;
2748 ((struct instance_array__NativeArray
*)var251
)->values
[1] = (val
*) var227
;
2749 ((struct instance_array__NativeArray
*)var251
)->values
[2] = (val
*) var229
;
2750 ((struct instance_array__NativeArray
*)var251
)->values
[3] = (val
*) var233
;
2751 ((struct instance_array__NativeArray
*)var251
)->values
[4] = (val
*) var235
;
2752 ((struct instance_array__NativeArray
*)var251
)->values
[5] = (val
*) var_mclass
;
2753 ((struct instance_array__NativeArray
*)var251
)->values
[6] = (val
*) var240
;
2754 ((struct instance_array__NativeArray
*)var251
)->values
[7] = (val
*) var_mpropdef
;
2755 ((struct instance_array__NativeArray
*)var251
)->values
[8] = (val
*) var245
;
2756 ((void (*)(val
*, val
*, long))(var249
->class->vft
[COLOR_array__Array__with_native
]))(var249
, var251
, var250
) /* with_native on <var249:Array[Object]>*/;
2757 CHECK_NEW_array__Array(var249
);
2759 var252
= ((val
* (*)(val
*))(var249
->class->vft
[COLOR_string__Object__to_s
]))(var249
) /* to_s on <var249:Array[Object]>*/;
2760 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var252
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2762 var253
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var_mpropdef
) /* c_name on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
2763 var254
= NEW_array__Array(&type_array__Arraykernel__Object
);
2764 { /* var254 = array_instance Array[Object] */
2766 var256
= NEW_array__NativeArray(var255
, &type_array__NativeArraykernel__Object
);
2767 ((struct instance_array__NativeArray
*)var256
)->values
[0] = (val
*) var253
;
2768 ((void (*)(val
*, val
*, long))(var254
->class->vft
[COLOR_array__Array__with_native
]))(var254
, var256
, var255
) /* with_native on <var254:Array[Object]>*/;
2769 CHECK_NEW_array__Array(var254
);
2771 var257
= ((val
* (*)(val
*))(var254
->class->vft
[COLOR_string__Object__to_s
]))(var254
) /* to_s on <var254:Array[Object]>*/;
2772 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var257
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
2774 var259
= varonce258
;
2776 var260
= "(nitmethod_t)";
2778 var262
= string__NativeString__to_s_with_length(var260
, var261
);
2780 varonce258
= var259
;
2782 var263
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var_mpropdef
) /* c_name on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
2784 var265
= varonce264
;
2786 var266
= ", /* pointer to ";
2788 var268
= string__NativeString__to_s_with_length(var266
, var267
);
2790 varonce264
= var265
;
2792 var269
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var_mclass
) /* intro_mmodule on <var_mclass:MClass>*/;
2794 var271
= varonce270
;
2798 var274
= string__NativeString__to_s_with_length(var272
, var273
);
2800 varonce270
= var271
;
2803 var276
= varonce275
;
2807 var279
= string__NativeString__to_s_with_length(var277
, var278
);
2809 varonce275
= var276
;
2812 var281
= varonce280
;
2816 var284
= string__NativeString__to_s_with_length(var282
, var283
);
2818 varonce280
= var281
;
2820 var285
= NEW_array__Array(&type_array__Arraykernel__Object
);
2821 { /* var285 = array_instance Array[Object] */
2823 var287
= NEW_array__NativeArray(var286
, &type_array__NativeArraykernel__Object
);
2824 ((struct instance_array__NativeArray
*)var287
)->values
[0] = (val
*) var259
;
2825 ((struct instance_array__NativeArray
*)var287
)->values
[1] = (val
*) var263
;
2826 ((struct instance_array__NativeArray
*)var287
)->values
[2] = (val
*) var265
;
2827 ((struct instance_array__NativeArray
*)var287
)->values
[3] = (val
*) var269
;
2828 ((struct instance_array__NativeArray
*)var287
)->values
[4] = (val
*) var271
;
2829 ((struct instance_array__NativeArray
*)var287
)->values
[5] = (val
*) var_mclass
;
2830 ((struct instance_array__NativeArray
*)var287
)->values
[6] = (val
*) var276
;
2831 ((struct instance_array__NativeArray
*)var287
)->values
[7] = (val
*) var_mpropdef
;
2832 ((struct instance_array__NativeArray
*)var287
)->values
[8] = (val
*) var281
;
2833 ((void (*)(val
*, val
*, long))(var285
->class->vft
[COLOR_array__Array__with_native
]))(var285
, var287
, var286
) /* with_native on <var285:Array[Object]>*/;
2834 CHECK_NEW_array__Array(var285
);
2836 var288
= ((val
* (*)(val
*))(var285
->class->vft
[COLOR_string__Object__to_s
]))(var285
) /* to_s on <var285:Array[Object]>*/;
2837 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var288
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2840 CONTINUE_label
: (void)0;
2841 ((void (*)(val
*))(var189
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var189
) /* next on <var189:Iterator[nullable Object]>*/;
2843 BREAK_label
: (void)0;
2845 var290
= varonce289
;
2849 var293
= string__NativeString__to_s_with_length(var291
, var292
);
2851 varonce289
= var290
;
2853 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var290
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2855 var295
= varonce294
;
2859 var298
= string__NativeString__to_s_with_length(var296
, var297
);
2861 varonce294
= var295
;
2863 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var295
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2865 var300
= varonce299
;
2867 var301
= "const struct type_table type_table_";
2869 var303
= string__NativeString__to_s_with_length(var301
, var302
);
2871 varonce299
= var300
;
2874 var305
= varonce304
;
2878 var308
= string__NativeString__to_s_with_length(var306
, var307
);
2880 varonce304
= var305
;
2882 var309
= NEW_array__Array(&type_array__Arraykernel__Object
);
2883 { /* var309 = array_instance Array[Object] */
2885 var311
= NEW_array__NativeArray(var310
, &type_array__NativeArraykernel__Object
);
2886 ((struct instance_array__NativeArray
*)var311
)->values
[0] = (val
*) var300
;
2887 ((struct instance_array__NativeArray
*)var311
)->values
[1] = (val
*) var_c_name
;
2888 ((struct instance_array__NativeArray
*)var311
)->values
[2] = (val
*) var305
;
2889 ((void (*)(val
*, val
*, long))(var309
->class->vft
[COLOR_array__Array__with_native
]))(var309
, var311
, var310
) /* with_native on <var309:Array[Object]>*/;
2890 CHECK_NEW_array__Array(var309
);
2892 var312
= ((val
* (*)(val
*))(var309
->class->vft
[COLOR_string__Object__to_s
]))(var309
) /* to_s on <var309:Array[Object]>*/;
2893 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var312
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2894 var313
= ((long (*)(val
*))(var_class_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_class_table
) /* length on <var_class_table:Array[nullable MClass]>*/;
2896 var315
= varonce314
;
2900 var318
= string__NativeString__to_s_with_length(var316
, var317
);
2902 varonce314
= var315
;
2904 var319
= NEW_array__Array(&type_array__Arraykernel__Object
);
2905 { /* var319 = array_instance Array[Object] */
2907 var321
= NEW_array__NativeArray(var320
, &type_array__NativeArraykernel__Object
);
2908 var322
= BOX_kernel__Int(var313
); /* autobox from Int to Object */
2909 ((struct instance_array__NativeArray
*)var321
)->values
[0] = (val
*) var322
;
2910 ((struct instance_array__NativeArray
*)var321
)->values
[1] = (val
*) var315
;
2911 ((void (*)(val
*, val
*, long))(var319
->class->vft
[COLOR_array__Array__with_native
]))(var319
, var321
, var320
) /* with_native on <var319:Array[Object]>*/;
2912 CHECK_NEW_array__Array(var319
);
2914 var323
= ((val
* (*)(val
*))(var319
->class->vft
[COLOR_string__Object__to_s
]))(var319
) /* to_s on <var319:Array[Object]>*/;
2915 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var323
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2917 var325
= varonce324
;
2921 var328
= string__NativeString__to_s_with_length(var326
, var327
);
2923 varonce324
= var325
;
2925 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var325
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2926 var329
= ((val
* (*)(val
*))(var_class_table
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_class_table
) /* iterator on <var_class_table:Array[nullable MClass]>*/;
2928 var330
= ((short int (*)(val
*))(var329
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var329
) /* is_ok on <var329:Iterator[nullable Object]>*/;
2930 var331
= ((val
* (*)(val
*))(var329
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var329
) /* item on <var329:Iterator[nullable Object]>*/;
2931 var_msuper
= var331
;
2933 if (var_msuper
== NULL
) {
2934 var333
= 1; /* is null */
2936 var333
= 0; /* arg is null but recv is not */
2940 var335
= varonce334
;
2942 var336
= "-1, /* empty */";
2944 var338
= string__NativeString__to_s_with_length(var336
, var337
);
2946 varonce334
= var335
;
2948 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var335
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2950 var339
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout
]))(self
) /* class_layout on <self:SeparateErasureCompiler>*/;
2951 if (var339
== NULL
) {
2952 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/separate_erasure_compiler.nit", 278);
2955 var340
= ((val
* (*)(val
*))(var339
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var339
) /* ids on <var339:nullable Layout[MClass]>*/;
2957 var341
= ((val
* (*)(val
*, val
*))(var340
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var340
, var_msuper
) /* [] on <var340:Map[Object, Int](Map[MClass, Int])>*/;
2959 var343
= varonce342
;
2963 var346
= string__NativeString__to_s_with_length(var344
, var345
);
2965 varonce342
= var343
;
2968 var348
= varonce347
;
2972 var351
= string__NativeString__to_s_with_length(var349
, var350
);
2974 varonce347
= var348
;
2976 var352
= NEW_array__Array(&type_array__Arraykernel__Object
);
2977 { /* var352 = array_instance Array[Object] */
2979 var354
= NEW_array__NativeArray(var353
, &type_array__NativeArraykernel__Object
);
2980 ((struct instance_array__NativeArray
*)var354
)->values
[0] = (val
*) var341
;
2981 ((struct instance_array__NativeArray
*)var354
)->values
[1] = (val
*) var343
;
2982 ((struct instance_array__NativeArray
*)var354
)->values
[2] = (val
*) var_msuper
;
2983 ((struct instance_array__NativeArray
*)var354
)->values
[3] = (val
*) var348
;
2984 ((void (*)(val
*, val
*, long))(var352
->class->vft
[COLOR_array__Array__with_native
]))(var352
, var354
, var353
) /* with_native on <var352:Array[Object]>*/;
2985 CHECK_NEW_array__Array(var352
);
2987 var355
= ((val
* (*)(val
*))(var352
->class->vft
[COLOR_string__Object__to_s
]))(var352
) /* to_s on <var352:Array[Object]>*/;
2988 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var355
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
2990 CONTINUE_label356
: (void)0;
2991 ((void (*)(val
*))(var329
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var329
) /* next on <var329:Iterator[nullable Object]>*/;
2993 BREAK_label356
: (void)0;
2995 var358
= varonce357
;
2999 var361
= string__NativeString__to_s_with_length(var359
, var360
);
3001 varonce357
= var358
;
3003 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var358
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3005 var363
= varonce362
;
3009 var366
= string__NativeString__to_s_with_length(var364
, var365
);
3011 varonce362
= var363
;
3013 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var363
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3014 var367
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3016 var369
= varonce368
;
3020 var372
= string__NativeString__to_s_with_length(var370
, var371
);
3022 varonce368
= var369
;
3024 var373
= ((short int (*)(val
*, val
*))(var367
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var367
, var369
) /* != on <var367:String>*/;
3026 var374
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3028 var376
= varonce375
;
3030 var377
= "struct instance_";
3032 var379
= string__NativeString__to_s_with_length(var377
, var378
);
3034 varonce375
= var376
;
3037 var381
= varonce380
;
3041 var384
= string__NativeString__to_s_with_length(var382
, var383
);
3043 varonce380
= var381
;
3045 var385
= NEW_array__Array(&type_array__Arraykernel__Object
);
3046 { /* var385 = array_instance Array[Object] */
3048 var387
= NEW_array__NativeArray(var386
, &type_array__NativeArraykernel__Object
);
3049 ((struct instance_array__NativeArray
*)var387
)->values
[0] = (val
*) var376
;
3050 ((struct instance_array__NativeArray
*)var387
)->values
[1] = (val
*) var_c_name
;
3051 ((struct instance_array__NativeArray
*)var387
)->values
[2] = (val
*) var381
;
3052 ((void (*)(val
*, val
*, long))(var385
->class->vft
[COLOR_array__Array__with_native
]))(var385
, var387
, var386
) /* with_native on <var385:Array[Object]>*/;
3053 CHECK_NEW_array__Array(var385
);
3055 var388
= ((val
* (*)(val
*))(var385
->class->vft
[COLOR_string__Object__to_s
]))(var385
) /* to_s on <var385:Array[Object]>*/;
3056 ((void (*)(val
*, val
*))(var374
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var374
, var388
) /* add_decl on <var374:CodeWriter>*/;
3057 var389
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3059 var391
= varonce390
;
3061 var392
= "const struct class *class;";
3063 var394
= string__NativeString__to_s_with_length(var392
, var393
);
3065 varonce390
= var391
;
3067 ((void (*)(val
*, val
*))(var389
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var389
, var391
) /* add_decl on <var389:CodeWriter>*/;
3068 var395
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3069 var396
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3071 var398
= varonce397
;
3075 var401
= string__NativeString__to_s_with_length(var399
, var400
);
3077 varonce397
= var398
;
3079 var402
= NEW_array__Array(&type_array__Arraykernel__Object
);
3080 { /* var402 = array_instance Array[Object] */
3082 var404
= NEW_array__NativeArray(var403
, &type_array__NativeArraykernel__Object
);
3083 ((struct instance_array__NativeArray
*)var404
)->values
[0] = (val
*) var396
;
3084 ((struct instance_array__NativeArray
*)var404
)->values
[1] = (val
*) var398
;
3085 ((void (*)(val
*, val
*, long))(var402
->class->vft
[COLOR_array__Array__with_native
]))(var402
, var404
, var403
) /* with_native on <var402:Array[Object]>*/;
3086 CHECK_NEW_array__Array(var402
);
3088 var405
= ((val
* (*)(val
*))(var402
->class->vft
[COLOR_string__Object__to_s
]))(var402
) /* to_s on <var402:Array[Object]>*/;
3089 ((void (*)(val
*, val
*))(var395
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var395
, var405
) /* add_decl on <var395:CodeWriter>*/;
3090 var406
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3092 var408
= varonce407
;
3096 var411
= string__NativeString__to_s_with_length(var409
, var410
);
3098 varonce407
= var408
;
3100 ((void (*)(val
*, val
*))(var406
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var406
, var408
) /* add_decl on <var406:CodeWriter>*/;
3101 var412
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3103 var414
= varonce413
;
3105 var415
= "val* BOX_";
3107 var417
= string__NativeString__to_s_with_length(var415
, var416
);
3109 varonce413
= var414
;
3112 var419
= varonce418
;
3116 var422
= string__NativeString__to_s_with_length(var420
, var421
);
3118 varonce418
= var419
;
3120 var423
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3122 var425
= varonce424
;
3126 var428
= string__NativeString__to_s_with_length(var426
, var427
);
3128 varonce424
= var425
;
3130 var429
= NEW_array__Array(&type_array__Arraykernel__Object
);
3131 { /* var429 = array_instance Array[Object] */
3133 var431
= NEW_array__NativeArray(var430
, &type_array__NativeArraykernel__Object
);
3134 ((struct instance_array__NativeArray
*)var431
)->values
[0] = (val
*) var414
;
3135 ((struct instance_array__NativeArray
*)var431
)->values
[1] = (val
*) var_c_name
;
3136 ((struct instance_array__NativeArray
*)var431
)->values
[2] = (val
*) var419
;
3137 ((struct instance_array__NativeArray
*)var431
)->values
[3] = (val
*) var423
;
3138 ((struct instance_array__NativeArray
*)var431
)->values
[4] = (val
*) var425
;
3139 ((void (*)(val
*, val
*, long))(var429
->class->vft
[COLOR_array__Array__with_native
]))(var429
, var431
, var430
) /* with_native on <var429:Array[Object]>*/;
3140 CHECK_NEW_array__Array(var429
);
3142 var432
= ((val
* (*)(val
*))(var429
->class->vft
[COLOR_string__Object__to_s
]))(var429
) /* to_s on <var429:Array[Object]>*/;
3143 ((void (*)(val
*, val
*))(var412
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var412
, var432
) /* add_decl on <var412:CodeWriter>*/;
3145 var434
= varonce433
;
3147 var435
= "/* allocate ";
3149 var437
= string__NativeString__to_s_with_length(var435
, var436
);
3151 varonce433
= var434
;
3154 var439
= varonce438
;
3158 var442
= string__NativeString__to_s_with_length(var440
, var441
);
3160 varonce438
= var439
;
3162 var443
= NEW_array__Array(&type_array__Arraykernel__Object
);
3163 { /* var443 = array_instance Array[Object] */
3165 var445
= NEW_array__NativeArray(var444
, &type_array__NativeArraykernel__Object
);
3166 ((struct instance_array__NativeArray
*)var445
)->values
[0] = (val
*) var434
;
3167 ((struct instance_array__NativeArray
*)var445
)->values
[1] = (val
*) var_mtype
;
3168 ((struct instance_array__NativeArray
*)var445
)->values
[2] = (val
*) var439
;
3169 ((void (*)(val
*, val
*, long))(var443
->class->vft
[COLOR_array__Array__with_native
]))(var443
, var445
, var444
) /* with_native on <var443:Array[Object]>*/;
3170 CHECK_NEW_array__Array(var443
);
3172 var446
= ((val
* (*)(val
*))(var443
->class->vft
[COLOR_string__Object__to_s
]))(var443
) /* to_s on <var443:Array[Object]>*/;
3173 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var446
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3175 var448
= varonce447
;
3177 var449
= "val* BOX_";
3179 var451
= string__NativeString__to_s_with_length(var449
, var450
);
3181 varonce447
= var448
;
3183 var452
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
3185 var454
= varonce453
;
3189 var457
= string__NativeString__to_s_with_length(var455
, var456
);
3191 varonce453
= var454
;
3193 var458
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3195 var460
= varonce459
;
3197 var461
= " value) {";
3199 var463
= string__NativeString__to_s_with_length(var461
, var462
);
3201 varonce459
= var460
;
3203 var464
= NEW_array__Array(&type_array__Arraykernel__Object
);
3204 { /* var464 = array_instance Array[Object] */
3206 var466
= NEW_array__NativeArray(var465
, &type_array__NativeArraykernel__Object
);
3207 ((struct instance_array__NativeArray
*)var466
)->values
[0] = (val
*) var448
;
3208 ((struct instance_array__NativeArray
*)var466
)->values
[1] = (val
*) var452
;
3209 ((struct instance_array__NativeArray
*)var466
)->values
[2] = (val
*) var454
;
3210 ((struct instance_array__NativeArray
*)var466
)->values
[3] = (val
*) var458
;
3211 ((struct instance_array__NativeArray
*)var466
)->values
[4] = (val
*) var460
;
3212 ((void (*)(val
*, val
*, long))(var464
->class->vft
[COLOR_array__Array__with_native
]))(var464
, var466
, var465
) /* with_native on <var464:Array[Object]>*/;
3213 CHECK_NEW_array__Array(var464
);
3215 var467
= ((val
* (*)(val
*))(var464
->class->vft
[COLOR_string__Object__to_s
]))(var464
) /* to_s on <var464:Array[Object]>*/;
3216 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var467
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3218 var469
= varonce468
;
3220 var470
= "struct instance_";
3222 var472
= string__NativeString__to_s_with_length(var470
, var471
);
3224 varonce468
= var469
;
3227 var474
= varonce473
;
3229 var475
= "*res = nit_alloc(sizeof(struct instance_";
3231 var477
= string__NativeString__to_s_with_length(var475
, var476
);
3233 varonce473
= var474
;
3236 var479
= varonce478
;
3240 var482
= string__NativeString__to_s_with_length(var480
, var481
);
3242 varonce478
= var479
;
3244 var483
= NEW_array__Array(&type_array__Arraykernel__Object
);
3245 { /* var483 = array_instance Array[Object] */
3247 var485
= NEW_array__NativeArray(var484
, &type_array__NativeArraykernel__Object
);
3248 ((struct instance_array__NativeArray
*)var485
)->values
[0] = (val
*) var469
;
3249 ((struct instance_array__NativeArray
*)var485
)->values
[1] = (val
*) var_c_name
;
3250 ((struct instance_array__NativeArray
*)var485
)->values
[2] = (val
*) var474
;
3251 ((struct instance_array__NativeArray
*)var485
)->values
[3] = (val
*) var_c_name
;
3252 ((struct instance_array__NativeArray
*)var485
)->values
[4] = (val
*) var479
;
3253 ((void (*)(val
*, val
*, long))(var483
->class->vft
[COLOR_array__Array__with_native
]))(var483
, var485
, var484
) /* with_native on <var483:Array[Object]>*/;
3254 CHECK_NEW_array__Array(var483
);
3256 var486
= ((val
* (*)(val
*))(var483
->class->vft
[COLOR_string__Object__to_s
]))(var483
) /* to_s on <var483:Array[Object]>*/;
3257 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var486
) /* add on <var_v:SeparateCompilerVisitor>*/;
3259 var488
= varonce487
;
3263 var491
= string__NativeString__to_s_with_length(var489
, var490
);
3265 varonce487
= var488
;
3267 var492
= NEW_array__Array(&type_array__Arraykernel__Object
);
3268 { /* var492 = array_instance Array[Object] */
3270 var494
= NEW_array__NativeArray(var493
, &type_array__NativeArraykernel__Object
);
3271 ((struct instance_array__NativeArray
*)var494
)->values
[0] = (val
*) var488
;
3272 ((struct instance_array__NativeArray
*)var494
)->values
[1] = (val
*) var_c_name
;
3273 ((void (*)(val
*, val
*, long))(var492
->class->vft
[COLOR_array__Array__with_native
]))(var492
, var494
, var493
) /* with_native on <var492:Array[Object]>*/;
3274 CHECK_NEW_array__Array(var492
);
3276 var495
= ((val
* (*)(val
*))(var492
->class->vft
[COLOR_string__Object__to_s
]))(var492
) /* to_s on <var492:Array[Object]>*/;
3277 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var495
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
3279 var497
= varonce496
;
3281 var498
= "res->class = &class_";
3283 var500
= string__NativeString__to_s_with_length(var498
, var499
);
3285 varonce496
= var497
;
3288 var502
= varonce501
;
3292 var505
= string__NativeString__to_s_with_length(var503
, var504
);
3294 varonce501
= var502
;
3296 var506
= NEW_array__Array(&type_array__Arraykernel__Object
);
3297 { /* var506 = array_instance Array[Object] */
3299 var508
= NEW_array__NativeArray(var507
, &type_array__NativeArraykernel__Object
);
3300 ((struct instance_array__NativeArray
*)var508
)->values
[0] = (val
*) var497
;
3301 ((struct instance_array__NativeArray
*)var508
)->values
[1] = (val
*) var_c_name
;
3302 ((struct instance_array__NativeArray
*)var508
)->values
[2] = (val
*) var502
;
3303 ((void (*)(val
*, val
*, long))(var506
->class->vft
[COLOR_array__Array__with_native
]))(var506
, var508
, var507
) /* with_native on <var506:Array[Object]>*/;
3304 CHECK_NEW_array__Array(var506
);
3306 var509
= ((val
* (*)(val
*))(var506
->class->vft
[COLOR_string__Object__to_s
]))(var506
) /* to_s on <var506:Array[Object]>*/;
3307 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var509
) /* add on <var_v:SeparateCompilerVisitor>*/;
3309 var511
= varonce510
;
3311 var512
= "res->value = value;";
3313 var514
= string__NativeString__to_s_with_length(var512
, var513
);
3315 varonce510
= var511
;
3317 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var511
) /* add on <var_v:SeparateCompilerVisitor>*/;
3319 var516
= varonce515
;
3321 var517
= "return (val*)res;";
3323 var519
= string__NativeString__to_s_with_length(var517
, var518
);
3325 varonce515
= var516
;
3327 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var516
) /* add on <var_v:SeparateCompilerVisitor>*/;
3329 var521
= varonce520
;
3333 var524
= string__NativeString__to_s_with_length(var522
, var523
);
3335 varonce520
= var521
;
3337 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var521
) /* add on <var_v:SeparateCompilerVisitor>*/;
3340 var525
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__name
]))(var_mclass
) /* name on <var_mclass:MClass>*/;
3342 var527
= varonce526
;
3344 var528
= "NativeArray";
3346 var530
= string__NativeString__to_s_with_length(var528
, var529
);
3348 varonce526
= var527
;
3350 var531
= ((short int (*)(val
*, val
*))(var525
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var525
, var527
) /* == on <var525:String>*/;
3352 var532
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3354 var534
= varonce533
;
3356 var535
= "struct instance_";
3358 var537
= string__NativeString__to_s_with_length(var535
, var536
);
3360 varonce533
= var534
;
3363 var539
= varonce538
;
3367 var542
= string__NativeString__to_s_with_length(var540
, var541
);
3369 varonce538
= var539
;
3371 var543
= NEW_array__Array(&type_array__Arraykernel__Object
);
3372 { /* var543 = array_instance Array[Object] */
3374 var545
= NEW_array__NativeArray(var544
, &type_array__NativeArraykernel__Object
);
3375 ((struct instance_array__NativeArray
*)var545
)->values
[0] = (val
*) var534
;
3376 ((struct instance_array__NativeArray
*)var545
)->values
[1] = (val
*) var_c_name
;
3377 ((struct instance_array__NativeArray
*)var545
)->values
[2] = (val
*) var539
;
3378 ((void (*)(val
*, val
*, long))(var543
->class->vft
[COLOR_array__Array__with_native
]))(var543
, var545
, var544
) /* with_native on <var543:Array[Object]>*/;
3379 CHECK_NEW_array__Array(var543
);
3381 var546
= ((val
* (*)(val
*))(var543
->class->vft
[COLOR_string__Object__to_s
]))(var543
) /* to_s on <var543:Array[Object]>*/;
3382 ((void (*)(val
*, val
*))(var532
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var532
, var546
) /* add_decl on <var532:CodeWriter>*/;
3383 var547
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3385 var549
= varonce548
;
3387 var550
= "const struct class *class;";
3389 var552
= string__NativeString__to_s_with_length(var550
, var551
);
3391 varonce548
= var549
;
3393 ((void (*)(val
*, val
*))(var547
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var547
, var549
) /* add_decl on <var547:CodeWriter>*/;
3394 var553
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3396 var555
= varonce554
;
3398 var556
= "val* values[];";
3400 var558
= string__NativeString__to_s_with_length(var556
, var557
);
3402 varonce554
= var555
;
3404 ((void (*)(val
*, val
*))(var553
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var553
, var555
) /* add_decl on <var553:CodeWriter>*/;
3405 var559
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateErasureCompiler>*/;
3407 var561
= varonce560
;
3411 var564
= string__NativeString__to_s_with_length(var562
, var563
);
3413 varonce560
= var561
;
3415 ((void (*)(val
*, val
*))(var559
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var559
, var561
) /* add_decl on <var559:CodeWriter>*/;
3417 var566
= varonce565
;
3421 var569
= string__NativeString__to_s_with_length(var567
, var568
);
3423 varonce565
= var566
;
3425 var570
= NEW_array__Array(&type_array__Arraykernel__Object
);
3426 { /* var570 = array_instance Array[Object] */
3428 var572
= NEW_array__NativeArray(var571
, &type_array__NativeArraykernel__Object
);
3429 ((struct instance_array__NativeArray
*)var572
)->values
[0] = (val
*) var566
;
3430 ((struct instance_array__NativeArray
*)var572
)->values
[1] = (val
*) var_c_name
;
3431 ((void (*)(val
*, val
*, long))(var570
->class->vft
[COLOR_array__Array__with_native
]))(var570
, var572
, var571
) /* with_native on <var570:Array[Object]>*/;
3432 CHECK_NEW_array__Array(var570
);
3434 var573
= ((val
* (*)(val
*))(var570
->class->vft
[COLOR_string__Object__to_s
]))(var570
) /* to_s on <var570:Array[Object]>*/;
3435 var574
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3437 var576
= varonce575
;
3441 var579
= string__NativeString__to_s_with_length(var577
, var578
);
3443 varonce575
= var576
;
3446 var581
= varonce580
;
3448 var582
= "(int length);";
3450 var584
= string__NativeString__to_s_with_length(var582
, var583
);
3452 varonce580
= var581
;
3454 var585
= NEW_array__Array(&type_array__Arraykernel__Object
);
3455 { /* var585 = array_instance Array[Object] */
3457 var587
= NEW_array__NativeArray(var586
, &type_array__NativeArraykernel__Object
);
3458 ((struct instance_array__NativeArray
*)var587
)->values
[0] = (val
*) var574
;
3459 ((struct instance_array__NativeArray
*)var587
)->values
[1] = (val
*) var576
;
3460 ((struct instance_array__NativeArray
*)var587
)->values
[2] = (val
*) var_c_name
;
3461 ((struct instance_array__NativeArray
*)var587
)->values
[3] = (val
*) var581
;
3462 ((void (*)(val
*, val
*, long))(var585
->class->vft
[COLOR_array__Array__with_native
]))(var585
, var587
, var586
) /* with_native on <var585:Array[Object]>*/;
3463 CHECK_NEW_array__Array(var585
);
3465 var588
= ((val
* (*)(val
*))(var585
->class->vft
[COLOR_string__Object__to_s
]))(var585
) /* to_s on <var585:Array[Object]>*/;
3466 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var573
, var588
) /* provide_declaration on <self:SeparateErasureCompiler>*/;
3468 var590
= varonce589
;
3470 var591
= "/* allocate ";
3472 var593
= string__NativeString__to_s_with_length(var591
, var592
);
3474 varonce589
= var590
;
3477 var595
= varonce594
;
3481 var598
= string__NativeString__to_s_with_length(var596
, var597
);
3483 varonce594
= var595
;
3485 var599
= NEW_array__Array(&type_array__Arraykernel__Object
);
3486 { /* var599 = array_instance Array[Object] */
3488 var601
= NEW_array__NativeArray(var600
, &type_array__NativeArraykernel__Object
);
3489 ((struct instance_array__NativeArray
*)var601
)->values
[0] = (val
*) var590
;
3490 ((struct instance_array__NativeArray
*)var601
)->values
[1] = (val
*) var_mtype
;
3491 ((struct instance_array__NativeArray
*)var601
)->values
[2] = (val
*) var595
;
3492 ((void (*)(val
*, val
*, long))(var599
->class->vft
[COLOR_array__Array__with_native
]))(var599
, var601
, var600
) /* with_native on <var599:Array[Object]>*/;
3493 CHECK_NEW_array__Array(var599
);
3495 var602
= ((val
* (*)(val
*))(var599
->class->vft
[COLOR_string__Object__to_s
]))(var599
) /* to_s on <var599:Array[Object]>*/;
3496 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var602
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3497 var603
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3499 var605
= varonce604
;
3503 var608
= string__NativeString__to_s_with_length(var606
, var607
);
3505 varonce604
= var605
;
3508 var610
= varonce609
;
3510 var611
= "(int length) {";
3512 var613
= string__NativeString__to_s_with_length(var611
, var612
);
3514 varonce609
= var610
;
3516 var614
= NEW_array__Array(&type_array__Arraykernel__Object
);
3517 { /* var614 = array_instance Array[Object] */
3519 var616
= NEW_array__NativeArray(var615
, &type_array__NativeArraykernel__Object
);
3520 ((struct instance_array__NativeArray
*)var616
)->values
[0] = (val
*) var603
;
3521 ((struct instance_array__NativeArray
*)var616
)->values
[1] = (val
*) var605
;
3522 ((struct instance_array__NativeArray
*)var616
)->values
[2] = (val
*) var_c_name
;
3523 ((struct instance_array__NativeArray
*)var616
)->values
[3] = (val
*) var610
;
3524 ((void (*)(val
*, val
*, long))(var614
->class->vft
[COLOR_array__Array__with_native
]))(var614
, var616
, var615
) /* with_native on <var614:Array[Object]>*/;
3525 CHECK_NEW_array__Array(var614
);
3527 var617
= ((val
* (*)(val
*))(var614
->class->vft
[COLOR_string__Object__to_s
]))(var614
) /* to_s on <var614:Array[Object]>*/;
3528 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var617
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3530 var619
= varonce618
;
3534 var622
= string__NativeString__to_s_with_length(var620
, var621
);
3536 varonce618
= var619
;
3538 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>*/;
3541 ((void (*)(val
*, short int))(var_res
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res
, var624
) /* is_exact= on <var_res:RuntimeVariable>*/;
3542 var625
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
3543 var626
= ((val
* (*)(val
*))(var625
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var625
) /* first on <var625:Array[MType]>*/;
3544 var_mtype_elt
= var626
;
3546 var628
= varonce627
;
3548 var629
= " = nit_alloc(sizeof(struct instance_";
3550 var631
= string__NativeString__to_s_with_length(var629
, var630
);
3552 varonce627
= var628
;
3555 var633
= varonce632
;
3557 var634
= ") + length*sizeof(";
3559 var636
= string__NativeString__to_s_with_length(var634
, var635
);
3561 varonce632
= var633
;
3563 var637
= ((val
* (*)(val
*))(var_mtype_elt
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype_elt
) /* ctype on <var_mtype_elt:MType>*/;
3565 var639
= varonce638
;
3569 var642
= string__NativeString__to_s_with_length(var640
, var641
);
3571 varonce638
= var639
;
3573 var643
= NEW_array__Array(&type_array__Arraykernel__Object
);
3574 { /* var643 = array_instance Array[Object] */
3576 var645
= NEW_array__NativeArray(var644
, &type_array__NativeArraykernel__Object
);
3577 ((struct instance_array__NativeArray
*)var645
)->values
[0] = (val
*) var_res
;
3578 ((struct instance_array__NativeArray
*)var645
)->values
[1] = (val
*) var628
;
3579 ((struct instance_array__NativeArray
*)var645
)->values
[2] = (val
*) var_c_name
;
3580 ((struct instance_array__NativeArray
*)var645
)->values
[3] = (val
*) var633
;
3581 ((struct instance_array__NativeArray
*)var645
)->values
[4] = (val
*) var637
;
3582 ((struct instance_array__NativeArray
*)var645
)->values
[5] = (val
*) var639
;
3583 ((void (*)(val
*, val
*, long))(var643
->class->vft
[COLOR_array__Array__with_native
]))(var643
, var645
, var644
) /* with_native on <var643:Array[Object]>*/;
3584 CHECK_NEW_array__Array(var643
);
3586 var646
= ((val
* (*)(val
*))(var643
->class->vft
[COLOR_string__Object__to_s
]))(var643
) /* to_s on <var643:Array[Object]>*/;
3587 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var646
) /* add on <var_v:SeparateCompilerVisitor>*/;
3589 var648
= varonce647
;
3593 var651
= string__NativeString__to_s_with_length(var649
, var650
);
3595 varonce647
= var648
;
3597 var652
= NEW_array__Array(&type_array__Arraykernel__Object
);
3598 { /* var652 = array_instance Array[Object] */
3600 var654
= NEW_array__NativeArray(var653
, &type_array__NativeArraykernel__Object
);
3601 ((struct instance_array__NativeArray
*)var654
)->values
[0] = (val
*) var648
;
3602 ((struct instance_array__NativeArray
*)var654
)->values
[1] = (val
*) var_c_name
;
3603 ((void (*)(val
*, val
*, long))(var652
->class->vft
[COLOR_array__Array__with_native
]))(var652
, var654
, var653
) /* with_native on <var652:Array[Object]>*/;
3604 CHECK_NEW_array__Array(var652
);
3606 var655
= ((val
* (*)(val
*))(var652
->class->vft
[COLOR_string__Object__to_s
]))(var652
) /* to_s on <var652:Array[Object]>*/;
3607 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var655
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
3609 var657
= varonce656
;
3611 var658
= "->class = &class_";
3613 var660
= string__NativeString__to_s_with_length(var658
, var659
);
3615 varonce656
= var657
;
3618 var662
= varonce661
;
3622 var665
= string__NativeString__to_s_with_length(var663
, var664
);
3624 varonce661
= var662
;
3626 var666
= NEW_array__Array(&type_array__Arraykernel__Object
);
3627 { /* var666 = array_instance Array[Object] */
3629 var668
= NEW_array__NativeArray(var667
, &type_array__NativeArraykernel__Object
);
3630 ((struct instance_array__NativeArray
*)var668
)->values
[0] = (val
*) var_res
;
3631 ((struct instance_array__NativeArray
*)var668
)->values
[1] = (val
*) var657
;
3632 ((struct instance_array__NativeArray
*)var668
)->values
[2] = (val
*) var_c_name
;
3633 ((struct instance_array__NativeArray
*)var668
)->values
[3] = (val
*) var662
;
3634 ((void (*)(val
*, val
*, long))(var666
->class->vft
[COLOR_array__Array__with_native
]))(var666
, var668
, var667
) /* with_native on <var666:Array[Object]>*/;
3635 CHECK_NEW_array__Array(var666
);
3637 var669
= ((val
* (*)(val
*))(var666
->class->vft
[COLOR_string__Object__to_s
]))(var666
) /* to_s on <var666:Array[Object]>*/;
3638 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var669
) /* add on <var_v:SeparateCompilerVisitor>*/;
3640 var671
= varonce670
;
3644 var674
= string__NativeString__to_s_with_length(var672
, var673
);
3646 varonce670
= var671
;
3649 var676
= varonce675
;
3653 var679
= string__NativeString__to_s_with_length(var677
, var678
);
3655 varonce675
= var676
;
3657 var680
= NEW_array__Array(&type_array__Arraykernel__Object
);
3658 { /* var680 = array_instance Array[Object] */
3660 var682
= NEW_array__NativeArray(var681
, &type_array__NativeArraykernel__Object
);
3661 ((struct instance_array__NativeArray
*)var682
)->values
[0] = (val
*) var671
;
3662 ((struct instance_array__NativeArray
*)var682
)->values
[1] = (val
*) var_res
;
3663 ((struct instance_array__NativeArray
*)var682
)->values
[2] = (val
*) var676
;
3664 ((void (*)(val
*, val
*, long))(var680
->class->vft
[COLOR_array__Array__with_native
]))(var680
, var682
, var681
) /* with_native on <var680:Array[Object]>*/;
3665 CHECK_NEW_array__Array(var680
);
3667 var683
= ((val
* (*)(val
*))(var680
->class->vft
[COLOR_string__Object__to_s
]))(var680
) /* to_s on <var680:Array[Object]>*/;
3668 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var683
) /* add on <var_v:SeparateCompilerVisitor>*/;
3670 var685
= varonce684
;
3674 var688
= string__NativeString__to_s_with_length(var686
, var687
);
3676 varonce684
= var685
;
3678 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var685
) /* add on <var_v:SeparateCompilerVisitor>*/;
3684 var690
= varonce689
;
3688 var693
= string__NativeString__to_s_with_length(var691
, var692
);
3690 varonce689
= var690
;
3692 var694
= NEW_array__Array(&type_array__Arraykernel__Object
);
3693 { /* var694 = array_instance Array[Object] */
3695 var696
= NEW_array__NativeArray(var695
, &type_array__NativeArraykernel__Object
);
3696 ((struct instance_array__NativeArray
*)var696
)->values
[0] = (val
*) var690
;
3697 ((struct instance_array__NativeArray
*)var696
)->values
[1] = (val
*) var_c_name
;
3698 ((void (*)(val
*, val
*, long))(var694
->class->vft
[COLOR_array__Array__with_native
]))(var694
, var696
, var695
) /* with_native on <var694:Array[Object]>*/;
3699 CHECK_NEW_array__Array(var694
);
3701 var697
= ((val
* (*)(val
*))(var694
->class->vft
[COLOR_string__Object__to_s
]))(var694
) /* to_s on <var694:Array[Object]>*/;
3702 var698
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3704 var700
= varonce699
;
3708 var703
= string__NativeString__to_s_with_length(var701
, var702
);
3710 varonce699
= var700
;
3713 var705
= varonce704
;
3717 var708
= string__NativeString__to_s_with_length(var706
, var707
);
3719 varonce704
= var705
;
3721 var709
= NEW_array__Array(&type_array__Arraykernel__Object
);
3722 { /* var709 = array_instance Array[Object] */
3724 var711
= NEW_array__NativeArray(var710
, &type_array__NativeArraykernel__Object
);
3725 ((struct instance_array__NativeArray
*)var711
)->values
[0] = (val
*) var698
;
3726 ((struct instance_array__NativeArray
*)var711
)->values
[1] = (val
*) var700
;
3727 ((struct instance_array__NativeArray
*)var711
)->values
[2] = (val
*) var_c_name
;
3728 ((struct instance_array__NativeArray
*)var711
)->values
[3] = (val
*) var705
;
3729 ((void (*)(val
*, val
*, long))(var709
->class->vft
[COLOR_array__Array__with_native
]))(var709
, var711
, var710
) /* with_native on <var709:Array[Object]>*/;
3730 CHECK_NEW_array__Array(var709
);
3732 var712
= ((val
* (*)(val
*))(var709
->class->vft
[COLOR_string__Object__to_s
]))(var709
) /* to_s on <var709:Array[Object]>*/;
3733 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var697
, var712
) /* provide_declaration on <self:SeparateErasureCompiler>*/;
3735 var714
= varonce713
;
3737 var715
= "/* allocate ";
3739 var717
= string__NativeString__to_s_with_length(var715
, var716
);
3741 varonce713
= var714
;
3744 var719
= varonce718
;
3748 var722
= string__NativeString__to_s_with_length(var720
, var721
);
3750 varonce718
= var719
;
3752 var723
= NEW_array__Array(&type_array__Arraykernel__Object
);
3753 { /* var723 = array_instance Array[Object] */
3755 var725
= NEW_array__NativeArray(var724
, &type_array__NativeArraykernel__Object
);
3756 ((struct instance_array__NativeArray
*)var725
)->values
[0] = (val
*) var714
;
3757 ((struct instance_array__NativeArray
*)var725
)->values
[1] = (val
*) var_mtype
;
3758 ((struct instance_array__NativeArray
*)var725
)->values
[2] = (val
*) var719
;
3759 ((void (*)(val
*, val
*, long))(var723
->class->vft
[COLOR_array__Array__with_native
]))(var723
, var725
, var724
) /* with_native on <var723:Array[Object]>*/;
3760 CHECK_NEW_array__Array(var723
);
3762 var726
= ((val
* (*)(val
*))(var723
->class->vft
[COLOR_string__Object__to_s
]))(var723
) /* to_s on <var723:Array[Object]>*/;
3763 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var726
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3764 var727
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
3766 var729
= varonce728
;
3770 var732
= string__NativeString__to_s_with_length(var730
, var731
);
3772 varonce728
= var729
;
3775 var734
= varonce733
;
3777 var735
= "(void) {";
3779 var737
= string__NativeString__to_s_with_length(var735
, var736
);
3781 varonce733
= var734
;
3783 var738
= NEW_array__Array(&type_array__Arraykernel__Object
);
3784 { /* var738 = array_instance Array[Object] */
3786 var740
= NEW_array__NativeArray(var739
, &type_array__NativeArraykernel__Object
);
3787 ((struct instance_array__NativeArray
*)var740
)->values
[0] = (val
*) var727
;
3788 ((struct instance_array__NativeArray
*)var740
)->values
[1] = (val
*) var729
;
3789 ((struct instance_array__NativeArray
*)var740
)->values
[2] = (val
*) var_c_name
;
3790 ((struct instance_array__NativeArray
*)var740
)->values
[3] = (val
*) var734
;
3791 ((void (*)(val
*, val
*, long))(var738
->class->vft
[COLOR_array__Array__with_native
]))(var738
, var740
, var739
) /* with_native on <var738:Array[Object]>*/;
3792 CHECK_NEW_array__Array(var738
);
3794 var741
= ((val
* (*)(val
*))(var738
->class->vft
[COLOR_string__Object__to_s
]))(var738
) /* to_s on <var738:Array[Object]>*/;
3795 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var741
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
3797 var743
= varonce742
;
3801 var746
= string__NativeString__to_s_with_length(var744
, var745
);
3803 varonce742
= var743
;
3805 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>*/;
3806 var_res748
= var747
;
3808 ((void (*)(val
*, short int))(var_res748
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res748
, var749
) /* is_exact= on <var_res748:RuntimeVariable>*/;
3810 var751
= varonce750
;
3812 var752
= " = nit_alloc(sizeof(struct instance) + ";
3814 var754
= string__NativeString__to_s_with_length(var752
, var753
);
3816 varonce750
= var751
;
3818 var755
= ((long (*)(val
*))(var_attrs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_attrs
) /* length on <var_attrs:Array[nullable MPropDef]>*/;
3820 var757
= varonce756
;
3822 var758
= "*sizeof(nitattribute_t));";
3824 var760
= string__NativeString__to_s_with_length(var758
, var759
);
3826 varonce756
= var757
;
3828 var761
= NEW_array__Array(&type_array__Arraykernel__Object
);
3829 { /* var761 = array_instance Array[Object] */
3831 var763
= NEW_array__NativeArray(var762
, &type_array__NativeArraykernel__Object
);
3832 ((struct instance_array__NativeArray
*)var763
)->values
[0] = (val
*) var_res748
;
3833 ((struct instance_array__NativeArray
*)var763
)->values
[1] = (val
*) var751
;
3834 var764
= BOX_kernel__Int(var755
); /* autobox from Int to Object */
3835 ((struct instance_array__NativeArray
*)var763
)->values
[2] = (val
*) var764
;
3836 ((struct instance_array__NativeArray
*)var763
)->values
[3] = (val
*) var757
;
3837 ((void (*)(val
*, val
*, long))(var761
->class->vft
[COLOR_array__Array__with_native
]))(var761
, var763
, var762
) /* with_native on <var761:Array[Object]>*/;
3838 CHECK_NEW_array__Array(var761
);
3840 var765
= ((val
* (*)(val
*))(var761
->class->vft
[COLOR_string__Object__to_s
]))(var761
) /* to_s on <var761:Array[Object]>*/;
3841 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var765
) /* add on <var_v:SeparateCompilerVisitor>*/;
3843 var767
= varonce766
;
3847 var770
= string__NativeString__to_s_with_length(var768
, var769
);
3849 varonce766
= var767
;
3851 var771
= NEW_array__Array(&type_array__Arraykernel__Object
);
3852 { /* var771 = array_instance Array[Object] */
3854 var773
= NEW_array__NativeArray(var772
, &type_array__NativeArraykernel__Object
);
3855 ((struct instance_array__NativeArray
*)var773
)->values
[0] = (val
*) var767
;
3856 ((struct instance_array__NativeArray
*)var773
)->values
[1] = (val
*) var_c_name
;
3857 ((void (*)(val
*, val
*, long))(var771
->class->vft
[COLOR_array__Array__with_native
]))(var771
, var773
, var772
) /* with_native on <var771:Array[Object]>*/;
3858 CHECK_NEW_array__Array(var771
);
3860 var774
= ((val
* (*)(val
*))(var771
->class->vft
[COLOR_string__Object__to_s
]))(var771
) /* to_s on <var771:Array[Object]>*/;
3861 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var774
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
3863 var776
= varonce775
;
3865 var777
= "->class = &class_";
3867 var779
= string__NativeString__to_s_with_length(var777
, var778
);
3869 varonce775
= var776
;
3872 var781
= varonce780
;
3876 var784
= string__NativeString__to_s_with_length(var782
, var783
);
3878 varonce780
= var781
;
3880 var785
= NEW_array__Array(&type_array__Arraykernel__Object
);
3881 { /* var785 = array_instance Array[Object] */
3883 var787
= NEW_array__NativeArray(var786
, &type_array__NativeArraykernel__Object
);
3884 ((struct instance_array__NativeArray
*)var787
)->values
[0] = (val
*) var_res748
;
3885 ((struct instance_array__NativeArray
*)var787
)->values
[1] = (val
*) var776
;
3886 ((struct instance_array__NativeArray
*)var787
)->values
[2] = (val
*) var_c_name
;
3887 ((struct instance_array__NativeArray
*)var787
)->values
[3] = (val
*) var781
;
3888 ((void (*)(val
*, val
*, long))(var785
->class->vft
[COLOR_array__Array__with_native
]))(var785
, var787
, var786
) /* with_native on <var785:Array[Object]>*/;
3889 CHECK_NEW_array__Array(var785
);
3891 var788
= ((val
* (*)(val
*))(var785
->class->vft
[COLOR_string__Object__to_s
]))(var785
) /* to_s on <var785:Array[Object]>*/;
3892 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var788
) /* add on <var_v:SeparateCompilerVisitor>*/;
3893 ((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>*/;
3895 var790
= varonce789
;
3899 var793
= string__NativeString__to_s_with_length(var791
, var792
);
3901 varonce789
= var790
;
3904 var795
= varonce794
;
3908 var798
= string__NativeString__to_s_with_length(var796
, var797
);
3910 varonce794
= var795
;
3912 var799
= NEW_array__Array(&type_array__Arraykernel__Object
);
3913 { /* var799 = array_instance Array[Object] */
3915 var801
= NEW_array__NativeArray(var800
, &type_array__NativeArraykernel__Object
);
3916 ((struct instance_array__NativeArray
*)var801
)->values
[0] = (val
*) var790
;
3917 ((struct instance_array__NativeArray
*)var801
)->values
[1] = (val
*) var_res748
;
3918 ((struct instance_array__NativeArray
*)var801
)->values
[2] = (val
*) var795
;
3919 ((void (*)(val
*, val
*, long))(var799
->class->vft
[COLOR_array__Array__with_native
]))(var799
, var801
, var800
) /* with_native on <var799:Array[Object]>*/;
3920 CHECK_NEW_array__Array(var799
);
3922 var802
= ((val
* (*)(val
*))(var799
->class->vft
[COLOR_string__Object__to_s
]))(var799
) /* to_s on <var799:Array[Object]>*/;
3923 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var802
) /* add on <var_v:SeparateCompilerVisitor>*/;
3925 var804
= varonce803
;
3929 var807
= string__NativeString__to_s_with_length(var805
, var806
);
3931 varonce803
= var804
;
3933 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var804
) /* add on <var_v:SeparateCompilerVisitor>*/;
3934 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__generate_check_init_instance
]))(self
, var_mtype
) /* generate_check_init_instance on <self:SeparateErasureCompiler>*/;
3937 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_class_to_c for (self: Object, MClass) */
3938 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__compile_class_to_c(val
* self
, val
* p0
) {
3939 separate_erasure_compiler__SeparateErasureCompiler__compile_class_to_c(self
, p0
);
3942 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_vts_table for (self: SeparateErasureCompiler, MClass): Bool */
3943 short int separate_erasure_compiler__SeparateErasureCompiler__build_class_vts_table(val
* self
, val
* p0
) {
3944 short int var
/* : Bool */;
3945 val
* var_mclass
/* var mclass: MClass */;
3946 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
3947 val
* var2
/* : nullable Object */;
3948 short int var3
/* : Bool */;
3949 short int var4
/* : Bool */;
3950 static val
* varonce
;
3951 val
* var5
/* : String */;
3952 char* var6
/* : NativeString */;
3953 long var7
/* : Int */;
3954 val
* var8
/* : String */;
3955 val
* var9
/* : String */;
3956 val
* var10
/* : Array[Object] */;
3957 long var11
/* : Int */;
3958 val
* var12
/* : NativeArray[Object] */;
3959 val
* var13
/* : String */;
3960 static val
* varonce14
;
3961 val
* var15
/* : String */;
3962 char* var16
/* : NativeString */;
3963 long var17
/* : Int */;
3964 val
* var18
/* : String */;
3965 val
* var19
/* : String */;
3966 static val
* varonce20
;
3967 val
* var21
/* : String */;
3968 char* var22
/* : NativeString */;
3969 long var23
/* : Int */;
3970 val
* var24
/* : String */;
3971 val
* var25
/* : Array[Object] */;
3972 long var26
/* : Int */;
3973 val
* var27
/* : NativeArray[Object] */;
3974 val
* var28
/* : String */;
3975 val
* var29
/* : AbstractCompilerVisitor */;
3976 val
* var_v
/* var v: SeparateCompilerVisitor */;
3977 static val
* varonce30
;
3978 val
* var31
/* : String */;
3979 char* var32
/* : NativeString */;
3980 long var33
/* : Int */;
3981 val
* var34
/* : String */;
3982 val
* var35
/* : String */;
3983 static val
* varonce36
;
3984 val
* var37
/* : String */;
3985 char* var38
/* : NativeString */;
3986 long var39
/* : Int */;
3987 val
* var40
/* : String */;
3988 val
* var41
/* : Array[Object] */;
3989 long var42
/* : Int */;
3990 val
* var43
/* : NativeArray[Object] */;
3991 val
* var44
/* : String */;
3992 val
* var45
/* : nullable Layout[MVirtualTypeProp] */;
3993 short int var46
/* : Bool */;
3996 static val
* varonce47
;
3997 val
* var48
/* : String */;
3998 char* var49
/* : NativeString */;
3999 long var50
/* : Int */;
4000 val
* var51
/* : String */;
4001 static val
* varonce52
;
4002 val
* var53
/* : String */;
4003 char* var54
/* : NativeString */;
4004 long var55
/* : Int */;
4005 val
* var56
/* : String */;
4006 val
* var57
/* : Map[MClass, Array[nullable MPropDef]] */;
4007 val
* var58
/* : nullable Object */;
4008 val
* var59
/* : Iterator[nullable Object] */;
4009 short int var60
/* : Bool */;
4010 val
* var61
/* : nullable Object */;
4011 val
* var_vt
/* var vt: nullable MPropDef */;
4012 val
* var62
/* : null */;
4013 short int var63
/* : Bool */;
4014 static val
* varonce64
;
4015 val
* var65
/* : String */;
4016 char* var66
/* : NativeString */;
4017 long var67
/* : Int */;
4018 val
* var68
/* : String */;
4019 long var69
/* : Int */;
4020 long var_is_null
/* var is_null: Int */;
4021 val
* var70
/* : MClassDef */;
4022 val
* var71
/* : MClassType */;
4023 short int var72
/* : Bool */;
4026 val
* var75
/* : nullable MType */;
4027 val
* var76
/* : MType */;
4028 val
* var_bound
/* var bound: MType */;
4029 short int var77
/* : Bool */;
4032 val
* var80
/* : MClassDef */;
4033 val
* var81
/* : MClassType */;
4034 val
* var82
/* : MType */;
4035 val
* var83
/* : MType */;
4036 long var84
/* : Int */;
4037 short int var85
/* : Bool */;
4040 val
* var88
/* : MClass */;
4041 val
* var_vtclass
/* var vtclass: MClass */;
4042 static val
* varonce89
;
4043 val
* var90
/* : String */;
4044 char* var91
/* : NativeString */;
4045 long var92
/* : Int */;
4046 val
* var93
/* : String */;
4047 val
* var94
/* : String */;
4048 val
* var95
/* : Array[Object] */;
4049 long var96
/* : Int */;
4050 val
* var97
/* : NativeArray[Object] */;
4051 val
* var98
/* : String */;
4052 static val
* varonce99
;
4053 val
* var100
/* : String */;
4054 char* var101
/* : NativeString */;
4055 long var102
/* : Int */;
4056 val
* var103
/* : String */;
4057 static val
* varonce104
;
4058 val
* var105
/* : String */;
4059 char* var106
/* : NativeString */;
4060 long var107
/* : Int */;
4061 val
* var108
/* : String */;
4062 val
* var109
/* : String */;
4063 static val
* varonce110
;
4064 val
* var111
/* : String */;
4065 char* var112
/* : NativeString */;
4066 long var113
/* : Int */;
4067 val
* var114
/* : String */;
4068 static val
* varonce115
;
4069 val
* var116
/* : String */;
4070 char* var117
/* : NativeString */;
4071 long var118
/* : Int */;
4072 val
* var119
/* : String */;
4073 val
* var120
/* : Array[Object] */;
4074 long var121
/* : Int */;
4075 val
* var122
/* : NativeArray[Object] */;
4076 val
* var123
/* : Object */;
4077 val
* var124
/* : String */;
4078 static val
* varonce126
;
4079 val
* var127
/* : String */;
4080 char* var128
/* : NativeString */;
4081 long var129
/* : Int */;
4082 val
* var130
/* : String */;
4083 static val
* varonce131
;
4084 val
* var132
/* : String */;
4085 char* var133
/* : NativeString */;
4086 long var134
/* : Int */;
4087 val
* var135
/* : String */;
4088 short int var136
/* : Bool */;
4090 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_tables
]))(self
) /* vt_tables on <self:SeparateErasureCompiler>*/;
4091 var2
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var1
, var_mclass
) /* [] on <var1:Map[MClass, Array[nullable MPropDef]]>*/;
4092 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var2
) /* is_empty on <var2:nullable Object(Array[nullable MPropDef])>*/;
4102 var6
= "vts_table_";
4104 var8
= string__NativeString__to_s_with_length(var6
, var7
);
4108 var9
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
4109 var10
= NEW_array__Array(&type_array__Arraykernel__Object
);
4110 { /* var10 = array_instance Array[Object] */
4112 var12
= NEW_array__NativeArray(var11
, &type_array__NativeArraykernel__Object
);
4113 ((struct instance_array__NativeArray
*)var12
)->values
[0] = (val
*) var5
;
4114 ((struct instance_array__NativeArray
*)var12
)->values
[1] = (val
*) var9
;
4115 ((void (*)(val
*, val
*, long))(var10
->class->vft
[COLOR_array__Array__with_native
]))(var10
, var12
, var11
) /* with_native on <var10:Array[Object]>*/;
4116 CHECK_NEW_array__Array(var10
);
4118 var13
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_string__Object__to_s
]))(var10
) /* to_s on <var10:Array[Object]>*/;
4122 var16
= "extern const struct vts_table vts_table_";
4124 var18
= string__NativeString__to_s_with_length(var16
, var17
);
4128 var19
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
4134 var24
= string__NativeString__to_s_with_length(var22
, var23
);
4138 var25
= NEW_array__Array(&type_array__Arraykernel__Object
);
4139 { /* var25 = array_instance Array[Object] */
4141 var27
= NEW_array__NativeArray(var26
, &type_array__NativeArraykernel__Object
);
4142 ((struct instance_array__NativeArray
*)var27
)->values
[0] = (val
*) var15
;
4143 ((struct instance_array__NativeArray
*)var27
)->values
[1] = (val
*) var19
;
4144 ((struct instance_array__NativeArray
*)var27
)->values
[2] = (val
*) var21
;
4145 ((void (*)(val
*, val
*, long))(var25
->class->vft
[COLOR_array__Array__with_native
]))(var25
, var27
, var26
) /* with_native on <var25:Array[Object]>*/;
4146 CHECK_NEW_array__Array(var25
);
4148 var28
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_string__Object__to_s
]))(var25
) /* to_s on <var25:Array[Object]>*/;
4149 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var13
, var28
) /* provide_declaration on <self:SeparateErasureCompiler>*/;
4150 var29
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateErasureCompiler>*/;
4155 var32
= "const struct vts_table vts_table_";
4157 var34
= string__NativeString__to_s_with_length(var32
, var33
);
4161 var35
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
4167 var40
= string__NativeString__to_s_with_length(var38
, var39
);
4171 var41
= NEW_array__Array(&type_array__Arraykernel__Object
);
4172 { /* var41 = array_instance Array[Object] */
4174 var43
= NEW_array__NativeArray(var42
, &type_array__NativeArraykernel__Object
);
4175 ((struct instance_array__NativeArray
*)var43
)->values
[0] = (val
*) var31
;
4176 ((struct instance_array__NativeArray
*)var43
)->values
[1] = (val
*) var35
;
4177 ((struct instance_array__NativeArray
*)var43
)->values
[2] = (val
*) var37
;
4178 ((void (*)(val
*, val
*, long))(var41
->class->vft
[COLOR_array__Array__with_native
]))(var41
, var43
, var42
) /* with_native on <var41:Array[Object]>*/;
4179 CHECK_NEW_array__Array(var41
);
4181 var44
= ((val
* (*)(val
*))(var41
->class->vft
[COLOR_string__Object__to_s
]))(var41
) /* to_s on <var41:Array[Object]>*/;
4182 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var44
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4183 var45
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_layout
]))(self
) /* vt_layout on <self:SeparateErasureCompiler>*/;
4184 /* <var45:nullable Layout[MVirtualTypeProp]> isa PHLayout[MClass, MVirtualTypeProp] */
4185 cltype
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.color
;
4186 idtype
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.id
;
4190 if(cltype
>= var45
->type
->table_size
) {
4193 var46
= var45
->type
->type_table
[cltype
] == idtype
;
4201 var49
= "0, /* dummy */";
4203 var51
= string__NativeString__to_s_with_length(var49
, var50
);
4207 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var48
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4214 var56
= string__NativeString__to_s_with_length(var54
, var55
);
4218 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var53
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4219 var57
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_tables
]))(self
) /* vt_tables on <self:SeparateErasureCompiler>*/;
4220 var58
= ((val
* (*)(val
*, val
*))(var57
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var57
, var_mclass
) /* [] on <var57:Map[MClass, Array[nullable MPropDef]]>*/;
4221 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var58
) /* iterator on <var58:nullable Object(Array[nullable MPropDef])>*/;
4223 var60
= ((short int (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var59
) /* is_ok on <var59:Iterator[nullable Object]>*/;
4225 var61
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var59
) /* item on <var59:Iterator[nullable Object]>*/;
4228 if (var_vt
== NULL
) {
4229 var63
= 1; /* is null */
4231 var63
= 0; /* arg is null but recv is not */
4237 var66
= "{-1, NULL}, /* empty */";
4239 var68
= string__NativeString__to_s_with_length(var66
, var67
);
4243 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var65
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4246 var_is_null
= var69
;
4247 var70
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
4248 var71
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var70
) /* bound_mtype on <var70:MClassDef>*/;
4249 /* <var_vt:nullable MPropDef(MPropDef)> isa MVirtualTypeDef */
4250 cltype73
= type_model__MVirtualTypeDef
.color
;
4251 idtype74
= type_model__MVirtualTypeDef
.id
;
4252 if(cltype73
>= var_vt
->type
->table_size
) {
4255 var72
= var_vt
->type
->type_table
[cltype73
] == idtype74
;
4258 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_erasure_compiler.nit", 360);
4261 var75
= ((val
* (*)(val
*))(var_vt
->class->vft
[COLOR_model__MVirtualTypeDef__bound
]))(var_vt
) /* bound on <var_vt:MPropDef(MVirtualTypeDef)>*/;
4262 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>*/;
4265 /* <var_bound:MType> isa MNullableType */
4266 cltype78
= type_model__MNullableType
.color
;
4267 idtype79
= type_model__MNullableType
.id
;
4268 if(cltype78
>= var_bound
->type
->table_size
) {
4271 var77
= var_bound
->type
->type_table
[cltype78
] == idtype79
;
4274 var80
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
4275 var81
= ((val
* (*)(val
*))(var80
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var80
) /* bound_mtype on <var80:MClassDef>*/;
4276 var82
= ((val
* (*)(val
*))(var_bound
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_bound
) /* mtype on <var_bound:MType(MNullableType)>*/;
4277 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>*/;
4280 var_is_null
= var84
;
4281 CONTINUE_label
: (void)0;
4283 BREAK_label
: (void)0;
4284 /* <var_bound:MType> isa MClassType */
4285 cltype86
= type_model__MClassType
.color
;
4286 idtype87
= type_model__MClassType
.id
;
4287 if(cltype86
>= var_bound
->type
->table_size
) {
4290 var85
= var_bound
->type
->type_table
[cltype86
] == idtype87
;
4293 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_erasure_compiler.nit", 365);
4296 var88
= ((val
* (*)(val
*))(var_bound
->class->vft
[COLOR_model__MClassType__mclass
]))(var_bound
) /* mclass on <var_bound:MType(MClassType)>*/;
4297 var_vtclass
= var88
;
4303 var93
= string__NativeString__to_s_with_length(var91
, var92
);
4307 var94
= ((val
* (*)(val
*))(var_vtclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_vtclass
) /* c_name on <var_vtclass:MClass>*/;
4308 var95
= NEW_array__Array(&type_array__Arraykernel__Object
);
4309 { /* var95 = array_instance Array[Object] */
4311 var97
= NEW_array__NativeArray(var96
, &type_array__NativeArraykernel__Object
);
4312 ((struct instance_array__NativeArray
*)var97
)->values
[0] = (val
*) var90
;
4313 ((struct instance_array__NativeArray
*)var97
)->values
[1] = (val
*) var94
;
4314 ((void (*)(val
*, val
*, long))(var95
->class->vft
[COLOR_array__Array__with_native
]))(var95
, var97
, var96
) /* with_native on <var95:Array[Object]>*/;
4315 CHECK_NEW_array__Array(var95
);
4317 var98
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_string__Object__to_s
]))(var95
) /* to_s on <var95:Array[Object]>*/;
4318 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var98
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
4324 var103
= string__NativeString__to_s_with_length(var101
, var102
);
4329 var105
= varonce104
;
4331 var106
= ", &class_";
4333 var108
= string__NativeString__to_s_with_length(var106
, var107
);
4335 varonce104
= var105
;
4337 var109
= ((val
* (*)(val
*))(var_vtclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_vtclass
) /* c_name on <var_vtclass:MClass>*/;
4339 var111
= varonce110
;
4343 var114
= string__NativeString__to_s_with_length(var112
, var113
);
4345 varonce110
= var111
;
4348 var116
= varonce115
;
4352 var119
= string__NativeString__to_s_with_length(var117
, var118
);
4354 varonce115
= var116
;
4356 var120
= NEW_array__Array(&type_array__Arraykernel__Object
);
4357 { /* var120 = array_instance Array[Object] */
4359 var122
= NEW_array__NativeArray(var121
, &type_array__NativeArraykernel__Object
);
4360 ((struct instance_array__NativeArray
*)var122
)->values
[0] = (val
*) var100
;
4361 var123
= BOX_kernel__Int(var_is_null
); /* autobox from Int to Object */
4362 ((struct instance_array__NativeArray
*)var122
)->values
[1] = (val
*) var123
;
4363 ((struct instance_array__NativeArray
*)var122
)->values
[2] = (val
*) var105
;
4364 ((struct instance_array__NativeArray
*)var122
)->values
[3] = (val
*) var109
;
4365 ((struct instance_array__NativeArray
*)var122
)->values
[4] = (val
*) var111
;
4366 ((struct instance_array__NativeArray
*)var122
)->values
[5] = (val
*) var_vt
;
4367 ((struct instance_array__NativeArray
*)var122
)->values
[6] = (val
*) var116
;
4368 ((void (*)(val
*, val
*, long))(var120
->class->vft
[COLOR_array__Array__with_native
]))(var120
, var122
, var121
) /* with_native on <var120:Array[Object]>*/;
4369 CHECK_NEW_array__Array(var120
);
4371 var124
= ((val
* (*)(val
*))(var120
->class->vft
[COLOR_string__Object__to_s
]))(var120
) /* to_s on <var120:Array[Object]>*/;
4372 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var124
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4374 CONTINUE_label125
: (void)0;
4375 ((void (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var59
) /* next on <var59:Iterator[nullable Object]>*/;
4377 BREAK_label125
: (void)0;
4379 var127
= varonce126
;
4383 var130
= string__NativeString__to_s_with_length(var128
, var129
);
4385 varonce126
= var127
;
4387 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var127
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4389 var132
= varonce131
;
4393 var135
= string__NativeString__to_s_with_length(var133
, var134
);
4395 varonce131
= var132
;
4397 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var132
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4404 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_vts_table for (self: Object, MClass): Bool */
4405 short int VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__build_class_vts_table(val
* self
, val
* p0
) {
4406 short int var
/* : Bool */;
4407 short int var1
/* : Bool */;
4408 var1
= separate_erasure_compiler__SeparateErasureCompiler__build_class_vts_table(self
, p0
);
4413 /* method separate_erasure_compiler#SeparateErasureCompiler#retrieve_vt_bound for (self: SeparateErasureCompiler, MClassType, nullable MType): MType */
4414 val
* separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound(val
* self
, val
* p0
, val
* p1
) {
4415 val
* var
/* : MType */;
4416 val
* var_anchor
/* var anchor: MClassType */;
4417 val
* var_mtype
/* var mtype: nullable MType */;
4418 val
* var1
/* : null */;
4419 short int var2
/* : Bool */;
4420 static val
* varonce
;
4421 val
* var3
/* : String */;
4422 char* var4
/* : NativeString */;
4423 long var5
/* : Int */;
4424 val
* var6
/* : String */;
4425 short int var7
/* : Bool */;
4428 val
* var8
/* : MModule */;
4429 val
* var9
/* : MType */;
4430 short int var10
/* : Bool */;
4433 val
* var13
/* : MModule */;
4434 val
* var14
/* : MType */;
4438 if (var_mtype
== NULL
) {
4439 var2
= 1; /* is null */
4441 var2
= 0; /* arg is null but recv is not */
4447 var4
= "NOT YET IMPLEMENTED: retrieve_vt_bound on null";
4449 var6
= string__NativeString__to_s_with_length(var4
, var5
);
4453 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var3
) /* print on <self:SeparateErasureCompiler>*/;
4454 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Aborted", "src/separate_erasure_compiler.nit", 378);
4458 /* <var_mtype:nullable MType(MType)> isa MVirtualType */
4459 cltype
= type_model__MVirtualType
.color
;
4460 idtype
= type_model__MVirtualType
.id
;
4461 if(cltype
>= var_mtype
->type
->table_size
) {
4464 var7
= var_mtype
->type
->type_table
[cltype
] == idtype
;
4467 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
4468 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)>*/;
4472 /* <var_mtype:nullable MType(MType)> isa MParameterType */
4473 cltype11
= type_model__MParameterType
.color
;
4474 idtype12
= type_model__MParameterType
.id
;
4475 if(cltype11
>= var_mtype
->type
->table_size
) {
4478 var10
= var_mtype
->type
->type_table
[cltype11
] == idtype12
;
4481 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateErasureCompiler>*/;
4482 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)>*/;
4493 /* method separate_erasure_compiler#SeparateErasureCompiler#retrieve_vt_bound for (self: Object, MClassType, nullable MType): MType */
4494 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound(val
* self
, val
* p0
, val
* p1
) {
4495 val
* var
/* : MType */;
4496 val
* var1
/* : MType */;
4497 var1
= separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound(self
, p0
, p1
);
4502 /* method separate_erasure_compiler#SeparateErasureCompiler#new_visitor for (self: SeparateErasureCompiler): SeparateCompilerVisitor */
4503 val
* separate_erasure_compiler__SeparateErasureCompiler__new_visitor(val
* self
) {
4504 val
* var
/* : SeparateCompilerVisitor */;
4505 val
* var1
/* : SeparateErasureCompilerVisitor */;
4506 short int var2
/* : Bool */;
4509 const struct type
* type_struct
;
4510 var1
= NEW_separate_erasure_compiler__SeparateErasureCompilerVisitor(&type_separate_erasure_compiler__SeparateErasureCompilerVisitor
);
4511 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init
]))(var1
, self
) /* init on <var1:SeparateErasureCompilerVisitor>*/;
4512 CHECK_NEW_separate_erasure_compiler__SeparateErasureCompilerVisitor(var1
);
4513 /* <var1:SeparateErasureCompilerVisitor> isa VISITOR */
4514 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
4515 cltype
= type_struct
->color
;
4516 idtype
= type_struct
->id
;
4517 if(cltype
>= var1
->type
->table_size
) {
4520 var2
= var1
->type
->type_table
[cltype
] == idtype
;
4523 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_erasure_compiler.nit", 389);
4531 /* method separate_erasure_compiler#SeparateErasureCompiler#new_visitor for (self: Object): AbstractCompilerVisitor */
4532 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__new_visitor(val
* self
) {
4533 val
* var
/* : AbstractCompilerVisitor */;
4534 val
* var1
/* : SeparateCompilerVisitor */;
4535 var1
= separate_erasure_compiler__SeparateErasureCompiler__new_visitor(self
);
4540 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables for (self: SeparateErasureCompiler): Map[MClass, Array[nullable MClass]] */
4541 val
* separate_erasure_compiler__SeparateErasureCompiler__class_tables(val
* self
) {
4542 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
4543 val
* var1
/* : Map[MClass, Array[nullable MClass]] */;
4544 var1
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dclass_tables
].val
; /* @class_tables on <self:SeparateErasureCompiler> */
4546 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @class_tables", "src/separate_erasure_compiler.nit", 393);
4553 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables for (self: Object): Map[MClass, Array[nullable MClass]] */
4554 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_tables(val
* self
) {
4555 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
4556 val
* var1
/* : Map[MClass, Array[nullable MClass]] */;
4557 var1
= separate_erasure_compiler__SeparateErasureCompiler__class_tables(self
);
4562 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables= for (self: SeparateErasureCompiler, Map[MClass, Array[nullable MClass]]) */
4563 void separate_erasure_compiler__SeparateErasureCompiler__class_tables_61d(val
* self
, val
* p0
) {
4564 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dclass_tables
].val
= p0
; /* @class_tables on <self:SeparateErasureCompiler> */
4567 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables= for (self: Object, Map[MClass, Array[nullable MClass]]) */
4568 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_tables_61d(val
* self
, val
* p0
) {
4569 separate_erasure_compiler__SeparateErasureCompiler__class_tables_61d(self
, p0
);
4572 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables for (self: SeparateErasureCompiler): Map[MClass, Array[nullable MPropDef]] */
4573 val
* separate_erasure_compiler__SeparateErasureCompiler__vt_tables(val
* self
) {
4574 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
4575 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
4576 var1
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dvt_tables
].val
; /* @vt_tables on <self:SeparateErasureCompiler> */
4578 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @vt_tables", "src/separate_erasure_compiler.nit", 394);
4585 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables for (self: Object): Map[MClass, Array[nullable MPropDef]] */
4586 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__vt_tables(val
* self
) {
4587 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
4588 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
4589 var1
= separate_erasure_compiler__SeparateErasureCompiler__vt_tables(self
);
4594 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables= for (self: SeparateErasureCompiler, Map[MClass, Array[nullable MPropDef]]) */
4595 void separate_erasure_compiler__SeparateErasureCompiler__vt_tables_61d(val
* self
, val
* p0
) {
4596 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dvt_tables
].val
= p0
; /* @vt_tables on <self:SeparateErasureCompiler> */
4599 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables= for (self: Object, Map[MClass, Array[nullable MPropDef]]) */
4600 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__vt_tables_61d(val
* self
, val
* p0
) {
4601 separate_erasure_compiler__SeparateErasureCompiler__vt_tables_61d(self
, p0
);
4604 /* method separate_erasure_compiler#SeparateErasureCompiler#display_sizes for (self: SeparateErasureCompiler) */
4605 void separate_erasure_compiler__SeparateErasureCompiler__display_sizes(val
* self
) {
4606 static val
* varonce
;
4607 val
* var
/* : String */;
4608 char* var1
/* : NativeString */;
4609 long var2
/* : Int */;
4610 val
* var3
/* : String */;
4611 static val
* varonce4
;
4612 val
* var5
/* : String */;
4613 char* var6
/* : NativeString */;
4614 long var7
/* : Int */;
4615 val
* var8
/* : String */;
4616 long var9
/* : Int */;
4617 long var_total
/* var total: Int */;
4618 long var10
/* : Int */;
4619 long var_holes
/* var holes: Int */;
4620 val
* var11
/* : Map[MClass, Array[nullable MClass]] */;
4621 val
* var12
/* : MapIterator[Object, nullable Object] */;
4622 short int var13
/* : Bool */;
4623 val
* var14
/* : Object */;
4624 val
* var_t
/* var t: MClass */;
4625 val
* var15
/* : nullable Object */;
4626 val
* var_table
/* var table: Array[nullable MClass] */;
4627 long var16
/* : Int */;
4628 long var17
/* : Int */;
4629 long var19
/* : Int */;
4630 val
* var20
/* : Iterator[nullable Object] */;
4631 short int var21
/* : Bool */;
4632 val
* var22
/* : nullable Object */;
4633 val
* var_e
/* var e: nullable MClass */;
4634 val
* var23
/* : null */;
4635 short int var24
/* : Bool */;
4636 long var25
/* : Int */;
4637 long var26
/* : Int */;
4638 long var28
/* : Int */;
4639 static val
* varonce30
;
4640 val
* var31
/* : String */;
4641 char* var32
/* : NativeString */;
4642 long var33
/* : Int */;
4643 val
* var34
/* : String */;
4644 static val
* varonce35
;
4645 val
* var36
/* : String */;
4646 char* var37
/* : NativeString */;
4647 long var38
/* : Int */;
4648 val
* var39
/* : String */;
4649 val
* var40
/* : Array[Object] */;
4650 long var41
/* : Int */;
4651 val
* var42
/* : NativeArray[Object] */;
4652 val
* var43
/* : Object */;
4653 val
* var44
/* : Object */;
4654 val
* var45
/* : String */;
4655 static val
* varonce46
;
4656 val
* var47
/* : String */;
4657 char* var48
/* : NativeString */;
4658 long var49
/* : Int */;
4659 val
* var50
/* : String */;
4660 static val
* varonce51
;
4661 val
* var52
/* : String */;
4662 char* var53
/* : NativeString */;
4663 long var54
/* : Int */;
4664 val
* var55
/* : String */;
4665 long var56
/* : Int */;
4666 long var57
/* : Int */;
4667 val
* var58
/* : Map[MClass, Array[nullable MPropDef]] */;
4668 val
* var59
/* : MapIterator[Object, nullable Object] */;
4669 short int var60
/* : Bool */;
4670 val
* var61
/* : Object */;
4671 val
* var_t62
/* var t: MClass */;
4672 val
* var63
/* : nullable Object */;
4673 val
* var_table64
/* var table: Array[nullable MPropDef] */;
4674 long var65
/* : Int */;
4675 long var66
/* : Int */;
4676 long var68
/* : Int */;
4677 val
* var69
/* : Iterator[nullable Object] */;
4678 short int var70
/* : Bool */;
4679 val
* var71
/* : nullable Object */;
4680 val
* var_e72
/* var e: nullable MPropDef */;
4681 val
* var73
/* : null */;
4682 short int var74
/* : Bool */;
4683 long var75
/* : Int */;
4684 long var76
/* : Int */;
4685 long var78
/* : Int */;
4686 static val
* varonce81
;
4687 val
* var82
/* : String */;
4688 char* var83
/* : NativeString */;
4689 long var84
/* : Int */;
4690 val
* var85
/* : String */;
4691 static val
* varonce86
;
4692 val
* var87
/* : String */;
4693 char* var88
/* : NativeString */;
4694 long var89
/* : Int */;
4695 val
* var90
/* : String */;
4696 val
* var91
/* : Array[Object] */;
4697 long var92
/* : Int */;
4698 val
* var93
/* : NativeArray[Object] */;
4699 val
* var94
/* : Object */;
4700 val
* var95
/* : Object */;
4701 val
* var96
/* : String */;
4702 static val
* varonce97
;
4703 val
* var98
/* : String */;
4704 char* var99
/* : NativeString */;
4705 long var100
/* : Int */;
4706 val
* var101
/* : String */;
4707 static val
* varonce102
;
4708 val
* var103
/* : String */;
4709 char* var104
/* : NativeString */;
4710 long var105
/* : Int */;
4711 val
* var106
/* : String */;
4712 long var107
/* : Int */;
4713 long var108
/* : Int */;
4714 val
* var109
/* : Map[MClass, Array[nullable MPropDef]] */;
4715 val
* var110
/* : MapIterator[Object, nullable Object] */;
4716 short int var111
/* : Bool */;
4717 val
* var112
/* : Object */;
4718 val
* var_t113
/* var t: MClass */;
4719 val
* var114
/* : nullable Object */;
4720 val
* var_table115
/* var table: Array[nullable MPropDef] */;
4721 long var116
/* : Int */;
4722 long var117
/* : Int */;
4723 long var119
/* : Int */;
4724 val
* var120
/* : Iterator[nullable Object] */;
4725 short int var121
/* : Bool */;
4726 val
* var122
/* : nullable Object */;
4727 val
* var_e123
/* var e: nullable MPropDef */;
4728 val
* var124
/* : null */;
4729 short int var125
/* : Bool */;
4730 long var126
/* : Int */;
4731 long var127
/* : Int */;
4732 long var129
/* : Int */;
4733 static val
* varonce132
;
4734 val
* var133
/* : String */;
4735 char* var134
/* : NativeString */;
4736 long var135
/* : Int */;
4737 val
* var136
/* : String */;
4738 static val
* varonce137
;
4739 val
* var138
/* : String */;
4740 char* var139
/* : NativeString */;
4741 long var140
/* : Int */;
4742 val
* var141
/* : String */;
4743 val
* var142
/* : Array[Object] */;
4744 long var143
/* : Int */;
4745 val
* var144
/* : NativeArray[Object] */;
4746 val
* var145
/* : Object */;
4747 val
* var146
/* : Object */;
4748 val
* var147
/* : String */;
4749 static val
* varonce148
;
4750 val
* var149
/* : String */;
4751 char* var150
/* : NativeString */;
4752 long var151
/* : Int */;
4753 val
* var152
/* : String */;
4754 static val
* varonce153
;
4755 val
* var154
/* : String */;
4756 char* var155
/* : NativeString */;
4757 long var156
/* : Int */;
4758 val
* var157
/* : String */;
4759 long var158
/* : Int */;
4760 long var159
/* : Int */;
4761 val
* var160
/* : Map[MClass, Array[nullable MPropDef]] */;
4762 val
* var161
/* : MapIterator[Object, nullable Object] */;
4763 short int var162
/* : Bool */;
4764 val
* var163
/* : Object */;
4765 val
* var_t164
/* var t: MClass */;
4766 val
* var165
/* : nullable Object */;
4767 val
* var_table166
/* var table: Array[nullable MPropDef] */;
4768 long var167
/* : Int */;
4769 long var168
/* : Int */;
4770 long var170
/* : Int */;
4771 val
* var171
/* : Iterator[nullable Object] */;
4772 short int var172
/* : Bool */;
4773 val
* var173
/* : nullable Object */;
4774 val
* var_e174
/* var e: nullable MPropDef */;
4775 val
* var175
/* : null */;
4776 short int var176
/* : Bool */;
4777 long var177
/* : Int */;
4778 long var178
/* : Int */;
4779 long var180
/* : Int */;
4780 static val
* varonce183
;
4781 val
* var184
/* : String */;
4782 char* var185
/* : NativeString */;
4783 long var186
/* : Int */;
4784 val
* var187
/* : String */;
4785 static val
* varonce188
;
4786 val
* var189
/* : String */;
4787 char* var190
/* : NativeString */;
4788 long var191
/* : Int */;
4789 val
* var192
/* : String */;
4790 val
* var193
/* : Array[Object] */;
4791 long var194
/* : Int */;
4792 val
* var195
/* : NativeArray[Object] */;
4793 val
* var196
/* : Object */;
4794 val
* var197
/* : Object */;
4795 val
* var198
/* : String */;
4799 var1
= "# size of subtyping tables";
4801 var3
= string__NativeString__to_s_with_length(var1
, var2
);
4805 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var
) /* print on <self:SeparateErasureCompiler>*/;
4809 var6
= "\11total \11holes";
4811 var8
= string__NativeString__to_s_with_length(var6
, var7
);
4815 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var5
) /* print on <self:SeparateErasureCompiler>*/;
4820 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_tables
]))(self
) /* class_tables on <self:SeparateErasureCompiler>*/;
4821 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var11
) /* iterator on <var11:Map[MClass, Array[nullable MClass]]>*/;
4823 var13
= ((short int (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var12
) /* is_ok on <var12:MapIterator[Object, nullable Object]>*/;
4825 var14
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var12
) /* key on <var12:MapIterator[Object, nullable Object]>*/;
4827 var15
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var12
) /* item on <var12:MapIterator[Object, nullable Object]>*/;
4829 var16
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MClass]>*/;
4830 { /* Inline kernel#Int#+ (var_total,var16) */
4831 var19
= var_total
+ var16
;
4834 RET_LABEL18
:(void)0;
4837 var20
= ((val
* (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table
) /* iterator on <var_table:Array[nullable MClass]>*/;
4839 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var20
) /* is_ok on <var20:Iterator[nullable Object]>*/;
4841 var22
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var20
) /* item on <var20:Iterator[nullable Object]>*/;
4844 if (var_e
== NULL
) {
4845 var24
= 1; /* is null */
4847 var24
= 0; /* arg is null but recv is not */
4851 { /* Inline kernel#Int#+ (var_holes,var25) */
4852 var28
= var_holes
+ var25
;
4855 RET_LABEL27
:(void)0;
4860 CONTINUE_label
: (void)0;
4861 ((void (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var20
) /* next on <var20:Iterator[nullable Object]>*/;
4863 BREAK_label
: (void)0;
4864 CONTINUE_label29
: (void)0;
4865 ((void (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var12
) /* next on <var12:MapIterator[Object, nullable Object]>*/;
4867 BREAK_label29
: (void)0;
4873 var34
= string__NativeString__to_s_with_length(var32
, var33
);
4882 var39
= string__NativeString__to_s_with_length(var37
, var38
);
4886 var40
= NEW_array__Array(&type_array__Arraykernel__Object
);
4887 { /* var40 = array_instance Array[Object] */
4889 var42
= NEW_array__NativeArray(var41
, &type_array__NativeArraykernel__Object
);
4890 ((struct instance_array__NativeArray
*)var42
)->values
[0] = (val
*) var31
;
4891 var43
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
4892 ((struct instance_array__NativeArray
*)var42
)->values
[1] = (val
*) var43
;
4893 ((struct instance_array__NativeArray
*)var42
)->values
[2] = (val
*) var36
;
4894 var44
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
4895 ((struct instance_array__NativeArray
*)var42
)->values
[3] = (val
*) var44
;
4896 ((void (*)(val
*, val
*, long))(var40
->class->vft
[COLOR_array__Array__with_native
]))(var40
, var42
, var41
) /* with_native on <var40:Array[Object]>*/;
4897 CHECK_NEW_array__Array(var40
);
4899 var45
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_string__Object__to_s
]))(var40
) /* to_s on <var40:Array[Object]>*/;
4900 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var45
) /* print on <self:SeparateErasureCompiler>*/;
4904 var48
= "# size of resolution tables";
4906 var50
= string__NativeString__to_s_with_length(var48
, var49
);
4910 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var47
) /* print on <self:SeparateErasureCompiler>*/;
4914 var53
= "\11total \11holes";
4916 var55
= string__NativeString__to_s_with_length(var53
, var54
);
4920 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var52
) /* print on <self:SeparateErasureCompiler>*/;
4925 var58
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_tables
]))(self
) /* vt_tables on <self:SeparateErasureCompiler>*/;
4926 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var58
) /* iterator on <var58:Map[MClass, Array[nullable MPropDef]]>*/;
4928 var60
= ((short int (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var59
) /* is_ok on <var59:MapIterator[Object, nullable Object]>*/;
4930 var61
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var59
) /* key on <var59:MapIterator[Object, nullable Object]>*/;
4932 var63
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var59
) /* item on <var59:MapIterator[Object, nullable Object]>*/;
4933 var_table64
= var63
;
4934 var65
= ((long (*)(val
*))(var_table64
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table64
) /* length on <var_table64:Array[nullable MPropDef]>*/;
4935 { /* Inline kernel#Int#+ (var_total,var65) */
4936 var68
= var_total
+ var65
;
4939 RET_LABEL67
:(void)0;
4942 var69
= ((val
* (*)(val
*))(var_table64
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table64
) /* iterator on <var_table64:Array[nullable MPropDef]>*/;
4944 var70
= ((short int (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var69
) /* is_ok on <var69:Iterator[nullable Object]>*/;
4946 var71
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var69
) /* item on <var69:Iterator[nullable Object]>*/;
4949 if (var_e72
== NULL
) {
4950 var74
= 1; /* is null */
4952 var74
= 0; /* arg is null but recv is not */
4956 { /* Inline kernel#Int#+ (var_holes,var75) */
4957 var78
= var_holes
+ var75
;
4960 RET_LABEL77
:(void)0;
4965 CONTINUE_label79
: (void)0;
4966 ((void (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var69
) /* next on <var69:Iterator[nullable Object]>*/;
4968 BREAK_label79
: (void)0;
4969 CONTINUE_label80
: (void)0;
4970 ((void (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var59
) /* next on <var59:MapIterator[Object, nullable Object]>*/;
4972 BREAK_label80
: (void)0;
4978 var85
= string__NativeString__to_s_with_length(var83
, var84
);
4987 var90
= string__NativeString__to_s_with_length(var88
, var89
);
4991 var91
= NEW_array__Array(&type_array__Arraykernel__Object
);
4992 { /* var91 = array_instance Array[Object] */
4994 var93
= NEW_array__NativeArray(var92
, &type_array__NativeArraykernel__Object
);
4995 ((struct instance_array__NativeArray
*)var93
)->values
[0] = (val
*) var82
;
4996 var94
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
4997 ((struct instance_array__NativeArray
*)var93
)->values
[1] = (val
*) var94
;
4998 ((struct instance_array__NativeArray
*)var93
)->values
[2] = (val
*) var87
;
4999 var95
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
5000 ((struct instance_array__NativeArray
*)var93
)->values
[3] = (val
*) var95
;
5001 ((void (*)(val
*, val
*, long))(var91
->class->vft
[COLOR_array__Array__with_native
]))(var91
, var93
, var92
) /* with_native on <var91:Array[Object]>*/;
5002 CHECK_NEW_array__Array(var91
);
5004 var96
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_string__Object__to_s
]))(var91
) /* to_s on <var91:Array[Object]>*/;
5005 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var96
) /* print on <self:SeparateErasureCompiler>*/;
5009 var99
= "# size of methods tables";
5011 var101
= string__NativeString__to_s_with_length(var99
, var100
);
5015 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var98
) /* print on <self:SeparateErasureCompiler>*/;
5017 var103
= varonce102
;
5019 var104
= "\11total \11holes";
5021 var106
= string__NativeString__to_s_with_length(var104
, var105
);
5023 varonce102
= var103
;
5025 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var103
) /* print on <self:SeparateErasureCompiler>*/;
5030 var109
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_tables
]))(self
) /* method_tables on <self:SeparateErasureCompiler>*/;
5031 var110
= ((val
* (*)(val
*))(var109
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var109
) /* iterator on <var109:Map[MClass, Array[nullable MPropDef]]>*/;
5033 var111
= ((short int (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var110
) /* is_ok on <var110:MapIterator[Object, nullable Object]>*/;
5035 var112
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var110
) /* key on <var110:MapIterator[Object, nullable Object]>*/;
5037 var114
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var110
) /* item on <var110:MapIterator[Object, nullable Object]>*/;
5038 var_table115
= var114
;
5039 var116
= ((long (*)(val
*))(var_table115
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table115
) /* length on <var_table115:Array[nullable MPropDef]>*/;
5040 { /* Inline kernel#Int#+ (var_total,var116) */
5041 var119
= var_total
+ var116
;
5044 RET_LABEL118
:(void)0;
5047 var120
= ((val
* (*)(val
*))(var_table115
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table115
) /* iterator on <var_table115:Array[nullable MPropDef]>*/;
5049 var121
= ((short int (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var120
) /* is_ok on <var120:Iterator[nullable Object]>*/;
5051 var122
= ((val
* (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var120
) /* item on <var120:Iterator[nullable Object]>*/;
5054 if (var_e123
== NULL
) {
5055 var125
= 1; /* is null */
5057 var125
= 0; /* arg is null but recv is not */
5061 { /* Inline kernel#Int#+ (var_holes,var126) */
5062 var129
= var_holes
+ var126
;
5065 RET_LABEL128
:(void)0;
5070 CONTINUE_label130
: (void)0;
5071 ((void (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var120
) /* next on <var120:Iterator[nullable Object]>*/;
5073 BREAK_label130
: (void)0;
5074 CONTINUE_label131
: (void)0;
5075 ((void (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var110
) /* next on <var110:MapIterator[Object, nullable Object]>*/;
5077 BREAK_label131
: (void)0;
5079 var133
= varonce132
;
5083 var136
= string__NativeString__to_s_with_length(var134
, var135
);
5085 varonce132
= var133
;
5088 var138
= varonce137
;
5092 var141
= string__NativeString__to_s_with_length(var139
, var140
);
5094 varonce137
= var138
;
5096 var142
= NEW_array__Array(&type_array__Arraykernel__Object
);
5097 { /* var142 = array_instance Array[Object] */
5099 var144
= NEW_array__NativeArray(var143
, &type_array__NativeArraykernel__Object
);
5100 ((struct instance_array__NativeArray
*)var144
)->values
[0] = (val
*) var133
;
5101 var145
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
5102 ((struct instance_array__NativeArray
*)var144
)->values
[1] = (val
*) var145
;
5103 ((struct instance_array__NativeArray
*)var144
)->values
[2] = (val
*) var138
;
5104 var146
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
5105 ((struct instance_array__NativeArray
*)var144
)->values
[3] = (val
*) var146
;
5106 ((void (*)(val
*, val
*, long))(var142
->class->vft
[COLOR_array__Array__with_native
]))(var142
, var144
, var143
) /* with_native on <var142:Array[Object]>*/;
5107 CHECK_NEW_array__Array(var142
);
5109 var147
= ((val
* (*)(val
*))(var142
->class->vft
[COLOR_string__Object__to_s
]))(var142
) /* to_s on <var142:Array[Object]>*/;
5110 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var147
) /* print on <self:SeparateErasureCompiler>*/;
5112 var149
= varonce148
;
5114 var150
= "# size of attributes tables";
5116 var152
= string__NativeString__to_s_with_length(var150
, var151
);
5118 varonce148
= var149
;
5120 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var149
) /* print on <self:SeparateErasureCompiler>*/;
5122 var154
= varonce153
;
5124 var155
= "\11total \11holes";
5126 var157
= string__NativeString__to_s_with_length(var155
, var156
);
5128 varonce153
= var154
;
5130 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var154
) /* print on <self:SeparateErasureCompiler>*/;
5135 var160
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_tables
]))(self
) /* attr_tables on <self:SeparateErasureCompiler>*/;
5136 var161
= ((val
* (*)(val
*))(var160
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var160
) /* iterator on <var160:Map[MClass, Array[nullable MPropDef]]>*/;
5138 var162
= ((short int (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var161
) /* is_ok on <var161:MapIterator[Object, nullable Object]>*/;
5140 var163
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var161
) /* key on <var161:MapIterator[Object, nullable Object]>*/;
5142 var165
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var161
) /* item on <var161:MapIterator[Object, nullable Object]>*/;
5143 var_table166
= var165
;
5144 var167
= ((long (*)(val
*))(var_table166
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table166
) /* length on <var_table166:Array[nullable MPropDef]>*/;
5145 { /* Inline kernel#Int#+ (var_total,var167) */
5146 var170
= var_total
+ var167
;
5149 RET_LABEL169
:(void)0;
5152 var171
= ((val
* (*)(val
*))(var_table166
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table166
) /* iterator on <var_table166:Array[nullable MPropDef]>*/;
5154 var172
= ((short int (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var171
) /* is_ok on <var171:Iterator[nullable Object]>*/;
5156 var173
= ((val
* (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var171
) /* item on <var171:Iterator[nullable Object]>*/;
5159 if (var_e174
== NULL
) {
5160 var176
= 1; /* is null */
5162 var176
= 0; /* arg is null but recv is not */
5166 { /* Inline kernel#Int#+ (var_holes,var177) */
5167 var180
= var_holes
+ var177
;
5170 RET_LABEL179
:(void)0;
5175 CONTINUE_label181
: (void)0;
5176 ((void (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var171
) /* next on <var171:Iterator[nullable Object]>*/;
5178 BREAK_label181
: (void)0;
5179 CONTINUE_label182
: (void)0;
5180 ((void (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var161
) /* next on <var161:MapIterator[Object, nullable Object]>*/;
5182 BREAK_label182
: (void)0;
5184 var184
= varonce183
;
5188 var187
= string__NativeString__to_s_with_length(var185
, var186
);
5190 varonce183
= var184
;
5193 var189
= varonce188
;
5197 var192
= string__NativeString__to_s_with_length(var190
, var191
);
5199 varonce188
= var189
;
5201 var193
= NEW_array__Array(&type_array__Arraykernel__Object
);
5202 { /* var193 = array_instance Array[Object] */
5204 var195
= NEW_array__NativeArray(var194
, &type_array__NativeArraykernel__Object
);
5205 ((struct instance_array__NativeArray
*)var195
)->values
[0] = (val
*) var184
;
5206 var196
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
5207 ((struct instance_array__NativeArray
*)var195
)->values
[1] = (val
*) var196
;
5208 ((struct instance_array__NativeArray
*)var195
)->values
[2] = (val
*) var189
;
5209 var197
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
5210 ((struct instance_array__NativeArray
*)var195
)->values
[3] = (val
*) var197
;
5211 ((void (*)(val
*, val
*, long))(var193
->class->vft
[COLOR_array__Array__with_native
]))(var193
, var195
, var194
) /* with_native on <var193:Array[Object]>*/;
5212 CHECK_NEW_array__Array(var193
);
5214 var198
= ((val
* (*)(val
*))(var193
->class->vft
[COLOR_string__Object__to_s
]))(var193
) /* to_s on <var193:Array[Object]>*/;
5215 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var198
) /* print on <self:SeparateErasureCompiler>*/;
5218 /* method separate_erasure_compiler#SeparateErasureCompiler#display_sizes for (self: Object) */
5219 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__display_sizes(val
* self
) {
5220 separate_erasure_compiler__SeparateErasureCompiler__display_sizes(self
);
5223 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#compile_callsite for (self: SeparateErasureCompilerVisitor, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
5224 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite(val
* self
, val
* p0
, val
* p1
) {
5225 val
* var
/* : nullable RuntimeVariable */;
5226 val
* var_callsite
/* var callsite: CallSite */;
5227 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
5228 val
* var1
/* : nullable RuntimeVariable */;
5229 val
* var_res
/* var res: nullable RuntimeVariable */;
5230 short int var2
/* : Bool */;
5231 short int var3
/* : Bool */;
5232 short int var_
/* var : Bool */;
5233 val
* var4
/* : AbstractCompiler */;
5234 short int var5
/* : Bool */;
5237 val
* var6
/* : ModelBuilder */;
5238 val
* var7
/* : ToolContext */;
5239 val
* var8
/* : OptionBool */;
5240 val
* var9
/* : nullable Object */;
5241 short int var10
/* : Bool */;
5242 short int var11
/* : Bool */;
5243 val
* var12
/* : null */;
5244 short int var13
/* : Bool */;
5245 val
* var14
/* : MSignature */;
5246 val
* var15
/* : nullable MType */;
5247 val
* var_mtype
/* var mtype: nullable MType */;
5248 val
* var16
/* : null */;
5249 short int var17
/* : Bool */;
5250 static val
* varonce
;
5251 val
* var18
/* : String */;
5252 char* var19
/* : NativeString */;
5253 long var20
/* : Int */;
5254 val
* var21
/* : String */;
5255 static val
* varonce22
;
5256 val
* var23
/* : String */;
5257 char* var24
/* : NativeString */;
5258 long var25
/* : Int */;
5259 val
* var26
/* : String */;
5260 static val
* varonce27
;
5261 val
* var28
/* : String */;
5262 char* var29
/* : NativeString */;
5263 long var30
/* : Int */;
5264 val
* var31
/* : String */;
5265 val
* var32
/* : Array[Object] */;
5266 long var33
/* : Int */;
5267 val
* var34
/* : NativeArray[Object] */;
5268 val
* var35
/* : String */;
5269 static val
* varonce36
;
5270 val
* var37
/* : String */;
5271 char* var38
/* : NativeString */;
5272 long var39
/* : Int */;
5273 val
* var40
/* : String */;
5274 val
* var41
/* : RuntimeVariable */;
5275 val
* var_cond
/* var cond: RuntimeVariable */;
5276 static val
* varonce42
;
5277 val
* var43
/* : String */;
5278 char* var44
/* : NativeString */;
5279 long var45
/* : Int */;
5280 val
* var46
/* : String */;
5281 static val
* varonce47
;
5282 val
* var48
/* : String */;
5283 char* var49
/* : NativeString */;
5284 long var50
/* : Int */;
5285 val
* var51
/* : String */;
5286 val
* var52
/* : Array[Object] */;
5287 long var53
/* : Int */;
5288 val
* var54
/* : NativeArray[Object] */;
5289 val
* var55
/* : String */;
5290 static val
* varonce56
;
5291 val
* var57
/* : String */;
5292 char* var58
/* : NativeString */;
5293 long var59
/* : Int */;
5294 val
* var60
/* : String */;
5295 static val
* varonce61
;
5296 val
* var62
/* : String */;
5297 char* var63
/* : NativeString */;
5298 long var64
/* : Int */;
5299 val
* var65
/* : String */;
5302 var1
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite
]))(self
, p0
, p1
) /* compile_callsite on <self:SeparateErasureCompilerVisitor>*/;
5304 var3
= ((short int (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__erasure_cast
]))(var_callsite
) /* erasure_cast on <var_callsite:CallSite>*/;
5307 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
5308 /* <var4:AbstractCompiler(SeparateCompiler)> isa SeparateErasureCompiler */
5309 cltype
= type_separate_erasure_compiler__SeparateErasureCompiler
.color
;
5310 idtype
= type_separate_erasure_compiler__SeparateErasureCompiler
.id
;
5311 if(cltype
>= var4
->type
->table_size
) {
5314 var5
= var4
->type
->type_table
[cltype
] == idtype
;
5317 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_erasure_compiler.nit", 446);
5320 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var4
) /* modelbuilder on <var4:SeparateCompiler(SeparateErasureCompiler)>*/;
5321 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var6
) /* toolcontext on <var6:ModelBuilder>*/;
5322 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>*/;
5323 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_opts__Option__value
]))(var8
) /* value on <var8:OptionBool>*/;
5324 var10
= ((struct instance_kernel__Bool
*)var9
)->value
; /* autounbox from nullable Object to Bool */;
5332 if (var_res
== NULL
) {
5333 var13
= 0; /* is null */
5335 var13
= 1; /* arg is null and recv is not */
5338 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/separate_erasure_compiler.nit", 447);
5341 var14
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_callsite
) /* msignature on <var_callsite:CallSite>*/;
5342 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var14
) /* return_mtype on <var14:MSignature>*/;
5345 if (var_mtype
== NULL
) {
5346 var17
= 0; /* is null */
5348 var17
= 1; /* arg is null and recv is not */
5351 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/separate_erasure_compiler.nit", 449);
5357 var19
= "/* Erasure cast for return ";
5359 var21
= string__NativeString__to_s_with_length(var19
, var20
);
5368 var26
= string__NativeString__to_s_with_length(var24
, var25
);
5377 var31
= string__NativeString__to_s_with_length(var29
, var30
);
5381 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
5382 { /* var32 = array_instance Array[Object] */
5384 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
5385 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var18
;
5386 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_res
;
5387 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var23
;
5388 ((struct instance_array__NativeArray
*)var34
)->values
[3] = (val
*) var_mtype
;
5389 ((struct instance_array__NativeArray
*)var34
)->values
[4] = (val
*) var28
;
5390 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
5391 CHECK_NEW_array__Array(var32
);
5393 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
5394 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var35
) /* add on <self:SeparateErasureCompilerVisitor>*/;
5400 var40
= string__NativeString__to_s_with_length(var38
, var39
);
5404 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>*/;
5411 var46
= string__NativeString__to_s_with_length(var44
, var45
);
5420 var51
= string__NativeString__to_s_with_length(var49
, var50
);
5424 var52
= NEW_array__Array(&type_array__Arraykernel__Object
);
5425 { /* var52 = array_instance Array[Object] */
5427 var54
= NEW_array__NativeArray(var53
, &type_array__NativeArraykernel__Object
);
5428 ((struct instance_array__NativeArray
*)var54
)->values
[0] = (val
*) var43
;
5429 ((struct instance_array__NativeArray
*)var54
)->values
[1] = (val
*) var_cond
;
5430 ((struct instance_array__NativeArray
*)var54
)->values
[2] = (val
*) var48
;
5431 ((void (*)(val
*, val
*, long))(var52
->class->vft
[COLOR_array__Array__with_native
]))(var52
, var54
, var53
) /* with_native on <var52:Array[Object]>*/;
5432 CHECK_NEW_array__Array(var52
);
5434 var55
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_string__Object__to_s
]))(var52
) /* to_s on <var52:Array[Object]>*/;
5435 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var55
) /* add on <self:SeparateErasureCompilerVisitor>*/;
5439 var58
= "Cast failed";
5441 var60
= string__NativeString__to_s_with_length(var58
, var59
);
5445 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(self
, var57
) /* add_abort on <self:SeparateErasureCompilerVisitor>*/;
5451 var65
= string__NativeString__to_s_with_length(var63
, var64
);
5455 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var62
) /* add on <self:SeparateErasureCompilerVisitor>*/;
5463 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#compile_callsite for (self: Object, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
5464 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite(val
* self
, val
* p0
, val
* p1
) {
5465 val
* var
/* : nullable RuntimeVariable */;
5466 val
* var1
/* : nullable RuntimeVariable */;
5467 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite(self
, p0
, p1
);
5472 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#init_instance for (self: SeparateErasureCompilerVisitor, MClassType): RuntimeVariable */
5473 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__init_instance(val
* self
, val
* p0
) {
5474 val
* var
/* : RuntimeVariable */;
5475 val
* var_mtype
/* var mtype: MClassType */;
5476 static val
* varonce
;
5477 val
* var1
/* : String */;
5478 char* var2
/* : NativeString */;
5479 long var3
/* : Int */;
5480 val
* var4
/* : String */;
5481 val
* var5
/* : MClass */;
5482 val
* var6
/* : String */;
5483 val
* var7
/* : Array[Object] */;
5484 long var8
/* : Int */;
5485 val
* var9
/* : NativeArray[Object] */;
5486 val
* var10
/* : String */;
5487 static val
* varonce11
;
5488 val
* var12
/* : String */;
5489 char* var13
/* : NativeString */;
5490 long var14
/* : Int */;
5491 val
* var15
/* : String */;
5492 val
* var16
/* : MClass */;
5493 val
* var17
/* : String */;
5494 static val
* varonce18
;
5495 val
* var19
/* : String */;
5496 char* var20
/* : NativeString */;
5497 long var21
/* : Int */;
5498 val
* var22
/* : String */;
5499 val
* var23
/* : Array[Object] */;
5500 long var24
/* : Int */;
5501 val
* var25
/* : NativeArray[Object] */;
5502 val
* var26
/* : String */;
5503 val
* var27
/* : RuntimeVariable */;
5510 var4
= string__NativeString__to_s_with_length(var2
, var3
);
5514 var5
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
5515 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var5
) /* c_name on <var5:MClass>*/;
5516 var7
= NEW_array__Array(&type_array__Arraykernel__Object
);
5517 { /* var7 = array_instance Array[Object] */
5519 var9
= NEW_array__NativeArray(var8
, &type_array__NativeArraykernel__Object
);
5520 ((struct instance_array__NativeArray
*)var9
)->values
[0] = (val
*) var1
;
5521 ((struct instance_array__NativeArray
*)var9
)->values
[1] = (val
*) var6
;
5522 ((void (*)(val
*, val
*, long))(var7
->class->vft
[COLOR_array__Array__with_native
]))(var7
, var9
, var8
) /* with_native on <var7:Array[Object]>*/;
5523 CHECK_NEW_array__Array(var7
);
5525 var10
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_string__Object__to_s
]))(var7
) /* to_s on <var7:Array[Object]>*/;
5526 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var10
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
5532 var15
= string__NativeString__to_s_with_length(var13
, var14
);
5536 var16
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
5537 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var16
) /* c_name on <var16:MClass>*/;
5543 var22
= string__NativeString__to_s_with_length(var20
, var21
);
5547 var23
= NEW_array__Array(&type_array__Arraykernel__Object
);
5548 { /* var23 = array_instance Array[Object] */
5550 var25
= NEW_array__NativeArray(var24
, &type_array__NativeArraykernel__Object
);
5551 ((struct instance_array__NativeArray
*)var25
)->values
[0] = (val
*) var12
;
5552 ((struct instance_array__NativeArray
*)var25
)->values
[1] = (val
*) var17
;
5553 ((struct instance_array__NativeArray
*)var25
)->values
[2] = (val
*) var19
;
5554 ((void (*)(val
*, val
*, long))(var23
->class->vft
[COLOR_array__Array__with_native
]))(var23
, var25
, var24
) /* with_native on <var23:Array[Object]>*/;
5555 CHECK_NEW_array__Array(var23
);
5557 var26
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_string__Object__to_s
]))(var23
) /* to_s on <var23:Array[Object]>*/;
5558 var27
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var26
, var_mtype
) /* new_expr on <self:SeparateErasureCompilerVisitor>*/;
5564 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#init_instance for (self: Object, MClassType): RuntimeVariable */
5565 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__init_instance(val
* self
, val
* p0
) {
5566 val
* var
/* : RuntimeVariable */;
5567 val
* var1
/* : RuntimeVariable */;
5568 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__init_instance(self
, p0
);
5573 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#type_test for (self: SeparateErasureCompilerVisitor, RuntimeVariable, MType, String): RuntimeVariable */
5574 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5575 val
* var
/* : RuntimeVariable */;
5576 val
* var_value
/* var value: RuntimeVariable */;
5577 val
* var_mtype
/* var mtype: MType */;
5578 val
* var_tag
/* var tag: String */;
5579 static val
* varonce
;
5580 val
* var1
/* : String */;
5581 char* var2
/* : NativeString */;
5582 long var3
/* : Int */;
5583 val
* var4
/* : String */;
5584 val
* var5
/* : String */;
5585 static val
* varonce6
;
5586 val
* var7
/* : String */;
5587 char* var8
/* : NativeString */;
5588 long var9
/* : Int */;
5589 val
* var10
/* : String */;
5590 static val
* varonce11
;
5591 val
* var12
/* : String */;
5592 char* var13
/* : NativeString */;
5593 long var14
/* : Int */;
5594 val
* var15
/* : String */;
5595 val
* var16
/* : Array[Object] */;
5596 long var17
/* : Int */;
5597 val
* var18
/* : NativeArray[Object] */;
5598 val
* var19
/* : String */;
5599 val
* var20
/* : MClassType */;
5600 val
* var21
/* : RuntimeVariable */;
5601 val
* var_res
/* var res: RuntimeVariable */;
5602 static val
* varonce22
;
5603 val
* var23
/* : String */;
5604 char* var24
/* : NativeString */;
5605 long var25
/* : Int */;
5606 val
* var26
/* : String */;
5607 val
* var27
/* : String */;
5608 val
* var_cltype
/* var cltype: String */;
5609 static val
* varonce28
;
5610 val
* var29
/* : String */;
5611 char* var30
/* : NativeString */;
5612 long var31
/* : Int */;
5613 val
* var32
/* : String */;
5614 static val
* varonce33
;
5615 val
* var34
/* : String */;
5616 char* var35
/* : NativeString */;
5617 long var36
/* : Int */;
5618 val
* var37
/* : String */;
5619 val
* var38
/* : Array[Object] */;
5620 long var39
/* : Int */;
5621 val
* var40
/* : NativeArray[Object] */;
5622 val
* var41
/* : String */;
5623 static val
* varonce42
;
5624 val
* var43
/* : String */;
5625 char* var44
/* : NativeString */;
5626 long var45
/* : Int */;
5627 val
* var46
/* : String */;
5628 val
* var47
/* : String */;
5629 val
* var_idtype
/* var idtype: String */;
5630 static val
* varonce48
;
5631 val
* var49
/* : String */;
5632 char* var50
/* : NativeString */;
5633 long var51
/* : Int */;
5634 val
* var52
/* : String */;
5635 static val
* varonce53
;
5636 val
* var54
/* : String */;
5637 char* var55
/* : NativeString */;
5638 long var56
/* : Int */;
5639 val
* var57
/* : String */;
5640 val
* var58
/* : Array[Object] */;
5641 long var59
/* : Int */;
5642 val
* var60
/* : NativeArray[Object] */;
5643 val
* var61
/* : String */;
5644 short int var62
/* : Bool */;
5645 short int var_maybe_null
/* var maybe_null: Bool */;
5646 static val
* varonce63
;
5647 val
* var64
/* : String */;
5648 char* var65
/* : NativeString */;
5649 long var66
/* : Int */;
5650 val
* var67
/* : String */;
5651 val
* var_accept_null
/* var accept_null: String */;
5652 short int var68
/* : Bool */;
5655 val
* var69
/* : MType */;
5656 static val
* varonce70
;
5657 val
* var71
/* : String */;
5658 char* var72
/* : NativeString */;
5659 long var73
/* : Int */;
5660 val
* var74
/* : String */;
5661 short int var75
/* : Bool */;
5664 val
* var78
/* : nullable Frame */;
5665 val
* var79
/* : MPropDef */;
5666 val
* var80
/* : MClassDef */;
5667 val
* var81
/* : MClassType */;
5668 val
* var82
/* : nullable Frame */;
5669 val
* var83
/* : MPropDef */;
5670 val
* var84
/* : MClassDef */;
5671 val
* var85
/* : MClassType */;
5672 val
* var86
/* : nullable Frame */;
5673 val
* var87
/* : MPropDef */;
5674 val
* var88
/* : MClassDef */;
5675 val
* var89
/* : MModule */;
5676 short int var90
/* : Bool */;
5677 val
* var91
/* : MType */;
5678 short int var92
/* : Bool */;
5681 val
* var95
/* : MType */;
5682 static val
* varonce96
;
5683 val
* var97
/* : String */;
5684 char* var98
/* : NativeString */;
5685 long var99
/* : Int */;
5686 val
* var100
/* : String */;
5687 val
* var101
/* : MType */;
5688 val
* var102
/* : nullable Frame */;
5689 val
* var103
/* : MPropDef */;
5690 val
* var104
/* : MClassDef */;
5691 val
* var105
/* : MModule */;
5692 val
* var106
/* : nullable Frame */;
5693 val
* var107
/* : MPropDef */;
5694 val
* var108
/* : MClassDef */;
5695 val
* var109
/* : MClassType */;
5696 short int var110
/* : Bool */;
5697 static val
* varonce111
;
5698 val
* var112
/* : String */;
5699 char* var113
/* : NativeString */;
5700 long var114
/* : Int */;
5701 val
* var115
/* : String */;
5702 val
* var116
/* : String */;
5703 static val
* varonce117
;
5704 val
* var118
/* : String */;
5705 char* var119
/* : NativeString */;
5706 long var120
/* : Int */;
5707 val
* var121
/* : String */;
5708 static val
* varonce122
;
5709 val
* var123
/* : String */;
5710 char* var124
/* : NativeString */;
5711 long var125
/* : Int */;
5712 val
* var126
/* : String */;
5713 val
* var127
/* : Array[Object] */;
5714 long var128
/* : Int */;
5715 val
* var129
/* : NativeArray[Object] */;
5716 val
* var130
/* : String */;
5717 val
* var131
/* : AbstractCompiler */;
5718 val
* var132
/* : ModelBuilder */;
5719 val
* var133
/* : ToolContext */;
5720 val
* var134
/* : OptionBool */;
5721 val
* var135
/* : nullable Object */;
5722 short int var136
/* : Bool */;
5723 val
* var137
/* : AbstractCompiler */;
5724 val
* var138
/* : HashMap[String, Int] */;
5725 val
* var_
/* var : HashMap[String, Int] */;
5726 val
* var_139
/* var : String */;
5727 val
* var140
/* : nullable Object */;
5728 long var141
/* : Int */;
5729 long var142
/* : Int */;
5730 long var144
/* : Int */;
5731 long var145
/* : Int */;
5732 val
* var146
/* : nullable Object */;
5733 static val
* varonce147
;
5734 val
* var148
/* : String */;
5735 char* var149
/* : NativeString */;
5736 long var150
/* : Int */;
5737 val
* var151
/* : String */;
5738 static val
* varonce152
;
5739 val
* var153
/* : String */;
5740 char* var154
/* : NativeString */;
5741 long var155
/* : Int */;
5742 val
* var156
/* : String */;
5743 val
* var157
/* : Array[Object] */;
5744 long var158
/* : Int */;
5745 val
* var159
/* : NativeArray[Object] */;
5746 val
* var160
/* : String */;
5747 val
* var161
/* : MType */;
5748 val
* var162
/* : String */;
5749 static val
* varonce163
;
5750 val
* var164
/* : String */;
5751 char* var165
/* : NativeString */;
5752 long var166
/* : Int */;
5753 val
* var167
/* : String */;
5754 short int var168
/* : Bool */;
5755 val
* var169
/* : Array[Object] */;
5756 long var170
/* : Int */;
5757 val
* var_171
/* var : Array[Object] */;
5758 static val
* varonce172
;
5759 val
* var173
/* : String */;
5760 char* var174
/* : NativeString */;
5761 long var175
/* : Int */;
5762 val
* var176
/* : String */;
5763 static val
* varonce177
;
5764 val
* var178
/* : String */;
5765 char* var179
/* : NativeString */;
5766 long var180
/* : Int */;
5767 val
* var181
/* : String */;
5768 val
* var182
/* : String */;
5769 val
* var_class_ptr
/* var class_ptr: nullable Object */;
5770 val
* var183
/* : MType */;
5771 short int var184
/* : Bool */;
5774 val
* var187
/* : MClass */;
5775 val
* var_mclass
/* var mclass: MClass */;
5776 static val
* varonce188
;
5777 val
* var189
/* : String */;
5778 char* var190
/* : NativeString */;
5779 long var191
/* : Int */;
5780 val
* var192
/* : String */;
5781 val
* var193
/* : String */;
5782 val
* var194
/* : Array[Object] */;
5783 long var195
/* : Int */;
5784 val
* var196
/* : NativeArray[Object] */;
5785 val
* var197
/* : String */;
5786 val
* var198
/* : Array[Object] */;
5787 long var199
/* : Int */;
5788 val
* var_200
/* var : Array[Object] */;
5789 static val
* varonce201
;
5790 val
* var202
/* : String */;
5791 char* var203
/* : NativeString */;
5792 long var204
/* : Int */;
5793 val
* var205
/* : String */;
5794 val
* var206
/* : String */;
5795 static val
* varonce207
;
5796 val
* var208
/* : String */;
5797 char* var209
/* : NativeString */;
5798 long var210
/* : Int */;
5799 val
* var211
/* : String */;
5800 val
* var212
/* : String */;
5801 short int var213
/* : Bool */;
5804 static val
* varonce216
;
5805 val
* var217
/* : String */;
5806 char* var218
/* : NativeString */;
5807 long var219
/* : Int */;
5808 val
* var220
/* : String */;
5809 val
* var221
/* : MClass */;
5810 val
* var222
/* : String */;
5811 val
* var223
/* : Array[Object] */;
5812 long var224
/* : Int */;
5813 val
* var225
/* : NativeArray[Object] */;
5814 val
* var226
/* : String */;
5815 static val
* varonce227
;
5816 val
* var228
/* : String */;
5817 char* var229
/* : NativeString */;
5818 long var230
/* : Int */;
5819 val
* var231
/* : String */;
5820 val
* var232
/* : MClass */;
5821 val
* var233
/* : String */;
5822 static val
* varonce234
;
5823 val
* var235
/* : String */;
5824 char* var236
/* : NativeString */;
5825 long var237
/* : Int */;
5826 val
* var238
/* : String */;
5827 val
* var239
/* : Array[Object] */;
5828 long var240
/* : Int */;
5829 val
* var241
/* : NativeArray[Object] */;
5830 val
* var242
/* : String */;
5831 static val
* varonce243
;
5832 val
* var244
/* : String */;
5833 char* var245
/* : NativeString */;
5834 long var246
/* : Int */;
5835 val
* var247
/* : String */;
5836 val
* var248
/* : MClass */;
5837 val
* var249
/* : String */;
5838 static val
* varonce250
;
5839 val
* var251
/* : String */;
5840 char* var252
/* : NativeString */;
5841 long var253
/* : Int */;
5842 val
* var254
/* : String */;
5843 val
* var255
/* : Array[Object] */;
5844 long var256
/* : Int */;
5845 val
* var257
/* : NativeArray[Object] */;
5846 val
* var258
/* : String */;
5847 val
* var259
/* : AbstractCompiler */;
5848 val
* var260
/* : ModelBuilder */;
5849 val
* var261
/* : ToolContext */;
5850 val
* var262
/* : OptionBool */;
5851 val
* var263
/* : nullable Object */;
5852 short int var264
/* : Bool */;
5853 val
* var265
/* : AbstractCompiler */;
5854 val
* var266
/* : HashMap[String, Int] */;
5855 val
* var_267
/* var : HashMap[String, Int] */;
5856 val
* var_268
/* var : String */;
5857 val
* var269
/* : nullable Object */;
5858 long var270
/* : Int */;
5859 long var271
/* : Int */;
5860 long var273
/* : Int */;
5861 long var274
/* : Int */;
5862 val
* var275
/* : nullable Object */;
5863 static val
* varonce276
;
5864 val
* var277
/* : String */;
5865 char* var278
/* : NativeString */;
5866 long var279
/* : Int */;
5867 val
* var280
/* : String */;
5868 static val
* varonce281
;
5869 val
* var282
/* : String */;
5870 char* var283
/* : NativeString */;
5871 long var284
/* : Int */;
5872 val
* var285
/* : String */;
5873 val
* var286
/* : Array[Object] */;
5874 long var287
/* : Int */;
5875 val
* var288
/* : NativeArray[Object] */;
5876 val
* var289
/* : String */;
5877 short int var290
/* : Bool */;
5880 val
* var293
/* : nullable Frame */;
5881 val
* var294
/* : Array[RuntimeVariable] */;
5882 val
* var295
/* : nullable Object */;
5883 val
* var_recv
/* var recv: RuntimeVariable */;
5884 val
* var296
/* : MType */;
5885 val
* var297
/* : String */;
5886 static val
* varonce298
;
5887 val
* var299
/* : String */;
5888 char* var300
/* : NativeString */;
5889 long var301
/* : Int */;
5890 val
* var302
/* : String */;
5891 short int var303
/* : Bool */;
5892 static val
* varonce304
;
5893 val
* var305
/* : String */;
5894 char* var306
/* : NativeString */;
5895 long var307
/* : Int */;
5896 val
* var308
/* : String */;
5897 val
* var309
/* : Array[Object] */;
5898 long var310
/* : Int */;
5899 val
* var311
/* : NativeArray[Object] */;
5900 val
* var312
/* : String */;
5901 val
* var_recv_ptr
/* var recv_ptr: nullable Object */;
5902 val
* var313
/* : MType */;
5903 short int var314
/* : Bool */;
5906 val
* var317
/* : MClass */;
5907 val
* var_mclass318
/* var mclass: MClass */;
5908 static val
* varonce319
;
5909 val
* var320
/* : String */;
5910 char* var321
/* : NativeString */;
5911 long var322
/* : Int */;
5912 val
* var323
/* : String */;
5913 val
* var324
/* : String */;
5914 val
* var325
/* : Array[Object] */;
5915 long var326
/* : Int */;
5916 val
* var327
/* : NativeArray[Object] */;
5917 val
* var328
/* : String */;
5918 static val
* varonce329
;
5919 val
* var330
/* : String */;
5920 char* var331
/* : NativeString */;
5921 long var332
/* : Int */;
5922 val
* var333
/* : String */;
5923 val
* var334
/* : String */;
5924 static val
* varonce335
;
5925 val
* var336
/* : String */;
5926 char* var337
/* : NativeString */;
5927 long var338
/* : Int */;
5928 val
* var339
/* : String */;
5929 val
* var340
/* : Array[Object] */;
5930 long var341
/* : Int */;
5931 val
* var342
/* : NativeArray[Object] */;
5932 val
* var343
/* : String */;
5933 static val
* varonce344
;
5934 val
* var345
/* : String */;
5935 char* var346
/* : NativeString */;
5936 long var347
/* : Int */;
5937 val
* var348
/* : String */;
5938 val
* var349
/* : String */;
5939 val
* var_entry
/* var entry: String */;
5940 static val
* varonce350
;
5941 val
* var351
/* : String */;
5942 char* var352
/* : NativeString */;
5943 long var353
/* : Int */;
5944 val
* var354
/* : String */;
5945 static val
* varonce355
;
5946 val
* var356
/* : String */;
5947 char* var357
/* : NativeString */;
5948 long var358
/* : Int */;
5949 val
* var359
/* : String */;
5950 val
* var360
/* : Array[Object] */;
5951 long var361
/* : Int */;
5952 val
* var362
/* : NativeArray[Object] */;
5953 val
* var363
/* : String */;
5954 val
* var364
/* : MProperty */;
5955 val
* var365
/* : String */;
5956 val
* var366
/* : AbstractCompiler */;
5957 short int var367
/* : Bool */;
5960 val
* var370
/* : nullable Layout[MVirtualTypeProp] */;
5961 short int var371
/* : Bool */;
5964 static val
* varonce374
;
5965 val
* var375
/* : String */;
5966 char* var376
/* : NativeString */;
5967 long var377
/* : Int */;
5968 val
* var378
/* : String */;
5969 static val
* varonce379
;
5970 val
* var380
/* : String */;
5971 char* var381
/* : NativeString */;
5972 long var382
/* : Int */;
5973 val
* var383
/* : String */;
5974 static val
* varonce384
;
5975 val
* var385
/* : String */;
5976 char* var386
/* : NativeString */;
5977 long var387
/* : Int */;
5978 val
* var388
/* : String */;
5979 val
* var389
/* : MProperty */;
5980 val
* var390
/* : String */;
5981 static val
* varonce391
;
5982 val
* var392
/* : String */;
5983 char* var393
/* : NativeString */;
5984 long var394
/* : Int */;
5985 val
* var395
/* : String */;
5986 val
* var396
/* : Array[Object] */;
5987 long var397
/* : Int */;
5988 val
* var398
/* : NativeArray[Object] */;
5989 val
* var399
/* : String */;
5990 static val
* varonce400
;
5991 val
* var401
/* : String */;
5992 char* var402
/* : NativeString */;
5993 long var403
/* : Int */;
5994 val
* var404
/* : String */;
5995 static val
* varonce405
;
5996 val
* var406
/* : String */;
5997 char* var407
/* : NativeString */;
5998 long var408
/* : Int */;
5999 val
* var409
/* : String */;
6000 val
* var410
/* : MProperty */;
6001 val
* var411
/* : String */;
6002 static val
* varonce412
;
6003 val
* var413
/* : String */;
6004 char* var414
/* : NativeString */;
6005 long var415
/* : Int */;
6006 val
* var416
/* : String */;
6007 val
* var417
/* : Array[Object] */;
6008 long var418
/* : Int */;
6009 val
* var419
/* : NativeArray[Object] */;
6010 val
* var420
/* : String */;
6011 static val
* varonce421
;
6012 val
* var422
/* : String */;
6013 char* var423
/* : NativeString */;
6014 long var424
/* : Int */;
6015 val
* var425
/* : String */;
6016 static val
* varonce426
;
6017 val
* var427
/* : String */;
6018 char* var428
/* : NativeString */;
6019 long var429
/* : Int */;
6020 val
* var430
/* : String */;
6021 val
* var431
/* : Array[Object] */;
6022 long var432
/* : Int */;
6023 val
* var433
/* : NativeArray[Object] */;
6024 val
* var434
/* : String */;
6025 static val
* varonce435
;
6026 val
* var436
/* : String */;
6027 char* var437
/* : NativeString */;
6028 long var438
/* : Int */;
6029 val
* var439
/* : String */;
6030 static val
* varonce440
;
6031 val
* var441
/* : String */;
6032 char* var442
/* : NativeString */;
6033 long var443
/* : Int */;
6034 val
* var444
/* : String */;
6035 val
* var445
/* : Array[Object] */;
6036 long var446
/* : Int */;
6037 val
* var447
/* : NativeArray[Object] */;
6038 val
* var448
/* : String */;
6039 short int var449
/* : Bool */;
6040 short int var_450
/* var : Bool */;
6041 static val
* varonce451
;
6042 val
* var452
/* : String */;
6043 char* var453
/* : NativeString */;
6044 long var454
/* : Int */;
6045 val
* var455
/* : String */;
6046 short int var456
/* : Bool */;
6047 static val
* varonce457
;
6048 val
* var458
/* : String */;
6049 char* var459
/* : NativeString */;
6050 long var460
/* : Int */;
6051 val
* var461
/* : String */;
6052 val
* var462
/* : String */;
6053 val
* var_is_nullable
/* var is_nullable: String */;
6054 static val
* varonce463
;
6055 val
* var464
/* : String */;
6056 char* var465
/* : NativeString */;
6057 long var466
/* : Int */;
6058 val
* var467
/* : String */;
6059 static val
* varonce468
;
6060 val
* var469
/* : String */;
6061 char* var470
/* : NativeString */;
6062 long var471
/* : Int */;
6063 val
* var472
/* : String */;
6064 val
* var473
/* : Array[Object] */;
6065 long var474
/* : Int */;
6066 val
* var475
/* : NativeArray[Object] */;
6067 val
* var476
/* : String */;
6068 static val
* varonce477
;
6069 val
* var478
/* : String */;
6070 char* var479
/* : NativeString */;
6071 long var480
/* : Int */;
6072 val
* var481
/* : String */;
6073 static val
* varonce482
;
6074 val
* var483
/* : String */;
6075 char* var484
/* : NativeString */;
6076 long var485
/* : Int */;
6077 val
* var486
/* : String */;
6078 val
* var487
/* : Array[Object] */;
6079 long var488
/* : Int */;
6080 val
* var489
/* : NativeArray[Object] */;
6081 val
* var490
/* : String */;
6082 val
* var491
/* : String */;
6083 val
* var492
/* : AbstractCompiler */;
6084 val
* var493
/* : ModelBuilder */;
6085 val
* var494
/* : ToolContext */;
6086 val
* var495
/* : OptionBool */;
6087 val
* var496
/* : nullable Object */;
6088 short int var497
/* : Bool */;
6089 val
* var498
/* : AbstractCompiler */;
6090 val
* var499
/* : HashMap[String, Int] */;
6091 val
* var_500
/* var : HashMap[String, Int] */;
6092 val
* var_501
/* var : String */;
6093 val
* var502
/* : nullable Object */;
6094 long var503
/* : Int */;
6095 long var504
/* : Int */;
6096 long var506
/* : Int */;
6097 long var507
/* : Int */;
6098 val
* var508
/* : nullable Object */;
6099 static val
* varonce509
;
6100 val
* var510
/* : String */;
6101 char* var511
/* : NativeString */;
6102 long var512
/* : Int */;
6103 val
* var513
/* : String */;
6104 static val
* varonce514
;
6105 val
* var515
/* : String */;
6106 char* var516
/* : NativeString */;
6107 long var517
/* : Int */;
6108 val
* var518
/* : String */;
6109 val
* var519
/* : Array[Object] */;
6110 long var520
/* : Int */;
6111 val
* var521
/* : NativeArray[Object] */;
6112 val
* var522
/* : String */;
6113 static val
* varonce523
;
6114 val
* var524
/* : String */;
6115 char* var525
/* : NativeString */;
6116 long var526
/* : Int */;
6117 val
* var527
/* : String */;
6118 val
* var528
/* : String */;
6119 static val
* varonce529
;
6120 val
* var530
/* : String */;
6121 char* var531
/* : NativeString */;
6122 long var532
/* : Int */;
6123 val
* var533
/* : String */;
6124 static val
* varonce534
;
6125 val
* var535
/* : String */;
6126 char* var536
/* : NativeString */;
6127 long var537
/* : Int */;
6128 val
* var538
/* : String */;
6129 val
* var539
/* : Array[Object] */;
6130 long var540
/* : Int */;
6131 val
* var541
/* : NativeArray[Object] */;
6132 val
* var542
/* : String */;
6133 static val
* varonce543
;
6134 val
* var544
/* : String */;
6135 char* var545
/* : NativeString */;
6136 long var546
/* : Int */;
6137 val
* var547
/* : String */;
6138 static val
* varonce548
;
6139 val
* var549
/* : String */;
6140 char* var550
/* : NativeString */;
6141 long var551
/* : Int */;
6142 val
* var552
/* : String */;
6143 val
* var553
/* : Array[Object] */;
6144 long var554
/* : Int */;
6145 val
* var555
/* : NativeArray[Object] */;
6146 val
* var556
/* : String */;
6147 static val
* varonce557
;
6148 val
* var558
/* : String */;
6149 char* var559
/* : NativeString */;
6150 long var560
/* : Int */;
6151 val
* var561
/* : String */;
6152 static val
* varonce562
;
6153 val
* var563
/* : String */;
6154 char* var564
/* : NativeString */;
6155 long var565
/* : Int */;
6156 val
* var566
/* : String */;
6157 val
* var567
/* : Array[Object] */;
6158 long var568
/* : Int */;
6159 val
* var569
/* : NativeArray[Object] */;
6160 val
* var570
/* : String */;
6161 static val
* varonce571
;
6162 val
* var572
/* : String */;
6163 char* var573
/* : NativeString */;
6164 long var574
/* : Int */;
6165 val
* var575
/* : String */;
6166 val
* var576
/* : AbstractCompiler */;
6167 short int var577
/* : Bool */;
6170 val
* var580
/* : nullable Layout[MClass] */;
6171 short int var581
/* : Bool */;
6174 static val
* varonce584
;
6175 val
* var585
/* : String */;
6176 char* var586
/* : NativeString */;
6177 long var587
/* : Int */;
6178 val
* var588
/* : String */;
6179 static val
* varonce589
;
6180 val
* var590
/* : String */;
6181 char* var591
/* : NativeString */;
6182 long var592
/* : Int */;
6183 val
* var593
/* : String */;
6184 static val
* varonce594
;
6185 val
* var595
/* : String */;
6186 char* var596
/* : NativeString */;
6187 long var597
/* : Int */;
6188 val
* var598
/* : String */;
6189 val
* var599
/* : Array[Object] */;
6190 long var600
/* : Int */;
6191 val
* var601
/* : NativeArray[Object] */;
6192 val
* var602
/* : String */;
6193 static val
* varonce603
;
6194 val
* var604
/* : String */;
6195 char* var605
/* : NativeString */;
6196 long var606
/* : Int */;
6197 val
* var607
/* : String */;
6198 static val
* varonce608
;
6199 val
* var609
/* : String */;
6200 char* var610
/* : NativeString */;
6201 long var611
/* : Int */;
6202 val
* var612
/* : String */;
6203 static val
* varonce613
;
6204 val
* var614
/* : String */;
6205 char* var615
/* : NativeString */;
6206 long var616
/* : Int */;
6207 val
* var617
/* : String */;
6208 val
* var618
/* : Array[Object] */;
6209 long var619
/* : Int */;
6210 val
* var620
/* : NativeArray[Object] */;
6211 val
* var621
/* : String */;
6212 static val
* varonce622
;
6213 val
* var623
/* : String */;
6214 char* var624
/* : NativeString */;
6215 long var625
/* : Int */;
6216 val
* var626
/* : String */;
6217 val
* var627
/* : Array[Object] */;
6218 long var628
/* : Int */;
6219 val
* var629
/* : NativeArray[Object] */;
6220 val
* var630
/* : String */;
6221 static val
* varonce631
;
6222 val
* var632
/* : String */;
6223 char* var633
/* : NativeString */;
6224 long var634
/* : Int */;
6225 val
* var635
/* : String */;
6226 static val
* varonce636
;
6227 val
* var637
/* : String */;
6228 char* var638
/* : NativeString */;
6229 long var639
/* : Int */;
6230 val
* var640
/* : String */;
6231 static val
* varonce641
;
6232 val
* var642
/* : String */;
6233 char* var643
/* : NativeString */;
6234 long var644
/* : Int */;
6235 val
* var645
/* : String */;
6236 static val
* varonce646
;
6237 val
* var647
/* : String */;
6238 char* var648
/* : NativeString */;
6239 long var649
/* : Int */;
6240 val
* var650
/* : String */;
6241 static val
* varonce651
;
6242 val
* var652
/* : String */;
6243 char* var653
/* : NativeString */;
6244 long var654
/* : Int */;
6245 val
* var655
/* : String */;
6246 val
* var656
/* : Array[Object] */;
6247 long var657
/* : Int */;
6248 val
* var658
/* : NativeArray[Object] */;
6249 val
* var659
/* : String */;
6250 static val
* varonce660
;
6251 val
* var661
/* : String */;
6252 char* var662
/* : NativeString */;
6253 long var663
/* : Int */;
6254 val
* var664
/* : String */;
6255 static val
* varonce665
;
6256 val
* var666
/* : String */;
6257 char* var667
/* : NativeString */;
6258 long var668
/* : Int */;
6259 val
* var669
/* : String */;
6266 var2
= "/* type test for ";
6268 var4
= string__NativeString__to_s_with_length(var2
, var3
);
6272 var5
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_string__Object__inspect
]))(var_value
) /* inspect on <var_value:RuntimeVariable>*/;
6278 var10
= string__NativeString__to_s_with_length(var8
, var9
);
6287 var15
= string__NativeString__to_s_with_length(var13
, var14
);
6291 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
6292 { /* var16 = array_instance Array[Object] */
6294 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
6295 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var1
;
6296 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var5
;
6297 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var7
;
6298 ((struct instance_array__NativeArray
*)var18
)->values
[3] = (val
*) var_mtype
;
6299 ((struct instance_array__NativeArray
*)var18
)->values
[4] = (val
*) var12
;
6300 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
6301 CHECK_NEW_array__Array(var16
);
6303 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
6304 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var19
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6305 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type
]))(self
) /* bool_type on <self:SeparateErasureCompilerVisitor>*/;
6306 var21
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var20
) /* new_var on <self:SeparateErasureCompilerVisitor>*/;
6313 var26
= string__NativeString__to_s_with_length(var24
, var25
);
6317 var27
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var23
) /* get_name on <self:SeparateErasureCompilerVisitor>*/;
6324 var32
= string__NativeString__to_s_with_length(var30
, var31
);
6333 var37
= string__NativeString__to_s_with_length(var35
, var36
);
6337 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
6338 { /* var38 = array_instance Array[Object] */
6340 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
6341 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var29
;
6342 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var_cltype
;
6343 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var34
;
6344 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
6345 CHECK_NEW_array__Array(var38
);
6347 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
6348 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var41
) /* add_decl on <self:SeparateErasureCompilerVisitor>*/;
6354 var46
= string__NativeString__to_s_with_length(var44
, var45
);
6358 var47
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var43
) /* get_name on <self:SeparateErasureCompilerVisitor>*/;
6365 var52
= string__NativeString__to_s_with_length(var50
, var51
);
6374 var57
= string__NativeString__to_s_with_length(var55
, var56
);
6378 var58
= NEW_array__Array(&type_array__Arraykernel__Object
);
6379 { /* var58 = array_instance Array[Object] */
6381 var60
= NEW_array__NativeArray(var59
, &type_array__NativeArraykernel__Object
);
6382 ((struct instance_array__NativeArray
*)var60
)->values
[0] = (val
*) var49
;
6383 ((struct instance_array__NativeArray
*)var60
)->values
[1] = (val
*) var_idtype
;
6384 ((struct instance_array__NativeArray
*)var60
)->values
[2] = (val
*) var54
;
6385 ((void (*)(val
*, val
*, long))(var58
->class->vft
[COLOR_array__Array__with_native
]))(var58
, var60
, var59
) /* with_native on <var58:Array[Object]>*/;
6386 CHECK_NEW_array__Array(var58
);
6388 var61
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_string__Object__to_s
]))(var58
) /* to_s on <var58:Array[Object]>*/;
6389 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var61
) /* add_decl on <self:SeparateErasureCompilerVisitor>*/;
6390 var62
= ((short int (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompilerVisitor__maybe_null
]))(self
, var_value
) /* maybe_null on <self:SeparateErasureCompilerVisitor>*/;
6391 var_maybe_null
= var62
;
6397 var67
= string__NativeString__to_s_with_length(var65
, var66
);
6401 var_accept_null
= var64
;
6402 /* <var_mtype:MType> isa MNullableType */
6403 cltype
= type_model__MNullableType
.color
;
6404 idtype
= type_model__MNullableType
.id
;
6405 if(cltype
>= var_mtype
->type
->table_size
) {
6408 var68
= var_mtype
->type
->type_table
[cltype
] == idtype
;
6411 var69
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
6418 var74
= string__NativeString__to_s_with_length(var72
, var73
);
6422 var_accept_null
= var71
;
6425 /* <var_mtype:MType> isa MParameterType */
6426 cltype76
= type_model__MParameterType
.color
;
6427 idtype77
= type_model__MParameterType
.id
;
6428 if(cltype76
>= var_mtype
->type
->table_size
) {
6431 var75
= var_mtype
->type
->type_table
[cltype76
] == idtype77
;
6434 var78
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6435 if (var78
== NULL
) {
6436 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/separate_erasure_compiler.nit", 487);
6439 var79
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var78
) /* mpropdef on <var78:nullable Frame>*/;
6441 var80
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var79
) /* mclassdef on <var79:MPropDef>*/;
6442 var81
= ((val
* (*)(val
*))(var80
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var80
) /* bound_mtype on <var80:MClassDef>*/;
6443 var82
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6444 if (var82
== NULL
) {
6445 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/separate_erasure_compiler.nit", 487);
6448 var83
= ((val
* (*)(val
*))(var82
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var82
) /* mpropdef on <var82:nullable Frame>*/;
6450 var84
= ((val
* (*)(val
*))(var83
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var83
) /* mclassdef on <var83:MPropDef>*/;
6451 var85
= ((val
* (*)(val
*))(var84
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var84
) /* bound_mtype on <var84:MClassDef>*/;
6452 var86
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6453 if (var86
== NULL
) {
6454 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/separate_erasure_compiler.nit", 487);
6457 var87
= ((val
* (*)(val
*))(var86
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var86
) /* mpropdef on <var86:nullable Frame>*/;
6459 var88
= ((val
* (*)(val
*))(var87
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var87
) /* mclassdef on <var87:MPropDef>*/;
6460 var89
= ((val
* (*)(val
*))(var88
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var88
) /* mmodule on <var88:MClassDef>*/;
6462 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)>*/;
6464 /* <var_mtype:MType> isa MNullableType */
6465 cltype93
= type_model__MNullableType
.color
;
6466 idtype94
= type_model__MNullableType
.id
;
6467 if(cltype93
>= var_mtype
->type
->table_size
) {
6470 var92
= var_mtype
->type
->type_table
[cltype93
] == idtype94
;
6473 var95
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
6480 var100
= string__NativeString__to_s_with_length(var98
, var99
);
6484 var_accept_null
= var97
;
6489 var101
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mcasttype
]))(var_value
) /* mcasttype on <var_value:RuntimeVariable>*/;
6490 var102
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6491 if (var102
== NULL
) {
6492 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/separate_erasure_compiler.nit", 494);
6495 var103
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var102
) /* mpropdef on <var102:nullable Frame>*/;
6497 var104
= ((val
* (*)(val
*))(var103
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var103
) /* mclassdef on <var103:MPropDef>*/;
6498 var105
= ((val
* (*)(val
*))(var104
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var104
) /* mmodule on <var104:MClassDef>*/;
6499 var106
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6500 if (var106
== NULL
) {
6501 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/separate_erasure_compiler.nit", 494);
6504 var107
= ((val
* (*)(val
*))(var106
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var106
) /* mpropdef on <var106:nullable Frame>*/;
6506 var108
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var107
) /* mclassdef on <var107:MPropDef>*/;
6507 var109
= ((val
* (*)(val
*))(var108
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var108
) /* bound_mtype on <var108:MClassDef>*/;
6508 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>*/;
6511 var112
= varonce111
;
6513 var113
= " = 1; /* easy ";
6515 var115
= string__NativeString__to_s_with_length(var113
, var114
);
6517 varonce111
= var112
;
6519 var116
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_string__Object__inspect
]))(var_value
) /* inspect on <var_value:RuntimeVariable>*/;
6521 var118
= varonce117
;
6525 var121
= string__NativeString__to_s_with_length(var119
, var120
);
6527 varonce117
= var118
;
6530 var123
= varonce122
;
6534 var126
= string__NativeString__to_s_with_length(var124
, var125
);
6536 varonce122
= var123
;
6538 var127
= NEW_array__Array(&type_array__Arraykernel__Object
);
6539 { /* var127 = array_instance Array[Object] */
6541 var129
= NEW_array__NativeArray(var128
, &type_array__NativeArraykernel__Object
);
6542 ((struct instance_array__NativeArray
*)var129
)->values
[0] = (val
*) var_res
;
6543 ((struct instance_array__NativeArray
*)var129
)->values
[1] = (val
*) var112
;
6544 ((struct instance_array__NativeArray
*)var129
)->values
[2] = (val
*) var116
;
6545 ((struct instance_array__NativeArray
*)var129
)->values
[3] = (val
*) var118
;
6546 ((struct instance_array__NativeArray
*)var129
)->values
[4] = (val
*) var_mtype
;
6547 ((struct instance_array__NativeArray
*)var129
)->values
[5] = (val
*) var123
;
6548 ((void (*)(val
*, val
*, long))(var127
->class->vft
[COLOR_array__Array__with_native
]))(var127
, var129
, var128
) /* with_native on <var127:Array[Object]>*/;
6549 CHECK_NEW_array__Array(var127
);
6551 var130
= ((val
* (*)(val
*))(var127
->class->vft
[COLOR_string__Object__to_s
]))(var127
) /* to_s on <var127:Array[Object]>*/;
6552 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var130
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6553 var131
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
6554 var132
= ((val
* (*)(val
*))(var131
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var131
) /* modelbuilder on <var131:AbstractCompiler(SeparateCompiler)>*/;
6555 var133
= ((val
* (*)(val
*))(var132
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var132
) /* toolcontext on <var132:ModelBuilder>*/;
6556 var134
= ((val
* (*)(val
*))(var133
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_typing_test_metrics
]))(var133
) /* opt_typing_test_metrics on <var133:ToolContext>*/;
6557 var135
= ((val
* (*)(val
*))(var134
->class->vft
[COLOR_opts__Option__value
]))(var134
) /* value on <var134:OptionBool>*/;
6558 var136
= ((struct instance_kernel__Bool
*)var135
)->value
; /* autounbox from nullable Object to Bool */;
6560 var137
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
6561 var138
= ((val
* (*)(val
*))(var137
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__count_type_test_skipped
]))(var137
) /* count_type_test_skipped on <var137:AbstractCompiler(SeparateCompiler)>*/;
6564 var140
= ((val
* (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_
, var_139
) /* [] on <var_:HashMap[String, Int]>*/;
6566 { /* Inline kernel#Int#+ (var140,var141) */
6567 var144
= ((struct instance_kernel__Int
*)var140
)->value
; /* autounbox from nullable Object to Int */;
6568 var145
= var144
+ var141
;
6571 RET_LABEL143
:(void)0;
6573 var146
= BOX_kernel__Int(var142
); /* autobox from Int to nullable Object */
6574 ((void (*)(val
*, val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_
, var_139
, var146
) /* []= on <var_:HashMap[String, Int]>*/;
6576 var148
= varonce147
;
6578 var149
= "count_type_test_skipped_";
6580 var151
= string__NativeString__to_s_with_length(var149
, var150
);
6582 varonce147
= var148
;
6585 var153
= varonce152
;
6589 var156
= string__NativeString__to_s_with_length(var154
, var155
);
6591 varonce152
= var153
;
6593 var157
= NEW_array__Array(&type_array__Arraykernel__Object
);
6594 { /* var157 = array_instance Array[Object] */
6596 var159
= NEW_array__NativeArray(var158
, &type_array__NativeArraykernel__Object
);
6597 ((struct instance_array__NativeArray
*)var159
)->values
[0] = (val
*) var148
;
6598 ((struct instance_array__NativeArray
*)var159
)->values
[1] = (val
*) var_tag
;
6599 ((struct instance_array__NativeArray
*)var159
)->values
[2] = (val
*) var153
;
6600 ((void (*)(val
*, val
*, long))(var157
->class->vft
[COLOR_array__Array__with_native
]))(var157
, var159
, var158
) /* with_native on <var157:Array[Object]>*/;
6601 CHECK_NEW_array__Array(var157
);
6603 var160
= ((val
* (*)(val
*))(var157
->class->vft
[COLOR_string__Object__to_s
]))(var157
) /* to_s on <var157:Array[Object]>*/;
6604 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var160
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6611 var161
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
6612 var162
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var161
) /* ctype on <var161:MType>*/;
6614 var164
= varonce163
;
6618 var167
= string__NativeString__to_s_with_length(var165
, var166
);
6620 varonce163
= var164
;
6622 var168
= ((short int (*)(val
*, val
*))(var162
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var162
, var164
) /* == on <var162:String>*/;
6624 var169
= NEW_array__Array(&type_array__Arraykernel__Object
);
6626 ((void (*)(val
*, long))(var169
->class->vft
[COLOR_array__Array__with_capacity
]))(var169
, var170
) /* with_capacity on <var169:Array[Object]>*/;
6627 CHECK_NEW_array__Array(var169
);
6630 var173
= varonce172
;
6634 var176
= string__NativeString__to_s_with_length(var174
, var175
);
6636 varonce172
= var173
;
6638 ((void (*)(val
*, val
*))(var_171
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_171
, var173
) /* add on <var_171:Array[Object]>*/;
6639 ((void (*)(val
*, val
*))(var_171
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_171
, var_value
) /* add on <var_171:Array[Object]>*/;
6641 var178
= varonce177
;
6643 var179
= "->class->";
6645 var181
= string__NativeString__to_s_with_length(var179
, var180
);
6647 varonce177
= var178
;
6649 ((void (*)(val
*, val
*))(var_171
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_171
, var178
) /* add on <var_171:Array[Object]>*/;
6650 var182
= ((val
* (*)(val
*))(var_171
->class->vft
[COLOR_string__Object__to_s
]))(var_171
) /* to_s on <var_171:Array[Object]>*/;
6651 var_class_ptr
= var182
;
6653 var183
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
6654 /* <var183:MType> isa MClassType */
6655 cltype185
= type_model__MClassType
.color
;
6656 idtype186
= type_model__MClassType
.id
;
6657 if(cltype185
>= var183
->type
->table_size
) {
6660 var184
= var183
->type
->type_table
[cltype185
] == idtype186
;
6663 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_erasure_compiler.nit", 508);
6666 var187
= ((val
* (*)(val
*))(var183
->class->vft
[COLOR_model__MClassType__mclass
]))(var183
) /* mclass on <var183:MType(MClassType)>*/;
6667 var_mclass
= var187
;
6669 var189
= varonce188
;
6673 var192
= string__NativeString__to_s_with_length(var190
, var191
);
6675 varonce188
= var189
;
6677 var193
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
6678 var194
= NEW_array__Array(&type_array__Arraykernel__Object
);
6679 { /* var194 = array_instance Array[Object] */
6681 var196
= NEW_array__NativeArray(var195
, &type_array__NativeArraykernel__Object
);
6682 ((struct instance_array__NativeArray
*)var196
)->values
[0] = (val
*) var189
;
6683 ((struct instance_array__NativeArray
*)var196
)->values
[1] = (val
*) var193
;
6684 ((void (*)(val
*, val
*, long))(var194
->class->vft
[COLOR_array__Array__with_native
]))(var194
, var196
, var195
) /* with_native on <var194:Array[Object]>*/;
6685 CHECK_NEW_array__Array(var194
);
6687 var197
= ((val
* (*)(val
*))(var194
->class->vft
[COLOR_string__Object__to_s
]))(var194
) /* to_s on <var194:Array[Object]>*/;
6688 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var197
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
6689 var198
= NEW_array__Array(&type_array__Arraykernel__Object
);
6691 ((void (*)(val
*, long))(var198
->class->vft
[COLOR_array__Array__with_capacity
]))(var198
, var199
) /* with_capacity on <var198:Array[Object]>*/;
6692 CHECK_NEW_array__Array(var198
);
6695 var202
= varonce201
;
6699 var205
= string__NativeString__to_s_with_length(var203
, var204
);
6701 varonce201
= var202
;
6703 ((void (*)(val
*, val
*))(var_200
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_200
, var202
) /* add on <var_200:Array[Object]>*/;
6704 var206
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
6705 ((void (*)(val
*, val
*))(var_200
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_200
, var206
) /* add on <var_200:Array[Object]>*/;
6707 var208
= varonce207
;
6711 var211
= string__NativeString__to_s_with_length(var209
, var210
);
6713 varonce207
= var208
;
6715 ((void (*)(val
*, val
*))(var_200
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_200
, var208
) /* add on <var_200:Array[Object]>*/;
6716 var212
= ((val
* (*)(val
*))(var_200
->class->vft
[COLOR_string__Object__to_s
]))(var_200
) /* to_s on <var_200:Array[Object]>*/;
6717 var_class_ptr
= var212
;
6719 /* <var_mtype:MType> isa MClassType */
6720 cltype214
= type_model__MClassType
.color
;
6721 idtype215
= type_model__MClassType
.id
;
6722 if(cltype214
>= var_mtype
->type
->table_size
) {
6725 var213
= var_mtype
->type
->type_table
[cltype214
] == idtype215
;
6729 var217
= varonce216
;
6733 var220
= string__NativeString__to_s_with_length(var218
, var219
);
6735 varonce216
= var217
;
6737 var221
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MType(MClassType)>*/;
6738 var222
= ((val
* (*)(val
*))(var221
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var221
) /* c_name on <var221:MClass>*/;
6739 var223
= NEW_array__Array(&type_array__Arraykernel__Object
);
6740 { /* var223 = array_instance Array[Object] */
6742 var225
= NEW_array__NativeArray(var224
, &type_array__NativeArraykernel__Object
);
6743 ((struct instance_array__NativeArray
*)var225
)->values
[0] = (val
*) var217
;
6744 ((struct instance_array__NativeArray
*)var225
)->values
[1] = (val
*) var222
;
6745 ((void (*)(val
*, val
*, long))(var223
->class->vft
[COLOR_array__Array__with_native
]))(var223
, var225
, var224
) /* with_native on <var223:Array[Object]>*/;
6746 CHECK_NEW_array__Array(var223
);
6748 var226
= ((val
* (*)(val
*))(var223
->class->vft
[COLOR_string__Object__to_s
]))(var223
) /* to_s on <var223:Array[Object]>*/;
6749 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var226
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
6751 var228
= varonce227
;
6753 var229
= " = class_";
6755 var231
= string__NativeString__to_s_with_length(var229
, var230
);
6757 varonce227
= var228
;
6759 var232
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MType(MClassType)>*/;
6760 var233
= ((val
* (*)(val
*))(var232
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var232
) /* c_name on <var232:MClass>*/;
6762 var235
= varonce234
;
6766 var238
= string__NativeString__to_s_with_length(var236
, var237
);
6768 varonce234
= var235
;
6770 var239
= NEW_array__Array(&type_array__Arraykernel__Object
);
6771 { /* var239 = array_instance Array[Object] */
6773 var241
= NEW_array__NativeArray(var240
, &type_array__NativeArraykernel__Object
);
6774 ((struct instance_array__NativeArray
*)var241
)->values
[0] = (val
*) var_cltype
;
6775 ((struct instance_array__NativeArray
*)var241
)->values
[1] = (val
*) var228
;
6776 ((struct instance_array__NativeArray
*)var241
)->values
[2] = (val
*) var233
;
6777 ((struct instance_array__NativeArray
*)var241
)->values
[3] = (val
*) var235
;
6778 ((void (*)(val
*, val
*, long))(var239
->class->vft
[COLOR_array__Array__with_native
]))(var239
, var241
, var240
) /* with_native on <var239:Array[Object]>*/;
6779 CHECK_NEW_array__Array(var239
);
6781 var242
= ((val
* (*)(val
*))(var239
->class->vft
[COLOR_string__Object__to_s
]))(var239
) /* to_s on <var239:Array[Object]>*/;
6782 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var242
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6784 var244
= varonce243
;
6786 var245
= " = class_";
6788 var247
= string__NativeString__to_s_with_length(var245
, var246
);
6790 varonce243
= var244
;
6792 var248
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MType(MClassType)>*/;
6793 var249
= ((val
* (*)(val
*))(var248
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var248
) /* c_name on <var248:MClass>*/;
6795 var251
= varonce250
;
6799 var254
= string__NativeString__to_s_with_length(var252
, var253
);
6801 varonce250
= var251
;
6803 var255
= NEW_array__Array(&type_array__Arraykernel__Object
);
6804 { /* var255 = array_instance Array[Object] */
6806 var257
= NEW_array__NativeArray(var256
, &type_array__NativeArraykernel__Object
);
6807 ((struct instance_array__NativeArray
*)var257
)->values
[0] = (val
*) var_idtype
;
6808 ((struct instance_array__NativeArray
*)var257
)->values
[1] = (val
*) var244
;
6809 ((struct instance_array__NativeArray
*)var257
)->values
[2] = (val
*) var249
;
6810 ((struct instance_array__NativeArray
*)var257
)->values
[3] = (val
*) var251
;
6811 ((void (*)(val
*, val
*, long))(var255
->class->vft
[COLOR_array__Array__with_native
]))(var255
, var257
, var256
) /* with_native on <var255:Array[Object]>*/;
6812 CHECK_NEW_array__Array(var255
);
6814 var258
= ((val
* (*)(val
*))(var255
->class->vft
[COLOR_string__Object__to_s
]))(var255
) /* to_s on <var255:Array[Object]>*/;
6815 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var258
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6816 var259
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
6817 var260
= ((val
* (*)(val
*))(var259
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var259
) /* modelbuilder on <var259:AbstractCompiler(SeparateCompiler)>*/;
6818 var261
= ((val
* (*)(val
*))(var260
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var260
) /* toolcontext on <var260:ModelBuilder>*/;
6819 var262
= ((val
* (*)(val
*))(var261
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_typing_test_metrics
]))(var261
) /* opt_typing_test_metrics on <var261:ToolContext>*/;
6820 var263
= ((val
* (*)(val
*))(var262
->class->vft
[COLOR_opts__Option__value
]))(var262
) /* value on <var262:OptionBool>*/;
6821 var264
= ((struct instance_kernel__Bool
*)var263
)->value
; /* autounbox from nullable Object to Bool */;
6823 var265
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
6824 var266
= ((val
* (*)(val
*))(var265
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__count_type_test_resolved
]))(var265
) /* count_type_test_resolved on <var265:AbstractCompiler(SeparateCompiler)>*/;
6827 var269
= ((val
* (*)(val
*, val
*))(var_267
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_267
, var_268
) /* [] on <var_267:HashMap[String, Int]>*/;
6829 { /* Inline kernel#Int#+ (var269,var270) */
6830 var273
= ((struct instance_kernel__Int
*)var269
)->value
; /* autounbox from nullable Object to Int */;
6831 var274
= var273
+ var270
;
6834 RET_LABEL272
:(void)0;
6836 var275
= BOX_kernel__Int(var271
); /* autobox from Int to nullable Object */
6837 ((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]>*/;
6839 var277
= varonce276
;
6841 var278
= "count_type_test_resolved_";
6843 var280
= string__NativeString__to_s_with_length(var278
, var279
);
6845 varonce276
= var277
;
6848 var282
= varonce281
;
6852 var285
= string__NativeString__to_s_with_length(var283
, var284
);
6854 varonce281
= var282
;
6856 var286
= NEW_array__Array(&type_array__Arraykernel__Object
);
6857 { /* var286 = array_instance Array[Object] */
6859 var288
= NEW_array__NativeArray(var287
, &type_array__NativeArraykernel__Object
);
6860 ((struct instance_array__NativeArray
*)var288
)->values
[0] = (val
*) var277
;
6861 ((struct instance_array__NativeArray
*)var288
)->values
[1] = (val
*) var_tag
;
6862 ((struct instance_array__NativeArray
*)var288
)->values
[2] = (val
*) var282
;
6863 ((void (*)(val
*, val
*, long))(var286
->class->vft
[COLOR_array__Array__with_native
]))(var286
, var288
, var287
) /* with_native on <var286:Array[Object]>*/;
6864 CHECK_NEW_array__Array(var286
);
6866 var289
= ((val
* (*)(val
*))(var286
->class->vft
[COLOR_string__Object__to_s
]))(var286
) /* to_s on <var286:Array[Object]>*/;
6867 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var289
) /* add on <self:SeparateErasureCompilerVisitor>*/;
6871 /* <var_mtype:MType> isa MVirtualType */
6872 cltype291
= type_model__MVirtualType
.color
;
6873 idtype292
= type_model__MVirtualType
.id
;
6874 if(cltype291
>= var_mtype
->type
->table_size
) {
6877 var290
= var_mtype
->type
->type_table
[cltype291
] == idtype292
;
6880 var293
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateErasureCompilerVisitor>*/;
6881 if (var293
== NULL
) {
6882 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/separate_erasure_compiler.nit", 522);
6885 var294
= ((val
* (*)(val
*))(var293
->class->vft
[COLOR_abstract_compiler__Frame__arguments
]))(var293
) /* arguments on <var293:nullable Frame>*/;
6887 var295
= ((val
* (*)(val
*))(var294
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var294
) /* first on <var294:Array[RuntimeVariable]>*/;
6889 var296
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_recv
) /* mtype on <var_recv:RuntimeVariable>*/;
6890 var297
= ((val
* (*)(val
*))(var296
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var296
) /* ctype on <var296:MType>*/;
6892 var299
= varonce298
;
6896 var302
= string__NativeString__to_s_with_length(var300
, var301
);
6898 varonce298
= var299
;
6900 var303
= ((short int (*)(val
*, val
*))(var297
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var297
, var299
) /* == on <var297:String>*/;
6903 var305
= varonce304
;
6905 var306
= "->class->";
6907 var308
= string__NativeString__to_s_with_length(var306
, var307
);
6909 varonce304
= var305
;
6911 var309
= NEW_array__Array(&type_array__Arraykernel__Object
);
6912 { /* var309 = array_instance Array[Object] */
6914 var311
= NEW_array__NativeArray(var310
, &type_array__NativeArraykernel__Object
);
6915 ((struct instance_array__NativeArray
*)var311
)->values
[0] = (val
*) var_recv
;
6916 ((struct instance_array__NativeArray
*)var311
)->values
[1] = (val
*) var305
;
6917 ((void (*)(val
*, val
*, long))(var309
->class->vft
[COLOR_array__Array__with_native
]))(var309
, var311
, var310
) /* with_native on <var309:Array[Object]>*/;
6918 CHECK_NEW_array__Array(var309
);
6920 var312
= ((val
* (*)(val
*))(var309
->class->vft
[COLOR_string__Object__to_s
]))(var309
) /* to_s on <var309:Array[Object]>*/;
6921 var_recv_ptr
= var312
;
6923 var313
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_recv
) /* mtype on <var_recv:RuntimeVariable>*/;
6924 /* <var313:MType> isa MClassType */
6925 cltype315
= type_model__MClassType
.color
;
6926 idtype316
= type_model__MClassType
.id
;
6927 if(cltype315
>= var313
->type
->table_size
) {
6930 var314
= var313
->type
->type_table
[cltype315
] == idtype316
;
6933 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_erasure_compiler.nit", 527);
6936 var317
= ((val
* (*)(val
*))(var313
->class->vft
[COLOR_model__MClassType__mclass
]))(var313
) /* mclass on <var313:MType(MClassType)>*/;
6937 var_mclass318
= var317
;
6939 var320
= varonce319
;
6943 var323
= string__NativeString__to_s_with_length(var321
, var322
);
6945 varonce319
= var320
;
6947 var324
= ((val
* (*)(val
*))(var_mclass318
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass318
) /* c_name on <var_mclass318:MClass>*/;
6948 var325
= NEW_array__Array(&type_array__Arraykernel__Object
);
6949 { /* var325 = array_instance Array[Object] */
6951 var327
= NEW_array__NativeArray(var326
, &type_array__NativeArraykernel__Object
);
6952 ((struct instance_array__NativeArray
*)var327
)->values
[0] = (val
*) var320
;
6953 ((struct instance_array__NativeArray
*)var327
)->values
[1] = (val
*) var324
;
6954 ((void (*)(val
*, val
*, long))(var325
->class->vft
[COLOR_array__Array__with_native
]))(var325
, var327
, var326
) /* with_native on <var325:Array[Object]>*/;
6955 CHECK_NEW_array__Array(var325
);
6957 var328
= ((val
* (*)(val
*))(var325
->class->vft
[COLOR_string__Object__to_s
]))(var325
) /* to_s on <var325:Array[Object]>*/;
6958 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var328
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
6960 var330
= varonce329
;
6964 var333
= string__NativeString__to_s_with_length(var331
, var332
);
6966 varonce329
= var330
;
6968 var334
= ((val
* (*)(val
*))(var_mclass318
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass318
) /* c_name on <var_mclass318:MClass>*/;
6970 var336
= varonce335
;
6974 var339
= string__NativeString__to_s_with_length(var337
, var338
);
6976 varonce335
= var336
;
6978 var340
= NEW_array__Array(&type_array__Arraykernel__Object
);
6979 { /* var340 = array_instance Array[Object] */
6981 var342
= NEW_array__NativeArray(var341
, &type_array__NativeArraykernel__Object
);
6982 ((struct instance_array__NativeArray
*)var342
)->values
[0] = (val
*) var330
;
6983 ((struct instance_array__NativeArray
*)var342
)->values
[1] = (val
*) var334
;
6984 ((struct instance_array__NativeArray
*)var342
)->values
[2] = (val
*) var336
;
6985 ((void (*)(val
*, val
*, long))(var340
->class->vft
[COLOR_array__Array__with_native
]))(var340
, var342
, var341
) /* with_native on <var340:Array[Object]>*/;
6986 CHECK_NEW_array__Array(var340
);
6988 var343
= ((val
* (*)(val
*))(var340
->class->vft
[COLOR_string__Object__to_s
]))(var340
) /* to_s on <var340:Array[Object]>*/;
6989 var_recv_ptr
= var343
;
6992 var345
= varonce344
;
6996 var348
= string__NativeString__to_s_with_length(var346
, var347
);
6998 varonce344
= var345
;
7000 var349
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var345
) /* get_name on <self:SeparateErasureCompilerVisitor>*/;
7003 var351
= varonce350
;
7005 var352
= "struct vts_entry ";
7007 var354
= string__NativeString__to_s_with_length(var352
, var353
);
7009 varonce350
= var351
;
7012 var356
= varonce355
;
7016 var359
= string__NativeString__to_s_with_length(var357
, var358
);
7018 varonce355
= var356
;
7020 var360
= NEW_array__Array(&type_array__Arraykernel__Object
);
7021 { /* var360 = array_instance Array[Object] */
7023 var362
= NEW_array__NativeArray(var361
, &type_array__NativeArraykernel__Object
);
7024 ((struct instance_array__NativeArray
*)var362
)->values
[0] = (val
*) var351
;
7025 ((struct instance_array__NativeArray
*)var362
)->values
[1] = (val
*) var_entry
;
7026 ((struct instance_array__NativeArray
*)var362
)->values
[2] = (val
*) var356
;
7027 ((void (*)(val
*, val
*, long))(var360
->class->vft
[COLOR_array__Array__with_native
]))(var360
, var362
, var361
) /* with_native on <var360:Array[Object]>*/;
7028 CHECK_NEW_array__Array(var360
);
7030 var363
= ((val
* (*)(val
*))(var360
->class->vft
[COLOR_string__Object__to_s
]))(var360
) /* to_s on <var360:Array[Object]>*/;
7031 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var363
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7032 var364
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(var_mtype
) /* mproperty on <var_mtype:MType(MVirtualType)>*/;
7033 var365
= ((val
* (*)(val
*))(var364
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var364
) /* const_color on <var364:MProperty>*/;
7034 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var365
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
7035 var366
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
7036 /* <var366:AbstractCompiler(SeparateCompiler)> isa SeparateErasureCompiler */
7037 cltype368
= type_separate_erasure_compiler__SeparateErasureCompiler
.color
;
7038 idtype369
= type_separate_erasure_compiler__SeparateErasureCompiler
.id
;
7039 if(cltype368
>= var366
->type
->table_size
) {
7042 var367
= var366
->type
->type_table
[cltype368
] == idtype369
;
7045 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_erasure_compiler.nit", 534);
7048 var370
= ((val
* (*)(val
*))(var366
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__vt_layout
]))(var366
) /* vt_layout on <var366:SeparateCompiler(SeparateErasureCompiler)>*/;
7049 /* <var370:nullable Layout[MVirtualTypeProp]> isa PHLayout[MClass, MVirtualTypeProp] */
7050 cltype372
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.color
;
7051 idtype373
= type_layout_builders__PHLayoutmodel__MClassmodel__MVirtualTypeProp
.id
;
7052 if(var370
== NULL
) {
7055 if(cltype372
>= var370
->type
->table_size
) {
7058 var371
= var370
->type
->type_table
[cltype372
] == idtype373
;
7063 var375
= varonce374
;
7067 var378
= string__NativeString__to_s_with_length(var376
, var377
);
7069 varonce374
= var375
;
7072 var380
= varonce379
;
7074 var381
= "vts_table->vts[HASH(";
7076 var383
= string__NativeString__to_s_with_length(var381
, var382
);
7078 varonce379
= var380
;
7081 var385
= varonce384
;
7083 var386
= "vts_table->mask, ";
7085 var388
= string__NativeString__to_s_with_length(var386
, var387
);
7087 varonce384
= var385
;
7089 var389
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(var_mtype
) /* mproperty on <var_mtype:MType(MVirtualType)>*/;
7090 var390
= ((val
* (*)(val
*))(var389
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var389
) /* const_color on <var389:MProperty>*/;
7092 var392
= varonce391
;
7096 var395
= string__NativeString__to_s_with_length(var393
, var394
);
7098 varonce391
= var392
;
7100 var396
= NEW_array__Array(&type_array__Arraykernel__Object
);
7101 { /* var396 = array_instance Array[Object] */
7103 var398
= NEW_array__NativeArray(var397
, &type_array__NativeArraykernel__Object
);
7104 ((struct instance_array__NativeArray
*)var398
)->values
[0] = (val
*) var_entry
;
7105 ((struct instance_array__NativeArray
*)var398
)->values
[1] = (val
*) var375
;
7106 ((struct instance_array__NativeArray
*)var398
)->values
[2] = (val
*) var_recv_ptr
;
7107 ((struct instance_array__NativeArray
*)var398
)->values
[3] = (val
*) var380
;
7108 ((struct instance_array__NativeArray
*)var398
)->values
[4] = (val
*) var_recv_ptr
;
7109 ((struct instance_array__NativeArray
*)var398
)->values
[5] = (val
*) var385
;
7110 ((struct instance_array__NativeArray
*)var398
)->values
[6] = (val
*) var390
;
7111 ((struct instance_array__NativeArray
*)var398
)->values
[7] = (val
*) var392
;
7112 ((void (*)(val
*, val
*, long))(var396
->class->vft
[COLOR_array__Array__with_native
]))(var396
, var398
, var397
) /* with_native on <var396:Array[Object]>*/;
7113 CHECK_NEW_array__Array(var396
);
7115 var399
= ((val
* (*)(val
*))(var396
->class->vft
[COLOR_string__Object__to_s
]))(var396
) /* to_s on <var396:Array[Object]>*/;
7116 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var399
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7119 var401
= varonce400
;
7123 var404
= string__NativeString__to_s_with_length(var402
, var403
);
7125 varonce400
= var401
;
7128 var406
= varonce405
;
7130 var407
= "vts_table->vts[";
7132 var409
= string__NativeString__to_s_with_length(var407
, var408
);
7134 varonce405
= var406
;
7136 var410
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(var_mtype
) /* mproperty on <var_mtype:MType(MVirtualType)>*/;
7137 var411
= ((val
* (*)(val
*))(var410
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var410
) /* const_color on <var410:MProperty>*/;
7139 var413
= varonce412
;
7143 var416
= string__NativeString__to_s_with_length(var414
, var415
);
7145 varonce412
= var413
;
7147 var417
= NEW_array__Array(&type_array__Arraykernel__Object
);
7148 { /* var417 = array_instance Array[Object] */
7150 var419
= NEW_array__NativeArray(var418
, &type_array__NativeArraykernel__Object
);
7151 ((struct instance_array__NativeArray
*)var419
)->values
[0] = (val
*) var_entry
;
7152 ((struct instance_array__NativeArray
*)var419
)->values
[1] = (val
*) var401
;
7153 ((struct instance_array__NativeArray
*)var419
)->values
[2] = (val
*) var_recv_ptr
;
7154 ((struct instance_array__NativeArray
*)var419
)->values
[3] = (val
*) var406
;
7155 ((struct instance_array__NativeArray
*)var419
)->values
[4] = (val
*) var411
;
7156 ((struct instance_array__NativeArray
*)var419
)->values
[5] = (val
*) var413
;
7157 ((void (*)(val
*, val
*, long))(var417
->class->vft
[COLOR_array__Array__with_native
]))(var417
, var419
, var418
) /* with_native on <var417:Array[Object]>*/;
7158 CHECK_NEW_array__Array(var417
);
7160 var420
= ((val
* (*)(val
*))(var417
->class->vft
[COLOR_string__Object__to_s
]))(var417
) /* to_s on <var417:Array[Object]>*/;
7161 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var420
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7164 var422
= varonce421
;
7168 var425
= string__NativeString__to_s_with_length(var423
, var424
);
7170 varonce421
= var422
;
7173 var427
= varonce426
;
7175 var428
= ".class->color;";
7177 var430
= string__NativeString__to_s_with_length(var428
, var429
);
7179 varonce426
= var427
;
7181 var431
= NEW_array__Array(&type_array__Arraykernel__Object
);
7182 { /* var431 = array_instance Array[Object] */
7184 var433
= NEW_array__NativeArray(var432
, &type_array__NativeArraykernel__Object
);
7185 ((struct instance_array__NativeArray
*)var433
)->values
[0] = (val
*) var_cltype
;
7186 ((struct instance_array__NativeArray
*)var433
)->values
[1] = (val
*) var422
;
7187 ((struct instance_array__NativeArray
*)var433
)->values
[2] = (val
*) var_entry
;
7188 ((struct instance_array__NativeArray
*)var433
)->values
[3] = (val
*) var427
;
7189 ((void (*)(val
*, val
*, long))(var431
->class->vft
[COLOR_array__Array__with_native
]))(var431
, var433
, var432
) /* with_native on <var431:Array[Object]>*/;
7190 CHECK_NEW_array__Array(var431
);
7192 var434
= ((val
* (*)(val
*))(var431
->class->vft
[COLOR_string__Object__to_s
]))(var431
) /* to_s on <var431:Array[Object]>*/;
7193 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var434
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7195 var436
= varonce435
;
7199 var439
= string__NativeString__to_s_with_length(var437
, var438
);
7201 varonce435
= var436
;
7204 var441
= varonce440
;
7206 var442
= ".class->id;";
7208 var444
= string__NativeString__to_s_with_length(var442
, var443
);
7210 varonce440
= var441
;
7212 var445
= NEW_array__Array(&type_array__Arraykernel__Object
);
7213 { /* var445 = array_instance Array[Object] */
7215 var447
= NEW_array__NativeArray(var446
, &type_array__NativeArraykernel__Object
);
7216 ((struct instance_array__NativeArray
*)var447
)->values
[0] = (val
*) var_idtype
;
7217 ((struct instance_array__NativeArray
*)var447
)->values
[1] = (val
*) var436
;
7218 ((struct instance_array__NativeArray
*)var447
)->values
[2] = (val
*) var_entry
;
7219 ((struct instance_array__NativeArray
*)var447
)->values
[3] = (val
*) var441
;
7220 ((void (*)(val
*, val
*, long))(var445
->class->vft
[COLOR_array__Array__with_native
]))(var445
, var447
, var446
) /* with_native on <var445:Array[Object]>*/;
7221 CHECK_NEW_array__Array(var445
);
7223 var448
= ((val
* (*)(val
*))(var445
->class->vft
[COLOR_string__Object__to_s
]))(var445
) /* to_s on <var445:Array[Object]>*/;
7224 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var448
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7225 var_450
= var_maybe_null
;
7226 if (var_maybe_null
){
7228 var452
= varonce451
;
7232 var455
= string__NativeString__to_s_with_length(var453
, var454
);
7234 varonce451
= var452
;
7236 var456
= ((short int (*)(val
*, val
*))(var_accept_null
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_accept_null
, var452
) /* == on <var_accept_null:String>*/;
7243 var458
= varonce457
;
7245 var459
= "is_nullable";
7247 var461
= string__NativeString__to_s_with_length(var459
, var460
);
7249 varonce457
= var458
;
7251 var462
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var458
) /* get_name on <self:SeparateErasureCompilerVisitor>*/;
7252 var_is_nullable
= var462
;
7254 var464
= varonce463
;
7256 var465
= "short int ";
7258 var467
= string__NativeString__to_s_with_length(var465
, var466
);
7260 varonce463
= var464
;
7263 var469
= varonce468
;
7267 var472
= string__NativeString__to_s_with_length(var470
, var471
);
7269 varonce468
= var469
;
7271 var473
= NEW_array__Array(&type_array__Arraykernel__Object
);
7272 { /* var473 = array_instance Array[Object] */
7274 var475
= NEW_array__NativeArray(var474
, &type_array__NativeArraykernel__Object
);
7275 ((struct instance_array__NativeArray
*)var475
)->values
[0] = (val
*) var464
;
7276 ((struct instance_array__NativeArray
*)var475
)->values
[1] = (val
*) var_is_nullable
;
7277 ((struct instance_array__NativeArray
*)var475
)->values
[2] = (val
*) var469
;
7278 ((void (*)(val
*, val
*, long))(var473
->class->vft
[COLOR_array__Array__with_native
]))(var473
, var475
, var474
) /* with_native on <var473:Array[Object]>*/;
7279 CHECK_NEW_array__Array(var473
);
7281 var476
= ((val
* (*)(val
*))(var473
->class->vft
[COLOR_string__Object__to_s
]))(var473
) /* to_s on <var473:Array[Object]>*/;
7282 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var476
) /* add_decl on <self:SeparateErasureCompilerVisitor>*/;
7284 var478
= varonce477
;
7288 var481
= string__NativeString__to_s_with_length(var479
, var480
);
7290 varonce477
= var478
;
7293 var483
= varonce482
;
7295 var484
= ".is_nullable;";
7297 var486
= string__NativeString__to_s_with_length(var484
, var485
);
7299 varonce482
= var483
;
7301 var487
= NEW_array__Array(&type_array__Arraykernel__Object
);
7302 { /* var487 = array_instance Array[Object] */
7304 var489
= NEW_array__NativeArray(var488
, &type_array__NativeArraykernel__Object
);
7305 ((struct instance_array__NativeArray
*)var489
)->values
[0] = (val
*) var_is_nullable
;
7306 ((struct instance_array__NativeArray
*)var489
)->values
[1] = (val
*) var478
;
7307 ((struct instance_array__NativeArray
*)var489
)->values
[2] = (val
*) var_entry
;
7308 ((struct instance_array__NativeArray
*)var489
)->values
[3] = (val
*) var483
;
7309 ((void (*)(val
*, val
*, long))(var487
->class->vft
[COLOR_array__Array__with_native
]))(var487
, var489
, var488
) /* with_native on <var487:Array[Object]>*/;
7310 CHECK_NEW_array__Array(var487
);
7312 var490
= ((val
* (*)(val
*))(var487
->class->vft
[COLOR_string__Object__to_s
]))(var487
) /* to_s on <var487:Array[Object]>*/;
7313 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var490
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7314 var491
= ((val
* (*)(val
*))(var_is_nullable
->class->vft
[COLOR_string__Object__to_s
]))(var_is_nullable
) /* to_s on <var_is_nullable:String>*/;
7315 var_accept_null
= var491
;
7318 var492
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
7319 var493
= ((val
* (*)(val
*))(var492
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var492
) /* modelbuilder on <var492:AbstractCompiler(SeparateCompiler)>*/;
7320 var494
= ((val
* (*)(val
*))(var493
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var493
) /* toolcontext on <var493:ModelBuilder>*/;
7321 var495
= ((val
* (*)(val
*))(var494
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_typing_test_metrics
]))(var494
) /* opt_typing_test_metrics on <var494:ToolContext>*/;
7322 var496
= ((val
* (*)(val
*))(var495
->class->vft
[COLOR_opts__Option__value
]))(var495
) /* value on <var495:OptionBool>*/;
7323 var497
= ((struct instance_kernel__Bool
*)var496
)->value
; /* autounbox from nullable Object to Bool */;
7325 var498
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
7326 var499
= ((val
* (*)(val
*))(var498
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__count_type_test_unresolved
]))(var498
) /* count_type_test_unresolved on <var498:AbstractCompiler(SeparateCompiler)>*/;
7329 var502
= ((val
* (*)(val
*, val
*))(var_500
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_500
, var_501
) /* [] on <var_500:HashMap[String, Int]>*/;
7331 { /* Inline kernel#Int#+ (var502,var503) */
7332 var506
= ((struct instance_kernel__Int
*)var502
)->value
; /* autounbox from nullable Object to Int */;
7333 var507
= var506
+ var503
;
7336 RET_LABEL505
:(void)0;
7338 var508
= BOX_kernel__Int(var504
); /* autobox from Int to nullable Object */
7339 ((void (*)(val
*, val
*, val
*))(var_500
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_500
, var_501
, var508
) /* []= on <var_500:HashMap[String, Int]>*/;
7341 var510
= varonce509
;
7343 var511
= "count_type_test_unresolved_";
7345 var513
= string__NativeString__to_s_with_length(var511
, var512
);
7347 varonce509
= var510
;
7350 var515
= varonce514
;
7354 var518
= string__NativeString__to_s_with_length(var516
, var517
);
7356 varonce514
= var515
;
7358 var519
= NEW_array__Array(&type_array__Arraykernel__Object
);
7359 { /* var519 = array_instance Array[Object] */
7361 var521
= NEW_array__NativeArray(var520
, &type_array__NativeArraykernel__Object
);
7362 ((struct instance_array__NativeArray
*)var521
)->values
[0] = (val
*) var510
;
7363 ((struct instance_array__NativeArray
*)var521
)->values
[1] = (val
*) var_tag
;
7364 ((struct instance_array__NativeArray
*)var521
)->values
[2] = (val
*) var515
;
7365 ((void (*)(val
*, val
*, long))(var519
->class->vft
[COLOR_array__Array__with_native
]))(var519
, var521
, var520
) /* with_native on <var519:Array[Object]>*/;
7366 CHECK_NEW_array__Array(var519
);
7368 var522
= ((val
* (*)(val
*))(var519
->class->vft
[COLOR_string__Object__to_s
]))(var519
) /* to_s on <var519:Array[Object]>*/;
7369 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var522
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7374 var524
= varonce523
;
7376 var525
= "type_test(";
7378 var527
= string__NativeString__to_s_with_length(var525
, var526
);
7380 varonce523
= var524
;
7382 var528
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_string__Object__inspect
]))(var_value
) /* inspect on <var_value:RuntimeVariable>*/;
7384 var530
= varonce529
;
7388 var533
= string__NativeString__to_s_with_length(var531
, var532
);
7390 varonce529
= var530
;
7393 var535
= varonce534
;
7397 var538
= string__NativeString__to_s_with_length(var536
, var537
);
7399 varonce534
= var535
;
7401 var539
= NEW_array__Array(&type_array__Arraykernel__Object
);
7402 { /* var539 = array_instance Array[Object] */
7404 var541
= NEW_array__NativeArray(var540
, &type_array__NativeArraykernel__Object
);
7405 ((struct instance_array__NativeArray
*)var541
)->values
[0] = (val
*) var524
;
7406 ((struct instance_array__NativeArray
*)var541
)->values
[1] = (val
*) var528
;
7407 ((struct instance_array__NativeArray
*)var541
)->values
[2] = (val
*) var530
;
7408 ((struct instance_array__NativeArray
*)var541
)->values
[3] = (val
*) var_mtype
;
7409 ((struct instance_array__NativeArray
*)var541
)->values
[4] = (val
*) var535
;
7410 ((void (*)(val
*, val
*, long))(var539
->class->vft
[COLOR_array__Array__with_native
]))(var539
, var541
, var540
) /* with_native on <var539:Array[Object]>*/;
7411 CHECK_NEW_array__Array(var539
);
7413 var542
= ((val
* (*)(val
*))(var539
->class->vft
[COLOR_string__Object__to_s
]))(var539
) /* to_s on <var539:Array[Object]>*/;
7414 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__debug
]))(self
, var542
) /* debug on <self:SeparateErasureCompilerVisitor>*/;
7415 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Aborted", "src/separate_erasure_compiler.nit", 553);
7419 if (var_maybe_null
){
7421 var544
= varonce543
;
7425 var547
= string__NativeString__to_s_with_length(var545
, var546
);
7427 varonce543
= var544
;
7430 var549
= varonce548
;
7432 var550
= " == NULL) {";
7434 var552
= string__NativeString__to_s_with_length(var550
, var551
);
7436 varonce548
= var549
;
7438 var553
= NEW_array__Array(&type_array__Arraykernel__Object
);
7439 { /* var553 = array_instance Array[Object] */
7441 var555
= NEW_array__NativeArray(var554
, &type_array__NativeArraykernel__Object
);
7442 ((struct instance_array__NativeArray
*)var555
)->values
[0] = (val
*) var544
;
7443 ((struct instance_array__NativeArray
*)var555
)->values
[1] = (val
*) var_value
;
7444 ((struct instance_array__NativeArray
*)var555
)->values
[2] = (val
*) var549
;
7445 ((void (*)(val
*, val
*, long))(var553
->class->vft
[COLOR_array__Array__with_native
]))(var553
, var555
, var554
) /* with_native on <var553:Array[Object]>*/;
7446 CHECK_NEW_array__Array(var553
);
7448 var556
= ((val
* (*)(val
*))(var553
->class->vft
[COLOR_string__Object__to_s
]))(var553
) /* to_s on <var553:Array[Object]>*/;
7449 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var556
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7451 var558
= varonce557
;
7455 var561
= string__NativeString__to_s_with_length(var559
, var560
);
7457 varonce557
= var558
;
7460 var563
= varonce562
;
7464 var566
= string__NativeString__to_s_with_length(var564
, var565
);
7466 varonce562
= var563
;
7468 var567
= NEW_array__Array(&type_array__Arraykernel__Object
);
7469 { /* var567 = array_instance Array[Object] */
7471 var569
= NEW_array__NativeArray(var568
, &type_array__NativeArraykernel__Object
);
7472 ((struct instance_array__NativeArray
*)var569
)->values
[0] = (val
*) var_res
;
7473 ((struct instance_array__NativeArray
*)var569
)->values
[1] = (val
*) var558
;
7474 ((struct instance_array__NativeArray
*)var569
)->values
[2] = (val
*) var_accept_null
;
7475 ((struct instance_array__NativeArray
*)var569
)->values
[3] = (val
*) var563
;
7476 ((void (*)(val
*, val
*, long))(var567
->class->vft
[COLOR_array__Array__with_native
]))(var567
, var569
, var568
) /* with_native on <var567:Array[Object]>*/;
7477 CHECK_NEW_array__Array(var567
);
7479 var570
= ((val
* (*)(val
*))(var567
->class->vft
[COLOR_string__Object__to_s
]))(var567
) /* to_s on <var567:Array[Object]>*/;
7480 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var570
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7482 var572
= varonce571
;
7484 var573
= "} else {";
7486 var575
= string__NativeString__to_s_with_length(var573
, var574
);
7488 varonce571
= var572
;
7490 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var572
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7493 var576
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateErasureCompilerVisitor>*/;
7494 /* <var576:AbstractCompiler(SeparateCompiler)> isa SeparateErasureCompiler */
7495 cltype578
= type_separate_erasure_compiler__SeparateErasureCompiler
.color
;
7496 idtype579
= type_separate_erasure_compiler__SeparateErasureCompiler
.id
;
7497 if(cltype578
>= var576
->type
->table_size
) {
7500 var577
= var576
->type
->type_table
[cltype578
] == idtype579
;
7503 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_erasure_compiler.nit", 562);
7506 var580
= ((val
* (*)(val
*))(var576
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompiler__class_layout
]))(var576
) /* class_layout on <var576:SeparateCompiler(SeparateErasureCompiler)>*/;
7507 /* <var580:nullable Layout[MClass]> isa PHLayout[MClass, MClass] */
7508 cltype582
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.color
;
7509 idtype583
= type_layout_builders__PHLayoutmodel__MClassmodel__MClass
.id
;
7510 if(var580
== NULL
) {
7513 if(cltype582
>= var580
->type
->table_size
) {
7516 var581
= var580
->type
->type_table
[cltype582
] == idtype583
;
7521 var585
= varonce584
;
7523 var586
= " = HASH(";
7525 var588
= string__NativeString__to_s_with_length(var586
, var587
);
7527 varonce584
= var585
;
7530 var590
= varonce589
;
7534 var593
= string__NativeString__to_s_with_length(var591
, var592
);
7536 varonce589
= var590
;
7539 var595
= varonce594
;
7543 var598
= string__NativeString__to_s_with_length(var596
, var597
);
7545 varonce594
= var595
;
7547 var599
= NEW_array__Array(&type_array__Arraykernel__Object
);
7548 { /* var599 = array_instance Array[Object] */
7550 var601
= NEW_array__NativeArray(var600
, &type_array__NativeArraykernel__Object
);
7551 ((struct instance_array__NativeArray
*)var601
)->values
[0] = (val
*) var_cltype
;
7552 ((struct instance_array__NativeArray
*)var601
)->values
[1] = (val
*) var585
;
7553 ((struct instance_array__NativeArray
*)var601
)->values
[2] = (val
*) var_class_ptr
;
7554 ((struct instance_array__NativeArray
*)var601
)->values
[3] = (val
*) var590
;
7555 ((struct instance_array__NativeArray
*)var601
)->values
[4] = (val
*) var_idtype
;
7556 ((struct instance_array__NativeArray
*)var601
)->values
[5] = (val
*) var595
;
7557 ((void (*)(val
*, val
*, long))(var599
->class->vft
[COLOR_array__Array__with_native
]))(var599
, var601
, var600
) /* with_native on <var599:Array[Object]>*/;
7558 CHECK_NEW_array__Array(var599
);
7560 var602
= ((val
* (*)(val
*))(var599
->class->vft
[COLOR_string__Object__to_s
]))(var599
) /* to_s on <var599:Array[Object]>*/;
7561 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var602
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7565 var604
= varonce603
;
7569 var607
= string__NativeString__to_s_with_length(var605
, var606
);
7571 varonce603
= var604
;
7574 var609
= varonce608
;
7578 var612
= string__NativeString__to_s_with_length(var610
, var611
);
7580 varonce608
= var609
;
7583 var614
= varonce613
;
7585 var615
= "type_table->size) {";
7587 var617
= string__NativeString__to_s_with_length(var615
, var616
);
7589 varonce613
= var614
;
7591 var618
= NEW_array__Array(&type_array__Arraykernel__Object
);
7592 { /* var618 = array_instance Array[Object] */
7594 var620
= NEW_array__NativeArray(var619
, &type_array__NativeArraykernel__Object
);
7595 ((struct instance_array__NativeArray
*)var620
)->values
[0] = (val
*) var604
;
7596 ((struct instance_array__NativeArray
*)var620
)->values
[1] = (val
*) var_cltype
;
7597 ((struct instance_array__NativeArray
*)var620
)->values
[2] = (val
*) var609
;
7598 ((struct instance_array__NativeArray
*)var620
)->values
[3] = (val
*) var_class_ptr
;
7599 ((struct instance_array__NativeArray
*)var620
)->values
[4] = (val
*) var614
;
7600 ((void (*)(val
*, val
*, long))(var618
->class->vft
[COLOR_array__Array__with_native
]))(var618
, var620
, var619
) /* with_native on <var618:Array[Object]>*/;
7601 CHECK_NEW_array__Array(var618
);
7603 var621
= ((val
* (*)(val
*))(var618
->class->vft
[COLOR_string__Object__to_s
]))(var618
) /* to_s on <var618:Array[Object]>*/;
7604 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var621
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7606 var623
= varonce622
;
7610 var626
= string__NativeString__to_s_with_length(var624
, var625
);
7612 varonce622
= var623
;
7614 var627
= NEW_array__Array(&type_array__Arraykernel__Object
);
7615 { /* var627 = array_instance Array[Object] */
7617 var629
= NEW_array__NativeArray(var628
, &type_array__NativeArraykernel__Object
);
7618 ((struct instance_array__NativeArray
*)var629
)->values
[0] = (val
*) var_res
;
7619 ((struct instance_array__NativeArray
*)var629
)->values
[1] = (val
*) var623
;
7620 ((void (*)(val
*, val
*, long))(var627
->class->vft
[COLOR_array__Array__with_native
]))(var627
, var629
, var628
) /* with_native on <var627:Array[Object]>*/;
7621 CHECK_NEW_array__Array(var627
);
7623 var630
= ((val
* (*)(val
*))(var627
->class->vft
[COLOR_string__Object__to_s
]))(var627
) /* to_s on <var627:Array[Object]>*/;
7624 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var630
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7626 var632
= varonce631
;
7628 var633
= "} else {";
7630 var635
= string__NativeString__to_s_with_length(var633
, var634
);
7632 varonce631
= var632
;
7634 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var632
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7636 var637
= varonce636
;
7640 var640
= string__NativeString__to_s_with_length(var638
, var639
);
7642 varonce636
= var637
;
7645 var642
= varonce641
;
7647 var643
= "type_table->table[";
7649 var645
= string__NativeString__to_s_with_length(var643
, var644
);
7651 varonce641
= var642
;
7654 var647
= varonce646
;
7658 var650
= string__NativeString__to_s_with_length(var648
, var649
);
7660 varonce646
= var647
;
7663 var652
= varonce651
;
7667 var655
= string__NativeString__to_s_with_length(var653
, var654
);
7669 varonce651
= var652
;
7671 var656
= NEW_array__Array(&type_array__Arraykernel__Object
);
7672 { /* var656 = array_instance Array[Object] */
7674 var658
= NEW_array__NativeArray(var657
, &type_array__NativeArraykernel__Object
);
7675 ((struct instance_array__NativeArray
*)var658
)->values
[0] = (val
*) var_res
;
7676 ((struct instance_array__NativeArray
*)var658
)->values
[1] = (val
*) var637
;
7677 ((struct instance_array__NativeArray
*)var658
)->values
[2] = (val
*) var_class_ptr
;
7678 ((struct instance_array__NativeArray
*)var658
)->values
[3] = (val
*) var642
;
7679 ((struct instance_array__NativeArray
*)var658
)->values
[4] = (val
*) var_cltype
;
7680 ((struct instance_array__NativeArray
*)var658
)->values
[5] = (val
*) var647
;
7681 ((struct instance_array__NativeArray
*)var658
)->values
[6] = (val
*) var_idtype
;
7682 ((struct instance_array__NativeArray
*)var658
)->values
[7] = (val
*) var652
;
7683 ((void (*)(val
*, val
*, long))(var656
->class->vft
[COLOR_array__Array__with_native
]))(var656
, var658
, var657
) /* with_native on <var656:Array[Object]>*/;
7684 CHECK_NEW_array__Array(var656
);
7686 var659
= ((val
* (*)(val
*))(var656
->class->vft
[COLOR_string__Object__to_s
]))(var656
) /* to_s on <var656:Array[Object]>*/;
7687 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var659
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7689 var661
= varonce660
;
7693 var664
= string__NativeString__to_s_with_length(var662
, var663
);
7695 varonce660
= var661
;
7697 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var661
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7698 if (var_maybe_null
){
7700 var666
= varonce665
;
7704 var669
= string__NativeString__to_s_with_length(var667
, var668
);
7706 varonce665
= var666
;
7708 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var666
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7716 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#type_test for (self: Object, RuntimeVariable, MType, String): RuntimeVariable */
7717 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7718 val
* var
/* : RuntimeVariable */;
7719 val
* var1
/* : RuntimeVariable */;
7720 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__type_test(self
, p0
, p1
, p2
);
7725 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#class_name_string for (self: SeparateErasureCompilerVisitor, RuntimeVariable): String */
7726 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
7727 val
* var
/* : String */;
7728 val
* var_value
/* var value: RuntimeVariable */;
7729 static val
* varonce
;
7730 val
* var1
/* : String */;
7731 char* var2
/* : NativeString */;
7732 long var3
/* : Int */;
7733 val
* var4
/* : String */;
7734 val
* var5
/* : String */;
7735 val
* var_res
/* var res: String */;
7736 static val
* varonce6
;
7737 val
* var7
/* : String */;
7738 char* var8
/* : NativeString */;
7739 long var9
/* : Int */;
7740 val
* var10
/* : String */;
7741 static val
* varonce11
;
7742 val
* var12
/* : String */;
7743 char* var13
/* : NativeString */;
7744 long var14
/* : Int */;
7745 val
* var15
/* : String */;
7746 val
* var16
/* : Array[Object] */;
7747 long var17
/* : Int */;
7748 val
* var18
/* : NativeArray[Object] */;
7749 val
* var19
/* : String */;
7750 val
* var20
/* : MType */;
7751 val
* var21
/* : String */;
7752 static val
* varonce22
;
7753 val
* var23
/* : String */;
7754 char* var24
/* : NativeString */;
7755 long var25
/* : Int */;
7756 val
* var26
/* : String */;
7757 short int var27
/* : Bool */;
7758 static val
* varonce28
;
7759 val
* var29
/* : String */;
7760 char* var30
/* : NativeString */;
7761 long var31
/* : Int */;
7762 val
* var32
/* : String */;
7763 static val
* varonce33
;
7764 val
* var34
/* : String */;
7765 char* var35
/* : NativeString */;
7766 long var36
/* : Int */;
7767 val
* var37
/* : String */;
7768 static val
* varonce38
;
7769 val
* var39
/* : String */;
7770 char* var40
/* : NativeString */;
7771 long var41
/* : Int */;
7772 val
* var42
/* : String */;
7773 val
* var43
/* : Array[Object] */;
7774 long var44
/* : Int */;
7775 val
* var45
/* : NativeArray[Object] */;
7776 val
* var46
/* : String */;
7777 static val
* varonce47
;
7778 val
* var48
/* : String */;
7779 char* var49
/* : NativeString */;
7780 long var50
/* : Int */;
7781 val
* var51
/* : String */;
7782 val
* var52
/* : MType */;
7783 val
* var53
/* : String */;
7784 val
* var54
/* : Array[Object] */;
7785 long var55
/* : Int */;
7786 val
* var56
/* : NativeArray[Object] */;
7787 val
* var57
/* : String */;
7788 static val
* varonce58
;
7789 val
* var59
/* : String */;
7790 char* var60
/* : NativeString */;
7791 long var61
/* : Int */;
7792 val
* var62
/* : String */;
7793 val
* var63
/* : MType */;
7794 val
* var64
/* : String */;
7795 static val
* varonce65
;
7796 val
* var66
/* : String */;
7797 char* var67
/* : NativeString */;
7798 long var68
/* : Int */;
7799 val
* var69
/* : String */;
7800 val
* var70
/* : Array[Object] */;
7801 long var71
/* : Int */;
7802 val
* var72
/* : NativeArray[Object] */;
7803 val
* var73
/* : String */;
7808 var2
= "var_class_name";
7810 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7814 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(self
, var1
) /* get_name on <self:SeparateErasureCompilerVisitor>*/;
7819 var8
= "const char* ";
7821 var10
= string__NativeString__to_s_with_length(var8
, var9
);
7830 var15
= string__NativeString__to_s_with_length(var13
, var14
);
7834 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
7835 { /* var16 = array_instance Array[Object] */
7837 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
7838 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
7839 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var_res
;
7840 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
7841 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
7842 CHECK_NEW_array__Array(var16
);
7844 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
7845 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(self
, var19
) /* add_decl on <self:SeparateErasureCompilerVisitor>*/;
7846 var20
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
7847 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var20
) /* ctype on <var20:MType>*/;
7853 var26
= string__NativeString__to_s_with_length(var24
, var25
);
7857 var27
= ((short int (*)(val
*, val
*))(var21
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var21
, var23
) /* == on <var21:String>*/;
7864 var32
= string__NativeString__to_s_with_length(var30
, var31
);
7871 var35
= " == NULL ? \"null\" : ";
7873 var37
= string__NativeString__to_s_with_length(var35
, var36
);
7880 var40
= "->class->name;";
7882 var42
= string__NativeString__to_s_with_length(var40
, var41
);
7886 var43
= NEW_array__Array(&type_array__Arraykernel__Object
);
7887 { /* var43 = array_instance Array[Object] */
7889 var45
= NEW_array__NativeArray(var44
, &type_array__NativeArraykernel__Object
);
7890 ((struct instance_array__NativeArray
*)var45
)->values
[0] = (val
*) var_res
;
7891 ((struct instance_array__NativeArray
*)var45
)->values
[1] = (val
*) var29
;
7892 ((struct instance_array__NativeArray
*)var45
)->values
[2] = (val
*) var_value
;
7893 ((struct instance_array__NativeArray
*)var45
)->values
[3] = (val
*) var34
;
7894 ((struct instance_array__NativeArray
*)var45
)->values
[4] = (val
*) var_value
;
7895 ((struct instance_array__NativeArray
*)var45
)->values
[5] = (val
*) var39
;
7896 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[Object]>*/;
7897 CHECK_NEW_array__Array(var43
);
7899 var46
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_string__Object__to_s
]))(var43
) /* to_s on <var43:Array[Object]>*/;
7900 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var46
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7907 var51
= string__NativeString__to_s_with_length(var49
, var50
);
7911 var52
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
7912 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var52
) /* c_name on <var52:MType>*/;
7913 var54
= NEW_array__Array(&type_array__Arraykernel__Object
);
7914 { /* var54 = array_instance Array[Object] */
7916 var56
= NEW_array__NativeArray(var55
, &type_array__NativeArraykernel__Object
);
7917 ((struct instance_array__NativeArray
*)var56
)->values
[0] = (val
*) var48
;
7918 ((struct instance_array__NativeArray
*)var56
)->values
[1] = (val
*) var53
;
7919 ((void (*)(val
*, val
*, long))(var54
->class->vft
[COLOR_array__Array__with_native
]))(var54
, var56
, var55
) /* with_native on <var54:Array[Object]>*/;
7920 CHECK_NEW_array__Array(var54
);
7922 var57
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_string__Object__to_s
]))(var54
) /* to_s on <var54:Array[Object]>*/;
7923 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var57
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
7927 var60
= " = class_";
7929 var62
= string__NativeString__to_s_with_length(var60
, var61
);
7933 var63
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
7934 var64
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var63
) /* c_name on <var63:MType>*/;
7940 var69
= string__NativeString__to_s_with_length(var67
, var68
);
7944 var70
= NEW_array__Array(&type_array__Arraykernel__Object
);
7945 { /* var70 = array_instance Array[Object] */
7947 var72
= NEW_array__NativeArray(var71
, &type_array__NativeArraykernel__Object
);
7948 ((struct instance_array__NativeArray
*)var72
)->values
[0] = (val
*) var_res
;
7949 ((struct instance_array__NativeArray
*)var72
)->values
[1] = (val
*) var59
;
7950 ((struct instance_array__NativeArray
*)var72
)->values
[2] = (val
*) var64
;
7951 ((struct instance_array__NativeArray
*)var72
)->values
[3] = (val
*) var66
;
7952 ((void (*)(val
*, val
*, long))(var70
->class->vft
[COLOR_array__Array__with_native
]))(var70
, var72
, var71
) /* with_native on <var70:Array[Object]>*/;
7953 CHECK_NEW_array__Array(var70
);
7955 var73
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_string__Object__to_s
]))(var70
) /* to_s on <var70:Array[Object]>*/;
7956 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var73
) /* add on <self:SeparateErasureCompilerVisitor>*/;
7963 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#class_name_string for (self: Object, RuntimeVariable): String */
7964 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
7965 val
* var
/* : String */;
7966 val
* var1
/* : String */;
7967 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__class_name_string(self
, p0
);
7972 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#array_instance for (self: SeparateErasureCompilerVisitor, Array[RuntimeVariable], MType): RuntimeVariable */
7973 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__array_instance(val
* self
, val
* p0
, val
* p1
) {
7974 val
* var
/* : RuntimeVariable */;
7975 val
* var_array
/* var array: Array[RuntimeVariable] */;
7976 val
* var_elttype
/* var elttype: MType */;
7977 static val
* varonce
;
7978 val
* var1
/* : String */;
7979 char* var2
/* : NativeString */;
7980 long var3
/* : Int */;
7981 val
* var4
/* : String */;
7982 val
* var5
/* : MClass */;
7983 val
* var_nclass
/* var nclass: MClass */;
7984 val
* var6
/* : MType */;
7985 static val
* varonce7
;
7986 val
* var8
/* : String */;
7987 char* var9
/* : NativeString */;
7988 long var10
/* : Int */;
7989 val
* var11
/* : String */;
7990 val
* var12
/* : MClass */;
7991 val
* var13
/* : Array[MType] */;
7992 long var14
/* : Int */;
7993 val
* var15
/* : NativeArray[MType] */;
7994 val
* var16
/* : MClassType */;
7995 val
* var_arraytype
/* var arraytype: MClassType */;
7996 val
* var17
/* : RuntimeVariable */;
7997 val
* var_res
/* var res: RuntimeVariable */;
7998 static val
* varonce18
;
7999 val
* var19
/* : String */;
8000 char* var20
/* : NativeString */;
8001 long var21
/* : Int */;
8002 val
* var22
/* : String */;
8003 static val
* varonce23
;
8004 val
* var24
/* : String */;
8005 char* var25
/* : NativeString */;
8006 long var26
/* : Int */;
8007 val
* var27
/* : String */;
8008 static val
* varonce28
;
8009 val
* var29
/* : String */;
8010 char* var30
/* : NativeString */;
8011 long var31
/* : Int */;
8012 val
* var32
/* : String */;
8013 val
* var33
/* : Array[Object] */;
8014 long var34
/* : Int */;
8015 val
* var35
/* : NativeArray[Object] */;
8016 val
* var36
/* : String */;
8017 static val
* varonce37
;
8018 val
* var38
/* : String */;
8019 char* var39
/* : NativeString */;
8020 long var40
/* : Int */;
8021 val
* var41
/* : String */;
8022 val
* var42
/* : MClass */;
8023 val
* var43
/* : Array[MType] */;
8024 long var44
/* : Int */;
8025 val
* var45
/* : NativeArray[MType] */;
8026 val
* var46
/* : MClassType */;
8027 val
* var47
/* : RuntimeVariable */;
8028 val
* var_nat
/* var nat: RuntimeVariable */;
8029 short int var48
/* : Bool */;
8030 static val
* varonce49
;
8031 val
* var50
/* : String */;
8032 char* var51
/* : NativeString */;
8033 long var52
/* : Int */;
8034 val
* var53
/* : String */;
8035 val
* var54
/* : String */;
8036 val
* var55
/* : Array[Object] */;
8037 long var56
/* : Int */;
8038 val
* var57
/* : NativeArray[Object] */;
8039 val
* var58
/* : String */;
8040 static val
* varonce59
;
8041 val
* var60
/* : String */;
8042 char* var61
/* : NativeString */;
8043 long var62
/* : Int */;
8044 val
* var63
/* : String */;
8045 val
* var64
/* : String */;
8046 static val
* varonce65
;
8047 val
* var66
/* : String */;
8048 char* var67
/* : NativeString */;
8049 long var68
/* : Int */;
8050 val
* var69
/* : String */;
8051 long var70
/* : Int */;
8052 static val
* varonce71
;
8053 val
* var72
/* : String */;
8054 char* var73
/* : NativeString */;
8055 long var74
/* : Int */;
8056 val
* var75
/* : String */;
8057 val
* var76
/* : Array[Object] */;
8058 long var77
/* : Int */;
8059 val
* var78
/* : NativeArray[Object] */;
8060 val
* var79
/* : Object */;
8061 val
* var80
/* : String */;
8062 val
* var81
/* : Range[Int] */;
8063 long var82
/* : Int */;
8064 long var83
/* : Int */;
8065 val
* var84
/* : Discrete */;
8066 val
* var85
/* : Discrete */;
8067 val
* var86
/* : Iterator[nullable Object] */;
8068 short int var87
/* : Bool */;
8069 val
* var88
/* : nullable Object */;
8070 long var_i
/* var i: Int */;
8071 long var89
/* : Int */;
8072 val
* var90
/* : nullable Object */;
8073 val
* var91
/* : MClassType */;
8074 val
* var92
/* : RuntimeVariable */;
8075 val
* var_r
/* var r: RuntimeVariable */;
8076 static val
* varonce93
;
8077 val
* var94
/* : String */;
8078 char* var95
/* : NativeString */;
8079 long var96
/* : Int */;
8080 val
* var97
/* : String */;
8081 val
* var98
/* : String */;
8082 static val
* varonce99
;
8083 val
* var100
/* : String */;
8084 char* var101
/* : NativeString */;
8085 long var102
/* : Int */;
8086 val
* var103
/* : String */;
8087 static val
* varonce104
;
8088 val
* var105
/* : String */;
8089 char* var106
/* : NativeString */;
8090 long var107
/* : Int */;
8091 val
* var108
/* : String */;
8092 static val
* varonce109
;
8093 val
* var110
/* : String */;
8094 char* var111
/* : NativeString */;
8095 long var112
/* : Int */;
8096 val
* var113
/* : String */;
8097 static val
* varonce114
;
8098 val
* var115
/* : String */;
8099 char* var116
/* : NativeString */;
8100 long var117
/* : Int */;
8101 val
* var118
/* : String */;
8102 val
* var119
/* : Array[Object] */;
8103 long var120
/* : Int */;
8104 val
* var121
/* : NativeArray[Object] */;
8105 val
* var122
/* : Object */;
8106 val
* var123
/* : String */;
8107 long var124
/* : Int */;
8108 val
* var125
/* : RuntimeVariable */;
8109 val
* var_length
/* var length: RuntimeVariable */;
8110 static val
* varonce126
;
8111 val
* var127
/* : String */;
8112 char* var128
/* : NativeString */;
8113 long var129
/* : Int */;
8114 val
* var130
/* : String */;
8115 val
* var131
/* : MMethod */;
8116 val
* var132
/* : Array[RuntimeVariable] */;
8117 long var133
/* : Int */;
8118 val
* var134
/* : NativeArray[RuntimeVariable] */;
8119 val
* var135
/* : nullable RuntimeVariable */;
8120 static val
* varonce136
;
8121 val
* var137
/* : String */;
8122 char* var138
/* : NativeString */;
8123 long var139
/* : Int */;
8124 val
* var140
/* : String */;
8130 var2
= "NativeArray";
8132 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8136 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_class
]))(self
, var1
) /* get_class on <self:SeparateErasureCompilerVisitor>*/;
8138 var6
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__anchor
]))(self
, var_elttype
) /* anchor on <self:SeparateErasureCompilerVisitor>*/;
8145 var11
= string__NativeString__to_s_with_length(var9
, var10
);
8149 var12
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_class
]))(self
, var8
) /* get_class on <self:SeparateErasureCompilerVisitor>*/;
8150 var13
= NEW_array__Array(&type_array__Arraymodel__MType
);
8151 { /* var13 = array_instance Array[MType] */
8153 var15
= NEW_array__NativeArray(var14
, &type_array__NativeArraymodel__MType
);
8154 ((struct instance_array__NativeArray
*)var15
)->values
[0] = (val
*) var_elttype
;
8155 ((void (*)(val
*, val
*, long))(var13
->class->vft
[COLOR_array__Array__with_native
]))(var13
, var15
, var14
) /* with_native on <var13:Array[MType]>*/;
8156 CHECK_NEW_array__Array(var13
);
8158 var16
= ((val
* (*)(val
*, val
*))(var12
->class->vft
[COLOR_model__MClass__get_mtype
]))(var12
, var13
) /* get_mtype on <var12:MClass>*/;
8159 var_arraytype
= var16
;
8160 var17
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init_instance
]))(self
, var_arraytype
) /* init_instance on <self:SeparateErasureCompilerVisitor>*/;
8167 var22
= string__NativeString__to_s_with_length(var20
, var21
);
8174 var25
= " = array_instance Array[";
8176 var27
= string__NativeString__to_s_with_length(var25
, var26
);
8185 var32
= string__NativeString__to_s_with_length(var30
, var31
);
8189 var33
= NEW_array__Array(&type_array__Arraykernel__Object
);
8190 { /* var33 = array_instance Array[Object] */
8192 var35
= NEW_array__NativeArray(var34
, &type_array__NativeArraykernel__Object
);
8193 ((struct instance_array__NativeArray
*)var35
)->values
[0] = (val
*) var19
;
8194 ((struct instance_array__NativeArray
*)var35
)->values
[1] = (val
*) var_res
;
8195 ((struct instance_array__NativeArray
*)var35
)->values
[2] = (val
*) var24
;
8196 ((struct instance_array__NativeArray
*)var35
)->values
[3] = (val
*) var_elttype
;
8197 ((struct instance_array__NativeArray
*)var35
)->values
[4] = (val
*) var29
;
8198 ((void (*)(val
*, val
*, long))(var33
->class->vft
[COLOR_array__Array__with_native
]))(var33
, var35
, var34
) /* with_native on <var33:Array[Object]>*/;
8199 CHECK_NEW_array__Array(var33
);
8201 var36
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_string__Object__to_s
]))(var33
) /* to_s on <var33:Array[Object]>*/;
8202 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var36
) /* add on <self:SeparateErasureCompilerVisitor>*/;
8206 var39
= "NativeArray";
8208 var41
= string__NativeString__to_s_with_length(var39
, var40
);
8212 var42
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_class
]))(self
, var38
) /* get_class on <self:SeparateErasureCompilerVisitor>*/;
8213 var43
= NEW_array__Array(&type_array__Arraymodel__MType
);
8214 { /* var43 = array_instance Array[MType] */
8216 var45
= NEW_array__NativeArray(var44
, &type_array__NativeArraymodel__MType
);
8217 ((struct instance_array__NativeArray
*)var45
)->values
[0] = (val
*) var_elttype
;
8218 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[MType]>*/;
8219 CHECK_NEW_array__Array(var43
);
8221 var46
= ((val
* (*)(val
*, val
*))(var42
->class->vft
[COLOR_model__MClass__get_mtype
]))(var42
, var43
) /* get_mtype on <var42:MClass>*/;
8222 var47
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var46
) /* new_var on <self:SeparateErasureCompilerVisitor>*/;
8225 ((void (*)(val
*, short int))(var_nat
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_nat
, var48
) /* is_exact= on <var_nat:RuntimeVariable>*/;
8231 var53
= string__NativeString__to_s_with_length(var51
, var52
);
8235 var54
= ((val
* (*)(val
*))(var_nclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_nclass
) /* c_name on <var_nclass:MClass>*/;
8236 var55
= NEW_array__Array(&type_array__Arraykernel__Object
);
8237 { /* var55 = array_instance Array[Object] */
8239 var57
= NEW_array__NativeArray(var56
, &type_array__NativeArraykernel__Object
);
8240 ((struct instance_array__NativeArray
*)var57
)->values
[0] = (val
*) var50
;
8241 ((struct instance_array__NativeArray
*)var57
)->values
[1] = (val
*) var54
;
8242 ((void (*)(val
*, val
*, long))(var55
->class->vft
[COLOR_array__Array__with_native
]))(var55
, var57
, var56
) /* with_native on <var55:Array[Object]>*/;
8243 CHECK_NEW_array__Array(var55
);
8245 var58
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_string__Object__to_s
]))(var55
) /* to_s on <var55:Array[Object]>*/;
8246 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var58
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
8252 var63
= string__NativeString__to_s_with_length(var61
, var62
);
8256 var64
= ((val
* (*)(val
*))(var_nclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_nclass
) /* c_name on <var_nclass:MClass>*/;
8262 var69
= string__NativeString__to_s_with_length(var67
, var68
);
8266 var70
= ((long (*)(val
*))(var_array
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_array
) /* length on <var_array:Array[RuntimeVariable]>*/;
8272 var75
= string__NativeString__to_s_with_length(var73
, var74
);
8276 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
8277 { /* var76 = array_instance Array[Object] */
8279 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
8280 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var_nat
;
8281 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var60
;
8282 ((struct instance_array__NativeArray
*)var78
)->values
[2] = (val
*) var64
;
8283 ((struct instance_array__NativeArray
*)var78
)->values
[3] = (val
*) var66
;
8284 var79
= BOX_kernel__Int(var70
); /* autobox from Int to Object */
8285 ((struct instance_array__NativeArray
*)var78
)->values
[4] = (val
*) var79
;
8286 ((struct instance_array__NativeArray
*)var78
)->values
[5] = (val
*) var72
;
8287 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
8288 CHECK_NEW_array__Array(var76
);
8290 var80
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
8291 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var80
) /* add on <self:SeparateErasureCompilerVisitor>*/;
8292 var81
= NEW_range__Range(&type_range__Rangekernel__Int
);
8294 var83
= ((long (*)(val
*))(var_array
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_array
) /* length on <var_array:Array[RuntimeVariable]>*/;
8295 var84
= BOX_kernel__Int(var82
); /* autobox from Int to Discrete */
8296 var85
= BOX_kernel__Int(var83
); /* autobox from Int to Discrete */
8297 ((void (*)(val
*, val
*, val
*))(var81
->class->vft
[COLOR_range__Range__without_last
]))(var81
, var84
, var85
) /* without_last on <var81:Range[Int]>*/;
8298 CHECK_NEW_range__Range(var81
);
8299 var86
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var81
) /* iterator on <var81:Range[Int]>*/;
8301 var87
= ((short int (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var86
) /* is_ok on <var86:Iterator[nullable Object]>*/;
8303 var88
= ((val
* (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var86
) /* item on <var86:Iterator[nullable Object]>*/;
8304 var89
= ((struct instance_kernel__Int
*)var88
)->value
; /* autounbox from nullable Object to Int */;
8306 var90
= ((val
* (*)(val
*, long))(var_array
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_array
, var_i
) /* [] on <var_array:Array[RuntimeVariable]>*/;
8307 var91
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__object_type
]))(self
) /* object_type on <self:SeparateErasureCompilerVisitor>*/;
8308 var92
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var90
, var91
) /* autobox on <self:SeparateErasureCompilerVisitor>*/;
8313 var95
= "((struct instance_";
8315 var97
= string__NativeString__to_s_with_length(var95
, var96
);
8319 var98
= ((val
* (*)(val
*))(var_nclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_nclass
) /* c_name on <var_nclass:MClass>*/;
8325 var103
= string__NativeString__to_s_with_length(var101
, var102
);
8330 var105
= varonce104
;
8332 var106
= ")->values[";
8334 var108
= string__NativeString__to_s_with_length(var106
, var107
);
8336 varonce104
= var105
;
8339 var110
= varonce109
;
8341 var111
= "] = (val*) ";
8343 var113
= string__NativeString__to_s_with_length(var111
, var112
);
8345 varonce109
= var110
;
8348 var115
= varonce114
;
8352 var118
= string__NativeString__to_s_with_length(var116
, var117
);
8354 varonce114
= var115
;
8356 var119
= NEW_array__Array(&type_array__Arraykernel__Object
);
8357 { /* var119 = array_instance Array[Object] */
8359 var121
= NEW_array__NativeArray(var120
, &type_array__NativeArraykernel__Object
);
8360 ((struct instance_array__NativeArray
*)var121
)->values
[0] = (val
*) var94
;
8361 ((struct instance_array__NativeArray
*)var121
)->values
[1] = (val
*) var98
;
8362 ((struct instance_array__NativeArray
*)var121
)->values
[2] = (val
*) var100
;
8363 ((struct instance_array__NativeArray
*)var121
)->values
[3] = (val
*) var_nat
;
8364 ((struct instance_array__NativeArray
*)var121
)->values
[4] = (val
*) var105
;
8365 var122
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
8366 ((struct instance_array__NativeArray
*)var121
)->values
[5] = (val
*) var122
;
8367 ((struct instance_array__NativeArray
*)var121
)->values
[6] = (val
*) var110
;
8368 ((struct instance_array__NativeArray
*)var121
)->values
[7] = (val
*) var_r
;
8369 ((struct instance_array__NativeArray
*)var121
)->values
[8] = (val
*) var115
;
8370 ((void (*)(val
*, val
*, long))(var119
->class->vft
[COLOR_array__Array__with_native
]))(var119
, var121
, var120
) /* with_native on <var119:Array[Object]>*/;
8371 CHECK_NEW_array__Array(var119
);
8373 var123
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_string__Object__to_s
]))(var119
) /* to_s on <var119:Array[Object]>*/;
8374 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var123
) /* add on <self:SeparateErasureCompilerVisitor>*/;
8375 CONTINUE_label
: (void)0;
8376 ((void (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var86
) /* next on <var86:Iterator[nullable Object]>*/;
8378 BREAK_label
: (void)0;
8379 var124
= ((long (*)(val
*))(var_array
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_array
) /* length on <var_array:Array[RuntimeVariable]>*/;
8380 var125
= ((val
* (*)(val
*, long))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__int_instance
]))(self
, var124
) /* int_instance on <self:SeparateErasureCompilerVisitor>*/;
8381 var_length
= var125
;
8383 var127
= varonce126
;
8385 var128
= "with_native";
8387 var130
= string__NativeString__to_s_with_length(var128
, var129
);
8389 varonce126
= var127
;
8391 var131
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_property
]))(self
, var127
, var_arraytype
) /* get_property on <self:SeparateErasureCompilerVisitor>*/;
8392 var132
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
8393 { /* var132 = array_instance Array[RuntimeVariable] */
8395 var134
= NEW_array__NativeArray(var133
, &type_array__NativeArrayabstract_compiler__RuntimeVariable
);
8396 ((struct instance_array__NativeArray
*)var134
)->values
[0] = (val
*) var_res
;
8397 ((struct instance_array__NativeArray
*)var134
)->values
[1] = (val
*) var_nat
;
8398 ((struct instance_array__NativeArray
*)var134
)->values
[2] = (val
*) var_length
;
8399 ((void (*)(val
*, val
*, long))(var132
->class->vft
[COLOR_array__Array__with_native
]))(var132
, var134
, var133
) /* with_native on <var132:Array[RuntimeVariable]>*/;
8400 CHECK_NEW_array__Array(var132
);
8402 var135
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__send
]))(self
, var131
, var132
) /* send on <self:SeparateErasureCompilerVisitor>*/;
8404 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__check_init_instance
]))(self
, var_res
, var_arraytype
) /* check_init_instance on <self:SeparateErasureCompilerVisitor>*/;
8406 var137
= varonce136
;
8410 var140
= string__NativeString__to_s_with_length(var138
, var139
);
8412 varonce136
= var137
;
8414 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var137
) /* add on <self:SeparateErasureCompilerVisitor>*/;
8420 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#array_instance for (self: Object, Array[RuntimeVariable], MType): RuntimeVariable */
8421 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__array_instance(val
* self
, val
* p0
, val
* p1
) {
8422 val
* var
/* : RuntimeVariable */;
8423 val
* var1
/* : RuntimeVariable */;
8424 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__array_instance(self
, p0
, p1
);
8429 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#calloc_array for (self: SeparateErasureCompilerVisitor, MType, Array[RuntimeVariable]) */
8430 void separate_erasure_compiler__SeparateErasureCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
8431 val
* var_ret_type
/* var ret_type: MType */;
8432 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
8433 short int var
/* : Bool */;
8436 val
* var_ret
/* var ret: MClassType */;
8437 static val
* varonce
;
8438 val
* var1
/* : String */;
8439 char* var2
/* : NativeString */;
8440 long var3
/* : Int */;
8441 val
* var4
/* : String */;
8442 val
* var5
/* : MClass */;
8443 val
* var6
/* : String */;
8444 val
* var7
/* : Array[Object] */;
8445 long var8
/* : Int */;
8446 val
* var9
/* : NativeArray[Object] */;
8447 val
* var10
/* : String */;
8448 static val
* varonce11
;
8449 val
* var12
/* : String */;
8450 char* var13
/* : NativeString */;
8451 long var14
/* : Int */;
8452 val
* var15
/* : String */;
8453 val
* var16
/* : MClass */;
8454 val
* var17
/* : String */;
8455 static val
* varonce18
;
8456 val
* var19
/* : String */;
8457 char* var20
/* : NativeString */;
8458 long var21
/* : Int */;
8459 val
* var22
/* : String */;
8460 long var23
/* : Int */;
8461 val
* var24
/* : nullable Object */;
8462 static val
* varonce25
;
8463 val
* var26
/* : String */;
8464 char* var27
/* : NativeString */;
8465 long var28
/* : Int */;
8466 val
* var29
/* : String */;
8467 val
* var30
/* : Array[Object] */;
8468 long var31
/* : Int */;
8469 val
* var32
/* : NativeArray[Object] */;
8470 val
* var33
/* : String */;
8471 val
* var34
/* : RuntimeVariable */;
8474 /* <var_ret_type:MType> isa MClassType */
8475 cltype
= type_model__MClassType
.color
;
8476 idtype
= type_model__MClassType
.id
;
8477 if(cltype
>= var_ret_type
->type
->table_size
) {
8480 var
= var_ret_type
->type
->type_table
[cltype
] == idtype
;
8483 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_erasure_compiler.nit", 614);
8486 var_ret
= var_ret_type
;
8492 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8496 var5
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_model__MClassType__mclass
]))(var_ret
) /* mclass on <var_ret:MClassType>*/;
8497 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var5
) /* c_name on <var5:MClass>*/;
8498 var7
= NEW_array__Array(&type_array__Arraykernel__Object
);
8499 { /* var7 = array_instance Array[Object] */
8501 var9
= NEW_array__NativeArray(var8
, &type_array__NativeArraykernel__Object
);
8502 ((struct instance_array__NativeArray
*)var9
)->values
[0] = (val
*) var1
;
8503 ((struct instance_array__NativeArray
*)var9
)->values
[1] = (val
*) var6
;
8504 ((void (*)(val
*, val
*, long))(var7
->class->vft
[COLOR_array__Array__with_native
]))(var7
, var9
, var8
) /* with_native on <var7:Array[Object]>*/;
8505 CHECK_NEW_array__Array(var7
);
8507 var10
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_string__Object__to_s
]))(var7
) /* to_s on <var7:Array[Object]>*/;
8508 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var10
) /* require_declaration on <self:SeparateErasureCompilerVisitor>*/;
8514 var15
= string__NativeString__to_s_with_length(var13
, var14
);
8518 var16
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_model__MClassType__mclass
]))(var_ret
) /* mclass on <var_ret:MClassType>*/;
8519 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var16
) /* c_name on <var16:MClass>*/;
8525 var22
= string__NativeString__to_s_with_length(var20
, var21
);
8530 var24
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var23
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8536 var29
= string__NativeString__to_s_with_length(var27
, var28
);
8540 var30
= NEW_array__Array(&type_array__Arraykernel__Object
);
8541 { /* var30 = array_instance Array[Object] */
8543 var32
= NEW_array__NativeArray(var31
, &type_array__NativeArraykernel__Object
);
8544 ((struct instance_array__NativeArray
*)var32
)->values
[0] = (val
*) var12
;
8545 ((struct instance_array__NativeArray
*)var32
)->values
[1] = (val
*) var17
;
8546 ((struct instance_array__NativeArray
*)var32
)->values
[2] = (val
*) var19
;
8547 ((struct instance_array__NativeArray
*)var32
)->values
[3] = (val
*) var24
;
8548 ((struct instance_array__NativeArray
*)var32
)->values
[4] = (val
*) var26
;
8549 ((void (*)(val
*, val
*, long))(var30
->class->vft
[COLOR_array__Array__with_native
]))(var30
, var32
, var31
) /* with_native on <var30:Array[Object]>*/;
8550 CHECK_NEW_array__Array(var30
);
8552 var33
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_string__Object__to_s
]))(var30
) /* to_s on <var30:Array[Object]>*/;
8553 var34
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var33
, var_ret_type
) /* new_expr on <self:SeparateErasureCompilerVisitor>*/;
8554 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__ret
]))(self
, var34
) /* ret on <self:SeparateErasureCompilerVisitor>*/;
8557 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#calloc_array for (self: Object, MType, Array[RuntimeVariable]) */
8558 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
8559 separate_erasure_compiler__SeparateErasureCompilerVisitor__calloc_array(self
, p0
, p1
);