1 #include "separate_compiler.sep.0.h"
2 /* method separate_compiler#ToolContext#opt_separate for (self: ToolContext): OptionBool */
3 val
* separate_compiler__ToolContext__opt_separate(val
* self
) {
4 val
* var
/* : OptionBool */;
5 val
* var1
/* : OptionBool */;
6 var1
= self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_separate
].val
; /* @opt_separate on <self:ToolContext> */
8 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @opt_separate");
9 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 25);
16 /* method separate_compiler#ToolContext#opt_separate for (self: Object): OptionBool */
17 val
* VIRTUAL_separate_compiler__ToolContext__opt_separate(val
* self
) {
18 val
* var
/* : OptionBool */;
19 val
* var1
/* : OptionBool */;
20 var1
= separate_compiler__ToolContext__opt_separate(self
);
25 /* method separate_compiler#ToolContext#opt_separate= for (self: ToolContext, OptionBool) */
26 void separate_compiler__ToolContext__opt_separate_61d(val
* self
, val
* p0
) {
27 self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_separate
].val
= p0
; /* @opt_separate on <self:ToolContext> */
30 /* method separate_compiler#ToolContext#opt_separate= for (self: Object, OptionBool) */
31 void VIRTUAL_separate_compiler__ToolContext__opt_separate_61d(val
* self
, val
* p0
) {
32 separate_compiler__ToolContext__opt_separate_61d(self
, p0
);
35 /* method separate_compiler#ToolContext#opt_no_inline_intern for (self: ToolContext): OptionBool */
36 val
* separate_compiler__ToolContext__opt_no_inline_intern(val
* self
) {
37 val
* var
/* : OptionBool */;
38 val
* var1
/* : OptionBool */;
39 var1
= self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_no_inline_intern
].val
; /* @opt_no_inline_intern on <self:ToolContext> */
41 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @opt_no_inline_intern");
42 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 27);
49 /* method separate_compiler#ToolContext#opt_no_inline_intern for (self: Object): OptionBool */
50 val
* VIRTUAL_separate_compiler__ToolContext__opt_no_inline_intern(val
* self
) {
51 val
* var
/* : OptionBool */;
52 val
* var1
/* : OptionBool */;
53 var1
= separate_compiler__ToolContext__opt_no_inline_intern(self
);
58 /* method separate_compiler#ToolContext#opt_no_inline_intern= for (self: ToolContext, OptionBool) */
59 void separate_compiler__ToolContext__opt_no_inline_intern_61d(val
* self
, val
* p0
) {
60 self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_no_inline_intern
].val
= p0
; /* @opt_no_inline_intern on <self:ToolContext> */
63 /* method separate_compiler#ToolContext#opt_no_inline_intern= for (self: Object, OptionBool) */
64 void VIRTUAL_separate_compiler__ToolContext__opt_no_inline_intern_61d(val
* self
, val
* p0
) {
65 separate_compiler__ToolContext__opt_no_inline_intern_61d(self
, p0
);
68 /* method separate_compiler#ToolContext#opt_no_union_attribute for (self: ToolContext): OptionBool */
69 val
* separate_compiler__ToolContext__opt_no_union_attribute(val
* self
) {
70 val
* var
/* : OptionBool */;
71 val
* var1
/* : OptionBool */;
72 var1
= self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_no_union_attribute
].val
; /* @opt_no_union_attribute on <self:ToolContext> */
74 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @opt_no_union_attribute");
75 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 29);
82 /* method separate_compiler#ToolContext#opt_no_union_attribute for (self: Object): OptionBool */
83 val
* VIRTUAL_separate_compiler__ToolContext__opt_no_union_attribute(val
* self
) {
84 val
* var
/* : OptionBool */;
85 val
* var1
/* : OptionBool */;
86 var1
= separate_compiler__ToolContext__opt_no_union_attribute(self
);
91 /* method separate_compiler#ToolContext#opt_no_union_attribute= for (self: ToolContext, OptionBool) */
92 void separate_compiler__ToolContext__opt_no_union_attribute_61d(val
* self
, val
* p0
) {
93 self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_no_union_attribute
].val
= p0
; /* @opt_no_union_attribute on <self:ToolContext> */
96 /* method separate_compiler#ToolContext#opt_no_union_attribute= for (self: Object, OptionBool) */
97 void VIRTUAL_separate_compiler__ToolContext__opt_no_union_attribute_61d(val
* self
, val
* p0
) {
98 separate_compiler__ToolContext__opt_no_union_attribute_61d(self
, p0
);
101 /* method separate_compiler#ToolContext#opt_no_shortcut_equate for (self: ToolContext): OptionBool */
102 val
* separate_compiler__ToolContext__opt_no_shortcut_equate(val
* self
) {
103 val
* var
/* : OptionBool */;
104 val
* var1
/* : OptionBool */;
105 var1
= self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_no_shortcut_equate
].val
; /* @opt_no_shortcut_equate on <self:ToolContext> */
107 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @opt_no_shortcut_equate");
108 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 31);
115 /* method separate_compiler#ToolContext#opt_no_shortcut_equate for (self: Object): OptionBool */
116 val
* VIRTUAL_separate_compiler__ToolContext__opt_no_shortcut_equate(val
* self
) {
117 val
* var
/* : OptionBool */;
118 val
* var1
/* : OptionBool */;
119 var1
= separate_compiler__ToolContext__opt_no_shortcut_equate(self
);
124 /* method separate_compiler#ToolContext#opt_no_shortcut_equate= for (self: ToolContext, OptionBool) */
125 void separate_compiler__ToolContext__opt_no_shortcut_equate_61d(val
* self
, val
* p0
) {
126 self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_no_shortcut_equate
].val
= p0
; /* @opt_no_shortcut_equate on <self:ToolContext> */
129 /* method separate_compiler#ToolContext#opt_no_shortcut_equate= for (self: Object, OptionBool) */
130 void VIRTUAL_separate_compiler__ToolContext__opt_no_shortcut_equate_61d(val
* self
, val
* p0
) {
131 separate_compiler__ToolContext__opt_no_shortcut_equate_61d(self
, p0
);
134 /* method separate_compiler#ToolContext#opt_inline_coloring_numbers for (self: ToolContext): OptionBool */
135 val
* separate_compiler__ToolContext__opt_inline_coloring_numbers(val
* self
) {
136 val
* var
/* : OptionBool */;
137 val
* var1
/* : OptionBool */;
138 var1
= self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_inline_coloring_numbers
].val
; /* @opt_inline_coloring_numbers on <self:ToolContext> */
140 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @opt_inline_coloring_numbers");
141 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 33);
148 /* method separate_compiler#ToolContext#opt_inline_coloring_numbers for (self: Object): OptionBool */
149 val
* VIRTUAL_separate_compiler__ToolContext__opt_inline_coloring_numbers(val
* self
) {
150 val
* var
/* : OptionBool */;
151 val
* var1
/* : OptionBool */;
152 var1
= separate_compiler__ToolContext__opt_inline_coloring_numbers(self
);
157 /* method separate_compiler#ToolContext#opt_inline_coloring_numbers= for (self: ToolContext, OptionBool) */
158 void separate_compiler__ToolContext__opt_inline_coloring_numbers_61d(val
* self
, val
* p0
) {
159 self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_inline_coloring_numbers
].val
= p0
; /* @opt_inline_coloring_numbers on <self:ToolContext> */
162 /* method separate_compiler#ToolContext#opt_inline_coloring_numbers= for (self: Object, OptionBool) */
163 void VIRTUAL_separate_compiler__ToolContext__opt_inline_coloring_numbers_61d(val
* self
, val
* p0
) {
164 separate_compiler__ToolContext__opt_inline_coloring_numbers_61d(self
, p0
);
167 /* method separate_compiler#ToolContext#opt_bm_typing for (self: ToolContext): OptionBool */
168 val
* separate_compiler__ToolContext__opt_bm_typing(val
* self
) {
169 val
* var
/* : OptionBool */;
170 val
* var1
/* : OptionBool */;
171 var1
= self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_bm_typing
].val
; /* @opt_bm_typing on <self:ToolContext> */
173 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @opt_bm_typing");
174 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 35);
181 /* method separate_compiler#ToolContext#opt_bm_typing for (self: Object): OptionBool */
182 val
* VIRTUAL_separate_compiler__ToolContext__opt_bm_typing(val
* self
) {
183 val
* var
/* : OptionBool */;
184 val
* var1
/* : OptionBool */;
185 var1
= separate_compiler__ToolContext__opt_bm_typing(self
);
190 /* method separate_compiler#ToolContext#opt_bm_typing= for (self: ToolContext, OptionBool) */
191 void separate_compiler__ToolContext__opt_bm_typing_61d(val
* self
, val
* p0
) {
192 self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_bm_typing
].val
= p0
; /* @opt_bm_typing on <self:ToolContext> */
195 /* method separate_compiler#ToolContext#opt_bm_typing= for (self: Object, OptionBool) */
196 void VIRTUAL_separate_compiler__ToolContext__opt_bm_typing_61d(val
* self
, val
* p0
) {
197 separate_compiler__ToolContext__opt_bm_typing_61d(self
, p0
);
200 /* method separate_compiler#ToolContext#opt_phmod_typing for (self: ToolContext): OptionBool */
201 val
* separate_compiler__ToolContext__opt_phmod_typing(val
* self
) {
202 val
* var
/* : OptionBool */;
203 val
* var1
/* : OptionBool */;
204 var1
= self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_phmod_typing
].val
; /* @opt_phmod_typing on <self:ToolContext> */
206 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @opt_phmod_typing");
207 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 37);
214 /* method separate_compiler#ToolContext#opt_phmod_typing for (self: Object): OptionBool */
215 val
* VIRTUAL_separate_compiler__ToolContext__opt_phmod_typing(val
* self
) {
216 val
* var
/* : OptionBool */;
217 val
* var1
/* : OptionBool */;
218 var1
= separate_compiler__ToolContext__opt_phmod_typing(self
);
223 /* method separate_compiler#ToolContext#opt_phmod_typing= for (self: ToolContext, OptionBool) */
224 void separate_compiler__ToolContext__opt_phmod_typing_61d(val
* self
, val
* p0
) {
225 self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_phmod_typing
].val
= p0
; /* @opt_phmod_typing on <self:ToolContext> */
228 /* method separate_compiler#ToolContext#opt_phmod_typing= for (self: Object, OptionBool) */
229 void VIRTUAL_separate_compiler__ToolContext__opt_phmod_typing_61d(val
* self
, val
* p0
) {
230 separate_compiler__ToolContext__opt_phmod_typing_61d(self
, p0
);
233 /* method separate_compiler#ToolContext#opt_phand_typing for (self: ToolContext): OptionBool */
234 val
* separate_compiler__ToolContext__opt_phand_typing(val
* self
) {
235 val
* var
/* : OptionBool */;
236 val
* var1
/* : OptionBool */;
237 var1
= self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_phand_typing
].val
; /* @opt_phand_typing on <self:ToolContext> */
239 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @opt_phand_typing");
240 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 39);
247 /* method separate_compiler#ToolContext#opt_phand_typing for (self: Object): OptionBool */
248 val
* VIRTUAL_separate_compiler__ToolContext__opt_phand_typing(val
* self
) {
249 val
* var
/* : OptionBool */;
250 val
* var1
/* : OptionBool */;
251 var1
= separate_compiler__ToolContext__opt_phand_typing(self
);
256 /* method separate_compiler#ToolContext#opt_phand_typing= for (self: ToolContext, OptionBool) */
257 void separate_compiler__ToolContext__opt_phand_typing_61d(val
* self
, val
* p0
) {
258 self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_phand_typing
].val
= p0
; /* @opt_phand_typing on <self:ToolContext> */
261 /* method separate_compiler#ToolContext#opt_phand_typing= for (self: Object, OptionBool) */
262 void VIRTUAL_separate_compiler__ToolContext__opt_phand_typing_61d(val
* self
, val
* p0
) {
263 separate_compiler__ToolContext__opt_phand_typing_61d(self
, p0
);
266 /* method separate_compiler#ToolContext#opt_tables_metrics for (self: ToolContext): OptionBool */
267 val
* separate_compiler__ToolContext__opt_tables_metrics(val
* self
) {
268 val
* var
/* : OptionBool */;
269 val
* var1
/* : OptionBool */;
270 var1
= self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_tables_metrics
].val
; /* @opt_tables_metrics on <self:ToolContext> */
272 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @opt_tables_metrics");
273 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 41);
280 /* method separate_compiler#ToolContext#opt_tables_metrics for (self: Object): OptionBool */
281 val
* VIRTUAL_separate_compiler__ToolContext__opt_tables_metrics(val
* self
) {
282 val
* var
/* : OptionBool */;
283 val
* var1
/* : OptionBool */;
284 var1
= separate_compiler__ToolContext__opt_tables_metrics(self
);
289 /* method separate_compiler#ToolContext#opt_tables_metrics= for (self: ToolContext, OptionBool) */
290 void separate_compiler__ToolContext__opt_tables_metrics_61d(val
* self
, val
* p0
) {
291 self
->attrs
[COLOR_separate_compiler__ToolContext___64dopt_tables_metrics
].val
= p0
; /* @opt_tables_metrics on <self:ToolContext> */
294 /* method separate_compiler#ToolContext#opt_tables_metrics= for (self: Object, OptionBool) */
295 void VIRTUAL_separate_compiler__ToolContext__opt_tables_metrics_61d(val
* self
, val
* p0
) {
296 separate_compiler__ToolContext__opt_tables_metrics_61d(self
, p0
);
299 /* method separate_compiler#ToolContext#init for (self: ToolContext) */
300 void separate_compiler__ToolContext__init(val
* self
) {
301 val
* var
/* : OptionContext */;
302 val
* var1
/* : OptionBool */;
303 val
* var2
/* : Array[Option] */;
304 long var3
/* : Int */;
305 val
* var4
/* : NativeArray[Option] */;
306 val
* var5
/* : OptionContext */;
307 val
* var6
/* : OptionBool */;
308 val
* var7
/* : Array[Option] */;
309 long var8
/* : Int */;
310 val
* var9
/* : NativeArray[Option] */;
311 val
* var10
/* : OptionContext */;
312 val
* var11
/* : OptionBool */;
313 val
* var12
/* : Array[Option] */;
314 long var13
/* : Int */;
315 val
* var14
/* : NativeArray[Option] */;
316 val
* var15
/* : OptionContext */;
317 val
* var16
/* : OptionBool */;
318 val
* var17
/* : Array[Option] */;
319 long var18
/* : Int */;
320 val
* var19
/* : NativeArray[Option] */;
321 val
* var20
/* : OptionContext */;
322 val
* var21
/* : OptionBool */;
323 val
* var22
/* : Array[Option] */;
324 long var23
/* : Int */;
325 val
* var24
/* : NativeArray[Option] */;
326 val
* var25
/* : OptionContext */;
327 val
* var26
/* : OptionBool */;
328 val
* var27
/* : Array[Option] */;
329 long var28
/* : Int */;
330 val
* var29
/* : NativeArray[Option] */;
331 val
* var30
/* : OptionContext */;
332 val
* var31
/* : OptionBool */;
333 val
* var32
/* : Array[Option] */;
334 long var33
/* : Int */;
335 val
* var34
/* : NativeArray[Option] */;
336 val
* var35
/* : OptionContext */;
337 val
* var36
/* : OptionBool */;
338 val
* var37
/* : Array[Option] */;
339 long var38
/* : Int */;
340 val
* var39
/* : NativeArray[Option] */;
341 val
* var40
/* : OptionContext */;
342 val
* var41
/* : OptionBool */;
343 val
* var42
/* : Array[Option] */;
344 long var43
/* : Int */;
345 val
* var44
/* : NativeArray[Option] */;
346 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__init
]))(self
) /* init on <self:ToolContext>*/;
347 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
348 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_separate
]))(self
) /* opt_separate on <self:ToolContext>*/;
349 var2
= NEW_array__Array(&type_array__Arrayopts__Option
);
350 { /* var2 = array_instance Array[Option] */
352 var4
= NEW_array__NativeArray(var3
, &type_array__NativeArrayopts__Option
);
353 ((struct instance_array__NativeArray
*)var4
)->values
[0] = (val
*) var1
;
354 ((void (*)(val
*, val
*, long))(var2
->class->vft
[COLOR_array__Array__with_native
]))(var2
, var4
, var3
) /* with_native on <var2:Array[Option]>*/;
356 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var
, var2
) /* add_option on <var:OptionContext>*/;
357 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
358 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_no_inline_intern
]))(self
) /* opt_no_inline_intern on <self:ToolContext>*/;
359 var7
= NEW_array__Array(&type_array__Arrayopts__Option
);
360 { /* var7 = array_instance Array[Option] */
362 var9
= NEW_array__NativeArray(var8
, &type_array__NativeArrayopts__Option
);
363 ((struct instance_array__NativeArray
*)var9
)->values
[0] = (val
*) var6
;
364 ((void (*)(val
*, val
*, long))(var7
->class->vft
[COLOR_array__Array__with_native
]))(var7
, var9
, var8
) /* with_native on <var7:Array[Option]>*/;
366 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var5
, var7
) /* add_option on <var5:OptionContext>*/;
367 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
368 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_no_union_attribute
]))(self
) /* opt_no_union_attribute on <self:ToolContext>*/;
369 var12
= NEW_array__Array(&type_array__Arrayopts__Option
);
370 { /* var12 = array_instance Array[Option] */
372 var14
= NEW_array__NativeArray(var13
, &type_array__NativeArrayopts__Option
);
373 ((struct instance_array__NativeArray
*)var14
)->values
[0] = (val
*) var11
;
374 ((void (*)(val
*, val
*, long))(var12
->class->vft
[COLOR_array__Array__with_native
]))(var12
, var14
, var13
) /* with_native on <var12:Array[Option]>*/;
376 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var10
, var12
) /* add_option on <var10:OptionContext>*/;
377 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
378 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_no_shortcut_equate
]))(self
) /* opt_no_shortcut_equate on <self:ToolContext>*/;
379 var17
= NEW_array__Array(&type_array__Arrayopts__Option
);
380 { /* var17 = array_instance Array[Option] */
382 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArrayopts__Option
);
383 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var16
;
384 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Option]>*/;
386 ((void (*)(val
*, val
*))(var15
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var15
, var17
) /* add_option on <var15:OptionContext>*/;
387 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
388 var21
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_inline_coloring_numbers
]))(self
) /* opt_inline_coloring_numbers on <self:ToolContext>*/;
389 var22
= NEW_array__Array(&type_array__Arrayopts__Option
);
390 { /* var22 = array_instance Array[Option] */
392 var24
= NEW_array__NativeArray(var23
, &type_array__NativeArrayopts__Option
);
393 ((struct instance_array__NativeArray
*)var24
)->values
[0] = (val
*) var21
;
394 ((void (*)(val
*, val
*, long))(var22
->class->vft
[COLOR_array__Array__with_native
]))(var22
, var24
, var23
) /* with_native on <var22:Array[Option]>*/;
396 ((void (*)(val
*, val
*))(var20
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var20
, var22
) /* add_option on <var20:OptionContext>*/;
397 var25
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
398 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_bm_typing
]))(self
) /* opt_bm_typing on <self:ToolContext>*/;
399 var27
= NEW_array__Array(&type_array__Arrayopts__Option
);
400 { /* var27 = array_instance Array[Option] */
402 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArrayopts__Option
);
403 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var26
;
404 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Option]>*/;
406 ((void (*)(val
*, val
*))(var25
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var25
, var27
) /* add_option on <var25:OptionContext>*/;
407 var30
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
408 var31
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(self
) /* opt_phmod_typing on <self:ToolContext>*/;
409 var32
= NEW_array__Array(&type_array__Arrayopts__Option
);
410 { /* var32 = array_instance Array[Option] */
412 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArrayopts__Option
);
413 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var31
;
414 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Option]>*/;
416 ((void (*)(val
*, val
*))(var30
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var30
, var32
) /* add_option on <var30:OptionContext>*/;
417 var35
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
418 var36
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(self
) /* opt_phand_typing on <self:ToolContext>*/;
419 var37
= NEW_array__Array(&type_array__Arrayopts__Option
);
420 { /* var37 = array_instance Array[Option] */
422 var39
= NEW_array__NativeArray(var38
, &type_array__NativeArrayopts__Option
);
423 ((struct instance_array__NativeArray
*)var39
)->values
[0] = (val
*) var36
;
424 ((void (*)(val
*, val
*, long))(var37
->class->vft
[COLOR_array__Array__with_native
]))(var37
, var39
, var38
) /* with_native on <var37:Array[Option]>*/;
426 ((void (*)(val
*, val
*))(var35
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var35
, var37
) /* add_option on <var35:OptionContext>*/;
427 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
428 var41
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_tables_metrics
]))(self
) /* opt_tables_metrics on <self:ToolContext>*/;
429 var42
= NEW_array__Array(&type_array__Arrayopts__Option
);
430 { /* var42 = array_instance Array[Option] */
432 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArrayopts__Option
);
433 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var41
;
434 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Option]>*/;
436 ((void (*)(val
*, val
*))(var40
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var40
, var42
) /* add_option on <var40:OptionContext>*/;
439 /* method separate_compiler#ToolContext#init for (self: Object) */
440 void VIRTUAL_separate_compiler__ToolContext__init(val
* self
) {
441 separate_compiler__ToolContext__init(self
);
444 /* method separate_compiler#ModelBuilder#run_separate_compiler for (self: ModelBuilder, MModule, nullable RapidTypeAnalysis) */
445 void separate_compiler__ModelBuilder__run_separate_compiler(val
* self
, val
* p0
, val
* p1
) {
446 val
* var_mainmodule
/* var mainmodule: MModule */;
447 val
* var_runtime_type_analysis
/* var runtime_type_analysis: nullable RapidTypeAnalysis */;
448 long var
/* : Int */;
449 long var_time0
/* var time0: Int */;
450 val
* var1
/* : ToolContext */;
452 val
* var2
/* : String */;
453 char* var3
/* : NativeString */;
454 long var4
/* : Int */;
455 val
* var5
/* : String */;
456 long var6
/* : Int */;
457 val
* var7
/* : SeparateCompiler */;
458 val
* var_compiler
/* var compiler: SeparateCompiler */;
459 val
* var8
/* : ToolContext */;
460 static val
* varonce9
;
461 val
* var10
/* : String */;
462 char* var11
/* : NativeString */;
463 long var12
/* : Int */;
464 val
* var13
/* : String */;
465 long var14
/* : Int */;
466 val
* var15
/* : String */;
467 static val
* varonce16
;
468 val
* var17
/* : String */;
469 char* var18
/* : NativeString */;
470 long var19
/* : Int */;
471 val
* var20
/* : String */;
472 val
* var21
/* : Array[Object] */;
473 long var22
/* : Int */;
474 val
* var23
/* : NativeArray[Object] */;
475 val
* var24
/* : String */;
476 val
* var25
/* : CodeFile */;
477 val
* var26
/* : POSetElement[MModule] */;
478 val
* var27
/* : Collection[Object] */;
479 val
* var28
/* : Iterator[nullable Object] */;
480 short int var29
/* : Bool */;
481 val
* var30
/* : nullable Object */;
482 val
* var_m
/* var m: MModule */;
483 val
* var31
/* : Array[MClass] */;
484 val
* var32
/* : Iterator[nullable Object] */;
485 short int var33
/* : Bool */;
486 val
* var34
/* : nullable Object */;
487 val
* var_mclass
/* var mclass: MClass */;
488 short int var35
/* : Bool */;
489 val
* var36
/* : MClassKind */;
490 val
* var37
/* : MClassKind */;
491 short int var38
/* : Bool */;
492 short int var_
/* var : Bool */;
493 val
* var39
/* : MClassKind */;
494 val
* var40
/* : MClassKind */;
495 short int var41
/* : Bool */;
496 val
* var43
/* : String */;
497 static val
* varonce44
;
498 val
* var45
/* : String */;
499 char* var46
/* : NativeString */;
500 long var47
/* : Int */;
501 val
* var48
/* : String */;
502 val
* var49
/* : Array[Object] */;
503 long var50
/* : Int */;
504 val
* var51
/* : NativeArray[Object] */;
505 val
* var52
/* : String */;
506 val
* var53
/* : CodeFile */;
507 val
* var54
/* : POSetElement[MModule] */;
508 val
* var55
/* : Collection[Object] */;
509 val
* var56
/* : Iterator[nullable Object] */;
510 short int var57
/* : Bool */;
511 val
* var58
/* : nullable Object */;
512 val
* var_m59
/* var m: MModule */;
513 val
* var60
/* : ToolContext */;
514 static val
* varonce61
;
515 val
* var62
/* : String */;
516 char* var63
/* : NativeString */;
517 long var64
/* : Int */;
518 val
* var65
/* : String */;
519 val
* var66
/* : Array[Object] */;
520 long var67
/* : Int */;
521 val
* var68
/* : NativeArray[Object] */;
522 val
* var69
/* : String */;
523 long var70
/* : Int */;
524 val
* var71
/* : String */;
525 static val
* varonce72
;
526 val
* var73
/* : String */;
527 char* var74
/* : NativeString */;
528 long var75
/* : Int */;
529 val
* var76
/* : String */;
530 val
* var77
/* : Array[Object] */;
531 long var78
/* : Int */;
532 val
* var79
/* : NativeArray[Object] */;
533 val
* var80
/* : String */;
534 val
* var81
/* : CodeFile */;
535 val
* var83
/* : ToolContext */;
536 static val
* varonce84
;
537 val
* var85
/* : String */;
538 char* var86
/* : NativeString */;
539 long var87
/* : Int */;
540 val
* var88
/* : String */;
541 long var89
/* : Int */;
542 val
* var90
/* : String */;
543 static val
* varonce91
;
544 val
* var92
/* : String */;
545 char* var93
/* : NativeString */;
546 long var94
/* : Int */;
547 val
* var95
/* : String */;
548 val
* var96
/* : Array[Object] */;
549 long var97
/* : Int */;
550 val
* var98
/* : NativeArray[Object] */;
551 val
* var99
/* : String */;
552 val
* var100
/* : CodeFile */;
553 val
* var101
/* : POSet[MType] */;
554 val
* var_mtypes
/* var mtypes: POSet[MType] */;
555 val
* var102
/* : Iterator[nullable Object] */;
556 short int var103
/* : Bool */;
557 val
* var104
/* : nullable Object */;
558 val
* var_t
/* var t: MType */;
559 val
* var106
/* : Set[MType] */;
560 val
* var107
/* : Iterator[nullable Object] */;
561 short int var108
/* : Bool */;
562 val
* var109
/* : nullable Object */;
563 val
* var_t110
/* var t: MType */;
564 short int var111
/* : Bool */;
565 long var113
/* : Int */;
566 long var_time1
/* var time1: Int */;
567 val
* var114
/* : ToolContext */;
568 static val
* varonce115
;
569 val
* var116
/* : String */;
570 char* var117
/* : NativeString */;
571 long var118
/* : Int */;
572 val
* var119
/* : String */;
573 long var120
/* : Int */;
574 long var122
/* : Int */;
575 static val
* varonce123
;
576 val
* var124
/* : String */;
577 char* var125
/* : NativeString */;
578 long var126
/* : Int */;
579 val
* var127
/* : String */;
580 val
* var128
/* : Array[Object] */;
581 long var129
/* : Int */;
582 val
* var130
/* : NativeArray[Object] */;
583 val
* var131
/* : Object */;
584 val
* var132
/* : String */;
585 long var133
/* : Int */;
587 var_runtime_type_analysis
= p1
;
588 var
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
590 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
594 var3
= "*** GENERATING C ***";
596 var5
= string__NativeString__to_s_with_length(var3
, var4
);
601 ((void (*)(val
*, val
*, long))(var1
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var1
, var2
, var6
) /* info on <var1:ToolContext>*/;
602 var7
= NEW_separate_compiler__SeparateCompiler(&type_separate_compiler__SeparateCompiler
);
603 ((void (*)(val
*, val
*, val
*, val
*))(var7
->class->vft
[COLOR_separate_compiler__SeparateCompiler__init
]))(var7
, var_mainmodule
, self
, var_runtime_type_analysis
) /* init on <var7:SeparateCompiler>*/;
605 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_header
]))(var_compiler
) /* compile_header on <var_compiler:SeparateCompiler>*/;
606 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
610 var11
= "Property coloring";
612 var13
= string__NativeString__to_s_with_length(var11
, var12
);
617 ((void (*)(val
*, val
*, long))(var8
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var8
, var10
, var14
) /* info on <var8:ToolContext>*/;
618 var15
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__name
]))(var_mainmodule
) /* name on <var_mainmodule:MModule>*/;
624 var20
= string__NativeString__to_s_with_length(var18
, var19
);
628 var21
= NEW_array__Array(&type_array__Arraykernel__Object
);
629 { /* var21 = array_instance Array[Object] */
631 var23
= NEW_array__NativeArray(var22
, &type_array__NativeArraykernel__Object
);
632 ((struct instance_array__NativeArray
*)var23
)->values
[0] = (val
*) var15
;
633 ((struct instance_array__NativeArray
*)var23
)->values
[1] = (val
*) var17
;
634 ((void (*)(val
*, val
*, long))(var21
->class->vft
[COLOR_array__Array__with_native
]))(var21
, var23
, var22
) /* with_native on <var21:Array[Object]>*/;
636 var24
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_string__Object__to_s
]))(var21
) /* to_s on <var21:Array[Object]>*/;
637 var25
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var24
) /* new_file on <var_compiler:SeparateCompiler>*/;
639 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__do_property_coloring
]))(var_compiler
) /* do_property_coloring on <var_compiler:SeparateCompiler>*/;
640 var26
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(var_mainmodule
) /* in_importation on <var_mainmodule:MModule>*/;
641 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var26
) /* greaters on <var26:POSetElement[MModule]>*/;
642 var28
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var27
) /* iterator on <var27:Collection[Object](Collection[MModule])>*/;
644 var29
= ((short int (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var28
) /* is_ok on <var28:Iterator[nullable Object]>*/;
646 var30
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var28
) /* item on <var28:Iterator[nullable Object]>*/;
648 var31
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MModule__intro_mclasses
]))(var_m
) /* intro_mclasses on <var_m:MModule>*/;
649 var32
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var31
) /* iterator on <var31:Array[MClass]>*/;
651 var33
= ((short int (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var32
) /* is_ok on <var32:Iterator[nullable Object]>*/;
653 var34
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var32
) /* item on <var32:Iterator[nullable Object]>*/;
655 var36
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__kind
]))(var_mclass
) /* kind on <var_mclass:MClass>*/;
656 var37
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__abstract_kind
]))(self
) /* abstract_kind on <self:ModelBuilder>*/;
657 var38
= ((short int (*)(val
*, val
*))(var36
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var36
, var37
) /* == on <var36:MClassKind>*/;
662 var39
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__kind
]))(var_mclass
) /* kind on <var_mclass:MClass>*/;
663 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__interface_kind
]))(self
) /* interface_kind on <self:ModelBuilder>*/;
664 var41
= ((short int (*)(val
*, val
*))(var39
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var39
, var40
) /* == on <var39:MClassKind>*/;
671 ((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:SeparateCompiler>*/;
672 CONTINUE_label
: (void)0;
673 ((void (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var32
) /* next on <var32:Iterator[nullable Object]>*/;
675 BREAK_label
: (void)0;
676 CONTINUE_label42
: (void)0;
677 ((void (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var28
) /* next on <var28:Iterator[nullable Object]>*/;
679 BREAK_label42
: (void)0;
680 var43
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__name
]))(var_mainmodule
) /* name on <var_mainmodule:MModule>*/;
686 var48
= string__NativeString__to_s_with_length(var46
, var47
);
690 var49
= NEW_array__Array(&type_array__Arraykernel__Object
);
691 { /* var49 = array_instance Array[Object] */
693 var51
= NEW_array__NativeArray(var50
, &type_array__NativeArraykernel__Object
);
694 ((struct instance_array__NativeArray
*)var51
)->values
[0] = (val
*) var43
;
695 ((struct instance_array__NativeArray
*)var51
)->values
[1] = (val
*) var45
;
696 ((void (*)(val
*, val
*, long))(var49
->class->vft
[COLOR_array__Array__with_native
]))(var49
, var51
, var50
) /* with_native on <var49:Array[Object]>*/;
698 var52
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_string__Object__to_s
]))(var49
) /* to_s on <var49:Array[Object]>*/;
699 var53
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var52
) /* new_file on <var_compiler:SeparateCompiler>*/;
701 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_main_function
]))(var_compiler
) /* compile_main_function on <var_compiler:SeparateCompiler>*/;
702 var54
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(var_mainmodule
) /* in_importation on <var_mainmodule:MModule>*/;
703 var55
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var54
) /* greaters on <var54:POSetElement[MModule]>*/;
704 var56
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var55
) /* iterator on <var55:Collection[Object](Collection[MModule])>*/;
706 var57
= ((short int (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var56
) /* is_ok on <var56:Iterator[nullable Object]>*/;
708 var58
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var56
) /* item on <var56:Iterator[nullable Object]>*/;
710 var60
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
714 var63
= "Generate C for module ";
716 var65
= string__NativeString__to_s_with_length(var63
, var64
);
720 var66
= NEW_array__Array(&type_array__Arraykernel__Object
);
721 { /* var66 = array_instance Array[Object] */
723 var68
= NEW_array__NativeArray(var67
, &type_array__NativeArraykernel__Object
);
724 ((struct instance_array__NativeArray
*)var68
)->values
[0] = (val
*) var62
;
725 ((struct instance_array__NativeArray
*)var68
)->values
[1] = (val
*) var_m59
;
726 ((void (*)(val
*, val
*, long))(var66
->class->vft
[COLOR_array__Array__with_native
]))(var66
, var68
, var67
) /* with_native on <var66:Array[Object]>*/;
728 var69
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_string__Object__to_s
]))(var66
) /* to_s on <var66:Array[Object]>*/;
730 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var60
, var69
, var70
) /* info on <var60:ToolContext>*/;
731 var71
= ((val
* (*)(val
*))(var_m59
->class->vft
[COLOR_mmodule__MModule__name
]))(var_m59
) /* name on <var_m59:MModule>*/;
737 var76
= string__NativeString__to_s_with_length(var74
, var75
);
741 var77
= NEW_array__Array(&type_array__Arraykernel__Object
);
742 { /* var77 = array_instance Array[Object] */
744 var79
= NEW_array__NativeArray(var78
, &type_array__NativeArraykernel__Object
);
745 ((struct instance_array__NativeArray
*)var79
)->values
[0] = (val
*) var71
;
746 ((struct instance_array__NativeArray
*)var79
)->values
[1] = (val
*) var73
;
747 ((void (*)(val
*, val
*, long))(var77
->class->vft
[COLOR_array__Array__with_native
]))(var77
, var79
, var78
) /* with_native on <var77:Array[Object]>*/;
749 var80
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_string__Object__to_s
]))(var77
) /* to_s on <var77:Array[Object]>*/;
750 var81
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var80
) /* new_file on <var_compiler:SeparateCompiler>*/;
752 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_module_to_c
]))(var_compiler
, var_m59
) /* compile_module_to_c on <var_compiler:SeparateCompiler>*/;
753 CONTINUE_label82
: (void)0;
754 ((void (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var56
) /* next on <var56:Iterator[nullable Object]>*/;
756 BREAK_label82
: (void)0;
757 var83
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
761 var86
= "Type coloring";
763 var88
= string__NativeString__to_s_with_length(var86
, var87
);
768 ((void (*)(val
*, val
*, long))(var83
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var83
, var85
, var89
) /* info on <var83:ToolContext>*/;
769 var90
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__name
]))(var_mainmodule
) /* name on <var_mainmodule:MModule>*/;
775 var95
= string__NativeString__to_s_with_length(var93
, var94
);
779 var96
= NEW_array__Array(&type_array__Arraykernel__Object
);
780 { /* var96 = array_instance Array[Object] */
782 var98
= NEW_array__NativeArray(var97
, &type_array__NativeArraykernel__Object
);
783 ((struct instance_array__NativeArray
*)var98
)->values
[0] = (val
*) var90
;
784 ((struct instance_array__NativeArray
*)var98
)->values
[1] = (val
*) var92
;
785 ((void (*)(val
*, val
*, long))(var96
->class->vft
[COLOR_array__Array__with_native
]))(var96
, var98
, var97
) /* with_native on <var96:Array[Object]>*/;
787 var99
= ((val
* (*)(val
*))(var96
->class->vft
[COLOR_string__Object__to_s
]))(var96
) /* to_s on <var96:Array[Object]>*/;
788 var100
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var99
) /* new_file on <var_compiler:SeparateCompiler>*/;
790 var101
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__do_type_coloring
]))(var_compiler
) /* do_type_coloring on <var_compiler:SeparateCompiler>*/;
792 var102
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mtypes
) /* iterator on <var_mtypes:POSet[MType]>*/;
794 var103
= ((short int (*)(val
*))(var102
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var102
) /* is_ok on <var102:Iterator[nullable Object]>*/;
796 var104
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var102
) /* item on <var102:Iterator[nullable Object]>*/;
798 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_type_to_c
]))(var_compiler
, var_t
) /* compile_type_to_c on <var_compiler:SeparateCompiler>*/;
799 CONTINUE_label105
: (void)0;
800 ((void (*)(val
*))(var102
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var102
) /* next on <var102:Iterator[nullable Object]>*/;
802 BREAK_label105
: (void)0;
803 var106
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__undead_types
]))(var_compiler
) /* undead_types on <var_compiler:SeparateCompiler>*/;
804 var107
= ((val
* (*)(val
*))(var106
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var106
) /* iterator on <var106:Set[MType]>*/;
806 var108
= ((short int (*)(val
*))(var107
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var107
) /* is_ok on <var107:Iterator[nullable Object]>*/;
808 var109
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var107
) /* item on <var107:Iterator[nullable Object]>*/;
810 var111
= ((short int (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_mtypes
, var_t110
) /* has on <var_mtypes:POSet[MType]>*/;
812 goto CONTINUE_label112
;
815 ((void (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_type_to_c
]))(var_compiler
, var_t110
) /* compile_type_to_c on <var_compiler:SeparateCompiler>*/;
816 CONTINUE_label112
: (void)0;
817 ((void (*)(val
*))(var107
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var107
) /* next on <var107:Iterator[nullable Object]>*/;
819 BREAK_label112
: (void)0;
820 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__display_stats
]))(var_compiler
) /* display_stats on <var_compiler:SeparateCompiler>*/;
821 var113
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
823 var114
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
827 var117
= "*** END GENERATING C: ";
829 var119
= string__NativeString__to_s_with_length(var117
, var118
);
833 { /* Inline kernel#Int#- (var_time1,var_time0) */
834 var122
= var_time1
- var_time0
;
837 RET_LABEL121
:(void)0;
844 var127
= string__NativeString__to_s_with_length(var125
, var126
);
848 var128
= NEW_array__Array(&type_array__Arraykernel__Object
);
849 { /* var128 = array_instance Array[Object] */
851 var130
= NEW_array__NativeArray(var129
, &type_array__NativeArraykernel__Object
);
852 ((struct instance_array__NativeArray
*)var130
)->values
[0] = (val
*) var116
;
853 var131
= BOX_kernel__Int(var120
); /* autobox from Int to Object */
854 ((struct instance_array__NativeArray
*)var130
)->values
[1] = (val
*) var131
;
855 ((struct instance_array__NativeArray
*)var130
)->values
[2] = (val
*) var124
;
856 ((void (*)(val
*, val
*, long))(var128
->class->vft
[COLOR_array__Array__with_native
]))(var128
, var130
, var129
) /* with_native on <var128:Array[Object]>*/;
858 var132
= ((val
* (*)(val
*))(var128
->class->vft
[COLOR_string__Object__to_s
]))(var128
) /* to_s on <var128:Array[Object]>*/;
860 ((void (*)(val
*, val
*, long))(var114
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var114
, var132
, var133
) /* info on <var114:ToolContext>*/;
861 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__ModelBuilder__write_and_make
]))(self
, var_compiler
) /* write_and_make on <self:ModelBuilder>*/;
864 /* method separate_compiler#ModelBuilder#run_separate_compiler for (self: Object, MModule, nullable RapidTypeAnalysis) */
865 void VIRTUAL_separate_compiler__ModelBuilder__run_separate_compiler(val
* self
, val
* p0
, val
* p1
) {
866 separate_compiler__ModelBuilder__run_separate_compiler(self
, p0
, p1
);
869 /* method separate_compiler#SeparateCompiler#runtime_type_analysis for (self: SeparateCompiler): nullable RapidTypeAnalysis */
870 val
* separate_compiler__SeparateCompiler__runtime_type_analysis(val
* self
) {
871 val
* var
/* : nullable RapidTypeAnalysis */;
872 val
* var1
/* : nullable RapidTypeAnalysis */;
873 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64druntime_type_analysis
].val
; /* @runtime_type_analysis on <self:SeparateCompiler> */
878 /* method separate_compiler#SeparateCompiler#runtime_type_analysis for (self: Object): nullable RapidTypeAnalysis */
879 val
* VIRTUAL_separate_compiler__SeparateCompiler__runtime_type_analysis(val
* self
) {
880 val
* var
/* : nullable RapidTypeAnalysis */;
881 val
* var1
/* : nullable RapidTypeAnalysis */;
882 var1
= separate_compiler__SeparateCompiler__runtime_type_analysis(self
);
887 /* method separate_compiler#SeparateCompiler#runtime_type_analysis= for (self: SeparateCompiler, nullable RapidTypeAnalysis) */
888 void separate_compiler__SeparateCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
889 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64druntime_type_analysis
].val
= p0
; /* @runtime_type_analysis on <self:SeparateCompiler> */
892 /* method separate_compiler#SeparateCompiler#runtime_type_analysis= for (self: Object, nullable RapidTypeAnalysis) */
893 void VIRTUAL_separate_compiler__SeparateCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
894 separate_compiler__SeparateCompiler__runtime_type_analysis_61d(self
, p0
);
897 /* method separate_compiler#SeparateCompiler#undead_types for (self: SeparateCompiler): Set[MType] */
898 val
* separate_compiler__SeparateCompiler__undead_types(val
* self
) {
899 val
* var
/* : Set[MType] */;
900 val
* var1
/* : Set[MType] */;
901 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dundead_types
].val
; /* @undead_types on <self:SeparateCompiler> */
903 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @undead_types");
904 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 120);
911 /* method separate_compiler#SeparateCompiler#undead_types for (self: Object): Set[MType] */
912 val
* VIRTUAL_separate_compiler__SeparateCompiler__undead_types(val
* self
) {
913 val
* var
/* : Set[MType] */;
914 val
* var1
/* : Set[MType] */;
915 var1
= separate_compiler__SeparateCompiler__undead_types(self
);
920 /* method separate_compiler#SeparateCompiler#undead_types= for (self: SeparateCompiler, Set[MType]) */
921 void separate_compiler__SeparateCompiler__undead_types_61d(val
* self
, val
* p0
) {
922 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dundead_types
].val
= p0
; /* @undead_types on <self:SeparateCompiler> */
925 /* method separate_compiler#SeparateCompiler#undead_types= for (self: Object, Set[MType]) */
926 void VIRTUAL_separate_compiler__SeparateCompiler__undead_types_61d(val
* self
, val
* p0
) {
927 separate_compiler__SeparateCompiler__undead_types_61d(self
, p0
);
930 /* method separate_compiler#SeparateCompiler#live_unresolved_types for (self: SeparateCompiler): Map[MClassDef, Set[MType]] */
931 val
* separate_compiler__SeparateCompiler__live_unresolved_types(val
* self
) {
932 val
* var
/* : Map[MClassDef, Set[MType]] */;
933 val
* var1
/* : Map[MClassDef, Set[MType]] */;
934 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dlive_unresolved_types
].val
; /* @live_unresolved_types on <self:SeparateCompiler> */
936 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @live_unresolved_types");
937 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 121);
944 /* method separate_compiler#SeparateCompiler#live_unresolved_types for (self: Object): Map[MClassDef, Set[MType]] */
945 val
* VIRTUAL_separate_compiler__SeparateCompiler__live_unresolved_types(val
* self
) {
946 val
* var
/* : Map[MClassDef, Set[MType]] */;
947 val
* var1
/* : Map[MClassDef, Set[MType]] */;
948 var1
= separate_compiler__SeparateCompiler__live_unresolved_types(self
);
953 /* method separate_compiler#SeparateCompiler#live_unresolved_types= for (self: SeparateCompiler, Map[MClassDef, Set[MType]]) */
954 void separate_compiler__SeparateCompiler__live_unresolved_types_61d(val
* self
, val
* p0
) {
955 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dlive_unresolved_types
].val
= p0
; /* @live_unresolved_types on <self:SeparateCompiler> */
958 /* method separate_compiler#SeparateCompiler#live_unresolved_types= for (self: Object, Map[MClassDef, Set[MType]]) */
959 void VIRTUAL_separate_compiler__SeparateCompiler__live_unresolved_types_61d(val
* self
, val
* p0
) {
960 separate_compiler__SeparateCompiler__live_unresolved_types_61d(self
, p0
);
963 /* method separate_compiler#SeparateCompiler#type_layout for (self: SeparateCompiler): nullable Layout[MType] */
964 val
* separate_compiler__SeparateCompiler__type_layout(val
* self
) {
965 val
* var
/* : nullable Layout[MType] */;
966 val
* var1
/* : nullable Layout[MType] */;
967 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dtype_layout
].val
; /* @type_layout on <self:SeparateCompiler> */
972 /* method separate_compiler#SeparateCompiler#type_layout for (self: Object): nullable Layout[MType] */
973 val
* VIRTUAL_separate_compiler__SeparateCompiler__type_layout(val
* self
) {
974 val
* var
/* : nullable Layout[MType] */;
975 val
* var1
/* : nullable Layout[MType] */;
976 var1
= separate_compiler__SeparateCompiler__type_layout(self
);
981 /* method separate_compiler#SeparateCompiler#type_layout= for (self: SeparateCompiler, nullable Layout[MType]) */
982 void separate_compiler__SeparateCompiler__type_layout_61d(val
* self
, val
* p0
) {
983 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dtype_layout
].val
= p0
; /* @type_layout on <self:SeparateCompiler> */
986 /* method separate_compiler#SeparateCompiler#type_layout= for (self: Object, nullable Layout[MType]) */
987 void VIRTUAL_separate_compiler__SeparateCompiler__type_layout_61d(val
* self
, val
* p0
) {
988 separate_compiler__SeparateCompiler__type_layout_61d(self
, p0
);
991 /* method separate_compiler#SeparateCompiler#resolution_layout for (self: SeparateCompiler): nullable Layout[MType] */
992 val
* separate_compiler__SeparateCompiler__resolution_layout(val
* self
) {
993 val
* var
/* : nullable Layout[MType] */;
994 val
* var1
/* : nullable Layout[MType] */;
995 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dresolution_layout
].val
; /* @resolution_layout on <self:SeparateCompiler> */
1000 /* method separate_compiler#SeparateCompiler#resolution_layout for (self: Object): nullable Layout[MType] */
1001 val
* VIRTUAL_separate_compiler__SeparateCompiler__resolution_layout(val
* self
) {
1002 val
* var
/* : nullable Layout[MType] */;
1003 val
* var1
/* : nullable Layout[MType] */;
1004 var1
= separate_compiler__SeparateCompiler__resolution_layout(self
);
1009 /* method separate_compiler#SeparateCompiler#resolution_layout= for (self: SeparateCompiler, nullable Layout[MType]) */
1010 void separate_compiler__SeparateCompiler__resolution_layout_61d(val
* self
, val
* p0
) {
1011 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dresolution_layout
].val
= p0
; /* @resolution_layout on <self:SeparateCompiler> */
1014 /* method separate_compiler#SeparateCompiler#resolution_layout= for (self: Object, nullable Layout[MType]) */
1015 void VIRTUAL_separate_compiler__SeparateCompiler__resolution_layout_61d(val
* self
, val
* p0
) {
1016 separate_compiler__SeparateCompiler__resolution_layout_61d(self
, p0
);
1019 /* method separate_compiler#SeparateCompiler#method_layout for (self: SeparateCompiler): nullable Layout[PropertyLayoutElement] */
1020 val
* separate_compiler__SeparateCompiler__method_layout(val
* self
) {
1021 val
* var
/* : nullable Layout[PropertyLayoutElement] */;
1022 val
* var1
/* : nullable Layout[PropertyLayoutElement] */;
1023 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dmethod_layout
].val
; /* @method_layout on <self:SeparateCompiler> */
1028 /* method separate_compiler#SeparateCompiler#method_layout for (self: Object): nullable Layout[PropertyLayoutElement] */
1029 val
* VIRTUAL_separate_compiler__SeparateCompiler__method_layout(val
* self
) {
1030 val
* var
/* : nullable Layout[PropertyLayoutElement] */;
1031 val
* var1
/* : nullable Layout[PropertyLayoutElement] */;
1032 var1
= separate_compiler__SeparateCompiler__method_layout(self
);
1037 /* method separate_compiler#SeparateCompiler#method_layout= for (self: SeparateCompiler, nullable Layout[PropertyLayoutElement]) */
1038 void separate_compiler__SeparateCompiler__method_layout_61d(val
* self
, val
* p0
) {
1039 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dmethod_layout
].val
= p0
; /* @method_layout on <self:SeparateCompiler> */
1042 /* method separate_compiler#SeparateCompiler#method_layout= for (self: Object, nullable Layout[PropertyLayoutElement]) */
1043 void VIRTUAL_separate_compiler__SeparateCompiler__method_layout_61d(val
* self
, val
* p0
) {
1044 separate_compiler__SeparateCompiler__method_layout_61d(self
, p0
);
1047 /* method separate_compiler#SeparateCompiler#attr_layout for (self: SeparateCompiler): nullable Layout[MAttribute] */
1048 val
* separate_compiler__SeparateCompiler__attr_layout(val
* self
) {
1049 val
* var
/* : nullable Layout[MAttribute] */;
1050 val
* var1
/* : nullable Layout[MAttribute] */;
1051 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dattr_layout
].val
; /* @attr_layout on <self:SeparateCompiler> */
1056 /* method separate_compiler#SeparateCompiler#attr_layout for (self: Object): nullable Layout[MAttribute] */
1057 val
* VIRTUAL_separate_compiler__SeparateCompiler__attr_layout(val
* self
) {
1058 val
* var
/* : nullable Layout[MAttribute] */;
1059 val
* var1
/* : nullable Layout[MAttribute] */;
1060 var1
= separate_compiler__SeparateCompiler__attr_layout(self
);
1065 /* method separate_compiler#SeparateCompiler#attr_layout= for (self: SeparateCompiler, nullable Layout[MAttribute]) */
1066 void separate_compiler__SeparateCompiler__attr_layout_61d(val
* self
, val
* p0
) {
1067 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dattr_layout
].val
= p0
; /* @attr_layout on <self:SeparateCompiler> */
1070 /* method separate_compiler#SeparateCompiler#attr_layout= for (self: Object, nullable Layout[MAttribute]) */
1071 void VIRTUAL_separate_compiler__SeparateCompiler__attr_layout_61d(val
* self
, val
* p0
) {
1072 separate_compiler__SeparateCompiler__attr_layout_61d(self
, p0
);
1075 /* method separate_compiler#SeparateCompiler#init for (self: SeparateCompiler, MModule, ModelBuilder, nullable RapidTypeAnalysis) */
1076 void separate_compiler__SeparateCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1077 val
* var_mainmodule
/* var mainmodule: MModule */;
1078 val
* var_mmbuilder
/* var mmbuilder: ModelBuilder */;
1079 val
* var_runtime_type_analysis
/* var runtime_type_analysis: nullable RapidTypeAnalysis */;
1080 static val
* varonce
;
1081 val
* var
/* : String */;
1082 char* var1
/* : NativeString */;
1083 long var2
/* : Int */;
1084 val
* var3
/* : String */;
1085 val
* var4
/* : CodeFile */;
1086 val
* var_file
/* var file: CodeFile */;
1087 val
* var5
/* : CodeWriter */;
1088 var_mainmodule
= p0
;
1090 var_runtime_type_analysis
= p2
;
1091 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__init
]))(self
, var_mainmodule
, var_mmbuilder
) /* init on <self:SeparateCompiler>*/;
1095 var1
= "nit.common";
1097 var3
= string__NativeString__to_s_with_length(var1
, var2
);
1101 var4
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(self
, var
) /* new_file on <self:SeparateCompiler>*/;
1103 var5
= NEW_abstract_compiler__CodeWriter(&type_abstract_compiler__CodeWriter
);
1104 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_compiler__CodeWriter__init
]))(var5
, var_file
) /* init on <var5:CodeWriter>*/;
1105 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header_61d
]))(self
, var5
) /* header= on <self:SeparateCompiler>*/;
1106 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis_61d
]))(self
, var_runtime_type_analysis
) /* runtime_type_analysis= on <self:SeparateCompiler>*/;
1107 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_box_kinds
]))(self
) /* compile_box_kinds on <self:SeparateCompiler>*/;
1110 /* method separate_compiler#SeparateCompiler#init for (self: Object, MModule, ModelBuilder, nullable RapidTypeAnalysis) */
1111 void VIRTUAL_separate_compiler__SeparateCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1112 separate_compiler__SeparateCompiler__init(self
, p0
, p1
, p2
);
1115 /* method separate_compiler#SeparateCompiler#compile_header_structs for (self: SeparateCompiler) */
1116 void separate_compiler__SeparateCompiler__compile_header_structs(val
* self
) {
1117 val
* var
/* : CodeWriter */;
1118 static val
* varonce
;
1119 val
* var1
/* : String */;
1120 char* var2
/* : NativeString */;
1121 long var3
/* : Int */;
1122 val
* var4
/* : String */;
1123 val
* var5
/* : CodeWriter */;
1124 static val
* varonce6
;
1125 val
* var7
/* : String */;
1126 char* var8
/* : NativeString */;
1127 long var9
/* : Int */;
1128 val
* var10
/* : String */;
1129 val
* var11
/* : CodeWriter */;
1130 static val
* varonce12
;
1131 val
* var13
/* : String */;
1132 char* var14
/* : NativeString */;
1133 long var15
/* : Int */;
1134 val
* var16
/* : String */;
1135 val
* var17
/* : CodeWriter */;
1136 static val
* varonce18
;
1137 val
* var19
/* : String */;
1138 char* var20
/* : NativeString */;
1139 long var21
/* : Int */;
1140 val
* var22
/* : String */;
1141 short int var23
/* : Bool */;
1142 val
* var24
/* : ModelBuilder */;
1143 val
* var25
/* : ToolContext */;
1144 val
* var26
/* : OptionBool */;
1145 val
* var27
/* : nullable Object */;
1146 short int var28
/* : Bool */;
1147 short int var_
/* var : Bool */;
1148 val
* var29
/* : ModelBuilder */;
1149 val
* var30
/* : ToolContext */;
1150 val
* var31
/* : OptionBool */;
1151 val
* var32
/* : nullable Object */;
1152 short int var33
/* : Bool */;
1153 val
* var34
/* : CodeWriter */;
1154 static val
* varonce35
;
1155 val
* var36
/* : String */;
1156 char* var37
/* : NativeString */;
1157 long var38
/* : Int */;
1158 val
* var39
/* : String */;
1159 val
* var40
/* : CodeWriter */;
1160 static val
* varonce41
;
1161 val
* var42
/* : String */;
1162 char* var43
/* : NativeString */;
1163 long var44
/* : Int */;
1164 val
* var45
/* : String */;
1165 val
* var46
/* : ModelBuilder */;
1166 val
* var47
/* : ToolContext */;
1167 val
* var48
/* : OptionBool */;
1168 val
* var49
/* : nullable Object */;
1169 short int var50
/* : Bool */;
1170 val
* var51
/* : CodeWriter */;
1171 static val
* varonce52
;
1172 val
* var53
/* : String */;
1173 char* var54
/* : NativeString */;
1174 long var55
/* : Int */;
1175 val
* var56
/* : String */;
1176 val
* var57
/* : ModelBuilder */;
1177 val
* var58
/* : ToolContext */;
1178 val
* var59
/* : OptionBool */;
1179 val
* var60
/* : nullable Object */;
1180 short int var61
/* : Bool */;
1181 val
* var62
/* : CodeWriter */;
1182 static val
* varonce63
;
1183 val
* var64
/* : String */;
1184 char* var65
/* : NativeString */;
1185 long var66
/* : Int */;
1186 val
* var67
/* : String */;
1187 val
* var68
/* : CodeWriter */;
1188 static val
* varonce69
;
1189 val
* var70
/* : String */;
1190 char* var71
/* : NativeString */;
1191 long var72
/* : Int */;
1192 val
* var73
/* : String */;
1193 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1197 var2
= "typedef void(*nitmethod_t)(void); /* general C type representing a Nit method. */";
1199 var4
= string__NativeString__to_s_with_length(var2
, var3
);
1203 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var
, var1
) /* add_decl on <var:CodeWriter>*/;
1204 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_header_attribute_structs
]))(self
) /* compile_header_attribute_structs on <self:SeparateCompiler>*/;
1205 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1209 var8
= "struct class { int box_kind; nitmethod_t vft[]; }; /* general C type representing a Nit class. */";
1211 var10
= string__NativeString__to_s_with_length(var8
, var9
);
1215 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var5
, var7
) /* add_decl on <var5:CodeWriter>*/;
1216 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1220 var14
= "struct type { int id; const char *name; int color; short int is_nullable; const struct types *resolution_table; int table_size; int type_table[]; }; /* general C type representing a Nit type. */";
1222 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1226 ((void (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var11
, var13
) /* add_decl on <var11:CodeWriter>*/;
1227 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1231 var20
= "struct instance { const struct type *type; const struct class *class; nitattribute_t attrs[]; }; /* general C type representing a Nit instance. */";
1233 var22
= string__NativeString__to_s_with_length(var20
, var21
);
1237 ((void (*)(val
*, val
*))(var17
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var17
, var19
) /* add_decl on <var17:CodeWriter>*/;
1238 var24
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
1239 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var24
) /* toolcontext on <var24:ModelBuilder>*/;
1240 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var25
) /* opt_phmod_typing on <var25:ToolContext>*/;
1241 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_opts__Option__value
]))(var26
) /* value on <var26:OptionBool>*/;
1242 var28
= ((struct instance_kernel__Bool
*)var27
)->value
; /* autounbox from nullable Object to Bool */;
1247 var29
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
1248 var30
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var29
) /* toolcontext on <var29:ModelBuilder>*/;
1249 var31
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var30
) /* opt_phand_typing on <var30:ToolContext>*/;
1250 var32
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_opts__Option__value
]))(var31
) /* value on <var31:OptionBool>*/;
1251 var33
= ((struct instance_kernel__Bool
*)var32
)->value
; /* autounbox from nullable Object to Bool */;
1255 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1259 var37
= "struct types { int mask; const struct type *types[]; }; /* a list types (used for vts, fts and unresolved lists). */";
1261 var39
= string__NativeString__to_s_with_length(var37
, var38
);
1265 ((void (*)(val
*, val
*))(var34
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var34
, var36
) /* add_decl on <var34:CodeWriter>*/;
1267 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1271 var43
= "struct types { int dummy; const struct type *types[]; }; /* a list types (used for vts, fts and unresolved lists). */";
1273 var45
= string__NativeString__to_s_with_length(var43
, var44
);
1277 ((void (*)(val
*, val
*))(var40
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var40
, var42
) /* add_decl on <var40:CodeWriter>*/;
1279 var46
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
1280 var47
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var46
) /* toolcontext on <var46:ModelBuilder>*/;
1281 var48
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var47
) /* opt_phmod_typing on <var47:ToolContext>*/;
1282 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_opts__Option__value
]))(var48
) /* value on <var48:OptionBool>*/;
1283 var50
= ((struct instance_kernel__Bool
*)var49
)->value
; /* autounbox from nullable Object to Bool */;
1285 var51
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1289 var54
= "#define HASH(mask, id) ((mask)%(id))";
1291 var56
= string__NativeString__to_s_with_length(var54
, var55
);
1295 ((void (*)(val
*, val
*))(var51
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var51
, var53
) /* add_decl on <var51:CodeWriter>*/;
1297 var57
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
1298 var58
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var57
) /* toolcontext on <var57:ModelBuilder>*/;
1299 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var58
) /* opt_phand_typing on <var58:ToolContext>*/;
1300 var60
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_opts__Option__value
]))(var59
) /* value on <var59:OptionBool>*/;
1301 var61
= ((struct instance_kernel__Bool
*)var60
)->value
; /* autounbox from nullable Object to Bool */;
1303 var62
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1307 var65
= "#define HASH(mask, id) ((mask)&(id))";
1309 var67
= string__NativeString__to_s_with_length(var65
, var66
);
1313 ((void (*)(val
*, val
*))(var62
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var62
, var64
) /* add_decl on <var62:CodeWriter>*/;
1317 var68
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1321 var71
= "typedef struct instance val; /* general C type representing a Nit instance. */";
1323 var73
= string__NativeString__to_s_with_length(var71
, var72
);
1327 ((void (*)(val
*, val
*))(var68
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var68
, var70
) /* add_decl on <var68:CodeWriter>*/;
1330 /* method separate_compiler#SeparateCompiler#compile_header_structs for (self: Object) */
1331 void VIRTUAL_separate_compiler__SeparateCompiler__compile_header_structs(val
* self
) {
1332 separate_compiler__SeparateCompiler__compile_header_structs(self
);
1335 /* method separate_compiler#SeparateCompiler#compile_header_attribute_structs for (self: SeparateCompiler) */
1336 void separate_compiler__SeparateCompiler__compile_header_attribute_structs(val
* self
) {
1337 val
* var
/* : ModelBuilder */;
1338 val
* var1
/* : ToolContext */;
1339 val
* var2
/* : OptionBool */;
1340 val
* var3
/* : nullable Object */;
1341 short int var4
/* : Bool */;
1342 val
* var5
/* : CodeWriter */;
1343 static val
* varonce
;
1344 val
* var6
/* : String */;
1345 char* var7
/* : NativeString */;
1346 long var8
/* : Int */;
1347 val
* var9
/* : String */;
1348 val
* var10
/* : CodeWriter */;
1349 static val
* varonce11
;
1350 val
* var12
/* : String */;
1351 char* var13
/* : NativeString */;
1352 long var14
/* : Int */;
1353 val
* var15
/* : String */;
1354 val
* var16
/* : CodeWriter */;
1355 static val
* varonce17
;
1356 val
* var18
/* : String */;
1357 char* var19
/* : NativeString */;
1358 long var20
/* : Int */;
1359 val
* var21
/* : String */;
1360 val
* var22
/* : HashMap[MClass, Int] */;
1361 val
* var23
/* : MapIterator[Object, nullable Object] */;
1362 short int var24
/* : Bool */;
1363 val
* var25
/* : Object */;
1364 val
* var_c
/* var c: MClass */;
1365 val
* var26
/* : nullable Object */;
1366 long var_v
/* var v: Int */;
1367 long var27
/* : Int */;
1368 val
* var28
/* : MClassType */;
1369 val
* var_t
/* var t: MClassType */;
1370 val
* var29
/* : CodeWriter */;
1371 val
* var30
/* : String */;
1372 static val
* varonce31
;
1373 val
* var32
/* : String */;
1374 char* var33
/* : NativeString */;
1375 long var34
/* : Int */;
1376 val
* var35
/* : String */;
1377 val
* var36
/* : String */;
1378 static val
* varonce37
;
1379 val
* var38
/* : String */;
1380 char* var39
/* : NativeString */;
1381 long var40
/* : Int */;
1382 val
* var41
/* : String */;
1383 val
* var42
/* : Array[Object] */;
1384 long var43
/* : Int */;
1385 val
* var44
/* : NativeArray[Object] */;
1386 val
* var45
/* : String */;
1387 val
* var46
/* : CodeWriter */;
1388 static val
* varonce47
;
1389 val
* var48
/* : String */;
1390 char* var49
/* : NativeString */;
1391 long var50
/* : Int */;
1392 val
* var51
/* : String */;
1393 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
1394 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var
) /* toolcontext on <var:ModelBuilder>*/;
1395 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_separate_compiler__ToolContext__opt_no_union_attribute
]))(var1
) /* opt_no_union_attribute on <var1:ToolContext>*/;
1396 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_opts__Option__value
]))(var2
) /* value on <var2:OptionBool>*/;
1397 var4
= ((struct instance_kernel__Bool
*)var3
)->value
; /* autounbox from nullable Object to Bool */;
1399 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1403 var7
= "typedef void* nitattribute_t; /* general C type representing a Nit attribute. */";
1405 var9
= string__NativeString__to_s_with_length(var7
, var8
);
1409 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var5
, var6
) /* add_decl on <var5:CodeWriter>*/;
1411 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1415 var13
= "typedef union {";
1417 var15
= string__NativeString__to_s_with_length(var13
, var14
);
1421 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var10
, var12
) /* add_decl on <var10:CodeWriter>*/;
1422 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1426 var19
= "void* val;";
1428 var21
= string__NativeString__to_s_with_length(var19
, var20
);
1432 ((void (*)(val
*, val
*))(var16
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var16
, var18
) /* add_decl on <var16:CodeWriter>*/;
1433 var22
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
1434 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var22
) /* iterator on <var22:HashMap[MClass, Int]>*/;
1436 var24
= ((short int (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var23
) /* is_ok on <var23:MapIterator[Object, nullable Object]>*/;
1438 var25
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var23
) /* key on <var23:MapIterator[Object, nullable Object]>*/;
1440 var26
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var23
) /* item on <var23:MapIterator[Object, nullable Object]>*/;
1441 var27
= ((struct instance_kernel__Int
*)var26
)->value
; /* autounbox from nullable Object to Int */;
1443 var28
= ((val
* (*)(val
*))(var_c
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c
) /* mclass_type on <var_c:MClass>*/;
1445 var29
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1446 var30
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t
) /* ctype on <var_t:MClassType>*/;
1452 var35
= string__NativeString__to_s_with_length(var33
, var34
);
1456 var36
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctypename
]))(var_t
) /* ctypename on <var_t:MClassType>*/;
1462 var41
= string__NativeString__to_s_with_length(var39
, var40
);
1466 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
1467 { /* var42 = array_instance Array[Object] */
1469 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
1470 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var30
;
1471 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var32
;
1472 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var36
;
1473 ((struct instance_array__NativeArray
*)var44
)->values
[3] = (val
*) var38
;
1474 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
1476 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
1477 ((void (*)(val
*, val
*))(var29
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var29
, var45
) /* add_decl on <var29:CodeWriter>*/;
1478 CONTINUE_label
: (void)0;
1479 ((void (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var23
) /* next on <var23:MapIterator[Object, nullable Object]>*/;
1481 BREAK_label
: (void)0;
1482 var46
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1486 var49
= "} nitattribute_t; /* general C type representing a Nit attribute. */";
1488 var51
= string__NativeString__to_s_with_length(var49
, var50
);
1492 ((void (*)(val
*, val
*))(var46
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var46
, var48
) /* add_decl on <var46:CodeWriter>*/;
1496 /* method separate_compiler#SeparateCompiler#compile_header_attribute_structs for (self: Object) */
1497 void VIRTUAL_separate_compiler__SeparateCompiler__compile_header_attribute_structs(val
* self
) {
1498 separate_compiler__SeparateCompiler__compile_header_attribute_structs(self
);
1501 /* method separate_compiler#SeparateCompiler#compile_box_kinds for (self: SeparateCompiler) */
1502 void separate_compiler__SeparateCompiler__compile_box_kinds(val
* self
) {
1503 val
* var
/* : Array[String] */;
1504 long var1
/* : Int */;
1505 val
* var_
/* var : Array[String] */;
1506 static val
* varonce
;
1507 val
* var2
/* : String */;
1508 char* var3
/* : NativeString */;
1509 long var4
/* : Int */;
1510 val
* var5
/* : String */;
1511 static val
* varonce6
;
1512 val
* var7
/* : String */;
1513 char* var8
/* : NativeString */;
1514 long var9
/* : Int */;
1515 val
* var10
/* : String */;
1516 static val
* varonce11
;
1517 val
* var12
/* : String */;
1518 char* var13
/* : NativeString */;
1519 long var14
/* : Int */;
1520 val
* var15
/* : String */;
1521 static val
* varonce16
;
1522 val
* var17
/* : String */;
1523 char* var18
/* : NativeString */;
1524 long var19
/* : Int */;
1525 val
* var20
/* : String */;
1526 static val
* varonce21
;
1527 val
* var22
/* : String */;
1528 char* var23
/* : NativeString */;
1529 long var24
/* : Int */;
1530 val
* var25
/* : String */;
1531 static val
* varonce26
;
1532 val
* var27
/* : String */;
1533 char* var28
/* : NativeString */;
1534 long var29
/* : Int */;
1535 val
* var30
/* : String */;
1536 val
* var31
/* : Iterator[nullable Object] */;
1537 short int var32
/* : Bool */;
1538 val
* var33
/* : nullable Object */;
1539 val
* var_classname
/* var classname: String */;
1540 val
* var34
/* : MModule */;
1541 val
* var35
/* : Model */;
1542 val
* var36
/* : nullable Array[MClass] */;
1543 val
* var_classes
/* var classes: nullable Array[MClass] */;
1544 val
* var37
/* : null */;
1545 short int var38
/* : Bool */;
1546 long var39
/* : Int */;
1547 long var40
/* : Int */;
1548 short int var41
/* : Bool */;
1549 short int var43
/* : Bool */;
1550 static val
* varonce44
;
1551 val
* var45
/* : String */;
1552 char* var46
/* : NativeString */;
1553 long var47
/* : Int */;
1554 val
* var48
/* : String */;
1555 val
* var49
/* : String */;
1556 val
* var50
/* : HashMap[MClass, Int] */;
1557 val
* var51
/* : nullable Object */;
1558 val
* var52
/* : HashMap[MClass, Int] */;
1559 long var53
/* : Int */;
1560 long var54
/* : Int */;
1561 long var55
/* : Int */;
1562 long var57
/* : Int */;
1563 val
* var58
/* : nullable Object */;
1564 var
= NEW_array__Array(&type_array__Arraystring__String
);
1566 ((void (*)(val
*, long))(var
->class->vft
[COLOR_array__Array__with_capacity
]))(var
, var1
) /* with_capacity on <var:Array[String]>*/;
1573 var5
= string__NativeString__to_s_with_length(var3
, var4
);
1577 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var2
) /* push on <var_:Array[String]>*/;
1583 var10
= string__NativeString__to_s_with_length(var8
, var9
);
1587 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var7
) /* push on <var_:Array[String]>*/;
1593 var15
= string__NativeString__to_s_with_length(var13
, var14
);
1597 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var12
) /* push on <var_:Array[String]>*/;
1603 var20
= string__NativeString__to_s_with_length(var18
, var19
);
1607 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var17
) /* push on <var_:Array[String]>*/;
1611 var23
= "NativeString";
1613 var25
= string__NativeString__to_s_with_length(var23
, var24
);
1617 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var22
) /* push on <var_:Array[String]>*/;
1623 var30
= string__NativeString__to_s_with_length(var28
, var29
);
1627 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var27
) /* push on <var_:Array[String]>*/;
1628 var31
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Array[String]>*/;
1630 var32
= ((short int (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var31
) /* is_ok on <var31:Iterator[nullable Object]>*/;
1632 var33
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var31
) /* item on <var31:Iterator[nullable Object]>*/;
1633 var_classname
= var33
;
1634 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
1635 var35
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_mmodule__MModule__model
]))(var34
) /* model on <var34:MModule>*/;
1636 var36
= ((val
* (*)(val
*, val
*))(var35
->class->vft
[COLOR_model__Model__get_mclasses_by_name
]))(var35
, var_classname
) /* get_mclasses_by_name on <var35:Model>*/;
1637 var_classes
= var36
;
1639 if (var_classes
== NULL
) {
1640 var38
= 1; /* is null */
1642 var38
= 0; /* arg is null but recv is not */
1645 goto CONTINUE_label
;
1648 var39
= ((long (*)(val
*))(var_classes
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_classes
) /* length on <var_classes:nullable Array[MClass](Array[MClass])>*/;
1650 { /* Inline kernel#Int#== (var39,var40) */
1651 var43
= var39
== var40
;
1654 RET_LABEL42
:(void)0;
1662 var48
= string__NativeString__to_s_with_length(var46
, var47
);
1666 var49
= ((val
* (*)(val
*, val
*))(var_classes
->class->vft
[COLOR_string__Collection__join
]))(var_classes
, var45
) /* join on <var_classes:nullable Array[MClass](Array[MClass])>*/;
1667 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var49
) /* print on <self:SeparateCompiler>*/;
1668 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1669 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 182);
1672 var50
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
1673 var51
= ((val
* (*)(val
*))(var_classes
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_classes
) /* first on <var_classes:nullable Array[MClass](Array[MClass])>*/;
1674 var52
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
1675 var53
= ((long (*)(val
*))(var52
->class->vft
[COLOR_abstract_collection__MapRead__length
]))(var52
) /* length on <var52:HashMap[MClass, Int]>*/;
1677 { /* Inline kernel#Int#+ (var53,var54) */
1678 var57
= var53
+ var54
;
1681 RET_LABEL56
:(void)0;
1683 var58
= BOX_kernel__Int(var55
); /* autobox from Int to nullable Object */
1684 ((void (*)(val
*, val
*, val
*))(var50
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var50
, var51
, var58
) /* []= on <var50:HashMap[MClass, Int]>*/;
1685 CONTINUE_label
: (void)0;
1686 ((void (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var31
) /* next on <var31:Iterator[nullable Object]>*/;
1688 BREAK_label
: (void)0;
1691 /* method separate_compiler#SeparateCompiler#compile_box_kinds for (self: Object) */
1692 void VIRTUAL_separate_compiler__SeparateCompiler__compile_box_kinds(val
* self
) {
1693 separate_compiler__SeparateCompiler__compile_box_kinds(self
);
1696 /* method separate_compiler#SeparateCompiler#box_kinds for (self: SeparateCompiler): HashMap[MClass, Int] */
1697 val
* separate_compiler__SeparateCompiler__box_kinds(val
* self
) {
1698 val
* var
/* : HashMap[MClass, Int] */;
1699 val
* var1
/* : HashMap[MClass, Int] */;
1700 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dbox_kinds
].val
; /* @box_kinds on <self:SeparateCompiler> */
1702 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @box_kinds");
1703 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 187);
1710 /* method separate_compiler#SeparateCompiler#box_kinds for (self: Object): HashMap[MClass, Int] */
1711 val
* VIRTUAL_separate_compiler__SeparateCompiler__box_kinds(val
* self
) {
1712 val
* var
/* : HashMap[MClass, Int] */;
1713 val
* var1
/* : HashMap[MClass, Int] */;
1714 var1
= separate_compiler__SeparateCompiler__box_kinds(self
);
1719 /* method separate_compiler#SeparateCompiler#box_kinds= for (self: SeparateCompiler, HashMap[MClass, Int]) */
1720 void separate_compiler__SeparateCompiler__box_kinds_61d(val
* self
, val
* p0
) {
1721 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dbox_kinds
].val
= p0
; /* @box_kinds on <self:SeparateCompiler> */
1724 /* method separate_compiler#SeparateCompiler#box_kinds= for (self: Object, HashMap[MClass, Int]) */
1725 void VIRTUAL_separate_compiler__SeparateCompiler__box_kinds_61d(val
* self
, val
* p0
) {
1726 separate_compiler__SeparateCompiler__box_kinds_61d(self
, p0
);
1729 /* method separate_compiler#SeparateCompiler#box_kind_of for (self: SeparateCompiler, MClass): Int */
1730 long separate_compiler__SeparateCompiler__box_kind_of(val
* self
, val
* p0
) {
1731 long var
/* : Int */;
1732 val
* var_mclass
/* var mclass: MClass */;
1733 val
* var1
/* : MClassType */;
1734 val
* var2
/* : String */;
1735 static val
* varonce
;
1736 val
* var3
/* : String */;
1737 char* var4
/* : NativeString */;
1738 long var5
/* : Int */;
1739 val
* var6
/* : String */;
1740 short int var7
/* : Bool */;
1741 long var8
/* : Int */;
1742 val
* var9
/* : MClassKind */;
1743 val
* var10
/* : MClassKind */;
1744 short int var11
/* : Bool */;
1745 val
* var12
/* : HashMap[MClass, Int] */;
1746 val
* var13
/* : MModule */;
1747 static val
* varonce14
;
1748 val
* var15
/* : String */;
1749 char* var16
/* : NativeString */;
1750 long var17
/* : Int */;
1751 val
* var18
/* : String */;
1752 val
* var19
/* : MClass */;
1753 val
* var20
/* : nullable Object */;
1754 long var21
/* : Int */;
1755 val
* var22
/* : HashMap[MClass, Int] */;
1756 val
* var23
/* : nullable Object */;
1757 long var24
/* : Int */;
1759 var1
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:MClass>*/;
1760 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var1
) /* ctype on <var1:MClassType>*/;
1766 var6
= string__NativeString__to_s_with_length(var4
, var5
);
1770 var7
= ((short int (*)(val
*, val
*))(var2
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var2
, var3
) /* == on <var2:String>*/;
1776 var9
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__kind
]))(var_mclass
) /* kind on <var_mclass:MClass>*/;
1777 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__extern_kind
]))(self
) /* extern_kind on <self:SeparateCompiler>*/;
1778 var11
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var9
, var10
) /* == on <var9:MClassKind>*/;
1780 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
1781 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
1787 var18
= string__NativeString__to_s_with_length(var16
, var17
);
1791 var19
= ((val
* (*)(val
*, val
*))(var13
->class->vft
[COLOR_model__MModule__get_primitive_class
]))(var13
, var15
) /* get_primitive_class on <var13:MModule>*/;
1792 var20
= ((val
* (*)(val
*, val
*))(var12
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var12
, var19
) /* [] on <var12:HashMap[MClass, Int]>*/;
1793 var21
= ((struct instance_kernel__Int
*)var20
)->value
; /* autounbox from nullable Object to Int */;
1797 var22
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
1798 var23
= ((val
* (*)(val
*, val
*))(var22
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var22
, var_mclass
) /* [] on <var22:HashMap[MClass, Int]>*/;
1799 var24
= ((struct instance_kernel__Int
*)var23
)->value
; /* autounbox from nullable Object to Int */;
1807 /* method separate_compiler#SeparateCompiler#box_kind_of for (self: Object, MClass): Int */
1808 long VIRTUAL_separate_compiler__SeparateCompiler__box_kind_of(val
* self
, val
* p0
) {
1809 long var
/* : Int */;
1810 long var1
/* : Int */;
1811 var1
= separate_compiler__SeparateCompiler__box_kind_of(self
, p0
);
1816 /* method separate_compiler#SeparateCompiler#compile_color_consts for (self: SeparateCompiler, Map[Object, Int]) */
1817 void separate_compiler__SeparateCompiler__compile_color_consts(val
* self
, val
* p0
) {
1818 val
* var_colors
/* var colors: Map[Object, Int] */;
1819 val
* var
/* : AbstractCompilerVisitor */;
1820 val
* var_v
/* var v: SeparateCompilerVisitor */;
1821 val
* var1
/* : MapIterator[Object, nullable Object] */;
1822 short int var2
/* : Bool */;
1823 val
* var3
/* : Object */;
1824 val
* var_m
/* var m: Object */;
1825 val
* var4
/* : nullable Object */;
1826 long var_c
/* var c: Int */;
1827 long var5
/* : Int */;
1829 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
1831 var1
= ((val
* (*)(val
*))(var_colors
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_colors
) /* iterator on <var_colors:Map[Object, Int]>*/;
1833 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var1
) /* is_ok on <var1:MapIterator[Object, nullable Object]>*/;
1835 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var1
) /* key on <var1:MapIterator[Object, nullable Object]>*/;
1837 var4
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var1
) /* item on <var1:MapIterator[Object, nullable Object]>*/;
1838 var5
= ((struct instance_kernel__Int
*)var4
)->value
; /* autounbox from nullable Object to Int */;
1840 ((void (*)(val
*, val
*, val
*, long))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_color_const
]))(self
, var_v
, var_m
, var_c
) /* compile_color_const on <self:SeparateCompiler>*/;
1841 CONTINUE_label
: (void)0;
1842 ((void (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var1
) /* next on <var1:MapIterator[Object, nullable Object]>*/;
1844 BREAK_label
: (void)0;
1847 /* method separate_compiler#SeparateCompiler#compile_color_consts for (self: Object, Map[Object, Int]) */
1848 void VIRTUAL_separate_compiler__SeparateCompiler__compile_color_consts(val
* self
, val
* p0
) {
1849 separate_compiler__SeparateCompiler__compile_color_consts(self
, p0
);
1852 /* method separate_compiler#SeparateCompiler#compile_color_const for (self: SeparateCompiler, SeparateCompilerVisitor, Object, Int) */
1853 void separate_compiler__SeparateCompiler__compile_color_const(val
* self
, val
* p0
, val
* p1
, long p2
) {
1854 val
* var_v
/* var v: SeparateCompilerVisitor */;
1855 val
* var_m
/* var m: Object */;
1856 long var_color
/* var color: Int */;
1857 val
* var
/* : HashSet[Object] */;
1858 short int var1
/* : Bool */;
1859 short int var2
/* : Bool */;
1862 val
* var3
/* : ModelBuilder */;
1863 val
* var4
/* : ToolContext */;
1864 val
* var5
/* : OptionBool */;
1865 val
* var6
/* : nullable Object */;
1866 short int var7
/* : Bool */;
1867 val
* var8
/* : String */;
1868 static val
* varonce
;
1869 val
* var9
/* : String */;
1870 char* var10
/* : NativeString */;
1871 long var11
/* : Int */;
1872 val
* var12
/* : String */;
1873 val
* var13
/* : String */;
1874 static val
* varonce14
;
1875 val
* var15
/* : String */;
1876 char* var16
/* : NativeString */;
1877 long var17
/* : Int */;
1878 val
* var18
/* : String */;
1879 val
* var19
/* : Array[Object] */;
1880 long var20
/* : Int */;
1881 val
* var21
/* : NativeArray[Object] */;
1882 val
* var22
/* : Object */;
1883 val
* var23
/* : String */;
1884 val
* var24
/* : String */;
1885 static val
* varonce25
;
1886 val
* var26
/* : String */;
1887 char* var27
/* : NativeString */;
1888 long var28
/* : Int */;
1889 val
* var29
/* : String */;
1890 val
* var30
/* : String */;
1891 static val
* varonce31
;
1892 val
* var32
/* : String */;
1893 char* var33
/* : NativeString */;
1894 long var34
/* : Int */;
1895 val
* var35
/* : String */;
1896 val
* var36
/* : Array[Object] */;
1897 long var37
/* : Int */;
1898 val
* var38
/* : NativeArray[Object] */;
1899 val
* var39
/* : String */;
1900 static val
* varonce40
;
1901 val
* var41
/* : String */;
1902 char* var42
/* : NativeString */;
1903 long var43
/* : Int */;
1904 val
* var44
/* : String */;
1905 val
* var45
/* : String */;
1906 static val
* varonce46
;
1907 val
* var47
/* : String */;
1908 char* var48
/* : NativeString */;
1909 long var49
/* : Int */;
1910 val
* var50
/* : String */;
1911 static val
* varonce51
;
1912 val
* var52
/* : String */;
1913 char* var53
/* : NativeString */;
1914 long var54
/* : Int */;
1915 val
* var55
/* : String */;
1916 val
* var56
/* : Array[Object] */;
1917 long var57
/* : Int */;
1918 val
* var58
/* : NativeArray[Object] */;
1919 val
* var59
/* : Object */;
1920 val
* var60
/* : String */;
1921 short int var61
/* : Bool */;
1924 val
* var64
/* : ModelBuilder */;
1925 val
* var65
/* : ToolContext */;
1926 val
* var66
/* : OptionBool */;
1927 val
* var67
/* : nullable Object */;
1928 short int var68
/* : Bool */;
1929 val
* var69
/* : String */;
1930 static val
* varonce70
;
1931 val
* var71
/* : String */;
1932 char* var72
/* : NativeString */;
1933 long var73
/* : Int */;
1934 val
* var74
/* : String */;
1935 val
* var75
/* : String */;
1936 static val
* varonce76
;
1937 val
* var77
/* : String */;
1938 char* var78
/* : NativeString */;
1939 long var79
/* : Int */;
1940 val
* var80
/* : String */;
1941 val
* var81
/* : Array[Object] */;
1942 long var82
/* : Int */;
1943 val
* var83
/* : NativeArray[Object] */;
1944 val
* var84
/* : Object */;
1945 val
* var85
/* : String */;
1946 val
* var86
/* : String */;
1947 static val
* varonce87
;
1948 val
* var88
/* : String */;
1949 char* var89
/* : NativeString */;
1950 long var90
/* : Int */;
1951 val
* var91
/* : String */;
1952 val
* var92
/* : String */;
1953 static val
* varonce93
;
1954 val
* var94
/* : String */;
1955 char* var95
/* : NativeString */;
1956 long var96
/* : Int */;
1957 val
* var97
/* : String */;
1958 val
* var98
/* : Array[Object] */;
1959 long var99
/* : Int */;
1960 val
* var100
/* : NativeArray[Object] */;
1961 val
* var101
/* : String */;
1962 static val
* varonce102
;
1963 val
* var103
/* : String */;
1964 char* var104
/* : NativeString */;
1965 long var105
/* : Int */;
1966 val
* var106
/* : String */;
1967 val
* var107
/* : String */;
1968 static val
* varonce108
;
1969 val
* var109
/* : String */;
1970 char* var110
/* : NativeString */;
1971 long var111
/* : Int */;
1972 val
* var112
/* : String */;
1973 static val
* varonce113
;
1974 val
* var114
/* : String */;
1975 char* var115
/* : NativeString */;
1976 long var116
/* : Int */;
1977 val
* var117
/* : String */;
1978 val
* var118
/* : Array[Object] */;
1979 long var119
/* : Int */;
1980 val
* var120
/* : NativeArray[Object] */;
1981 val
* var121
/* : Object */;
1982 val
* var122
/* : String */;
1983 short int var123
/* : Bool */;
1986 val
* var126
/* : ModelBuilder */;
1987 val
* var127
/* : ToolContext */;
1988 val
* var128
/* : OptionBool */;
1989 val
* var129
/* : nullable Object */;
1990 short int var130
/* : Bool */;
1991 val
* var131
/* : String */;
1992 static val
* varonce132
;
1993 val
* var133
/* : String */;
1994 char* var134
/* : NativeString */;
1995 long var135
/* : Int */;
1996 val
* var136
/* : String */;
1997 val
* var137
/* : String */;
1998 static val
* varonce138
;
1999 val
* var139
/* : String */;
2000 char* var140
/* : NativeString */;
2001 long var141
/* : Int */;
2002 val
* var142
/* : String */;
2003 val
* var143
/* : Array[Object] */;
2004 long var144
/* : Int */;
2005 val
* var145
/* : NativeArray[Object] */;
2006 val
* var146
/* : Object */;
2007 val
* var147
/* : String */;
2008 val
* var148
/* : String */;
2009 static val
* varonce149
;
2010 val
* var150
/* : String */;
2011 char* var151
/* : NativeString */;
2012 long var152
/* : Int */;
2013 val
* var153
/* : String */;
2014 val
* var154
/* : String */;
2015 static val
* varonce155
;
2016 val
* var156
/* : String */;
2017 char* var157
/* : NativeString */;
2018 long var158
/* : Int */;
2019 val
* var159
/* : String */;
2020 val
* var160
/* : Array[Object] */;
2021 long var161
/* : Int */;
2022 val
* var162
/* : NativeArray[Object] */;
2023 val
* var163
/* : String */;
2024 static val
* varonce164
;
2025 val
* var165
/* : String */;
2026 char* var166
/* : NativeString */;
2027 long var167
/* : Int */;
2028 val
* var168
/* : String */;
2029 val
* var169
/* : String */;
2030 static val
* varonce170
;
2031 val
* var171
/* : String */;
2032 char* var172
/* : NativeString */;
2033 long var173
/* : Int */;
2034 val
* var174
/* : String */;
2035 static val
* varonce175
;
2036 val
* var176
/* : String */;
2037 char* var177
/* : NativeString */;
2038 long var178
/* : Int */;
2039 val
* var179
/* : String */;
2040 val
* var180
/* : Array[Object] */;
2041 long var181
/* : Int */;
2042 val
* var182
/* : NativeArray[Object] */;
2043 val
* var183
/* : Object */;
2044 val
* var184
/* : String */;
2045 val
* var185
/* : HashSet[Object] */;
2049 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__color_consts_done
]))(self
) /* color_consts_done on <self:SeparateCompiler>*/;
2050 var1
= ((short int (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var
, var_m
) /* has on <var:HashSet[Object]>*/;
2055 /* <var_m:Object> isa MProperty */
2056 cltype
= type_model__MProperty
.color
;
2057 idtype
= type_model__MProperty
.id
;
2058 if(cltype
>= var_m
->type
->table_size
) {
2061 var2
= var_m
->type
->type_table
[cltype
] == idtype
;
2064 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
2065 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var3
) /* toolcontext on <var3:ModelBuilder>*/;
2066 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_separate_compiler__ToolContext__opt_inline_coloring_numbers
]))(var4
) /* opt_inline_coloring_numbers on <var4:ToolContext>*/;
2067 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_opts__Option__value
]))(var5
) /* value on <var5:OptionBool>*/;
2068 var7
= ((struct instance_kernel__Bool
*)var6
)->value
; /* autounbox from nullable Object to Bool */;
2070 var8
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var_m
) /* const_color on <var_m:Object(MProperty)>*/;
2076 var12
= string__NativeString__to_s_with_length(var10
, var11
);
2080 var13
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var_m
) /* const_color on <var_m:Object(MProperty)>*/;
2086 var18
= string__NativeString__to_s_with_length(var16
, var17
);
2090 var19
= NEW_array__Array(&type_array__Arraykernel__Object
);
2091 { /* var19 = array_instance Array[Object] */
2093 var21
= NEW_array__NativeArray(var20
, &type_array__NativeArraykernel__Object
);
2094 ((struct instance_array__NativeArray
*)var21
)->values
[0] = (val
*) var9
;
2095 ((struct instance_array__NativeArray
*)var21
)->values
[1] = (val
*) var13
;
2096 ((struct instance_array__NativeArray
*)var21
)->values
[2] = (val
*) var15
;
2097 var22
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2098 ((struct instance_array__NativeArray
*)var21
)->values
[3] = (val
*) var22
;
2099 ((void (*)(val
*, val
*, long))(var19
->class->vft
[COLOR_array__Array__with_native
]))(var19
, var21
, var20
) /* with_native on <var19:Array[Object]>*/;
2101 var23
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_string__Object__to_s
]))(var19
) /* to_s on <var19:Array[Object]>*/;
2102 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var8
, var23
) /* provide_declaration on <self:SeparateCompiler>*/;
2104 var24
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var_m
) /* const_color on <var_m:Object(MProperty)>*/;
2108 var27
= "extern const int ";
2110 var29
= string__NativeString__to_s_with_length(var27
, var28
);
2114 var30
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var_m
) /* const_color on <var_m:Object(MProperty)>*/;
2120 var35
= string__NativeString__to_s_with_length(var33
, var34
);
2124 var36
= NEW_array__Array(&type_array__Arraykernel__Object
);
2125 { /* var36 = array_instance Array[Object] */
2127 var38
= NEW_array__NativeArray(var37
, &type_array__NativeArraykernel__Object
);
2128 ((struct instance_array__NativeArray
*)var38
)->values
[0] = (val
*) var26
;
2129 ((struct instance_array__NativeArray
*)var38
)->values
[1] = (val
*) var30
;
2130 ((struct instance_array__NativeArray
*)var38
)->values
[2] = (val
*) var32
;
2131 ((void (*)(val
*, val
*, long))(var36
->class->vft
[COLOR_array__Array__with_native
]))(var36
, var38
, var37
) /* with_native on <var36:Array[Object]>*/;
2133 var39
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_string__Object__to_s
]))(var36
) /* to_s on <var36:Array[Object]>*/;
2134 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var24
, var39
) /* provide_declaration on <self:SeparateCompiler>*/;
2138 var42
= "const int ";
2140 var44
= string__NativeString__to_s_with_length(var42
, var43
);
2144 var45
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var_m
) /* const_color on <var_m:Object(MProperty)>*/;
2150 var50
= string__NativeString__to_s_with_length(var48
, var49
);
2159 var55
= string__NativeString__to_s_with_length(var53
, var54
);
2163 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
2164 { /* var56 = array_instance Array[Object] */
2166 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
2167 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var41
;
2168 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var45
;
2169 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var47
;
2170 var59
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2171 ((struct instance_array__NativeArray
*)var58
)->values
[3] = (val
*) var59
;
2172 ((struct instance_array__NativeArray
*)var58
)->values
[4] = (val
*) var52
;
2173 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
2175 var60
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
2176 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var60
) /* add on <var_v:SeparateCompilerVisitor>*/;
2179 /* <var_m:Object> isa MPropDef */
2180 cltype62
= type_model__MPropDef
.color
;
2181 idtype63
= type_model__MPropDef
.id
;
2182 if(cltype62
>= var_m
->type
->table_size
) {
2185 var61
= var_m
->type
->type_table
[cltype62
] == idtype63
;
2188 var64
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
2189 var65
= ((val
* (*)(val
*))(var64
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var64
) /* toolcontext on <var64:ModelBuilder>*/;
2190 var66
= ((val
* (*)(val
*))(var65
->class->vft
[COLOR_separate_compiler__ToolContext__opt_inline_coloring_numbers
]))(var65
) /* opt_inline_coloring_numbers on <var65:ToolContext>*/;
2191 var67
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_opts__Option__value
]))(var66
) /* value on <var66:OptionBool>*/;
2192 var68
= ((struct instance_kernel__Bool
*)var67
)->value
; /* autounbox from nullable Object to Bool */;
2194 var69
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MPropDef__const_color
]))(var_m
) /* const_color on <var_m:Object(MPropDef)>*/;
2200 var74
= string__NativeString__to_s_with_length(var72
, var73
);
2204 var75
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MPropDef__const_color
]))(var_m
) /* const_color on <var_m:Object(MPropDef)>*/;
2210 var80
= string__NativeString__to_s_with_length(var78
, var79
);
2214 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
2215 { /* var81 = array_instance Array[Object] */
2217 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
2218 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var71
;
2219 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var75
;
2220 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var77
;
2221 var84
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2222 ((struct instance_array__NativeArray
*)var83
)->values
[3] = (val
*) var84
;
2223 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
2225 var85
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
2226 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var69
, var85
) /* provide_declaration on <self:SeparateCompiler>*/;
2228 var86
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MPropDef__const_color
]))(var_m
) /* const_color on <var_m:Object(MPropDef)>*/;
2232 var89
= "extern const int ";
2234 var91
= string__NativeString__to_s_with_length(var89
, var90
);
2238 var92
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MPropDef__const_color
]))(var_m
) /* const_color on <var_m:Object(MPropDef)>*/;
2244 var97
= string__NativeString__to_s_with_length(var95
, var96
);
2248 var98
= NEW_array__Array(&type_array__Arraykernel__Object
);
2249 { /* var98 = array_instance Array[Object] */
2251 var100
= NEW_array__NativeArray(var99
, &type_array__NativeArraykernel__Object
);
2252 ((struct instance_array__NativeArray
*)var100
)->values
[0] = (val
*) var88
;
2253 ((struct instance_array__NativeArray
*)var100
)->values
[1] = (val
*) var92
;
2254 ((struct instance_array__NativeArray
*)var100
)->values
[2] = (val
*) var94
;
2255 ((void (*)(val
*, val
*, long))(var98
->class->vft
[COLOR_array__Array__with_native
]))(var98
, var100
, var99
) /* with_native on <var98:Array[Object]>*/;
2257 var101
= ((val
* (*)(val
*))(var98
->class->vft
[COLOR_string__Object__to_s
]))(var98
) /* to_s on <var98:Array[Object]>*/;
2258 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var86
, var101
) /* provide_declaration on <self:SeparateCompiler>*/;
2260 var103
= varonce102
;
2262 var104
= "const int ";
2264 var106
= string__NativeString__to_s_with_length(var104
, var105
);
2266 varonce102
= var103
;
2268 var107
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MPropDef__const_color
]))(var_m
) /* const_color on <var_m:Object(MPropDef)>*/;
2270 var109
= varonce108
;
2274 var112
= string__NativeString__to_s_with_length(var110
, var111
);
2276 varonce108
= var109
;
2279 var114
= varonce113
;
2283 var117
= string__NativeString__to_s_with_length(var115
, var116
);
2285 varonce113
= var114
;
2287 var118
= NEW_array__Array(&type_array__Arraykernel__Object
);
2288 { /* var118 = array_instance Array[Object] */
2290 var120
= NEW_array__NativeArray(var119
, &type_array__NativeArraykernel__Object
);
2291 ((struct instance_array__NativeArray
*)var120
)->values
[0] = (val
*) var103
;
2292 ((struct instance_array__NativeArray
*)var120
)->values
[1] = (val
*) var107
;
2293 ((struct instance_array__NativeArray
*)var120
)->values
[2] = (val
*) var109
;
2294 var121
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2295 ((struct instance_array__NativeArray
*)var120
)->values
[3] = (val
*) var121
;
2296 ((struct instance_array__NativeArray
*)var120
)->values
[4] = (val
*) var114
;
2297 ((void (*)(val
*, val
*, long))(var118
->class->vft
[COLOR_array__Array__with_native
]))(var118
, var120
, var119
) /* with_native on <var118:Array[Object]>*/;
2299 var122
= ((val
* (*)(val
*))(var118
->class->vft
[COLOR_string__Object__to_s
]))(var118
) /* to_s on <var118:Array[Object]>*/;
2300 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var122
) /* add on <var_v:SeparateCompilerVisitor>*/;
2303 /* <var_m:Object> isa MType */
2304 cltype124
= type_model__MType
.color
;
2305 idtype125
= type_model__MType
.id
;
2306 if(cltype124
>= var_m
->type
->table_size
) {
2309 var123
= var_m
->type
->type_table
[cltype124
] == idtype125
;
2312 var126
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
2313 var127
= ((val
* (*)(val
*))(var126
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var126
) /* toolcontext on <var126:ModelBuilder>*/;
2314 var128
= ((val
* (*)(val
*))(var127
->class->vft
[COLOR_separate_compiler__ToolContext__opt_inline_coloring_numbers
]))(var127
) /* opt_inline_coloring_numbers on <var127:ToolContext>*/;
2315 var129
= ((val
* (*)(val
*))(var128
->class->vft
[COLOR_opts__Option__value
]))(var128
) /* value on <var128:OptionBool>*/;
2316 var130
= ((struct instance_kernel__Bool
*)var129
)->value
; /* autounbox from nullable Object to Bool */;
2318 var131
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MType__const_color
]))(var_m
) /* const_color on <var_m:Object(MType)>*/;
2320 var133
= varonce132
;
2322 var134
= "#define ";
2324 var136
= string__NativeString__to_s_with_length(var134
, var135
);
2326 varonce132
= var133
;
2328 var137
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MType__const_color
]))(var_m
) /* const_color on <var_m:Object(MType)>*/;
2330 var139
= varonce138
;
2334 var142
= string__NativeString__to_s_with_length(var140
, var141
);
2336 varonce138
= var139
;
2338 var143
= NEW_array__Array(&type_array__Arraykernel__Object
);
2339 { /* var143 = array_instance Array[Object] */
2341 var145
= NEW_array__NativeArray(var144
, &type_array__NativeArraykernel__Object
);
2342 ((struct instance_array__NativeArray
*)var145
)->values
[0] = (val
*) var133
;
2343 ((struct instance_array__NativeArray
*)var145
)->values
[1] = (val
*) var137
;
2344 ((struct instance_array__NativeArray
*)var145
)->values
[2] = (val
*) var139
;
2345 var146
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2346 ((struct instance_array__NativeArray
*)var145
)->values
[3] = (val
*) var146
;
2347 ((void (*)(val
*, val
*, long))(var143
->class->vft
[COLOR_array__Array__with_native
]))(var143
, var145
, var144
) /* with_native on <var143:Array[Object]>*/;
2349 var147
= ((val
* (*)(val
*))(var143
->class->vft
[COLOR_string__Object__to_s
]))(var143
) /* to_s on <var143:Array[Object]>*/;
2350 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var131
, var147
) /* provide_declaration on <self:SeparateCompiler>*/;
2352 var148
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MType__const_color
]))(var_m
) /* const_color on <var_m:Object(MType)>*/;
2354 var150
= varonce149
;
2356 var151
= "extern const int ";
2358 var153
= string__NativeString__to_s_with_length(var151
, var152
);
2360 varonce149
= var150
;
2362 var154
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MType__const_color
]))(var_m
) /* const_color on <var_m:Object(MType)>*/;
2364 var156
= varonce155
;
2368 var159
= string__NativeString__to_s_with_length(var157
, var158
);
2370 varonce155
= var156
;
2372 var160
= NEW_array__Array(&type_array__Arraykernel__Object
);
2373 { /* var160 = array_instance Array[Object] */
2375 var162
= NEW_array__NativeArray(var161
, &type_array__NativeArraykernel__Object
);
2376 ((struct instance_array__NativeArray
*)var162
)->values
[0] = (val
*) var150
;
2377 ((struct instance_array__NativeArray
*)var162
)->values
[1] = (val
*) var154
;
2378 ((struct instance_array__NativeArray
*)var162
)->values
[2] = (val
*) var156
;
2379 ((void (*)(val
*, val
*, long))(var160
->class->vft
[COLOR_array__Array__with_native
]))(var160
, var162
, var161
) /* with_native on <var160:Array[Object]>*/;
2381 var163
= ((val
* (*)(val
*))(var160
->class->vft
[COLOR_string__Object__to_s
]))(var160
) /* to_s on <var160:Array[Object]>*/;
2382 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var148
, var163
) /* provide_declaration on <self:SeparateCompiler>*/;
2384 var165
= varonce164
;
2386 var166
= "const int ";
2388 var168
= string__NativeString__to_s_with_length(var166
, var167
);
2390 varonce164
= var165
;
2392 var169
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MType__const_color
]))(var_m
) /* const_color on <var_m:Object(MType)>*/;
2394 var171
= varonce170
;
2398 var174
= string__NativeString__to_s_with_length(var172
, var173
);
2400 varonce170
= var171
;
2403 var176
= varonce175
;
2407 var179
= string__NativeString__to_s_with_length(var177
, var178
);
2409 varonce175
= var176
;
2411 var180
= NEW_array__Array(&type_array__Arraykernel__Object
);
2412 { /* var180 = array_instance Array[Object] */
2414 var182
= NEW_array__NativeArray(var181
, &type_array__NativeArraykernel__Object
);
2415 ((struct instance_array__NativeArray
*)var182
)->values
[0] = (val
*) var165
;
2416 ((struct instance_array__NativeArray
*)var182
)->values
[1] = (val
*) var169
;
2417 ((struct instance_array__NativeArray
*)var182
)->values
[2] = (val
*) var171
;
2418 var183
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2419 ((struct instance_array__NativeArray
*)var182
)->values
[3] = (val
*) var183
;
2420 ((struct instance_array__NativeArray
*)var182
)->values
[4] = (val
*) var176
;
2421 ((void (*)(val
*, val
*, long))(var180
->class->vft
[COLOR_array__Array__with_native
]))(var180
, var182
, var181
) /* with_native on <var180:Array[Object]>*/;
2423 var184
= ((val
* (*)(val
*))(var180
->class->vft
[COLOR_string__Object__to_s
]))(var180
) /* to_s on <var180:Array[Object]>*/;
2424 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var184
) /* add on <var_v:SeparateCompilerVisitor>*/;
2430 var185
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__color_consts_done
]))(self
) /* color_consts_done on <self:SeparateCompiler>*/;
2431 ((void (*)(val
*, val
*))(var185
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var185
, var_m
) /* add on <var185:HashSet[Object]>*/;
2434 /* method separate_compiler#SeparateCompiler#compile_color_const for (self: Object, SeparateCompilerVisitor, Object, Int) */
2435 void VIRTUAL_separate_compiler__SeparateCompiler__compile_color_const(val
* self
, val
* p0
, val
* p1
, long p2
) {
2436 separate_compiler__SeparateCompiler__compile_color_const(self
, p0
, p1
, p2
);
2439 /* method separate_compiler#SeparateCompiler#color_consts_done for (self: SeparateCompiler): HashSet[Object] */
2440 val
* separate_compiler__SeparateCompiler__color_consts_done(val
* self
) {
2441 val
* var
/* : HashSet[Object] */;
2442 val
* var1
/* : HashSet[Object] */;
2443 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dcolor_consts_done
].val
; /* @color_consts_done on <self:SeparateCompiler> */
2445 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @color_consts_done");
2446 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 235);
2453 /* method separate_compiler#SeparateCompiler#color_consts_done for (self: Object): HashSet[Object] */
2454 val
* VIRTUAL_separate_compiler__SeparateCompiler__color_consts_done(val
* self
) {
2455 val
* var
/* : HashSet[Object] */;
2456 val
* var1
/* : HashSet[Object] */;
2457 var1
= separate_compiler__SeparateCompiler__color_consts_done(self
);
2462 /* method separate_compiler#SeparateCompiler#color_consts_done= for (self: SeparateCompiler, HashSet[Object]) */
2463 void separate_compiler__SeparateCompiler__color_consts_done_61d(val
* self
, val
* p0
) {
2464 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dcolor_consts_done
].val
= p0
; /* @color_consts_done on <self:SeparateCompiler> */
2467 /* method separate_compiler#SeparateCompiler#color_consts_done= for (self: Object, HashSet[Object]) */
2468 void VIRTUAL_separate_compiler__SeparateCompiler__color_consts_done_61d(val
* self
, val
* p0
) {
2469 separate_compiler__SeparateCompiler__color_consts_done_61d(self
, p0
);
2472 /* method separate_compiler#SeparateCompiler#do_property_coloring for (self: SeparateCompiler) */
2473 void separate_compiler__SeparateCompiler__do_property_coloring(val
* self
) {
2474 val
* var
/* : HashSet[MClass] */;
2475 val
* var1
/* : ModelBuilder */;
2476 val
* var2
/* : Model */;
2477 val
* var3
/* : Array[MClass] */;
2478 val
* var_mclasses
/* var mclasses: HashSet[MClass] */;
2479 val
* var4
/* : MClassColorer */;
2480 val
* var5
/* : MModule */;
2481 val
* var_class_layout_builder
/* var class_layout_builder: MClassColorer */;
2482 val
* var6
/* : Layout[Object] */;
2483 val
* var7
/* : MPropertyColorer[PropertyLayoutElement] */;
2484 val
* var8
/* : MModule */;
2485 val
* var_method_layout_builder
/* var method_layout_builder: PropertyLayoutBuilder[PropertyLayoutElement] */;
2486 val
* var9
/* : MPropertyColorer[MAttribute] */;
2487 val
* var10
/* : MModule */;
2488 val
* var_attribute_layout_builder
/* var attribute_layout_builder: PropertyLayoutBuilder[MAttribute] */;
2489 val
* var11
/* : HashMap[MClass, Set[PropertyLayoutElement]] */;
2490 val
* var_mmethods
/* var mmethods: HashMap[MClass, Set[PropertyLayoutElement]] */;
2491 val
* var12
/* : HashMap[MClass, Set[MAttribute]] */;
2492 val
* var_mattributes
/* var mattributes: HashMap[MClass, Set[MAttribute]] */;
2493 val
* var13
/* : Iterator[nullable Object] */;
2494 short int var14
/* : Bool */;
2495 val
* var15
/* : nullable Object */;
2496 val
* var_mclass
/* var mclass: MClass */;
2497 val
* var16
/* : HashSet[PropertyLayoutElement] */;
2498 val
* var17
/* : HashSet[MAttribute] */;
2499 val
* var18
/* : MModule */;
2500 val
* var19
/* : Set[MProperty] */;
2501 val
* var20
/* : Iterator[nullable Object] */;
2502 short int var21
/* : Bool */;
2503 val
* var22
/* : nullable Object */;
2504 val
* var_mprop
/* var mprop: MProperty */;
2505 short int var23
/* : Bool */;
2508 val
* var24
/* : nullable Object */;
2509 short int var25
/* : Bool */;
2512 val
* var28
/* : nullable Object */;
2513 val
* var30
/* : HashSet[MMethodDef] */;
2514 val
* var_all_super_calls
/* var all_super_calls: HashSet[MMethodDef] */;
2515 val
* var31
/* : MModule */;
2516 val
* var32
/* : POSetElement[MModule] */;
2517 val
* var33
/* : Collection[Object] */;
2518 val
* var34
/* : Iterator[nullable Object] */;
2519 short int var35
/* : Bool */;
2520 val
* var36
/* : nullable Object */;
2521 val
* var_mmodule
/* var mmodule: MModule */;
2522 val
* var37
/* : Array[MClassDef] */;
2523 val
* var38
/* : Iterator[nullable Object] */;
2524 short int var39
/* : Bool */;
2525 val
* var40
/* : nullable Object */;
2526 val
* var_mclassdef
/* var mclassdef: MClassDef */;
2527 val
* var41
/* : Array[MPropDef] */;
2528 val
* var42
/* : Iterator[nullable Object] */;
2529 short int var43
/* : Bool */;
2530 val
* var44
/* : nullable Object */;
2531 val
* var_mpropdef
/* var mpropdef: MPropDef */;
2532 short int var45
/* : Bool */;
2535 short int var48
/* : Bool */;
2536 short int var50
/* : Bool */;
2537 val
* var53
/* : nullable RapidTypeAnalysis */;
2538 val
* var54
/* : null */;
2539 short int var55
/* : Bool */;
2540 val
* var56
/* : nullable RapidTypeAnalysis */;
2541 val
* var57
/* : HashSet[MMethodDef] */;
2542 val
* var_super_calls
/* var super_calls: nullable Object */;
2543 val
* var58
/* : Iterator[nullable Object] */;
2544 short int var59
/* : Bool */;
2545 val
* var60
/* : nullable Object */;
2546 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
2547 val
* var61
/* : MClassDef */;
2548 val
* var62
/* : MClass */;
2549 val
* var_mclass63
/* var mclass: MClass */;
2550 val
* var64
/* : nullable Object */;
2551 val
* var65
/* : MModule */;
2552 val
* var66
/* : POSetElement[MClass] */;
2553 val
* var67
/* : Collection[Object] */;
2554 val
* var68
/* : Iterator[nullable Object] */;
2555 short int var69
/* : Bool */;
2556 val
* var70
/* : nullable Object */;
2557 val
* var_descendant
/* var descendant: MClass */;
2558 val
* var71
/* : nullable Object */;
2559 val
* var74
/* : Layout[PropertyLayoutElement] */;
2560 val
* var75
/* : Map[MClass, Array[nullable MPropDef]] */;
2561 val
* var76
/* : nullable Layout[PropertyLayoutElement] */;
2562 val
* var77
/* : Map[Object, Int] */;
2563 val
* var78
/* : Iterator[nullable Object] */;
2564 short int var79
/* : Bool */;
2565 val
* var80
/* : nullable Object */;
2566 val
* var_mpropdef81
/* var mpropdef: MMethodDef */;
2567 short int var82
/* : Bool */;
2568 val
* var84
/* : AbstractCompilerVisitor */;
2569 long var85
/* : Int */;
2570 long var86
/* : Int */;
2571 long var88
/* : Int */;
2572 val
* var89
/* : Layout[PropertyLayoutElement] */;
2573 val
* var90
/* : Map[MClass, Array[nullable MPropDef]] */;
2574 val
* var91
/* : nullable Layout[MAttribute] */;
2575 val
* var92
/* : Map[Object, Int] */;
2576 var
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass
);
2577 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
2578 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelbuilder__ModelBuilder__model
]))(var1
) /* model on <var1:ModelBuilder>*/;
2579 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__Model__mclasses
]))(var2
) /* mclasses on <var2:Model>*/;
2580 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_hash_collection__HashSet__from
]))(var
, var3
) /* from on <var:HashSet[MClass]>*/;
2582 var4
= NEW_layout_builders__MClassColorer(&type_layout_builders__MClassColorer
);
2583 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2584 ((void (*)(val
*, val
*))(var4
->class->vft
[COLOR_layout_builders__MClassColorer__init
]))(var4
, var5
) /* init on <var4:MClassColorer>*/;
2585 var_class_layout_builder
= var4
;
2586 var6
= ((val
* (*)(val
*, val
*))(var_class_layout_builder
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__build_layout
]))(var_class_layout_builder
, var_mclasses
) /* build_layout on <var_class_layout_builder:MClassColorer>*/;
2588 var7
= NEW_layout_builders__MPropertyColorer(&type_layout_builders__MPropertyColorerlayout_builders__PropertyLayoutElement
);
2589 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2590 ((void (*)(val
*, val
*, val
*))(var7
->class->vft
[COLOR_layout_builders__MPropertyColorer__init
]))(var7
, var8
, var_class_layout_builder
) /* init on <var7:MPropertyColorer[PropertyLayoutElement]>*/;
2591 var_method_layout_builder
= var7
;
2592 var9
= NEW_layout_builders__MPropertyColorer(&type_layout_builders__MPropertyColorermodel__MAttribute
);
2593 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2594 ((void (*)(val
*, val
*, val
*))(var9
->class->vft
[COLOR_layout_builders__MPropertyColorer__init
]))(var9
, var10
, var_class_layout_builder
) /* init on <var9:MPropertyColorer[MAttribute]>*/;
2595 var_attribute_layout_builder
= var9
;
2596 var11
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement
);
2597 ((void (*)(val
*))(var11
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var11
) /* init on <var11:HashMap[MClass, Set[PropertyLayoutElement]]>*/;
2598 var_mmethods
= var11
;
2599 var12
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute
);
2600 ((void (*)(val
*))(var12
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var12
) /* init on <var12:HashMap[MClass, Set[MAttribute]]>*/;
2601 var_mattributes
= var12
;
2602 var13
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:HashSet[MClass]>*/;
2604 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
2606 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
2608 var16
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetlayout_builders__PropertyLayoutElement
);
2609 ((void (*)(val
*))(var16
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var16
) /* init on <var16:HashSet[PropertyLayoutElement]>*/;
2610 ((void (*)(val
*, val
*, val
*))(var_mmethods
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_mmethods
, var_mclass
, var16
) /* []= on <var_mmethods:HashMap[MClass, Set[PropertyLayoutElement]]>*/;
2611 var17
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MAttribute
);
2612 ((void (*)(val
*))(var17
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var17
) /* init on <var17:HashSet[MAttribute]>*/;
2613 ((void (*)(val
*, val
*, val
*))(var_mattributes
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_mattributes
, var_mclass
, var17
) /* []= on <var_mattributes:HashMap[MClass, Set[MAttribute]]>*/;
2614 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2615 var19
= ((val
* (*)(val
*, val
*))(var18
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var18
, var_mclass
) /* properties on <var18:MModule>*/;
2616 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var19
) /* iterator on <var19:Set[MProperty]>*/;
2618 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var20
) /* is_ok on <var20:Iterator[nullable Object]>*/;
2620 var22
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var20
) /* item on <var20:Iterator[nullable Object]>*/;
2622 /* <var_mprop:MProperty> isa MMethod */
2623 cltype
= type_model__MMethod
.color
;
2624 idtype
= type_model__MMethod
.id
;
2625 if(cltype
>= var_mprop
->type
->table_size
) {
2628 var23
= var_mprop
->type
->type_table
[cltype
] == idtype
;
2631 var24
= ((val
* (*)(val
*, val
*))(var_mmethods
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_mmethods
, var_mclass
) /* [] on <var_mmethods:HashMap[MClass, Set[PropertyLayoutElement]]>*/;
2632 ((void (*)(val
*, val
*))(var24
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var24
, var_mprop
) /* add on <var24:nullable Object(Set[PropertyLayoutElement])>*/;
2634 /* <var_mprop:MProperty> isa MAttribute */
2635 cltype26
= type_model__MAttribute
.color
;
2636 idtype27
= type_model__MAttribute
.id
;
2637 if(cltype26
>= var_mprop
->type
->table_size
) {
2640 var25
= var_mprop
->type
->type_table
[cltype26
] == idtype27
;
2643 var28
= ((val
* (*)(val
*, val
*))(var_mattributes
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_mattributes
, var_mclass
) /* [] on <var_mattributes:HashMap[MClass, Set[MAttribute]]>*/;
2644 ((void (*)(val
*, val
*))(var28
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var28
, var_mprop
) /* add on <var28:nullable Object(Set[MAttribute])>*/;
2648 CONTINUE_label
: (void)0;
2649 ((void (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var20
) /* next on <var20:Iterator[nullable Object]>*/;
2651 BREAK_label
: (void)0;
2652 CONTINUE_label29
: (void)0;
2653 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
2655 BREAK_label29
: (void)0;
2656 var30
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MMethodDef
);
2657 ((void (*)(val
*))(var30
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var30
) /* init on <var30:HashSet[MMethodDef]>*/;
2658 var_all_super_calls
= var30
;
2659 var31
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2660 var32
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(var31
) /* in_importation on <var31:MModule>*/;
2661 var33
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var32
) /* greaters on <var32:POSetElement[MModule]>*/;
2662 var34
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var33
) /* iterator on <var33:Collection[Object](Collection[MModule])>*/;
2664 var35
= ((short int (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var34
) /* is_ok on <var34:Iterator[nullable Object]>*/;
2666 var36
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var34
) /* item on <var34:Iterator[nullable Object]>*/;
2667 var_mmodule
= var36
;
2668 var37
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model__MModule__mclassdefs
]))(var_mmodule
) /* mclassdefs on <var_mmodule:MModule>*/;
2669 var38
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var37
) /* iterator on <var37:Array[MClassDef]>*/;
2671 var39
= ((short int (*)(val
*))(var38
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var38
) /* is_ok on <var38:Iterator[nullable Object]>*/;
2673 var40
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var38
) /* item on <var38:Iterator[nullable Object]>*/;
2674 var_mclassdef
= var40
;
2675 var41
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__mpropdefs
]))(var_mclassdef
) /* mpropdefs on <var_mclassdef:MClassDef>*/;
2676 var42
= ((val
* (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var41
) /* iterator on <var41:Array[MPropDef]>*/;
2678 var43
= ((short int (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var42
) /* is_ok on <var42:Iterator[nullable Object]>*/;
2680 var44
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var42
) /* item on <var42:Iterator[nullable Object]>*/;
2681 var_mpropdef
= var44
;
2682 /* <var_mpropdef:MPropDef> isa MMethodDef */
2683 cltype46
= type_model__MMethodDef
.color
;
2684 idtype47
= type_model__MMethodDef
.id
;
2685 if(cltype46
>= var_mpropdef
->type
->table_size
) {
2688 var45
= var_mpropdef
->type
->type_table
[cltype46
] == idtype47
;
2692 goto CONTINUE_label49
;
2695 var50
= ((short int (*)(val
*))(var_mpropdef
->class->vft
[COLOR_modelize_property__MPropDef__has_supercall
]))(var_mpropdef
) /* has_supercall on <var_mpropdef:MPropDef(MMethodDef)>*/;
2697 ((void (*)(val
*, val
*))(var_all_super_calls
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_all_super_calls
, var_mpropdef
) /* add on <var_all_super_calls:HashSet[MMethodDef]>*/;
2700 CONTINUE_label49
: (void)0;
2701 ((void (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var42
) /* next on <var42:Iterator[nullable Object]>*/;
2703 BREAK_label49
: (void)0;
2704 CONTINUE_label51
: (void)0;
2705 ((void (*)(val
*))(var38
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var38
) /* next on <var38:Iterator[nullable Object]>*/;
2707 BREAK_label51
: (void)0;
2708 CONTINUE_label52
: (void)0;
2709 ((void (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var34
) /* next on <var34:Iterator[nullable Object]>*/;
2711 BREAK_label52
: (void)0;
2712 var53
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
2714 if (var53
== NULL
) {
2715 var55
= 0; /* is null */
2717 var55
= 1; /* arg is null and recv is not */
2720 var56
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
2721 if (var56
== NULL
) {
2722 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
2723 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 293);
2726 var57
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_super_sends
]))(var56
) /* live_super_sends on <var56:nullable RapidTypeAnalysis>*/;
2728 var_super_calls
= var57
;
2730 var_super_calls
= var_all_super_calls
;
2732 var58
= ((val
* (*)(val
*))(var_super_calls
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_super_calls
) /* iterator on <var_super_calls:nullable Object(HashSet[MMethodDef])>*/;
2734 var59
= ((short int (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var58
) /* is_ok on <var58:Iterator[nullable Object]>*/;
2736 var60
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var58
) /* item on <var58:Iterator[nullable Object]>*/;
2737 var_mmethoddef
= var60
;
2738 var61
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mmethoddef
) /* mclassdef on <var_mmethoddef:MMethodDef>*/;
2739 var62
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_model__MClassDef__mclass
]))(var61
) /* mclass on <var61:MClassDef>*/;
2740 var_mclass63
= var62
;
2741 var64
= ((val
* (*)(val
*, val
*))(var_mmethods
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_mmethods
, var_mclass63
) /* [] on <var_mmethods:HashMap[MClass, Set[PropertyLayoutElement]]>*/;
2742 ((void (*)(val
*, val
*))(var64
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var64
, var_mmethoddef
) /* add on <var64:nullable Object(Set[PropertyLayoutElement])>*/;
2743 var65
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2744 var66
= ((val
* (*)(val
*, val
*))(var_mclass63
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass63
, var65
) /* in_hierarchy on <var_mclass63:MClass>*/;
2745 var67
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_poset__POSetElement__smallers
]))(var66
) /* smallers on <var66:POSetElement[MClass]>*/;
2746 var68
= ((val
* (*)(val
*))(var67
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var67
) /* iterator on <var67:Collection[Object](Collection[MClass])>*/;
2748 var69
= ((short int (*)(val
*))(var68
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var68
) /* is_ok on <var68:Iterator[nullable Object]>*/;
2750 var70
= ((val
* (*)(val
*))(var68
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var68
) /* item on <var68:Iterator[nullable Object]>*/;
2751 var_descendant
= var70
;
2752 var71
= ((val
* (*)(val
*, val
*))(var_mmethods
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_mmethods
, var_descendant
) /* [] on <var_mmethods:HashMap[MClass, Set[PropertyLayoutElement]]>*/;
2753 ((void (*)(val
*, val
*))(var71
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var71
, var_mmethoddef
) /* add on <var71:nullable Object(Set[PropertyLayoutElement])>*/;
2754 CONTINUE_label72
: (void)0;
2755 ((void (*)(val
*))(var68
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var68
) /* next on <var68:Iterator[nullable Object]>*/;
2757 BREAK_label72
: (void)0;
2758 CONTINUE_label73
: (void)0;
2759 ((void (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var58
) /* next on <var58:Iterator[nullable Object]>*/;
2761 BREAK_label73
: (void)0;
2762 var74
= ((val
* (*)(val
*, val
*))(var_method_layout_builder
->class->vft
[COLOR_layout_builders__PropertyLayoutBuilder__build_layout
]))(var_method_layout_builder
, var_mmethods
) /* build_layout on <var_method_layout_builder:PropertyLayoutBuilder[PropertyLayoutElement](MPropertyColorer[PropertyLayoutElement])>*/;
2763 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_layout_61d
]))(self
, var74
) /* method_layout= on <self:SeparateCompiler>*/;
2764 var75
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__build_method_tables
]))(self
, var_mclasses
, var_super_calls
) /* build_method_tables on <self:SeparateCompiler>*/;
2765 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_tables_61d
]))(self
, var75
) /* method_tables= on <self:SeparateCompiler>*/;
2766 var76
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_layout
]))(self
) /* method_layout on <self:SeparateCompiler>*/;
2767 if (var76
== NULL
) {
2768 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
2769 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 309);
2772 var77
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var76
) /* pos on <var76:nullable Layout[PropertyLayoutElement]>*/;
2774 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_color_consts
]))(self
, var77
) /* compile_color_consts on <self:SeparateCompiler>*/;
2775 var78
= ((val
* (*)(val
*))(var_all_super_calls
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_all_super_calls
) /* iterator on <var_all_super_calls:HashSet[MMethodDef]>*/;
2777 var79
= ((short int (*)(val
*))(var78
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var78
) /* is_ok on <var78:Iterator[nullable Object]>*/;
2779 var80
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var78
) /* item on <var78:Iterator[nullable Object]>*/;
2780 var_mpropdef81
= var80
;
2781 var82
= ((short int (*)(val
*, val
*))(var_super_calls
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_super_calls
, var_mpropdef81
) /* has on <var_super_calls:nullable Object(HashSet[MMethodDef])>*/;
2783 goto CONTINUE_label83
;
2786 var84
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
2788 { /* Inline kernel#Int#unary - (var85) */
2792 RET_LABEL87
:(void)0;
2794 ((void (*)(val
*, val
*, val
*, long))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_color_const
]))(self
, var84
, var_mpropdef81
, var86
) /* compile_color_const on <self:SeparateCompiler>*/;
2795 CONTINUE_label83
: (void)0;
2796 ((void (*)(val
*))(var78
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var78
) /* next on <var78:Iterator[nullable Object]>*/;
2798 BREAK_label83
: (void)0;
2799 var89
= ((val
* (*)(val
*, val
*))(var_attribute_layout_builder
->class->vft
[COLOR_layout_builders__PropertyLayoutBuilder__build_layout
]))(var_attribute_layout_builder
, var_mattributes
) /* build_layout on <var_attribute_layout_builder:PropertyLayoutBuilder[MAttribute](MPropertyColorer[MAttribute])>*/;
2800 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_layout_61d
]))(self
, var89
) /* attr_layout= on <self:SeparateCompiler>*/;
2801 var90
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__build_attr_tables
]))(self
, var_mclasses
) /* build_attr_tables on <self:SeparateCompiler>*/;
2802 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_tables_61d
]))(self
, var90
) /* attr_tables= on <self:SeparateCompiler>*/;
2803 var91
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_layout
]))(self
) /* attr_layout on <self:SeparateCompiler>*/;
2804 if (var91
== NULL
) {
2805 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
2806 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 320);
2809 var92
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var91
) /* pos on <var91:nullable Layout[MAttribute]>*/;
2811 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_color_consts
]))(self
, var92
) /* compile_color_consts on <self:SeparateCompiler>*/;
2814 /* method separate_compiler#SeparateCompiler#do_property_coloring for (self: Object) */
2815 void VIRTUAL_separate_compiler__SeparateCompiler__do_property_coloring(val
* self
) {
2816 separate_compiler__SeparateCompiler__do_property_coloring(self
);
2819 /* method separate_compiler#SeparateCompiler#build_method_tables for (self: SeparateCompiler, Set[MClass], Set[MMethodDef]): Map[MClass, Array[nullable MPropDef]] */
2820 val
* separate_compiler__SeparateCompiler__build_method_tables(val
* self
, val
* p0
, val
* p1
) {
2821 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
2822 val
* var_mclasses
/* var mclasses: Set[MClass] */;
2823 val
* var_super_calls
/* var super_calls: Set[MMethodDef] */;
2824 val
* var1
/* : nullable Layout[PropertyLayoutElement] */;
2825 val
* var_layout
/* var layout: nullable Layout[PropertyLayoutElement] */;
2826 val
* var2
/* : HashMap[MClass, Array[nullable MPropDef]] */;
2827 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MPropDef]] */;
2828 val
* var3
/* : Iterator[nullable Object] */;
2829 short int var4
/* : Bool */;
2830 val
* var5
/* : nullable Object */;
2831 val
* var_mclass
/* var mclass: MClass */;
2832 val
* var6
/* : Array[nullable MPropDef] */;
2833 val
* var_table
/* var table: Array[nullable MPropDef] */;
2834 val
* var7
/* : List[MMethodDef] */;
2835 val
* var_supercalls
/* var supercalls: List[MMethodDef] */;
2836 val
* var8
/* : Array[MClass] */;
2837 val
* var_parents
/* var parents: Array[MClass] */;
2838 val
* var9
/* : MModule */;
2839 val
* var10
/* : POSet[MClass] */;
2840 short int var11
/* : Bool */;
2841 val
* var12
/* : MModule */;
2842 val
* var13
/* : POSetElement[MClass] */;
2843 val
* var14
/* : Collection[Object] */;
2844 val
* var15
/* : Array[nullable Object] */;
2845 val
* var16
/* : MModule */;
2846 val
* var17
/* : Iterator[nullable Object] */;
2847 short int var18
/* : Bool */;
2848 val
* var19
/* : nullable Object */;
2849 val
* var_parent
/* var parent: MClass */;
2850 short int var20
/* : Bool */;
2851 val
* var21
/* : MModule */;
2852 val
* var22
/* : Set[MProperty] */;
2853 val
* var23
/* : Iterator[nullable Object] */;
2854 short int var24
/* : Bool */;
2855 val
* var25
/* : nullable Object */;
2856 val
* var_mproperty
/* var mproperty: MProperty */;
2857 short int var26
/* : Bool */;
2860 short int var27
/* : Bool */;
2861 val
* var29
/* : Map[Object, Int] */;
2862 val
* var30
/* : nullable Object */;
2863 long var31
/* : Int */;
2864 long var_color
/* var color: Int */;
2865 long var32
/* : Int */;
2866 short int var33
/* : Bool */;
2867 short int var35
/* : Bool */;
2870 const char* var_class_name
;
2871 short int var38
/* : Bool */;
2872 val
* var39
/* : Range[Int] */;
2873 long var40
/* : Int */;
2874 val
* var41
/* : Discrete */;
2875 val
* var42
/* : Discrete */;
2876 val
* var43
/* : Iterator[nullable Object] */;
2877 short int var44
/* : Bool */;
2878 val
* var45
/* : nullable Object */;
2879 long var_i
/* var i: Int */;
2880 long var46
/* : Int */;
2881 val
* var47
/* : null */;
2882 val
* var49
/* : Array[MPropDef] */;
2883 val
* var50
/* : Iterator[nullable Object] */;
2884 short int var51
/* : Bool */;
2885 val
* var52
/* : nullable Object */;
2886 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
2887 val
* var53
/* : MClassDef */;
2888 val
* var54
/* : MClass */;
2889 short int var55
/* : Bool */;
2890 val
* var57
/* : Iterator[nullable Object] */;
2891 short int var58
/* : Bool */;
2892 val
* var59
/* : nullable Object */;
2893 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
2894 val
* var60
/* : Array[MClassDef] */;
2895 val
* var61
/* : Iterator[nullable Object] */;
2896 short int var62
/* : Bool */;
2897 val
* var63
/* : nullable Object */;
2898 val
* var_mclassdef
/* var mclassdef: MClassDef */;
2899 val
* var64
/* : Array[MPropDef] */;
2900 short int var65
/* : Bool */;
2901 val
* var68
/* : MModule */;
2902 val
* var69
/* : Set[MProperty] */;
2903 val
* var70
/* : Iterator[nullable Object] */;
2904 short int var71
/* : Bool */;
2905 val
* var72
/* : nullable Object */;
2906 val
* var_mproperty73
/* var mproperty: MProperty */;
2907 short int var74
/* : Bool */;
2910 short int var77
/* : Bool */;
2911 val
* var79
/* : Map[Object, Int] */;
2912 val
* var80
/* : nullable Object */;
2913 long var81
/* : Int */;
2914 long var_color82
/* var color: Int */;
2915 long var83
/* : Int */;
2916 short int var84
/* : Bool */;
2917 short int var86
/* : Bool */;
2920 const char* var_class_name89
;
2921 short int var90
/* : Bool */;
2922 val
* var91
/* : Range[Int] */;
2923 long var92
/* : Int */;
2924 val
* var93
/* : Discrete */;
2925 val
* var94
/* : Discrete */;
2926 val
* var95
/* : Iterator[nullable Object] */;
2927 short int var96
/* : Bool */;
2928 val
* var97
/* : nullable Object */;
2929 long var_i98
/* var i: Int */;
2930 long var99
/* : Int */;
2931 val
* var100
/* : null */;
2932 val
* var102
/* : Array[MPropDef] */;
2933 val
* var103
/* : Iterator[nullable Object] */;
2934 short int var104
/* : Bool */;
2935 val
* var105
/* : nullable Object */;
2936 val
* var_mpropdef106
/* var mpropdef: MMethodDef */;
2937 val
* var107
/* : MClassDef */;
2938 val
* var108
/* : MClass */;
2939 short int var109
/* : Bool */;
2940 val
* var111
/* : Iterator[nullable Object] */;
2941 short int var112
/* : Bool */;
2942 val
* var113
/* : nullable Object */;
2943 val
* var_mmethoddef114
/* var mmethoddef: MMethodDef */;
2944 val
* var115
/* : Array[MClassDef] */;
2945 val
* var116
/* : Iterator[nullable Object] */;
2946 short int var117
/* : Bool */;
2947 val
* var118
/* : nullable Object */;
2948 val
* var_mclassdef119
/* var mclassdef: MClassDef */;
2949 val
* var120
/* : Array[MPropDef] */;
2950 short int var121
/* : Bool */;
2951 val
* var124
/* : Iterator[nullable Object] */;
2952 short int var125
/* : Bool */;
2953 val
* var126
/* : nullable Object */;
2954 val
* var_supercall
/* var supercall: MMethodDef */;
2955 val
* var127
/* : Map[Object, Int] */;
2956 val
* var128
/* : nullable Object */;
2957 long var129
/* : Int */;
2958 long var_color130
/* var color: Int */;
2959 long var131
/* : Int */;
2960 short int var132
/* : Bool */;
2961 short int var134
/* : Bool */;
2964 const char* var_class_name137
;
2965 short int var138
/* : Bool */;
2966 val
* var139
/* : Range[Int] */;
2967 long var140
/* : Int */;
2968 val
* var141
/* : Discrete */;
2969 val
* var142
/* : Discrete */;
2970 val
* var143
/* : Iterator[nullable Object] */;
2971 short int var144
/* : Bool */;
2972 val
* var145
/* : nullable Object */;
2973 long var_i146
/* var i: Int */;
2974 long var147
/* : Int */;
2975 val
* var148
/* : null */;
2976 val
* var150
/* : MModule */;
2977 val
* var151
/* : MClassDef */;
2978 val
* var152
/* : MClassType */;
2979 val
* var153
/* : MPropDef */;
2980 val
* var_mmethoddef154
/* var mmethoddef: MMethodDef */;
2982 var_super_calls
= p1
;
2983 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_layout
]))(self
) /* method_layout on <self:SeparateCompiler>*/;
2985 var2
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef
);
2986 ((void (*)(val
*))(var2
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var2
) /* init on <var2:HashMap[MClass, Array[nullable MPropDef]]>*/;
2988 var3
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:Set[MClass]>*/;
2990 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
2992 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
2994 var6
= NEW_array__Array(&type_array__Arraynullable_model__MPropDef
);
2995 ((void (*)(val
*))(var6
->class->vft
[COLOR_array__Array__init
]))(var6
) /* init on <var6:Array[nullable MPropDef]>*/;
2997 var7
= NEW_list__List(&type_list__Listmodel__MMethodDef
);
2998 ((void (*)(val
*))(var7
->class->vft
[COLOR_list__List__init
]))(var7
) /* init on <var7:List[MMethodDef]>*/;
2999 var_supercalls
= var7
;
3000 var8
= NEW_array__Array(&type_array__Arraymodel__MClass
);
3001 ((void (*)(val
*))(var8
->class->vft
[COLOR_array__Array__init
]))(var8
) /* init on <var8:Array[MClass]>*/;
3003 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3004 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var9
) /* flatten_mclass_hierarchy on <var9:MModule>*/;
3005 var11
= ((short int (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var10
, var_mclass
) /* has on <var10:POSet[MClass]>*/;
3007 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3008 var13
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass
, var12
) /* in_hierarchy on <var_mclass:MClass>*/;
3009 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var13
) /* greaters on <var13:POSetElement[MClass]>*/;
3010 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_array__Collection__to_a
]))(var14
) /* to_a on <var14:Collection[Object](Collection[MClass])>*/;
3011 var_parents
= var15
;
3012 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3013 ((void (*)(val
*, val
*))(var16
->class->vft
[COLOR_model__MModule__linearize_mclasses
]))(var16
, var_parents
) /* linearize_mclasses on <var16:MModule>*/;
3016 var17
= ((val
* (*)(val
*))(var_parents
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_parents
) /* iterator on <var_parents:Array[MClass]>*/;
3018 var18
= ((short int (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var17
) /* is_ok on <var17:Iterator[nullable Object]>*/;
3020 var19
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var17
) /* item on <var17:Iterator[nullable Object]>*/;
3022 var20
= ((short int (*)(val
*, val
*))(var_parent
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_parent
, var_mclass
) /* == on <var_parent:MClass>*/;
3024 goto CONTINUE_label
;
3027 var21
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3028 var22
= ((val
* (*)(val
*, val
*))(var21
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var21
, var_parent
) /* properties on <var21:MModule>*/;
3029 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var22
) /* iterator on <var22:Set[MProperty]>*/;
3031 var24
= ((short int (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var23
) /* is_ok on <var23:Iterator[nullable Object]>*/;
3033 var25
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var23
) /* item on <var23:Iterator[nullable Object]>*/;
3034 var_mproperty
= var25
;
3035 /* <var_mproperty:MProperty> isa MMethod */
3036 cltype
= type_model__MMethod
.color
;
3037 idtype
= type_model__MMethod
.id
;
3038 if(cltype
>= var_mproperty
->type
->table_size
) {
3041 var26
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
3045 goto CONTINUE_label28
;
3048 if (var_layout
== NULL
) {
3049 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3050 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 341);
3053 var29
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[PropertyLayoutElement]>*/;
3055 var30
= ((val
* (*)(val
*, val
*))(var29
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var29
, var_mproperty
) /* [] on <var29:Map[Object, Int](Map[PropertyLayoutElement, Int])>*/;
3056 var31
= ((struct instance_kernel__Int
*)var30
)->value
; /* autounbox from nullable Object to Int */;
3058 var32
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3059 { /* Inline kernel#Int#<= (var32,var_color) */
3060 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
3061 /* <var_color:Int> isa OTHER */
3062 var35
= 1; /* easy <var_color:Int> isa OTHER*/
3064 var_class_name
= type_kernel__Int
.name
;
3065 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3066 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
3069 var38
= var32
<= var_color
;
3072 RET_LABEL34
:(void)0;
3075 var39
= NEW_range__Range(&type_range__Rangekernel__Int
);
3076 var40
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3077 var41
= BOX_kernel__Int(var40
); /* autobox from Int to Discrete */
3078 var42
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
3079 ((void (*)(val
*, val
*, val
*))(var39
->class->vft
[COLOR_range__Range__without_last
]))(var39
, var41
, var42
) /* without_last on <var39:Range[Int]>*/;
3080 var43
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var39
) /* iterator on <var39:Range[Int]>*/;
3082 var44
= ((short int (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var43
) /* is_ok on <var43:Iterator[nullable Object]>*/;
3084 var45
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var43
) /* item on <var43:Iterator[nullable Object]>*/;
3085 var46
= ((struct instance_kernel__Int
*)var45
)->value
; /* autounbox from nullable Object to Int */;
3088 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_i
, var47
) /* []= on <var_table:Array[nullable MPropDef]>*/;
3089 CONTINUE_label48
: (void)0;
3090 ((void (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var43
) /* next on <var43:Iterator[nullable Object]>*/;
3092 BREAK_label48
: (void)0;
3095 var49
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty
) /* mpropdefs on <var_mproperty:MProperty(MMethod)>*/;
3096 var50
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var49
) /* iterator on <var49:Array[MPropDef](Array[MMethodDef])>*/;
3098 var51
= ((short int (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var50
) /* is_ok on <var50:Iterator[nullable Object]>*/;
3100 var52
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var50
) /* item on <var50:Iterator[nullable Object]>*/;
3101 var_mpropdef
= var52
;
3102 var53
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MMethodDef>*/;
3103 var54
= ((val
* (*)(val
*))(var53
->class->vft
[COLOR_model__MClassDef__mclass
]))(var53
) /* mclass on <var53:MClassDef>*/;
3104 var55
= ((short int (*)(val
*, val
*))(var54
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var54
, var_parent
) /* == on <var54:MClass>*/;
3106 ((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]>*/;
3109 CONTINUE_label56
: (void)0;
3110 ((void (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var50
) /* next on <var50:Iterator[nullable Object]>*/;
3112 BREAK_label56
: (void)0;
3113 CONTINUE_label28
: (void)0;
3114 ((void (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var23
) /* next on <var23:Iterator[nullable Object]>*/;
3116 BREAK_label28
: (void)0;
3117 var57
= ((val
* (*)(val
*))(var_super_calls
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_super_calls
) /* iterator on <var_super_calls:Set[MMethodDef]>*/;
3119 var58
= ((short int (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var57
) /* is_ok on <var57:Iterator[nullable Object]>*/;
3121 var59
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var57
) /* item on <var57:Iterator[nullable Object]>*/;
3122 var_mmethoddef
= var59
;
3123 var60
= ((val
* (*)(val
*))(var_parent
->class->vft
[COLOR_model__MClass__mclassdefs
]))(var_parent
) /* mclassdefs on <var_parent:MClass>*/;
3124 var61
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var60
) /* iterator on <var60:Array[MClassDef]>*/;
3126 var62
= ((short int (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var61
) /* is_ok on <var61:Iterator[nullable Object]>*/;
3128 var63
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var61
) /* item on <var61:Iterator[nullable Object]>*/;
3129 var_mclassdef
= var63
;
3130 var64
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__mpropdefs
]))(var_mclassdef
) /* mpropdefs on <var_mclassdef:MClassDef>*/;
3131 var65
= ((short int (*)(val
*, val
*))(var64
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var64
, var_mmethoddef
) /* has on <var64:Array[MPropDef]>*/;
3133 ((void (*)(val
*, val
*))(var_supercalls
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_supercalls
, var_mmethoddef
) /* add on <var_supercalls:List[MMethodDef]>*/;
3136 CONTINUE_label66
: (void)0;
3137 ((void (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var61
) /* next on <var61:Iterator[nullable Object]>*/;
3139 BREAK_label66
: (void)0;
3140 CONTINUE_label67
: (void)0;
3141 ((void (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var57
) /* next on <var57:Iterator[nullable Object]>*/;
3143 BREAK_label67
: (void)0;
3144 CONTINUE_label
: (void)0;
3145 ((void (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var17
) /* next on <var17:Iterator[nullable Object]>*/;
3147 BREAK_label
: (void)0;
3148 var68
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3149 var69
= ((val
* (*)(val
*, val
*))(var68
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var68
, var_mclass
) /* properties on <var68:MModule>*/;
3150 var70
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var69
) /* iterator on <var69:Set[MProperty]>*/;
3152 var71
= ((short int (*)(val
*))(var70
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var70
) /* is_ok on <var70:Iterator[nullable Object]>*/;
3154 var72
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var70
) /* item on <var70:Iterator[nullable Object]>*/;
3155 var_mproperty73
= var72
;
3156 /* <var_mproperty73:MProperty> isa MMethod */
3157 cltype75
= type_model__MMethod
.color
;
3158 idtype76
= type_model__MMethod
.id
;
3159 if(cltype75
>= var_mproperty73
->type
->table_size
) {
3162 var74
= var_mproperty73
->type
->type_table
[cltype75
] == idtype76
;
3166 goto CONTINUE_label78
;
3169 if (var_layout
== NULL
) {
3170 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3171 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 367);
3174 var79
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[PropertyLayoutElement]>*/;
3176 var80
= ((val
* (*)(val
*, val
*))(var79
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var79
, var_mproperty73
) /* [] on <var79:Map[Object, Int](Map[PropertyLayoutElement, Int])>*/;
3177 var81
= ((struct instance_kernel__Int
*)var80
)->value
; /* autounbox from nullable Object to Int */;
3178 var_color82
= var81
;
3179 var83
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3180 { /* Inline kernel#Int#<= (var83,var_color82) */
3181 /* Covariant cast for argument 0 (i) <var_color82:Int> isa OTHER */
3182 /* <var_color82:Int> isa OTHER */
3183 var86
= 1; /* easy <var_color82:Int> isa OTHER*/
3185 var_class_name89
= type_kernel__Int
.name
;
3186 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name89
);
3187 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
3190 var90
= var83
<= var_color82
;
3193 RET_LABEL85
:(void)0;
3196 var91
= NEW_range__Range(&type_range__Rangekernel__Int
);
3197 var92
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3198 var93
= BOX_kernel__Int(var92
); /* autobox from Int to Discrete */
3199 var94
= BOX_kernel__Int(var_color82
); /* autobox from Int to Discrete */
3200 ((void (*)(val
*, val
*, val
*))(var91
->class->vft
[COLOR_range__Range__without_last
]))(var91
, var93
, var94
) /* without_last on <var91:Range[Int]>*/;
3201 var95
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var91
) /* iterator on <var91:Range[Int]>*/;
3203 var96
= ((short int (*)(val
*))(var95
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var95
) /* is_ok on <var95:Iterator[nullable Object]>*/;
3205 var97
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var95
) /* item on <var95:Iterator[nullable Object]>*/;
3206 var99
= ((struct instance_kernel__Int
*)var97
)->value
; /* autounbox from nullable Object to Int */;
3209 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_i98
, var100
) /* []= on <var_table:Array[nullable MPropDef]>*/;
3210 CONTINUE_label101
: (void)0;
3211 ((void (*)(val
*))(var95
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var95
) /* next on <var95:Iterator[nullable Object]>*/;
3213 BREAK_label101
: (void)0;
3216 var102
= ((val
* (*)(val
*))(var_mproperty73
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty73
) /* mpropdefs on <var_mproperty73:MProperty(MMethod)>*/;
3217 var103
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var102
) /* iterator on <var102:Array[MPropDef](Array[MMethodDef])>*/;
3219 var104
= ((short int (*)(val
*))(var103
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var103
) /* is_ok on <var103:Iterator[nullable Object]>*/;
3221 var105
= ((val
* (*)(val
*))(var103
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var103
) /* item on <var103:Iterator[nullable Object]>*/;
3222 var_mpropdef106
= var105
;
3223 var107
= ((val
* (*)(val
*))(var_mpropdef106
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef106
) /* mclassdef on <var_mpropdef106:MMethodDef>*/;
3224 var108
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_model__MClassDef__mclass
]))(var107
) /* mclass on <var107:MClassDef>*/;
3225 var109
= ((short int (*)(val
*, val
*))(var108
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var108
, var_mclass
) /* == on <var108:MClass>*/;
3227 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_color82
, var_mpropdef106
) /* []= on <var_table:Array[nullable MPropDef]>*/;
3230 CONTINUE_label110
: (void)0;
3231 ((void (*)(val
*))(var103
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var103
) /* next on <var103:Iterator[nullable Object]>*/;
3233 BREAK_label110
: (void)0;
3234 CONTINUE_label78
: (void)0;
3235 ((void (*)(val
*))(var70
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var70
) /* next on <var70:Iterator[nullable Object]>*/;
3237 BREAK_label78
: (void)0;
3238 var111
= ((val
* (*)(val
*))(var_super_calls
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_super_calls
) /* iterator on <var_super_calls:Set[MMethodDef]>*/;
3240 var112
= ((short int (*)(val
*))(var111
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var111
) /* is_ok on <var111:Iterator[nullable Object]>*/;
3242 var113
= ((val
* (*)(val
*))(var111
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var111
) /* item on <var111:Iterator[nullable Object]>*/;
3243 var_mmethoddef114
= var113
;
3244 var115
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclassdefs
]))(var_mclass
) /* mclassdefs on <var_mclass:MClass>*/;
3245 var116
= ((val
* (*)(val
*))(var115
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var115
) /* iterator on <var115:Array[MClassDef]>*/;
3247 var117
= ((short int (*)(val
*))(var116
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var116
) /* is_ok on <var116:Iterator[nullable Object]>*/;
3249 var118
= ((val
* (*)(val
*))(var116
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var116
) /* item on <var116:Iterator[nullable Object]>*/;
3250 var_mclassdef119
= var118
;
3251 var120
= ((val
* (*)(val
*))(var_mclassdef119
->class->vft
[COLOR_model__MClassDef__mpropdefs
]))(var_mclassdef119
) /* mpropdefs on <var_mclassdef119:MClassDef>*/;
3252 var121
= ((short int (*)(val
*, val
*))(var120
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var120
, var_mmethoddef114
) /* has on <var120:Array[MPropDef]>*/;
3254 ((void (*)(val
*, val
*))(var_supercalls
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_supercalls
, var_mmethoddef114
) /* add on <var_supercalls:List[MMethodDef]>*/;
3257 CONTINUE_label122
: (void)0;
3258 ((void (*)(val
*))(var116
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var116
) /* next on <var116:Iterator[nullable Object]>*/;
3260 BREAK_label122
: (void)0;
3261 CONTINUE_label123
: (void)0;
3262 ((void (*)(val
*))(var111
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var111
) /* next on <var111:Iterator[nullable Object]>*/;
3264 BREAK_label123
: (void)0;
3265 var124
= ((val
* (*)(val
*))(var_supercalls
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_supercalls
) /* iterator on <var_supercalls:List[MMethodDef]>*/;
3267 var125
= ((short int (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var124
) /* is_ok on <var124:Iterator[nullable Object]>*/;
3269 var126
= ((val
* (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var124
) /* item on <var124:Iterator[nullable Object]>*/;
3270 var_supercall
= var126
;
3271 if (var_layout
== NULL
) {
3272 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3273 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 390);
3276 var127
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[PropertyLayoutElement]>*/;
3278 var128
= ((val
* (*)(val
*, val
*))(var127
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var127
, var_supercall
) /* [] on <var127:Map[Object, Int](Map[PropertyLayoutElement, Int])>*/;
3279 var129
= ((struct instance_kernel__Int
*)var128
)->value
; /* autounbox from nullable Object to Int */;
3280 var_color130
= var129
;
3281 var131
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3282 { /* Inline kernel#Int#<= (var131,var_color130) */
3283 /* Covariant cast for argument 0 (i) <var_color130:Int> isa OTHER */
3284 /* <var_color130:Int> isa OTHER */
3285 var134
= 1; /* easy <var_color130:Int> isa OTHER*/
3287 var_class_name137
= type_kernel__Int
.name
;
3288 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name137
);
3289 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
3292 var138
= var131
<= var_color130
;
3295 RET_LABEL133
:(void)0;
3298 var139
= NEW_range__Range(&type_range__Rangekernel__Int
);
3299 var140
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3300 var141
= BOX_kernel__Int(var140
); /* autobox from Int to Discrete */
3301 var142
= BOX_kernel__Int(var_color130
); /* autobox from Int to Discrete */
3302 ((void (*)(val
*, val
*, val
*))(var139
->class->vft
[COLOR_range__Range__without_last
]))(var139
, var141
, var142
) /* without_last on <var139:Range[Int]>*/;
3303 var143
= ((val
* (*)(val
*))(var139
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var139
) /* iterator on <var139:Range[Int]>*/;
3305 var144
= ((short int (*)(val
*))(var143
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var143
) /* is_ok on <var143:Iterator[nullable Object]>*/;
3307 var145
= ((val
* (*)(val
*))(var143
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var143
) /* item on <var143:Iterator[nullable Object]>*/;
3308 var147
= ((struct instance_kernel__Int
*)var145
)->value
; /* autounbox from nullable Object to Int */;
3311 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_i146
, var148
) /* []= on <var_table:Array[nullable MPropDef]>*/;
3312 CONTINUE_label149
: (void)0;
3313 ((void (*)(val
*))(var143
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var143
) /* next on <var143:Iterator[nullable Object]>*/;
3315 BREAK_label149
: (void)0;
3318 var150
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3319 var151
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
3320 var152
= ((val
* (*)(val
*))(var151
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var151
) /* bound_mtype on <var151:MClassDef>*/;
3321 var153
= ((val
* (*)(val
*, val
*, val
*))(var_supercall
->class->vft
[COLOR_model__MPropDef__lookup_next_definition
]))(var_supercall
, var150
, var152
) /* lookup_next_definition on <var_supercall:MMethodDef>*/;
3322 var_mmethoddef154
= var153
;
3323 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_color130
, var_mmethoddef154
) /* []= on <var_table:Array[nullable MPropDef]>*/;
3324 CONTINUE_label155
: (void)0;
3325 ((void (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var124
) /* next on <var124:Iterator[nullable Object]>*/;
3327 BREAK_label155
: (void)0;
3328 ((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]]>*/;
3329 CONTINUE_label156
: (void)0;
3330 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
3332 BREAK_label156
: (void)0;
3338 /* method separate_compiler#SeparateCompiler#build_method_tables for (self: Object, Set[MClass], Set[MMethodDef]): Map[MClass, Array[nullable MPropDef]] */
3339 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_method_tables(val
* self
, val
* p0
, val
* p1
) {
3340 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
3341 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
3342 var1
= separate_compiler__SeparateCompiler__build_method_tables(self
, p0
, p1
);
3347 /* method separate_compiler#SeparateCompiler#build_attr_tables for (self: SeparateCompiler, Set[MClass]): Map[MClass, Array[nullable MPropDef]] */
3348 val
* separate_compiler__SeparateCompiler__build_attr_tables(val
* self
, val
* p0
) {
3349 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
3350 val
* var_mclasses
/* var mclasses: Set[MClass] */;
3351 val
* var1
/* : nullable Layout[MAttribute] */;
3352 val
* var_layout
/* var layout: nullable Layout[MAttribute] */;
3353 val
* var2
/* : HashMap[MClass, Array[nullable MPropDef]] */;
3354 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MPropDef]] */;
3355 val
* var3
/* : Iterator[nullable Object] */;
3356 short int var4
/* : Bool */;
3357 val
* var5
/* : nullable Object */;
3358 val
* var_mclass
/* var mclass: MClass */;
3359 val
* var6
/* : Array[nullable MPropDef] */;
3360 val
* var_table
/* var table: Array[nullable MPropDef] */;
3361 val
* var7
/* : Array[MClass] */;
3362 val
* var_parents
/* var parents: Array[MClass] */;
3363 val
* var8
/* : MModule */;
3364 val
* var9
/* : POSet[MClass] */;
3365 short int var10
/* : Bool */;
3366 val
* var11
/* : MModule */;
3367 val
* var12
/* : POSetElement[MClass] */;
3368 val
* var13
/* : Collection[Object] */;
3369 val
* var14
/* : Array[nullable Object] */;
3370 val
* var15
/* : MModule */;
3371 val
* var16
/* : Iterator[nullable Object] */;
3372 short int var17
/* : Bool */;
3373 val
* var18
/* : nullable Object */;
3374 val
* var_parent
/* var parent: MClass */;
3375 short int var19
/* : Bool */;
3376 val
* var20
/* : MModule */;
3377 val
* var21
/* : Set[MProperty] */;
3378 val
* var22
/* : Iterator[nullable Object] */;
3379 short int var23
/* : Bool */;
3380 val
* var24
/* : nullable Object */;
3381 val
* var_mproperty
/* var mproperty: MProperty */;
3382 short int var25
/* : Bool */;
3385 short int var26
/* : Bool */;
3386 val
* var28
/* : Map[Object, Int] */;
3387 val
* var29
/* : nullable Object */;
3388 long var30
/* : Int */;
3389 long var_color
/* var color: Int */;
3390 long var31
/* : Int */;
3391 short int var32
/* : Bool */;
3392 short int var34
/* : Bool */;
3395 const char* var_class_name
;
3396 short int var37
/* : Bool */;
3397 val
* var38
/* : Range[Int] */;
3398 long var39
/* : Int */;
3399 val
* var40
/* : Discrete */;
3400 val
* var41
/* : Discrete */;
3401 val
* var42
/* : Iterator[nullable Object] */;
3402 short int var43
/* : Bool */;
3403 val
* var44
/* : nullable Object */;
3404 long var_i
/* var i: Int */;
3405 long var45
/* : Int */;
3406 val
* var46
/* : null */;
3407 val
* var48
/* : Array[MPropDef] */;
3408 val
* var49
/* : Iterator[nullable Object] */;
3409 short int var50
/* : Bool */;
3410 val
* var51
/* : nullable Object */;
3411 val
* var_mpropdef
/* var mpropdef: MAttributeDef */;
3412 val
* var52
/* : MClassDef */;
3413 val
* var53
/* : MClass */;
3414 short int var54
/* : Bool */;
3415 val
* var56
/* : MModule */;
3416 val
* var57
/* : Set[MProperty] */;
3417 val
* var58
/* : Iterator[nullable Object] */;
3418 short int var59
/* : Bool */;
3419 val
* var60
/* : nullable Object */;
3420 val
* var_mproperty61
/* var mproperty: MProperty */;
3421 short int var62
/* : Bool */;
3424 short int var65
/* : Bool */;
3425 val
* var67
/* : Map[Object, Int] */;
3426 val
* var68
/* : nullable Object */;
3427 long var69
/* : Int */;
3428 long var_color70
/* var color: Int */;
3429 long var71
/* : Int */;
3430 short int var72
/* : Bool */;
3431 short int var74
/* : Bool */;
3434 const char* var_class_name77
;
3435 short int var78
/* : Bool */;
3436 val
* var79
/* : Range[Int] */;
3437 long var80
/* : Int */;
3438 val
* var81
/* : Discrete */;
3439 val
* var82
/* : Discrete */;
3440 val
* var83
/* : Iterator[nullable Object] */;
3441 short int var84
/* : Bool */;
3442 val
* var85
/* : nullable Object */;
3443 long var_i86
/* var i: Int */;
3444 long var87
/* : Int */;
3445 val
* var88
/* : null */;
3446 val
* var90
/* : Array[MPropDef] */;
3447 val
* var91
/* : Iterator[nullable Object] */;
3448 short int var92
/* : Bool */;
3449 val
* var93
/* : nullable Object */;
3450 val
* var_mpropdef94
/* var mpropdef: MAttributeDef */;
3451 val
* var95
/* : MClassDef */;
3452 val
* var96
/* : MClass */;
3453 short int var97
/* : Bool */;
3455 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_layout
]))(self
) /* attr_layout on <self:SeparateCompiler>*/;
3457 var2
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef
);
3458 ((void (*)(val
*))(var2
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var2
) /* init on <var2:HashMap[MClass, Array[nullable MPropDef]]>*/;
3460 var3
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:Set[MClass]>*/;
3462 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
3464 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
3466 var6
= NEW_array__Array(&type_array__Arraynullable_model__MPropDef
);
3467 ((void (*)(val
*))(var6
->class->vft
[COLOR_array__Array__init
]))(var6
) /* init on <var6:Array[nullable MPropDef]>*/;
3469 var7
= NEW_array__Array(&type_array__Arraymodel__MClass
);
3470 ((void (*)(val
*))(var7
->class->vft
[COLOR_array__Array__init
]))(var7
) /* init on <var7:Array[MClass]>*/;
3472 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3473 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var8
) /* flatten_mclass_hierarchy on <var8:MModule>*/;
3474 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var9
, var_mclass
) /* has on <var9:POSet[MClass]>*/;
3476 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3477 var12
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass
, var11
) /* in_hierarchy on <var_mclass:MClass>*/;
3478 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var12
) /* greaters on <var12:POSetElement[MClass]>*/;
3479 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_array__Collection__to_a
]))(var13
) /* to_a on <var13:Collection[Object](Collection[MClass])>*/;
3480 var_parents
= var14
;
3481 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3482 ((void (*)(val
*, val
*))(var15
->class->vft
[COLOR_model__MModule__linearize_mclasses
]))(var15
, var_parents
) /* linearize_mclasses on <var15:MModule>*/;
3485 var16
= ((val
* (*)(val
*))(var_parents
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_parents
) /* iterator on <var_parents:Array[MClass]>*/;
3487 var17
= ((short int (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var16
) /* is_ok on <var16:Iterator[nullable Object]>*/;
3489 var18
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var16
) /* item on <var16:Iterator[nullable Object]>*/;
3491 var19
= ((short int (*)(val
*, val
*))(var_parent
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_parent
, var_mclass
) /* == on <var_parent:MClass>*/;
3493 goto CONTINUE_label
;
3496 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3497 var21
= ((val
* (*)(val
*, val
*))(var20
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var20
, var_parent
) /* properties on <var20:MModule>*/;
3498 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var21
) /* iterator on <var21:Set[MProperty]>*/;
3500 var23
= ((short int (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var22
) /* is_ok on <var22:Iterator[nullable Object]>*/;
3502 var24
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var22
) /* item on <var22:Iterator[nullable Object]>*/;
3503 var_mproperty
= var24
;
3504 /* <var_mproperty:MProperty> isa MAttribute */
3505 cltype
= type_model__MAttribute
.color
;
3506 idtype
= type_model__MAttribute
.id
;
3507 if(cltype
>= var_mproperty
->type
->table_size
) {
3510 var25
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
3514 goto CONTINUE_label27
;
3517 if (var_layout
== NULL
) {
3518 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3519 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 419);
3522 var28
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MAttribute]>*/;
3524 var29
= ((val
* (*)(val
*, val
*))(var28
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var28
, var_mproperty
) /* [] on <var28:Map[Object, Int](Map[MAttribute, Int])>*/;
3525 var30
= ((struct instance_kernel__Int
*)var29
)->value
; /* autounbox from nullable Object to Int */;
3527 var31
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3528 { /* Inline kernel#Int#<= (var31,var_color) */
3529 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
3530 /* <var_color:Int> isa OTHER */
3531 var34
= 1; /* easy <var_color:Int> isa OTHER*/
3533 var_class_name
= type_kernel__Int
.name
;
3534 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3535 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
3538 var37
= var31
<= var_color
;
3541 RET_LABEL33
:(void)0;
3544 var38
= NEW_range__Range(&type_range__Rangekernel__Int
);
3545 var39
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3546 var40
= BOX_kernel__Int(var39
); /* autobox from Int to Discrete */
3547 var41
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
3548 ((void (*)(val
*, val
*, val
*))(var38
->class->vft
[COLOR_range__Range__without_last
]))(var38
, var40
, var41
) /* without_last on <var38:Range[Int]>*/;
3549 var42
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var38
) /* iterator on <var38:Range[Int]>*/;
3551 var43
= ((short int (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var42
) /* is_ok on <var42:Iterator[nullable Object]>*/;
3553 var44
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var42
) /* item on <var42:Iterator[nullable Object]>*/;
3554 var45
= ((struct instance_kernel__Int
*)var44
)->value
; /* autounbox from nullable Object to Int */;
3557 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_i
, var46
) /* []= on <var_table:Array[nullable MPropDef]>*/;
3558 CONTINUE_label47
: (void)0;
3559 ((void (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var42
) /* next on <var42:Iterator[nullable Object]>*/;
3561 BREAK_label47
: (void)0;
3564 var48
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty
) /* mpropdefs on <var_mproperty:MProperty(MAttribute)>*/;
3565 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var48
) /* iterator on <var48:Array[MPropDef](Array[MAttributeDef])>*/;
3567 var50
= ((short int (*)(val
*))(var49
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var49
) /* is_ok on <var49:Iterator[nullable Object]>*/;
3569 var51
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var49
) /* item on <var49:Iterator[nullable Object]>*/;
3570 var_mpropdef
= var51
;
3571 var52
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MAttributeDef>*/;
3572 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_model__MClassDef__mclass
]))(var52
) /* mclass on <var52:MClassDef>*/;
3573 var54
= ((short int (*)(val
*, val
*))(var53
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var53
, var_parent
) /* == on <var53:MClass>*/;
3575 ((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]>*/;
3578 CONTINUE_label55
: (void)0;
3579 ((void (*)(val
*))(var49
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var49
) /* next on <var49:Iterator[nullable Object]>*/;
3581 BREAK_label55
: (void)0;
3582 CONTINUE_label27
: (void)0;
3583 ((void (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var22
) /* next on <var22:Iterator[nullable Object]>*/;
3585 BREAK_label27
: (void)0;
3586 CONTINUE_label
: (void)0;
3587 ((void (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var16
) /* next on <var16:Iterator[nullable Object]>*/;
3589 BREAK_label
: (void)0;
3590 var56
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3591 var57
= ((val
* (*)(val
*, val
*))(var56
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var56
, var_mclass
) /* properties on <var56:MModule>*/;
3592 var58
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var57
) /* iterator on <var57:Set[MProperty]>*/;
3594 var59
= ((short int (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var58
) /* is_ok on <var58:Iterator[nullable Object]>*/;
3596 var60
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var58
) /* item on <var58:Iterator[nullable Object]>*/;
3597 var_mproperty61
= var60
;
3598 /* <var_mproperty61:MProperty> isa MAttribute */
3599 cltype63
= type_model__MAttribute
.color
;
3600 idtype64
= type_model__MAttribute
.id
;
3601 if(cltype63
>= var_mproperty61
->type
->table_size
) {
3604 var62
= var_mproperty61
->type
->type_table
[cltype63
] == idtype64
;
3608 goto CONTINUE_label66
;
3611 if (var_layout
== NULL
) {
3612 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3613 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 436);
3616 var67
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MAttribute]>*/;
3618 var68
= ((val
* (*)(val
*, val
*))(var67
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var67
, var_mproperty61
) /* [] on <var67:Map[Object, Int](Map[MAttribute, Int])>*/;
3619 var69
= ((struct instance_kernel__Int
*)var68
)->value
; /* autounbox from nullable Object to Int */;
3620 var_color70
= var69
;
3621 var71
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3622 { /* Inline kernel#Int#<= (var71,var_color70) */
3623 /* Covariant cast for argument 0 (i) <var_color70:Int> isa OTHER */
3624 /* <var_color70:Int> isa OTHER */
3625 var74
= 1; /* easy <var_color70:Int> isa OTHER*/
3627 var_class_name77
= type_kernel__Int
.name
;
3628 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name77
);
3629 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
3632 var78
= var71
<= var_color70
;
3635 RET_LABEL73
:(void)0;
3638 var79
= NEW_range__Range(&type_range__Rangekernel__Int
);
3639 var80
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3640 var81
= BOX_kernel__Int(var80
); /* autobox from Int to Discrete */
3641 var82
= BOX_kernel__Int(var_color70
); /* autobox from Int to Discrete */
3642 ((void (*)(val
*, val
*, val
*))(var79
->class->vft
[COLOR_range__Range__without_last
]))(var79
, var81
, var82
) /* without_last on <var79:Range[Int]>*/;
3643 var83
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var79
) /* iterator on <var79:Range[Int]>*/;
3645 var84
= ((short int (*)(val
*))(var83
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var83
) /* is_ok on <var83:Iterator[nullable Object]>*/;
3647 var85
= ((val
* (*)(val
*))(var83
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var83
) /* item on <var83:Iterator[nullable Object]>*/;
3648 var87
= ((struct instance_kernel__Int
*)var85
)->value
; /* autounbox from nullable Object to Int */;
3651 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_i86
, var88
) /* []= on <var_table:Array[nullable MPropDef]>*/;
3652 CONTINUE_label89
: (void)0;
3653 ((void (*)(val
*))(var83
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var83
) /* next on <var83:Iterator[nullable Object]>*/;
3655 BREAK_label89
: (void)0;
3658 var90
= ((val
* (*)(val
*))(var_mproperty61
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty61
) /* mpropdefs on <var_mproperty61:MProperty(MAttribute)>*/;
3659 var91
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var90
) /* iterator on <var90:Array[MPropDef](Array[MAttributeDef])>*/;
3661 var92
= ((short int (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var91
) /* is_ok on <var91:Iterator[nullable Object]>*/;
3663 var93
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var91
) /* item on <var91:Iterator[nullable Object]>*/;
3664 var_mpropdef94
= var93
;
3665 var95
= ((val
* (*)(val
*))(var_mpropdef94
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef94
) /* mclassdef on <var_mpropdef94:MAttributeDef>*/;
3666 var96
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_model__MClassDef__mclass
]))(var95
) /* mclass on <var95:MClassDef>*/;
3667 var97
= ((short int (*)(val
*, val
*))(var96
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var96
, var_mclass
) /* == on <var96:MClass>*/;
3669 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_color70
, var_mpropdef94
) /* []= on <var_table:Array[nullable MPropDef]>*/;
3672 CONTINUE_label98
: (void)0;
3673 ((void (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var91
) /* next on <var91:Iterator[nullable Object]>*/;
3675 BREAK_label98
: (void)0;
3676 CONTINUE_label66
: (void)0;
3677 ((void (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var58
) /* next on <var58:Iterator[nullable Object]>*/;
3679 BREAK_label66
: (void)0;
3680 ((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]]>*/;
3681 CONTINUE_label99
: (void)0;
3682 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
3684 BREAK_label99
: (void)0;
3690 /* method separate_compiler#SeparateCompiler#build_attr_tables for (self: Object, Set[MClass]): Map[MClass, Array[nullable MPropDef]] */
3691 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_attr_tables(val
* self
, val
* p0
) {
3692 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
3693 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
3694 var1
= separate_compiler__SeparateCompiler__build_attr_tables(self
, p0
);
3699 /* method separate_compiler#SeparateCompiler#do_type_coloring for (self: SeparateCompiler): POSet[MType] */
3700 val
* separate_compiler__SeparateCompiler__do_type_coloring(val
* self
) {
3701 val
* var
/* : POSet[MType] */;
3702 val
* var1
/* : HashSet[MType] */;
3703 val
* var_mtypes
/* var mtypes: HashSet[MType] */;
3704 val
* var2
/* : nullable RapidTypeAnalysis */;
3705 val
* var3
/* : HashSet[MClassType] */;
3706 val
* var4
/* : nullable RapidTypeAnalysis */;
3707 val
* var5
/* : HashSet[MType] */;
3708 val
* var6
/* : HashMap[MClass, Int] */;
3709 val
* var7
/* : Collection[Object] */;
3710 val
* var8
/* : Iterator[nullable Object] */;
3711 short int var9
/* : Bool */;
3712 val
* var10
/* : nullable Object */;
3713 val
* var_c
/* var c: MClass */;
3714 val
* var11
/* : MClassType */;
3715 val
* var12
/* : ModelBuilder */;
3716 val
* var13
/* : ToolContext */;
3717 val
* var14
/* : OptionBool */;
3718 val
* var15
/* : nullable Object */;
3719 short int var16
/* : Bool */;
3720 val
* var17
/* : MTypeBMizer */;
3721 val
* var18
/* : MModule */;
3722 val
* var_layout_builder
/* var layout_builder: TypingLayoutBuilder[MType] */;
3723 val
* var19
/* : ModelBuilder */;
3724 val
* var20
/* : ToolContext */;
3725 val
* var21
/* : OptionBool */;
3726 val
* var22
/* : nullable Object */;
3727 short int var23
/* : Bool */;
3728 val
* var24
/* : MTypeHasher */;
3729 val
* var25
/* : PHModOperator */;
3730 val
* var26
/* : MModule */;
3731 val
* var27
/* : ModelBuilder */;
3732 val
* var28
/* : ToolContext */;
3733 val
* var29
/* : OptionBool */;
3734 val
* var30
/* : nullable Object */;
3735 short int var31
/* : Bool */;
3736 val
* var32
/* : MTypeHasher */;
3737 val
* var33
/* : PHAndOperator */;
3738 val
* var34
/* : MModule */;
3739 val
* var35
/* : MTypeColorer */;
3740 val
* var36
/* : MModule */;
3741 val
* var37
/* : Layout[Object] */;
3742 val
* var38
/* : nullable POSet[Object] */;
3743 val
* var_poset
/* var poset: POSet[MType] */;
3744 val
* var39
/* : Map[MType, Array[nullable MType]] */;
3745 var1
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
3746 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var1
) /* init on <var1:HashSet[MType]>*/;
3748 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
3750 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3751 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 456);
3754 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var2
) /* live_types on <var2:nullable RapidTypeAnalysis>*/;
3756 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_mtypes
, var3
) /* add_all on <var_mtypes:HashSet[MType]>*/;
3757 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
3759 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3760 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 457);
3763 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_cast_types
]))(var4
) /* live_cast_types on <var4:nullable RapidTypeAnalysis>*/;
3765 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_mtypes
, var5
) /* add_all on <var_mtypes:HashSet[MType]>*/;
3766 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
3767 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__MapRead__keys
]))(var6
) /* keys on <var6:HashMap[MClass, Int]>*/;
3768 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var7
) /* iterator on <var7:Collection[Object](HashMapKeys[MClass, Int])>*/;
3770 var9
= ((short int (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var8
) /* is_ok on <var8:Iterator[nullable Object]>*/;
3772 var10
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var8
) /* item on <var8:Iterator[nullable Object]>*/;
3774 var11
= ((val
* (*)(val
*))(var_c
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c
) /* mclass_type on <var_c:MClass>*/;
3775 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_mtypes
, var11
) /* add on <var_mtypes:HashSet[MType]>*/;
3776 CONTINUE_label
: (void)0;
3777 ((void (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var8
) /* next on <var8:Iterator[nullable Object]>*/;
3779 BREAK_label
: (void)0;
3780 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
3781 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var12
) /* toolcontext on <var12:ModelBuilder>*/;
3782 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_separate_compiler__ToolContext__opt_bm_typing
]))(var13
) /* opt_bm_typing on <var13:ToolContext>*/;
3783 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_opts__Option__value
]))(var14
) /* value on <var14:OptionBool>*/;
3784 var16
= ((struct instance_kernel__Bool
*)var15
)->value
; /* autounbox from nullable Object to Bool */;
3786 var17
= NEW_layout_builders__MTypeBMizer(&type_layout_builders__MTypeBMizer
);
3787 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3788 ((void (*)(val
*, val
*))(var17
->class->vft
[COLOR_layout_builders__MTypeBMizer__init
]))(var17
, var18
) /* init on <var17:MTypeBMizer>*/;
3789 var_layout_builder
= var17
;
3791 var19
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
3792 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var19
) /* toolcontext on <var19:ModelBuilder>*/;
3793 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var20
) /* opt_phmod_typing on <var20:ToolContext>*/;
3794 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_opts__Option__value
]))(var21
) /* value on <var21:OptionBool>*/;
3795 var23
= ((struct instance_kernel__Bool
*)var22
)->value
; /* autounbox from nullable Object to Bool */;
3797 var24
= NEW_layout_builders__MTypeHasher(&type_layout_builders__MTypeHasher
);
3798 var25
= NEW_layout_builders__PHModOperator(&type_layout_builders__PHModOperator
);
3799 ((void (*)(val
*))(var25
->class->vft
[COLOR_layout_builders__PHModOperator__init
]))(var25
) /* init on <var25:PHModOperator>*/;
3800 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3801 ((void (*)(val
*, val
*, val
*))(var24
->class->vft
[COLOR_layout_builders__MTypeHasher__init
]))(var24
, var25
, var26
) /* init on <var24:MTypeHasher>*/;
3802 var_layout_builder
= var24
;
3804 var27
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
3805 var28
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var27
) /* toolcontext on <var27:ModelBuilder>*/;
3806 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var28
) /* opt_phand_typing on <var28:ToolContext>*/;
3807 var30
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_opts__Option__value
]))(var29
) /* value on <var29:OptionBool>*/;
3808 var31
= ((struct instance_kernel__Bool
*)var30
)->value
; /* autounbox from nullable Object to Bool */;
3810 var32
= NEW_layout_builders__MTypeHasher(&type_layout_builders__MTypeHasher
);
3811 var33
= NEW_layout_builders__PHAndOperator(&type_layout_builders__PHAndOperator
);
3812 ((void (*)(val
*))(var33
->class->vft
[COLOR_layout_builders__PHAndOperator__init
]))(var33
) /* init on <var33:PHAndOperator>*/;
3813 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3814 ((void (*)(val
*, val
*, val
*))(var32
->class->vft
[COLOR_layout_builders__MTypeHasher__init
]))(var32
, var33
, var34
) /* init on <var32:MTypeHasher>*/;
3815 var_layout_builder
= var32
;
3817 var35
= NEW_layout_builders__MTypeColorer(&type_layout_builders__MTypeColorer
);
3818 var36
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3819 ((void (*)(val
*, val
*))(var35
->class->vft
[COLOR_layout_builders__MTypeColorer__init
]))(var35
, var36
) /* init on <var35:MTypeColorer>*/;
3820 var_layout_builder
= var35
;
3824 var37
= ((val
* (*)(val
*, val
*))(var_layout_builder
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__build_layout
]))(var_layout_builder
, var_mtypes
) /* build_layout on <var_layout_builder:TypingLayoutBuilder[MType]>*/;
3825 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout_61d
]))(self
, var37
) /* type_layout= on <self:SeparateCompiler>*/;
3826 var38
= ((val
* (*)(val
*))(var_layout_builder
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(var_layout_builder
) /* poset on <var_layout_builder:TypingLayoutBuilder[MType]>*/;
3827 if (var38
== NULL
) {
3828 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3829 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 476);
3833 var39
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__build_type_tables
]))(self
, var_poset
) /* build_type_tables on <self:SeparateCompiler>*/;
3834 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_tables_61d
]))(self
, var39
) /* type_tables= on <self:SeparateCompiler>*/;
3835 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_resolution_tables
]))(self
, var_mtypes
) /* compile_resolution_tables on <self:SeparateCompiler>*/;
3841 /* method separate_compiler#SeparateCompiler#do_type_coloring for (self: Object): POSet[MType] */
3842 val
* VIRTUAL_separate_compiler__SeparateCompiler__do_type_coloring(val
* self
) {
3843 val
* var
/* : POSet[MType] */;
3844 val
* var1
/* : POSet[MType] */;
3845 var1
= separate_compiler__SeparateCompiler__do_type_coloring(self
);
3850 /* method separate_compiler#SeparateCompiler#build_type_tables for (self: SeparateCompiler, POSet[MType]): Map[MType, Array[nullable MType]] */
3851 val
* separate_compiler__SeparateCompiler__build_type_tables(val
* self
, val
* p0
) {
3852 val
* var
/* : Map[MType, Array[nullable MType]] */;
3853 val
* var_mtypes
/* var mtypes: POSet[MType] */;
3854 val
* var1
/* : HashMap[MType, Array[nullable MType]] */;
3855 val
* var_tables
/* var tables: HashMap[MType, Array[nullable MType]] */;
3856 val
* var2
/* : nullable Layout[MType] */;
3857 val
* var_layout
/* var layout: nullable Layout[MType] */;
3858 val
* var3
/* : Iterator[nullable Object] */;
3859 short int var4
/* : Bool */;
3860 val
* var5
/* : nullable Object */;
3861 val
* var_mtype
/* var mtype: MType */;
3862 val
* var6
/* : Array[nullable MType] */;
3863 val
* var_table
/* var table: Array[nullable MType] */;
3864 val
* var7
/* : POSetElement[Object] */;
3865 val
* var8
/* : Collection[Object] */;
3866 val
* var9
/* : Iterator[nullable Object] */;
3867 short int var10
/* : Bool */;
3868 val
* var11
/* : nullable Object */;
3869 val
* var_sup
/* var sup: MType */;
3870 short int var12
/* : Bool */;
3873 val
* var13
/* : Map[Object, Map[Object, Int]] */;
3874 val
* var14
/* : nullable Object */;
3875 val
* var15
/* : nullable Object */;
3876 long var16
/* : Int */;
3877 long var_color
/* var color: Int */;
3878 val
* var17
/* : Map[Object, Int] */;
3879 val
* var18
/* : nullable Object */;
3880 long var19
/* : Int */;
3881 long var20
/* : Int */;
3882 short int var21
/* : Bool */;
3883 short int var23
/* : Bool */;
3886 const char* var_class_name
;
3887 short int var26
/* : Bool */;
3888 val
* var27
/* : Range[Int] */;
3889 long var28
/* : Int */;
3890 val
* var29
/* : Discrete */;
3891 val
* var30
/* : Discrete */;
3892 val
* var31
/* : Iterator[nullable Object] */;
3893 short int var32
/* : Bool */;
3894 val
* var33
/* : nullable Object */;
3895 long var_i
/* var i: Int */;
3896 long var34
/* : Int */;
3897 val
* var35
/* : null */;
3899 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType
);
3900 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var1
) /* init on <var1:HashMap[MType, Array[nullable MType]]>*/;
3902 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout
]))(self
) /* type_layout on <self:SeparateCompiler>*/;
3904 var3
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mtypes
) /* iterator on <var_mtypes:POSet[MType]>*/;
3906 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
3908 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
3910 var6
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
3911 ((void (*)(val
*))(var6
->class->vft
[COLOR_array__Array__init
]))(var6
) /* init on <var6:Array[nullable MType]>*/;
3913 var7
= ((val
* (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_poset__POSet___91d_93d
]))(var_mtypes
, var_mtype
) /* [] on <var_mtypes:POSet[MType]>*/;
3914 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var7
) /* greaters on <var7:POSetElement[Object](POSetElement[MType])>*/;
3915 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:Collection[Object](Collection[MType])>*/;
3917 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
3919 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
3921 /* <var_layout:nullable Layout[MType]> isa PHLayout[MType, MType] */
3922 cltype
= type_layout_builders__PHLayoutmodel__MTypemodel__MType
.color
;
3923 idtype
= type_layout_builders__PHLayoutmodel__MTypemodel__MType
.id
;
3924 if(var_layout
== NULL
) {
3927 if(cltype
>= var_layout
->type
->table_size
) {
3930 var12
= var_layout
->type
->type_table
[cltype
] == idtype
;
3934 var13
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__hashes
]))(var_layout
) /* hashes on <var_layout:nullable Layout[MType](PHLayout[MType, MType])>*/;
3935 var14
= ((val
* (*)(val
*, val
*))(var13
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var13
, var_mtype
) /* [] on <var13:Map[Object, Map[Object, Int]](Map[MType, Map[MType, Int]])>*/;
3936 var15
= ((val
* (*)(val
*, val
*))(var14
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var14
, var_sup
) /* [] on <var14:nullable Object(Map[MType, Int])>*/;
3937 var16
= ((struct instance_kernel__Int
*)var15
)->value
; /* autounbox from nullable Object to Int */;
3940 if (var_layout
== NULL
) {
3941 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3942 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 496);
3945 var17
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MType]>*/;
3947 var18
= ((val
* (*)(val
*, val
*))(var17
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var17
, var_sup
) /* [] on <var17:Map[Object, Int](Map[MType, Int])>*/;
3948 var19
= ((struct instance_kernel__Int
*)var18
)->value
; /* autounbox from nullable Object to Int */;
3951 var20
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MType]>*/;
3952 { /* Inline kernel#Int#<= (var20,var_color) */
3953 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
3954 /* <var_color:Int> isa OTHER */
3955 var23
= 1; /* easy <var_color:Int> isa OTHER*/
3957 var_class_name
= type_kernel__Int
.name
;
3958 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3959 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
3962 var26
= var20
<= var_color
;
3965 RET_LABEL22
:(void)0;
3968 var27
= NEW_range__Range(&type_range__Rangekernel__Int
);
3969 var28
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MType]>*/;
3970 var29
= BOX_kernel__Int(var28
); /* autobox from Int to Discrete */
3971 var30
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
3972 ((void (*)(val
*, val
*, val
*))(var27
->class->vft
[COLOR_range__Range__without_last
]))(var27
, var29
, var30
) /* without_last on <var27:Range[Int]>*/;
3973 var31
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var27
) /* iterator on <var27:Range[Int]>*/;
3975 var32
= ((short int (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var31
) /* is_ok on <var31:Iterator[nullable Object]>*/;
3977 var33
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var31
) /* item on <var31:Iterator[nullable Object]>*/;
3978 var34
= ((struct instance_kernel__Int
*)var33
)->value
; /* autounbox from nullable Object to Int */;
3981 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_i
, var35
) /* []= on <var_table:Array[nullable MType]>*/;
3982 CONTINUE_label
: (void)0;
3983 ((void (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var31
) /* next on <var31:Iterator[nullable Object]>*/;
3985 BREAK_label
: (void)0;
3988 ((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 MType]>*/;
3989 CONTINUE_label36
: (void)0;
3990 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
3992 BREAK_label36
: (void)0;
3993 ((void (*)(val
*, val
*, val
*))(var_tables
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_tables
, var_mtype
, var_table
) /* []= on <var_tables:HashMap[MType, Array[nullable MType]]>*/;
3994 CONTINUE_label37
: (void)0;
3995 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
3997 BREAK_label37
: (void)0;
4003 /* method separate_compiler#SeparateCompiler#build_type_tables for (self: Object, POSet[MType]): Map[MType, Array[nullable MType]] */
4004 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_type_tables(val
* self
, val
* p0
) {
4005 val
* var
/* : Map[MType, Array[nullable MType]] */;
4006 val
* var1
/* : Map[MType, Array[nullable MType]] */;
4007 var1
= separate_compiler__SeparateCompiler__build_type_tables(self
, p0
);
4012 /* method separate_compiler#SeparateCompiler#compile_resolution_tables for (self: SeparateCompiler, Set[MType]) */
4013 void separate_compiler__SeparateCompiler__compile_resolution_tables(val
* self
, val
* p0
) {
4014 val
* var_mtypes
/* var mtypes: Set[MType] */;
4015 val
* var
/* : HashMap[MClassType, Set[MType]] */;
4016 val
* var_mtype2unresolved
/* var mtype2unresolved: HashMap[MClassType, Set[MType]] */;
4017 val
* var1
/* : nullable RapidTypeAnalysis */;
4018 val
* var2
/* : HashSet[MClassType] */;
4019 val
* var3
/* : Iterator[nullable Object] */;
4020 short int var4
/* : Bool */;
4021 val
* var5
/* : nullable Object */;
4022 val
* var_mtype
/* var mtype: MClassType */;
4023 val
* var6
/* : HashSet[MType] */;
4024 val
* var_set
/* var set: HashSet[MType] */;
4025 val
* var7
/* : MModule */;
4026 val
* var8
/* : Set[MClassDef] */;
4027 val
* var9
/* : Iterator[nullable Object] */;
4028 short int var10
/* : Bool */;
4029 val
* var11
/* : nullable Object */;
4030 val
* var_cd
/* var cd: MClassDef */;
4031 val
* var12
/* : Map[MClassDef, Set[MType]] */;
4032 short int var13
/* : Bool */;
4033 val
* var14
/* : Map[MClassDef, Set[MType]] */;
4034 val
* var15
/* : nullable Object */;
4035 val
* var17
/* : ModelBuilder */;
4036 val
* var18
/* : ToolContext */;
4037 val
* var19
/* : OptionBool */;
4038 val
* var20
/* : nullable Object */;
4039 short int var21
/* : Bool */;
4040 val
* var22
/* : ResolutionBMizer */;
4041 val
* var_resolution_builder
/* var resolution_builder: ResolutionLayoutBuilder */;
4042 val
* var23
/* : ModelBuilder */;
4043 val
* var24
/* : ToolContext */;
4044 val
* var25
/* : OptionBool */;
4045 val
* var26
/* : nullable Object */;
4046 short int var27
/* : Bool */;
4047 val
* var28
/* : ResolutionHasher */;
4048 val
* var29
/* : PHModOperator */;
4049 val
* var30
/* : ModelBuilder */;
4050 val
* var31
/* : ToolContext */;
4051 val
* var32
/* : OptionBool */;
4052 val
* var33
/* : nullable Object */;
4053 short int var34
/* : Bool */;
4054 val
* var35
/* : ResolutionHasher */;
4055 val
* var36
/* : PHAndOperator */;
4056 val
* var37
/* : ResolutionColorer */;
4057 val
* var38
/* : Layout[MType] */;
4058 val
* var39
/* : Map[MClassType, Array[nullable MType]] */;
4059 val
* var40
/* : HashSet[MType] */;
4060 val
* var_all_unresolved
/* var all_unresolved: HashSet[MType] */;
4061 val
* var41
/* : Map[MClassDef, Set[MType]] */;
4062 val
* var42
/* : Collection[nullable Object] */;
4063 val
* var43
/* : Iterator[nullable Object] */;
4064 short int var44
/* : Bool */;
4065 val
* var45
/* : nullable Object */;
4066 val
* var_t
/* var t: Set[MType] */;
4067 val
* var47
/* : HashMap[MType, Int] */;
4068 val
* var_all_unresolved_types_colors
/* var all_unresolved_types_colors: HashMap[MType, Int] */;
4069 val
* var48
/* : Iterator[nullable Object] */;
4070 short int var49
/* : Bool */;
4071 val
* var50
/* : nullable Object */;
4072 val
* var_t51
/* var t: MType */;
4073 val
* var52
/* : nullable Layout[MType] */;
4074 val
* var53
/* : Map[Object, Int] */;
4075 short int var54
/* : Bool */;
4076 val
* var55
/* : nullable Layout[MType] */;
4077 val
* var56
/* : Map[Object, Int] */;
4078 val
* var57
/* : nullable Object */;
4079 long var58
/* : Int */;
4080 long var59
/* : Int */;
4081 long var61
/* : Int */;
4082 val
* var62
/* : nullable Object */;
4084 var
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypeabstract_collection__Setmodel__MType
);
4085 ((void (*)(val
*))(var
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var
) /* init on <var:HashMap[MClassType, Set[MType]]>*/;
4086 var_mtype2unresolved
= var
;
4087 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
4089 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
4090 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 519);
4093 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var1
) /* live_types on <var1:nullable RapidTypeAnalysis>*/;
4095 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:HashSet[MClassType]>*/;
4097 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
4099 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
4101 var6
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
4102 ((void (*)(val
*))(var6
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var6
) /* init on <var6:HashSet[MType]>*/;
4104 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
4105 var8
= ((val
* (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var_mtype
, var7
) /* collect_mclassdefs on <var_mtype:MClassType>*/;
4106 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:Set[MClassDef]>*/;
4108 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
4110 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
4112 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__live_unresolved_types
]))(self
) /* live_unresolved_types on <self:SeparateCompiler>*/;
4113 var13
= ((short int (*)(val
*, val
*))(var12
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var12
, var_cd
) /* has_key on <var12:Map[MClassDef, Set[MType]]>*/;
4115 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__live_unresolved_types
]))(self
) /* live_unresolved_types on <self:SeparateCompiler>*/;
4116 var15
= ((val
* (*)(val
*, val
*))(var14
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var14
, var_cd
) /* [] on <var14:Map[MClassDef, Set[MType]]>*/;
4117 ((void (*)(val
*, val
*))(var_set
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_set
, var15
) /* add_all on <var_set:HashSet[MType]>*/;
4120 CONTINUE_label
: (void)0;
4121 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
4123 BREAK_label
: (void)0;
4124 ((void (*)(val
*, val
*, val
*))(var_mtype2unresolved
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_mtype2unresolved
, var_mtype
, var_set
) /* []= on <var_mtype2unresolved:HashMap[MClassType, Set[MType]]>*/;
4125 CONTINUE_label16
: (void)0;
4126 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
4128 BREAK_label16
: (void)0;
4129 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
4130 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var17
) /* toolcontext on <var17:ModelBuilder>*/;
4131 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_separate_compiler__ToolContext__opt_bm_typing
]))(var18
) /* opt_bm_typing on <var18:ToolContext>*/;
4132 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_opts__Option__value
]))(var19
) /* value on <var19:OptionBool>*/;
4133 var21
= ((struct instance_kernel__Bool
*)var20
)->value
; /* autounbox from nullable Object to Bool */;
4135 var22
= NEW_layout_builders__ResolutionBMizer(&type_layout_builders__ResolutionBMizer
);
4136 ((void (*)(val
*))(var22
->class->vft
[COLOR_layout_builders__ResolutionBMizer__init
]))(var22
) /* init on <var22:ResolutionBMizer>*/;
4137 var_resolution_builder
= var22
;
4139 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
4140 var24
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var23
) /* toolcontext on <var23:ModelBuilder>*/;
4141 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var24
) /* opt_phmod_typing on <var24:ToolContext>*/;
4142 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_opts__Option__value
]))(var25
) /* value on <var25:OptionBool>*/;
4143 var27
= ((struct instance_kernel__Bool
*)var26
)->value
; /* autounbox from nullable Object to Bool */;
4145 var28
= NEW_layout_builders__ResolutionHasher(&type_layout_builders__ResolutionHasher
);
4146 var29
= NEW_layout_builders__PHModOperator(&type_layout_builders__PHModOperator
);
4147 ((void (*)(val
*))(var29
->class->vft
[COLOR_layout_builders__PHModOperator__init
]))(var29
) /* init on <var29:PHModOperator>*/;
4148 ((void (*)(val
*, val
*))(var28
->class->vft
[COLOR_layout_builders__ResolutionHasher__init
]))(var28
, var29
) /* init on <var28:ResolutionHasher>*/;
4149 var_resolution_builder
= var28
;
4151 var30
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
4152 var31
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var30
) /* toolcontext on <var30:ModelBuilder>*/;
4153 var32
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var31
) /* opt_phand_typing on <var31:ToolContext>*/;
4154 var33
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_opts__Option__value
]))(var32
) /* value on <var32:OptionBool>*/;
4155 var34
= ((struct instance_kernel__Bool
*)var33
)->value
; /* autounbox from nullable Object to Bool */;
4157 var35
= NEW_layout_builders__ResolutionHasher(&type_layout_builders__ResolutionHasher
);
4158 var36
= NEW_layout_builders__PHAndOperator(&type_layout_builders__PHAndOperator
);
4159 ((void (*)(val
*))(var36
->class->vft
[COLOR_layout_builders__PHAndOperator__init
]))(var36
) /* init on <var36:PHAndOperator>*/;
4160 ((void (*)(val
*, val
*))(var35
->class->vft
[COLOR_layout_builders__ResolutionHasher__init
]))(var35
, var36
) /* init on <var35:ResolutionHasher>*/;
4161 var_resolution_builder
= var35
;
4163 var37
= NEW_layout_builders__ResolutionColorer(&type_layout_builders__ResolutionColorer
);
4164 ((void (*)(val
*))(var37
->class->vft
[COLOR_layout_builders__ResolutionColorer__init
]))(var37
) /* init on <var37:ResolutionColorer>*/;
4165 var_resolution_builder
= var37
;
4169 var38
= ((val
* (*)(val
*, val
*))(var_resolution_builder
->class->vft
[COLOR_layout_builders__ResolutionLayoutBuilder__build_layout
]))(var_resolution_builder
, var_mtype2unresolved
) /* build_layout on <var_resolution_builder:ResolutionLayoutBuilder>*/;
4170 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_layout_61d
]))(self
, var38
) /* resolution_layout= on <self:SeparateCompiler>*/;
4171 var39
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__build_resolution_tables
]))(self
, var_mtype2unresolved
) /* build_resolution_tables on <self:SeparateCompiler>*/;
4172 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_tables_61d
]))(self
, var39
) /* resolution_tables= on <self:SeparateCompiler>*/;
4173 var40
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
4174 ((void (*)(val
*))(var40
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var40
) /* init on <var40:HashSet[MType]>*/;
4175 var_all_unresolved
= var40
;
4176 var41
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__live_unresolved_types
]))(self
) /* live_unresolved_types on <self:SeparateCompiler>*/;
4177 var42
= ((val
* (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__MapRead__values
]))(var41
) /* values on <var41:Map[MClassDef, Set[MType]]>*/;
4178 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var42
) /* iterator on <var42:Collection[nullable Object](RemovableCollection[Set[MType]])>*/;
4180 var44
= ((short int (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var43
) /* is_ok on <var43:Iterator[nullable Object]>*/;
4182 var45
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var43
) /* item on <var43:Iterator[nullable Object]>*/;
4184 ((void (*)(val
*, val
*))(var_all_unresolved
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_all_unresolved
, var_t
) /* add_all on <var_all_unresolved:HashSet[MType]>*/;
4185 CONTINUE_label46
: (void)0;
4186 ((void (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var43
) /* next on <var43:Iterator[nullable Object]>*/;
4188 BREAK_label46
: (void)0;
4189 var47
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypekernel__Int
);
4190 ((void (*)(val
*))(var47
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var47
) /* init on <var47:HashMap[MType, Int]>*/;
4191 var_all_unresolved_types_colors
= var47
;
4192 var48
= ((val
* (*)(val
*))(var_all_unresolved
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_all_unresolved
) /* iterator on <var_all_unresolved:HashSet[MType]>*/;
4194 var49
= ((short int (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var48
) /* is_ok on <var48:Iterator[nullable Object]>*/;
4196 var50
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var48
) /* item on <var48:Iterator[nullable Object]>*/;
4198 var52
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_layout
]))(self
) /* resolution_layout on <self:SeparateCompiler>*/;
4199 if (var52
== NULL
) {
4200 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
4201 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 551);
4204 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var52
) /* pos on <var52:nullable Layout[MType]>*/;
4206 var54
= ((short int (*)(val
*, val
*))(var53
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var53
, var_t51
) /* has_key on <var53:Map[Object, Int](Map[MType, Int])>*/;
4208 var55
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_layout
]))(self
) /* resolution_layout on <self:SeparateCompiler>*/;
4209 if (var55
== NULL
) {
4210 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
4211 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 552);
4214 var56
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var55
) /* pos on <var55:nullable Layout[MType]>*/;
4216 var57
= ((val
* (*)(val
*, val
*))(var56
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var56
, var_t51
) /* [] on <var56:Map[Object, Int](Map[MType, Int])>*/;
4217 ((void (*)(val
*, val
*, val
*))(var_all_unresolved_types_colors
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_all_unresolved_types_colors
, var_t51
, var57
) /* []= on <var_all_unresolved_types_colors:HashMap[MType, Int]>*/;
4220 { /* Inline kernel#Int#unary - (var58) */
4224 RET_LABEL60
:(void)0;
4226 var62
= BOX_kernel__Int(var59
); /* autobox from Int to nullable Object */
4227 ((void (*)(val
*, val
*, val
*))(var_all_unresolved_types_colors
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_all_unresolved_types_colors
, var_t51
, var62
) /* []= on <var_all_unresolved_types_colors:HashMap[MType, Int]>*/;
4229 CONTINUE_label63
: (void)0;
4230 ((void (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var48
) /* next on <var48:Iterator[nullable Object]>*/;
4232 BREAK_label63
: (void)0;
4233 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_color_consts
]))(self
, var_all_unresolved_types_colors
) /* compile_color_consts on <self:SeparateCompiler>*/;
4236 /* method separate_compiler#SeparateCompiler#compile_resolution_tables for (self: Object, Set[MType]) */
4237 void VIRTUAL_separate_compiler__SeparateCompiler__compile_resolution_tables(val
* self
, val
* p0
) {
4238 separate_compiler__SeparateCompiler__compile_resolution_tables(self
, p0
);
4241 /* method separate_compiler#SeparateCompiler#build_resolution_tables for (self: SeparateCompiler, Map[MClassType, Set[MType]]): Map[MClassType, Array[nullable MType]] */
4242 val
* separate_compiler__SeparateCompiler__build_resolution_tables(val
* self
, val
* p0
) {
4243 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
4244 val
* var_elements
/* var elements: Map[MClassType, Set[MType]] */;
4245 val
* var1
/* : HashMap[MClassType, Array[nullable MType]] */;
4246 val
* var_tables
/* var tables: HashMap[MClassType, Array[nullable MType]] */;
4247 val
* var2
/* : nullable Layout[MType] */;
4248 val
* var_layout
/* var layout: nullable Layout[MType] */;
4249 val
* var3
/* : MapIterator[Object, nullable Object] */;
4250 short int var4
/* : Bool */;
4251 val
* var5
/* : Object */;
4252 val
* var_mclasstype
/* var mclasstype: MClassType */;
4253 val
* var6
/* : nullable Object */;
4254 val
* var_mtypes
/* var mtypes: Set[MType] */;
4255 val
* var7
/* : Array[nullable MType] */;
4256 val
* var_table
/* var table: Array[nullable MType] */;
4257 val
* var8
/* : Iterator[nullable Object] */;
4258 short int var9
/* : Bool */;
4259 val
* var10
/* : nullable Object */;
4260 val
* var_mtype
/* var mtype: MType */;
4261 short int var11
/* : Bool */;
4264 val
* var12
/* : Map[Object, Map[Object, Int]] */;
4265 val
* var13
/* : nullable Object */;
4266 val
* var14
/* : nullable Object */;
4267 long var15
/* : Int */;
4268 long var_color
/* var color: Int */;
4269 val
* var16
/* : Map[Object, Int] */;
4270 val
* var17
/* : nullable Object */;
4271 long var18
/* : Int */;
4272 long var19
/* : Int */;
4273 short int var20
/* : Bool */;
4274 short int var22
/* : Bool */;
4277 const char* var_class_name
;
4278 short int var25
/* : Bool */;
4279 val
* var26
/* : Range[Int] */;
4280 long var27
/* : Int */;
4281 val
* var28
/* : Discrete */;
4282 val
* var29
/* : Discrete */;
4283 val
* var30
/* : Iterator[nullable Object] */;
4284 short int var31
/* : Bool */;
4285 val
* var32
/* : nullable Object */;
4286 long var_i
/* var i: Int */;
4287 long var33
/* : Int */;
4288 val
* var34
/* : null */;
4290 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType
);
4291 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var1
) /* init on <var1:HashMap[MClassType, Array[nullable MType]]>*/;
4293 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_layout
]))(self
) /* resolution_layout on <self:SeparateCompiler>*/;
4295 var3
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_elements
) /* iterator on <var_elements:Map[MClassType, Set[MType]]>*/;
4297 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var3
) /* is_ok on <var3:MapIterator[Object, nullable Object]>*/;
4299 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var3
) /* key on <var3:MapIterator[Object, nullable Object]>*/;
4300 var_mclasstype
= var5
;
4301 var6
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var3
) /* item on <var3:MapIterator[Object, nullable Object]>*/;
4303 var7
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
4304 ((void (*)(val
*))(var7
->class->vft
[COLOR_array__Array__init
]))(var7
) /* init on <var7:Array[nullable MType]>*/;
4306 var8
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mtypes
) /* iterator on <var_mtypes:Set[MType]>*/;
4308 var9
= ((short int (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var8
) /* is_ok on <var8:Iterator[nullable Object]>*/;
4310 var10
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var8
) /* item on <var8:Iterator[nullable Object]>*/;
4312 /* <var_layout:nullable Layout[MType]> isa PHLayout[MClassType, MType] */
4313 cltype
= type_layout_builders__PHLayoutmodel__MClassTypemodel__MType
.color
;
4314 idtype
= type_layout_builders__PHLayoutmodel__MClassTypemodel__MType
.id
;
4315 if(var_layout
== NULL
) {
4318 if(cltype
>= var_layout
->type
->table_size
) {
4321 var11
= var_layout
->type
->type_table
[cltype
] == idtype
;
4325 var12
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__hashes
]))(var_layout
) /* hashes on <var_layout:nullable Layout[MType](PHLayout[MClassType, MType])>*/;
4326 var13
= ((val
* (*)(val
*, val
*))(var12
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var12
, var_mclasstype
) /* [] on <var12:Map[Object, Map[Object, Int]](Map[MClassType, Map[MType, Int]])>*/;
4327 var14
= ((val
* (*)(val
*, val
*))(var13
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var13
, var_mtype
) /* [] on <var13:nullable Object(Map[MType, Int])>*/;
4328 var15
= ((struct instance_kernel__Int
*)var14
)->value
; /* autounbox from nullable Object to Int */;
4331 if (var_layout
== NULL
) {
4332 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
4333 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 576);
4336 var16
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MType]>*/;
4338 var17
= ((val
* (*)(val
*, val
*))(var16
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var16
, var_mtype
) /* [] on <var16:Map[Object, Int](Map[MType, Int])>*/;
4339 var18
= ((struct instance_kernel__Int
*)var17
)->value
; /* autounbox from nullable Object to Int */;
4342 var19
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MType]>*/;
4343 { /* Inline kernel#Int#<= (var19,var_color) */
4344 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
4345 /* <var_color:Int> isa OTHER */
4346 var22
= 1; /* easy <var_color:Int> isa OTHER*/
4348 var_class_name
= type_kernel__Int
.name
;
4349 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
4350 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
4353 var25
= var19
<= var_color
;
4356 RET_LABEL21
:(void)0;
4359 var26
= NEW_range__Range(&type_range__Rangekernel__Int
);
4360 var27
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MType]>*/;
4361 var28
= BOX_kernel__Int(var27
); /* autobox from Int to Discrete */
4362 var29
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
4363 ((void (*)(val
*, val
*, val
*))(var26
->class->vft
[COLOR_range__Range__without_last
]))(var26
, var28
, var29
) /* without_last on <var26:Range[Int]>*/;
4364 var30
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var26
) /* iterator on <var26:Range[Int]>*/;
4366 var31
= ((short int (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var30
) /* is_ok on <var30:Iterator[nullable Object]>*/;
4368 var32
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var30
) /* item on <var30:Iterator[nullable Object]>*/;
4369 var33
= ((struct instance_kernel__Int
*)var32
)->value
; /* autounbox from nullable Object to Int */;
4372 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_i
, var34
) /* []= on <var_table:Array[nullable MType]>*/;
4373 CONTINUE_label
: (void)0;
4374 ((void (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var30
) /* next on <var30:Iterator[nullable Object]>*/;
4376 BREAK_label
: (void)0;
4379 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_color
, var_mtype
) /* []= on <var_table:Array[nullable MType]>*/;
4380 CONTINUE_label35
: (void)0;
4381 ((void (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var8
) /* next on <var8:Iterator[nullable Object]>*/;
4383 BREAK_label35
: (void)0;
4384 ((void (*)(val
*, val
*, val
*))(var_tables
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_tables
, var_mclasstype
, var_table
) /* []= on <var_tables:HashMap[MClassType, Array[nullable MType]]>*/;
4385 CONTINUE_label36
: (void)0;
4386 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var3
) /* next on <var3:MapIterator[Object, nullable Object]>*/;
4388 BREAK_label36
: (void)0;
4394 /* method separate_compiler#SeparateCompiler#build_resolution_tables for (self: Object, Map[MClassType, Set[MType]]): Map[MClassType, Array[nullable MType]] */
4395 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_resolution_tables(val
* self
, val
* p0
) {
4396 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
4397 val
* var1
/* : Map[MClassType, Array[nullable MType]] */;
4398 var1
= separate_compiler__SeparateCompiler__build_resolution_tables(self
, p0
);
4403 /* method separate_compiler#SeparateCompiler#compile_module_to_c for (self: SeparateCompiler, MModule) */
4404 void separate_compiler__SeparateCompiler__compile_module_to_c(val
* self
, val
* p0
) {
4405 val
* var_mmodule
/* var mmodule: MModule */;
4406 val
* var
/* : MModule */;
4407 val
* var_old_module
/* var old_module: MModule */;
4408 val
* var1
/* : Array[MClassDef] */;
4409 val
* var2
/* : Iterator[nullable Object] */;
4410 short int var3
/* : Bool */;
4411 val
* var4
/* : nullable Object */;
4412 val
* var_cd
/* var cd: MClassDef */;
4413 val
* var5
/* : Array[MPropDef] */;
4414 val
* var6
/* : Iterator[nullable Object] */;
4415 short int var7
/* : Bool */;
4416 val
* var8
/* : nullable Object */;
4417 val
* var_pd
/* var pd: MPropDef */;
4418 short int var9
/* : Bool */;
4421 short int var10
/* : Bool */;
4422 val
* var11
/* : AbstractRuntimeFunction */;
4423 val
* var_r
/* var r: AbstractRuntimeFunction */;
4424 val
* var12
/* : AbstractRuntimeFunction */;
4425 val
* var_r2
/* var r2: AbstractRuntimeFunction */;
4427 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
4428 var_old_module
= var
;
4429 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule_61d
]))(self
, var_mmodule
) /* mainmodule= on <self:SeparateCompiler>*/;
4430 var1
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model__MModule__mclassdefs
]))(var_mmodule
) /* mclassdefs on <var_mmodule:MModule>*/;
4431 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var1
) /* iterator on <var1:Array[MClassDef]>*/;
4433 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var2
) /* is_ok on <var2:Iterator[nullable Object]>*/;
4435 var4
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var2
) /* item on <var2:Iterator[nullable Object]>*/;
4437 var5
= ((val
* (*)(val
*))(var_cd
->class->vft
[COLOR_model__MClassDef__mpropdefs
]))(var_cd
) /* mpropdefs on <var_cd:MClassDef>*/;
4438 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var5
) /* iterator on <var5:Array[MPropDef]>*/;
4440 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[nullable Object]>*/;
4442 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[nullable Object]>*/;
4444 /* <var_pd:MPropDef> isa MMethodDef */
4445 cltype
= type_model__MMethodDef
.color
;
4446 idtype
= type_model__MMethodDef
.id
;
4447 if(cltype
>= var_pd
->type
->table_size
) {
4450 var9
= var_pd
->type
->type_table
[cltype
] == idtype
;
4454 goto CONTINUE_label
;
4457 var11
= ((val
* (*)(val
*))(var_pd
->class->vft
[COLOR_separate_compiler__MMethodDef__separate_runtime_function
]))(var_pd
) /* separate_runtime_function on <var_pd:MPropDef(MMethodDef)>*/;
4459 ((void (*)(val
*, val
*))(var_r
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__compile_to_c
]))(var_r
, self
) /* compile_to_c on <var_r:AbstractRuntimeFunction>*/;
4460 var12
= ((val
* (*)(val
*))(var_pd
->class->vft
[COLOR_separate_compiler__MMethodDef__virtual_runtime_function
]))(var_pd
) /* virtual_runtime_function on <var_pd:MPropDef(MMethodDef)>*/;
4462 ((void (*)(val
*, val
*))(var_r2
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__compile_to_c
]))(var_r2
, self
) /* compile_to_c on <var_r2:AbstractRuntimeFunction>*/;
4463 CONTINUE_label
: (void)0;
4464 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[nullable Object]>*/;
4466 BREAK_label
: (void)0;
4467 CONTINUE_label13
: (void)0;
4468 ((void (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var2
) /* next on <var2:Iterator[nullable Object]>*/;
4470 BREAK_label13
: (void)0;
4471 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule_61d
]))(self
, var_old_module
) /* mainmodule= on <self:SeparateCompiler>*/;
4474 /* method separate_compiler#SeparateCompiler#compile_module_to_c for (self: Object, MModule) */
4475 void VIRTUAL_separate_compiler__SeparateCompiler__compile_module_to_c(val
* self
, val
* p0
) {
4476 separate_compiler__SeparateCompiler__compile_module_to_c(self
, p0
);
4479 /* method separate_compiler#SeparateCompiler#compile_type_to_c for (self: SeparateCompiler, MType) */
4480 void separate_compiler__SeparateCompiler__compile_type_to_c(val
* self
, val
* p0
) {
4481 val
* var_mtype
/* var mtype: MType */;
4482 short int var
/* : Bool */;
4483 short int var1
/* : Bool */;
4484 val
* var2
/* : nullable Layout[MType] */;
4485 val
* var_layout
/* var layout: nullable Layout[MType] */;
4486 short int var3
/* : Bool */;
4487 short int var4
/* : Bool */;
4490 short int var_
/* var : Bool */;
4491 val
* var5
/* : nullable RapidTypeAnalysis */;
4492 val
* var6
/* : HashSet[MClassType] */;
4493 short int var7
/* : Bool */;
4494 short int var_is_live
/* var is_live: Bool */;
4495 val
* var8
/* : nullable RapidTypeAnalysis */;
4496 val
* var9
/* : HashSet[MType] */;
4497 short int var10
/* : Bool */;
4498 short int var_is_cast_live
/* var is_cast_live: Bool */;
4499 val
* var11
/* : String */;
4500 val
* var_c_name
/* var c_name: String */;
4501 val
* var12
/* : SeparateCompilerVisitor */;
4502 val
* var_v
/* var v: SeparateCompilerVisitor */;
4503 static val
* varonce
;
4504 val
* var13
/* : String */;
4505 char* var14
/* : NativeString */;
4506 long var15
/* : Int */;
4507 val
* var16
/* : String */;
4508 static val
* varonce17
;
4509 val
* var18
/* : String */;
4510 char* var19
/* : NativeString */;
4511 long var20
/* : Int */;
4512 val
* var21
/* : String */;
4513 val
* var22
/* : Array[Object] */;
4514 long var23
/* : Int */;
4515 val
* var24
/* : NativeArray[Object] */;
4516 val
* var25
/* : String */;
4517 static val
* varonce26
;
4518 val
* var27
/* : String */;
4519 char* var28
/* : NativeString */;
4520 long var29
/* : Int */;
4521 val
* var30
/* : String */;
4522 val
* var31
/* : Array[Object] */;
4523 long var32
/* : Int */;
4524 val
* var33
/* : NativeArray[Object] */;
4525 val
* var34
/* : String */;
4526 static val
* varonce35
;
4527 val
* var36
/* : String */;
4528 char* var37
/* : NativeString */;
4529 long var38
/* : Int */;
4530 val
* var39
/* : String */;
4531 static val
* varonce40
;
4532 val
* var41
/* : String */;
4533 char* var42
/* : NativeString */;
4534 long var43
/* : Int */;
4535 val
* var44
/* : String */;
4536 val
* var45
/* : Array[Object] */;
4537 long var46
/* : Int */;
4538 val
* var47
/* : NativeArray[Object] */;
4539 val
* var48
/* : String */;
4540 static val
* varonce49
;
4541 val
* var50
/* : String */;
4542 char* var51
/* : NativeString */;
4543 long var52
/* : Int */;
4544 val
* var53
/* : String */;
4545 static val
* varonce54
;
4546 val
* var55
/* : String */;
4547 char* var56
/* : NativeString */;
4548 long var57
/* : Int */;
4549 val
* var58
/* : String */;
4550 val
* var59
/* : Array[Object] */;
4551 long var60
/* : Int */;
4552 val
* var61
/* : NativeArray[Object] */;
4553 val
* var62
/* : String */;
4554 val
* var63
/* : Map[Object, Int] */;
4555 val
* var64
/* : nullable Object */;
4556 static val
* varonce65
;
4557 val
* var66
/* : String */;
4558 char* var67
/* : NativeString */;
4559 long var68
/* : Int */;
4560 val
* var69
/* : String */;
4561 val
* var70
/* : Array[Object] */;
4562 long var71
/* : Int */;
4563 val
* var72
/* : NativeArray[Object] */;
4564 val
* var73
/* : String */;
4565 static val
* varonce74
;
4566 val
* var75
/* : String */;
4567 char* var76
/* : NativeString */;
4568 long var77
/* : Int */;
4569 val
* var78
/* : String */;
4570 static val
* varonce79
;
4571 val
* var80
/* : String */;
4572 char* var81
/* : NativeString */;
4573 long var82
/* : Int */;
4574 val
* var83
/* : String */;
4575 static val
* varonce84
;
4576 val
* var85
/* : String */;
4577 char* var86
/* : NativeString */;
4578 long var87
/* : Int */;
4579 val
* var88
/* : String */;
4580 val
* var89
/* : Array[Object] */;
4581 long var90
/* : Int */;
4582 val
* var91
/* : NativeArray[Object] */;
4583 val
* var92
/* : String */;
4584 short int var93
/* : Bool */;
4587 val
* var96
/* : Map[Object, Int] */;
4588 val
* var97
/* : nullable Object */;
4589 static val
* varonce98
;
4590 val
* var99
/* : String */;
4591 char* var100
/* : NativeString */;
4592 long var101
/* : Int */;
4593 val
* var102
/* : String */;
4594 val
* var103
/* : Array[Object] */;
4595 long var104
/* : Int */;
4596 val
* var105
/* : NativeArray[Object] */;
4597 val
* var106
/* : String */;
4598 val
* var107
/* : Map[Object, Int] */;
4599 val
* var108
/* : nullable Object */;
4600 static val
* varonce109
;
4601 val
* var110
/* : String */;
4602 char* var111
/* : NativeString */;
4603 long var112
/* : Int */;
4604 val
* var113
/* : String */;
4605 val
* var114
/* : Array[Object] */;
4606 long var115
/* : Int */;
4607 val
* var116
/* : NativeArray[Object] */;
4608 val
* var117
/* : String */;
4609 static val
* varonce118
;
4610 val
* var119
/* : String */;
4611 char* var120
/* : NativeString */;
4612 long var121
/* : Int */;
4613 val
* var122
/* : String */;
4614 short int var123
/* : Bool */;
4617 static val
* varonce126
;
4618 val
* var127
/* : String */;
4619 char* var128
/* : NativeString */;
4620 long var129
/* : Int */;
4621 val
* var130
/* : String */;
4622 static val
* varonce131
;
4623 val
* var132
/* : String */;
4624 char* var133
/* : NativeString */;
4625 long var134
/* : Int */;
4626 val
* var135
/* : String */;
4627 val
* var_mclass_type
/* var mclass_type: MType */;
4628 short int var136
/* : Bool */;
4631 val
* var139
/* : MType */;
4632 short int var140
/* : Bool */;
4635 val
* var143
/* : Map[MClassType, Array[nullable MType]] */;
4636 val
* var144
/* : nullable Object */;
4637 short int var145
/* : Bool */;
4638 static val
* varonce146
;
4639 val
* var147
/* : String */;
4640 char* var148
/* : NativeString */;
4641 long var149
/* : Int */;
4642 val
* var150
/* : String */;
4643 static val
* varonce151
;
4644 val
* var152
/* : String */;
4645 char* var153
/* : NativeString */;
4646 long var154
/* : Int */;
4647 val
* var155
/* : String */;
4648 val
* var156
/* : Array[Object] */;
4649 long var157
/* : Int */;
4650 val
* var158
/* : NativeArray[Object] */;
4651 val
* var159
/* : String */;
4652 static val
* varonce160
;
4653 val
* var161
/* : String */;
4654 char* var162
/* : NativeString */;
4655 long var163
/* : Int */;
4656 val
* var164
/* : String */;
4657 static val
* varonce165
;
4658 val
* var166
/* : String */;
4659 char* var167
/* : NativeString */;
4660 long var168
/* : Int */;
4661 val
* var169
/* : String */;
4662 val
* var170
/* : Array[Object] */;
4663 long var171
/* : Int */;
4664 val
* var172
/* : NativeArray[Object] */;
4665 val
* var173
/* : String */;
4666 static val
* varonce174
;
4667 val
* var175
/* : String */;
4668 char* var176
/* : NativeString */;
4669 long var177
/* : Int */;
4670 val
* var178
/* : String */;
4671 val
* var179
/* : Map[MType, Array[nullable MType]] */;
4672 val
* var180
/* : nullable Object */;
4673 long var181
/* : Int */;
4674 static val
* varonce182
;
4675 val
* var183
/* : String */;
4676 char* var184
/* : NativeString */;
4677 long var185
/* : Int */;
4678 val
* var186
/* : String */;
4679 val
* var187
/* : Array[Object] */;
4680 long var188
/* : Int */;
4681 val
* var189
/* : NativeArray[Object] */;
4682 val
* var190
/* : Object */;
4683 val
* var191
/* : String */;
4684 static val
* varonce192
;
4685 val
* var193
/* : String */;
4686 char* var194
/* : NativeString */;
4687 long var195
/* : Int */;
4688 val
* var196
/* : String */;
4689 val
* var197
/* : Map[MType, Array[nullable MType]] */;
4690 val
* var198
/* : nullable Object */;
4691 val
* var199
/* : Iterator[nullable Object] */;
4692 short int var200
/* : Bool */;
4693 val
* var201
/* : nullable Object */;
4694 val
* var_stype
/* var stype: nullable MType */;
4695 val
* var202
/* : null */;
4696 short int var203
/* : Bool */;
4697 static val
* varonce204
;
4698 val
* var205
/* : String */;
4699 char* var206
/* : NativeString */;
4700 long var207
/* : Int */;
4701 val
* var208
/* : String */;
4702 val
* var209
/* : Map[Object, Int] */;
4703 val
* var210
/* : nullable Object */;
4704 static val
* varonce211
;
4705 val
* var212
/* : String */;
4706 char* var213
/* : NativeString */;
4707 long var214
/* : Int */;
4708 val
* var215
/* : String */;
4709 static val
* varonce216
;
4710 val
* var217
/* : String */;
4711 char* var218
/* : NativeString */;
4712 long var219
/* : Int */;
4713 val
* var220
/* : String */;
4714 val
* var221
/* : Array[Object] */;
4715 long var222
/* : Int */;
4716 val
* var223
/* : NativeArray[Object] */;
4717 val
* var224
/* : String */;
4718 static val
* varonce225
;
4719 val
* var226
/* : String */;
4720 char* var227
/* : NativeString */;
4721 long var228
/* : Int */;
4722 val
* var229
/* : String */;
4723 static val
* varonce230
;
4724 val
* var231
/* : String */;
4725 char* var232
/* : NativeString */;
4726 long var233
/* : Int */;
4727 val
* var234
/* : String */;
4728 static val
* varonce235
;
4729 val
* var236
/* : String */;
4730 char* var237
/* : NativeString */;
4731 long var238
/* : Int */;
4732 val
* var239
/* : String */;
4734 var
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
4737 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4738 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 611);
4741 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout
]))(self
) /* type_layout on <self:SeparateCompiler>*/;
4743 /* <var_mtype:MType> isa MClassType */
4744 cltype
= type_model__MClassType
.color
;
4745 idtype
= type_model__MClassType
.id
;
4746 if(cltype
>= var_mtype
->type
->table_size
) {
4749 var4
= var_mtype
->type
->type_table
[cltype
] == idtype
;
4753 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
4755 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
4756 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 613);
4759 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var5
) /* live_types on <var5:nullable RapidTypeAnalysis>*/;
4761 var7
= ((short int (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var6
, var_mtype
) /* has on <var6:HashSet[MClassType]>*/;
4767 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
4769 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
4770 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 614);
4773 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_cast_types
]))(var8
) /* live_cast_types on <var8:nullable RapidTypeAnalysis>*/;
4775 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var9
, var_mtype
) /* has on <var9:HashSet[MType]>*/;
4776 var_is_cast_live
= var10
;
4777 var11
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
4779 var12
= NEW_separate_compiler__SeparateCompilerVisitor(&type_separate_compiler__SeparateCompilerVisitor
);
4780 ((void (*)(val
*, val
*))(var12
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init
]))(var12
, self
) /* init on <var12:SeparateCompilerVisitor>*/;
4785 var14
= "/* runtime type ";
4787 var16
= string__NativeString__to_s_with_length(var14
, var15
);
4796 var21
= string__NativeString__to_s_with_length(var19
, var20
);
4800 var22
= NEW_array__Array(&type_array__Arraykernel__Object
);
4801 { /* var22 = array_instance Array[Object] */
4803 var24
= NEW_array__NativeArray(var23
, &type_array__NativeArraykernel__Object
);
4804 ((struct instance_array__NativeArray
*)var24
)->values
[0] = (val
*) var13
;
4805 ((struct instance_array__NativeArray
*)var24
)->values
[1] = (val
*) var_mtype
;
4806 ((struct instance_array__NativeArray
*)var24
)->values
[2] = (val
*) var18
;
4807 ((void (*)(val
*, val
*, long))(var22
->class->vft
[COLOR_array__Array__with_native
]))(var22
, var24
, var23
) /* with_native on <var22:Array[Object]>*/;
4809 var25
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_string__Object__to_s
]))(var22
) /* to_s on <var22:Array[Object]>*/;
4810 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var25
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4816 var30
= string__NativeString__to_s_with_length(var28
, var29
);
4820 var31
= NEW_array__Array(&type_array__Arraykernel__Object
);
4821 { /* var31 = array_instance Array[Object] */
4823 var33
= NEW_array__NativeArray(var32
, &type_array__NativeArraykernel__Object
);
4824 ((struct instance_array__NativeArray
*)var33
)->values
[0] = (val
*) var27
;
4825 ((struct instance_array__NativeArray
*)var33
)->values
[1] = (val
*) var_c_name
;
4826 ((void (*)(val
*, val
*, long))(var31
->class->vft
[COLOR_array__Array__with_native
]))(var31
, var33
, var32
) /* with_native on <var31:Array[Object]>*/;
4828 var34
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_string__Object__to_s
]))(var31
) /* to_s on <var31:Array[Object]>*/;
4832 var37
= "extern const struct type type_";
4834 var39
= string__NativeString__to_s_with_length(var37
, var38
);
4843 var44
= string__NativeString__to_s_with_length(var42
, var43
);
4847 var45
= NEW_array__Array(&type_array__Arraykernel__Object
);
4848 { /* var45 = array_instance Array[Object] */
4850 var47
= NEW_array__NativeArray(var46
, &type_array__NativeArraykernel__Object
);
4851 ((struct instance_array__NativeArray
*)var47
)->values
[0] = (val
*) var36
;
4852 ((struct instance_array__NativeArray
*)var47
)->values
[1] = (val
*) var_c_name
;
4853 ((struct instance_array__NativeArray
*)var47
)->values
[2] = (val
*) var41
;
4854 ((void (*)(val
*, val
*, long))(var45
->class->vft
[COLOR_array__Array__with_native
]))(var45
, var47
, var46
) /* with_native on <var45:Array[Object]>*/;
4856 var48
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_string__Object__to_s
]))(var45
) /* to_s on <var45:Array[Object]>*/;
4857 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var34
, var48
) /* provide_declaration on <self:SeparateCompiler>*/;
4861 var51
= "const struct type type_";
4863 var53
= string__NativeString__to_s_with_length(var51
, var52
);
4872 var58
= string__NativeString__to_s_with_length(var56
, var57
);
4876 var59
= NEW_array__Array(&type_array__Arraykernel__Object
);
4877 { /* var59 = array_instance Array[Object] */
4879 var61
= NEW_array__NativeArray(var60
, &type_array__NativeArraykernel__Object
);
4880 ((struct instance_array__NativeArray
*)var61
)->values
[0] = (val
*) var50
;
4881 ((struct instance_array__NativeArray
*)var61
)->values
[1] = (val
*) var_c_name
;
4882 ((struct instance_array__NativeArray
*)var61
)->values
[2] = (val
*) var55
;
4883 ((void (*)(val
*, val
*, long))(var59
->class->vft
[COLOR_array__Array__with_native
]))(var59
, var61
, var60
) /* with_native on <var59:Array[Object]>*/;
4885 var62
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_string__Object__to_s
]))(var59
) /* to_s on <var59:Array[Object]>*/;
4886 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var62
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4887 if (var_is_cast_live
){
4888 if (var_layout
== NULL
) {
4889 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
4890 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 627);
4893 var63
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var_layout
) /* ids on <var_layout:nullable Layout[MType]>*/;
4895 var64
= ((val
* (*)(val
*, val
*))(var63
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var63
, var_mtype
) /* [] on <var63:Map[Object, Int](Map[MType, Int])>*/;
4901 var69
= string__NativeString__to_s_with_length(var67
, var68
);
4905 var70
= NEW_array__Array(&type_array__Arraykernel__Object
);
4906 { /* var70 = array_instance Array[Object] */
4908 var72
= NEW_array__NativeArray(var71
, &type_array__NativeArraykernel__Object
);
4909 ((struct instance_array__NativeArray
*)var72
)->values
[0] = (val
*) var64
;
4910 ((struct instance_array__NativeArray
*)var72
)->values
[1] = (val
*) var66
;
4911 ((void (*)(val
*, val
*, long))(var70
->class->vft
[COLOR_array__Array__with_native
]))(var70
, var72
, var71
) /* with_native on <var70:Array[Object]>*/;
4913 var73
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_string__Object__to_s
]))(var70
) /* to_s on <var70:Array[Object]>*/;
4914 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var73
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4919 var76
= "-1, /*CAST DEAD*/";
4921 var78
= string__NativeString__to_s_with_length(var76
, var77
);
4925 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var75
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4932 var83
= string__NativeString__to_s_with_length(var81
, var82
);
4939 var86
= "\", /* class_name_string */";
4941 var88
= string__NativeString__to_s_with_length(var86
, var87
);
4945 var89
= NEW_array__Array(&type_array__Arraykernel__Object
);
4946 { /* var89 = array_instance Array[Object] */
4948 var91
= NEW_array__NativeArray(var90
, &type_array__NativeArraykernel__Object
);
4949 ((struct instance_array__NativeArray
*)var91
)->values
[0] = (val
*) var80
;
4950 ((struct instance_array__NativeArray
*)var91
)->values
[1] = (val
*) var_mtype
;
4951 ((struct instance_array__NativeArray
*)var91
)->values
[2] = (val
*) var85
;
4952 ((void (*)(val
*, val
*, long))(var89
->class->vft
[COLOR_array__Array__with_native
]))(var89
, var91
, var90
) /* with_native on <var89:Array[Object]>*/;
4954 var92
= ((val
* (*)(val
*))(var89
->class->vft
[COLOR_string__Object__to_s
]))(var89
) /* to_s on <var89:Array[Object]>*/;
4955 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var92
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4956 if (var_is_cast_live
){
4957 /* <var_layout:nullable Layout[MType]> isa PHLayout[MType, MType] */
4958 cltype94
= type_layout_builders__PHLayoutmodel__MTypemodel__MType
.color
;
4959 idtype95
= type_layout_builders__PHLayoutmodel__MTypemodel__MType
.id
;
4960 if(var_layout
== NULL
) {
4963 if(cltype94
>= var_layout
->type
->table_size
) {
4966 var93
= var_layout
->type
->type_table
[cltype94
] == idtype95
;
4970 var96
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__masks
]))(var_layout
) /* masks on <var_layout:nullable Layout[MType](PHLayout[MType, MType])>*/;
4971 var97
= ((val
* (*)(val
*, val
*))(var96
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var96
, var_mtype
) /* [] on <var96:Map[Object, Int](Map[MType, Int])>*/;
4977 var102
= string__NativeString__to_s_with_length(var100
, var101
);
4981 var103
= NEW_array__Array(&type_array__Arraykernel__Object
);
4982 { /* var103 = array_instance Array[Object] */
4984 var105
= NEW_array__NativeArray(var104
, &type_array__NativeArraykernel__Object
);
4985 ((struct instance_array__NativeArray
*)var105
)->values
[0] = (val
*) var97
;
4986 ((struct instance_array__NativeArray
*)var105
)->values
[1] = (val
*) var99
;
4987 ((void (*)(val
*, val
*, long))(var103
->class->vft
[COLOR_array__Array__with_native
]))(var103
, var105
, var104
) /* with_native on <var103:Array[Object]>*/;
4989 var106
= ((val
* (*)(val
*))(var103
->class->vft
[COLOR_string__Object__to_s
]))(var103
) /* to_s on <var103:Array[Object]>*/;
4990 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var106
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4992 if (var_layout
== NULL
) {
4993 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
4994 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 640);
4997 var107
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MType]>*/;
4999 var108
= ((val
* (*)(val
*, val
*))(var107
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var107
, var_mtype
) /* [] on <var107:Map[Object, Int](Map[MType, Int])>*/;
5001 var110
= varonce109
;
5005 var113
= string__NativeString__to_s_with_length(var111
, var112
);
5007 varonce109
= var110
;
5009 var114
= NEW_array__Array(&type_array__Arraykernel__Object
);
5010 { /* var114 = array_instance Array[Object] */
5012 var116
= NEW_array__NativeArray(var115
, &type_array__NativeArraykernel__Object
);
5013 ((struct instance_array__NativeArray
*)var116
)->values
[0] = (val
*) var108
;
5014 ((struct instance_array__NativeArray
*)var116
)->values
[1] = (val
*) var110
;
5015 ((void (*)(val
*, val
*, long))(var114
->class->vft
[COLOR_array__Array__with_native
]))(var114
, var116
, var115
) /* with_native on <var114:Array[Object]>*/;
5017 var117
= ((val
* (*)(val
*))(var114
->class->vft
[COLOR_string__Object__to_s
]))(var114
) /* to_s on <var114:Array[Object]>*/;
5018 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var117
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5022 var119
= varonce118
;
5024 var120
= "-1, /*CAST DEAD*/";
5026 var122
= string__NativeString__to_s_with_length(var120
, var121
);
5028 varonce118
= var119
;
5030 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var119
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5032 /* <var_mtype:MType> isa MNullableType */
5033 cltype124
= type_model__MNullableType
.color
;
5034 idtype125
= type_model__MNullableType
.id
;
5035 if(cltype124
>= var_mtype
->type
->table_size
) {
5038 var123
= var_mtype
->type
->type_table
[cltype124
] == idtype125
;
5042 var127
= varonce126
;
5046 var130
= string__NativeString__to_s_with_length(var128
, var129
);
5048 varonce126
= var127
;
5050 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var127
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5053 var132
= varonce131
;
5057 var135
= string__NativeString__to_s_with_length(var133
, var134
);
5059 varonce131
= var132
;
5061 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var132
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5064 var_mclass_type
= var_mtype
;
5065 /* <var_mclass_type:MType> isa MNullableType */
5066 cltype137
= type_model__MNullableType
.color
;
5067 idtype138
= type_model__MNullableType
.id
;
5068 if(cltype137
>= var_mclass_type
->type
->table_size
) {
5071 var136
= var_mclass_type
->type
->type_table
[cltype137
] == idtype138
;
5074 var139
= ((val
* (*)(val
*))(var_mclass_type
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mclass_type
) /* mtype on <var_mclass_type:MType(MNullableType)>*/;
5075 var_mclass_type
= var139
;
5078 /* <var_mclass_type:MType> isa MClassType */
5079 cltype141
= type_model__MClassType
.color
;
5080 idtype142
= type_model__MClassType
.id
;
5081 if(cltype141
>= var_mclass_type
->type
->table_size
) {
5084 var140
= var_mclass_type
->type
->type_table
[cltype141
] == idtype142
;
5087 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5088 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 657);
5091 var143
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_tables
]))(self
) /* resolution_tables on <self:SeparateCompiler>*/;
5092 var144
= ((val
* (*)(val
*, val
*))(var143
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var143
, var_mclass_type
) /* [] on <var143:Map[MClassType, Array[nullable MType]]>*/;
5093 var145
= ((short int (*)(val
*))(var144
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var144
) /* is_empty on <var144:nullable Object(Array[nullable MType])>*/;
5096 var147
= varonce146
;
5098 var148
= "NULL, /*NO RESOLUTIONS*/";
5100 var150
= string__NativeString__to_s_with_length(var148
, var149
);
5102 varonce146
= var147
;
5104 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var147
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5106 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_type_resolution_table
]))(self
, var_mtype
) /* compile_type_resolution_table on <self:SeparateCompiler>*/;
5108 var152
= varonce151
;
5110 var153
= "resolution_table_";
5112 var155
= string__NativeString__to_s_with_length(var153
, var154
);
5114 varonce151
= var152
;
5116 var156
= NEW_array__Array(&type_array__Arraykernel__Object
);
5117 { /* var156 = array_instance Array[Object] */
5119 var158
= NEW_array__NativeArray(var157
, &type_array__NativeArraykernel__Object
);
5120 ((struct instance_array__NativeArray
*)var158
)->values
[0] = (val
*) var152
;
5121 ((struct instance_array__NativeArray
*)var158
)->values
[1] = (val
*) var_c_name
;
5122 ((void (*)(val
*, val
*, long))(var156
->class->vft
[COLOR_array__Array__with_native
]))(var156
, var158
, var157
) /* with_native on <var156:Array[Object]>*/;
5124 var159
= ((val
* (*)(val
*))(var156
->class->vft
[COLOR_string__Object__to_s
]))(var156
) /* to_s on <var156:Array[Object]>*/;
5125 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var159
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
5127 var161
= varonce160
;
5129 var162
= "&resolution_table_";
5131 var164
= string__NativeString__to_s_with_length(var162
, var163
);
5133 varonce160
= var161
;
5136 var166
= varonce165
;
5140 var169
= string__NativeString__to_s_with_length(var167
, var168
);
5142 varonce165
= var166
;
5144 var170
= NEW_array__Array(&type_array__Arraykernel__Object
);
5145 { /* var170 = array_instance Array[Object] */
5147 var172
= NEW_array__NativeArray(var171
, &type_array__NativeArraykernel__Object
);
5148 ((struct instance_array__NativeArray
*)var172
)->values
[0] = (val
*) var161
;
5149 ((struct instance_array__NativeArray
*)var172
)->values
[1] = (val
*) var_c_name
;
5150 ((struct instance_array__NativeArray
*)var172
)->values
[2] = (val
*) var166
;
5151 ((void (*)(val
*, val
*, long))(var170
->class->vft
[COLOR_array__Array__with_native
]))(var170
, var172
, var171
) /* with_native on <var170:Array[Object]>*/;
5153 var173
= ((val
* (*)(val
*))(var170
->class->vft
[COLOR_string__Object__to_s
]))(var170
) /* to_s on <var170:Array[Object]>*/;
5154 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var173
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5158 var175
= varonce174
;
5160 var176
= "NULL, /*DEAD*/";
5162 var178
= string__NativeString__to_s_with_length(var176
, var177
);
5164 varonce174
= var175
;
5166 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var175
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5169 var179
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_tables
]))(self
) /* type_tables on <self:SeparateCompiler>*/;
5170 var180
= ((val
* (*)(val
*, val
*))(var179
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var179
, var_mtype
) /* [] on <var179:Map[MType, Array[nullable MType]]>*/;
5171 var181
= ((long (*)(val
*))(var180
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var180
) /* length on <var180:nullable Object(Array[nullable MType])>*/;
5173 var183
= varonce182
;
5177 var186
= string__NativeString__to_s_with_length(var184
, var185
);
5179 varonce182
= var183
;
5181 var187
= NEW_array__Array(&type_array__Arraykernel__Object
);
5182 { /* var187 = array_instance Array[Object] */
5184 var189
= NEW_array__NativeArray(var188
, &type_array__NativeArraykernel__Object
);
5185 var190
= BOX_kernel__Int(var181
); /* autobox from Int to Object */
5186 ((struct instance_array__NativeArray
*)var189
)->values
[0] = (val
*) var190
;
5187 ((struct instance_array__NativeArray
*)var189
)->values
[1] = (val
*) var183
;
5188 ((void (*)(val
*, val
*, long))(var187
->class->vft
[COLOR_array__Array__with_native
]))(var187
, var189
, var188
) /* with_native on <var187:Array[Object]>*/;
5190 var191
= ((val
* (*)(val
*))(var187
->class->vft
[COLOR_string__Object__to_s
]))(var187
) /* to_s on <var187:Array[Object]>*/;
5191 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var191
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5193 var193
= varonce192
;
5197 var196
= string__NativeString__to_s_with_length(var194
, var195
);
5199 varonce192
= var193
;
5201 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var193
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5202 var197
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_tables
]))(self
) /* type_tables on <self:SeparateCompiler>*/;
5203 var198
= ((val
* (*)(val
*, val
*))(var197
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var197
, var_mtype
) /* [] on <var197:Map[MType, Array[nullable MType]]>*/;
5204 var199
= ((val
* (*)(val
*))(var198
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var198
) /* iterator on <var198:nullable Object(Array[nullable MType])>*/;
5206 var200
= ((short int (*)(val
*))(var199
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var199
) /* is_ok on <var199:Iterator[nullable Object]>*/;
5208 var201
= ((val
* (*)(val
*))(var199
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var199
) /* item on <var199:Iterator[nullable Object]>*/;
5211 if (var_stype
== NULL
) {
5212 var203
= 1; /* is null */
5214 var203
= 0; /* arg is null but recv is not */
5218 var205
= varonce204
;
5220 var206
= "-1, /* empty */";
5222 var208
= string__NativeString__to_s_with_length(var206
, var207
);
5224 varonce204
= var205
;
5226 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var205
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5228 if (var_layout
== NULL
) {
5229 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
5230 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 677);
5233 var209
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var_layout
) /* ids on <var_layout:nullable Layout[MType]>*/;
5235 var210
= ((val
* (*)(val
*, val
*))(var209
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var209
, var_stype
) /* [] on <var209:Map[Object, Int](Map[MType, Int])>*/;
5237 var212
= varonce211
;
5241 var215
= string__NativeString__to_s_with_length(var213
, var214
);
5243 varonce211
= var212
;
5246 var217
= varonce216
;
5250 var220
= string__NativeString__to_s_with_length(var218
, var219
);
5252 varonce216
= var217
;
5254 var221
= NEW_array__Array(&type_array__Arraykernel__Object
);
5255 { /* var221 = array_instance Array[Object] */
5257 var223
= NEW_array__NativeArray(var222
, &type_array__NativeArraykernel__Object
);
5258 ((struct instance_array__NativeArray
*)var223
)->values
[0] = (val
*) var210
;
5259 ((struct instance_array__NativeArray
*)var223
)->values
[1] = (val
*) var212
;
5260 ((struct instance_array__NativeArray
*)var223
)->values
[2] = (val
*) var_stype
;
5261 ((struct instance_array__NativeArray
*)var223
)->values
[3] = (val
*) var217
;
5262 ((void (*)(val
*, val
*, long))(var221
->class->vft
[COLOR_array__Array__with_native
]))(var221
, var223
, var222
) /* with_native on <var221:Array[Object]>*/;
5264 var224
= ((val
* (*)(val
*))(var221
->class->vft
[COLOR_string__Object__to_s
]))(var221
) /* to_s on <var221:Array[Object]>*/;
5265 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var224
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5267 CONTINUE_label
: (void)0;
5268 ((void (*)(val
*))(var199
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var199
) /* next on <var199:Iterator[nullable Object]>*/;
5270 BREAK_label
: (void)0;
5272 var226
= varonce225
;
5276 var229
= string__NativeString__to_s_with_length(var227
, var228
);
5278 varonce225
= var226
;
5280 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var226
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5283 var231
= varonce230
;
5285 var232
= "0, {}, /*DEAD TYPE*/";
5287 var234
= string__NativeString__to_s_with_length(var232
, var233
);
5289 varonce230
= var231
;
5291 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var231
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5294 var236
= varonce235
;
5298 var239
= string__NativeString__to_s_with_length(var237
, var238
);
5300 varonce235
= var236
;
5302 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var236
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5305 /* method separate_compiler#SeparateCompiler#compile_type_to_c for (self: Object, MType) */
5306 void VIRTUAL_separate_compiler__SeparateCompiler__compile_type_to_c(val
* self
, val
* p0
) {
5307 separate_compiler__SeparateCompiler__compile_type_to_c(self
, p0
);
5310 /* method separate_compiler#SeparateCompiler#compile_type_resolution_table for (self: SeparateCompiler, MType) */
5311 void separate_compiler__SeparateCompiler__compile_type_resolution_table(val
* self
, val
* p0
) {
5312 val
* var_mtype
/* var mtype: MType */;
5313 short int var
/* : Bool */;
5316 val
* var1
/* : MType */;
5317 short int var2
/* : Bool */;
5320 const char* var_class_name
;
5321 val
* var_mclass_type
/* var mclass_type: MClassType */;
5322 short int var5
/* : Bool */;
5325 const char* var_class_name8
;
5326 val
* var9
/* : nullable Layout[MType] */;
5327 val
* var_layout
/* var layout: nullable Layout[MType] */;
5328 static val
* varonce
;
5329 val
* var10
/* : String */;
5330 char* var11
/* : NativeString */;
5331 long var12
/* : Int */;
5332 val
* var13
/* : String */;
5333 val
* var14
/* : String */;
5334 val
* var15
/* : Array[Object] */;
5335 long var16
/* : Int */;
5336 val
* var17
/* : NativeArray[Object] */;
5337 val
* var18
/* : String */;
5338 static val
* varonce19
;
5339 val
* var20
/* : String */;
5340 char* var21
/* : NativeString */;
5341 long var22
/* : Int */;
5342 val
* var23
/* : String */;
5343 val
* var24
/* : String */;
5344 static val
* varonce25
;
5345 val
* var26
/* : String */;
5346 char* var27
/* : NativeString */;
5347 long var28
/* : Int */;
5348 val
* var29
/* : String */;
5349 val
* var30
/* : Array[Object] */;
5350 long var31
/* : Int */;
5351 val
* var32
/* : NativeArray[Object] */;
5352 val
* var33
/* : String */;
5353 val
* var34
/* : AbstractCompilerVisitor */;
5354 val
* var_v
/* var v: SeparateCompilerVisitor */;
5355 static val
* varonce35
;
5356 val
* var36
/* : String */;
5357 char* var37
/* : NativeString */;
5358 long var38
/* : Int */;
5359 val
* var39
/* : String */;
5360 val
* var40
/* : String */;
5361 static val
* varonce41
;
5362 val
* var42
/* : String */;
5363 char* var43
/* : NativeString */;
5364 long var44
/* : Int */;
5365 val
* var45
/* : String */;
5366 val
* var46
/* : Array[Object] */;
5367 long var47
/* : Int */;
5368 val
* var48
/* : NativeArray[Object] */;
5369 val
* var49
/* : String */;
5370 short int var50
/* : Bool */;
5373 val
* var53
/* : Map[Object, Int] */;
5374 val
* var54
/* : nullable Object */;
5375 static val
* varonce55
;
5376 val
* var56
/* : String */;
5377 char* var57
/* : NativeString */;
5378 long var58
/* : Int */;
5379 val
* var59
/* : String */;
5380 val
* var60
/* : Array[Object] */;
5381 long var61
/* : Int */;
5382 val
* var62
/* : NativeArray[Object] */;
5383 val
* var63
/* : String */;
5384 static val
* varonce64
;
5385 val
* var65
/* : String */;
5386 char* var66
/* : NativeString */;
5387 long var67
/* : Int */;
5388 val
* var68
/* : String */;
5389 static val
* varonce69
;
5390 val
* var70
/* : String */;
5391 char* var71
/* : NativeString */;
5392 long var72
/* : Int */;
5393 val
* var73
/* : String */;
5394 val
* var74
/* : Map[MClassType, Array[nullable MType]] */;
5395 val
* var75
/* : nullable Object */;
5396 val
* var76
/* : Iterator[nullable Object] */;
5397 short int var77
/* : Bool */;
5398 val
* var78
/* : nullable Object */;
5399 val
* var_t
/* var t: nullable MType */;
5400 val
* var79
/* : null */;
5401 short int var80
/* : Bool */;
5402 static val
* varonce81
;
5403 val
* var82
/* : String */;
5404 char* var83
/* : NativeString */;
5405 long var84
/* : Int */;
5406 val
* var85
/* : String */;
5407 val
* var86
/* : MModule */;
5408 short int var87
/* : Bool */;
5409 val
* var88
/* : MType */;
5410 val
* var_tv
/* var tv: MType */;
5411 val
* var89
/* : nullable Layout[MType] */;
5412 val
* var90
/* : Map[Object, Int] */;
5413 short int var91
/* : Bool */;
5414 static val
* varonce92
;
5415 val
* var93
/* : String */;
5416 char* var94
/* : NativeString */;
5417 long var95
/* : Int */;
5418 val
* var96
/* : String */;
5419 val
* var97
/* : String */;
5420 val
* var98
/* : Array[Object] */;
5421 long var99
/* : Int */;
5422 val
* var100
/* : NativeArray[Object] */;
5423 val
* var101
/* : String */;
5424 static val
* varonce102
;
5425 val
* var103
/* : String */;
5426 char* var104
/* : NativeString */;
5427 long var105
/* : Int */;
5428 val
* var106
/* : String */;
5429 val
* var107
/* : String */;
5430 static val
* varonce108
;
5431 val
* var109
/* : String */;
5432 char* var110
/* : NativeString */;
5433 long var111
/* : Int */;
5434 val
* var112
/* : String */;
5435 static val
* varonce113
;
5436 val
* var114
/* : String */;
5437 char* var115
/* : NativeString */;
5438 long var116
/* : Int */;
5439 val
* var117
/* : String */;
5440 static val
* varonce118
;
5441 val
* var119
/* : String */;
5442 char* var120
/* : NativeString */;
5443 long var121
/* : Int */;
5444 val
* var122
/* : String */;
5445 val
* var123
/* : Array[Object] */;
5446 long var124
/* : Int */;
5447 val
* var125
/* : NativeArray[Object] */;
5448 val
* var126
/* : String */;
5449 static val
* varonce127
;
5450 val
* var128
/* : String */;
5451 char* var129
/* : NativeString */;
5452 long var130
/* : Int */;
5453 val
* var131
/* : String */;
5454 static val
* varonce132
;
5455 val
* var133
/* : String */;
5456 char* var134
/* : NativeString */;
5457 long var135
/* : Int */;
5458 val
* var136
/* : String */;
5459 static val
* varonce137
;
5460 val
* var138
/* : String */;
5461 char* var139
/* : NativeString */;
5462 long var140
/* : Int */;
5463 val
* var141
/* : String */;
5464 val
* var142
/* : Array[Object] */;
5465 long var143
/* : Int */;
5466 val
* var144
/* : NativeArray[Object] */;
5467 val
* var145
/* : String */;
5468 static val
* varonce146
;
5469 val
* var147
/* : String */;
5470 char* var148
/* : NativeString */;
5471 long var149
/* : Int */;
5472 val
* var150
/* : String */;
5473 static val
* varonce151
;
5474 val
* var152
/* : String */;
5475 char* var153
/* : NativeString */;
5476 long var154
/* : Int */;
5477 val
* var155
/* : String */;
5479 /* <var_mtype:MType> isa MNullableType */
5480 cltype
= type_model__MNullableType
.color
;
5481 idtype
= type_model__MNullableType
.id
;
5482 if(cltype
>= var_mtype
->type
->table_size
) {
5485 var
= var_mtype
->type
->type_table
[cltype
] == idtype
;
5488 var1
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
5489 /* <var1:MType> isa MClassType */
5490 cltype3
= type_model__MClassType
.color
;
5491 idtype4
= type_model__MClassType
.id
;
5492 if(cltype3
>= var1
->type
->table_size
) {
5495 var2
= var1
->type
->type_table
[cltype3
] == idtype4
;
5498 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
5499 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5500 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 691);
5503 var_mclass_type
= var1
;
5505 /* <var_mtype:MType> isa MClassType */
5506 cltype6
= type_model__MClassType
.color
;
5507 idtype7
= type_model__MClassType
.id
;
5508 if(cltype6
>= var_mtype
->type
->table_size
) {
5511 var5
= var_mtype
->type
->type_table
[cltype6
] == idtype7
;
5514 var_class_name8
= var_mtype
== NULL ?
"null" : var_mtype
->type
->name
;
5515 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name8
);
5516 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 693);
5519 var_mclass_type
= var_mtype
;
5521 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_layout
]))(self
) /* resolution_layout on <self:SeparateCompiler>*/;
5526 var11
= "resolution_table_";
5528 var13
= string__NativeString__to_s_with_length(var11
, var12
);
5532 var14
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
5533 var15
= NEW_array__Array(&type_array__Arraykernel__Object
);
5534 { /* var15 = array_instance Array[Object] */
5536 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArraykernel__Object
);
5537 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var10
;
5538 ((struct instance_array__NativeArray
*)var17
)->values
[1] = (val
*) var14
;
5539 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Object]>*/;
5541 var18
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_string__Object__to_s
]))(var15
) /* to_s on <var15:Array[Object]>*/;
5545 var21
= "extern const struct types resolution_table_";
5547 var23
= string__NativeString__to_s_with_length(var21
, var22
);
5551 var24
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
5557 var29
= string__NativeString__to_s_with_length(var27
, var28
);
5561 var30
= NEW_array__Array(&type_array__Arraykernel__Object
);
5562 { /* var30 = array_instance Array[Object] */
5564 var32
= NEW_array__NativeArray(var31
, &type_array__NativeArraykernel__Object
);
5565 ((struct instance_array__NativeArray
*)var32
)->values
[0] = (val
*) var20
;
5566 ((struct instance_array__NativeArray
*)var32
)->values
[1] = (val
*) var24
;
5567 ((struct instance_array__NativeArray
*)var32
)->values
[2] = (val
*) var26
;
5568 ((void (*)(val
*, val
*, long))(var30
->class->vft
[COLOR_array__Array__with_native
]))(var30
, var32
, var31
) /* with_native on <var30:Array[Object]>*/;
5570 var33
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_string__Object__to_s
]))(var30
) /* to_s on <var30:Array[Object]>*/;
5571 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var18
, var33
) /* provide_declaration on <self:SeparateCompiler>*/;
5572 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
5577 var37
= "const struct types resolution_table_";
5579 var39
= string__NativeString__to_s_with_length(var37
, var38
);
5583 var40
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
5589 var45
= string__NativeString__to_s_with_length(var43
, var44
);
5593 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
5594 { /* var46 = array_instance Array[Object] */
5596 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
5597 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var36
;
5598 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var40
;
5599 ((struct instance_array__NativeArray
*)var48
)->values
[2] = (val
*) var42
;
5600 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
5602 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
5603 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var49
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5604 /* <var_layout:nullable Layout[MType]> isa PHLayout[MClassType, MType] */
5605 cltype51
= type_layout_builders__PHLayoutmodel__MClassTypemodel__MType
.color
;
5606 idtype52
= type_layout_builders__PHLayoutmodel__MClassTypemodel__MType
.id
;
5607 if(var_layout
== NULL
) {
5610 if(cltype51
>= var_layout
->type
->table_size
) {
5613 var50
= var_layout
->type
->type_table
[cltype51
] == idtype52
;
5617 var53
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__masks
]))(var_layout
) /* masks on <var_layout:nullable Layout[MType](PHLayout[MClassType, MType])>*/;
5618 var54
= ((val
* (*)(val
*, val
*))(var53
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var53
, var_mclass_type
) /* [] on <var53:Map[Object, Int](Map[MClassType, Int])>*/;
5624 var59
= string__NativeString__to_s_with_length(var57
, var58
);
5628 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
5629 { /* var60 = array_instance Array[Object] */
5631 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
5632 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var54
;
5633 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var56
;
5634 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
5636 var63
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
5637 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var63
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5642 var66
= "0, /* dummy */";
5644 var68
= string__NativeString__to_s_with_length(var66
, var67
);
5648 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var65
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5655 var73
= string__NativeString__to_s_with_length(var71
, var72
);
5659 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var70
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5660 var74
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_tables
]))(self
) /* resolution_tables on <self:SeparateCompiler>*/;
5661 var75
= ((val
* (*)(val
*, val
*))(var74
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var74
, var_mclass_type
) /* [] on <var74:Map[MClassType, Array[nullable MType]]>*/;
5662 var76
= ((val
* (*)(val
*))(var75
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var75
) /* iterator on <var75:nullable Object(Array[nullable MType])>*/;
5664 var77
= ((short int (*)(val
*))(var76
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var76
) /* is_ok on <var76:Iterator[nullable Object]>*/;
5666 var78
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var76
) /* item on <var76:Iterator[nullable Object]>*/;
5669 if (var_t
== NULL
) {
5670 var80
= 1; /* is null */
5672 var80
= 0; /* arg is null but recv is not */
5678 var83
= "NULL, /* empty */";
5680 var85
= string__NativeString__to_s_with_length(var83
, var84
);
5684 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var82
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5686 var86
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
5688 var88
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_t
->class->vft
[COLOR_model__MType__resolve_for
]))(var_t
, var_mclass_type
, var_mclass_type
, var86
, var87
) /* resolve_for on <var_t:nullable MType(MType)>*/;
5690 var89
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout
]))(self
) /* type_layout on <self:SeparateCompiler>*/;
5691 if (var89
== NULL
) {
5692 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
5693 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 719);
5696 var90
= ((val
* (*)(val
*))(var89
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var89
) /* ids on <var89:nullable Layout[MType]>*/;
5698 var91
= ((short int (*)(val
*, val
*))(var90
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var90
, var_tv
) /* has_key on <var90:Map[Object, Int](Map[MType, Int])>*/;
5705 var96
= string__NativeString__to_s_with_length(var94
, var95
);
5709 var97
= ((val
* (*)(val
*))(var_tv
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_tv
) /* c_name on <var_tv:MType>*/;
5710 var98
= NEW_array__Array(&type_array__Arraykernel__Object
);
5711 { /* var98 = array_instance Array[Object] */
5713 var100
= NEW_array__NativeArray(var99
, &type_array__NativeArraykernel__Object
);
5714 ((struct instance_array__NativeArray
*)var100
)->values
[0] = (val
*) var93
;
5715 ((struct instance_array__NativeArray
*)var100
)->values
[1] = (val
*) var97
;
5716 ((void (*)(val
*, val
*, long))(var98
->class->vft
[COLOR_array__Array__with_native
]))(var98
, var100
, var99
) /* with_native on <var98:Array[Object]>*/;
5718 var101
= ((val
* (*)(val
*))(var98
->class->vft
[COLOR_string__Object__to_s
]))(var98
) /* to_s on <var98:Array[Object]>*/;
5719 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var101
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
5721 var103
= varonce102
;
5725 var106
= string__NativeString__to_s_with_length(var104
, var105
);
5727 varonce102
= var103
;
5729 var107
= ((val
* (*)(val
*))(var_tv
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_tv
) /* c_name on <var_tv:MType>*/;
5731 var109
= varonce108
;
5735 var112
= string__NativeString__to_s_with_length(var110
, var111
);
5737 varonce108
= var109
;
5740 var114
= varonce113
;
5744 var117
= string__NativeString__to_s_with_length(var115
, var116
);
5746 varonce113
= var114
;
5749 var119
= varonce118
;
5753 var122
= string__NativeString__to_s_with_length(var120
, var121
);
5755 varonce118
= var119
;
5757 var123
= NEW_array__Array(&type_array__Arraykernel__Object
);
5758 { /* var123 = array_instance Array[Object] */
5760 var125
= NEW_array__NativeArray(var124
, &type_array__NativeArraykernel__Object
);
5761 ((struct instance_array__NativeArray
*)var125
)->values
[0] = (val
*) var103
;
5762 ((struct instance_array__NativeArray
*)var125
)->values
[1] = (val
*) var107
;
5763 ((struct instance_array__NativeArray
*)var125
)->values
[2] = (val
*) var109
;
5764 ((struct instance_array__NativeArray
*)var125
)->values
[3] = (val
*) var_t
;
5765 ((struct instance_array__NativeArray
*)var125
)->values
[4] = (val
*) var114
;
5766 ((struct instance_array__NativeArray
*)var125
)->values
[5] = (val
*) var_tv
;
5767 ((struct instance_array__NativeArray
*)var125
)->values
[6] = (val
*) var119
;
5768 ((void (*)(val
*, val
*, long))(var123
->class->vft
[COLOR_array__Array__with_native
]))(var123
, var125
, var124
) /* with_native on <var123:Array[Object]>*/;
5770 var126
= ((val
* (*)(val
*))(var123
->class->vft
[COLOR_string__Object__to_s
]))(var123
) /* to_s on <var123:Array[Object]>*/;
5771 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var126
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5774 var128
= varonce127
;
5776 var129
= "NULL, /* empty (";
5778 var131
= string__NativeString__to_s_with_length(var129
, var130
);
5780 varonce127
= var128
;
5783 var133
= varonce132
;
5787 var136
= string__NativeString__to_s_with_length(var134
, var135
);
5789 varonce132
= var133
;
5792 var138
= varonce137
;
5794 var139
= " not a live type) */";
5796 var141
= string__NativeString__to_s_with_length(var139
, var140
);
5798 varonce137
= var138
;
5800 var142
= NEW_array__Array(&type_array__Arraykernel__Object
);
5801 { /* var142 = array_instance Array[Object] */
5803 var144
= NEW_array__NativeArray(var143
, &type_array__NativeArraykernel__Object
);
5804 ((struct instance_array__NativeArray
*)var144
)->values
[0] = (val
*) var128
;
5805 ((struct instance_array__NativeArray
*)var144
)->values
[1] = (val
*) var_t
;
5806 ((struct instance_array__NativeArray
*)var144
)->values
[2] = (val
*) var133
;
5807 ((struct instance_array__NativeArray
*)var144
)->values
[3] = (val
*) var_tv
;
5808 ((struct instance_array__NativeArray
*)var144
)->values
[4] = (val
*) var138
;
5809 ((void (*)(val
*, val
*, long))(var142
->class->vft
[COLOR_array__Array__with_native
]))(var142
, var144
, var143
) /* with_native on <var142:Array[Object]>*/;
5811 var145
= ((val
* (*)(val
*))(var142
->class->vft
[COLOR_string__Object__to_s
]))(var142
) /* to_s on <var142:Array[Object]>*/;
5812 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var145
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5815 CONTINUE_label
: (void)0;
5816 ((void (*)(val
*))(var76
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var76
) /* next on <var76:Iterator[nullable Object]>*/;
5818 BREAK_label
: (void)0;
5820 var147
= varonce146
;
5824 var150
= string__NativeString__to_s_with_length(var148
, var149
);
5826 varonce146
= var147
;
5828 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var147
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5830 var152
= varonce151
;
5834 var155
= string__NativeString__to_s_with_length(var153
, var154
);
5836 varonce151
= var152
;
5838 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var152
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5841 /* method separate_compiler#SeparateCompiler#compile_type_resolution_table for (self: Object, MType) */
5842 void VIRTUAL_separate_compiler__SeparateCompiler__compile_type_resolution_table(val
* self
, val
* p0
) {
5843 separate_compiler__SeparateCompiler__compile_type_resolution_table(self
, p0
);
5846 /* method separate_compiler#SeparateCompiler#compile_class_to_c for (self: SeparateCompiler, MClass) */
5847 void separate_compiler__SeparateCompiler__compile_class_to_c(val
* self
, val
* p0
) {
5848 val
* var_mclass
/* var mclass: MClass */;
5849 val
* var
/* : MClassDef */;
5850 val
* var1
/* : MClassType */;
5851 val
* var_mtype
/* var mtype: MClassType */;
5852 val
* var2
/* : String */;
5853 val
* var_c_name
/* var c_name: String */;
5854 val
* var3
/* : String */;
5855 val
* var_c_instance_name
/* var c_instance_name: String */;
5856 val
* var4
/* : Map[MClass, Array[nullable MPropDef]] */;
5857 val
* var5
/* : nullable Object */;
5858 val
* var_vft
/* var vft: Array[nullable MPropDef] */;
5859 val
* var6
/* : Map[MClass, Array[nullable MPropDef]] */;
5860 val
* var7
/* : nullable Object */;
5861 val
* var_attrs
/* var attrs: Array[nullable MPropDef] */;
5862 val
* var8
/* : AbstractCompilerVisitor */;
5863 val
* var_v
/* var v: SeparateCompilerVisitor */;
5864 short int var9
/* : Bool */;
5865 short int var10
/* : Bool */;
5866 short int var11
/* : Bool */;
5867 val
* var12
/* : nullable RapidTypeAnalysis */;
5868 val
* var13
/* : null */;
5869 short int var14
/* : Bool */;
5870 short int var_
/* var : Bool */;
5871 val
* var15
/* : nullable RapidTypeAnalysis */;
5872 val
* var16
/* : HashSet[MClass] */;
5873 short int var17
/* : Bool */;
5874 short int var18
/* : Bool */;
5875 short int var_19
/* var : Bool */;
5876 val
* var20
/* : String */;
5877 static val
* varonce
;
5878 val
* var21
/* : String */;
5879 char* var22
/* : NativeString */;
5880 long var23
/* : Int */;
5881 val
* var24
/* : String */;
5882 short int var25
/* : Bool */;
5883 short int var_26
/* var : Bool */;
5884 val
* var27
/* : String */;
5885 static val
* varonce28
;
5886 val
* var29
/* : String */;
5887 char* var30
/* : NativeString */;
5888 long var31
/* : Int */;
5889 val
* var32
/* : String */;
5890 short int var33
/* : Bool */;
5891 short int var_is_dead
/* var is_dead: Bool */;
5892 static val
* varonce34
;
5893 val
* var35
/* : String */;
5894 char* var36
/* : NativeString */;
5895 long var37
/* : Int */;
5896 val
* var38
/* : String */;
5897 static val
* varonce39
;
5898 val
* var40
/* : String */;
5899 char* var41
/* : NativeString */;
5900 long var42
/* : Int */;
5901 val
* var43
/* : String */;
5902 val
* var44
/* : Array[Object] */;
5903 long var45
/* : Int */;
5904 val
* var46
/* : NativeArray[Object] */;
5905 val
* var47
/* : String */;
5906 short int var48
/* : Bool */;
5907 static val
* varonce49
;
5908 val
* var50
/* : String */;
5909 char* var51
/* : NativeString */;
5910 long var52
/* : Int */;
5911 val
* var53
/* : String */;
5912 val
* var54
/* : Array[Object] */;
5913 long var55
/* : Int */;
5914 val
* var56
/* : NativeArray[Object] */;
5915 val
* var57
/* : String */;
5916 static val
* varonce58
;
5917 val
* var59
/* : String */;
5918 char* var60
/* : NativeString */;
5919 long var61
/* : Int */;
5920 val
* var62
/* : String */;
5921 static val
* varonce63
;
5922 val
* var64
/* : String */;
5923 char* var65
/* : NativeString */;
5924 long var66
/* : Int */;
5925 val
* var67
/* : String */;
5926 val
* var68
/* : Array[Object] */;
5927 long var69
/* : Int */;
5928 val
* var70
/* : NativeArray[Object] */;
5929 val
* var71
/* : String */;
5930 static val
* varonce72
;
5931 val
* var73
/* : String */;
5932 char* var74
/* : NativeString */;
5933 long var75
/* : Int */;
5934 val
* var76
/* : String */;
5935 static val
* varonce77
;
5936 val
* var78
/* : String */;
5937 char* var79
/* : NativeString */;
5938 long var80
/* : Int */;
5939 val
* var81
/* : String */;
5940 val
* var82
/* : Array[Object] */;
5941 long var83
/* : Int */;
5942 val
* var84
/* : NativeArray[Object] */;
5943 val
* var85
/* : String */;
5944 long var86
/* : Int */;
5945 static val
* varonce87
;
5946 val
* var88
/* : String */;
5947 char* var89
/* : NativeString */;
5948 long var90
/* : Int */;
5949 val
* var91
/* : String */;
5950 val
* var92
/* : Array[Object] */;
5951 long var93
/* : Int */;
5952 val
* var94
/* : NativeArray[Object] */;
5953 val
* var95
/* : Object */;
5954 val
* var96
/* : String */;
5955 static val
* varonce97
;
5956 val
* var98
/* : String */;
5957 char* var99
/* : NativeString */;
5958 long var100
/* : Int */;
5959 val
* var101
/* : String */;
5960 val
* var102
/* : Range[Int] */;
5961 long var103
/* : Int */;
5962 long var104
/* : Int */;
5963 val
* var105
/* : Discrete */;
5964 val
* var106
/* : Discrete */;
5965 val
* var107
/* : Iterator[nullable Object] */;
5966 short int var108
/* : Bool */;
5967 val
* var109
/* : nullable Object */;
5968 long var_i
/* var i: Int */;
5969 long var110
/* : Int */;
5970 val
* var111
/* : nullable Object */;
5971 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
5972 val
* var112
/* : null */;
5973 short int var113
/* : Bool */;
5974 static val
* varonce114
;
5975 val
* var115
/* : String */;
5976 char* var116
/* : NativeString */;
5977 long var117
/* : Int */;
5978 val
* var118
/* : String */;
5979 short int var119
/* : Bool */;
5982 val
* var120
/* : AbstractRuntimeFunction */;
5983 val
* var_rf
/* var rf: AbstractRuntimeFunction */;
5984 val
* var121
/* : String */;
5985 static val
* varonce122
;
5986 val
* var123
/* : String */;
5987 char* var124
/* : NativeString */;
5988 long var125
/* : Int */;
5989 val
* var126
/* : String */;
5990 val
* var127
/* : String */;
5991 static val
* varonce128
;
5992 val
* var129
/* : String */;
5993 char* var130
/* : NativeString */;
5994 long var131
/* : Int */;
5995 val
* var132
/* : String */;
5996 val
* var133
/* : MModule */;
5997 static val
* varonce134
;
5998 val
* var135
/* : String */;
5999 char* var136
/* : NativeString */;
6000 long var137
/* : Int */;
6001 val
* var138
/* : String */;
6002 static val
* varonce139
;
6003 val
* var140
/* : String */;
6004 char* var141
/* : NativeString */;
6005 long var142
/* : Int */;
6006 val
* var143
/* : String */;
6007 static val
* varonce144
;
6008 val
* var145
/* : String */;
6009 char* var146
/* : NativeString */;
6010 long var147
/* : Int */;
6011 val
* var148
/* : String */;
6012 val
* var149
/* : Array[Object] */;
6013 long var150
/* : Int */;
6014 val
* var151
/* : NativeArray[Object] */;
6015 val
* var152
/* : String */;
6016 static val
* varonce153
;
6017 val
* var154
/* : String */;
6018 char* var155
/* : NativeString */;
6019 long var156
/* : Int */;
6020 val
* var157
/* : String */;
6021 static val
* varonce158
;
6022 val
* var159
/* : String */;
6023 char* var160
/* : NativeString */;
6024 long var161
/* : Int */;
6025 val
* var162
/* : String */;
6026 val
* var163
/* : String */;
6027 static val
* varonce164
;
6028 val
* var165
/* : String */;
6029 char* var166
/* : NativeString */;
6030 long var167
/* : Int */;
6031 val
* var168
/* : String */;
6032 short int var169
/* : Bool */;
6033 short int var170
/* : Bool */;
6034 val
* var171
/* : MClass */;
6035 val
* var172
/* : String */;
6036 static val
* varonce173
;
6037 val
* var174
/* : String */;
6038 char* var175
/* : NativeString */;
6039 long var176
/* : Int */;
6040 val
* var177
/* : String */;
6041 short int var178
/* : Bool */;
6042 short int var_179
/* var : Bool */;
6043 val
* var180
/* : MClass */;
6044 val
* var181
/* : MClassKind */;
6045 val
* var182
/* : MClassKind */;
6046 short int var183
/* : Bool */;
6047 val
* var184
/* : CodeWriter */;
6048 static val
* varonce185
;
6049 val
* var186
/* : String */;
6050 char* var187
/* : NativeString */;
6051 long var188
/* : Int */;
6052 val
* var189
/* : String */;
6053 static val
* varonce190
;
6054 val
* var191
/* : String */;
6055 char* var192
/* : NativeString */;
6056 long var193
/* : Int */;
6057 val
* var194
/* : String */;
6058 val
* var195
/* : Array[Object] */;
6059 long var196
/* : Int */;
6060 val
* var197
/* : NativeArray[Object] */;
6061 val
* var198
/* : String */;
6062 val
* var199
/* : CodeWriter */;
6063 static val
* varonce200
;
6064 val
* var201
/* : String */;
6065 char* var202
/* : NativeString */;
6066 long var203
/* : Int */;
6067 val
* var204
/* : String */;
6068 val
* var205
/* : CodeWriter */;
6069 static val
* varonce206
;
6070 val
* var207
/* : String */;
6071 char* var208
/* : NativeString */;
6072 long var209
/* : Int */;
6073 val
* var210
/* : String */;
6074 val
* var211
/* : CodeWriter */;
6075 val
* var212
/* : String */;
6076 static val
* varonce213
;
6077 val
* var214
/* : String */;
6078 char* var215
/* : NativeString */;
6079 long var216
/* : Int */;
6080 val
* var217
/* : String */;
6081 val
* var218
/* : Array[Object] */;
6082 long var219
/* : Int */;
6083 val
* var220
/* : NativeArray[Object] */;
6084 val
* var221
/* : String */;
6085 val
* var222
/* : CodeWriter */;
6086 static val
* varonce223
;
6087 val
* var224
/* : String */;
6088 char* var225
/* : NativeString */;
6089 long var226
/* : Int */;
6090 val
* var227
/* : String */;
6091 val
* var228
/* : nullable RapidTypeAnalysis */;
6092 val
* var229
/* : HashSet[MClassType] */;
6093 short int var230
/* : Bool */;
6094 short int var231
/* : Bool */;
6095 static val
* varonce232
;
6096 val
* var233
/* : String */;
6097 char* var234
/* : NativeString */;
6098 long var235
/* : Int */;
6099 val
* var236
/* : String */;
6100 val
* var237
/* : Array[Object] */;
6101 long var238
/* : Int */;
6102 val
* var239
/* : NativeArray[Object] */;
6103 val
* var240
/* : String */;
6104 static val
* varonce241
;
6105 val
* var242
/* : String */;
6106 char* var243
/* : NativeString */;
6107 long var244
/* : Int */;
6108 val
* var245
/* : String */;
6109 static val
* varonce246
;
6110 val
* var247
/* : String */;
6111 char* var248
/* : NativeString */;
6112 long var249
/* : Int */;
6113 val
* var250
/* : String */;
6114 val
* var251
/* : String */;
6115 static val
* varonce252
;
6116 val
* var253
/* : String */;
6117 char* var254
/* : NativeString */;
6118 long var255
/* : Int */;
6119 val
* var256
/* : String */;
6120 val
* var257
/* : Array[Object] */;
6121 long var258
/* : Int */;
6122 val
* var259
/* : NativeArray[Object] */;
6123 val
* var260
/* : String */;
6124 static val
* varonce261
;
6125 val
* var262
/* : String */;
6126 char* var263
/* : NativeString */;
6127 long var264
/* : Int */;
6128 val
* var265
/* : String */;
6129 static val
* varonce266
;
6130 val
* var267
/* : String */;
6131 char* var268
/* : NativeString */;
6132 long var269
/* : Int */;
6133 val
* var270
/* : String */;
6134 val
* var271
/* : Array[Object] */;
6135 long var272
/* : Int */;
6136 val
* var273
/* : NativeArray[Object] */;
6137 val
* var274
/* : String */;
6138 static val
* varonce275
;
6139 val
* var276
/* : String */;
6140 char* var277
/* : NativeString */;
6141 long var278
/* : Int */;
6142 val
* var279
/* : String */;
6143 val
* var280
/* : String */;
6144 static val
* varonce281
;
6145 val
* var282
/* : String */;
6146 char* var283
/* : NativeString */;
6147 long var284
/* : Int */;
6148 val
* var285
/* : String */;
6149 val
* var286
/* : String */;
6150 static val
* varonce287
;
6151 val
* var288
/* : String */;
6152 char* var289
/* : NativeString */;
6153 long var290
/* : Int */;
6154 val
* var291
/* : String */;
6155 val
* var292
/* : Array[Object] */;
6156 long var293
/* : Int */;
6157 val
* var294
/* : NativeArray[Object] */;
6158 val
* var295
/* : String */;
6159 static val
* varonce296
;
6160 val
* var297
/* : String */;
6161 char* var298
/* : NativeString */;
6162 long var299
/* : Int */;
6163 val
* var300
/* : String */;
6164 static val
* varonce301
;
6165 val
* var302
/* : String */;
6166 char* var303
/* : NativeString */;
6167 long var304
/* : Int */;
6168 val
* var305
/* : String */;
6169 static val
* varonce306
;
6170 val
* var307
/* : String */;
6171 char* var308
/* : NativeString */;
6172 long var309
/* : Int */;
6173 val
* var310
/* : String */;
6174 val
* var311
/* : Array[Object] */;
6175 long var312
/* : Int */;
6176 val
* var313
/* : NativeArray[Object] */;
6177 val
* var314
/* : String */;
6178 static val
* varonce315
;
6179 val
* var316
/* : String */;
6180 char* var317
/* : NativeString */;
6181 long var318
/* : Int */;
6182 val
* var319
/* : String */;
6183 val
* var320
/* : Array[Object] */;
6184 long var321
/* : Int */;
6185 val
* var322
/* : NativeArray[Object] */;
6186 val
* var323
/* : String */;
6187 static val
* varonce324
;
6188 val
* var325
/* : String */;
6189 char* var326
/* : NativeString */;
6190 long var327
/* : Int */;
6191 val
* var328
/* : String */;
6192 static val
* varonce329
;
6193 val
* var330
/* : String */;
6194 char* var331
/* : NativeString */;
6195 long var332
/* : Int */;
6196 val
* var333
/* : String */;
6197 val
* var334
/* : Array[Object] */;
6198 long var335
/* : Int */;
6199 val
* var336
/* : NativeArray[Object] */;
6200 val
* var337
/* : String */;
6201 static val
* varonce338
;
6202 val
* var339
/* : String */;
6203 char* var340
/* : NativeString */;
6204 long var341
/* : Int */;
6205 val
* var342
/* : String */;
6206 val
* var343
/* : Array[Object] */;
6207 long var344
/* : Int */;
6208 val
* var345
/* : NativeArray[Object] */;
6209 val
* var346
/* : String */;
6210 static val
* varonce347
;
6211 val
* var348
/* : String */;
6212 char* var349
/* : NativeString */;
6213 long var350
/* : Int */;
6214 val
* var351
/* : String */;
6215 static val
* varonce352
;
6216 val
* var353
/* : String */;
6217 char* var354
/* : NativeString */;
6218 long var355
/* : Int */;
6219 val
* var356
/* : String */;
6220 val
* var357
/* : Array[Object] */;
6221 long var358
/* : Int */;
6222 val
* var359
/* : NativeArray[Object] */;
6223 val
* var360
/* : String */;
6224 static val
* varonce361
;
6225 val
* var362
/* : String */;
6226 char* var363
/* : NativeString */;
6227 long var364
/* : Int */;
6228 val
* var365
/* : String */;
6229 static val
* varonce366
;
6230 val
* var367
/* : String */;
6231 char* var368
/* : NativeString */;
6232 long var369
/* : Int */;
6233 val
* var370
/* : String */;
6234 static val
* varonce371
;
6235 val
* var372
/* : String */;
6236 char* var373
/* : NativeString */;
6237 long var374
/* : Int */;
6238 val
* var375
/* : String */;
6239 val
* var376
/* : String */;
6240 static val
* varonce377
;
6241 val
* var378
/* : String */;
6242 char* var379
/* : NativeString */;
6243 long var380
/* : Int */;
6244 val
* var381
/* : String */;
6245 short int var382
/* : Bool */;
6246 val
* var383
/* : CodeWriter */;
6247 static val
* varonce384
;
6248 val
* var385
/* : String */;
6249 char* var386
/* : NativeString */;
6250 long var387
/* : Int */;
6251 val
* var388
/* : String */;
6252 static val
* varonce389
;
6253 val
* var390
/* : String */;
6254 char* var391
/* : NativeString */;
6255 long var392
/* : Int */;
6256 val
* var393
/* : String */;
6257 val
* var394
/* : Array[Object] */;
6258 long var395
/* : Int */;
6259 val
* var396
/* : NativeArray[Object] */;
6260 val
* var397
/* : String */;
6261 val
* var398
/* : CodeWriter */;
6262 static val
* varonce399
;
6263 val
* var400
/* : String */;
6264 char* var401
/* : NativeString */;
6265 long var402
/* : Int */;
6266 val
* var403
/* : String */;
6267 val
* var404
/* : CodeWriter */;
6268 static val
* varonce405
;
6269 val
* var406
/* : String */;
6270 char* var407
/* : NativeString */;
6271 long var408
/* : Int */;
6272 val
* var409
/* : String */;
6273 val
* var410
/* : CodeWriter */;
6274 static val
* varonce411
;
6275 val
* var412
/* : String */;
6276 char* var413
/* : NativeString */;
6277 long var414
/* : Int */;
6278 val
* var415
/* : String */;
6279 val
* var416
/* : CodeWriter */;
6280 static val
* varonce417
;
6281 val
* var418
/* : String */;
6282 char* var419
/* : NativeString */;
6283 long var420
/* : Int */;
6284 val
* var421
/* : String */;
6285 static val
* varonce422
;
6286 val
* var423
/* : String */;
6287 char* var424
/* : NativeString */;
6288 long var425
/* : Int */;
6289 val
* var426
/* : String */;
6290 val
* var427
/* : Array[Object] */;
6291 long var428
/* : Int */;
6292 val
* var429
/* : NativeArray[Object] */;
6293 val
* var430
/* : String */;
6294 val
* var431
/* : String */;
6295 static val
* varonce432
;
6296 val
* var433
/* : String */;
6297 char* var434
/* : NativeString */;
6298 long var435
/* : Int */;
6299 val
* var436
/* : String */;
6300 static val
* varonce437
;
6301 val
* var438
/* : String */;
6302 char* var439
/* : NativeString */;
6303 long var440
/* : Int */;
6304 val
* var441
/* : String */;
6305 val
* var442
/* : Array[Object] */;
6306 long var443
/* : Int */;
6307 val
* var444
/* : NativeArray[Object] */;
6308 val
* var445
/* : String */;
6309 static val
* varonce446
;
6310 val
* var447
/* : String */;
6311 char* var448
/* : NativeString */;
6312 long var449
/* : Int */;
6313 val
* var450
/* : String */;
6314 static val
* varonce451
;
6315 val
* var452
/* : String */;
6316 char* var453
/* : NativeString */;
6317 long var454
/* : Int */;
6318 val
* var455
/* : String */;
6319 val
* var456
/* : Array[Object] */;
6320 long var457
/* : Int */;
6321 val
* var458
/* : NativeArray[Object] */;
6322 val
* var459
/* : String */;
6323 val
* var460
/* : String */;
6324 static val
* varonce461
;
6325 val
* var462
/* : String */;
6326 char* var463
/* : NativeString */;
6327 long var464
/* : Int */;
6328 val
* var465
/* : String */;
6329 static val
* varonce466
;
6330 val
* var467
/* : String */;
6331 char* var468
/* : NativeString */;
6332 long var469
/* : Int */;
6333 val
* var470
/* : String */;
6334 val
* var471
/* : Array[Object] */;
6335 long var472
/* : Int */;
6336 val
* var473
/* : NativeArray[Object] */;
6337 val
* var474
/* : String */;
6338 static val
* varonce475
;
6339 val
* var476
/* : String */;
6340 char* var477
/* : NativeString */;
6341 long var478
/* : Int */;
6342 val
* var479
/* : String */;
6343 val
* var480
/* : RuntimeVariable */;
6344 val
* var_res
/* var res: RuntimeVariable */;
6345 short int var481
/* : Bool */;
6346 val
* var482
/* : Array[MType] */;
6347 val
* var483
/* : nullable Object */;
6348 val
* var_mtype_elt
/* var mtype_elt: MType */;
6349 static val
* varonce484
;
6350 val
* var485
/* : String */;
6351 char* var486
/* : NativeString */;
6352 long var487
/* : Int */;
6353 val
* var488
/* : String */;
6354 static val
* varonce489
;
6355 val
* var490
/* : String */;
6356 char* var491
/* : NativeString */;
6357 long var492
/* : Int */;
6358 val
* var493
/* : String */;
6359 val
* var494
/* : String */;
6360 static val
* varonce495
;
6361 val
* var496
/* : String */;
6362 char* var497
/* : NativeString */;
6363 long var498
/* : Int */;
6364 val
* var499
/* : String */;
6365 val
* var500
/* : Array[Object] */;
6366 long var501
/* : Int */;
6367 val
* var502
/* : NativeArray[Object] */;
6368 val
* var503
/* : String */;
6369 static val
* varonce504
;
6370 val
* var505
/* : String */;
6371 char* var506
/* : NativeString */;
6372 long var507
/* : Int */;
6373 val
* var508
/* : String */;
6374 val
* var509
/* : Array[Object] */;
6375 long var510
/* : Int */;
6376 val
* var511
/* : NativeArray[Object] */;
6377 val
* var512
/* : String */;
6378 static val
* varonce513
;
6379 val
* var514
/* : String */;
6380 char* var515
/* : NativeString */;
6381 long var516
/* : Int */;
6382 val
* var517
/* : String */;
6383 static val
* varonce518
;
6384 val
* var519
/* : String */;
6385 char* var520
/* : NativeString */;
6386 long var521
/* : Int */;
6387 val
* var522
/* : String */;
6388 val
* var523
/* : Array[Object] */;
6389 long var524
/* : Int */;
6390 val
* var525
/* : NativeArray[Object] */;
6391 val
* var526
/* : String */;
6392 static val
* varonce527
;
6393 val
* var528
/* : String */;
6394 char* var529
/* : NativeString */;
6395 long var530
/* : Int */;
6396 val
* var531
/* : String */;
6397 static val
* varonce532
;
6398 val
* var533
/* : String */;
6399 char* var534
/* : NativeString */;
6400 long var535
/* : Int */;
6401 val
* var536
/* : String */;
6402 val
* var537
/* : Array[Object] */;
6403 long var538
/* : Int */;
6404 val
* var539
/* : NativeArray[Object] */;
6405 val
* var540
/* : String */;
6406 static val
* varonce541
;
6407 val
* var542
/* : String */;
6408 char* var543
/* : NativeString */;
6409 long var544
/* : Int */;
6410 val
* var545
/* : String */;
6411 static val
* varonce546
;
6412 val
* var547
/* : String */;
6413 char* var548
/* : NativeString */;
6414 long var549
/* : Int */;
6415 val
* var550
/* : String */;
6416 val
* var551
/* : Array[Object] */;
6417 long var552
/* : Int */;
6418 val
* var553
/* : NativeArray[Object] */;
6419 val
* var554
/* : String */;
6420 static val
* varonce555
;
6421 val
* var556
/* : String */;
6422 char* var557
/* : NativeString */;
6423 long var558
/* : Int */;
6424 val
* var559
/* : String */;
6425 static val
* varonce560
;
6426 val
* var561
/* : String */;
6427 char* var562
/* : NativeString */;
6428 long var563
/* : Int */;
6429 val
* var564
/* : String */;
6430 val
* var565
/* : Array[Object] */;
6431 long var566
/* : Int */;
6432 val
* var567
/* : NativeArray[Object] */;
6433 val
* var568
/* : String */;
6434 val
* var569
/* : String */;
6435 static val
* varonce570
;
6436 val
* var571
/* : String */;
6437 char* var572
/* : NativeString */;
6438 long var573
/* : Int */;
6439 val
* var574
/* : String */;
6440 static val
* varonce575
;
6441 val
* var576
/* : String */;
6442 char* var577
/* : NativeString */;
6443 long var578
/* : Int */;
6444 val
* var579
/* : String */;
6445 val
* var580
/* : Array[Object] */;
6446 long var581
/* : Int */;
6447 val
* var582
/* : NativeArray[Object] */;
6448 val
* var583
/* : String */;
6449 static val
* varonce584
;
6450 val
* var585
/* : String */;
6451 char* var586
/* : NativeString */;
6452 long var587
/* : Int */;
6453 val
* var588
/* : String */;
6454 static val
* varonce589
;
6455 val
* var590
/* : String */;
6456 char* var591
/* : NativeString */;
6457 long var592
/* : Int */;
6458 val
* var593
/* : String */;
6459 val
* var594
/* : Array[Object] */;
6460 long var595
/* : Int */;
6461 val
* var596
/* : NativeArray[Object] */;
6462 val
* var597
/* : String */;
6463 val
* var598
/* : String */;
6464 static val
* varonce599
;
6465 val
* var600
/* : String */;
6466 char* var601
/* : NativeString */;
6467 long var602
/* : Int */;
6468 val
* var603
/* : String */;
6469 static val
* varonce604
;
6470 val
* var605
/* : String */;
6471 char* var606
/* : NativeString */;
6472 long var607
/* : Int */;
6473 val
* var608
/* : String */;
6474 val
* var609
/* : Array[Object] */;
6475 long var610
/* : Int */;
6476 val
* var611
/* : NativeArray[Object] */;
6477 val
* var612
/* : String */;
6478 static val
* varonce613
;
6479 val
* var614
/* : String */;
6480 char* var615
/* : NativeString */;
6481 long var616
/* : Int */;
6482 val
* var617
/* : String */;
6483 val
* var618
/* : Array[Object] */;
6484 long var619
/* : Int */;
6485 val
* var620
/* : NativeArray[Object] */;
6486 val
* var621
/* : String */;
6487 static val
* varonce622
;
6488 val
* var623
/* : String */;
6489 char* var624
/* : NativeString */;
6490 long var625
/* : Int */;
6491 val
* var626
/* : String */;
6492 val
* var627
/* : RuntimeVariable */;
6493 val
* var_res628
/* var res: RuntimeVariable */;
6494 short int var629
/* : Bool */;
6495 static val
* varonce630
;
6496 val
* var631
/* : String */;
6497 char* var632
/* : NativeString */;
6498 long var633
/* : Int */;
6499 val
* var634
/* : String */;
6500 long var635
/* : Int */;
6501 static val
* varonce636
;
6502 val
* var637
/* : String */;
6503 char* var638
/* : NativeString */;
6504 long var639
/* : Int */;
6505 val
* var640
/* : String */;
6506 val
* var641
/* : Array[Object] */;
6507 long var642
/* : Int */;
6508 val
* var643
/* : NativeArray[Object] */;
6509 val
* var644
/* : Object */;
6510 val
* var645
/* : String */;
6511 static val
* varonce646
;
6512 val
* var647
/* : String */;
6513 char* var648
/* : NativeString */;
6514 long var649
/* : Int */;
6515 val
* var650
/* : String */;
6516 val
* var651
/* : Array[Object] */;
6517 long var652
/* : Int */;
6518 val
* var653
/* : NativeArray[Object] */;
6519 val
* var654
/* : String */;
6520 static val
* varonce655
;
6521 val
* var656
/* : String */;
6522 char* var657
/* : NativeString */;
6523 long var658
/* : Int */;
6524 val
* var659
/* : String */;
6525 static val
* varonce660
;
6526 val
* var661
/* : String */;
6527 char* var662
/* : NativeString */;
6528 long var663
/* : Int */;
6529 val
* var664
/* : String */;
6530 val
* var665
/* : Array[Object] */;
6531 long var666
/* : Int */;
6532 val
* var667
/* : NativeArray[Object] */;
6533 val
* var668
/* : String */;
6534 static val
* varonce669
;
6535 val
* var670
/* : String */;
6536 char* var671
/* : NativeString */;
6537 long var672
/* : Int */;
6538 val
* var673
/* : String */;
6539 static val
* varonce674
;
6540 val
* var675
/* : String */;
6541 char* var676
/* : NativeString */;
6542 long var677
/* : Int */;
6543 val
* var678
/* : String */;
6544 val
* var679
/* : Array[Object] */;
6545 long var680
/* : Int */;
6546 val
* var681
/* : NativeArray[Object] */;
6547 val
* var682
/* : String */;
6548 static val
* varonce683
;
6549 val
* var684
/* : String */;
6550 char* var685
/* : NativeString */;
6551 long var686
/* : Int */;
6552 val
* var687
/* : String */;
6553 static val
* varonce688
;
6554 val
* var689
/* : String */;
6555 char* var690
/* : NativeString */;
6556 long var691
/* : Int */;
6557 val
* var692
/* : String */;
6558 val
* var693
/* : Array[Object] */;
6559 long var694
/* : Int */;
6560 val
* var695
/* : NativeArray[Object] */;
6561 val
* var696
/* : String */;
6562 static val
* varonce697
;
6563 val
* var698
/* : String */;
6564 char* var699
/* : NativeString */;
6565 long var700
/* : Int */;
6566 val
* var701
/* : String */;
6568 var
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
6569 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var
) /* bound_mtype on <var:MClassDef>*/;
6571 var2
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
6573 var3
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_separate_compiler__MClass__c_instance_name
]))(var_mclass
) /* c_instance_name on <var_mclass:MClass>*/;
6574 var_c_instance_name
= var3
;
6575 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_tables
]))(self
) /* method_tables on <self:SeparateCompiler>*/;
6576 var5
= ((val
* (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var4
, var_mclass
) /* [] on <var4:Map[MClass, Array[nullable MPropDef]]>*/;
6578 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_tables
]))(self
) /* attr_tables on <self:SeparateCompiler>*/;
6579 var7
= ((val
* (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var6
, var_mclass
) /* [] on <var6:Map[MClass, Array[nullable MPropDef]]>*/;
6581 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
6583 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
6585 if (var12
== NULL
) {
6586 var14
= 0; /* is null */
6588 var14
= 1; /* arg is null and recv is not */
6592 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
6593 if (var15
== NULL
) {
6594 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
6595 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 744);
6598 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_classes
]))(var15
) /* live_classes on <var15:nullable RapidTypeAnalysis>*/;
6600 var17
= ((short int (*)(val
*, val
*))(var16
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var16
, var_mclass
) /* has on <var16:HashSet[MClass]>*/;
6608 var20
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
6614 var24
= string__NativeString__to_s_with_length(var22
, var23
);
6618 var25
= ((short int (*)(val
*, val
*))(var20
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var20
, var21
) /* == on <var20:String>*/;
6625 var27
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__name
]))(var_mclass
) /* name on <var_mclass:MClass>*/;
6629 var30
= "NativeArray";
6631 var32
= string__NativeString__to_s_with_length(var30
, var31
);
6635 var33
= ((short int (*)(val
*, val
*))(var27
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var27
, var29
) /* != on <var27:String>*/;
6644 var36
= "/* runtime class ";
6646 var38
= string__NativeString__to_s_with_length(var36
, var37
);
6655 var43
= string__NativeString__to_s_with_length(var41
, var42
);
6659 var44
= NEW_array__Array(&type_array__Arraykernel__Object
);
6660 { /* var44 = array_instance Array[Object] */
6662 var46
= NEW_array__NativeArray(var45
, &type_array__NativeArraykernel__Object
);
6663 ((struct instance_array__NativeArray
*)var46
)->values
[0] = (val
*) var35
;
6664 ((struct instance_array__NativeArray
*)var46
)->values
[1] = (val
*) var_c_name
;
6665 ((struct instance_array__NativeArray
*)var46
)->values
[2] = (val
*) var40
;
6666 ((void (*)(val
*, val
*, long))(var44
->class->vft
[COLOR_array__Array__with_native
]))(var44
, var46
, var45
) /* with_native on <var44:Array[Object]>*/;
6668 var47
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_string__Object__to_s
]))(var44
) /* to_s on <var44:Array[Object]>*/;
6669 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var47
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6670 var48
= !var_is_dead
;
6677 var53
= string__NativeString__to_s_with_length(var51
, var52
);
6681 var54
= NEW_array__Array(&type_array__Arraykernel__Object
);
6682 { /* var54 = array_instance Array[Object] */
6684 var56
= NEW_array__NativeArray(var55
, &type_array__NativeArraykernel__Object
);
6685 ((struct instance_array__NativeArray
*)var56
)->values
[0] = (val
*) var50
;
6686 ((struct instance_array__NativeArray
*)var56
)->values
[1] = (val
*) var_c_name
;
6687 ((void (*)(val
*, val
*, long))(var54
->class->vft
[COLOR_array__Array__with_native
]))(var54
, var56
, var55
) /* with_native on <var54:Array[Object]>*/;
6689 var57
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_string__Object__to_s
]))(var54
) /* to_s on <var54:Array[Object]>*/;
6693 var60
= "extern const struct class class_";
6695 var62
= string__NativeString__to_s_with_length(var60
, var61
);
6704 var67
= string__NativeString__to_s_with_length(var65
, var66
);
6708 var68
= NEW_array__Array(&type_array__Arraykernel__Object
);
6709 { /* var68 = array_instance Array[Object] */
6711 var70
= NEW_array__NativeArray(var69
, &type_array__NativeArraykernel__Object
);
6712 ((struct instance_array__NativeArray
*)var70
)->values
[0] = (val
*) var59
;
6713 ((struct instance_array__NativeArray
*)var70
)->values
[1] = (val
*) var_c_name
;
6714 ((struct instance_array__NativeArray
*)var70
)->values
[2] = (val
*) var64
;
6715 ((void (*)(val
*, val
*, long))(var68
->class->vft
[COLOR_array__Array__with_native
]))(var68
, var70
, var69
) /* with_native on <var68:Array[Object]>*/;
6717 var71
= ((val
* (*)(val
*))(var68
->class->vft
[COLOR_string__Object__to_s
]))(var68
) /* to_s on <var68:Array[Object]>*/;
6718 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var57
, var71
) /* provide_declaration on <self:SeparateCompiler>*/;
6722 var74
= "const struct class class_";
6724 var76
= string__NativeString__to_s_with_length(var74
, var75
);
6733 var81
= string__NativeString__to_s_with_length(var79
, var80
);
6737 var82
= NEW_array__Array(&type_array__Arraykernel__Object
);
6738 { /* var82 = array_instance Array[Object] */
6740 var84
= NEW_array__NativeArray(var83
, &type_array__NativeArraykernel__Object
);
6741 ((struct instance_array__NativeArray
*)var84
)->values
[0] = (val
*) var73
;
6742 ((struct instance_array__NativeArray
*)var84
)->values
[1] = (val
*) var_c_name
;
6743 ((struct instance_array__NativeArray
*)var84
)->values
[2] = (val
*) var78
;
6744 ((void (*)(val
*, val
*, long))(var82
->class->vft
[COLOR_array__Array__with_native
]))(var82
, var84
, var83
) /* with_native on <var82:Array[Object]>*/;
6746 var85
= ((val
* (*)(val
*))(var82
->class->vft
[COLOR_string__Object__to_s
]))(var82
) /* to_s on <var82:Array[Object]>*/;
6747 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var85
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6748 var86
= ((long (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kind_of
]))(self
, var_mclass
) /* box_kind_of on <self:SeparateCompiler>*/;
6752 var89
= ", /* box_kind */";
6754 var91
= string__NativeString__to_s_with_length(var89
, var90
);
6758 var92
= NEW_array__Array(&type_array__Arraykernel__Object
);
6759 { /* var92 = array_instance Array[Object] */
6761 var94
= NEW_array__NativeArray(var93
, &type_array__NativeArraykernel__Object
);
6762 var95
= BOX_kernel__Int(var86
); /* autobox from Int to Object */
6763 ((struct instance_array__NativeArray
*)var94
)->values
[0] = (val
*) var95
;
6764 ((struct instance_array__NativeArray
*)var94
)->values
[1] = (val
*) var88
;
6765 ((void (*)(val
*, val
*, long))(var92
->class->vft
[COLOR_array__Array__with_native
]))(var92
, var94
, var93
) /* with_native on <var92:Array[Object]>*/;
6767 var96
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_string__Object__to_s
]))(var92
) /* to_s on <var92:Array[Object]>*/;
6768 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var96
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6774 var101
= string__NativeString__to_s_with_length(var99
, var100
);
6778 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var98
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6779 var102
= NEW_range__Range(&type_range__Rangekernel__Int
);
6781 var104
= ((long (*)(val
*))(var_vft
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_vft
) /* length on <var_vft:Array[nullable MPropDef]>*/;
6782 var105
= BOX_kernel__Int(var103
); /* autobox from Int to Discrete */
6783 var106
= BOX_kernel__Int(var104
); /* autobox from Int to Discrete */
6784 ((void (*)(val
*, val
*, val
*))(var102
->class->vft
[COLOR_range__Range__without_last
]))(var102
, var105
, var106
) /* without_last on <var102:Range[Int]>*/;
6785 var107
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var102
) /* iterator on <var102:Range[Int]>*/;
6787 var108
= ((short int (*)(val
*))(var107
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var107
) /* is_ok on <var107:Iterator[nullable Object]>*/;
6789 var109
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var107
) /* item on <var107:Iterator[nullable Object]>*/;
6790 var110
= ((struct instance_kernel__Int
*)var109
)->value
; /* autounbox from nullable Object to Int */;
6792 var111
= ((val
* (*)(val
*, long))(var_vft
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_vft
, var_i
) /* [] on <var_vft:Array[nullable MPropDef]>*/;
6793 var_mpropdef
= var111
;
6795 if (var_mpropdef
== NULL
) {
6796 var113
= 1; /* is null */
6798 var113
= 0; /* arg is null but recv is not */
6802 var115
= varonce114
;
6804 var116
= "NULL, /* empty */";
6806 var118
= string__NativeString__to_s_with_length(var116
, var117
);
6808 varonce114
= var115
;
6810 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var115
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6812 /* <var_mpropdef:nullable MPropDef(MPropDef)> isa MMethodDef */
6813 cltype
= type_model__MMethodDef
.color
;
6814 idtype
= type_model__MMethodDef
.id
;
6815 if(cltype
>= var_mpropdef
->type
->table_size
) {
6818 var119
= var_mpropdef
->type
->type_table
[cltype
] == idtype
;
6821 fprintf(stderr
, "Runtime error: %s", "Assert failed");
6822 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 759);
6825 var120
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_separate_compiler__MMethodDef__virtual_runtime_function
]))(var_mpropdef
) /* virtual_runtime_function on <var_mpropdef:nullable MPropDef(MMethodDef)>*/;
6827 var121
= ((val
* (*)(val
*))(var_rf
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name
]))(var_rf
) /* c_name on <var_rf:AbstractRuntimeFunction>*/;
6828 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var121
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
6830 var123
= varonce122
;
6832 var124
= "(nitmethod_t)";
6834 var126
= string__NativeString__to_s_with_length(var124
, var125
);
6836 varonce122
= var123
;
6838 var127
= ((val
* (*)(val
*))(var_rf
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name
]))(var_rf
) /* c_name on <var_rf:AbstractRuntimeFunction>*/;
6840 var129
= varonce128
;
6842 var130
= ", /* pointer to ";
6844 var132
= string__NativeString__to_s_with_length(var130
, var131
);
6846 varonce128
= var129
;
6848 var133
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var_mclass
) /* intro_mmodule on <var_mclass:MClass>*/;
6850 var135
= varonce134
;
6854 var138
= string__NativeString__to_s_with_length(var136
, var137
);
6856 varonce134
= var135
;
6859 var140
= varonce139
;
6863 var143
= string__NativeString__to_s_with_length(var141
, var142
);
6865 varonce139
= var140
;
6868 var145
= varonce144
;
6872 var148
= string__NativeString__to_s_with_length(var146
, var147
);
6874 varonce144
= var145
;
6876 var149
= NEW_array__Array(&type_array__Arraykernel__Object
);
6877 { /* var149 = array_instance Array[Object] */
6879 var151
= NEW_array__NativeArray(var150
, &type_array__NativeArraykernel__Object
);
6880 ((struct instance_array__NativeArray
*)var151
)->values
[0] = (val
*) var123
;
6881 ((struct instance_array__NativeArray
*)var151
)->values
[1] = (val
*) var127
;
6882 ((struct instance_array__NativeArray
*)var151
)->values
[2] = (val
*) var129
;
6883 ((struct instance_array__NativeArray
*)var151
)->values
[3] = (val
*) var133
;
6884 ((struct instance_array__NativeArray
*)var151
)->values
[4] = (val
*) var135
;
6885 ((struct instance_array__NativeArray
*)var151
)->values
[5] = (val
*) var_mclass
;
6886 ((struct instance_array__NativeArray
*)var151
)->values
[6] = (val
*) var140
;
6887 ((struct instance_array__NativeArray
*)var151
)->values
[7] = (val
*) var_mpropdef
;
6888 ((struct instance_array__NativeArray
*)var151
)->values
[8] = (val
*) var145
;
6889 ((void (*)(val
*, val
*, long))(var149
->class->vft
[COLOR_array__Array__with_native
]))(var149
, var151
, var150
) /* with_native on <var149:Array[Object]>*/;
6891 var152
= ((val
* (*)(val
*))(var149
->class->vft
[COLOR_string__Object__to_s
]))(var149
) /* to_s on <var149:Array[Object]>*/;
6892 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var152
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6894 CONTINUE_label
: (void)0;
6895 ((void (*)(val
*))(var107
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var107
) /* next on <var107:Iterator[nullable Object]>*/;
6897 BREAK_label
: (void)0;
6899 var154
= varonce153
;
6903 var157
= string__NativeString__to_s_with_length(var155
, var156
);
6905 varonce153
= var154
;
6907 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var154
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6909 var159
= varonce158
;
6913 var162
= string__NativeString__to_s_with_length(var160
, var161
);
6915 varonce158
= var159
;
6917 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var159
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6920 var163
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
6922 var165
= varonce164
;
6926 var168
= string__NativeString__to_s_with_length(var166
, var167
);
6928 varonce164
= var165
;
6930 var169
= ((short int (*)(val
*, val
*))(var163
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var163
, var165
) /* != on <var163:String>*/;
6932 var171
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
6933 var172
= ((val
* (*)(val
*))(var171
->class->vft
[COLOR_model__MClass__name
]))(var171
) /* name on <var171:MClass>*/;
6935 var174
= varonce173
;
6939 var177
= string__NativeString__to_s_with_length(var175
, var176
);
6941 varonce173
= var174
;
6943 var178
= ((short int (*)(val
*, val
*))(var172
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var172
, var174
) /* == on <var172:String>*/;
6948 var180
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
6949 var181
= ((val
* (*)(val
*))(var180
->class->vft
[COLOR_model__MClass__kind
]))(var180
) /* kind on <var180:MClass>*/;
6950 var182
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__extern_kind
]))(self
) /* extern_kind on <self:SeparateCompiler>*/;
6951 var183
= ((short int (*)(val
*, val
*))(var181
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var181
, var182
) /* != on <var181:MClassKind>*/;
6955 var184
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
6957 var186
= varonce185
;
6959 var187
= "struct instance_";
6961 var189
= string__NativeString__to_s_with_length(var187
, var188
);
6963 varonce185
= var186
;
6966 var191
= varonce190
;
6970 var194
= string__NativeString__to_s_with_length(var192
, var193
);
6972 varonce190
= var191
;
6974 var195
= NEW_array__Array(&type_array__Arraykernel__Object
);
6975 { /* var195 = array_instance Array[Object] */
6977 var197
= NEW_array__NativeArray(var196
, &type_array__NativeArraykernel__Object
);
6978 ((struct instance_array__NativeArray
*)var197
)->values
[0] = (val
*) var186
;
6979 ((struct instance_array__NativeArray
*)var197
)->values
[1] = (val
*) var_c_instance_name
;
6980 ((struct instance_array__NativeArray
*)var197
)->values
[2] = (val
*) var191
;
6981 ((void (*)(val
*, val
*, long))(var195
->class->vft
[COLOR_array__Array__with_native
]))(var195
, var197
, var196
) /* with_native on <var195:Array[Object]>*/;
6983 var198
= ((val
* (*)(val
*))(var195
->class->vft
[COLOR_string__Object__to_s
]))(var195
) /* to_s on <var195:Array[Object]>*/;
6984 ((void (*)(val
*, val
*))(var184
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var184
, var198
) /* add_decl on <var184:CodeWriter>*/;
6985 var199
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
6987 var201
= varonce200
;
6989 var202
= "const struct type *type;";
6991 var204
= string__NativeString__to_s_with_length(var202
, var203
);
6993 varonce200
= var201
;
6995 ((void (*)(val
*, val
*))(var199
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var199
, var201
) /* add_decl on <var199:CodeWriter>*/;
6996 var205
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
6998 var207
= varonce206
;
7000 var208
= "const struct class *class;";
7002 var210
= string__NativeString__to_s_with_length(var208
, var209
);
7004 varonce206
= var207
;
7006 ((void (*)(val
*, val
*))(var205
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var205
, var207
) /* add_decl on <var205:CodeWriter>*/;
7007 var211
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7008 var212
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7010 var214
= varonce213
;
7014 var217
= string__NativeString__to_s_with_length(var215
, var216
);
7016 varonce213
= var214
;
7018 var218
= NEW_array__Array(&type_array__Arraykernel__Object
);
7019 { /* var218 = array_instance Array[Object] */
7021 var220
= NEW_array__NativeArray(var219
, &type_array__NativeArraykernel__Object
);
7022 ((struct instance_array__NativeArray
*)var220
)->values
[0] = (val
*) var212
;
7023 ((struct instance_array__NativeArray
*)var220
)->values
[1] = (val
*) var214
;
7024 ((void (*)(val
*, val
*, long))(var218
->class->vft
[COLOR_array__Array__with_native
]))(var218
, var220
, var219
) /* with_native on <var218:Array[Object]>*/;
7026 var221
= ((val
* (*)(val
*))(var218
->class->vft
[COLOR_string__Object__to_s
]))(var218
) /* to_s on <var218:Array[Object]>*/;
7027 ((void (*)(val
*, val
*))(var211
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var211
, var221
) /* add_decl on <var211:CodeWriter>*/;
7028 var222
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7030 var224
= varonce223
;
7034 var227
= string__NativeString__to_s_with_length(var225
, var226
);
7036 varonce223
= var224
;
7038 ((void (*)(val
*, val
*))(var222
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var222
, var224
) /* add_decl on <var222:CodeWriter>*/;
7041 var228
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
7042 if (var228
== NULL
) {
7043 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
7044 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 779);
7047 var229
= ((val
* (*)(val
*))(var228
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var228
) /* live_types on <var228:nullable RapidTypeAnalysis>*/;
7049 var230
= ((short int (*)(val
*, val
*))(var229
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var229
, var_mtype
) /* has on <var229:HashSet[MClassType]>*/;
7056 var233
= varonce232
;
7060 var236
= string__NativeString__to_s_with_length(var234
, var235
);
7062 varonce232
= var233
;
7064 var237
= NEW_array__Array(&type_array__Arraykernel__Object
);
7065 { /* var237 = array_instance Array[Object] */
7067 var239
= NEW_array__NativeArray(var238
, &type_array__NativeArraykernel__Object
);
7068 ((struct instance_array__NativeArray
*)var239
)->values
[0] = (val
*) var233
;
7069 ((struct instance_array__NativeArray
*)var239
)->values
[1] = (val
*) var_c_name
;
7070 ((void (*)(val
*, val
*, long))(var237
->class->vft
[COLOR_array__Array__with_native
]))(var237
, var239
, var238
) /* with_native on <var237:Array[Object]>*/;
7072 var240
= ((val
* (*)(val
*))(var237
->class->vft
[COLOR_string__Object__to_s
]))(var237
) /* to_s on <var237:Array[Object]>*/;
7074 var242
= varonce241
;
7076 var243
= "val* BOX_";
7078 var245
= string__NativeString__to_s_with_length(var243
, var244
);
7080 varonce241
= var242
;
7083 var247
= varonce246
;
7087 var250
= string__NativeString__to_s_with_length(var248
, var249
);
7089 varonce246
= var247
;
7091 var251
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7093 var253
= varonce252
;
7097 var256
= string__NativeString__to_s_with_length(var254
, var255
);
7099 varonce252
= var253
;
7101 var257
= NEW_array__Array(&type_array__Arraykernel__Object
);
7102 { /* var257 = array_instance Array[Object] */
7104 var259
= NEW_array__NativeArray(var258
, &type_array__NativeArraykernel__Object
);
7105 ((struct instance_array__NativeArray
*)var259
)->values
[0] = (val
*) var242
;
7106 ((struct instance_array__NativeArray
*)var259
)->values
[1] = (val
*) var_c_name
;
7107 ((struct instance_array__NativeArray
*)var259
)->values
[2] = (val
*) var247
;
7108 ((struct instance_array__NativeArray
*)var259
)->values
[3] = (val
*) var251
;
7109 ((struct instance_array__NativeArray
*)var259
)->values
[4] = (val
*) var253
;
7110 ((void (*)(val
*, val
*, long))(var257
->class->vft
[COLOR_array__Array__with_native
]))(var257
, var259
, var258
) /* with_native on <var257:Array[Object]>*/;
7112 var260
= ((val
* (*)(val
*))(var257
->class->vft
[COLOR_string__Object__to_s
]))(var257
) /* to_s on <var257:Array[Object]>*/;
7113 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var240
, var260
) /* provide_declaration on <self:SeparateCompiler>*/;
7115 var262
= varonce261
;
7117 var263
= "/* allocate ";
7119 var265
= string__NativeString__to_s_with_length(var263
, var264
);
7121 varonce261
= var262
;
7124 var267
= varonce266
;
7128 var270
= string__NativeString__to_s_with_length(var268
, var269
);
7130 varonce266
= var267
;
7132 var271
= NEW_array__Array(&type_array__Arraykernel__Object
);
7133 { /* var271 = array_instance Array[Object] */
7135 var273
= NEW_array__NativeArray(var272
, &type_array__NativeArraykernel__Object
);
7136 ((struct instance_array__NativeArray
*)var273
)->values
[0] = (val
*) var262
;
7137 ((struct instance_array__NativeArray
*)var273
)->values
[1] = (val
*) var_mtype
;
7138 ((struct instance_array__NativeArray
*)var273
)->values
[2] = (val
*) var267
;
7139 ((void (*)(val
*, val
*, long))(var271
->class->vft
[COLOR_array__Array__with_native
]))(var271
, var273
, var272
) /* with_native on <var271:Array[Object]>*/;
7141 var274
= ((val
* (*)(val
*))(var271
->class->vft
[COLOR_string__Object__to_s
]))(var271
) /* to_s on <var271:Array[Object]>*/;
7142 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var274
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7144 var276
= varonce275
;
7146 var277
= "val* BOX_";
7148 var279
= string__NativeString__to_s_with_length(var277
, var278
);
7150 varonce275
= var276
;
7152 var280
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
7154 var282
= varonce281
;
7158 var285
= string__NativeString__to_s_with_length(var283
, var284
);
7160 varonce281
= var282
;
7162 var286
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7164 var288
= varonce287
;
7166 var289
= " value) {";
7168 var291
= string__NativeString__to_s_with_length(var289
, var290
);
7170 varonce287
= var288
;
7172 var292
= NEW_array__Array(&type_array__Arraykernel__Object
);
7173 { /* var292 = array_instance Array[Object] */
7175 var294
= NEW_array__NativeArray(var293
, &type_array__NativeArraykernel__Object
);
7176 ((struct instance_array__NativeArray
*)var294
)->values
[0] = (val
*) var276
;
7177 ((struct instance_array__NativeArray
*)var294
)->values
[1] = (val
*) var280
;
7178 ((struct instance_array__NativeArray
*)var294
)->values
[2] = (val
*) var282
;
7179 ((struct instance_array__NativeArray
*)var294
)->values
[3] = (val
*) var286
;
7180 ((struct instance_array__NativeArray
*)var294
)->values
[4] = (val
*) var288
;
7181 ((void (*)(val
*, val
*, long))(var292
->class->vft
[COLOR_array__Array__with_native
]))(var292
, var294
, var293
) /* with_native on <var292:Array[Object]>*/;
7183 var295
= ((val
* (*)(val
*))(var292
->class->vft
[COLOR_string__Object__to_s
]))(var292
) /* to_s on <var292:Array[Object]>*/;
7184 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var295
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7186 var297
= varonce296
;
7188 var298
= "struct instance_";
7190 var300
= string__NativeString__to_s_with_length(var298
, var299
);
7192 varonce296
= var297
;
7195 var302
= varonce301
;
7197 var303
= "*res = nit_alloc(sizeof(struct instance_";
7199 var305
= string__NativeString__to_s_with_length(var303
, var304
);
7201 varonce301
= var302
;
7204 var307
= varonce306
;
7208 var310
= string__NativeString__to_s_with_length(var308
, var309
);
7210 varonce306
= var307
;
7212 var311
= NEW_array__Array(&type_array__Arraykernel__Object
);
7213 { /* var311 = array_instance Array[Object] */
7215 var313
= NEW_array__NativeArray(var312
, &type_array__NativeArraykernel__Object
);
7216 ((struct instance_array__NativeArray
*)var313
)->values
[0] = (val
*) var297
;
7217 ((struct instance_array__NativeArray
*)var313
)->values
[1] = (val
*) var_c_instance_name
;
7218 ((struct instance_array__NativeArray
*)var313
)->values
[2] = (val
*) var302
;
7219 ((struct instance_array__NativeArray
*)var313
)->values
[3] = (val
*) var_c_instance_name
;
7220 ((struct instance_array__NativeArray
*)var313
)->values
[4] = (val
*) var307
;
7221 ((void (*)(val
*, val
*, long))(var311
->class->vft
[COLOR_array__Array__with_native
]))(var311
, var313
, var312
) /* with_native on <var311:Array[Object]>*/;
7223 var314
= ((val
* (*)(val
*))(var311
->class->vft
[COLOR_string__Object__to_s
]))(var311
) /* to_s on <var311:Array[Object]>*/;
7224 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var314
) /* add on <var_v:SeparateCompilerVisitor>*/;
7226 var316
= varonce315
;
7230 var319
= string__NativeString__to_s_with_length(var317
, var318
);
7232 varonce315
= var316
;
7234 var320
= NEW_array__Array(&type_array__Arraykernel__Object
);
7235 { /* var320 = array_instance Array[Object] */
7237 var322
= NEW_array__NativeArray(var321
, &type_array__NativeArraykernel__Object
);
7238 ((struct instance_array__NativeArray
*)var322
)->values
[0] = (val
*) var316
;
7239 ((struct instance_array__NativeArray
*)var322
)->values
[1] = (val
*) var_c_name
;
7240 ((void (*)(val
*, val
*, long))(var320
->class->vft
[COLOR_array__Array__with_native
]))(var320
, var322
, var321
) /* with_native on <var320:Array[Object]>*/;
7242 var323
= ((val
* (*)(val
*))(var320
->class->vft
[COLOR_string__Object__to_s
]))(var320
) /* to_s on <var320:Array[Object]>*/;
7243 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var323
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
7245 var325
= varonce324
;
7247 var326
= "res->type = &type_";
7249 var328
= string__NativeString__to_s_with_length(var326
, var327
);
7251 varonce324
= var325
;
7254 var330
= varonce329
;
7258 var333
= string__NativeString__to_s_with_length(var331
, var332
);
7260 varonce329
= var330
;
7262 var334
= NEW_array__Array(&type_array__Arraykernel__Object
);
7263 { /* var334 = array_instance Array[Object] */
7265 var336
= NEW_array__NativeArray(var335
, &type_array__NativeArraykernel__Object
);
7266 ((struct instance_array__NativeArray
*)var336
)->values
[0] = (val
*) var325
;
7267 ((struct instance_array__NativeArray
*)var336
)->values
[1] = (val
*) var_c_name
;
7268 ((struct instance_array__NativeArray
*)var336
)->values
[2] = (val
*) var330
;
7269 ((void (*)(val
*, val
*, long))(var334
->class->vft
[COLOR_array__Array__with_native
]))(var334
, var336
, var335
) /* with_native on <var334:Array[Object]>*/;
7271 var337
= ((val
* (*)(val
*))(var334
->class->vft
[COLOR_string__Object__to_s
]))(var334
) /* to_s on <var334:Array[Object]>*/;
7272 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var337
) /* add on <var_v:SeparateCompilerVisitor>*/;
7274 var339
= varonce338
;
7278 var342
= string__NativeString__to_s_with_length(var340
, var341
);
7280 varonce338
= var339
;
7282 var343
= NEW_array__Array(&type_array__Arraykernel__Object
);
7283 { /* var343 = array_instance Array[Object] */
7285 var345
= NEW_array__NativeArray(var344
, &type_array__NativeArraykernel__Object
);
7286 ((struct instance_array__NativeArray
*)var345
)->values
[0] = (val
*) var339
;
7287 ((struct instance_array__NativeArray
*)var345
)->values
[1] = (val
*) var_c_name
;
7288 ((void (*)(val
*, val
*, long))(var343
->class->vft
[COLOR_array__Array__with_native
]))(var343
, var345
, var344
) /* with_native on <var343:Array[Object]>*/;
7290 var346
= ((val
* (*)(val
*))(var343
->class->vft
[COLOR_string__Object__to_s
]))(var343
) /* to_s on <var343:Array[Object]>*/;
7291 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var346
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
7293 var348
= varonce347
;
7295 var349
= "res->class = &class_";
7297 var351
= string__NativeString__to_s_with_length(var349
, var350
);
7299 varonce347
= var348
;
7302 var353
= varonce352
;
7306 var356
= string__NativeString__to_s_with_length(var354
, var355
);
7308 varonce352
= var353
;
7310 var357
= NEW_array__Array(&type_array__Arraykernel__Object
);
7311 { /* var357 = array_instance Array[Object] */
7313 var359
= NEW_array__NativeArray(var358
, &type_array__NativeArraykernel__Object
);
7314 ((struct instance_array__NativeArray
*)var359
)->values
[0] = (val
*) var348
;
7315 ((struct instance_array__NativeArray
*)var359
)->values
[1] = (val
*) var_c_name
;
7316 ((struct instance_array__NativeArray
*)var359
)->values
[2] = (val
*) var353
;
7317 ((void (*)(val
*, val
*, long))(var357
->class->vft
[COLOR_array__Array__with_native
]))(var357
, var359
, var358
) /* with_native on <var357:Array[Object]>*/;
7319 var360
= ((val
* (*)(val
*))(var357
->class->vft
[COLOR_string__Object__to_s
]))(var357
) /* to_s on <var357:Array[Object]>*/;
7320 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var360
) /* add on <var_v:SeparateCompilerVisitor>*/;
7322 var362
= varonce361
;
7324 var363
= "res->value = value;";
7326 var365
= string__NativeString__to_s_with_length(var363
, var364
);
7328 varonce361
= var362
;
7330 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var362
) /* add on <var_v:SeparateCompilerVisitor>*/;
7332 var367
= varonce366
;
7334 var368
= "return (val*)res;";
7336 var370
= string__NativeString__to_s_with_length(var368
, var369
);
7338 varonce366
= var367
;
7340 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var367
) /* add on <var_v:SeparateCompilerVisitor>*/;
7342 var372
= varonce371
;
7346 var375
= string__NativeString__to_s_with_length(var373
, var374
);
7348 varonce371
= var372
;
7350 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var372
) /* add on <var_v:SeparateCompilerVisitor>*/;
7353 var376
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__name
]))(var_mclass
) /* name on <var_mclass:MClass>*/;
7355 var378
= varonce377
;
7357 var379
= "NativeArray";
7359 var381
= string__NativeString__to_s_with_length(var379
, var380
);
7361 varonce377
= var378
;
7363 var382
= ((short int (*)(val
*, val
*))(var376
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var376
, var378
) /* == on <var376:String>*/;
7365 var383
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7367 var385
= varonce384
;
7369 var386
= "struct instance_";
7371 var388
= string__NativeString__to_s_with_length(var386
, var387
);
7373 varonce384
= var385
;
7376 var390
= varonce389
;
7380 var393
= string__NativeString__to_s_with_length(var391
, var392
);
7382 varonce389
= var390
;
7384 var394
= NEW_array__Array(&type_array__Arraykernel__Object
);
7385 { /* var394 = array_instance Array[Object] */
7387 var396
= NEW_array__NativeArray(var395
, &type_array__NativeArraykernel__Object
);
7388 ((struct instance_array__NativeArray
*)var396
)->values
[0] = (val
*) var385
;
7389 ((struct instance_array__NativeArray
*)var396
)->values
[1] = (val
*) var_c_instance_name
;
7390 ((struct instance_array__NativeArray
*)var396
)->values
[2] = (val
*) var390
;
7391 ((void (*)(val
*, val
*, long))(var394
->class->vft
[COLOR_array__Array__with_native
]))(var394
, var396
, var395
) /* with_native on <var394:Array[Object]>*/;
7393 var397
= ((val
* (*)(val
*))(var394
->class->vft
[COLOR_string__Object__to_s
]))(var394
) /* to_s on <var394:Array[Object]>*/;
7394 ((void (*)(val
*, val
*))(var383
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var383
, var397
) /* add_decl on <var383:CodeWriter>*/;
7395 var398
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7397 var400
= varonce399
;
7399 var401
= "const struct type *type;";
7401 var403
= string__NativeString__to_s_with_length(var401
, var402
);
7403 varonce399
= var400
;
7405 ((void (*)(val
*, val
*))(var398
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var398
, var400
) /* add_decl on <var398:CodeWriter>*/;
7406 var404
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7408 var406
= varonce405
;
7410 var407
= "const struct class *class;";
7412 var409
= string__NativeString__to_s_with_length(var407
, var408
);
7414 varonce405
= var406
;
7416 ((void (*)(val
*, val
*))(var404
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var404
, var406
) /* add_decl on <var404:CodeWriter>*/;
7417 var410
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7419 var412
= varonce411
;
7421 var413
= "val* values[0];";
7423 var415
= string__NativeString__to_s_with_length(var413
, var414
);
7425 varonce411
= var412
;
7427 ((void (*)(val
*, val
*))(var410
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var410
, var412
) /* add_decl on <var410:CodeWriter>*/;
7428 var416
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7430 var418
= varonce417
;
7434 var421
= string__NativeString__to_s_with_length(var419
, var420
);
7436 varonce417
= var418
;
7438 ((void (*)(val
*, val
*))(var416
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var416
, var418
) /* add_decl on <var416:CodeWriter>*/;
7440 var423
= varonce422
;
7444 var426
= string__NativeString__to_s_with_length(var424
, var425
);
7446 varonce422
= var423
;
7448 var427
= NEW_array__Array(&type_array__Arraykernel__Object
);
7449 { /* var427 = array_instance Array[Object] */
7451 var429
= NEW_array__NativeArray(var428
, &type_array__NativeArraykernel__Object
);
7452 ((struct instance_array__NativeArray
*)var429
)->values
[0] = (val
*) var423
;
7453 ((struct instance_array__NativeArray
*)var429
)->values
[1] = (val
*) var_c_name
;
7454 ((void (*)(val
*, val
*, long))(var427
->class->vft
[COLOR_array__Array__with_native
]))(var427
, var429
, var428
) /* with_native on <var427:Array[Object]>*/;
7456 var430
= ((val
* (*)(val
*))(var427
->class->vft
[COLOR_string__Object__to_s
]))(var427
) /* to_s on <var427:Array[Object]>*/;
7457 var431
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7459 var433
= varonce432
;
7463 var436
= string__NativeString__to_s_with_length(var434
, var435
);
7465 varonce432
= var433
;
7468 var438
= varonce437
;
7470 var439
= "(int length, const struct type* type);";
7472 var441
= string__NativeString__to_s_with_length(var439
, var440
);
7474 varonce437
= var438
;
7476 var442
= NEW_array__Array(&type_array__Arraykernel__Object
);
7477 { /* var442 = array_instance Array[Object] */
7479 var444
= NEW_array__NativeArray(var443
, &type_array__NativeArraykernel__Object
);
7480 ((struct instance_array__NativeArray
*)var444
)->values
[0] = (val
*) var431
;
7481 ((struct instance_array__NativeArray
*)var444
)->values
[1] = (val
*) var433
;
7482 ((struct instance_array__NativeArray
*)var444
)->values
[2] = (val
*) var_c_name
;
7483 ((struct instance_array__NativeArray
*)var444
)->values
[3] = (val
*) var438
;
7484 ((void (*)(val
*, val
*, long))(var442
->class->vft
[COLOR_array__Array__with_native
]))(var442
, var444
, var443
) /* with_native on <var442:Array[Object]>*/;
7486 var445
= ((val
* (*)(val
*))(var442
->class->vft
[COLOR_string__Object__to_s
]))(var442
) /* to_s on <var442:Array[Object]>*/;
7487 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var430
, var445
) /* provide_declaration on <self:SeparateCompiler>*/;
7489 var447
= varonce446
;
7491 var448
= "/* allocate ";
7493 var450
= string__NativeString__to_s_with_length(var448
, var449
);
7495 varonce446
= var447
;
7498 var452
= varonce451
;
7502 var455
= string__NativeString__to_s_with_length(var453
, var454
);
7504 varonce451
= var452
;
7506 var456
= NEW_array__Array(&type_array__Arraykernel__Object
);
7507 { /* var456 = array_instance Array[Object] */
7509 var458
= NEW_array__NativeArray(var457
, &type_array__NativeArraykernel__Object
);
7510 ((struct instance_array__NativeArray
*)var458
)->values
[0] = (val
*) var447
;
7511 ((struct instance_array__NativeArray
*)var458
)->values
[1] = (val
*) var_mtype
;
7512 ((struct instance_array__NativeArray
*)var458
)->values
[2] = (val
*) var452
;
7513 ((void (*)(val
*, val
*, long))(var456
->class->vft
[COLOR_array__Array__with_native
]))(var456
, var458
, var457
) /* with_native on <var456:Array[Object]>*/;
7515 var459
= ((val
* (*)(val
*))(var456
->class->vft
[COLOR_string__Object__to_s
]))(var456
) /* to_s on <var456:Array[Object]>*/;
7516 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var459
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7517 var460
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7519 var462
= varonce461
;
7523 var465
= string__NativeString__to_s_with_length(var463
, var464
);
7525 varonce461
= var462
;
7528 var467
= varonce466
;
7530 var468
= "(int length, const struct type* type) {";
7532 var470
= string__NativeString__to_s_with_length(var468
, var469
);
7534 varonce466
= var467
;
7536 var471
= NEW_array__Array(&type_array__Arraykernel__Object
);
7537 { /* var471 = array_instance Array[Object] */
7539 var473
= NEW_array__NativeArray(var472
, &type_array__NativeArraykernel__Object
);
7540 ((struct instance_array__NativeArray
*)var473
)->values
[0] = (val
*) var460
;
7541 ((struct instance_array__NativeArray
*)var473
)->values
[1] = (val
*) var462
;
7542 ((struct instance_array__NativeArray
*)var473
)->values
[2] = (val
*) var_c_name
;
7543 ((struct instance_array__NativeArray
*)var473
)->values
[3] = (val
*) var467
;
7544 ((void (*)(val
*, val
*, long))(var471
->class->vft
[COLOR_array__Array__with_native
]))(var471
, var473
, var472
) /* with_native on <var471:Array[Object]>*/;
7546 var474
= ((val
* (*)(val
*))(var471
->class->vft
[COLOR_string__Object__to_s
]))(var471
) /* to_s on <var471:Array[Object]>*/;
7547 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var474
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7549 var476
= varonce475
;
7553 var479
= string__NativeString__to_s_with_length(var477
, var478
);
7555 varonce475
= var476
;
7557 var480
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_named_var
]))(var_v
, var_mtype
, var476
) /* new_named_var on <var_v:SeparateCompilerVisitor>*/;
7560 ((void (*)(val
*, short int))(var_res
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res
, var481
) /* is_exact= on <var_res:RuntimeVariable>*/;
7561 var482
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
7562 var483
= ((val
* (*)(val
*))(var482
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var482
) /* first on <var482:Array[MType]>*/;
7563 var_mtype_elt
= var483
;
7565 var485
= varonce484
;
7567 var486
= " = nit_alloc(sizeof(struct instance_";
7569 var488
= string__NativeString__to_s_with_length(var486
, var487
);
7571 varonce484
= var485
;
7574 var490
= varonce489
;
7576 var491
= ") + length*sizeof(";
7578 var493
= string__NativeString__to_s_with_length(var491
, var492
);
7580 varonce489
= var490
;
7582 var494
= ((val
* (*)(val
*))(var_mtype_elt
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype_elt
) /* ctype on <var_mtype_elt:MType>*/;
7584 var496
= varonce495
;
7588 var499
= string__NativeString__to_s_with_length(var497
, var498
);
7590 varonce495
= var496
;
7592 var500
= NEW_array__Array(&type_array__Arraykernel__Object
);
7593 { /* var500 = array_instance Array[Object] */
7595 var502
= NEW_array__NativeArray(var501
, &type_array__NativeArraykernel__Object
);
7596 ((struct instance_array__NativeArray
*)var502
)->values
[0] = (val
*) var_res
;
7597 ((struct instance_array__NativeArray
*)var502
)->values
[1] = (val
*) var485
;
7598 ((struct instance_array__NativeArray
*)var502
)->values
[2] = (val
*) var_c_instance_name
;
7599 ((struct instance_array__NativeArray
*)var502
)->values
[3] = (val
*) var490
;
7600 ((struct instance_array__NativeArray
*)var502
)->values
[4] = (val
*) var494
;
7601 ((struct instance_array__NativeArray
*)var502
)->values
[5] = (val
*) var496
;
7602 ((void (*)(val
*, val
*, long))(var500
->class->vft
[COLOR_array__Array__with_native
]))(var500
, var502
, var501
) /* with_native on <var500:Array[Object]>*/;
7604 var503
= ((val
* (*)(val
*))(var500
->class->vft
[COLOR_string__Object__to_s
]))(var500
) /* to_s on <var500:Array[Object]>*/;
7605 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var503
) /* add on <var_v:SeparateCompilerVisitor>*/;
7607 var505
= varonce504
;
7609 var506
= "->type = type;";
7611 var508
= string__NativeString__to_s_with_length(var506
, var507
);
7613 varonce504
= var505
;
7615 var509
= NEW_array__Array(&type_array__Arraykernel__Object
);
7616 { /* var509 = array_instance Array[Object] */
7618 var511
= NEW_array__NativeArray(var510
, &type_array__NativeArraykernel__Object
);
7619 ((struct instance_array__NativeArray
*)var511
)->values
[0] = (val
*) var_res
;
7620 ((struct instance_array__NativeArray
*)var511
)->values
[1] = (val
*) var505
;
7621 ((void (*)(val
*, val
*, long))(var509
->class->vft
[COLOR_array__Array__with_native
]))(var509
, var511
, var510
) /* with_native on <var509:Array[Object]>*/;
7623 var512
= ((val
* (*)(val
*))(var509
->class->vft
[COLOR_string__Object__to_s
]))(var509
) /* to_s on <var509:Array[Object]>*/;
7624 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var512
) /* add on <var_v:SeparateCompilerVisitor>*/;
7626 var514
= varonce513
;
7630 var517
= string__NativeString__to_s_with_length(var515
, var516
);
7632 varonce513
= var514
;
7634 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__hardening_live_type
]))(self
, var_v
, var514
) /* hardening_live_type on <self:SeparateCompiler>*/;
7636 var519
= varonce518
;
7640 var522
= string__NativeString__to_s_with_length(var520
, var521
);
7642 varonce518
= var519
;
7644 var523
= NEW_array__Array(&type_array__Arraykernel__Object
);
7645 { /* var523 = array_instance Array[Object] */
7647 var525
= NEW_array__NativeArray(var524
, &type_array__NativeArraykernel__Object
);
7648 ((struct instance_array__NativeArray
*)var525
)->values
[0] = (val
*) var519
;
7649 ((struct instance_array__NativeArray
*)var525
)->values
[1] = (val
*) var_c_name
;
7650 ((void (*)(val
*, val
*, long))(var523
->class->vft
[COLOR_array__Array__with_native
]))(var523
, var525
, var524
) /* with_native on <var523:Array[Object]>*/;
7652 var526
= ((val
* (*)(val
*))(var523
->class->vft
[COLOR_string__Object__to_s
]))(var523
) /* to_s on <var523:Array[Object]>*/;
7653 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var526
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
7655 var528
= varonce527
;
7657 var529
= "->class = &class_";
7659 var531
= string__NativeString__to_s_with_length(var529
, var530
);
7661 varonce527
= var528
;
7664 var533
= varonce532
;
7668 var536
= string__NativeString__to_s_with_length(var534
, var535
);
7670 varonce532
= var533
;
7672 var537
= NEW_array__Array(&type_array__Arraykernel__Object
);
7673 { /* var537 = array_instance Array[Object] */
7675 var539
= NEW_array__NativeArray(var538
, &type_array__NativeArraykernel__Object
);
7676 ((struct instance_array__NativeArray
*)var539
)->values
[0] = (val
*) var_res
;
7677 ((struct instance_array__NativeArray
*)var539
)->values
[1] = (val
*) var528
;
7678 ((struct instance_array__NativeArray
*)var539
)->values
[2] = (val
*) var_c_name
;
7679 ((struct instance_array__NativeArray
*)var539
)->values
[3] = (val
*) var533
;
7680 ((void (*)(val
*, val
*, long))(var537
->class->vft
[COLOR_array__Array__with_native
]))(var537
, var539
, var538
) /* with_native on <var537:Array[Object]>*/;
7682 var540
= ((val
* (*)(val
*))(var537
->class->vft
[COLOR_string__Object__to_s
]))(var537
) /* to_s on <var537:Array[Object]>*/;
7683 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var540
) /* add on <var_v:SeparateCompilerVisitor>*/;
7685 var542
= varonce541
;
7689 var545
= string__NativeString__to_s_with_length(var543
, var544
);
7691 varonce541
= var542
;
7694 var547
= varonce546
;
7698 var550
= string__NativeString__to_s_with_length(var548
, var549
);
7700 varonce546
= var547
;
7702 var551
= NEW_array__Array(&type_array__Arraykernel__Object
);
7703 { /* var551 = array_instance Array[Object] */
7705 var553
= NEW_array__NativeArray(var552
, &type_array__NativeArraykernel__Object
);
7706 ((struct instance_array__NativeArray
*)var553
)->values
[0] = (val
*) var542
;
7707 ((struct instance_array__NativeArray
*)var553
)->values
[1] = (val
*) var_res
;
7708 ((struct instance_array__NativeArray
*)var553
)->values
[2] = (val
*) var547
;
7709 ((void (*)(val
*, val
*, long))(var551
->class->vft
[COLOR_array__Array__with_native
]))(var551
, var553
, var552
) /* with_native on <var551:Array[Object]>*/;
7711 var554
= ((val
* (*)(val
*))(var551
->class->vft
[COLOR_string__Object__to_s
]))(var551
) /* to_s on <var551:Array[Object]>*/;
7712 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var554
) /* add on <var_v:SeparateCompilerVisitor>*/;
7714 var556
= varonce555
;
7718 var559
= string__NativeString__to_s_with_length(var557
, var558
);
7720 varonce555
= var556
;
7722 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var556
) /* add on <var_v:SeparateCompilerVisitor>*/;
7728 var561
= varonce560
;
7732 var564
= string__NativeString__to_s_with_length(var562
, var563
);
7734 varonce560
= var561
;
7736 var565
= NEW_array__Array(&type_array__Arraykernel__Object
);
7737 { /* var565 = array_instance Array[Object] */
7739 var567
= NEW_array__NativeArray(var566
, &type_array__NativeArraykernel__Object
);
7740 ((struct instance_array__NativeArray
*)var567
)->values
[0] = (val
*) var561
;
7741 ((struct instance_array__NativeArray
*)var567
)->values
[1] = (val
*) var_c_name
;
7742 ((void (*)(val
*, val
*, long))(var565
->class->vft
[COLOR_array__Array__with_native
]))(var565
, var567
, var566
) /* with_native on <var565:Array[Object]>*/;
7744 var568
= ((val
* (*)(val
*))(var565
->class->vft
[COLOR_string__Object__to_s
]))(var565
) /* to_s on <var565:Array[Object]>*/;
7745 var569
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7747 var571
= varonce570
;
7751 var574
= string__NativeString__to_s_with_length(var572
, var573
);
7753 varonce570
= var571
;
7756 var576
= varonce575
;
7758 var577
= "(const struct type* type);";
7760 var579
= string__NativeString__to_s_with_length(var577
, var578
);
7762 varonce575
= var576
;
7764 var580
= NEW_array__Array(&type_array__Arraykernel__Object
);
7765 { /* var580 = array_instance Array[Object] */
7767 var582
= NEW_array__NativeArray(var581
, &type_array__NativeArraykernel__Object
);
7768 ((struct instance_array__NativeArray
*)var582
)->values
[0] = (val
*) var569
;
7769 ((struct instance_array__NativeArray
*)var582
)->values
[1] = (val
*) var571
;
7770 ((struct instance_array__NativeArray
*)var582
)->values
[2] = (val
*) var_c_name
;
7771 ((struct instance_array__NativeArray
*)var582
)->values
[3] = (val
*) var576
;
7772 ((void (*)(val
*, val
*, long))(var580
->class->vft
[COLOR_array__Array__with_native
]))(var580
, var582
, var581
) /* with_native on <var580:Array[Object]>*/;
7774 var583
= ((val
* (*)(val
*))(var580
->class->vft
[COLOR_string__Object__to_s
]))(var580
) /* to_s on <var580:Array[Object]>*/;
7775 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var568
, var583
) /* provide_declaration on <self:SeparateCompiler>*/;
7777 var585
= varonce584
;
7779 var586
= "/* allocate ";
7781 var588
= string__NativeString__to_s_with_length(var586
, var587
);
7783 varonce584
= var585
;
7786 var590
= varonce589
;
7790 var593
= string__NativeString__to_s_with_length(var591
, var592
);
7792 varonce589
= var590
;
7794 var594
= NEW_array__Array(&type_array__Arraykernel__Object
);
7795 { /* var594 = array_instance Array[Object] */
7797 var596
= NEW_array__NativeArray(var595
, &type_array__NativeArraykernel__Object
);
7798 ((struct instance_array__NativeArray
*)var596
)->values
[0] = (val
*) var585
;
7799 ((struct instance_array__NativeArray
*)var596
)->values
[1] = (val
*) var_mtype
;
7800 ((struct instance_array__NativeArray
*)var596
)->values
[2] = (val
*) var590
;
7801 ((void (*)(val
*, val
*, long))(var594
->class->vft
[COLOR_array__Array__with_native
]))(var594
, var596
, var595
) /* with_native on <var594:Array[Object]>*/;
7803 var597
= ((val
* (*)(val
*))(var594
->class->vft
[COLOR_string__Object__to_s
]))(var594
) /* to_s on <var594:Array[Object]>*/;
7804 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var597
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7805 var598
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7807 var600
= varonce599
;
7811 var603
= string__NativeString__to_s_with_length(var601
, var602
);
7813 varonce599
= var600
;
7816 var605
= varonce604
;
7818 var606
= "(const struct type* type) {";
7820 var608
= string__NativeString__to_s_with_length(var606
, var607
);
7822 varonce604
= var605
;
7824 var609
= NEW_array__Array(&type_array__Arraykernel__Object
);
7825 { /* var609 = array_instance Array[Object] */
7827 var611
= NEW_array__NativeArray(var610
, &type_array__NativeArraykernel__Object
);
7828 ((struct instance_array__NativeArray
*)var611
)->values
[0] = (val
*) var598
;
7829 ((struct instance_array__NativeArray
*)var611
)->values
[1] = (val
*) var600
;
7830 ((struct instance_array__NativeArray
*)var611
)->values
[2] = (val
*) var_c_name
;
7831 ((struct instance_array__NativeArray
*)var611
)->values
[3] = (val
*) var605
;
7832 ((void (*)(val
*, val
*, long))(var609
->class->vft
[COLOR_array__Array__with_native
]))(var609
, var611
, var610
) /* with_native on <var609:Array[Object]>*/;
7834 var612
= ((val
* (*)(val
*))(var609
->class->vft
[COLOR_string__Object__to_s
]))(var609
) /* to_s on <var609:Array[Object]>*/;
7835 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var612
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7838 var614
= varonce613
;
7840 var615
= " is DEAD";
7842 var617
= string__NativeString__to_s_with_length(var615
, var616
);
7844 varonce613
= var614
;
7846 var618
= NEW_array__Array(&type_array__Arraykernel__Object
);
7847 { /* var618 = array_instance Array[Object] */
7849 var620
= NEW_array__NativeArray(var619
, &type_array__NativeArraykernel__Object
);
7850 ((struct instance_array__NativeArray
*)var620
)->values
[0] = (val
*) var_mclass
;
7851 ((struct instance_array__NativeArray
*)var620
)->values
[1] = (val
*) var614
;
7852 ((void (*)(val
*, val
*, long))(var618
->class->vft
[COLOR_array__Array__with_native
]))(var618
, var620
, var619
) /* with_native on <var618:Array[Object]>*/;
7854 var621
= ((val
* (*)(val
*))(var618
->class->vft
[COLOR_string__Object__to_s
]))(var618
) /* to_s on <var618:Array[Object]>*/;
7855 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(var_v
, var621
) /* add_abort on <var_v:SeparateCompilerVisitor>*/;
7858 var623
= varonce622
;
7862 var626
= string__NativeString__to_s_with_length(var624
, var625
);
7864 varonce622
= var623
;
7866 var627
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_named_var
]))(var_v
, var_mtype
, var623
) /* new_named_var on <var_v:SeparateCompilerVisitor>*/;
7867 var_res628
= var627
;
7869 ((void (*)(val
*, short int))(var_res628
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res628
, var629
) /* is_exact= on <var_res628:RuntimeVariable>*/;
7871 var631
= varonce630
;
7873 var632
= " = nit_alloc(sizeof(struct instance) + ";
7875 var634
= string__NativeString__to_s_with_length(var632
, var633
);
7877 varonce630
= var631
;
7879 var635
= ((long (*)(val
*))(var_attrs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_attrs
) /* length on <var_attrs:Array[nullable MPropDef]>*/;
7881 var637
= varonce636
;
7883 var638
= "*sizeof(nitattribute_t));";
7885 var640
= string__NativeString__to_s_with_length(var638
, var639
);
7887 varonce636
= var637
;
7889 var641
= NEW_array__Array(&type_array__Arraykernel__Object
);
7890 { /* var641 = array_instance Array[Object] */
7892 var643
= NEW_array__NativeArray(var642
, &type_array__NativeArraykernel__Object
);
7893 ((struct instance_array__NativeArray
*)var643
)->values
[0] = (val
*) var_res628
;
7894 ((struct instance_array__NativeArray
*)var643
)->values
[1] = (val
*) var631
;
7895 var644
= BOX_kernel__Int(var635
); /* autobox from Int to Object */
7896 ((struct instance_array__NativeArray
*)var643
)->values
[2] = (val
*) var644
;
7897 ((struct instance_array__NativeArray
*)var643
)->values
[3] = (val
*) var637
;
7898 ((void (*)(val
*, val
*, long))(var641
->class->vft
[COLOR_array__Array__with_native
]))(var641
, var643
, var642
) /* with_native on <var641:Array[Object]>*/;
7900 var645
= ((val
* (*)(val
*))(var641
->class->vft
[COLOR_string__Object__to_s
]))(var641
) /* to_s on <var641:Array[Object]>*/;
7901 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var645
) /* add on <var_v:SeparateCompilerVisitor>*/;
7903 var647
= varonce646
;
7905 var648
= "->type = type;";
7907 var650
= string__NativeString__to_s_with_length(var648
, var649
);
7909 varonce646
= var647
;
7911 var651
= NEW_array__Array(&type_array__Arraykernel__Object
);
7912 { /* var651 = array_instance Array[Object] */
7914 var653
= NEW_array__NativeArray(var652
, &type_array__NativeArraykernel__Object
);
7915 ((struct instance_array__NativeArray
*)var653
)->values
[0] = (val
*) var_res628
;
7916 ((struct instance_array__NativeArray
*)var653
)->values
[1] = (val
*) var647
;
7917 ((void (*)(val
*, val
*, long))(var651
->class->vft
[COLOR_array__Array__with_native
]))(var651
, var653
, var652
) /* with_native on <var651:Array[Object]>*/;
7919 var654
= ((val
* (*)(val
*))(var651
->class->vft
[COLOR_string__Object__to_s
]))(var651
) /* to_s on <var651:Array[Object]>*/;
7920 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var654
) /* add on <var_v:SeparateCompilerVisitor>*/;
7922 var656
= varonce655
;
7926 var659
= string__NativeString__to_s_with_length(var657
, var658
);
7928 varonce655
= var656
;
7930 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__hardening_live_type
]))(self
, var_v
, var656
) /* hardening_live_type on <self:SeparateCompiler>*/;
7932 var661
= varonce660
;
7936 var664
= string__NativeString__to_s_with_length(var662
, var663
);
7938 varonce660
= var661
;
7940 var665
= NEW_array__Array(&type_array__Arraykernel__Object
);
7941 { /* var665 = array_instance Array[Object] */
7943 var667
= NEW_array__NativeArray(var666
, &type_array__NativeArraykernel__Object
);
7944 ((struct instance_array__NativeArray
*)var667
)->values
[0] = (val
*) var661
;
7945 ((struct instance_array__NativeArray
*)var667
)->values
[1] = (val
*) var_c_name
;
7946 ((void (*)(val
*, val
*, long))(var665
->class->vft
[COLOR_array__Array__with_native
]))(var665
, var667
, var666
) /* with_native on <var665:Array[Object]>*/;
7948 var668
= ((val
* (*)(val
*))(var665
->class->vft
[COLOR_string__Object__to_s
]))(var665
) /* to_s on <var665:Array[Object]>*/;
7949 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var668
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
7951 var670
= varonce669
;
7953 var671
= "->class = &class_";
7955 var673
= string__NativeString__to_s_with_length(var671
, var672
);
7957 varonce669
= var670
;
7960 var675
= varonce674
;
7964 var678
= string__NativeString__to_s_with_length(var676
, var677
);
7966 varonce674
= var675
;
7968 var679
= NEW_array__Array(&type_array__Arraykernel__Object
);
7969 { /* var679 = array_instance Array[Object] */
7971 var681
= NEW_array__NativeArray(var680
, &type_array__NativeArraykernel__Object
);
7972 ((struct instance_array__NativeArray
*)var681
)->values
[0] = (val
*) var_res628
;
7973 ((struct instance_array__NativeArray
*)var681
)->values
[1] = (val
*) var670
;
7974 ((struct instance_array__NativeArray
*)var681
)->values
[2] = (val
*) var_c_name
;
7975 ((struct instance_array__NativeArray
*)var681
)->values
[3] = (val
*) var675
;
7976 ((void (*)(val
*, val
*, long))(var679
->class->vft
[COLOR_array__Array__with_native
]))(var679
, var681
, var680
) /* with_native on <var679:Array[Object]>*/;
7978 var682
= ((val
* (*)(val
*))(var679
->class->vft
[COLOR_string__Object__to_s
]))(var679
) /* to_s on <var679:Array[Object]>*/;
7979 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var682
) /* add on <var_v:SeparateCompilerVisitor>*/;
7980 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__generate_init_attr
]))(self
, var_v
, var_res628
, var_mtype
) /* generate_init_attr on <self:SeparateCompiler>*/;
7982 var684
= varonce683
;
7986 var687
= string__NativeString__to_s_with_length(var685
, var686
);
7988 varonce683
= var684
;
7991 var689
= varonce688
;
7995 var692
= string__NativeString__to_s_with_length(var690
, var691
);
7997 varonce688
= var689
;
7999 var693
= NEW_array__Array(&type_array__Arraykernel__Object
);
8000 { /* var693 = array_instance Array[Object] */
8002 var695
= NEW_array__NativeArray(var694
, &type_array__NativeArraykernel__Object
);
8003 ((struct instance_array__NativeArray
*)var695
)->values
[0] = (val
*) var684
;
8004 ((struct instance_array__NativeArray
*)var695
)->values
[1] = (val
*) var_res628
;
8005 ((struct instance_array__NativeArray
*)var695
)->values
[2] = (val
*) var689
;
8006 ((void (*)(val
*, val
*, long))(var693
->class->vft
[COLOR_array__Array__with_native
]))(var693
, var695
, var694
) /* with_native on <var693:Array[Object]>*/;
8008 var696
= ((val
* (*)(val
*))(var693
->class->vft
[COLOR_string__Object__to_s
]))(var693
) /* to_s on <var693:Array[Object]>*/;
8009 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var696
) /* add on <var_v:SeparateCompilerVisitor>*/;
8012 var698
= varonce697
;
8016 var701
= string__NativeString__to_s_with_length(var699
, var700
);
8018 varonce697
= var698
;
8020 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var698
) /* add on <var_v:SeparateCompilerVisitor>*/;
8023 /* method separate_compiler#SeparateCompiler#compile_class_to_c for (self: Object, MClass) */
8024 void VIRTUAL_separate_compiler__SeparateCompiler__compile_class_to_c(val
* self
, val
* p0
) {
8025 separate_compiler__SeparateCompiler__compile_class_to_c(self
, p0
);
8028 /* method separate_compiler#SeparateCompiler#hardening_live_type for (self: SeparateCompiler, SeparateCompilerVisitor, String) */
8029 void separate_compiler__SeparateCompiler__hardening_live_type(val
* self
, val
* p0
, val
* p1
) {
8030 short int var
/* : Bool */;
8033 const struct type
* type_struct
;
8034 const char* var_class_name
;
8035 val
* var_v
/* var v: SeparateCompilerVisitor */;
8036 val
* var_t
/* var t: String */;
8037 val
* var1
/* : AbstractCompiler */;
8038 val
* var2
/* : ModelBuilder */;
8039 val
* var3
/* : ToolContext */;
8040 val
* var4
/* : OptionBool */;
8041 val
* var5
/* : nullable Object */;
8042 short int var6
/* : Bool */;
8043 short int var7
/* : Bool */;
8044 static val
* varonce
;
8045 val
* var8
/* : String */;
8046 char* var9
/* : NativeString */;
8047 long var10
/* : Int */;
8048 val
* var11
/* : String */;
8049 static val
* varonce12
;
8050 val
* var13
/* : String */;
8051 char* var14
/* : NativeString */;
8052 long var15
/* : Int */;
8053 val
* var16
/* : String */;
8054 val
* var17
/* : Array[Object] */;
8055 long var18
/* : Int */;
8056 val
* var19
/* : NativeArray[Object] */;
8057 val
* var20
/* : String */;
8058 static val
* varonce21
;
8059 val
* var22
/* : String */;
8060 char* var23
/* : NativeString */;
8061 long var24
/* : Int */;
8062 val
* var25
/* : String */;
8063 static val
* varonce26
;
8064 val
* var27
/* : String */;
8065 char* var28
/* : NativeString */;
8066 long var29
/* : Int */;
8067 val
* var30
/* : String */;
8068 static val
* varonce31
;
8069 val
* var32
/* : String */;
8070 char* var33
/* : NativeString */;
8071 long var34
/* : Int */;
8072 val
* var35
/* : String */;
8073 static val
* varonce36
;
8074 val
* var37
/* : String */;
8075 char* var38
/* : NativeString */;
8076 long var39
/* : Int */;
8077 val
* var40
/* : String */;
8078 val
* var41
/* : Array[Object] */;
8079 long var42
/* : Int */;
8080 val
* var43
/* : NativeArray[Object] */;
8081 val
* var44
/* : String */;
8082 static val
* varonce45
;
8083 val
* var46
/* : String */;
8084 char* var47
/* : NativeString */;
8085 long var48
/* : Int */;
8086 val
* var49
/* : String */;
8087 static val
* varonce50
;
8088 val
* var51
/* : String */;
8089 char* var52
/* : NativeString */;
8090 long var53
/* : Int */;
8091 val
* var54
/* : String */;
8092 val
* var55
/* : Array[Object] */;
8093 long var56
/* : Int */;
8094 val
* var57
/* : NativeArray[Object] */;
8095 val
* var58
/* : String */;
8096 static val
* varonce59
;
8097 val
* var60
/* : String */;
8098 char* var61
/* : NativeString */;
8099 long var62
/* : Int */;
8100 val
* var63
/* : String */;
8101 static val
* varonce64
;
8102 val
* var65
/* : String */;
8103 char* var66
/* : NativeString */;
8104 long var67
/* : Int */;
8105 val
* var68
/* : String */;
8106 /* Covariant cast for argument 0 (v) <p0:SeparateCompilerVisitor> isa VISITOR */
8107 /* <p0:SeparateCompilerVisitor> isa VISITOR */
8108 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
8109 cltype
= type_struct
->color
;
8110 idtype
= type_struct
->id
;
8111 if(cltype
>= p0
->type
->table_size
) {
8114 var
= p0
->type
->type_table
[cltype
] == idtype
;
8117 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
8118 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
8119 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 840);
8124 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:SeparateCompilerVisitor>*/;
8125 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var1
) /* modelbuilder on <var1:AbstractCompiler(SeparateCompiler)>*/;
8126 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var2
) /* toolcontext on <var2:ModelBuilder>*/;
8127 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_hardening
]))(var3
) /* opt_hardening on <var3:ToolContext>*/;
8128 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_opts__Option__value
]))(var4
) /* value on <var4:OptionBool>*/;
8129 var6
= ((struct instance_kernel__Bool
*)var5
)->value
; /* autounbox from nullable Object to Bool */;
8140 var11
= string__NativeString__to_s_with_length(var9
, var10
);
8147 var14
= " == NULL) {";
8149 var16
= string__NativeString__to_s_with_length(var14
, var15
);
8153 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
8154 { /* var17 = array_instance Array[Object] */
8156 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
8157 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var8
;
8158 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var_t
;
8159 ((struct instance_array__NativeArray
*)var19
)->values
[2] = (val
*) var13
;
8160 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
8162 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
8163 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var20
) /* add on <var_v:SeparateCompilerVisitor>*/;
8167 var23
= "type null";
8169 var25
= string__NativeString__to_s_with_length(var23
, var24
);
8173 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(var_v
, var22
) /* add_abort on <var_v:SeparateCompilerVisitor>*/;
8179 var30
= string__NativeString__to_s_with_length(var28
, var29
);
8183 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var27
) /* add on <var_v:SeparateCompilerVisitor>*/;
8189 var35
= string__NativeString__to_s_with_length(var33
, var34
);
8196 var38
= "->table_size == 0) {";
8198 var40
= string__NativeString__to_s_with_length(var38
, var39
);
8202 var41
= NEW_array__Array(&type_array__Arraykernel__Object
);
8203 { /* var41 = array_instance Array[Object] */
8205 var43
= NEW_array__NativeArray(var42
, &type_array__NativeArraykernel__Object
);
8206 ((struct instance_array__NativeArray
*)var43
)->values
[0] = (val
*) var32
;
8207 ((struct instance_array__NativeArray
*)var43
)->values
[1] = (val
*) var_t
;
8208 ((struct instance_array__NativeArray
*)var43
)->values
[2] = (val
*) var37
;
8209 ((void (*)(val
*, val
*, long))(var41
->class->vft
[COLOR_array__Array__with_native
]))(var41
, var43
, var42
) /* with_native on <var41:Array[Object]>*/;
8211 var44
= ((val
* (*)(val
*))(var41
->class->vft
[COLOR_string__Object__to_s
]))(var41
) /* to_s on <var41:Array[Object]>*/;
8212 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var44
) /* add on <var_v:SeparateCompilerVisitor>*/;
8216 var47
= "fprintf(stderr, \"Insantiation of a dead type: %s\\n\", ";
8218 var49
= string__NativeString__to_s_with_length(var47
, var48
);
8227 var54
= string__NativeString__to_s_with_length(var52
, var53
);
8231 var55
= NEW_array__Array(&type_array__Arraykernel__Object
);
8232 { /* var55 = array_instance Array[Object] */
8234 var57
= NEW_array__NativeArray(var56
, &type_array__NativeArraykernel__Object
);
8235 ((struct instance_array__NativeArray
*)var57
)->values
[0] = (val
*) var46
;
8236 ((struct instance_array__NativeArray
*)var57
)->values
[1] = (val
*) var_t
;
8237 ((struct instance_array__NativeArray
*)var57
)->values
[2] = (val
*) var51
;
8238 ((void (*)(val
*, val
*, long))(var55
->class->vft
[COLOR_array__Array__with_native
]))(var55
, var57
, var56
) /* with_native on <var55:Array[Object]>*/;
8240 var58
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_string__Object__to_s
]))(var55
) /* to_s on <var55:Array[Object]>*/;
8241 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var58
) /* add on <var_v:SeparateCompilerVisitor>*/;
8245 var61
= "type dead";
8247 var63
= string__NativeString__to_s_with_length(var61
, var62
);
8251 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(var_v
, var60
) /* add_abort on <var_v:SeparateCompilerVisitor>*/;
8257 var68
= string__NativeString__to_s_with_length(var66
, var67
);
8261 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var65
) /* add on <var_v:SeparateCompilerVisitor>*/;
8264 /* method separate_compiler#SeparateCompiler#hardening_live_type for (self: Object, SeparateCompilerVisitor, String) */
8265 void VIRTUAL_separate_compiler__SeparateCompiler__hardening_live_type(val
* self
, val
* p0
, val
* p1
) {
8266 separate_compiler__SeparateCompiler__hardening_live_type(self
, p0
, p1
);
8269 /* method separate_compiler#SeparateCompiler#new_visitor for (self: SeparateCompiler): SeparateCompilerVisitor */
8270 val
* separate_compiler__SeparateCompiler__new_visitor(val
* self
) {
8271 val
* var
/* : SeparateCompilerVisitor */;
8272 val
* var1
/* : SeparateCompilerVisitor */;
8273 short int var2
/* : Bool */;
8276 const struct type
* type_struct
;
8277 const char* var_class_name
;
8278 var1
= NEW_separate_compiler__SeparateCompilerVisitor(&type_separate_compiler__SeparateCompilerVisitor
);
8279 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init
]))(var1
, self
) /* init on <var1:SeparateCompilerVisitor>*/;
8280 /* <var1:SeparateCompilerVisitor> isa VISITOR */
8281 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
8282 cltype
= type_struct
->color
;
8283 idtype
= type_struct
->id
;
8284 if(cltype
>= var1
->type
->table_size
) {
8287 var2
= var1
->type
->type_table
[cltype
] == idtype
;
8290 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
8291 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
8292 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 853);
8300 /* method separate_compiler#SeparateCompiler#new_visitor for (self: Object): AbstractCompilerVisitor */
8301 val
* VIRTUAL_separate_compiler__SeparateCompiler__new_visitor(val
* self
) {
8302 val
* var
/* : AbstractCompilerVisitor */;
8303 val
* var1
/* : SeparateCompilerVisitor */;
8304 var1
= separate_compiler__SeparateCompiler__new_visitor(self
);
8309 /* method separate_compiler#SeparateCompiler#type_tables for (self: SeparateCompiler): Map[MType, Array[nullable MType]] */
8310 val
* separate_compiler__SeparateCompiler__type_tables(val
* self
) {
8311 val
* var
/* : Map[MType, Array[nullable MType]] */;
8312 val
* var1
/* : Map[MType, Array[nullable MType]] */;
8313 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dtype_tables
].val
; /* @type_tables on <self:SeparateCompiler> */
8315 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @type_tables");
8316 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 857);
8323 /* method separate_compiler#SeparateCompiler#type_tables for (self: Object): Map[MType, Array[nullable MType]] */
8324 val
* VIRTUAL_separate_compiler__SeparateCompiler__type_tables(val
* self
) {
8325 val
* var
/* : Map[MType, Array[nullable MType]] */;
8326 val
* var1
/* : Map[MType, Array[nullable MType]] */;
8327 var1
= separate_compiler__SeparateCompiler__type_tables(self
);
8332 /* method separate_compiler#SeparateCompiler#type_tables= for (self: SeparateCompiler, Map[MType, Array[nullable MType]]) */
8333 void separate_compiler__SeparateCompiler__type_tables_61d(val
* self
, val
* p0
) {
8334 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dtype_tables
].val
= p0
; /* @type_tables on <self:SeparateCompiler> */
8337 /* method separate_compiler#SeparateCompiler#type_tables= for (self: Object, Map[MType, Array[nullable MType]]) */
8338 void VIRTUAL_separate_compiler__SeparateCompiler__type_tables_61d(val
* self
, val
* p0
) {
8339 separate_compiler__SeparateCompiler__type_tables_61d(self
, p0
);
8342 /* method separate_compiler#SeparateCompiler#resolution_tables for (self: SeparateCompiler): Map[MClassType, Array[nullable MType]] */
8343 val
* separate_compiler__SeparateCompiler__resolution_tables(val
* self
) {
8344 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
8345 val
* var1
/* : Map[MClassType, Array[nullable MType]] */;
8346 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dresolution_tables
].val
; /* @resolution_tables on <self:SeparateCompiler> */
8348 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @resolution_tables");
8349 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 858);
8356 /* method separate_compiler#SeparateCompiler#resolution_tables for (self: Object): Map[MClassType, Array[nullable MType]] */
8357 val
* VIRTUAL_separate_compiler__SeparateCompiler__resolution_tables(val
* self
) {
8358 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
8359 val
* var1
/* : Map[MClassType, Array[nullable MType]] */;
8360 var1
= separate_compiler__SeparateCompiler__resolution_tables(self
);
8365 /* method separate_compiler#SeparateCompiler#resolution_tables= for (self: SeparateCompiler, Map[MClassType, Array[nullable MType]]) */
8366 void separate_compiler__SeparateCompiler__resolution_tables_61d(val
* self
, val
* p0
) {
8367 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dresolution_tables
].val
= p0
; /* @resolution_tables on <self:SeparateCompiler> */
8370 /* method separate_compiler#SeparateCompiler#resolution_tables= for (self: Object, Map[MClassType, Array[nullable MType]]) */
8371 void VIRTUAL_separate_compiler__SeparateCompiler__resolution_tables_61d(val
* self
, val
* p0
) {
8372 separate_compiler__SeparateCompiler__resolution_tables_61d(self
, p0
);
8375 /* method separate_compiler#SeparateCompiler#method_tables for (self: SeparateCompiler): Map[MClass, Array[nullable MPropDef]] */
8376 val
* separate_compiler__SeparateCompiler__method_tables(val
* self
) {
8377 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
8378 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
8379 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dmethod_tables
].val
; /* @method_tables on <self:SeparateCompiler> */
8381 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @method_tables");
8382 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 859);
8389 /* method separate_compiler#SeparateCompiler#method_tables for (self: Object): Map[MClass, Array[nullable MPropDef]] */
8390 val
* VIRTUAL_separate_compiler__SeparateCompiler__method_tables(val
* self
) {
8391 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
8392 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
8393 var1
= separate_compiler__SeparateCompiler__method_tables(self
);
8398 /* method separate_compiler#SeparateCompiler#method_tables= for (self: SeparateCompiler, Map[MClass, Array[nullable MPropDef]]) */
8399 void separate_compiler__SeparateCompiler__method_tables_61d(val
* self
, val
* p0
) {
8400 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dmethod_tables
].val
= p0
; /* @method_tables on <self:SeparateCompiler> */
8403 /* method separate_compiler#SeparateCompiler#method_tables= for (self: Object, Map[MClass, Array[nullable MPropDef]]) */
8404 void VIRTUAL_separate_compiler__SeparateCompiler__method_tables_61d(val
* self
, val
* p0
) {
8405 separate_compiler__SeparateCompiler__method_tables_61d(self
, p0
);
8408 /* method separate_compiler#SeparateCompiler#attr_tables for (self: SeparateCompiler): Map[MClass, Array[nullable MPropDef]] */
8409 val
* separate_compiler__SeparateCompiler__attr_tables(val
* self
) {
8410 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
8411 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
8412 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dattr_tables
].val
; /* @attr_tables on <self:SeparateCompiler> */
8414 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @attr_tables");
8415 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 860);
8422 /* method separate_compiler#SeparateCompiler#attr_tables for (self: Object): Map[MClass, Array[nullable MPropDef]] */
8423 val
* VIRTUAL_separate_compiler__SeparateCompiler__attr_tables(val
* self
) {
8424 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
8425 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
8426 var1
= separate_compiler__SeparateCompiler__attr_tables(self
);
8431 /* method separate_compiler#SeparateCompiler#attr_tables= for (self: SeparateCompiler, Map[MClass, Array[nullable MPropDef]]) */
8432 void separate_compiler__SeparateCompiler__attr_tables_61d(val
* self
, val
* p0
) {
8433 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dattr_tables
].val
= p0
; /* @attr_tables on <self:SeparateCompiler> */
8436 /* method separate_compiler#SeparateCompiler#attr_tables= for (self: Object, Map[MClass, Array[nullable MPropDef]]) */
8437 void VIRTUAL_separate_compiler__SeparateCompiler__attr_tables_61d(val
* self
, val
* p0
) {
8438 separate_compiler__SeparateCompiler__attr_tables_61d(self
, p0
);
8441 /* method separate_compiler#SeparateCompiler#display_stats for (self: SeparateCompiler) */
8442 void separate_compiler__SeparateCompiler__display_stats(val
* self
) {
8443 val
* var
/* : ModelBuilder */;
8444 val
* var1
/* : ToolContext */;
8445 val
* var2
/* : OptionBool */;
8446 val
* var3
/* : nullable Object */;
8447 short int var4
/* : Bool */;
8448 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__display_stats
]))(self
) /* display_stats on <self:SeparateCompiler>*/;
8449 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
8450 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var
) /* toolcontext on <var:ModelBuilder>*/;
8451 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_separate_compiler__ToolContext__opt_tables_metrics
]))(var1
) /* opt_tables_metrics on <var1:ToolContext>*/;
8452 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_opts__Option__value
]))(var2
) /* value on <var2:OptionBool>*/;
8453 var4
= ((struct instance_kernel__Bool
*)var3
)->value
; /* autounbox from nullable Object to Bool */;
8455 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__display_sizes
]))(self
) /* display_sizes on <self:SeparateCompiler>*/;
8460 /* method separate_compiler#SeparateCompiler#display_stats for (self: Object) */
8461 void VIRTUAL_separate_compiler__SeparateCompiler__display_stats(val
* self
) {
8462 separate_compiler__SeparateCompiler__display_stats(self
);
8465 /* method separate_compiler#SeparateCompiler#display_sizes for (self: SeparateCompiler) */
8466 void separate_compiler__SeparateCompiler__display_sizes(val
* self
) {
8467 static val
* varonce
;
8468 val
* var
/* : String */;
8469 char* var1
/* : NativeString */;
8470 long var2
/* : Int */;
8471 val
* var3
/* : String */;
8472 static val
* varonce4
;
8473 val
* var5
/* : String */;
8474 char* var6
/* : NativeString */;
8475 long var7
/* : Int */;
8476 val
* var8
/* : String */;
8477 long var9
/* : Int */;
8478 long var_total
/* var total: Int */;
8479 long var10
/* : Int */;
8480 long var_holes
/* var holes: Int */;
8481 val
* var11
/* : Map[MType, Array[nullable MType]] */;
8482 val
* var12
/* : MapIterator[Object, nullable Object] */;
8483 short int var13
/* : Bool */;
8484 val
* var14
/* : Object */;
8485 val
* var_t
/* var t: MType */;
8486 val
* var15
/* : nullable Object */;
8487 val
* var_table
/* var table: Array[nullable MType] */;
8488 long var16
/* : Int */;
8489 long var17
/* : Int */;
8490 long var19
/* : Int */;
8491 val
* var20
/* : Iterator[nullable Object] */;
8492 short int var21
/* : Bool */;
8493 val
* var22
/* : nullable Object */;
8494 val
* var_e
/* var e: nullable MType */;
8495 val
* var23
/* : null */;
8496 short int var24
/* : Bool */;
8497 long var25
/* : Int */;
8498 long var26
/* : Int */;
8499 long var28
/* : Int */;
8500 static val
* varonce30
;
8501 val
* var31
/* : String */;
8502 char* var32
/* : NativeString */;
8503 long var33
/* : Int */;
8504 val
* var34
/* : String */;
8505 static val
* varonce35
;
8506 val
* var36
/* : String */;
8507 char* var37
/* : NativeString */;
8508 long var38
/* : Int */;
8509 val
* var39
/* : String */;
8510 val
* var40
/* : Array[Object] */;
8511 long var41
/* : Int */;
8512 val
* var42
/* : NativeArray[Object] */;
8513 val
* var43
/* : Object */;
8514 val
* var44
/* : Object */;
8515 val
* var45
/* : String */;
8516 static val
* varonce46
;
8517 val
* var47
/* : String */;
8518 char* var48
/* : NativeString */;
8519 long var49
/* : Int */;
8520 val
* var50
/* : String */;
8521 static val
* varonce51
;
8522 val
* var52
/* : String */;
8523 char* var53
/* : NativeString */;
8524 long var54
/* : Int */;
8525 val
* var55
/* : String */;
8526 long var56
/* : Int */;
8527 long var57
/* : Int */;
8528 val
* var58
/* : Map[MClassType, Array[nullable MType]] */;
8529 val
* var59
/* : MapIterator[Object, nullable Object] */;
8530 short int var60
/* : Bool */;
8531 val
* var61
/* : Object */;
8532 val
* var_t62
/* var t: MClassType */;
8533 val
* var63
/* : nullable Object */;
8534 val
* var_table64
/* var table: Array[nullable MType] */;
8535 long var65
/* : Int */;
8536 long var66
/* : Int */;
8537 long var68
/* : Int */;
8538 val
* var69
/* : Iterator[nullable Object] */;
8539 short int var70
/* : Bool */;
8540 val
* var71
/* : nullable Object */;
8541 val
* var_e72
/* var e: nullable MType */;
8542 val
* var73
/* : null */;
8543 short int var74
/* : Bool */;
8544 long var75
/* : Int */;
8545 long var76
/* : Int */;
8546 long var78
/* : Int */;
8547 static val
* varonce81
;
8548 val
* var82
/* : String */;
8549 char* var83
/* : NativeString */;
8550 long var84
/* : Int */;
8551 val
* var85
/* : String */;
8552 static val
* varonce86
;
8553 val
* var87
/* : String */;
8554 char* var88
/* : NativeString */;
8555 long var89
/* : Int */;
8556 val
* var90
/* : String */;
8557 val
* var91
/* : Array[Object] */;
8558 long var92
/* : Int */;
8559 val
* var93
/* : NativeArray[Object] */;
8560 val
* var94
/* : Object */;
8561 val
* var95
/* : Object */;
8562 val
* var96
/* : String */;
8563 static val
* varonce97
;
8564 val
* var98
/* : String */;
8565 char* var99
/* : NativeString */;
8566 long var100
/* : Int */;
8567 val
* var101
/* : String */;
8568 static val
* varonce102
;
8569 val
* var103
/* : String */;
8570 char* var104
/* : NativeString */;
8571 long var105
/* : Int */;
8572 val
* var106
/* : String */;
8573 long var107
/* : Int */;
8574 long var108
/* : Int */;
8575 val
* var109
/* : Map[MClass, Array[nullable MPropDef]] */;
8576 val
* var110
/* : MapIterator[Object, nullable Object] */;
8577 short int var111
/* : Bool */;
8578 val
* var112
/* : Object */;
8579 val
* var_t113
/* var t: MClass */;
8580 val
* var114
/* : nullable Object */;
8581 val
* var_table115
/* var table: Array[nullable MPropDef] */;
8582 long var116
/* : Int */;
8583 long var117
/* : Int */;
8584 long var119
/* : Int */;
8585 val
* var120
/* : Iterator[nullable Object] */;
8586 short int var121
/* : Bool */;
8587 val
* var122
/* : nullable Object */;
8588 val
* var_e123
/* var e: nullable MPropDef */;
8589 val
* var124
/* : null */;
8590 short int var125
/* : Bool */;
8591 long var126
/* : Int */;
8592 long var127
/* : Int */;
8593 long var129
/* : Int */;
8594 static val
* varonce132
;
8595 val
* var133
/* : String */;
8596 char* var134
/* : NativeString */;
8597 long var135
/* : Int */;
8598 val
* var136
/* : String */;
8599 static val
* varonce137
;
8600 val
* var138
/* : String */;
8601 char* var139
/* : NativeString */;
8602 long var140
/* : Int */;
8603 val
* var141
/* : String */;
8604 val
* var142
/* : Array[Object] */;
8605 long var143
/* : Int */;
8606 val
* var144
/* : NativeArray[Object] */;
8607 val
* var145
/* : Object */;
8608 val
* var146
/* : Object */;
8609 val
* var147
/* : String */;
8610 static val
* varonce148
;
8611 val
* var149
/* : String */;
8612 char* var150
/* : NativeString */;
8613 long var151
/* : Int */;
8614 val
* var152
/* : String */;
8615 static val
* varonce153
;
8616 val
* var154
/* : String */;
8617 char* var155
/* : NativeString */;
8618 long var156
/* : Int */;
8619 val
* var157
/* : String */;
8620 long var158
/* : Int */;
8621 long var159
/* : Int */;
8622 val
* var160
/* : Map[MClass, Array[nullable MPropDef]] */;
8623 val
* var161
/* : MapIterator[Object, nullable Object] */;
8624 short int var162
/* : Bool */;
8625 val
* var163
/* : Object */;
8626 val
* var_t164
/* var t: MClass */;
8627 val
* var165
/* : nullable Object */;
8628 val
* var_table166
/* var table: Array[nullable MPropDef] */;
8629 long var167
/* : Int */;
8630 long var168
/* : Int */;
8631 long var170
/* : Int */;
8632 val
* var171
/* : Iterator[nullable Object] */;
8633 short int var172
/* : Bool */;
8634 val
* var173
/* : nullable Object */;
8635 val
* var_e174
/* var e: nullable MPropDef */;
8636 val
* var175
/* : null */;
8637 short int var176
/* : Bool */;
8638 long var177
/* : Int */;
8639 long var178
/* : Int */;
8640 long var180
/* : Int */;
8641 static val
* varonce183
;
8642 val
* var184
/* : String */;
8643 char* var185
/* : NativeString */;
8644 long var186
/* : Int */;
8645 val
* var187
/* : String */;
8646 static val
* varonce188
;
8647 val
* var189
/* : String */;
8648 char* var190
/* : NativeString */;
8649 long var191
/* : Int */;
8650 val
* var192
/* : String */;
8651 val
* var193
/* : Array[Object] */;
8652 long var194
/* : Int */;
8653 val
* var195
/* : NativeArray[Object] */;
8654 val
* var196
/* : Object */;
8655 val
* var197
/* : Object */;
8656 val
* var198
/* : String */;
8660 var1
= "# size of subtyping tables";
8662 var3
= string__NativeString__to_s_with_length(var1
, var2
);
8666 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var
) /* print on <self:SeparateCompiler>*/;
8670 var6
= "\11total \11holes";
8672 var8
= string__NativeString__to_s_with_length(var6
, var7
);
8676 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var5
) /* print on <self:SeparateCompiler>*/;
8681 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_tables
]))(self
) /* type_tables on <self:SeparateCompiler>*/;
8682 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var11
) /* iterator on <var11:Map[MType, Array[nullable MType]]>*/;
8684 var13
= ((short int (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var12
) /* is_ok on <var12:MapIterator[Object, nullable Object]>*/;
8686 var14
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var12
) /* key on <var12:MapIterator[Object, nullable Object]>*/;
8688 var15
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var12
) /* item on <var12:MapIterator[Object, nullable Object]>*/;
8690 var16
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MType]>*/;
8691 { /* Inline kernel#Int#+ (var_total,var16) */
8692 var19
= var_total
+ var16
;
8695 RET_LABEL18
:(void)0;
8698 var20
= ((val
* (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table
) /* iterator on <var_table:Array[nullable MType]>*/;
8700 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var20
) /* is_ok on <var20:Iterator[nullable Object]>*/;
8702 var22
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var20
) /* item on <var20:Iterator[nullable Object]>*/;
8705 if (var_e
== NULL
) {
8706 var24
= 1; /* is null */
8708 var24
= 0; /* arg is null but recv is not */
8712 { /* Inline kernel#Int#+ (var_holes,var25) */
8713 var28
= var_holes
+ var25
;
8716 RET_LABEL27
:(void)0;
8721 CONTINUE_label
: (void)0;
8722 ((void (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var20
) /* next on <var20:Iterator[nullable Object]>*/;
8724 BREAK_label
: (void)0;
8725 CONTINUE_label29
: (void)0;
8726 ((void (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var12
) /* next on <var12:MapIterator[Object, nullable Object]>*/;
8728 BREAK_label29
: (void)0;
8734 var34
= string__NativeString__to_s_with_length(var32
, var33
);
8743 var39
= string__NativeString__to_s_with_length(var37
, var38
);
8747 var40
= NEW_array__Array(&type_array__Arraykernel__Object
);
8748 { /* var40 = array_instance Array[Object] */
8750 var42
= NEW_array__NativeArray(var41
, &type_array__NativeArraykernel__Object
);
8751 ((struct instance_array__NativeArray
*)var42
)->values
[0] = (val
*) var31
;
8752 var43
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
8753 ((struct instance_array__NativeArray
*)var42
)->values
[1] = (val
*) var43
;
8754 ((struct instance_array__NativeArray
*)var42
)->values
[2] = (val
*) var36
;
8755 var44
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
8756 ((struct instance_array__NativeArray
*)var42
)->values
[3] = (val
*) var44
;
8757 ((void (*)(val
*, val
*, long))(var40
->class->vft
[COLOR_array__Array__with_native
]))(var40
, var42
, var41
) /* with_native on <var40:Array[Object]>*/;
8759 var45
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_string__Object__to_s
]))(var40
) /* to_s on <var40:Array[Object]>*/;
8760 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var45
) /* print on <self:SeparateCompiler>*/;
8764 var48
= "# size of resolution tables";
8766 var50
= string__NativeString__to_s_with_length(var48
, var49
);
8770 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var47
) /* print on <self:SeparateCompiler>*/;
8774 var53
= "\11total \11holes";
8776 var55
= string__NativeString__to_s_with_length(var53
, var54
);
8780 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var52
) /* print on <self:SeparateCompiler>*/;
8785 var58
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_tables
]))(self
) /* resolution_tables on <self:SeparateCompiler>*/;
8786 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var58
) /* iterator on <var58:Map[MClassType, Array[nullable MType]]>*/;
8788 var60
= ((short int (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var59
) /* is_ok on <var59:MapIterator[Object, nullable Object]>*/;
8790 var61
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var59
) /* key on <var59:MapIterator[Object, nullable Object]>*/;
8792 var63
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var59
) /* item on <var59:MapIterator[Object, nullable Object]>*/;
8793 var_table64
= var63
;
8794 var65
= ((long (*)(val
*))(var_table64
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table64
) /* length on <var_table64:Array[nullable MType]>*/;
8795 { /* Inline kernel#Int#+ (var_total,var65) */
8796 var68
= var_total
+ var65
;
8799 RET_LABEL67
:(void)0;
8802 var69
= ((val
* (*)(val
*))(var_table64
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table64
) /* iterator on <var_table64:Array[nullable MType]>*/;
8804 var70
= ((short int (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var69
) /* is_ok on <var69:Iterator[nullable Object]>*/;
8806 var71
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var69
) /* item on <var69:Iterator[nullable Object]>*/;
8809 if (var_e72
== NULL
) {
8810 var74
= 1; /* is null */
8812 var74
= 0; /* arg is null but recv is not */
8816 { /* Inline kernel#Int#+ (var_holes,var75) */
8817 var78
= var_holes
+ var75
;
8820 RET_LABEL77
:(void)0;
8825 CONTINUE_label79
: (void)0;
8826 ((void (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var69
) /* next on <var69:Iterator[nullable Object]>*/;
8828 BREAK_label79
: (void)0;
8829 CONTINUE_label80
: (void)0;
8830 ((void (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var59
) /* next on <var59:MapIterator[Object, nullable Object]>*/;
8832 BREAK_label80
: (void)0;
8838 var85
= string__NativeString__to_s_with_length(var83
, var84
);
8847 var90
= string__NativeString__to_s_with_length(var88
, var89
);
8851 var91
= NEW_array__Array(&type_array__Arraykernel__Object
);
8852 { /* var91 = array_instance Array[Object] */
8854 var93
= NEW_array__NativeArray(var92
, &type_array__NativeArraykernel__Object
);
8855 ((struct instance_array__NativeArray
*)var93
)->values
[0] = (val
*) var82
;
8856 var94
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
8857 ((struct instance_array__NativeArray
*)var93
)->values
[1] = (val
*) var94
;
8858 ((struct instance_array__NativeArray
*)var93
)->values
[2] = (val
*) var87
;
8859 var95
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
8860 ((struct instance_array__NativeArray
*)var93
)->values
[3] = (val
*) var95
;
8861 ((void (*)(val
*, val
*, long))(var91
->class->vft
[COLOR_array__Array__with_native
]))(var91
, var93
, var92
) /* with_native on <var91:Array[Object]>*/;
8863 var96
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_string__Object__to_s
]))(var91
) /* to_s on <var91:Array[Object]>*/;
8864 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var96
) /* print on <self:SeparateCompiler>*/;
8868 var99
= "# size of methods tables";
8870 var101
= string__NativeString__to_s_with_length(var99
, var100
);
8874 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var98
) /* print on <self:SeparateCompiler>*/;
8876 var103
= varonce102
;
8878 var104
= "\11total \11holes";
8880 var106
= string__NativeString__to_s_with_length(var104
, var105
);
8882 varonce102
= var103
;
8884 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var103
) /* print on <self:SeparateCompiler>*/;
8889 var109
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_tables
]))(self
) /* method_tables on <self:SeparateCompiler>*/;
8890 var110
= ((val
* (*)(val
*))(var109
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var109
) /* iterator on <var109:Map[MClass, Array[nullable MPropDef]]>*/;
8892 var111
= ((short int (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var110
) /* is_ok on <var110:MapIterator[Object, nullable Object]>*/;
8894 var112
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var110
) /* key on <var110:MapIterator[Object, nullable Object]>*/;
8896 var114
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var110
) /* item on <var110:MapIterator[Object, nullable Object]>*/;
8897 var_table115
= var114
;
8898 var116
= ((long (*)(val
*))(var_table115
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table115
) /* length on <var_table115:Array[nullable MPropDef]>*/;
8899 { /* Inline kernel#Int#+ (var_total,var116) */
8900 var119
= var_total
+ var116
;
8903 RET_LABEL118
:(void)0;
8906 var120
= ((val
* (*)(val
*))(var_table115
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table115
) /* iterator on <var_table115:Array[nullable MPropDef]>*/;
8908 var121
= ((short int (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var120
) /* is_ok on <var120:Iterator[nullable Object]>*/;
8910 var122
= ((val
* (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var120
) /* item on <var120:Iterator[nullable Object]>*/;
8913 if (var_e123
== NULL
) {
8914 var125
= 1; /* is null */
8916 var125
= 0; /* arg is null but recv is not */
8920 { /* Inline kernel#Int#+ (var_holes,var126) */
8921 var129
= var_holes
+ var126
;
8924 RET_LABEL128
:(void)0;
8929 CONTINUE_label130
: (void)0;
8930 ((void (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var120
) /* next on <var120:Iterator[nullable Object]>*/;
8932 BREAK_label130
: (void)0;
8933 CONTINUE_label131
: (void)0;
8934 ((void (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var110
) /* next on <var110:MapIterator[Object, nullable Object]>*/;
8936 BREAK_label131
: (void)0;
8938 var133
= varonce132
;
8942 var136
= string__NativeString__to_s_with_length(var134
, var135
);
8944 varonce132
= var133
;
8947 var138
= varonce137
;
8951 var141
= string__NativeString__to_s_with_length(var139
, var140
);
8953 varonce137
= var138
;
8955 var142
= NEW_array__Array(&type_array__Arraykernel__Object
);
8956 { /* var142 = array_instance Array[Object] */
8958 var144
= NEW_array__NativeArray(var143
, &type_array__NativeArraykernel__Object
);
8959 ((struct instance_array__NativeArray
*)var144
)->values
[0] = (val
*) var133
;
8960 var145
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
8961 ((struct instance_array__NativeArray
*)var144
)->values
[1] = (val
*) var145
;
8962 ((struct instance_array__NativeArray
*)var144
)->values
[2] = (val
*) var138
;
8963 var146
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
8964 ((struct instance_array__NativeArray
*)var144
)->values
[3] = (val
*) var146
;
8965 ((void (*)(val
*, val
*, long))(var142
->class->vft
[COLOR_array__Array__with_native
]))(var142
, var144
, var143
) /* with_native on <var142:Array[Object]>*/;
8967 var147
= ((val
* (*)(val
*))(var142
->class->vft
[COLOR_string__Object__to_s
]))(var142
) /* to_s on <var142:Array[Object]>*/;
8968 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var147
) /* print on <self:SeparateCompiler>*/;
8970 var149
= varonce148
;
8972 var150
= "# size of attributes tables";
8974 var152
= string__NativeString__to_s_with_length(var150
, var151
);
8976 varonce148
= var149
;
8978 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var149
) /* print on <self:SeparateCompiler>*/;
8980 var154
= varonce153
;
8982 var155
= "\11total \11holes";
8984 var157
= string__NativeString__to_s_with_length(var155
, var156
);
8986 varonce153
= var154
;
8988 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var154
) /* print on <self:SeparateCompiler>*/;
8993 var160
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_tables
]))(self
) /* attr_tables on <self:SeparateCompiler>*/;
8994 var161
= ((val
* (*)(val
*))(var160
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var160
) /* iterator on <var160:Map[MClass, Array[nullable MPropDef]]>*/;
8996 var162
= ((short int (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var161
) /* is_ok on <var161:MapIterator[Object, nullable Object]>*/;
8998 var163
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var161
) /* key on <var161:MapIterator[Object, nullable Object]>*/;
9000 var165
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var161
) /* item on <var161:MapIterator[Object, nullable Object]>*/;
9001 var_table166
= var165
;
9002 var167
= ((long (*)(val
*))(var_table166
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table166
) /* length on <var_table166:Array[nullable MPropDef]>*/;
9003 { /* Inline kernel#Int#+ (var_total,var167) */
9004 var170
= var_total
+ var167
;
9007 RET_LABEL169
:(void)0;
9010 var171
= ((val
* (*)(val
*))(var_table166
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table166
) /* iterator on <var_table166:Array[nullable MPropDef]>*/;
9012 var172
= ((short int (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var171
) /* is_ok on <var171:Iterator[nullable Object]>*/;
9014 var173
= ((val
* (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var171
) /* item on <var171:Iterator[nullable Object]>*/;
9017 if (var_e174
== NULL
) {
9018 var176
= 1; /* is null */
9020 var176
= 0; /* arg is null but recv is not */
9024 { /* Inline kernel#Int#+ (var_holes,var177) */
9025 var180
= var_holes
+ var177
;
9028 RET_LABEL179
:(void)0;
9033 CONTINUE_label181
: (void)0;
9034 ((void (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var171
) /* next on <var171:Iterator[nullable Object]>*/;
9036 BREAK_label181
: (void)0;
9037 CONTINUE_label182
: (void)0;
9038 ((void (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var161
) /* next on <var161:MapIterator[Object, nullable Object]>*/;
9040 BREAK_label182
: (void)0;
9042 var184
= varonce183
;
9046 var187
= string__NativeString__to_s_with_length(var185
, var186
);
9048 varonce183
= var184
;
9051 var189
= varonce188
;
9055 var192
= string__NativeString__to_s_with_length(var190
, var191
);
9057 varonce188
= var189
;
9059 var193
= NEW_array__Array(&type_array__Arraykernel__Object
);
9060 { /* var193 = array_instance Array[Object] */
9062 var195
= NEW_array__NativeArray(var194
, &type_array__NativeArraykernel__Object
);
9063 ((struct instance_array__NativeArray
*)var195
)->values
[0] = (val
*) var184
;
9064 var196
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
9065 ((struct instance_array__NativeArray
*)var195
)->values
[1] = (val
*) var196
;
9066 ((struct instance_array__NativeArray
*)var195
)->values
[2] = (val
*) var189
;
9067 var197
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
9068 ((struct instance_array__NativeArray
*)var195
)->values
[3] = (val
*) var197
;
9069 ((void (*)(val
*, val
*, long))(var193
->class->vft
[COLOR_array__Array__with_native
]))(var193
, var195
, var194
) /* with_native on <var193:Array[Object]>*/;
9071 var198
= ((val
* (*)(val
*))(var193
->class->vft
[COLOR_string__Object__to_s
]))(var193
) /* to_s on <var193:Array[Object]>*/;
9072 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var198
) /* print on <self:SeparateCompiler>*/;
9075 /* method separate_compiler#SeparateCompiler#display_sizes for (self: Object) */
9076 void VIRTUAL_separate_compiler__SeparateCompiler__display_sizes(val
* self
) {
9077 separate_compiler__SeparateCompiler__display_sizes(self
);
9080 /* method separate_compiler#SeparateCompiler#compile_nitni_structs for (self: SeparateCompiler) */
9081 void separate_compiler__SeparateCompiler__compile_nitni_structs(val
* self
) {
9082 val
* var
/* : CodeWriter */;
9083 static val
* varonce
;
9084 val
* var1
/* : String */;
9085 char* var2
/* : NativeString */;
9086 long var3
/* : Int */;
9087 val
* var4
/* : String */;
9088 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
9092 var2
= "struct nitni_instance {struct instance *value;};";
9094 var4
= string__NativeString__to_s_with_length(var2
, var3
);
9098 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var
, var1
) /* add_decl on <var:CodeWriter>*/;
9101 /* method separate_compiler#SeparateCompiler#compile_nitni_structs for (self: Object) */
9102 void VIRTUAL_separate_compiler__SeparateCompiler__compile_nitni_structs(val
* self
) {
9103 separate_compiler__SeparateCompiler__compile_nitni_structs(self
);
9106 /* method separate_compiler#SeparateCompiler#finalize_ffi_for_module for (self: SeparateCompiler, AModule) */
9107 void separate_compiler__SeparateCompiler__finalize_ffi_for_module(val
* self
, val
* p0
) {
9108 val
* var_nmodule
/* var nmodule: AModule */;
9109 val
* var
/* : MModule */;
9110 val
* var_old_module
/* var old_module: MModule */;
9111 val
* var1
/* : nullable MModule */;
9113 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
9114 var_old_module
= var
;
9115 var1
= ((val
* (*)(val
*))(var_nmodule
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var_nmodule
) /* mmodule on <var_nmodule:AModule>*/;
9117 fprintf(stderr
, "Runtime error: %s", "Cast failed");
9118 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 921);
9121 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule_61d
]))(self
, var1
) /* mainmodule= on <self:SeparateCompiler>*/;
9122 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__finalize_ffi_for_module
]))(self
, p0
) /* finalize_ffi_for_module on <self:SeparateCompiler>*/;
9123 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule_61d
]))(self
, var_old_module
) /* mainmodule= on <self:SeparateCompiler>*/;
9126 /* method separate_compiler#SeparateCompiler#finalize_ffi_for_module for (self: Object, AModule) */
9127 void VIRTUAL_separate_compiler__SeparateCompiler__finalize_ffi_for_module(val
* self
, val
* p0
) {
9128 separate_compiler__SeparateCompiler__finalize_ffi_for_module(self
, p0
);
9131 /* method separate_compiler#SeparateCompilerVisitor#adapt_signature for (self: SeparateCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
9132 void separate_compiler__SeparateCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
9133 val
* var_m
/* var m: MMethodDef */;
9134 val
* var_args
/* var args: Array[RuntimeVariable] */;
9135 val
* var
/* : nullable MSignature */;
9136 val
* var1
/* : MClassDef */;
9137 val
* var2
/* : MClassType */;
9138 val
* var3
/* : MClassDef */;
9139 val
* var4
/* : MClassType */;
9140 val
* var5
/* : MClassDef */;
9141 val
* var6
/* : MModule */;
9142 short int var7
/* : Bool */;
9143 val
* var8
/* : MType */;
9144 val
* var_msignature
/* var msignature: MSignature */;
9145 val
* var9
/* : nullable Object */;
9146 val
* var_recv
/* var recv: RuntimeVariable */;
9147 val
* var10
/* : MType */;
9148 val
* var11
/* : String */;
9149 val
* var12
/* : MClassDef */;
9150 val
* var13
/* : MClass */;
9151 val
* var14
/* : MClassType */;
9152 val
* var15
/* : String */;
9153 short int var16
/* : Bool */;
9154 val
* var17
/* : nullable Object */;
9155 val
* var18
/* : MClassDef */;
9156 val
* var19
/* : MClass */;
9157 val
* var20
/* : MClassType */;
9158 val
* var21
/* : RuntimeVariable */;
9159 val
* var22
/* : Range[Int] */;
9160 long var23
/* : Int */;
9161 long var24
/* : Int */;
9162 val
* var25
/* : Discrete */;
9163 val
* var26
/* : Discrete */;
9164 val
* var27
/* : Iterator[nullable Object] */;
9165 short int var28
/* : Bool */;
9166 val
* var29
/* : nullable Object */;
9167 long var_i
/* var i: Int */;
9168 long var30
/* : Int */;
9169 val
* var31
/* : Array[MParameter] */;
9170 val
* var32
/* : nullable Object */;
9171 val
* var33
/* : MType */;
9172 val
* var_t
/* var t: MType */;
9173 long var34
/* : Int */;
9174 short int var35
/* : Bool */;
9175 short int var37
/* : Bool */;
9176 long var38
/* : Int */;
9177 long var39
/* : Int */;
9178 long var41
/* : Int */;
9179 val
* var42
/* : nullable Object */;
9180 val
* var43
/* : MType */;
9181 long var44
/* : Int */;
9182 long var45
/* : Int */;
9183 long var47
/* : Int */;
9184 long var48
/* : Int */;
9185 long var49
/* : Int */;
9186 long var51
/* : Int */;
9187 val
* var52
/* : nullable Object */;
9188 val
* var53
/* : RuntimeVariable */;
9191 var
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
9192 var1
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
9193 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var1
) /* bound_mtype on <var1:MClassDef>*/;
9194 var3
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
9195 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var3
) /* bound_mtype on <var3:MClassDef>*/;
9196 var5
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
9197 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var5
) /* mmodule on <var5:MClassDef>*/;
9200 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
9201 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 935);
9204 var8
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var
->class->vft
[COLOR_model__MType__resolve_for
]))(var
, var2
, var4
, var6
, var7
) /* resolve_for on <var:nullable MSignature>*/;
9206 var_msignature
= var8
;
9207 var9
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
9209 var10
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_recv
) /* mtype on <var_recv:RuntimeVariable>*/;
9210 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var10
) /* ctype on <var10:MType>*/;
9211 var12
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
9212 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_model__MClassDef__mclass
]))(var12
) /* mclass on <var12:MClassDef>*/;
9213 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__MClass__mclass_type
]))(var13
) /* mclass_type on <var13:MClass>*/;
9214 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var14
) /* ctype on <var14:MClassType>*/;
9215 var16
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var11
, var15
) /* != on <var11:String>*/;
9217 var17
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
9218 var18
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
9219 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_model__MClassDef__mclass
]))(var18
) /* mclass on <var18:MClassDef>*/;
9220 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_model__MClass__mclass_type
]))(var19
) /* mclass_type on <var19:MClass>*/;
9221 var21
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var17
, var20
) /* autobox on <self:SeparateCompilerVisitor>*/;
9222 ((void (*)(val
*, val
*))(var_args
->class->vft
[COLOR_abstract_collection__Sequence__first_61d
]))(var_args
, var21
) /* first= on <var_args:Array[RuntimeVariable]>*/;
9225 var22
= NEW_range__Range(&type_range__Rangekernel__Int
);
9227 var24
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
9228 var25
= BOX_kernel__Int(var23
); /* autobox from Int to Discrete */
9229 var26
= BOX_kernel__Int(var24
); /* autobox from Int to Discrete */
9230 ((void (*)(val
*, val
*, val
*))(var22
->class->vft
[COLOR_range__Range__without_last
]))(var22
, var25
, var26
) /* without_last on <var22:Range[Int]>*/;
9231 var27
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var22
) /* iterator on <var22:Range[Int]>*/;
9233 var28
= ((short int (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var27
) /* is_ok on <var27:Iterator[nullable Object]>*/;
9235 var29
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var27
) /* item on <var27:Iterator[nullable Object]>*/;
9236 var30
= ((struct instance_kernel__Int
*)var29
)->value
; /* autounbox from nullable Object to Int */;
9238 var31
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
9239 var32
= ((val
* (*)(val
*, long))(var31
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var31
, var_i
) /* [] on <var31:Array[MParameter]>*/;
9240 var33
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_model__MParameter__mtype
]))(var32
) /* mtype on <var32:nullable Object(MParameter)>*/;
9242 var34
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var_msignature
) /* vararg_rank on <var_msignature:MSignature>*/;
9243 { /* Inline kernel#Int#== (var_i,var34) */
9244 var37
= var_i
== var34
;
9247 RET_LABEL36
:(void)0;
9251 { /* Inline kernel#Int#+ (var_i,var38) */
9252 var41
= var_i
+ var38
;
9255 RET_LABEL40
:(void)0;
9257 var42
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var39
) /* [] on <var_args:Array[RuntimeVariable]>*/;
9258 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var42
) /* mtype on <var42:nullable Object(RuntimeVariable)>*/;
9263 { /* Inline kernel#Int#+ (var_i,var44) */
9264 var47
= var_i
+ var44
;
9267 RET_LABEL46
:(void)0;
9270 { /* Inline kernel#Int#+ (var_i,var48) */
9271 var51
= var_i
+ var48
;
9274 RET_LABEL50
:(void)0;
9276 var52
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var49
) /* [] on <var_args:Array[RuntimeVariable]>*/;
9277 var53
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var52
, var_t
) /* autobox on <self:SeparateCompilerVisitor>*/;
9278 ((void (*)(val
*, long, val
*))(var_args
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_args
, var45
, var53
) /* []= on <var_args:Array[RuntimeVariable]>*/;
9279 CONTINUE_label
: (void)0;
9280 ((void (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var27
) /* next on <var27:Iterator[nullable Object]>*/;
9282 BREAK_label
: (void)0;
9285 /* method separate_compiler#SeparateCompilerVisitor#adapt_signature for (self: Object, MMethodDef, Array[RuntimeVariable]) */
9286 void VIRTUAL_separate_compiler__SeparateCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
9287 separate_compiler__SeparateCompilerVisitor__adapt_signature(self
, p0
, p1
);
9290 /* method separate_compiler#SeparateCompilerVisitor#autobox for (self: SeparateCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
9291 val
* separate_compiler__SeparateCompilerVisitor__autobox(val
* self
, val
* p0
, val
* p1
) {
9292 val
* var
/* : RuntimeVariable */;
9293 val
* var_value
/* var value: RuntimeVariable */;
9294 val
* var_mtype
/* var mtype: MType */;
9295 val
* var1
/* : MType */;
9296 short int var2
/* : Bool */;
9297 short int var3
/* : Bool */;
9298 val
* var4
/* : MType */;
9299 val
* var5
/* : String */;
9300 static val
* varonce
;
9301 val
* var6
/* : String */;
9302 char* var7
/* : NativeString */;
9303 long var8
/* : Int */;
9304 val
* var9
/* : String */;
9305 short int var10
/* : Bool */;
9306 short int var_
/* var : Bool */;
9307 val
* var11
/* : String */;
9308 static val
* varonce12
;
9309 val
* var13
/* : String */;
9310 char* var14
/* : NativeString */;
9311 long var15
/* : Int */;
9312 val
* var16
/* : String */;
9313 short int var17
/* : Bool */;
9314 val
* var18
/* : MType */;
9315 val
* var19
/* : String */;
9316 static val
* varonce20
;
9317 val
* var21
/* : String */;
9318 char* var22
/* : NativeString */;
9319 long var23
/* : Int */;
9320 val
* var24
/* : String */;
9321 short int var25
/* : Bool */;
9322 static val
* varonce26
;
9323 val
* var27
/* : String */;
9324 char* var28
/* : NativeString */;
9325 long var29
/* : Int */;
9326 val
* var30
/* : String */;
9327 val
* var31
/* : String */;
9328 static val
* varonce32
;
9329 val
* var33
/* : String */;
9330 char* var34
/* : NativeString */;
9331 long var35
/* : Int */;
9332 val
* var36
/* : String */;
9333 static val
* varonce37
;
9334 val
* var38
/* : String */;
9335 char* var39
/* : NativeString */;
9336 long var40
/* : Int */;
9337 val
* var41
/* : String */;
9338 val
* var42
/* : MType */;
9339 static val
* varonce43
;
9340 val
* var44
/* : String */;
9341 char* var45
/* : NativeString */;
9342 long var46
/* : Int */;
9343 val
* var47
/* : String */;
9344 static val
* varonce48
;
9345 val
* var49
/* : String */;
9346 char* var50
/* : NativeString */;
9347 long var51
/* : Int */;
9348 val
* var52
/* : String */;
9349 val
* var53
/* : Array[Object] */;
9350 long var54
/* : Int */;
9351 val
* var55
/* : NativeArray[Object] */;
9352 val
* var56
/* : String */;
9353 val
* var57
/* : RuntimeVariable */;
9354 val
* var58
/* : String */;
9355 static val
* varonce59
;
9356 val
* var60
/* : String */;
9357 char* var61
/* : NativeString */;
9358 long var62
/* : Int */;
9359 val
* var63
/* : String */;
9360 short int var64
/* : Bool */;
9361 val
* var65
/* : MType */;
9362 short int var66
/* : Bool */;
9365 const char* var_class_name
;
9366 val
* var_valtype
/* var valtype: MClassType */;
9367 val
* var67
/* : RuntimeVariable */;
9368 val
* var_res
/* var res: RuntimeVariable */;
9369 short int var68
/* : Bool */;
9370 val
* var69
/* : AbstractCompiler */;
9371 val
* var70
/* : nullable RapidTypeAnalysis */;
9372 val
* var71
/* : null */;
9373 short int var72
/* : Bool */;
9374 short int var_73
/* var : Bool */;
9375 val
* var74
/* : AbstractCompiler */;
9376 val
* var75
/* : nullable RapidTypeAnalysis */;
9377 val
* var76
/* : HashSet[MClassType] */;
9378 short int var77
/* : Bool */;
9379 short int var78
/* : Bool */;
9380 static val
* varonce79
;
9381 val
* var80
/* : String */;
9382 char* var81
/* : NativeString */;
9383 long var82
/* : Int */;
9384 val
* var83
/* : String */;
9385 val
* var84
/* : MType */;
9386 static val
* varonce85
;
9387 val
* var86
/* : String */;
9388 char* var87
/* : NativeString */;
9389 long var88
/* : Int */;
9390 val
* var89
/* : String */;
9391 static val
* varonce90
;
9392 val
* var91
/* : String */;
9393 char* var92
/* : NativeString */;
9394 long var93
/* : Int */;
9395 val
* var94
/* : String */;
9396 val
* var95
/* : MType */;
9397 static val
* varonce96
;
9398 val
* var97
/* : String */;
9399 char* var98
/* : NativeString */;
9400 long var99
/* : Int */;
9401 val
* var100
/* : String */;
9402 val
* var101
/* : Array[Object] */;
9403 long var102
/* : Int */;
9404 val
* var103
/* : NativeArray[Object] */;
9405 val
* var104
/* : String */;
9406 static val
* varonce105
;
9407 val
* var106
/* : String */;
9408 char* var107
/* : NativeString */;
9409 long var108
/* : Int */;
9410 val
* var109
/* : String */;
9411 static val
* varonce110
;
9412 val
* var111
/* : String */;
9413 char* var112
/* : NativeString */;
9414 long var113
/* : Int */;
9415 val
* var114
/* : String */;
9416 val
* var115
/* : String */;
9417 val
* var116
/* : Array[Object] */;
9418 long var117
/* : Int */;
9419 val
* var118
/* : NativeArray[Object] */;
9420 val
* var119
/* : String */;
9421 static val
* varonce120
;
9422 val
* var121
/* : String */;
9423 char* var122
/* : NativeString */;
9424 long var123
/* : Int */;
9425 val
* var124
/* : String */;
9426 val
* var125
/* : String */;
9427 static val
* varonce126
;
9428 val
* var127
/* : String */;
9429 char* var128
/* : NativeString */;
9430 long var129
/* : Int */;
9431 val
* var130
/* : String */;
9432 static val
* varonce131
;
9433 val
* var132
/* : String */;
9434 char* var133
/* : NativeString */;
9435 long var134
/* : Int */;
9436 val
* var135
/* : String */;
9437 val
* var136
/* : MType */;
9438 static val
* varonce137
;
9439 val
* var138
/* : String */;
9440 char* var139
/* : NativeString */;
9441 long var140
/* : Int */;
9442 val
* var141
/* : String */;
9443 static val
* varonce142
;
9444 val
* var143
/* : String */;
9445 char* var144
/* : NativeString */;
9446 long var145
/* : Int */;
9447 val
* var146
/* : String */;
9448 val
* var147
/* : Array[Object] */;
9449 long var148
/* : Int */;
9450 val
* var149
/* : NativeArray[Object] */;
9451 val
* var150
/* : String */;
9452 short int var151
/* : Bool */;
9453 val
* var152
/* : MType */;
9454 val
* var153
/* : String */;
9455 static val
* varonce154
;
9456 val
* var155
/* : String */;
9457 char* var156
/* : NativeString */;
9458 long var157
/* : Int */;
9459 val
* var158
/* : String */;
9460 short int var159
/* : Bool */;
9461 short int var_160
/* var : Bool */;
9462 val
* var161
/* : String */;
9463 static val
* varonce162
;
9464 val
* var163
/* : String */;
9465 char* var164
/* : NativeString */;
9466 long var165
/* : Int */;
9467 val
* var166
/* : String */;
9468 short int var167
/* : Bool */;
9469 val
* var168
/* : RuntimeVariable */;
9470 val
* var_res169
/* var res: RuntimeVariable */;
9471 static val
* varonce170
;
9472 val
* var171
/* : String */;
9473 char* var172
/* : NativeString */;
9474 long var173
/* : Int */;
9475 val
* var174
/* : String */;
9476 static val
* varonce175
;
9477 val
* var176
/* : String */;
9478 char* var177
/* : NativeString */;
9479 long var178
/* : Int */;
9480 val
* var179
/* : String */;
9481 val
* var180
/* : MType */;
9482 static val
* varonce181
;
9483 val
* var182
/* : String */;
9484 char* var183
/* : NativeString */;
9485 long var184
/* : Int */;
9486 val
* var185
/* : String */;
9487 static val
* varonce186
;
9488 val
* var187
/* : String */;
9489 char* var188
/* : NativeString */;
9490 long var189
/* : Int */;
9491 val
* var190
/* : String */;
9492 val
* var191
/* : Array[Object] */;
9493 long var192
/* : Int */;
9494 val
* var193
/* : NativeArray[Object] */;
9495 val
* var194
/* : String */;
9496 static val
* varonce195
;
9497 val
* var196
/* : String */;
9498 char* var197
/* : NativeString */;
9499 long var198
/* : Int */;
9500 val
* var199
/* : String */;
9501 val
* var200
/* : MType */;
9502 static val
* varonce201
;
9503 val
* var202
/* : String */;
9504 char* var203
/* : NativeString */;
9505 long var204
/* : Int */;
9506 val
* var205
/* : String */;
9507 static val
* varonce206
;
9508 val
* var207
/* : String */;
9509 char* var208
/* : NativeString */;
9510 long var209
/* : Int */;
9511 val
* var210
/* : String */;
9512 val
* var211
/* : Array[Object] */;
9513 long var212
/* : Int */;
9514 val
* var213
/* : NativeArray[Object] */;
9515 val
* var214
/* : String */;
9518 var1
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9519 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var1
, var_mtype
) /* == on <var1:MType>*/;
9524 var4
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9525 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var4
) /* ctype on <var4:MType>*/;
9531 var9
= string__NativeString__to_s_with_length(var7
, var8
);
9535 var10
= ((short int (*)(val
*, val
*))(var5
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var5
, var6
) /* == on <var5:String>*/;
9538 var11
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
9544 var16
= string__NativeString__to_s_with_length(var14
, var15
);
9548 var17
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var11
, var13
) /* == on <var11:String>*/;
9557 var18
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9558 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var18
) /* ctype on <var18:MType>*/;
9564 var24
= string__NativeString__to_s_with_length(var22
, var23
);
9568 var25
= ((short int (*)(val
*, val
*))(var19
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var19
, var21
) /* == on <var19:String>*/;
9573 var28
= "((struct instance_";
9575 var30
= string__NativeString__to_s_with_length(var28
, var29
);
9579 var31
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_separate_compiler__MType__c_instance_name
]))(var_mtype
) /* c_instance_name on <var_mtype:MType>*/;
9585 var36
= string__NativeString__to_s_with_length(var34
, var35
);
9592 var39
= ")->value; /* autounbox from ";
9594 var41
= string__NativeString__to_s_with_length(var39
, var40
);
9598 var42
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9604 var47
= string__NativeString__to_s_with_length(var45
, var46
);
9613 var52
= string__NativeString__to_s_with_length(var50
, var51
);
9617 var53
= NEW_array__Array(&type_array__Arraykernel__Object
);
9618 { /* var53 = array_instance Array[Object] */
9620 var55
= NEW_array__NativeArray(var54
, &type_array__NativeArraykernel__Object
);
9621 ((struct instance_array__NativeArray
*)var55
)->values
[0] = (val
*) var27
;
9622 ((struct instance_array__NativeArray
*)var55
)->values
[1] = (val
*) var31
;
9623 ((struct instance_array__NativeArray
*)var55
)->values
[2] = (val
*) var33
;
9624 ((struct instance_array__NativeArray
*)var55
)->values
[3] = (val
*) var_value
;
9625 ((struct instance_array__NativeArray
*)var55
)->values
[4] = (val
*) var38
;
9626 ((struct instance_array__NativeArray
*)var55
)->values
[5] = (val
*) var42
;
9627 ((struct instance_array__NativeArray
*)var55
)->values
[6] = (val
*) var44
;
9628 ((struct instance_array__NativeArray
*)var55
)->values
[7] = (val
*) var_mtype
;
9629 ((struct instance_array__NativeArray
*)var55
)->values
[8] = (val
*) var49
;
9630 ((void (*)(val
*, val
*, long))(var53
->class->vft
[COLOR_array__Array__with_native
]))(var53
, var55
, var54
) /* with_native on <var53:Array[Object]>*/;
9632 var56
= ((val
* (*)(val
*))(var53
->class->vft
[COLOR_string__Object__to_s
]))(var53
) /* to_s on <var53:Array[Object]>*/;
9633 var57
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var56
, var_mtype
) /* new_expr on <self:SeparateCompilerVisitor>*/;
9637 var58
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
9643 var63
= string__NativeString__to_s_with_length(var61
, var62
);
9647 var64
= ((short int (*)(val
*, val
*))(var58
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var58
, var60
) /* == on <var58:String>*/;
9649 var65
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9650 /* <var65:MType> isa MClassType */
9651 cltype
= type_model__MClassType
.color
;
9652 idtype
= type_model__MClassType
.id
;
9653 if(cltype
>= var65
->type
->table_size
) {
9656 var66
= var65
->type
->type_table
[cltype
] == idtype
;
9659 var_class_name
= var65
== NULL ?
"null" : var65
->type
->name
;
9660 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
9661 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 958);
9664 var_valtype
= var65
;
9665 var67
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_mtype
) /* new_var on <self:SeparateCompilerVisitor>*/;
9667 var69
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateCompilerVisitor>*/;
9668 var70
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(var69
) /* runtime_type_analysis on <var69:AbstractCompiler(SeparateCompiler)>*/;
9670 if (var70
== NULL
) {
9671 var72
= 0; /* is null */
9673 var72
= 1; /* arg is null and recv is not */
9677 var74
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateCompilerVisitor>*/;
9678 var75
= ((val
* (*)(val
*))(var74
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(var74
) /* runtime_type_analysis on <var74:AbstractCompiler(SeparateCompiler)>*/;
9679 if (var75
== NULL
) {
9680 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
9681 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 960);
9684 var76
= ((val
* (*)(val
*))(var75
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var75
) /* live_types on <var75:nullable RapidTypeAnalysis>*/;
9686 var77
= ((short int (*)(val
*, val
*))(var76
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var76
, var_valtype
) /* has on <var76:HashSet[MClassType]>*/;
9696 var81
= "/*no autobox from ";
9698 var83
= string__NativeString__to_s_with_length(var81
, var82
);
9702 var84
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9708 var89
= string__NativeString__to_s_with_length(var87
, var88
);
9717 var94
= string__NativeString__to_s_with_length(var92
, var93
);
9721 var95
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9725 var98
= " is not live! */";
9727 var100
= string__NativeString__to_s_with_length(var98
, var99
);
9731 var101
= NEW_array__Array(&type_array__Arraykernel__Object
);
9732 { /* var101 = array_instance Array[Object] */
9734 var103
= NEW_array__NativeArray(var102
, &type_array__NativeArraykernel__Object
);
9735 ((struct instance_array__NativeArray
*)var103
)->values
[0] = (val
*) var80
;
9736 ((struct instance_array__NativeArray
*)var103
)->values
[1] = (val
*) var84
;
9737 ((struct instance_array__NativeArray
*)var103
)->values
[2] = (val
*) var86
;
9738 ((struct instance_array__NativeArray
*)var103
)->values
[3] = (val
*) var_mtype
;
9739 ((struct instance_array__NativeArray
*)var103
)->values
[4] = (val
*) var91
;
9740 ((struct instance_array__NativeArray
*)var103
)->values
[5] = (val
*) var95
;
9741 ((struct instance_array__NativeArray
*)var103
)->values
[6] = (val
*) var97
;
9742 ((void (*)(val
*, val
*, long))(var101
->class->vft
[COLOR_array__Array__with_native
]))(var101
, var103
, var102
) /* with_native on <var101:Array[Object]>*/;
9744 var104
= ((val
* (*)(val
*))(var101
->class->vft
[COLOR_string__Object__to_s
]))(var101
) /* to_s on <var101:Array[Object]>*/;
9745 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var104
) /* add on <self:SeparateCompilerVisitor>*/;
9747 var106
= varonce105
;
9749 var107
= "printf(\"Dead code executed!\\n\"); show_backtrace(1);";
9751 var109
= string__NativeString__to_s_with_length(var107
, var108
);
9753 varonce105
= var106
;
9755 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var106
) /* add on <self:SeparateCompilerVisitor>*/;
9761 var111
= varonce110
;
9765 var114
= string__NativeString__to_s_with_length(var112
, var113
);
9767 varonce110
= var111
;
9769 var115
= ((val
* (*)(val
*))(var_valtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_valtype
) /* c_name on <var_valtype:MClassType>*/;
9770 var116
= NEW_array__Array(&type_array__Arraykernel__Object
);
9771 { /* var116 = array_instance Array[Object] */
9773 var118
= NEW_array__NativeArray(var117
, &type_array__NativeArraykernel__Object
);
9774 ((struct instance_array__NativeArray
*)var118
)->values
[0] = (val
*) var111
;
9775 ((struct instance_array__NativeArray
*)var118
)->values
[1] = (val
*) var115
;
9776 ((void (*)(val
*, val
*, long))(var116
->class->vft
[COLOR_array__Array__with_native
]))(var116
, var118
, var117
) /* with_native on <var116:Array[Object]>*/;
9778 var119
= ((val
* (*)(val
*))(var116
->class->vft
[COLOR_string__Object__to_s
]))(var116
) /* to_s on <var116:Array[Object]>*/;
9779 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var119
) /* require_declaration on <self:SeparateCompilerVisitor>*/;
9781 var121
= varonce120
;
9785 var124
= string__NativeString__to_s_with_length(var122
, var123
);
9787 varonce120
= var121
;
9789 var125
= ((val
* (*)(val
*))(var_valtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_valtype
) /* c_name on <var_valtype:MClassType>*/;
9791 var127
= varonce126
;
9795 var130
= string__NativeString__to_s_with_length(var128
, var129
);
9797 varonce126
= var127
;
9800 var132
= varonce131
;
9802 var133
= "); /* autobox from ";
9804 var135
= string__NativeString__to_s_with_length(var133
, var134
);
9806 varonce131
= var132
;
9808 var136
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9810 var138
= varonce137
;
9814 var141
= string__NativeString__to_s_with_length(var139
, var140
);
9816 varonce137
= var138
;
9819 var143
= varonce142
;
9823 var146
= string__NativeString__to_s_with_length(var144
, var145
);
9825 varonce142
= var143
;
9827 var147
= NEW_array__Array(&type_array__Arraykernel__Object
);
9828 { /* var147 = array_instance Array[Object] */
9830 var149
= NEW_array__NativeArray(var148
, &type_array__NativeArraykernel__Object
);
9831 ((struct instance_array__NativeArray
*)var149
)->values
[0] = (val
*) var_res
;
9832 ((struct instance_array__NativeArray
*)var149
)->values
[1] = (val
*) var121
;
9833 ((struct instance_array__NativeArray
*)var149
)->values
[2] = (val
*) var125
;
9834 ((struct instance_array__NativeArray
*)var149
)->values
[3] = (val
*) var127
;
9835 ((struct instance_array__NativeArray
*)var149
)->values
[4] = (val
*) var_value
;
9836 ((struct instance_array__NativeArray
*)var149
)->values
[5] = (val
*) var132
;
9837 ((struct instance_array__NativeArray
*)var149
)->values
[6] = (val
*) var136
;
9838 ((struct instance_array__NativeArray
*)var149
)->values
[7] = (val
*) var138
;
9839 ((struct instance_array__NativeArray
*)var149
)->values
[8] = (val
*) var_mtype
;
9840 ((struct instance_array__NativeArray
*)var149
)->values
[9] = (val
*) var143
;
9841 ((void (*)(val
*, val
*, long))(var147
->class->vft
[COLOR_array__Array__with_native
]))(var147
, var149
, var148
) /* with_native on <var147:Array[Object]>*/;
9843 var150
= ((val
* (*)(val
*))(var147
->class->vft
[COLOR_string__Object__to_s
]))(var147
) /* to_s on <var147:Array[Object]>*/;
9844 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var150
) /* add on <self:SeparateCompilerVisitor>*/;
9848 var152
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9849 var153
= ((val
* (*)(val
*))(var152
->class->vft
[COLOR_nitni_base__MType__cname_blind
]))(var152
) /* cname_blind on <var152:MType>*/;
9851 var155
= varonce154
;
9855 var158
= string__NativeString__to_s_with_length(var156
, var157
);
9857 varonce154
= var155
;
9859 var159
= ((short int (*)(val
*, val
*))(var153
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var153
, var155
) /* == on <var153:String>*/;
9862 var161
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_nitni_base__MType__cname_blind
]))(var_mtype
) /* cname_blind on <var_mtype:MType>*/;
9864 var163
= varonce162
;
9868 var166
= string__NativeString__to_s_with_length(var164
, var165
);
9870 varonce162
= var163
;
9872 var167
= ((short int (*)(val
*, val
*))(var161
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var161
, var163
) /* == on <var161:String>*/;
9881 var168
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_mtype
) /* new_var on <self:SeparateCompilerVisitor>*/;
9882 var_res169
= var168
;
9884 var171
= varonce170
;
9888 var174
= string__NativeString__to_s_with_length(var172
, var173
);
9890 varonce170
= var171
;
9893 var176
= varonce175
;
9895 var177
= " left unintialized (cannot convert ";
9897 var179
= string__NativeString__to_s_with_length(var177
, var178
);
9899 varonce175
= var176
;
9901 var180
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9903 var182
= varonce181
;
9907 var185
= string__NativeString__to_s_with_length(var183
, var184
);
9909 varonce181
= var182
;
9912 var187
= varonce186
;
9916 var190
= string__NativeString__to_s_with_length(var188
, var189
);
9918 varonce186
= var187
;
9920 var191
= NEW_array__Array(&type_array__Arraykernel__Object
);
9921 { /* var191 = array_instance Array[Object] */
9923 var193
= NEW_array__NativeArray(var192
, &type_array__NativeArraykernel__Object
);
9924 ((struct instance_array__NativeArray
*)var193
)->values
[0] = (val
*) var171
;
9925 ((struct instance_array__NativeArray
*)var193
)->values
[1] = (val
*) var_res169
;
9926 ((struct instance_array__NativeArray
*)var193
)->values
[2] = (val
*) var176
;
9927 ((struct instance_array__NativeArray
*)var193
)->values
[3] = (val
*) var180
;
9928 ((struct instance_array__NativeArray
*)var193
)->values
[4] = (val
*) var182
;
9929 ((struct instance_array__NativeArray
*)var193
)->values
[5] = (val
*) var_mtype
;
9930 ((struct instance_array__NativeArray
*)var193
)->values
[6] = (val
*) var187
;
9931 ((void (*)(val
*, val
*, long))(var191
->class->vft
[COLOR_array__Array__with_native
]))(var191
, var193
, var192
) /* with_native on <var191:Array[Object]>*/;
9933 var194
= ((val
* (*)(val
*))(var191
->class->vft
[COLOR_string__Object__to_s
]))(var191
) /* to_s on <var191:Array[Object]>*/;
9934 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var194
) /* add on <self:SeparateCompilerVisitor>*/;
9936 var196
= varonce195
;
9938 var197
= "printf(\"Cast error: Cannot cast %s to %s.\\n\", \"";
9940 var199
= string__NativeString__to_s_with_length(var197
, var198
);
9942 varonce195
= var196
;
9944 var200
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9946 var202
= varonce201
;
9950 var205
= string__NativeString__to_s_with_length(var203
, var204
);
9952 varonce201
= var202
;
9955 var207
= varonce206
;
9957 var208
= "\"); show_backtrace(1);";
9959 var210
= string__NativeString__to_s_with_length(var208
, var209
);
9961 varonce206
= var207
;
9963 var211
= NEW_array__Array(&type_array__Arraykernel__Object
);
9964 { /* var211 = array_instance Array[Object] */
9966 var213
= NEW_array__NativeArray(var212
, &type_array__NativeArraykernel__Object
);
9967 ((struct instance_array__NativeArray
*)var213
)->values
[0] = (val
*) var196
;
9968 ((struct instance_array__NativeArray
*)var213
)->values
[1] = (val
*) var200
;
9969 ((struct instance_array__NativeArray
*)var213
)->values
[2] = (val
*) var202
;
9970 ((struct instance_array__NativeArray
*)var213
)->values
[3] = (val
*) var_mtype
;
9971 ((struct instance_array__NativeArray
*)var213
)->values
[4] = (val
*) var207
;
9972 ((void (*)(val
*, val
*, long))(var211
->class->vft
[COLOR_array__Array__with_native
]))(var211
, var213
, var212
) /* with_native on <var211:Array[Object]>*/;
9974 var214
= ((val
* (*)(val
*))(var211
->class->vft
[COLOR_string__Object__to_s
]))(var211
) /* to_s on <var211:Array[Object]>*/;
9975 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var214
) /* add on <self:SeparateCompilerVisitor>*/;
9986 /* method separate_compiler#SeparateCompilerVisitor#autobox for (self: Object, RuntimeVariable, MType): RuntimeVariable */
9987 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__autobox(val
* self
, val
* p0
, val
* p1
) {
9988 val
* var
/* : RuntimeVariable */;
9989 val
* var1
/* : RuntimeVariable */;
9990 var1
= separate_compiler__SeparateCompilerVisitor__autobox(self
, p0
, p1
);