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 long var106
/* : Int */;
560 long var_time1
/* var time1: Int */;
561 val
* var107
/* : ToolContext */;
562 static val
* varonce108
;
563 val
* var109
/* : String */;
564 char* var110
/* : NativeString */;
565 long var111
/* : Int */;
566 val
* var112
/* : String */;
567 long var113
/* : Int */;
568 long var115
/* : Int */;
569 static val
* varonce116
;
570 val
* var117
/* : String */;
571 char* var118
/* : NativeString */;
572 long var119
/* : Int */;
573 val
* var120
/* : String */;
574 val
* var121
/* : Array[Object] */;
575 long var122
/* : Int */;
576 val
* var123
/* : NativeArray[Object] */;
577 val
* var124
/* : Object */;
578 val
* var125
/* : String */;
579 long var126
/* : Int */;
581 var_runtime_type_analysis
= p1
;
582 var
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
584 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
588 var3
= "*** GENERATING C ***";
590 var5
= string__NativeString__to_s_with_length(var3
, var4
);
595 ((void (*)(val
*, val
*, long))(var1
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var1
, var2
, var6
) /* info on <var1:ToolContext>*/;
596 var7
= NEW_separate_compiler__SeparateCompiler(&type_separate_compiler__SeparateCompiler
);
597 ((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>*/;
599 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_header
]))(var_compiler
) /* compile_header on <var_compiler:SeparateCompiler>*/;
600 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
604 var11
= "Property coloring";
606 var13
= string__NativeString__to_s_with_length(var11
, var12
);
611 ((void (*)(val
*, val
*, long))(var8
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var8
, var10
, var14
) /* info on <var8:ToolContext>*/;
612 var15
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__name
]))(var_mainmodule
) /* name on <var_mainmodule:MModule>*/;
618 var20
= string__NativeString__to_s_with_length(var18
, var19
);
622 var21
= NEW_array__Array(&type_array__Arraykernel__Object
);
623 { /* var21 = array_instance Array[Object] */
625 var23
= NEW_array__NativeArray(var22
, &type_array__NativeArraykernel__Object
);
626 ((struct instance_array__NativeArray
*)var23
)->values
[0] = (val
*) var15
;
627 ((struct instance_array__NativeArray
*)var23
)->values
[1] = (val
*) var17
;
628 ((void (*)(val
*, val
*, long))(var21
->class->vft
[COLOR_array__Array__with_native
]))(var21
, var23
, var22
) /* with_native on <var21:Array[Object]>*/;
630 var24
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_string__Object__to_s
]))(var21
) /* to_s on <var21:Array[Object]>*/;
631 var25
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var24
) /* new_file on <var_compiler:SeparateCompiler>*/;
633 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__do_property_coloring
]))(var_compiler
) /* do_property_coloring on <var_compiler:SeparateCompiler>*/;
634 var26
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(var_mainmodule
) /* in_importation on <var_mainmodule:MModule>*/;
635 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var26
) /* greaters on <var26:POSetElement[MModule]>*/;
636 var28
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var27
) /* iterator on <var27:Collection[Object](Collection[MModule])>*/;
638 var29
= ((short int (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var28
) /* is_ok on <var28:Iterator[nullable Object]>*/;
640 var30
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var28
) /* item on <var28:Iterator[nullable Object]>*/;
642 var31
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MModule__intro_mclasses
]))(var_m
) /* intro_mclasses on <var_m:MModule>*/;
643 var32
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var31
) /* iterator on <var31:Array[MClass]>*/;
645 var33
= ((short int (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var32
) /* is_ok on <var32:Iterator[nullable Object]>*/;
647 var34
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var32
) /* item on <var32:Iterator[nullable Object]>*/;
649 var36
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__kind
]))(var_mclass
) /* kind on <var_mclass:MClass>*/;
650 var37
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__abstract_kind
]))(self
) /* abstract_kind on <self:ModelBuilder>*/;
651 var38
= ((short int (*)(val
*, val
*))(var36
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var36
, var37
) /* == on <var36:MClassKind>*/;
656 var39
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__kind
]))(var_mclass
) /* kind on <var_mclass:MClass>*/;
657 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__interface_kind
]))(self
) /* interface_kind on <self:ModelBuilder>*/;
658 var41
= ((short int (*)(val
*, val
*))(var39
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var39
, var40
) /* == on <var39:MClassKind>*/;
665 ((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>*/;
666 CONTINUE_label
: (void)0;
667 ((void (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var32
) /* next on <var32:Iterator[nullable Object]>*/;
669 BREAK_label
: (void)0;
670 CONTINUE_label42
: (void)0;
671 ((void (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var28
) /* next on <var28:Iterator[nullable Object]>*/;
673 BREAK_label42
: (void)0;
674 var43
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__name
]))(var_mainmodule
) /* name on <var_mainmodule:MModule>*/;
680 var48
= string__NativeString__to_s_with_length(var46
, var47
);
684 var49
= NEW_array__Array(&type_array__Arraykernel__Object
);
685 { /* var49 = array_instance Array[Object] */
687 var51
= NEW_array__NativeArray(var50
, &type_array__NativeArraykernel__Object
);
688 ((struct instance_array__NativeArray
*)var51
)->values
[0] = (val
*) var43
;
689 ((struct instance_array__NativeArray
*)var51
)->values
[1] = (val
*) var45
;
690 ((void (*)(val
*, val
*, long))(var49
->class->vft
[COLOR_array__Array__with_native
]))(var49
, var51
, var50
) /* with_native on <var49:Array[Object]>*/;
692 var52
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_string__Object__to_s
]))(var49
) /* to_s on <var49:Array[Object]>*/;
693 var53
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var52
) /* new_file on <var_compiler:SeparateCompiler>*/;
695 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_main_function
]))(var_compiler
) /* compile_main_function on <var_compiler:SeparateCompiler>*/;
696 var54
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(var_mainmodule
) /* in_importation on <var_mainmodule:MModule>*/;
697 var55
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var54
) /* greaters on <var54:POSetElement[MModule]>*/;
698 var56
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var55
) /* iterator on <var55:Collection[Object](Collection[MModule])>*/;
700 var57
= ((short int (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var56
) /* is_ok on <var56:Iterator[nullable Object]>*/;
702 var58
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var56
) /* item on <var56:Iterator[nullable Object]>*/;
704 var60
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
708 var63
= "Generate C for module ";
710 var65
= string__NativeString__to_s_with_length(var63
, var64
);
714 var66
= NEW_array__Array(&type_array__Arraykernel__Object
);
715 { /* var66 = array_instance Array[Object] */
717 var68
= NEW_array__NativeArray(var67
, &type_array__NativeArraykernel__Object
);
718 ((struct instance_array__NativeArray
*)var68
)->values
[0] = (val
*) var62
;
719 ((struct instance_array__NativeArray
*)var68
)->values
[1] = (val
*) var_m59
;
720 ((void (*)(val
*, val
*, long))(var66
->class->vft
[COLOR_array__Array__with_native
]))(var66
, var68
, var67
) /* with_native on <var66:Array[Object]>*/;
722 var69
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_string__Object__to_s
]))(var66
) /* to_s on <var66:Array[Object]>*/;
724 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var60
, var69
, var70
) /* info on <var60:ToolContext>*/;
725 var71
= ((val
* (*)(val
*))(var_m59
->class->vft
[COLOR_mmodule__MModule__name
]))(var_m59
) /* name on <var_m59:MModule>*/;
731 var76
= string__NativeString__to_s_with_length(var74
, var75
);
735 var77
= NEW_array__Array(&type_array__Arraykernel__Object
);
736 { /* var77 = array_instance Array[Object] */
738 var79
= NEW_array__NativeArray(var78
, &type_array__NativeArraykernel__Object
);
739 ((struct instance_array__NativeArray
*)var79
)->values
[0] = (val
*) var71
;
740 ((struct instance_array__NativeArray
*)var79
)->values
[1] = (val
*) var73
;
741 ((void (*)(val
*, val
*, long))(var77
->class->vft
[COLOR_array__Array__with_native
]))(var77
, var79
, var78
) /* with_native on <var77:Array[Object]>*/;
743 var80
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_string__Object__to_s
]))(var77
) /* to_s on <var77:Array[Object]>*/;
744 var81
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var80
) /* new_file on <var_compiler:SeparateCompiler>*/;
746 ((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>*/;
747 CONTINUE_label82
: (void)0;
748 ((void (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var56
) /* next on <var56:Iterator[nullable Object]>*/;
750 BREAK_label82
: (void)0;
751 var83
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
755 var86
= "Type coloring";
757 var88
= string__NativeString__to_s_with_length(var86
, var87
);
762 ((void (*)(val
*, val
*, long))(var83
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var83
, var85
, var89
) /* info on <var83:ToolContext>*/;
763 var90
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_mmodule__MModule__name
]))(var_mainmodule
) /* name on <var_mainmodule:MModule>*/;
769 var95
= string__NativeString__to_s_with_length(var93
, var94
);
773 var96
= NEW_array__Array(&type_array__Arraykernel__Object
);
774 { /* var96 = array_instance Array[Object] */
776 var98
= NEW_array__NativeArray(var97
, &type_array__NativeArraykernel__Object
);
777 ((struct instance_array__NativeArray
*)var98
)->values
[0] = (val
*) var90
;
778 ((struct instance_array__NativeArray
*)var98
)->values
[1] = (val
*) var92
;
779 ((void (*)(val
*, val
*, long))(var96
->class->vft
[COLOR_array__Array__with_native
]))(var96
, var98
, var97
) /* with_native on <var96:Array[Object]>*/;
781 var99
= ((val
* (*)(val
*))(var96
->class->vft
[COLOR_string__Object__to_s
]))(var96
) /* to_s on <var96:Array[Object]>*/;
782 var100
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var99
) /* new_file on <var_compiler:SeparateCompiler>*/;
784 var101
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__do_type_coloring
]))(var_compiler
) /* do_type_coloring on <var_compiler:SeparateCompiler>*/;
786 var102
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mtypes
) /* iterator on <var_mtypes:POSet[MType]>*/;
788 var103
= ((short int (*)(val
*))(var102
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var102
) /* is_ok on <var102:Iterator[nullable Object]>*/;
790 var104
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var102
) /* item on <var102:Iterator[nullable Object]>*/;
792 ((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>*/;
793 CONTINUE_label105
: (void)0;
794 ((void (*)(val
*))(var102
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var102
) /* next on <var102:Iterator[nullable Object]>*/;
796 BREAK_label105
: (void)0;
797 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__display_stats
]))(var_compiler
) /* display_stats on <var_compiler:SeparateCompiler>*/;
798 var106
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
800 var107
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
804 var110
= "*** END GENERATING C: ";
806 var112
= string__NativeString__to_s_with_length(var110
, var111
);
810 { /* Inline kernel#Int#- (var_time1,var_time0) */
811 var115
= var_time1
- var_time0
;
814 RET_LABEL114
:(void)0;
821 var120
= string__NativeString__to_s_with_length(var118
, var119
);
825 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
826 { /* var121 = array_instance Array[Object] */
828 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
829 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var109
;
830 var124
= BOX_kernel__Int(var113
); /* autobox from Int to Object */
831 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var124
;
832 ((struct instance_array__NativeArray
*)var123
)->values
[2] = (val
*) var117
;
833 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
835 var125
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
837 ((void (*)(val
*, val
*, long))(var107
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var107
, var125
, var126
) /* info on <var107:ToolContext>*/;
838 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__ModelBuilder__write_and_make
]))(self
, var_compiler
) /* write_and_make on <self:ModelBuilder>*/;
841 /* method separate_compiler#ModelBuilder#run_separate_compiler for (self: Object, MModule, nullable RapidTypeAnalysis) */
842 void VIRTUAL_separate_compiler__ModelBuilder__run_separate_compiler(val
* self
, val
* p0
, val
* p1
) {
843 separate_compiler__ModelBuilder__run_separate_compiler(self
, p0
, p1
);
846 /* method separate_compiler#SeparateCompiler#runtime_type_analysis for (self: SeparateCompiler): nullable RapidTypeAnalysis */
847 val
* separate_compiler__SeparateCompiler__runtime_type_analysis(val
* self
) {
848 val
* var
/* : nullable RapidTypeAnalysis */;
849 val
* var1
/* : nullable RapidTypeAnalysis */;
850 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64druntime_type_analysis
].val
; /* @runtime_type_analysis on <self:SeparateCompiler> */
855 /* method separate_compiler#SeparateCompiler#runtime_type_analysis for (self: Object): nullable RapidTypeAnalysis */
856 val
* VIRTUAL_separate_compiler__SeparateCompiler__runtime_type_analysis(val
* self
) {
857 val
* var
/* : nullable RapidTypeAnalysis */;
858 val
* var1
/* : nullable RapidTypeAnalysis */;
859 var1
= separate_compiler__SeparateCompiler__runtime_type_analysis(self
);
864 /* method separate_compiler#SeparateCompiler#runtime_type_analysis= for (self: SeparateCompiler, nullable RapidTypeAnalysis) */
865 void separate_compiler__SeparateCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
866 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64druntime_type_analysis
].val
= p0
; /* @runtime_type_analysis on <self:SeparateCompiler> */
869 /* method separate_compiler#SeparateCompiler#runtime_type_analysis= for (self: Object, nullable RapidTypeAnalysis) */
870 void VIRTUAL_separate_compiler__SeparateCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
871 separate_compiler__SeparateCompiler__runtime_type_analysis_61d(self
, p0
);
874 /* method separate_compiler#SeparateCompiler#undead_types for (self: SeparateCompiler): Set[MType] */
875 val
* separate_compiler__SeparateCompiler__undead_types(val
* self
) {
876 val
* var
/* : Set[MType] */;
877 val
* var1
/* : Set[MType] */;
878 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dundead_types
].val
; /* @undead_types on <self:SeparateCompiler> */
880 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @undead_types");
881 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 115);
888 /* method separate_compiler#SeparateCompiler#undead_types for (self: Object): Set[MType] */
889 val
* VIRTUAL_separate_compiler__SeparateCompiler__undead_types(val
* self
) {
890 val
* var
/* : Set[MType] */;
891 val
* var1
/* : Set[MType] */;
892 var1
= separate_compiler__SeparateCompiler__undead_types(self
);
897 /* method separate_compiler#SeparateCompiler#undead_types= for (self: SeparateCompiler, Set[MType]) */
898 void separate_compiler__SeparateCompiler__undead_types_61d(val
* self
, val
* p0
) {
899 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dundead_types
].val
= p0
; /* @undead_types on <self:SeparateCompiler> */
902 /* method separate_compiler#SeparateCompiler#undead_types= for (self: Object, Set[MType]) */
903 void VIRTUAL_separate_compiler__SeparateCompiler__undead_types_61d(val
* self
, val
* p0
) {
904 separate_compiler__SeparateCompiler__undead_types_61d(self
, p0
);
907 /* method separate_compiler#SeparateCompiler#partial_types for (self: SeparateCompiler): Set[MType] */
908 val
* separate_compiler__SeparateCompiler__partial_types(val
* self
) {
909 val
* var
/* : Set[MType] */;
910 val
* var1
/* : Set[MType] */;
911 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dpartial_types
].val
; /* @partial_types on <self:SeparateCompiler> */
913 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @partial_types");
914 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 116);
921 /* method separate_compiler#SeparateCompiler#partial_types for (self: Object): Set[MType] */
922 val
* VIRTUAL_separate_compiler__SeparateCompiler__partial_types(val
* self
) {
923 val
* var
/* : Set[MType] */;
924 val
* var1
/* : Set[MType] */;
925 var1
= separate_compiler__SeparateCompiler__partial_types(self
);
930 /* method separate_compiler#SeparateCompiler#partial_types= for (self: SeparateCompiler, Set[MType]) */
931 void separate_compiler__SeparateCompiler__partial_types_61d(val
* self
, val
* p0
) {
932 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dpartial_types
].val
= p0
; /* @partial_types on <self:SeparateCompiler> */
935 /* method separate_compiler#SeparateCompiler#partial_types= for (self: Object, Set[MType]) */
936 void VIRTUAL_separate_compiler__SeparateCompiler__partial_types_61d(val
* self
, val
* p0
) {
937 separate_compiler__SeparateCompiler__partial_types_61d(self
, p0
);
940 /* method separate_compiler#SeparateCompiler#live_unresolved_types for (self: SeparateCompiler): Map[MClassDef, Set[MType]] */
941 val
* separate_compiler__SeparateCompiler__live_unresolved_types(val
* self
) {
942 val
* var
/* : Map[MClassDef, Set[MType]] */;
943 val
* var1
/* : Map[MClassDef, Set[MType]] */;
944 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dlive_unresolved_types
].val
; /* @live_unresolved_types on <self:SeparateCompiler> */
946 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @live_unresolved_types");
947 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 117);
954 /* method separate_compiler#SeparateCompiler#live_unresolved_types for (self: Object): Map[MClassDef, Set[MType]] */
955 val
* VIRTUAL_separate_compiler__SeparateCompiler__live_unresolved_types(val
* self
) {
956 val
* var
/* : Map[MClassDef, Set[MType]] */;
957 val
* var1
/* : Map[MClassDef, Set[MType]] */;
958 var1
= separate_compiler__SeparateCompiler__live_unresolved_types(self
);
963 /* method separate_compiler#SeparateCompiler#live_unresolved_types= for (self: SeparateCompiler, Map[MClassDef, Set[MType]]) */
964 void separate_compiler__SeparateCompiler__live_unresolved_types_61d(val
* self
, val
* p0
) {
965 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dlive_unresolved_types
].val
= p0
; /* @live_unresolved_types on <self:SeparateCompiler> */
968 /* method separate_compiler#SeparateCompiler#live_unresolved_types= for (self: Object, Map[MClassDef, Set[MType]]) */
969 void VIRTUAL_separate_compiler__SeparateCompiler__live_unresolved_types_61d(val
* self
, val
* p0
) {
970 separate_compiler__SeparateCompiler__live_unresolved_types_61d(self
, p0
);
973 /* method separate_compiler#SeparateCompiler#type_layout for (self: SeparateCompiler): nullable Layout[MType] */
974 val
* separate_compiler__SeparateCompiler__type_layout(val
* self
) {
975 val
* var
/* : nullable Layout[MType] */;
976 val
* var1
/* : nullable Layout[MType] */;
977 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dtype_layout
].val
; /* @type_layout on <self:SeparateCompiler> */
982 /* method separate_compiler#SeparateCompiler#type_layout for (self: Object): nullable Layout[MType] */
983 val
* VIRTUAL_separate_compiler__SeparateCompiler__type_layout(val
* self
) {
984 val
* var
/* : nullable Layout[MType] */;
985 val
* var1
/* : nullable Layout[MType] */;
986 var1
= separate_compiler__SeparateCompiler__type_layout(self
);
991 /* method separate_compiler#SeparateCompiler#type_layout= for (self: SeparateCompiler, nullable Layout[MType]) */
992 void separate_compiler__SeparateCompiler__type_layout_61d(val
* self
, val
* p0
) {
993 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dtype_layout
].val
= p0
; /* @type_layout on <self:SeparateCompiler> */
996 /* method separate_compiler#SeparateCompiler#type_layout= for (self: Object, nullable Layout[MType]) */
997 void VIRTUAL_separate_compiler__SeparateCompiler__type_layout_61d(val
* self
, val
* p0
) {
998 separate_compiler__SeparateCompiler__type_layout_61d(self
, p0
);
1001 /* method separate_compiler#SeparateCompiler#resolution_layout for (self: SeparateCompiler): nullable Layout[MType] */
1002 val
* separate_compiler__SeparateCompiler__resolution_layout(val
* self
) {
1003 val
* var
/* : nullable Layout[MType] */;
1004 val
* var1
/* : nullable Layout[MType] */;
1005 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dresolution_layout
].val
; /* @resolution_layout on <self:SeparateCompiler> */
1010 /* method separate_compiler#SeparateCompiler#resolution_layout for (self: Object): nullable Layout[MType] */
1011 val
* VIRTUAL_separate_compiler__SeparateCompiler__resolution_layout(val
* self
) {
1012 val
* var
/* : nullable Layout[MType] */;
1013 val
* var1
/* : nullable Layout[MType] */;
1014 var1
= separate_compiler__SeparateCompiler__resolution_layout(self
);
1019 /* method separate_compiler#SeparateCompiler#resolution_layout= for (self: SeparateCompiler, nullable Layout[MType]) */
1020 void separate_compiler__SeparateCompiler__resolution_layout_61d(val
* self
, val
* p0
) {
1021 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dresolution_layout
].val
= p0
; /* @resolution_layout on <self:SeparateCompiler> */
1024 /* method separate_compiler#SeparateCompiler#resolution_layout= for (self: Object, nullable Layout[MType]) */
1025 void VIRTUAL_separate_compiler__SeparateCompiler__resolution_layout_61d(val
* self
, val
* p0
) {
1026 separate_compiler__SeparateCompiler__resolution_layout_61d(self
, p0
);
1029 /* method separate_compiler#SeparateCompiler#method_layout for (self: SeparateCompiler): nullable Layout[PropertyLayoutElement] */
1030 val
* separate_compiler__SeparateCompiler__method_layout(val
* self
) {
1031 val
* var
/* : nullable Layout[PropertyLayoutElement] */;
1032 val
* var1
/* : nullable Layout[PropertyLayoutElement] */;
1033 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dmethod_layout
].val
; /* @method_layout on <self:SeparateCompiler> */
1038 /* method separate_compiler#SeparateCompiler#method_layout for (self: Object): nullable Layout[PropertyLayoutElement] */
1039 val
* VIRTUAL_separate_compiler__SeparateCompiler__method_layout(val
* self
) {
1040 val
* var
/* : nullable Layout[PropertyLayoutElement] */;
1041 val
* var1
/* : nullable Layout[PropertyLayoutElement] */;
1042 var1
= separate_compiler__SeparateCompiler__method_layout(self
);
1047 /* method separate_compiler#SeparateCompiler#method_layout= for (self: SeparateCompiler, nullable Layout[PropertyLayoutElement]) */
1048 void separate_compiler__SeparateCompiler__method_layout_61d(val
* self
, val
* p0
) {
1049 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dmethod_layout
].val
= p0
; /* @method_layout on <self:SeparateCompiler> */
1052 /* method separate_compiler#SeparateCompiler#method_layout= for (self: Object, nullable Layout[PropertyLayoutElement]) */
1053 void VIRTUAL_separate_compiler__SeparateCompiler__method_layout_61d(val
* self
, val
* p0
) {
1054 separate_compiler__SeparateCompiler__method_layout_61d(self
, p0
);
1057 /* method separate_compiler#SeparateCompiler#attr_layout for (self: SeparateCompiler): nullable Layout[MAttribute] */
1058 val
* separate_compiler__SeparateCompiler__attr_layout(val
* self
) {
1059 val
* var
/* : nullable Layout[MAttribute] */;
1060 val
* var1
/* : nullable Layout[MAttribute] */;
1061 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dattr_layout
].val
; /* @attr_layout on <self:SeparateCompiler> */
1066 /* method separate_compiler#SeparateCompiler#attr_layout for (self: Object): nullable Layout[MAttribute] */
1067 val
* VIRTUAL_separate_compiler__SeparateCompiler__attr_layout(val
* self
) {
1068 val
* var
/* : nullable Layout[MAttribute] */;
1069 val
* var1
/* : nullable Layout[MAttribute] */;
1070 var1
= separate_compiler__SeparateCompiler__attr_layout(self
);
1075 /* method separate_compiler#SeparateCompiler#attr_layout= for (self: SeparateCompiler, nullable Layout[MAttribute]) */
1076 void separate_compiler__SeparateCompiler__attr_layout_61d(val
* self
, val
* p0
) {
1077 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dattr_layout
].val
= p0
; /* @attr_layout on <self:SeparateCompiler> */
1080 /* method separate_compiler#SeparateCompiler#attr_layout= for (self: Object, nullable Layout[MAttribute]) */
1081 void VIRTUAL_separate_compiler__SeparateCompiler__attr_layout_61d(val
* self
, val
* p0
) {
1082 separate_compiler__SeparateCompiler__attr_layout_61d(self
, p0
);
1085 /* method separate_compiler#SeparateCompiler#init for (self: SeparateCompiler, MModule, ModelBuilder, nullable RapidTypeAnalysis) */
1086 void separate_compiler__SeparateCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1087 val
* var_mainmodule
/* var mainmodule: MModule */;
1088 val
* var_mmbuilder
/* var mmbuilder: ModelBuilder */;
1089 val
* var_runtime_type_analysis
/* var runtime_type_analysis: nullable RapidTypeAnalysis */;
1090 static val
* varonce
;
1091 val
* var
/* : String */;
1092 char* var1
/* : NativeString */;
1093 long var2
/* : Int */;
1094 val
* var3
/* : String */;
1095 val
* var4
/* : CodeFile */;
1096 val
* var_file
/* var file: CodeFile */;
1097 val
* var5
/* : CodeWriter */;
1098 var_mainmodule
= p0
;
1100 var_runtime_type_analysis
= p2
;
1101 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__init
]))(self
, var_mainmodule
, var_mmbuilder
) /* init on <self:SeparateCompiler>*/;
1105 var1
= "nit.common";
1107 var3
= string__NativeString__to_s_with_length(var1
, var2
);
1111 var4
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(self
, var
) /* new_file on <self:SeparateCompiler>*/;
1113 var5
= NEW_abstract_compiler__CodeWriter(&type_abstract_compiler__CodeWriter
);
1114 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_compiler__CodeWriter__init
]))(var5
, var_file
) /* init on <var5:CodeWriter>*/;
1115 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header_61d
]))(self
, var5
) /* header= on <self:SeparateCompiler>*/;
1116 ((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>*/;
1117 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_box_kinds
]))(self
) /* compile_box_kinds on <self:SeparateCompiler>*/;
1120 /* method separate_compiler#SeparateCompiler#init for (self: Object, MModule, ModelBuilder, nullable RapidTypeAnalysis) */
1121 void VIRTUAL_separate_compiler__SeparateCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1122 separate_compiler__SeparateCompiler__init(self
, p0
, p1
, p2
);
1125 /* method separate_compiler#SeparateCompiler#compile_header_structs for (self: SeparateCompiler) */
1126 void separate_compiler__SeparateCompiler__compile_header_structs(val
* self
) {
1127 val
* var
/* : CodeWriter */;
1128 static val
* varonce
;
1129 val
* var1
/* : String */;
1130 char* var2
/* : NativeString */;
1131 long var3
/* : Int */;
1132 val
* var4
/* : String */;
1133 val
* var5
/* : CodeWriter */;
1134 static val
* varonce6
;
1135 val
* var7
/* : String */;
1136 char* var8
/* : NativeString */;
1137 long var9
/* : Int */;
1138 val
* var10
/* : String */;
1139 val
* var11
/* : CodeWriter */;
1140 static val
* varonce12
;
1141 val
* var13
/* : String */;
1142 char* var14
/* : NativeString */;
1143 long var15
/* : Int */;
1144 val
* var16
/* : String */;
1145 val
* var17
/* : CodeWriter */;
1146 static val
* varonce18
;
1147 val
* var19
/* : String */;
1148 char* var20
/* : NativeString */;
1149 long var21
/* : Int */;
1150 val
* var22
/* : String */;
1151 short int var23
/* : Bool */;
1152 val
* var24
/* : ModelBuilder */;
1153 val
* var25
/* : ToolContext */;
1154 val
* var26
/* : OptionBool */;
1155 val
* var27
/* : nullable Object */;
1156 short int var28
/* : Bool */;
1157 short int var_
/* var : Bool */;
1158 val
* var29
/* : ModelBuilder */;
1159 val
* var30
/* : ToolContext */;
1160 val
* var31
/* : OptionBool */;
1161 val
* var32
/* : nullable Object */;
1162 short int var33
/* : Bool */;
1163 val
* var34
/* : CodeWriter */;
1164 static val
* varonce35
;
1165 val
* var36
/* : String */;
1166 char* var37
/* : NativeString */;
1167 long var38
/* : Int */;
1168 val
* var39
/* : String */;
1169 val
* var40
/* : CodeWriter */;
1170 static val
* varonce41
;
1171 val
* var42
/* : String */;
1172 char* var43
/* : NativeString */;
1173 long var44
/* : Int */;
1174 val
* var45
/* : String */;
1175 val
* var46
/* : ModelBuilder */;
1176 val
* var47
/* : ToolContext */;
1177 val
* var48
/* : OptionBool */;
1178 val
* var49
/* : nullable Object */;
1179 short int var50
/* : Bool */;
1180 val
* var51
/* : CodeWriter */;
1181 static val
* varonce52
;
1182 val
* var53
/* : String */;
1183 char* var54
/* : NativeString */;
1184 long var55
/* : Int */;
1185 val
* var56
/* : String */;
1186 val
* var57
/* : ModelBuilder */;
1187 val
* var58
/* : ToolContext */;
1188 val
* var59
/* : OptionBool */;
1189 val
* var60
/* : nullable Object */;
1190 short int var61
/* : Bool */;
1191 val
* var62
/* : CodeWriter */;
1192 static val
* varonce63
;
1193 val
* var64
/* : String */;
1194 char* var65
/* : NativeString */;
1195 long var66
/* : Int */;
1196 val
* var67
/* : String */;
1197 val
* var68
/* : CodeWriter */;
1198 static val
* varonce69
;
1199 val
* var70
/* : String */;
1200 char* var71
/* : NativeString */;
1201 long var72
/* : Int */;
1202 val
* var73
/* : String */;
1203 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1207 var2
= "typedef void(*nitmethod_t)(void); /* general C type representing a Nit method. */";
1209 var4
= string__NativeString__to_s_with_length(var2
, var3
);
1213 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var
, var1
) /* add_decl on <var:CodeWriter>*/;
1214 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_header_attribute_structs
]))(self
) /* compile_header_attribute_structs on <self:SeparateCompiler>*/;
1215 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1219 var8
= "struct class { int box_kind; nitmethod_t vft[]; }; /* general C type representing a Nit class. */";
1221 var10
= string__NativeString__to_s_with_length(var8
, var9
);
1225 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var5
, var7
) /* add_decl on <var5:CodeWriter>*/;
1226 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1230 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. */";
1232 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1236 ((void (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var11
, var13
) /* add_decl on <var11:CodeWriter>*/;
1237 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1241 var20
= "struct instance { const struct type *type; const struct class *class; nitattribute_t attrs[]; }; /* general C type representing a Nit instance. */";
1243 var22
= string__NativeString__to_s_with_length(var20
, var21
);
1247 ((void (*)(val
*, val
*))(var17
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var17
, var19
) /* add_decl on <var17:CodeWriter>*/;
1248 var24
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
1249 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var24
) /* toolcontext on <var24:ModelBuilder>*/;
1250 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var25
) /* opt_phmod_typing on <var25:ToolContext>*/;
1251 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_opts__Option__value
]))(var26
) /* value on <var26:OptionBool>*/;
1252 var28
= ((struct instance_kernel__Bool
*)var27
)->value
; /* autounbox from nullable Object to Bool */;
1257 var29
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
1258 var30
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var29
) /* toolcontext on <var29:ModelBuilder>*/;
1259 var31
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var30
) /* opt_phand_typing on <var30:ToolContext>*/;
1260 var32
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_opts__Option__value
]))(var31
) /* value on <var31:OptionBool>*/;
1261 var33
= ((struct instance_kernel__Bool
*)var32
)->value
; /* autounbox from nullable Object to Bool */;
1265 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1269 var37
= "struct types { int mask; const struct type *types[]; }; /* a list types (used for vts, fts and unresolved lists). */";
1271 var39
= string__NativeString__to_s_with_length(var37
, var38
);
1275 ((void (*)(val
*, val
*))(var34
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var34
, var36
) /* add_decl on <var34:CodeWriter>*/;
1277 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1281 var43
= "struct types { int dummy; const struct type *types[]; }; /* a list types (used for vts, fts and unresolved lists). */";
1283 var45
= string__NativeString__to_s_with_length(var43
, var44
);
1287 ((void (*)(val
*, val
*))(var40
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var40
, var42
) /* add_decl on <var40:CodeWriter>*/;
1289 var46
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
1290 var47
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var46
) /* toolcontext on <var46:ModelBuilder>*/;
1291 var48
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var47
) /* opt_phmod_typing on <var47:ToolContext>*/;
1292 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_opts__Option__value
]))(var48
) /* value on <var48:OptionBool>*/;
1293 var50
= ((struct instance_kernel__Bool
*)var49
)->value
; /* autounbox from nullable Object to Bool */;
1295 var51
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1299 var54
= "#define HASH(mask, id) ((mask)%(id))";
1301 var56
= string__NativeString__to_s_with_length(var54
, var55
);
1305 ((void (*)(val
*, val
*))(var51
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var51
, var53
) /* add_decl on <var51:CodeWriter>*/;
1307 var57
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
1308 var58
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var57
) /* toolcontext on <var57:ModelBuilder>*/;
1309 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var58
) /* opt_phand_typing on <var58:ToolContext>*/;
1310 var60
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_opts__Option__value
]))(var59
) /* value on <var59:OptionBool>*/;
1311 var61
= ((struct instance_kernel__Bool
*)var60
)->value
; /* autounbox from nullable Object to Bool */;
1313 var62
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1317 var65
= "#define HASH(mask, id) ((mask)&(id))";
1319 var67
= string__NativeString__to_s_with_length(var65
, var66
);
1323 ((void (*)(val
*, val
*))(var62
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var62
, var64
) /* add_decl on <var62:CodeWriter>*/;
1327 var68
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1331 var71
= "typedef struct instance val; /* general C type representing a Nit instance. */";
1333 var73
= string__NativeString__to_s_with_length(var71
, var72
);
1337 ((void (*)(val
*, val
*))(var68
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var68
, var70
) /* add_decl on <var68:CodeWriter>*/;
1340 /* method separate_compiler#SeparateCompiler#compile_header_structs for (self: Object) */
1341 void VIRTUAL_separate_compiler__SeparateCompiler__compile_header_structs(val
* self
) {
1342 separate_compiler__SeparateCompiler__compile_header_structs(self
);
1345 /* method separate_compiler#SeparateCompiler#compile_header_attribute_structs for (self: SeparateCompiler) */
1346 void separate_compiler__SeparateCompiler__compile_header_attribute_structs(val
* self
) {
1347 val
* var
/* : ModelBuilder */;
1348 val
* var1
/* : ToolContext */;
1349 val
* var2
/* : OptionBool */;
1350 val
* var3
/* : nullable Object */;
1351 short int var4
/* : Bool */;
1352 val
* var5
/* : CodeWriter */;
1353 static val
* varonce
;
1354 val
* var6
/* : String */;
1355 char* var7
/* : NativeString */;
1356 long var8
/* : Int */;
1357 val
* var9
/* : String */;
1358 val
* var10
/* : CodeWriter */;
1359 static val
* varonce11
;
1360 val
* var12
/* : String */;
1361 char* var13
/* : NativeString */;
1362 long var14
/* : Int */;
1363 val
* var15
/* : String */;
1364 val
* var16
/* : CodeWriter */;
1365 static val
* varonce17
;
1366 val
* var18
/* : String */;
1367 char* var19
/* : NativeString */;
1368 long var20
/* : Int */;
1369 val
* var21
/* : String */;
1370 val
* var22
/* : HashMap[MClass, Int] */;
1371 val
* var23
/* : MapIterator[Object, nullable Object] */;
1372 short int var24
/* : Bool */;
1373 val
* var25
/* : Object */;
1374 val
* var_c
/* var c: MClass */;
1375 val
* var26
/* : nullable Object */;
1376 long var_v
/* var v: Int */;
1377 long var27
/* : Int */;
1378 val
* var28
/* : MClassType */;
1379 val
* var_t
/* var t: MClassType */;
1380 val
* var29
/* : CodeWriter */;
1381 val
* var30
/* : String */;
1382 static val
* varonce31
;
1383 val
* var32
/* : String */;
1384 char* var33
/* : NativeString */;
1385 long var34
/* : Int */;
1386 val
* var35
/* : String */;
1387 val
* var36
/* : String */;
1388 static val
* varonce37
;
1389 val
* var38
/* : String */;
1390 char* var39
/* : NativeString */;
1391 long var40
/* : Int */;
1392 val
* var41
/* : String */;
1393 val
* var42
/* : Array[Object] */;
1394 long var43
/* : Int */;
1395 val
* var44
/* : NativeArray[Object] */;
1396 val
* var45
/* : String */;
1397 val
* var46
/* : CodeWriter */;
1398 static val
* varonce47
;
1399 val
* var48
/* : String */;
1400 char* var49
/* : NativeString */;
1401 long var50
/* : Int */;
1402 val
* var51
/* : String */;
1403 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
1404 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var
) /* toolcontext on <var:ModelBuilder>*/;
1405 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_separate_compiler__ToolContext__opt_no_union_attribute
]))(var1
) /* opt_no_union_attribute on <var1:ToolContext>*/;
1406 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_opts__Option__value
]))(var2
) /* value on <var2:OptionBool>*/;
1407 var4
= ((struct instance_kernel__Bool
*)var3
)->value
; /* autounbox from nullable Object to Bool */;
1409 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1413 var7
= "typedef void* nitattribute_t; /* general C type representing a Nit attribute. */";
1415 var9
= string__NativeString__to_s_with_length(var7
, var8
);
1419 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var5
, var6
) /* add_decl on <var5:CodeWriter>*/;
1421 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1425 var13
= "typedef union {";
1427 var15
= string__NativeString__to_s_with_length(var13
, var14
);
1431 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var10
, var12
) /* add_decl on <var10:CodeWriter>*/;
1432 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1436 var19
= "void* val;";
1438 var21
= string__NativeString__to_s_with_length(var19
, var20
);
1442 ((void (*)(val
*, val
*))(var16
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var16
, var18
) /* add_decl on <var16:CodeWriter>*/;
1443 var22
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
1444 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var22
) /* iterator on <var22:HashMap[MClass, Int]>*/;
1446 var24
= ((short int (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var23
) /* is_ok on <var23:MapIterator[Object, nullable Object]>*/;
1448 var25
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var23
) /* key on <var23:MapIterator[Object, nullable Object]>*/;
1450 var26
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var23
) /* item on <var23:MapIterator[Object, nullable Object]>*/;
1451 var27
= ((struct instance_kernel__Int
*)var26
)->value
; /* autounbox from nullable Object to Int */;
1453 var28
= ((val
* (*)(val
*))(var_c
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c
) /* mclass_type on <var_c:MClass>*/;
1455 var29
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1456 var30
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t
) /* ctype on <var_t:MClassType>*/;
1462 var35
= string__NativeString__to_s_with_length(var33
, var34
);
1466 var36
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctypename
]))(var_t
) /* ctypename on <var_t:MClassType>*/;
1472 var41
= string__NativeString__to_s_with_length(var39
, var40
);
1476 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
1477 { /* var42 = array_instance Array[Object] */
1479 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
1480 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var30
;
1481 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var32
;
1482 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var36
;
1483 ((struct instance_array__NativeArray
*)var44
)->values
[3] = (val
*) var38
;
1484 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
1486 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
1487 ((void (*)(val
*, val
*))(var29
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var29
, var45
) /* add_decl on <var29:CodeWriter>*/;
1488 CONTINUE_label
: (void)0;
1489 ((void (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var23
) /* next on <var23:MapIterator[Object, nullable Object]>*/;
1491 BREAK_label
: (void)0;
1492 var46
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1496 var49
= "} nitattribute_t; /* general C type representing a Nit attribute. */";
1498 var51
= string__NativeString__to_s_with_length(var49
, var50
);
1502 ((void (*)(val
*, val
*))(var46
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var46
, var48
) /* add_decl on <var46:CodeWriter>*/;
1506 /* method separate_compiler#SeparateCompiler#compile_header_attribute_structs for (self: Object) */
1507 void VIRTUAL_separate_compiler__SeparateCompiler__compile_header_attribute_structs(val
* self
) {
1508 separate_compiler__SeparateCompiler__compile_header_attribute_structs(self
);
1511 /* method separate_compiler#SeparateCompiler#compile_box_kinds for (self: SeparateCompiler) */
1512 void separate_compiler__SeparateCompiler__compile_box_kinds(val
* self
) {
1513 val
* var
/* : Array[String] */;
1514 long var1
/* : Int */;
1515 val
* var_
/* var : Array[String] */;
1516 static val
* varonce
;
1517 val
* var2
/* : String */;
1518 char* var3
/* : NativeString */;
1519 long var4
/* : Int */;
1520 val
* var5
/* : String */;
1521 static val
* varonce6
;
1522 val
* var7
/* : String */;
1523 char* var8
/* : NativeString */;
1524 long var9
/* : Int */;
1525 val
* var10
/* : String */;
1526 static val
* varonce11
;
1527 val
* var12
/* : String */;
1528 char* var13
/* : NativeString */;
1529 long var14
/* : Int */;
1530 val
* var15
/* : String */;
1531 static val
* varonce16
;
1532 val
* var17
/* : String */;
1533 char* var18
/* : NativeString */;
1534 long var19
/* : Int */;
1535 val
* var20
/* : String */;
1536 static val
* varonce21
;
1537 val
* var22
/* : String */;
1538 char* var23
/* : NativeString */;
1539 long var24
/* : Int */;
1540 val
* var25
/* : String */;
1541 static val
* varonce26
;
1542 val
* var27
/* : String */;
1543 char* var28
/* : NativeString */;
1544 long var29
/* : Int */;
1545 val
* var30
/* : String */;
1546 val
* var31
/* : Iterator[nullable Object] */;
1547 short int var32
/* : Bool */;
1548 val
* var33
/* : nullable Object */;
1549 val
* var_classname
/* var classname: String */;
1550 val
* var34
/* : MModule */;
1551 val
* var35
/* : Model */;
1552 val
* var36
/* : nullable Array[MClass] */;
1553 val
* var_classes
/* var classes: nullable Array[MClass] */;
1554 val
* var37
/* : null */;
1555 short int var38
/* : Bool */;
1556 long var39
/* : Int */;
1557 long var40
/* : Int */;
1558 short int var41
/* : Bool */;
1559 short int var43
/* : Bool */;
1560 static val
* varonce44
;
1561 val
* var45
/* : String */;
1562 char* var46
/* : NativeString */;
1563 long var47
/* : Int */;
1564 val
* var48
/* : String */;
1565 val
* var49
/* : String */;
1566 val
* var50
/* : HashMap[MClass, Int] */;
1567 val
* var51
/* : nullable Object */;
1568 val
* var52
/* : HashMap[MClass, Int] */;
1569 long var53
/* : Int */;
1570 long var54
/* : Int */;
1571 long var55
/* : Int */;
1572 long var57
/* : Int */;
1573 val
* var58
/* : nullable Object */;
1574 var
= NEW_array__Array(&type_array__Arraystring__String
);
1576 ((void (*)(val
*, long))(var
->class->vft
[COLOR_array__Array__with_capacity
]))(var
, var1
) /* with_capacity on <var:Array[String]>*/;
1583 var5
= string__NativeString__to_s_with_length(var3
, var4
);
1587 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var2
) /* push on <var_:Array[String]>*/;
1593 var10
= string__NativeString__to_s_with_length(var8
, var9
);
1597 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var7
) /* push on <var_:Array[String]>*/;
1603 var15
= string__NativeString__to_s_with_length(var13
, var14
);
1607 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var12
) /* push on <var_:Array[String]>*/;
1613 var20
= string__NativeString__to_s_with_length(var18
, var19
);
1617 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var17
) /* push on <var_:Array[String]>*/;
1621 var23
= "NativeString";
1623 var25
= string__NativeString__to_s_with_length(var23
, var24
);
1627 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var22
) /* push on <var_:Array[String]>*/;
1633 var30
= string__NativeString__to_s_with_length(var28
, var29
);
1637 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var27
) /* push on <var_:Array[String]>*/;
1638 var31
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Array[String]>*/;
1640 var32
= ((short int (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var31
) /* is_ok on <var31:Iterator[nullable Object]>*/;
1642 var33
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var31
) /* item on <var31:Iterator[nullable Object]>*/;
1643 var_classname
= var33
;
1644 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
1645 var35
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_mmodule__MModule__model
]))(var34
) /* model on <var34:MModule>*/;
1646 var36
= ((val
* (*)(val
*, val
*))(var35
->class->vft
[COLOR_model__Model__get_mclasses_by_name
]))(var35
, var_classname
) /* get_mclasses_by_name on <var35:Model>*/;
1647 var_classes
= var36
;
1649 if (var_classes
== NULL
) {
1650 var38
= 1; /* is null */
1652 var38
= 0; /* arg is null but recv is not */
1655 goto CONTINUE_label
;
1658 var39
= ((long (*)(val
*))(var_classes
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_classes
) /* length on <var_classes:nullable Array[MClass](Array[MClass])>*/;
1660 { /* Inline kernel#Int#== (var39,var40) */
1661 var43
= var39
== var40
;
1664 RET_LABEL42
:(void)0;
1672 var48
= string__NativeString__to_s_with_length(var46
, var47
);
1676 var49
= ((val
* (*)(val
*, val
*))(var_classes
->class->vft
[COLOR_string__Collection__join
]))(var_classes
, var45
) /* join on <var_classes:nullable Array[MClass](Array[MClass])>*/;
1677 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var49
) /* print on <self:SeparateCompiler>*/;
1678 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1679 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 178);
1682 var50
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
1683 var51
= ((val
* (*)(val
*))(var_classes
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_classes
) /* first on <var_classes:nullable Array[MClass](Array[MClass])>*/;
1684 var52
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
1685 var53
= ((long (*)(val
*))(var52
->class->vft
[COLOR_abstract_collection__MapRead__length
]))(var52
) /* length on <var52:HashMap[MClass, Int]>*/;
1687 { /* Inline kernel#Int#+ (var53,var54) */
1688 var57
= var53
+ var54
;
1691 RET_LABEL56
:(void)0;
1693 var58
= BOX_kernel__Int(var55
); /* autobox from Int to nullable Object */
1694 ((void (*)(val
*, val
*, val
*))(var50
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var50
, var51
, var58
) /* []= on <var50:HashMap[MClass, Int]>*/;
1695 CONTINUE_label
: (void)0;
1696 ((void (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var31
) /* next on <var31:Iterator[nullable Object]>*/;
1698 BREAK_label
: (void)0;
1701 /* method separate_compiler#SeparateCompiler#compile_box_kinds for (self: Object) */
1702 void VIRTUAL_separate_compiler__SeparateCompiler__compile_box_kinds(val
* self
) {
1703 separate_compiler__SeparateCompiler__compile_box_kinds(self
);
1706 /* method separate_compiler#SeparateCompiler#box_kinds for (self: SeparateCompiler): HashMap[MClass, Int] */
1707 val
* separate_compiler__SeparateCompiler__box_kinds(val
* self
) {
1708 val
* var
/* : HashMap[MClass, Int] */;
1709 val
* var1
/* : HashMap[MClass, Int] */;
1710 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dbox_kinds
].val
; /* @box_kinds on <self:SeparateCompiler> */
1712 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @box_kinds");
1713 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 183);
1720 /* method separate_compiler#SeparateCompiler#box_kinds for (self: Object): HashMap[MClass, Int] */
1721 val
* VIRTUAL_separate_compiler__SeparateCompiler__box_kinds(val
* self
) {
1722 val
* var
/* : HashMap[MClass, Int] */;
1723 val
* var1
/* : HashMap[MClass, Int] */;
1724 var1
= separate_compiler__SeparateCompiler__box_kinds(self
);
1729 /* method separate_compiler#SeparateCompiler#box_kinds= for (self: SeparateCompiler, HashMap[MClass, Int]) */
1730 void separate_compiler__SeparateCompiler__box_kinds_61d(val
* self
, val
* p0
) {
1731 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dbox_kinds
].val
= p0
; /* @box_kinds on <self:SeparateCompiler> */
1734 /* method separate_compiler#SeparateCompiler#box_kinds= for (self: Object, HashMap[MClass, Int]) */
1735 void VIRTUAL_separate_compiler__SeparateCompiler__box_kinds_61d(val
* self
, val
* p0
) {
1736 separate_compiler__SeparateCompiler__box_kinds_61d(self
, p0
);
1739 /* method separate_compiler#SeparateCompiler#box_kind_of for (self: SeparateCompiler, MClass): Int */
1740 long separate_compiler__SeparateCompiler__box_kind_of(val
* self
, val
* p0
) {
1741 long var
/* : Int */;
1742 val
* var_mclass
/* var mclass: MClass */;
1743 val
* var1
/* : MClassType */;
1744 val
* var2
/* : String */;
1745 static val
* varonce
;
1746 val
* var3
/* : String */;
1747 char* var4
/* : NativeString */;
1748 long var5
/* : Int */;
1749 val
* var6
/* : String */;
1750 short int var7
/* : Bool */;
1751 long var8
/* : Int */;
1752 val
* var9
/* : MClassKind */;
1753 val
* var10
/* : MClassKind */;
1754 short int var11
/* : Bool */;
1755 val
* var12
/* : HashMap[MClass, Int] */;
1756 val
* var13
/* : MModule */;
1757 static val
* varonce14
;
1758 val
* var15
/* : String */;
1759 char* var16
/* : NativeString */;
1760 long var17
/* : Int */;
1761 val
* var18
/* : String */;
1762 val
* var19
/* : MClass */;
1763 val
* var20
/* : nullable Object */;
1764 long var21
/* : Int */;
1765 val
* var22
/* : HashMap[MClass, Int] */;
1766 val
* var23
/* : nullable Object */;
1767 long var24
/* : Int */;
1769 var1
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:MClass>*/;
1770 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var1
) /* ctype on <var1:MClassType>*/;
1776 var6
= string__NativeString__to_s_with_length(var4
, var5
);
1780 var7
= ((short int (*)(val
*, val
*))(var2
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var2
, var3
) /* == on <var2:String>*/;
1786 var9
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__kind
]))(var_mclass
) /* kind on <var_mclass:MClass>*/;
1787 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__extern_kind
]))(self
) /* extern_kind on <self:SeparateCompiler>*/;
1788 var11
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var9
, var10
) /* == on <var9:MClassKind>*/;
1790 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
1791 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
1797 var18
= string__NativeString__to_s_with_length(var16
, var17
);
1801 var19
= ((val
* (*)(val
*, val
*))(var13
->class->vft
[COLOR_model__MModule__get_primitive_class
]))(var13
, var15
) /* get_primitive_class on <var13:MModule>*/;
1802 var20
= ((val
* (*)(val
*, val
*))(var12
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var12
, var19
) /* [] on <var12:HashMap[MClass, Int]>*/;
1803 var21
= ((struct instance_kernel__Int
*)var20
)->value
; /* autounbox from nullable Object to Int */;
1807 var22
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
1808 var23
= ((val
* (*)(val
*, val
*))(var22
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var22
, var_mclass
) /* [] on <var22:HashMap[MClass, Int]>*/;
1809 var24
= ((struct instance_kernel__Int
*)var23
)->value
; /* autounbox from nullable Object to Int */;
1817 /* method separate_compiler#SeparateCompiler#box_kind_of for (self: Object, MClass): Int */
1818 long VIRTUAL_separate_compiler__SeparateCompiler__box_kind_of(val
* self
, val
* p0
) {
1819 long var
/* : Int */;
1820 long var1
/* : Int */;
1821 var1
= separate_compiler__SeparateCompiler__box_kind_of(self
, p0
);
1826 /* method separate_compiler#SeparateCompiler#compile_color_consts for (self: SeparateCompiler, Map[Object, Int]) */
1827 void separate_compiler__SeparateCompiler__compile_color_consts(val
* self
, val
* p0
) {
1828 val
* var_colors
/* var colors: Map[Object, Int] */;
1829 val
* var
/* : AbstractCompilerVisitor */;
1830 val
* var_v
/* var v: SeparateCompilerVisitor */;
1831 val
* var1
/* : MapIterator[Object, nullable Object] */;
1832 short int var2
/* : Bool */;
1833 val
* var3
/* : Object */;
1834 val
* var_m
/* var m: Object */;
1835 val
* var4
/* : nullable Object */;
1836 long var_c
/* var c: Int */;
1837 long var5
/* : Int */;
1839 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
1841 var1
= ((val
* (*)(val
*))(var_colors
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_colors
) /* iterator on <var_colors:Map[Object, Int]>*/;
1843 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var1
) /* is_ok on <var1:MapIterator[Object, nullable Object]>*/;
1845 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var1
) /* key on <var1:MapIterator[Object, nullable Object]>*/;
1847 var4
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var1
) /* item on <var1:MapIterator[Object, nullable Object]>*/;
1848 var5
= ((struct instance_kernel__Int
*)var4
)->value
; /* autounbox from nullable Object to Int */;
1850 ((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>*/;
1851 CONTINUE_label
: (void)0;
1852 ((void (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var1
) /* next on <var1:MapIterator[Object, nullable Object]>*/;
1854 BREAK_label
: (void)0;
1857 /* method separate_compiler#SeparateCompiler#compile_color_consts for (self: Object, Map[Object, Int]) */
1858 void VIRTUAL_separate_compiler__SeparateCompiler__compile_color_consts(val
* self
, val
* p0
) {
1859 separate_compiler__SeparateCompiler__compile_color_consts(self
, p0
);
1862 /* method separate_compiler#SeparateCompiler#compile_color_const for (self: SeparateCompiler, SeparateCompilerVisitor, Object, Int) */
1863 void separate_compiler__SeparateCompiler__compile_color_const(val
* self
, val
* p0
, val
* p1
, long p2
) {
1864 val
* var_v
/* var v: SeparateCompilerVisitor */;
1865 val
* var_m
/* var m: Object */;
1866 long var_color
/* var color: Int */;
1867 val
* var
/* : HashSet[Object] */;
1868 short int var1
/* : Bool */;
1869 short int var2
/* : Bool */;
1872 val
* var3
/* : ModelBuilder */;
1873 val
* var4
/* : ToolContext */;
1874 val
* var5
/* : OptionBool */;
1875 val
* var6
/* : nullable Object */;
1876 short int var7
/* : Bool */;
1877 val
* var8
/* : String */;
1878 static val
* varonce
;
1879 val
* var9
/* : String */;
1880 char* var10
/* : NativeString */;
1881 long var11
/* : Int */;
1882 val
* var12
/* : String */;
1883 val
* var13
/* : String */;
1884 static val
* varonce14
;
1885 val
* var15
/* : String */;
1886 char* var16
/* : NativeString */;
1887 long var17
/* : Int */;
1888 val
* var18
/* : String */;
1889 val
* var19
/* : Array[Object] */;
1890 long var20
/* : Int */;
1891 val
* var21
/* : NativeArray[Object] */;
1892 val
* var22
/* : Object */;
1893 val
* var23
/* : String */;
1894 val
* var24
/* : String */;
1895 static val
* varonce25
;
1896 val
* var26
/* : String */;
1897 char* var27
/* : NativeString */;
1898 long var28
/* : Int */;
1899 val
* var29
/* : String */;
1900 val
* var30
/* : String */;
1901 static val
* varonce31
;
1902 val
* var32
/* : String */;
1903 char* var33
/* : NativeString */;
1904 long var34
/* : Int */;
1905 val
* var35
/* : String */;
1906 val
* var36
/* : Array[Object] */;
1907 long var37
/* : Int */;
1908 val
* var38
/* : NativeArray[Object] */;
1909 val
* var39
/* : String */;
1910 static val
* varonce40
;
1911 val
* var41
/* : String */;
1912 char* var42
/* : NativeString */;
1913 long var43
/* : Int */;
1914 val
* var44
/* : String */;
1915 val
* var45
/* : String */;
1916 static val
* varonce46
;
1917 val
* var47
/* : String */;
1918 char* var48
/* : NativeString */;
1919 long var49
/* : Int */;
1920 val
* var50
/* : String */;
1921 static val
* varonce51
;
1922 val
* var52
/* : String */;
1923 char* var53
/* : NativeString */;
1924 long var54
/* : Int */;
1925 val
* var55
/* : String */;
1926 val
* var56
/* : Array[Object] */;
1927 long var57
/* : Int */;
1928 val
* var58
/* : NativeArray[Object] */;
1929 val
* var59
/* : Object */;
1930 val
* var60
/* : String */;
1931 short int var61
/* : Bool */;
1934 val
* var64
/* : ModelBuilder */;
1935 val
* var65
/* : ToolContext */;
1936 val
* var66
/* : OptionBool */;
1937 val
* var67
/* : nullable Object */;
1938 short int var68
/* : Bool */;
1939 val
* var69
/* : String */;
1940 static val
* varonce70
;
1941 val
* var71
/* : String */;
1942 char* var72
/* : NativeString */;
1943 long var73
/* : Int */;
1944 val
* var74
/* : String */;
1945 val
* var75
/* : String */;
1946 static val
* varonce76
;
1947 val
* var77
/* : String */;
1948 char* var78
/* : NativeString */;
1949 long var79
/* : Int */;
1950 val
* var80
/* : String */;
1951 val
* var81
/* : Array[Object] */;
1952 long var82
/* : Int */;
1953 val
* var83
/* : NativeArray[Object] */;
1954 val
* var84
/* : Object */;
1955 val
* var85
/* : String */;
1956 val
* var86
/* : String */;
1957 static val
* varonce87
;
1958 val
* var88
/* : String */;
1959 char* var89
/* : NativeString */;
1960 long var90
/* : Int */;
1961 val
* var91
/* : String */;
1962 val
* var92
/* : String */;
1963 static val
* varonce93
;
1964 val
* var94
/* : String */;
1965 char* var95
/* : NativeString */;
1966 long var96
/* : Int */;
1967 val
* var97
/* : String */;
1968 val
* var98
/* : Array[Object] */;
1969 long var99
/* : Int */;
1970 val
* var100
/* : NativeArray[Object] */;
1971 val
* var101
/* : String */;
1972 static val
* varonce102
;
1973 val
* var103
/* : String */;
1974 char* var104
/* : NativeString */;
1975 long var105
/* : Int */;
1976 val
* var106
/* : String */;
1977 val
* var107
/* : String */;
1978 static val
* varonce108
;
1979 val
* var109
/* : String */;
1980 char* var110
/* : NativeString */;
1981 long var111
/* : Int */;
1982 val
* var112
/* : String */;
1983 static val
* varonce113
;
1984 val
* var114
/* : String */;
1985 char* var115
/* : NativeString */;
1986 long var116
/* : Int */;
1987 val
* var117
/* : String */;
1988 val
* var118
/* : Array[Object] */;
1989 long var119
/* : Int */;
1990 val
* var120
/* : NativeArray[Object] */;
1991 val
* var121
/* : Object */;
1992 val
* var122
/* : String */;
1993 short int var123
/* : Bool */;
1996 val
* var126
/* : ModelBuilder */;
1997 val
* var127
/* : ToolContext */;
1998 val
* var128
/* : OptionBool */;
1999 val
* var129
/* : nullable Object */;
2000 short int var130
/* : Bool */;
2001 val
* var131
/* : String */;
2002 static val
* varonce132
;
2003 val
* var133
/* : String */;
2004 char* var134
/* : NativeString */;
2005 long var135
/* : Int */;
2006 val
* var136
/* : String */;
2007 val
* var137
/* : String */;
2008 static val
* varonce138
;
2009 val
* var139
/* : String */;
2010 char* var140
/* : NativeString */;
2011 long var141
/* : Int */;
2012 val
* var142
/* : String */;
2013 val
* var143
/* : Array[Object] */;
2014 long var144
/* : Int */;
2015 val
* var145
/* : NativeArray[Object] */;
2016 val
* var146
/* : Object */;
2017 val
* var147
/* : String */;
2018 val
* var148
/* : String */;
2019 static val
* varonce149
;
2020 val
* var150
/* : String */;
2021 char* var151
/* : NativeString */;
2022 long var152
/* : Int */;
2023 val
* var153
/* : String */;
2024 val
* var154
/* : String */;
2025 static val
* varonce155
;
2026 val
* var156
/* : String */;
2027 char* var157
/* : NativeString */;
2028 long var158
/* : Int */;
2029 val
* var159
/* : String */;
2030 val
* var160
/* : Array[Object] */;
2031 long var161
/* : Int */;
2032 val
* var162
/* : NativeArray[Object] */;
2033 val
* var163
/* : String */;
2034 static val
* varonce164
;
2035 val
* var165
/* : String */;
2036 char* var166
/* : NativeString */;
2037 long var167
/* : Int */;
2038 val
* var168
/* : String */;
2039 val
* var169
/* : String */;
2040 static val
* varonce170
;
2041 val
* var171
/* : String */;
2042 char* var172
/* : NativeString */;
2043 long var173
/* : Int */;
2044 val
* var174
/* : String */;
2045 static val
* varonce175
;
2046 val
* var176
/* : String */;
2047 char* var177
/* : NativeString */;
2048 long var178
/* : Int */;
2049 val
* var179
/* : String */;
2050 val
* var180
/* : Array[Object] */;
2051 long var181
/* : Int */;
2052 val
* var182
/* : NativeArray[Object] */;
2053 val
* var183
/* : Object */;
2054 val
* var184
/* : String */;
2055 val
* var185
/* : HashSet[Object] */;
2059 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__color_consts_done
]))(self
) /* color_consts_done on <self:SeparateCompiler>*/;
2060 var1
= ((short int (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var
, var_m
) /* has on <var:HashSet[Object]>*/;
2065 /* <var_m:Object> isa MProperty */
2066 cltype
= type_model__MProperty
.color
;
2067 idtype
= type_model__MProperty
.id
;
2068 if(cltype
>= var_m
->type
->table_size
) {
2071 var2
= var_m
->type
->type_table
[cltype
] == idtype
;
2074 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
2075 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var3
) /* toolcontext on <var3:ModelBuilder>*/;
2076 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_separate_compiler__ToolContext__opt_inline_coloring_numbers
]))(var4
) /* opt_inline_coloring_numbers on <var4:ToolContext>*/;
2077 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_opts__Option__value
]))(var5
) /* value on <var5:OptionBool>*/;
2078 var7
= ((struct instance_kernel__Bool
*)var6
)->value
; /* autounbox from nullable Object to Bool */;
2080 var8
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var_m
) /* const_color on <var_m:Object(MProperty)>*/;
2086 var12
= string__NativeString__to_s_with_length(var10
, var11
);
2090 var13
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var_m
) /* const_color on <var_m:Object(MProperty)>*/;
2096 var18
= string__NativeString__to_s_with_length(var16
, var17
);
2100 var19
= NEW_array__Array(&type_array__Arraykernel__Object
);
2101 { /* var19 = array_instance Array[Object] */
2103 var21
= NEW_array__NativeArray(var20
, &type_array__NativeArraykernel__Object
);
2104 ((struct instance_array__NativeArray
*)var21
)->values
[0] = (val
*) var9
;
2105 ((struct instance_array__NativeArray
*)var21
)->values
[1] = (val
*) var13
;
2106 ((struct instance_array__NativeArray
*)var21
)->values
[2] = (val
*) var15
;
2107 var22
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2108 ((struct instance_array__NativeArray
*)var21
)->values
[3] = (val
*) var22
;
2109 ((void (*)(val
*, val
*, long))(var19
->class->vft
[COLOR_array__Array__with_native
]))(var19
, var21
, var20
) /* with_native on <var19:Array[Object]>*/;
2111 var23
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_string__Object__to_s
]))(var19
) /* to_s on <var19:Array[Object]>*/;
2112 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var8
, var23
) /* provide_declaration on <self:SeparateCompiler>*/;
2114 var24
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var_m
) /* const_color on <var_m:Object(MProperty)>*/;
2118 var27
= "extern const int ";
2120 var29
= string__NativeString__to_s_with_length(var27
, var28
);
2124 var30
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var_m
) /* const_color on <var_m:Object(MProperty)>*/;
2130 var35
= string__NativeString__to_s_with_length(var33
, var34
);
2134 var36
= NEW_array__Array(&type_array__Arraykernel__Object
);
2135 { /* var36 = array_instance Array[Object] */
2137 var38
= NEW_array__NativeArray(var37
, &type_array__NativeArraykernel__Object
);
2138 ((struct instance_array__NativeArray
*)var38
)->values
[0] = (val
*) var26
;
2139 ((struct instance_array__NativeArray
*)var38
)->values
[1] = (val
*) var30
;
2140 ((struct instance_array__NativeArray
*)var38
)->values
[2] = (val
*) var32
;
2141 ((void (*)(val
*, val
*, long))(var36
->class->vft
[COLOR_array__Array__with_native
]))(var36
, var38
, var37
) /* with_native on <var36:Array[Object]>*/;
2143 var39
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_string__Object__to_s
]))(var36
) /* to_s on <var36:Array[Object]>*/;
2144 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var24
, var39
) /* provide_declaration on <self:SeparateCompiler>*/;
2148 var42
= "const int ";
2150 var44
= string__NativeString__to_s_with_length(var42
, var43
);
2154 var45
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var_m
) /* const_color on <var_m:Object(MProperty)>*/;
2160 var50
= string__NativeString__to_s_with_length(var48
, var49
);
2169 var55
= string__NativeString__to_s_with_length(var53
, var54
);
2173 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
2174 { /* var56 = array_instance Array[Object] */
2176 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
2177 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var41
;
2178 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var45
;
2179 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var47
;
2180 var59
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2181 ((struct instance_array__NativeArray
*)var58
)->values
[3] = (val
*) var59
;
2182 ((struct instance_array__NativeArray
*)var58
)->values
[4] = (val
*) var52
;
2183 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
2185 var60
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
2186 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var60
) /* add on <var_v:SeparateCompilerVisitor>*/;
2189 /* <var_m:Object> isa MPropDef */
2190 cltype62
= type_model__MPropDef
.color
;
2191 idtype63
= type_model__MPropDef
.id
;
2192 if(cltype62
>= var_m
->type
->table_size
) {
2195 var61
= var_m
->type
->type_table
[cltype62
] == idtype63
;
2198 var64
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
2199 var65
= ((val
* (*)(val
*))(var64
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var64
) /* toolcontext on <var64:ModelBuilder>*/;
2200 var66
= ((val
* (*)(val
*))(var65
->class->vft
[COLOR_separate_compiler__ToolContext__opt_inline_coloring_numbers
]))(var65
) /* opt_inline_coloring_numbers on <var65:ToolContext>*/;
2201 var67
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_opts__Option__value
]))(var66
) /* value on <var66:OptionBool>*/;
2202 var68
= ((struct instance_kernel__Bool
*)var67
)->value
; /* autounbox from nullable Object to Bool */;
2204 var69
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MPropDef__const_color
]))(var_m
) /* const_color on <var_m:Object(MPropDef)>*/;
2210 var74
= string__NativeString__to_s_with_length(var72
, var73
);
2214 var75
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MPropDef__const_color
]))(var_m
) /* const_color on <var_m:Object(MPropDef)>*/;
2220 var80
= string__NativeString__to_s_with_length(var78
, var79
);
2224 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
2225 { /* var81 = array_instance Array[Object] */
2227 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
2228 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var71
;
2229 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var75
;
2230 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var77
;
2231 var84
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2232 ((struct instance_array__NativeArray
*)var83
)->values
[3] = (val
*) var84
;
2233 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
2235 var85
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
2236 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var69
, var85
) /* provide_declaration on <self:SeparateCompiler>*/;
2238 var86
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MPropDef__const_color
]))(var_m
) /* const_color on <var_m:Object(MPropDef)>*/;
2242 var89
= "extern const int ";
2244 var91
= string__NativeString__to_s_with_length(var89
, var90
);
2248 var92
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MPropDef__const_color
]))(var_m
) /* const_color on <var_m:Object(MPropDef)>*/;
2254 var97
= string__NativeString__to_s_with_length(var95
, var96
);
2258 var98
= NEW_array__Array(&type_array__Arraykernel__Object
);
2259 { /* var98 = array_instance Array[Object] */
2261 var100
= NEW_array__NativeArray(var99
, &type_array__NativeArraykernel__Object
);
2262 ((struct instance_array__NativeArray
*)var100
)->values
[0] = (val
*) var88
;
2263 ((struct instance_array__NativeArray
*)var100
)->values
[1] = (val
*) var92
;
2264 ((struct instance_array__NativeArray
*)var100
)->values
[2] = (val
*) var94
;
2265 ((void (*)(val
*, val
*, long))(var98
->class->vft
[COLOR_array__Array__with_native
]))(var98
, var100
, var99
) /* with_native on <var98:Array[Object]>*/;
2267 var101
= ((val
* (*)(val
*))(var98
->class->vft
[COLOR_string__Object__to_s
]))(var98
) /* to_s on <var98:Array[Object]>*/;
2268 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var86
, var101
) /* provide_declaration on <self:SeparateCompiler>*/;
2270 var103
= varonce102
;
2272 var104
= "const int ";
2274 var106
= string__NativeString__to_s_with_length(var104
, var105
);
2276 varonce102
= var103
;
2278 var107
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MPropDef__const_color
]))(var_m
) /* const_color on <var_m:Object(MPropDef)>*/;
2280 var109
= varonce108
;
2284 var112
= string__NativeString__to_s_with_length(var110
, var111
);
2286 varonce108
= var109
;
2289 var114
= varonce113
;
2293 var117
= string__NativeString__to_s_with_length(var115
, var116
);
2295 varonce113
= var114
;
2297 var118
= NEW_array__Array(&type_array__Arraykernel__Object
);
2298 { /* var118 = array_instance Array[Object] */
2300 var120
= NEW_array__NativeArray(var119
, &type_array__NativeArraykernel__Object
);
2301 ((struct instance_array__NativeArray
*)var120
)->values
[0] = (val
*) var103
;
2302 ((struct instance_array__NativeArray
*)var120
)->values
[1] = (val
*) var107
;
2303 ((struct instance_array__NativeArray
*)var120
)->values
[2] = (val
*) var109
;
2304 var121
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2305 ((struct instance_array__NativeArray
*)var120
)->values
[3] = (val
*) var121
;
2306 ((struct instance_array__NativeArray
*)var120
)->values
[4] = (val
*) var114
;
2307 ((void (*)(val
*, val
*, long))(var118
->class->vft
[COLOR_array__Array__with_native
]))(var118
, var120
, var119
) /* with_native on <var118:Array[Object]>*/;
2309 var122
= ((val
* (*)(val
*))(var118
->class->vft
[COLOR_string__Object__to_s
]))(var118
) /* to_s on <var118:Array[Object]>*/;
2310 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var122
) /* add on <var_v:SeparateCompilerVisitor>*/;
2313 /* <var_m:Object> isa MType */
2314 cltype124
= type_model__MType
.color
;
2315 idtype125
= type_model__MType
.id
;
2316 if(cltype124
>= var_m
->type
->table_size
) {
2319 var123
= var_m
->type
->type_table
[cltype124
] == idtype125
;
2322 var126
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
2323 var127
= ((val
* (*)(val
*))(var126
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var126
) /* toolcontext on <var126:ModelBuilder>*/;
2324 var128
= ((val
* (*)(val
*))(var127
->class->vft
[COLOR_separate_compiler__ToolContext__opt_inline_coloring_numbers
]))(var127
) /* opt_inline_coloring_numbers on <var127:ToolContext>*/;
2325 var129
= ((val
* (*)(val
*))(var128
->class->vft
[COLOR_opts__Option__value
]))(var128
) /* value on <var128:OptionBool>*/;
2326 var130
= ((struct instance_kernel__Bool
*)var129
)->value
; /* autounbox from nullable Object to Bool */;
2328 var131
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MType__const_color
]))(var_m
) /* const_color on <var_m:Object(MType)>*/;
2330 var133
= varonce132
;
2332 var134
= "#define ";
2334 var136
= string__NativeString__to_s_with_length(var134
, var135
);
2336 varonce132
= var133
;
2338 var137
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MType__const_color
]))(var_m
) /* const_color on <var_m:Object(MType)>*/;
2340 var139
= varonce138
;
2344 var142
= string__NativeString__to_s_with_length(var140
, var141
);
2346 varonce138
= var139
;
2348 var143
= NEW_array__Array(&type_array__Arraykernel__Object
);
2349 { /* var143 = array_instance Array[Object] */
2351 var145
= NEW_array__NativeArray(var144
, &type_array__NativeArraykernel__Object
);
2352 ((struct instance_array__NativeArray
*)var145
)->values
[0] = (val
*) var133
;
2353 ((struct instance_array__NativeArray
*)var145
)->values
[1] = (val
*) var137
;
2354 ((struct instance_array__NativeArray
*)var145
)->values
[2] = (val
*) var139
;
2355 var146
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2356 ((struct instance_array__NativeArray
*)var145
)->values
[3] = (val
*) var146
;
2357 ((void (*)(val
*, val
*, long))(var143
->class->vft
[COLOR_array__Array__with_native
]))(var143
, var145
, var144
) /* with_native on <var143:Array[Object]>*/;
2359 var147
= ((val
* (*)(val
*))(var143
->class->vft
[COLOR_string__Object__to_s
]))(var143
) /* to_s on <var143:Array[Object]>*/;
2360 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var131
, var147
) /* provide_declaration on <self:SeparateCompiler>*/;
2362 var148
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MType__const_color
]))(var_m
) /* const_color on <var_m:Object(MType)>*/;
2364 var150
= varonce149
;
2366 var151
= "extern const int ";
2368 var153
= string__NativeString__to_s_with_length(var151
, var152
);
2370 varonce149
= var150
;
2372 var154
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MType__const_color
]))(var_m
) /* const_color on <var_m:Object(MType)>*/;
2374 var156
= varonce155
;
2378 var159
= string__NativeString__to_s_with_length(var157
, var158
);
2380 varonce155
= var156
;
2382 var160
= NEW_array__Array(&type_array__Arraykernel__Object
);
2383 { /* var160 = array_instance Array[Object] */
2385 var162
= NEW_array__NativeArray(var161
, &type_array__NativeArraykernel__Object
);
2386 ((struct instance_array__NativeArray
*)var162
)->values
[0] = (val
*) var150
;
2387 ((struct instance_array__NativeArray
*)var162
)->values
[1] = (val
*) var154
;
2388 ((struct instance_array__NativeArray
*)var162
)->values
[2] = (val
*) var156
;
2389 ((void (*)(val
*, val
*, long))(var160
->class->vft
[COLOR_array__Array__with_native
]))(var160
, var162
, var161
) /* with_native on <var160:Array[Object]>*/;
2391 var163
= ((val
* (*)(val
*))(var160
->class->vft
[COLOR_string__Object__to_s
]))(var160
) /* to_s on <var160:Array[Object]>*/;
2392 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var148
, var163
) /* provide_declaration on <self:SeparateCompiler>*/;
2394 var165
= varonce164
;
2396 var166
= "const int ";
2398 var168
= string__NativeString__to_s_with_length(var166
, var167
);
2400 varonce164
= var165
;
2402 var169
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MType__const_color
]))(var_m
) /* const_color on <var_m:Object(MType)>*/;
2404 var171
= varonce170
;
2408 var174
= string__NativeString__to_s_with_length(var172
, var173
);
2410 varonce170
= var171
;
2413 var176
= varonce175
;
2417 var179
= string__NativeString__to_s_with_length(var177
, var178
);
2419 varonce175
= var176
;
2421 var180
= NEW_array__Array(&type_array__Arraykernel__Object
);
2422 { /* var180 = array_instance Array[Object] */
2424 var182
= NEW_array__NativeArray(var181
, &type_array__NativeArraykernel__Object
);
2425 ((struct instance_array__NativeArray
*)var182
)->values
[0] = (val
*) var165
;
2426 ((struct instance_array__NativeArray
*)var182
)->values
[1] = (val
*) var169
;
2427 ((struct instance_array__NativeArray
*)var182
)->values
[2] = (val
*) var171
;
2428 var183
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2429 ((struct instance_array__NativeArray
*)var182
)->values
[3] = (val
*) var183
;
2430 ((struct instance_array__NativeArray
*)var182
)->values
[4] = (val
*) var176
;
2431 ((void (*)(val
*, val
*, long))(var180
->class->vft
[COLOR_array__Array__with_native
]))(var180
, var182
, var181
) /* with_native on <var180:Array[Object]>*/;
2433 var184
= ((val
* (*)(val
*))(var180
->class->vft
[COLOR_string__Object__to_s
]))(var180
) /* to_s on <var180:Array[Object]>*/;
2434 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var184
) /* add on <var_v:SeparateCompilerVisitor>*/;
2440 var185
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__color_consts_done
]))(self
) /* color_consts_done on <self:SeparateCompiler>*/;
2441 ((void (*)(val
*, val
*))(var185
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var185
, var_m
) /* add on <var185:HashSet[Object]>*/;
2444 /* method separate_compiler#SeparateCompiler#compile_color_const for (self: Object, SeparateCompilerVisitor, Object, Int) */
2445 void VIRTUAL_separate_compiler__SeparateCompiler__compile_color_const(val
* self
, val
* p0
, val
* p1
, long p2
) {
2446 separate_compiler__SeparateCompiler__compile_color_const(self
, p0
, p1
, p2
);
2449 /* method separate_compiler#SeparateCompiler#color_consts_done for (self: SeparateCompiler): HashSet[Object] */
2450 val
* separate_compiler__SeparateCompiler__color_consts_done(val
* self
) {
2451 val
* var
/* : HashSet[Object] */;
2452 val
* var1
/* : HashSet[Object] */;
2453 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dcolor_consts_done
].val
; /* @color_consts_done on <self:SeparateCompiler> */
2455 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @color_consts_done");
2456 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 231);
2463 /* method separate_compiler#SeparateCompiler#color_consts_done for (self: Object): HashSet[Object] */
2464 val
* VIRTUAL_separate_compiler__SeparateCompiler__color_consts_done(val
* self
) {
2465 val
* var
/* : HashSet[Object] */;
2466 val
* var1
/* : HashSet[Object] */;
2467 var1
= separate_compiler__SeparateCompiler__color_consts_done(self
);
2472 /* method separate_compiler#SeparateCompiler#color_consts_done= for (self: SeparateCompiler, HashSet[Object]) */
2473 void separate_compiler__SeparateCompiler__color_consts_done_61d(val
* self
, val
* p0
) {
2474 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dcolor_consts_done
].val
= p0
; /* @color_consts_done on <self:SeparateCompiler> */
2477 /* method separate_compiler#SeparateCompiler#color_consts_done= for (self: Object, HashSet[Object]) */
2478 void VIRTUAL_separate_compiler__SeparateCompiler__color_consts_done_61d(val
* self
, val
* p0
) {
2479 separate_compiler__SeparateCompiler__color_consts_done_61d(self
, p0
);
2482 /* method separate_compiler#SeparateCompiler#do_property_coloring for (self: SeparateCompiler) */
2483 void separate_compiler__SeparateCompiler__do_property_coloring(val
* self
) {
2484 val
* var
/* : HashSet[MClass] */;
2485 val
* var1
/* : ModelBuilder */;
2486 val
* var2
/* : Model */;
2487 val
* var3
/* : Array[MClass] */;
2488 val
* var_mclasses
/* var mclasses: HashSet[MClass] */;
2489 val
* var4
/* : MClassColorer */;
2490 val
* var5
/* : MModule */;
2491 val
* var_class_layout_builder
/* var class_layout_builder: MClassColorer */;
2492 val
* var6
/* : Layout[Object] */;
2493 val
* var7
/* : MPropertyColorer[PropertyLayoutElement] */;
2494 val
* var8
/* : MModule */;
2495 val
* var_method_layout_builder
/* var method_layout_builder: PropertyLayoutBuilder[PropertyLayoutElement] */;
2496 val
* var9
/* : MPropertyColorer[MAttribute] */;
2497 val
* var10
/* : MModule */;
2498 val
* var_attribute_layout_builder
/* var attribute_layout_builder: PropertyLayoutBuilder[MAttribute] */;
2499 val
* var11
/* : HashMap[MClass, Set[PropertyLayoutElement]] */;
2500 val
* var_mmethods
/* var mmethods: HashMap[MClass, Set[PropertyLayoutElement]] */;
2501 val
* var12
/* : HashMap[MClass, Set[MAttribute]] */;
2502 val
* var_mattributes
/* var mattributes: HashMap[MClass, Set[MAttribute]] */;
2503 val
* var13
/* : Iterator[nullable Object] */;
2504 short int var14
/* : Bool */;
2505 val
* var15
/* : nullable Object */;
2506 val
* var_mclass
/* var mclass: MClass */;
2507 val
* var16
/* : HashSet[PropertyLayoutElement] */;
2508 val
* var17
/* : HashSet[MAttribute] */;
2509 val
* var18
/* : MModule */;
2510 val
* var19
/* : Set[MProperty] */;
2511 val
* var20
/* : Iterator[nullable Object] */;
2512 short int var21
/* : Bool */;
2513 val
* var22
/* : nullable Object */;
2514 val
* var_mprop
/* var mprop: MProperty */;
2515 short int var23
/* : Bool */;
2518 val
* var24
/* : nullable Object */;
2519 short int var25
/* : Bool */;
2522 val
* var28
/* : nullable Object */;
2523 val
* var30
/* : nullable RapidTypeAnalysis */;
2524 val
* var31
/* : null */;
2525 short int var32
/* : Bool */;
2526 val
* var33
/* : nullable RapidTypeAnalysis */;
2527 val
* var34
/* : HashSet[MMethodDef] */;
2528 val
* var_super_calls
/* var super_calls: nullable Object */;
2529 val
* var35
/* : ModelBuilder */;
2530 val
* var36
/* : Set[MMethodDef] */;
2531 val
* var37
/* : Iterator[nullable Object] */;
2532 short int var38
/* : Bool */;
2533 val
* var39
/* : nullable Object */;
2534 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
2535 val
* var40
/* : MClassDef */;
2536 val
* var41
/* : MClass */;
2537 val
* var_mclass42
/* var mclass: MClass */;
2538 val
* var43
/* : nullable Object */;
2539 val
* var44
/* : MModule */;
2540 val
* var45
/* : POSetElement[MClass] */;
2541 val
* var46
/* : Collection[Object] */;
2542 val
* var47
/* : Iterator[nullable Object] */;
2543 short int var48
/* : Bool */;
2544 val
* var49
/* : nullable Object */;
2545 val
* var_descendant
/* var descendant: MClass */;
2546 val
* var50
/* : nullable Object */;
2547 val
* var53
/* : Layout[PropertyLayoutElement] */;
2548 val
* var54
/* : Map[MClass, Array[nullable MPropDef]] */;
2549 val
* var55
/* : nullable Layout[PropertyLayoutElement] */;
2550 val
* var56
/* : Map[Object, Int] */;
2551 val
* var57
/* : MModule */;
2552 val
* var58
/* : POSetElement[MModule] */;
2553 val
* var59
/* : Collection[Object] */;
2554 val
* var60
/* : Iterator[nullable Object] */;
2555 short int var61
/* : Bool */;
2556 val
* var62
/* : nullable Object */;
2557 val
* var_mmodule
/* var mmodule: MModule */;
2558 val
* var63
/* : Array[MClassDef] */;
2559 val
* var64
/* : Iterator[nullable Object] */;
2560 short int var65
/* : Bool */;
2561 val
* var66
/* : nullable Object */;
2562 val
* var_mclassdef
/* var mclassdef: MClassDef */;
2563 val
* var67
/* : Array[MPropDef] */;
2564 val
* var68
/* : Iterator[nullable Object] */;
2565 short int var69
/* : Bool */;
2566 val
* var70
/* : nullable Object */;
2567 val
* var_mpropdef
/* var mpropdef: MPropDef */;
2568 short int var71
/* : Bool */;
2569 val
* var72
/* : AbstractCompilerVisitor */;
2570 long var73
/* : Int */;
2571 long var74
/* : Int */;
2572 long var76
/* : Int */;
2573 val
* var80
/* : Layout[PropertyLayoutElement] */;
2574 val
* var81
/* : Map[MClass, Array[nullable MPropDef]] */;
2575 val
* var82
/* : nullable Layout[MAttribute] */;
2576 val
* var83
/* : Map[Object, Int] */;
2577 var
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass
);
2578 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
2579 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelbuilder__ModelBuilder__model
]))(var1
) /* model on <var1:ModelBuilder>*/;
2580 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__Model__mclasses
]))(var2
) /* mclasses on <var2:Model>*/;
2581 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_hash_collection__HashSet__from
]))(var
, var3
) /* from on <var:HashSet[MClass]>*/;
2583 var4
= NEW_layout_builders__MClassColorer(&type_layout_builders__MClassColorer
);
2584 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2585 ((void (*)(val
*, val
*))(var4
->class->vft
[COLOR_layout_builders__MClassColorer__init
]))(var4
, var5
) /* init on <var4:MClassColorer>*/;
2586 var_class_layout_builder
= var4
;
2587 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>*/;
2589 var7
= NEW_layout_builders__MPropertyColorer(&type_layout_builders__MPropertyColorerlayout_builders__PropertyLayoutElement
);
2590 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2591 ((void (*)(val
*, val
*, val
*))(var7
->class->vft
[COLOR_layout_builders__MPropertyColorer__init
]))(var7
, var8
, var_class_layout_builder
) /* init on <var7:MPropertyColorer[PropertyLayoutElement]>*/;
2592 var_method_layout_builder
= var7
;
2593 var9
= NEW_layout_builders__MPropertyColorer(&type_layout_builders__MPropertyColorermodel__MAttribute
);
2594 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2595 ((void (*)(val
*, val
*, val
*))(var9
->class->vft
[COLOR_layout_builders__MPropertyColorer__init
]))(var9
, var10
, var_class_layout_builder
) /* init on <var9:MPropertyColorer[MAttribute]>*/;
2596 var_attribute_layout_builder
= var9
;
2597 var11
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement
);
2598 ((void (*)(val
*))(var11
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var11
) /* init on <var11:HashMap[MClass, Set[PropertyLayoutElement]]>*/;
2599 var_mmethods
= var11
;
2600 var12
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute
);
2601 ((void (*)(val
*))(var12
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var12
) /* init on <var12:HashMap[MClass, Set[MAttribute]]>*/;
2602 var_mattributes
= var12
;
2603 var13
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:HashSet[MClass]>*/;
2605 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
2607 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
2609 var16
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetlayout_builders__PropertyLayoutElement
);
2610 ((void (*)(val
*))(var16
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var16
) /* init on <var16:HashSet[PropertyLayoutElement]>*/;
2611 ((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]]>*/;
2612 var17
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MAttribute
);
2613 ((void (*)(val
*))(var17
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var17
) /* init on <var17:HashSet[MAttribute]>*/;
2614 ((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]]>*/;
2615 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2616 var19
= ((val
* (*)(val
*, val
*))(var18
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var18
, var_mclass
) /* properties on <var18:MModule>*/;
2617 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var19
) /* iterator on <var19:Set[MProperty]>*/;
2619 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var20
) /* is_ok on <var20:Iterator[nullable Object]>*/;
2621 var22
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var20
) /* item on <var20:Iterator[nullable Object]>*/;
2623 /* <var_mprop:MProperty> isa MMethod */
2624 cltype
= type_model__MMethod
.color
;
2625 idtype
= type_model__MMethod
.id
;
2626 if(cltype
>= var_mprop
->type
->table_size
) {
2629 var23
= var_mprop
->type
->type_table
[cltype
] == idtype
;
2632 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]]>*/;
2633 ((void (*)(val
*, val
*))(var24
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var24
, var_mprop
) /* add on <var24:nullable Object(Set[PropertyLayoutElement])>*/;
2635 /* <var_mprop:MProperty> isa MAttribute */
2636 cltype26
= type_model__MAttribute
.color
;
2637 idtype27
= type_model__MAttribute
.id
;
2638 if(cltype26
>= var_mprop
->type
->table_size
) {
2641 var25
= var_mprop
->type
->type_table
[cltype26
] == idtype27
;
2644 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]]>*/;
2645 ((void (*)(val
*, val
*))(var28
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var28
, var_mprop
) /* add on <var28:nullable Object(Set[MAttribute])>*/;
2649 CONTINUE_label
: (void)0;
2650 ((void (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var20
) /* next on <var20:Iterator[nullable Object]>*/;
2652 BREAK_label
: (void)0;
2653 CONTINUE_label29
: (void)0;
2654 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
2656 BREAK_label29
: (void)0;
2657 var30
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
2659 if (var30
== NULL
) {
2660 var32
= 0; /* is null */
2662 var32
= 1; /* arg is null and recv is not */
2665 var33
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
2666 if (var33
== NULL
) {
2667 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2668 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 276);
2671 var34
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_super_sends
]))(var33
) /* live_super_sends on <var33:nullable RapidTypeAnalysis>*/;
2673 var_super_calls
= var34
;
2675 var35
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
2676 var36
= ((val
* (*)(val
*))(var35
->class->vft
[COLOR_collect_super_sends__ModelBuilder__collect_super_sends
]))(var35
) /* collect_super_sends on <var35:ModelBuilder>*/;
2677 var_super_calls
= var36
;
2679 var37
= ((val
* (*)(val
*))(var_super_calls
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_super_calls
) /* iterator on <var_super_calls:nullable Object(Set[MMethodDef])>*/;
2681 var38
= ((short int (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var37
) /* is_ok on <var37:Iterator[nullable Object]>*/;
2683 var39
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var37
) /* item on <var37:Iterator[nullable Object]>*/;
2684 var_mmethoddef
= var39
;
2685 var40
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mmethoddef
) /* mclassdef on <var_mmethoddef:MMethodDef>*/;
2686 var41
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_model__MClassDef__mclass
]))(var40
) /* mclass on <var40:MClassDef>*/;
2687 var_mclass42
= var41
;
2688 var43
= ((val
* (*)(val
*, val
*))(var_mmethods
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_mmethods
, var_mclass42
) /* [] on <var_mmethods:HashMap[MClass, Set[PropertyLayoutElement]]>*/;
2689 ((void (*)(val
*, val
*))(var43
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var43
, var_mmethoddef
) /* add on <var43:nullable Object(Set[PropertyLayoutElement])>*/;
2690 var44
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2691 var45
= ((val
* (*)(val
*, val
*))(var_mclass42
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass42
, var44
) /* in_hierarchy on <var_mclass42:MClass>*/;
2692 var46
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_poset__POSetElement__smallers
]))(var45
) /* smallers on <var45:POSetElement[MClass]>*/;
2693 var47
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var46
) /* iterator on <var46:Collection[Object](Collection[MClass])>*/;
2695 var48
= ((short int (*)(val
*))(var47
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var47
) /* is_ok on <var47:Iterator[nullable Object]>*/;
2697 var49
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var47
) /* item on <var47:Iterator[nullable Object]>*/;
2698 var_descendant
= var49
;
2699 var50
= ((val
* (*)(val
*, val
*))(var_mmethods
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_mmethods
, var_descendant
) /* [] on <var_mmethods:HashMap[MClass, Set[PropertyLayoutElement]]>*/;
2700 ((void (*)(val
*, val
*))(var50
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var50
, var_mmethoddef
) /* add on <var50:nullable Object(Set[PropertyLayoutElement])>*/;
2701 CONTINUE_label51
: (void)0;
2702 ((void (*)(val
*))(var47
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var47
) /* next on <var47:Iterator[nullable Object]>*/;
2704 BREAK_label51
: (void)0;
2705 CONTINUE_label52
: (void)0;
2706 ((void (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var37
) /* next on <var37:Iterator[nullable Object]>*/;
2708 BREAK_label52
: (void)0;
2709 var53
= ((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])>*/;
2710 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_layout_61d
]))(self
, var53
) /* method_layout= on <self:SeparateCompiler>*/;
2711 var54
= ((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>*/;
2712 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_tables_61d
]))(self
, var54
) /* method_tables= on <self:SeparateCompiler>*/;
2713 var55
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_layout
]))(self
) /* method_layout on <self:SeparateCompiler>*/;
2714 if (var55
== NULL
) {
2715 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2716 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 291);
2719 var56
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var55
) /* pos on <var55:nullable Layout[PropertyLayoutElement]>*/;
2721 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_color_consts
]))(self
, var56
) /* compile_color_consts on <self:SeparateCompiler>*/;
2722 var57
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2723 var58
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(var57
) /* in_importation on <var57:MModule>*/;
2724 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var58
) /* greaters on <var58:POSetElement[MModule]>*/;
2725 var60
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var59
) /* iterator on <var59:Collection[Object](Collection[MModule])>*/;
2727 var61
= ((short int (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var60
) /* is_ok on <var60:Iterator[nullable Object]>*/;
2729 var62
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var60
) /* item on <var60:Iterator[nullable Object]>*/;
2730 var_mmodule
= var62
;
2731 var63
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model__MModule__mclassdefs
]))(var_mmodule
) /* mclassdefs on <var_mmodule:MModule>*/;
2732 var64
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var63
) /* iterator on <var63:Array[MClassDef]>*/;
2734 var65
= ((short int (*)(val
*))(var64
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var64
) /* is_ok on <var64:Iterator[nullable Object]>*/;
2736 var66
= ((val
* (*)(val
*))(var64
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var64
) /* item on <var64:Iterator[nullable Object]>*/;
2737 var_mclassdef
= var66
;
2738 var67
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__mpropdefs
]))(var_mclassdef
) /* mpropdefs on <var_mclassdef:MClassDef>*/;
2739 var68
= ((val
* (*)(val
*))(var67
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var67
) /* iterator on <var67:Array[MPropDef]>*/;
2741 var69
= ((short int (*)(val
*))(var68
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var68
) /* is_ok on <var68:Iterator[nullable Object]>*/;
2743 var70
= ((val
* (*)(val
*))(var68
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var68
) /* item on <var68:Iterator[nullable Object]>*/;
2744 var_mpropdef
= var70
;
2745 var71
= ((short int (*)(val
*))(var_mpropdef
->class->vft
[COLOR_typing__MPropDef__has_supercall
]))(var_mpropdef
) /* has_supercall on <var_mpropdef:MPropDef>*/;
2747 var72
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
2749 { /* Inline kernel#Int#unary - (var73) */
2753 RET_LABEL75
:(void)0;
2755 ((void (*)(val
*, val
*, val
*, long))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_color_const
]))(self
, var72
, var_mpropdef
, var74
) /* compile_color_const on <self:SeparateCompiler>*/;
2758 CONTINUE_label77
: (void)0;
2759 ((void (*)(val
*))(var68
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var68
) /* next on <var68:Iterator[nullable Object]>*/;
2761 BREAK_label77
: (void)0;
2762 CONTINUE_label78
: (void)0;
2763 ((void (*)(val
*))(var64
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var64
) /* next on <var64:Iterator[nullable Object]>*/;
2765 BREAK_label78
: (void)0;
2766 CONTINUE_label79
: (void)0;
2767 ((void (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var60
) /* next on <var60:Iterator[nullable Object]>*/;
2769 BREAK_label79
: (void)0;
2770 var80
= ((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])>*/;
2771 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_layout_61d
]))(self
, var80
) /* attr_layout= on <self:SeparateCompiler>*/;
2772 var81
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__build_attr_tables
]))(self
, var_mclasses
) /* build_attr_tables on <self:SeparateCompiler>*/;
2773 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_tables_61d
]))(self
, var81
) /* attr_tables= on <self:SeparateCompiler>*/;
2774 var82
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_layout
]))(self
) /* attr_layout on <self:SeparateCompiler>*/;
2775 if (var82
== NULL
) {
2776 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2777 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 307);
2780 var83
= ((val
* (*)(val
*))(var82
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var82
) /* pos on <var82:nullable Layout[MAttribute]>*/;
2782 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_color_consts
]))(self
, var83
) /* compile_color_consts on <self:SeparateCompiler>*/;
2785 /* method separate_compiler#SeparateCompiler#do_property_coloring for (self: Object) */
2786 void VIRTUAL_separate_compiler__SeparateCompiler__do_property_coloring(val
* self
) {
2787 separate_compiler__SeparateCompiler__do_property_coloring(self
);
2790 /* method separate_compiler#SeparateCompiler#build_method_tables for (self: SeparateCompiler, Set[MClass], Set[MMethodDef]): Map[MClass, Array[nullable MPropDef]] */
2791 val
* separate_compiler__SeparateCompiler__build_method_tables(val
* self
, val
* p0
, val
* p1
) {
2792 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
2793 val
* var_mclasses
/* var mclasses: Set[MClass] */;
2794 val
* var_super_calls
/* var super_calls: Set[MMethodDef] */;
2795 val
* var1
/* : nullable Layout[PropertyLayoutElement] */;
2796 val
* var_layout
/* var layout: nullable Layout[PropertyLayoutElement] */;
2797 val
* var2
/* : HashMap[MClass, Array[nullable MPropDef]] */;
2798 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MPropDef]] */;
2799 val
* var3
/* : Iterator[nullable Object] */;
2800 short int var4
/* : Bool */;
2801 val
* var5
/* : nullable Object */;
2802 val
* var_mclass
/* var mclass: MClass */;
2803 val
* var6
/* : Array[nullable MPropDef] */;
2804 val
* var_table
/* var table: Array[nullable MPropDef] */;
2805 val
* var7
/* : List[MMethodDef] */;
2806 val
* var_supercalls
/* var supercalls: List[MMethodDef] */;
2807 val
* var8
/* : Array[MClass] */;
2808 val
* var_parents
/* var parents: Array[MClass] */;
2809 val
* var9
/* : MModule */;
2810 val
* var10
/* : POSet[MClass] */;
2811 short int var11
/* : Bool */;
2812 val
* var12
/* : MModule */;
2813 val
* var13
/* : POSetElement[MClass] */;
2814 val
* var14
/* : Collection[Object] */;
2815 val
* var15
/* : Array[nullable Object] */;
2816 val
* var16
/* : MModule */;
2817 val
* var17
/* : Iterator[nullable Object] */;
2818 short int var18
/* : Bool */;
2819 val
* var19
/* : nullable Object */;
2820 val
* var_parent
/* var parent: MClass */;
2821 short int var20
/* : Bool */;
2822 val
* var21
/* : MModule */;
2823 val
* var22
/* : Set[MProperty] */;
2824 val
* var23
/* : Iterator[nullable Object] */;
2825 short int var24
/* : Bool */;
2826 val
* var25
/* : nullable Object */;
2827 val
* var_mproperty
/* var mproperty: MProperty */;
2828 short int var26
/* : Bool */;
2831 short int var27
/* : Bool */;
2832 val
* var29
/* : Map[Object, Int] */;
2833 val
* var30
/* : nullable Object */;
2834 long var31
/* : Int */;
2835 long var_color
/* var color: Int */;
2836 long var32
/* : Int */;
2837 short int var33
/* : Bool */;
2838 short int var35
/* : Bool */;
2841 const char* var_class_name
;
2842 short int var38
/* : Bool */;
2843 val
* var39
/* : Range[Int] */;
2844 long var40
/* : Int */;
2845 val
* var41
/* : Discrete */;
2846 val
* var42
/* : Discrete */;
2847 val
* var43
/* : Iterator[nullable Object] */;
2848 short int var44
/* : Bool */;
2849 val
* var45
/* : nullable Object */;
2850 long var_i
/* var i: Int */;
2851 long var46
/* : Int */;
2852 val
* var47
/* : null */;
2853 val
* var49
/* : Array[MPropDef] */;
2854 val
* var50
/* : Iterator[nullable Object] */;
2855 short int var51
/* : Bool */;
2856 val
* var52
/* : nullable Object */;
2857 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
2858 val
* var53
/* : MClassDef */;
2859 val
* var54
/* : MClass */;
2860 short int var55
/* : Bool */;
2861 val
* var57
/* : Iterator[nullable Object] */;
2862 short int var58
/* : Bool */;
2863 val
* var59
/* : nullable Object */;
2864 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
2865 val
* var60
/* : Array[MClassDef] */;
2866 val
* var61
/* : Iterator[nullable Object] */;
2867 short int var62
/* : Bool */;
2868 val
* var63
/* : nullable Object */;
2869 val
* var_mclassdef
/* var mclassdef: MClassDef */;
2870 val
* var64
/* : Array[MPropDef] */;
2871 short int var65
/* : Bool */;
2872 val
* var68
/* : MModule */;
2873 val
* var69
/* : Set[MProperty] */;
2874 val
* var70
/* : Iterator[nullable Object] */;
2875 short int var71
/* : Bool */;
2876 val
* var72
/* : nullable Object */;
2877 val
* var_mproperty73
/* var mproperty: MProperty */;
2878 short int var74
/* : Bool */;
2881 short int var77
/* : Bool */;
2882 val
* var79
/* : Map[Object, Int] */;
2883 val
* var80
/* : nullable Object */;
2884 long var81
/* : Int */;
2885 long var_color82
/* var color: Int */;
2886 long var83
/* : Int */;
2887 short int var84
/* : Bool */;
2888 short int var86
/* : Bool */;
2891 const char* var_class_name89
;
2892 short int var90
/* : Bool */;
2893 val
* var91
/* : Range[Int] */;
2894 long var92
/* : Int */;
2895 val
* var93
/* : Discrete */;
2896 val
* var94
/* : Discrete */;
2897 val
* var95
/* : Iterator[nullable Object] */;
2898 short int var96
/* : Bool */;
2899 val
* var97
/* : nullable Object */;
2900 long var_i98
/* var i: Int */;
2901 long var99
/* : Int */;
2902 val
* var100
/* : null */;
2903 val
* var102
/* : Array[MPropDef] */;
2904 val
* var103
/* : Iterator[nullable Object] */;
2905 short int var104
/* : Bool */;
2906 val
* var105
/* : nullable Object */;
2907 val
* var_mpropdef106
/* var mpropdef: MMethodDef */;
2908 val
* var107
/* : MClassDef */;
2909 val
* var108
/* : MClass */;
2910 short int var109
/* : Bool */;
2911 val
* var111
/* : Iterator[nullable Object] */;
2912 short int var112
/* : Bool */;
2913 val
* var113
/* : nullable Object */;
2914 val
* var_mmethoddef114
/* var mmethoddef: MMethodDef */;
2915 val
* var115
/* : Array[MClassDef] */;
2916 val
* var116
/* : Iterator[nullable Object] */;
2917 short int var117
/* : Bool */;
2918 val
* var118
/* : nullable Object */;
2919 val
* var_mclassdef119
/* var mclassdef: MClassDef */;
2920 val
* var120
/* : Array[MPropDef] */;
2921 short int var121
/* : Bool */;
2922 val
* var124
/* : Iterator[nullable Object] */;
2923 short int var125
/* : Bool */;
2924 val
* var126
/* : nullable Object */;
2925 val
* var_supercall
/* var supercall: MMethodDef */;
2926 val
* var127
/* : Map[Object, Int] */;
2927 val
* var128
/* : nullable Object */;
2928 long var129
/* : Int */;
2929 long var_color130
/* var color: Int */;
2930 long var131
/* : Int */;
2931 short int var132
/* : Bool */;
2932 short int var134
/* : Bool */;
2935 const char* var_class_name137
;
2936 short int var138
/* : Bool */;
2937 val
* var139
/* : Range[Int] */;
2938 long var140
/* : Int */;
2939 val
* var141
/* : Discrete */;
2940 val
* var142
/* : Discrete */;
2941 val
* var143
/* : Iterator[nullable Object] */;
2942 short int var144
/* : Bool */;
2943 val
* var145
/* : nullable Object */;
2944 long var_i146
/* var i: Int */;
2945 long var147
/* : Int */;
2946 val
* var148
/* : null */;
2947 val
* var150
/* : MModule */;
2948 val
* var151
/* : MClassDef */;
2949 val
* var152
/* : MClassType */;
2950 val
* var153
/* : MPropDef */;
2951 val
* var_mmethoddef154
/* var mmethoddef: MMethodDef */;
2953 var_super_calls
= p1
;
2954 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_layout
]))(self
) /* method_layout on <self:SeparateCompiler>*/;
2956 var2
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef
);
2957 ((void (*)(val
*))(var2
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var2
) /* init on <var2:HashMap[MClass, Array[nullable MPropDef]]>*/;
2959 var3
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:Set[MClass]>*/;
2961 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
2963 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
2965 var6
= NEW_array__Array(&type_array__Arraynullable_model__MPropDef
);
2966 ((void (*)(val
*))(var6
->class->vft
[COLOR_array__Array__init
]))(var6
) /* init on <var6:Array[nullable MPropDef]>*/;
2968 var7
= NEW_list__List(&type_list__Listmodel__MMethodDef
);
2969 ((void (*)(val
*))(var7
->class->vft
[COLOR_list__List__init
]))(var7
) /* init on <var7:List[MMethodDef]>*/;
2970 var_supercalls
= var7
;
2971 var8
= NEW_array__Array(&type_array__Arraymodel__MClass
);
2972 ((void (*)(val
*))(var8
->class->vft
[COLOR_array__Array__init
]))(var8
) /* init on <var8:Array[MClass]>*/;
2974 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2975 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var9
) /* flatten_mclass_hierarchy on <var9:MModule>*/;
2976 var11
= ((short int (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var10
, var_mclass
) /* has on <var10:POSet[MClass]>*/;
2978 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2979 var13
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass
, var12
) /* in_hierarchy on <var_mclass:MClass>*/;
2980 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var13
) /* greaters on <var13:POSetElement[MClass]>*/;
2981 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_array__Collection__to_a
]))(var14
) /* to_a on <var14:Collection[Object](Collection[MClass])>*/;
2982 var_parents
= var15
;
2983 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2984 ((void (*)(val
*, val
*))(var16
->class->vft
[COLOR_model__MModule__linearize_mclasses
]))(var16
, var_parents
) /* linearize_mclasses on <var16:MModule>*/;
2987 var17
= ((val
* (*)(val
*))(var_parents
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_parents
) /* iterator on <var_parents:Array[MClass]>*/;
2989 var18
= ((short int (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var17
) /* is_ok on <var17:Iterator[nullable Object]>*/;
2991 var19
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var17
) /* item on <var17:Iterator[nullable Object]>*/;
2993 var20
= ((short int (*)(val
*, val
*))(var_parent
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_parent
, var_mclass
) /* == on <var_parent:MClass>*/;
2995 goto CONTINUE_label
;
2998 var21
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2999 var22
= ((val
* (*)(val
*, val
*))(var21
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var21
, var_parent
) /* properties on <var21:MModule>*/;
3000 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var22
) /* iterator on <var22:Set[MProperty]>*/;
3002 var24
= ((short int (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var23
) /* is_ok on <var23:Iterator[nullable Object]>*/;
3004 var25
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var23
) /* item on <var23:Iterator[nullable Object]>*/;
3005 var_mproperty
= var25
;
3006 /* <var_mproperty:MProperty> isa MMethod */
3007 cltype
= type_model__MMethod
.color
;
3008 idtype
= type_model__MMethod
.id
;
3009 if(cltype
>= var_mproperty
->type
->table_size
) {
3012 var26
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
3016 goto CONTINUE_label28
;
3019 if (var_layout
== NULL
) {
3020 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3021 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 328);
3024 var29
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[PropertyLayoutElement]>*/;
3026 var30
= ((val
* (*)(val
*, val
*))(var29
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var29
, var_mproperty
) /* [] on <var29:Map[Object, Int](Map[PropertyLayoutElement, Int])>*/;
3027 var31
= ((struct instance_kernel__Int
*)var30
)->value
; /* autounbox from nullable Object to Int */;
3029 var32
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3030 { /* Inline kernel#Int#<= (var32,var_color) */
3031 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
3032 /* <var_color:Int> isa OTHER */
3033 var35
= 1; /* easy <var_color:Int> isa OTHER*/
3035 var_class_name
= type_kernel__Int
.name
;
3036 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3037 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
3040 var38
= var32
<= var_color
;
3043 RET_LABEL34
:(void)0;
3046 var39
= NEW_range__Range(&type_range__Rangekernel__Int
);
3047 var40
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3048 var41
= BOX_kernel__Int(var40
); /* autobox from Int to Discrete */
3049 var42
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
3050 ((void (*)(val
*, val
*, val
*))(var39
->class->vft
[COLOR_range__Range__without_last
]))(var39
, var41
, var42
) /* without_last on <var39:Range[Int]>*/;
3051 var43
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var39
) /* iterator on <var39:Range[Int]>*/;
3053 var44
= ((short int (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var43
) /* is_ok on <var43:Iterator[nullable Object]>*/;
3055 var45
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var43
) /* item on <var43:Iterator[nullable Object]>*/;
3056 var46
= ((struct instance_kernel__Int
*)var45
)->value
; /* autounbox from nullable Object to Int */;
3059 ((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]>*/;
3060 CONTINUE_label48
: (void)0;
3061 ((void (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var43
) /* next on <var43:Iterator[nullable Object]>*/;
3063 BREAK_label48
: (void)0;
3066 var49
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty
) /* mpropdefs on <var_mproperty:MProperty(MMethod)>*/;
3067 var50
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var49
) /* iterator on <var49:Array[MPropDef](Array[MMethodDef])>*/;
3069 var51
= ((short int (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var50
) /* is_ok on <var50:Iterator[nullable Object]>*/;
3071 var52
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var50
) /* item on <var50:Iterator[nullable Object]>*/;
3072 var_mpropdef
= var52
;
3073 var53
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MMethodDef>*/;
3074 var54
= ((val
* (*)(val
*))(var53
->class->vft
[COLOR_model__MClassDef__mclass
]))(var53
) /* mclass on <var53:MClassDef>*/;
3075 var55
= ((short int (*)(val
*, val
*))(var54
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var54
, var_parent
) /* == on <var54:MClass>*/;
3077 ((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]>*/;
3080 CONTINUE_label56
: (void)0;
3081 ((void (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var50
) /* next on <var50:Iterator[nullable Object]>*/;
3083 BREAK_label56
: (void)0;
3084 CONTINUE_label28
: (void)0;
3085 ((void (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var23
) /* next on <var23:Iterator[nullable Object]>*/;
3087 BREAK_label28
: (void)0;
3088 var57
= ((val
* (*)(val
*))(var_super_calls
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_super_calls
) /* iterator on <var_super_calls:Set[MMethodDef]>*/;
3090 var58
= ((short int (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var57
) /* is_ok on <var57:Iterator[nullable Object]>*/;
3092 var59
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var57
) /* item on <var57:Iterator[nullable Object]>*/;
3093 var_mmethoddef
= var59
;
3094 var60
= ((val
* (*)(val
*))(var_parent
->class->vft
[COLOR_model__MClass__mclassdefs
]))(var_parent
) /* mclassdefs on <var_parent:MClass>*/;
3095 var61
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var60
) /* iterator on <var60:Array[MClassDef]>*/;
3097 var62
= ((short int (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var61
) /* is_ok on <var61:Iterator[nullable Object]>*/;
3099 var63
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var61
) /* item on <var61:Iterator[nullable Object]>*/;
3100 var_mclassdef
= var63
;
3101 var64
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__mpropdefs
]))(var_mclassdef
) /* mpropdefs on <var_mclassdef:MClassDef>*/;
3102 var65
= ((short int (*)(val
*, val
*))(var64
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var64
, var_mmethoddef
) /* has on <var64:Array[MPropDef]>*/;
3104 ((void (*)(val
*, val
*))(var_supercalls
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_supercalls
, var_mmethoddef
) /* add on <var_supercalls:List[MMethodDef]>*/;
3107 CONTINUE_label66
: (void)0;
3108 ((void (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var61
) /* next on <var61:Iterator[nullable Object]>*/;
3110 BREAK_label66
: (void)0;
3111 CONTINUE_label67
: (void)0;
3112 ((void (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var57
) /* next on <var57:Iterator[nullable Object]>*/;
3114 BREAK_label67
: (void)0;
3115 CONTINUE_label
: (void)0;
3116 ((void (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var17
) /* next on <var17:Iterator[nullable Object]>*/;
3118 BREAK_label
: (void)0;
3119 var68
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3120 var69
= ((val
* (*)(val
*, val
*))(var68
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var68
, var_mclass
) /* properties on <var68:MModule>*/;
3121 var70
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var69
) /* iterator on <var69:Set[MProperty]>*/;
3123 var71
= ((short int (*)(val
*))(var70
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var70
) /* is_ok on <var70:Iterator[nullable Object]>*/;
3125 var72
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var70
) /* item on <var70:Iterator[nullable Object]>*/;
3126 var_mproperty73
= var72
;
3127 /* <var_mproperty73:MProperty> isa MMethod */
3128 cltype75
= type_model__MMethod
.color
;
3129 idtype76
= type_model__MMethod
.id
;
3130 if(cltype75
>= var_mproperty73
->type
->table_size
) {
3133 var74
= var_mproperty73
->type
->type_table
[cltype75
] == idtype76
;
3137 goto CONTINUE_label78
;
3140 if (var_layout
== NULL
) {
3141 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3142 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 354);
3145 var79
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[PropertyLayoutElement]>*/;
3147 var80
= ((val
* (*)(val
*, val
*))(var79
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var79
, var_mproperty73
) /* [] on <var79:Map[Object, Int](Map[PropertyLayoutElement, Int])>*/;
3148 var81
= ((struct instance_kernel__Int
*)var80
)->value
; /* autounbox from nullable Object to Int */;
3149 var_color82
= var81
;
3150 var83
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3151 { /* Inline kernel#Int#<= (var83,var_color82) */
3152 /* Covariant cast for argument 0 (i) <var_color82:Int> isa OTHER */
3153 /* <var_color82:Int> isa OTHER */
3154 var86
= 1; /* easy <var_color82:Int> isa OTHER*/
3156 var_class_name89
= type_kernel__Int
.name
;
3157 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name89
);
3158 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
3161 var90
= var83
<= var_color82
;
3164 RET_LABEL85
:(void)0;
3167 var91
= NEW_range__Range(&type_range__Rangekernel__Int
);
3168 var92
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3169 var93
= BOX_kernel__Int(var92
); /* autobox from Int to Discrete */
3170 var94
= BOX_kernel__Int(var_color82
); /* autobox from Int to Discrete */
3171 ((void (*)(val
*, val
*, val
*))(var91
->class->vft
[COLOR_range__Range__without_last
]))(var91
, var93
, var94
) /* without_last on <var91:Range[Int]>*/;
3172 var95
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var91
) /* iterator on <var91:Range[Int]>*/;
3174 var96
= ((short int (*)(val
*))(var95
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var95
) /* is_ok on <var95:Iterator[nullable Object]>*/;
3176 var97
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var95
) /* item on <var95:Iterator[nullable Object]>*/;
3177 var99
= ((struct instance_kernel__Int
*)var97
)->value
; /* autounbox from nullable Object to Int */;
3180 ((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]>*/;
3181 CONTINUE_label101
: (void)0;
3182 ((void (*)(val
*))(var95
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var95
) /* next on <var95:Iterator[nullable Object]>*/;
3184 BREAK_label101
: (void)0;
3187 var102
= ((val
* (*)(val
*))(var_mproperty73
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty73
) /* mpropdefs on <var_mproperty73:MProperty(MMethod)>*/;
3188 var103
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var102
) /* iterator on <var102:Array[MPropDef](Array[MMethodDef])>*/;
3190 var104
= ((short int (*)(val
*))(var103
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var103
) /* is_ok on <var103:Iterator[nullable Object]>*/;
3192 var105
= ((val
* (*)(val
*))(var103
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var103
) /* item on <var103:Iterator[nullable Object]>*/;
3193 var_mpropdef106
= var105
;
3194 var107
= ((val
* (*)(val
*))(var_mpropdef106
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef106
) /* mclassdef on <var_mpropdef106:MMethodDef>*/;
3195 var108
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_model__MClassDef__mclass
]))(var107
) /* mclass on <var107:MClassDef>*/;
3196 var109
= ((short int (*)(val
*, val
*))(var108
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var108
, var_mclass
) /* == on <var108:MClass>*/;
3198 ((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]>*/;
3201 CONTINUE_label110
: (void)0;
3202 ((void (*)(val
*))(var103
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var103
) /* next on <var103:Iterator[nullable Object]>*/;
3204 BREAK_label110
: (void)0;
3205 CONTINUE_label78
: (void)0;
3206 ((void (*)(val
*))(var70
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var70
) /* next on <var70:Iterator[nullable Object]>*/;
3208 BREAK_label78
: (void)0;
3209 var111
= ((val
* (*)(val
*))(var_super_calls
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_super_calls
) /* iterator on <var_super_calls:Set[MMethodDef]>*/;
3211 var112
= ((short int (*)(val
*))(var111
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var111
) /* is_ok on <var111:Iterator[nullable Object]>*/;
3213 var113
= ((val
* (*)(val
*))(var111
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var111
) /* item on <var111:Iterator[nullable Object]>*/;
3214 var_mmethoddef114
= var113
;
3215 var115
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclassdefs
]))(var_mclass
) /* mclassdefs on <var_mclass:MClass>*/;
3216 var116
= ((val
* (*)(val
*))(var115
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var115
) /* iterator on <var115:Array[MClassDef]>*/;
3218 var117
= ((short int (*)(val
*))(var116
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var116
) /* is_ok on <var116:Iterator[nullable Object]>*/;
3220 var118
= ((val
* (*)(val
*))(var116
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var116
) /* item on <var116:Iterator[nullable Object]>*/;
3221 var_mclassdef119
= var118
;
3222 var120
= ((val
* (*)(val
*))(var_mclassdef119
->class->vft
[COLOR_model__MClassDef__mpropdefs
]))(var_mclassdef119
) /* mpropdefs on <var_mclassdef119:MClassDef>*/;
3223 var121
= ((short int (*)(val
*, val
*))(var120
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var120
, var_mmethoddef114
) /* has on <var120:Array[MPropDef]>*/;
3225 ((void (*)(val
*, val
*))(var_supercalls
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_supercalls
, var_mmethoddef114
) /* add on <var_supercalls:List[MMethodDef]>*/;
3228 CONTINUE_label122
: (void)0;
3229 ((void (*)(val
*))(var116
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var116
) /* next on <var116:Iterator[nullable Object]>*/;
3231 BREAK_label122
: (void)0;
3232 CONTINUE_label123
: (void)0;
3233 ((void (*)(val
*))(var111
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var111
) /* next on <var111:Iterator[nullable Object]>*/;
3235 BREAK_label123
: (void)0;
3236 var124
= ((val
* (*)(val
*))(var_supercalls
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_supercalls
) /* iterator on <var_supercalls:List[MMethodDef]>*/;
3238 var125
= ((short int (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var124
) /* is_ok on <var124:Iterator[nullable Object]>*/;
3240 var126
= ((val
* (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var124
) /* item on <var124:Iterator[nullable Object]>*/;
3241 var_supercall
= var126
;
3242 if (var_layout
== NULL
) {
3243 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3244 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 377);
3247 var127
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[PropertyLayoutElement]>*/;
3249 var128
= ((val
* (*)(val
*, val
*))(var127
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var127
, var_supercall
) /* [] on <var127:Map[Object, Int](Map[PropertyLayoutElement, Int])>*/;
3250 var129
= ((struct instance_kernel__Int
*)var128
)->value
; /* autounbox from nullable Object to Int */;
3251 var_color130
= var129
;
3252 var131
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3253 { /* Inline kernel#Int#<= (var131,var_color130) */
3254 /* Covariant cast for argument 0 (i) <var_color130:Int> isa OTHER */
3255 /* <var_color130:Int> isa OTHER */
3256 var134
= 1; /* easy <var_color130:Int> isa OTHER*/
3258 var_class_name137
= type_kernel__Int
.name
;
3259 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name137
);
3260 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
3263 var138
= var131
<= var_color130
;
3266 RET_LABEL133
:(void)0;
3269 var139
= NEW_range__Range(&type_range__Rangekernel__Int
);
3270 var140
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3271 var141
= BOX_kernel__Int(var140
); /* autobox from Int to Discrete */
3272 var142
= BOX_kernel__Int(var_color130
); /* autobox from Int to Discrete */
3273 ((void (*)(val
*, val
*, val
*))(var139
->class->vft
[COLOR_range__Range__without_last
]))(var139
, var141
, var142
) /* without_last on <var139:Range[Int]>*/;
3274 var143
= ((val
* (*)(val
*))(var139
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var139
) /* iterator on <var139:Range[Int]>*/;
3276 var144
= ((short int (*)(val
*))(var143
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var143
) /* is_ok on <var143:Iterator[nullable Object]>*/;
3278 var145
= ((val
* (*)(val
*))(var143
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var143
) /* item on <var143:Iterator[nullable Object]>*/;
3279 var147
= ((struct instance_kernel__Int
*)var145
)->value
; /* autounbox from nullable Object to Int */;
3282 ((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]>*/;
3283 CONTINUE_label149
: (void)0;
3284 ((void (*)(val
*))(var143
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var143
) /* next on <var143:Iterator[nullable Object]>*/;
3286 BREAK_label149
: (void)0;
3289 var150
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3290 var151
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
3291 var152
= ((val
* (*)(val
*))(var151
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var151
) /* bound_mtype on <var151:MClassDef>*/;
3292 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>*/;
3293 var_mmethoddef154
= var153
;
3294 ((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]>*/;
3295 CONTINUE_label155
: (void)0;
3296 ((void (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var124
) /* next on <var124:Iterator[nullable Object]>*/;
3298 BREAK_label155
: (void)0;
3299 ((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]]>*/;
3300 CONTINUE_label156
: (void)0;
3301 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
3303 BREAK_label156
: (void)0;
3309 /* method separate_compiler#SeparateCompiler#build_method_tables for (self: Object, Set[MClass], Set[MMethodDef]): Map[MClass, Array[nullable MPropDef]] */
3310 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_method_tables(val
* self
, val
* p0
, val
* p1
) {
3311 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
3312 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
3313 var1
= separate_compiler__SeparateCompiler__build_method_tables(self
, p0
, p1
);
3318 /* method separate_compiler#SeparateCompiler#build_attr_tables for (self: SeparateCompiler, Set[MClass]): Map[MClass, Array[nullable MPropDef]] */
3319 val
* separate_compiler__SeparateCompiler__build_attr_tables(val
* self
, val
* p0
) {
3320 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
3321 val
* var_mclasses
/* var mclasses: Set[MClass] */;
3322 val
* var1
/* : nullable Layout[MAttribute] */;
3323 val
* var_layout
/* var layout: nullable Layout[MAttribute] */;
3324 val
* var2
/* : HashMap[MClass, Array[nullable MPropDef]] */;
3325 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MPropDef]] */;
3326 val
* var3
/* : Iterator[nullable Object] */;
3327 short int var4
/* : Bool */;
3328 val
* var5
/* : nullable Object */;
3329 val
* var_mclass
/* var mclass: MClass */;
3330 val
* var6
/* : Array[nullable MPropDef] */;
3331 val
* var_table
/* var table: Array[nullable MPropDef] */;
3332 val
* var7
/* : Array[MClass] */;
3333 val
* var_parents
/* var parents: Array[MClass] */;
3334 val
* var8
/* : MModule */;
3335 val
* var9
/* : POSet[MClass] */;
3336 short int var10
/* : Bool */;
3337 val
* var11
/* : MModule */;
3338 val
* var12
/* : POSetElement[MClass] */;
3339 val
* var13
/* : Collection[Object] */;
3340 val
* var14
/* : Array[nullable Object] */;
3341 val
* var15
/* : MModule */;
3342 val
* var16
/* : Iterator[nullable Object] */;
3343 short int var17
/* : Bool */;
3344 val
* var18
/* : nullable Object */;
3345 val
* var_parent
/* var parent: MClass */;
3346 short int var19
/* : Bool */;
3347 val
* var20
/* : MModule */;
3348 val
* var21
/* : Set[MProperty] */;
3349 val
* var22
/* : Iterator[nullable Object] */;
3350 short int var23
/* : Bool */;
3351 val
* var24
/* : nullable Object */;
3352 val
* var_mproperty
/* var mproperty: MProperty */;
3353 short int var25
/* : Bool */;
3356 short int var26
/* : Bool */;
3357 val
* var28
/* : Map[Object, Int] */;
3358 val
* var29
/* : nullable Object */;
3359 long var30
/* : Int */;
3360 long var_color
/* var color: Int */;
3361 long var31
/* : Int */;
3362 short int var32
/* : Bool */;
3363 short int var34
/* : Bool */;
3366 const char* var_class_name
;
3367 short int var37
/* : Bool */;
3368 val
* var38
/* : Range[Int] */;
3369 long var39
/* : Int */;
3370 val
* var40
/* : Discrete */;
3371 val
* var41
/* : Discrete */;
3372 val
* var42
/* : Iterator[nullable Object] */;
3373 short int var43
/* : Bool */;
3374 val
* var44
/* : nullable Object */;
3375 long var_i
/* var i: Int */;
3376 long var45
/* : Int */;
3377 val
* var46
/* : null */;
3378 val
* var48
/* : Array[MPropDef] */;
3379 val
* var49
/* : Iterator[nullable Object] */;
3380 short int var50
/* : Bool */;
3381 val
* var51
/* : nullable Object */;
3382 val
* var_mpropdef
/* var mpropdef: MAttributeDef */;
3383 val
* var52
/* : MClassDef */;
3384 val
* var53
/* : MClass */;
3385 short int var54
/* : Bool */;
3386 val
* var56
/* : MModule */;
3387 val
* var57
/* : Set[MProperty] */;
3388 val
* var58
/* : Iterator[nullable Object] */;
3389 short int var59
/* : Bool */;
3390 val
* var60
/* : nullable Object */;
3391 val
* var_mproperty61
/* var mproperty: MProperty */;
3392 short int var62
/* : Bool */;
3395 short int var65
/* : Bool */;
3396 val
* var67
/* : Map[Object, Int] */;
3397 val
* var68
/* : nullable Object */;
3398 long var69
/* : Int */;
3399 long var_color70
/* var color: Int */;
3400 long var71
/* : Int */;
3401 short int var72
/* : Bool */;
3402 short int var74
/* : Bool */;
3405 const char* var_class_name77
;
3406 short int var78
/* : Bool */;
3407 val
* var79
/* : Range[Int] */;
3408 long var80
/* : Int */;
3409 val
* var81
/* : Discrete */;
3410 val
* var82
/* : Discrete */;
3411 val
* var83
/* : Iterator[nullable Object] */;
3412 short int var84
/* : Bool */;
3413 val
* var85
/* : nullable Object */;
3414 long var_i86
/* var i: Int */;
3415 long var87
/* : Int */;
3416 val
* var88
/* : null */;
3417 val
* var90
/* : Array[MPropDef] */;
3418 val
* var91
/* : Iterator[nullable Object] */;
3419 short int var92
/* : Bool */;
3420 val
* var93
/* : nullable Object */;
3421 val
* var_mpropdef94
/* var mpropdef: MAttributeDef */;
3422 val
* var95
/* : MClassDef */;
3423 val
* var96
/* : MClass */;
3424 short int var97
/* : Bool */;
3426 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_layout
]))(self
) /* attr_layout on <self:SeparateCompiler>*/;
3428 var2
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef
);
3429 ((void (*)(val
*))(var2
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var2
) /* init on <var2:HashMap[MClass, Array[nullable MPropDef]]>*/;
3431 var3
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:Set[MClass]>*/;
3433 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
3435 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
3437 var6
= NEW_array__Array(&type_array__Arraynullable_model__MPropDef
);
3438 ((void (*)(val
*))(var6
->class->vft
[COLOR_array__Array__init
]))(var6
) /* init on <var6:Array[nullable MPropDef]>*/;
3440 var7
= NEW_array__Array(&type_array__Arraymodel__MClass
);
3441 ((void (*)(val
*))(var7
->class->vft
[COLOR_array__Array__init
]))(var7
) /* init on <var7:Array[MClass]>*/;
3443 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3444 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var8
) /* flatten_mclass_hierarchy on <var8:MModule>*/;
3445 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var9
, var_mclass
) /* has on <var9:POSet[MClass]>*/;
3447 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3448 var12
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass
, var11
) /* in_hierarchy on <var_mclass:MClass>*/;
3449 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var12
) /* greaters on <var12:POSetElement[MClass]>*/;
3450 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_array__Collection__to_a
]))(var13
) /* to_a on <var13:Collection[Object](Collection[MClass])>*/;
3451 var_parents
= var14
;
3452 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3453 ((void (*)(val
*, val
*))(var15
->class->vft
[COLOR_model__MModule__linearize_mclasses
]))(var15
, var_parents
) /* linearize_mclasses on <var15:MModule>*/;
3456 var16
= ((val
* (*)(val
*))(var_parents
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_parents
) /* iterator on <var_parents:Array[MClass]>*/;
3458 var17
= ((short int (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var16
) /* is_ok on <var16:Iterator[nullable Object]>*/;
3460 var18
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var16
) /* item on <var16:Iterator[nullable Object]>*/;
3462 var19
= ((short int (*)(val
*, val
*))(var_parent
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_parent
, var_mclass
) /* == on <var_parent:MClass>*/;
3464 goto CONTINUE_label
;
3467 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3468 var21
= ((val
* (*)(val
*, val
*))(var20
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var20
, var_parent
) /* properties on <var20:MModule>*/;
3469 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var21
) /* iterator on <var21:Set[MProperty]>*/;
3471 var23
= ((short int (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var22
) /* is_ok on <var22:Iterator[nullable Object]>*/;
3473 var24
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var22
) /* item on <var22:Iterator[nullable Object]>*/;
3474 var_mproperty
= var24
;
3475 /* <var_mproperty:MProperty> isa MAttribute */
3476 cltype
= type_model__MAttribute
.color
;
3477 idtype
= type_model__MAttribute
.id
;
3478 if(cltype
>= var_mproperty
->type
->table_size
) {
3481 var25
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
3485 goto CONTINUE_label27
;
3488 if (var_layout
== NULL
) {
3489 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3490 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 406);
3493 var28
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MAttribute]>*/;
3495 var29
= ((val
* (*)(val
*, val
*))(var28
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var28
, var_mproperty
) /* [] on <var28:Map[Object, Int](Map[MAttribute, Int])>*/;
3496 var30
= ((struct instance_kernel__Int
*)var29
)->value
; /* autounbox from nullable Object to Int */;
3498 var31
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3499 { /* Inline kernel#Int#<= (var31,var_color) */
3500 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
3501 /* <var_color:Int> isa OTHER */
3502 var34
= 1; /* easy <var_color:Int> isa OTHER*/
3504 var_class_name
= type_kernel__Int
.name
;
3505 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3506 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
3509 var37
= var31
<= var_color
;
3512 RET_LABEL33
:(void)0;
3515 var38
= NEW_range__Range(&type_range__Rangekernel__Int
);
3516 var39
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3517 var40
= BOX_kernel__Int(var39
); /* autobox from Int to Discrete */
3518 var41
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
3519 ((void (*)(val
*, val
*, val
*))(var38
->class->vft
[COLOR_range__Range__without_last
]))(var38
, var40
, var41
) /* without_last on <var38:Range[Int]>*/;
3520 var42
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var38
) /* iterator on <var38:Range[Int]>*/;
3522 var43
= ((short int (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var42
) /* is_ok on <var42:Iterator[nullable Object]>*/;
3524 var44
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var42
) /* item on <var42:Iterator[nullable Object]>*/;
3525 var45
= ((struct instance_kernel__Int
*)var44
)->value
; /* autounbox from nullable Object to Int */;
3528 ((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]>*/;
3529 CONTINUE_label47
: (void)0;
3530 ((void (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var42
) /* next on <var42:Iterator[nullable Object]>*/;
3532 BREAK_label47
: (void)0;
3535 var48
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty
) /* mpropdefs on <var_mproperty:MProperty(MAttribute)>*/;
3536 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var48
) /* iterator on <var48:Array[MPropDef](Array[MAttributeDef])>*/;
3538 var50
= ((short int (*)(val
*))(var49
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var49
) /* is_ok on <var49:Iterator[nullable Object]>*/;
3540 var51
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var49
) /* item on <var49:Iterator[nullable Object]>*/;
3541 var_mpropdef
= var51
;
3542 var52
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MAttributeDef>*/;
3543 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_model__MClassDef__mclass
]))(var52
) /* mclass on <var52:MClassDef>*/;
3544 var54
= ((short int (*)(val
*, val
*))(var53
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var53
, var_parent
) /* == on <var53:MClass>*/;
3546 ((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]>*/;
3549 CONTINUE_label55
: (void)0;
3550 ((void (*)(val
*))(var49
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var49
) /* next on <var49:Iterator[nullable Object]>*/;
3552 BREAK_label55
: (void)0;
3553 CONTINUE_label27
: (void)0;
3554 ((void (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var22
) /* next on <var22:Iterator[nullable Object]>*/;
3556 BREAK_label27
: (void)0;
3557 CONTINUE_label
: (void)0;
3558 ((void (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var16
) /* next on <var16:Iterator[nullable Object]>*/;
3560 BREAK_label
: (void)0;
3561 var56
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3562 var57
= ((val
* (*)(val
*, val
*))(var56
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var56
, var_mclass
) /* properties on <var56:MModule>*/;
3563 var58
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var57
) /* iterator on <var57:Set[MProperty]>*/;
3565 var59
= ((short int (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var58
) /* is_ok on <var58:Iterator[nullable Object]>*/;
3567 var60
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var58
) /* item on <var58:Iterator[nullable Object]>*/;
3568 var_mproperty61
= var60
;
3569 /* <var_mproperty61:MProperty> isa MAttribute */
3570 cltype63
= type_model__MAttribute
.color
;
3571 idtype64
= type_model__MAttribute
.id
;
3572 if(cltype63
>= var_mproperty61
->type
->table_size
) {
3575 var62
= var_mproperty61
->type
->type_table
[cltype63
] == idtype64
;
3579 goto CONTINUE_label66
;
3582 if (var_layout
== NULL
) {
3583 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3584 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 423);
3587 var67
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MAttribute]>*/;
3589 var68
= ((val
* (*)(val
*, val
*))(var67
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var67
, var_mproperty61
) /* [] on <var67:Map[Object, Int](Map[MAttribute, Int])>*/;
3590 var69
= ((struct instance_kernel__Int
*)var68
)->value
; /* autounbox from nullable Object to Int */;
3591 var_color70
= var69
;
3592 var71
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3593 { /* Inline kernel#Int#<= (var71,var_color70) */
3594 /* Covariant cast for argument 0 (i) <var_color70:Int> isa OTHER */
3595 /* <var_color70:Int> isa OTHER */
3596 var74
= 1; /* easy <var_color70:Int> isa OTHER*/
3598 var_class_name77
= type_kernel__Int
.name
;
3599 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name77
);
3600 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
3603 var78
= var71
<= var_color70
;
3606 RET_LABEL73
:(void)0;
3609 var79
= NEW_range__Range(&type_range__Rangekernel__Int
);
3610 var80
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3611 var81
= BOX_kernel__Int(var80
); /* autobox from Int to Discrete */
3612 var82
= BOX_kernel__Int(var_color70
); /* autobox from Int to Discrete */
3613 ((void (*)(val
*, val
*, val
*))(var79
->class->vft
[COLOR_range__Range__without_last
]))(var79
, var81
, var82
) /* without_last on <var79:Range[Int]>*/;
3614 var83
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var79
) /* iterator on <var79:Range[Int]>*/;
3616 var84
= ((short int (*)(val
*))(var83
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var83
) /* is_ok on <var83:Iterator[nullable Object]>*/;
3618 var85
= ((val
* (*)(val
*))(var83
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var83
) /* item on <var83:Iterator[nullable Object]>*/;
3619 var87
= ((struct instance_kernel__Int
*)var85
)->value
; /* autounbox from nullable Object to Int */;
3622 ((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]>*/;
3623 CONTINUE_label89
: (void)0;
3624 ((void (*)(val
*))(var83
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var83
) /* next on <var83:Iterator[nullable Object]>*/;
3626 BREAK_label89
: (void)0;
3629 var90
= ((val
* (*)(val
*))(var_mproperty61
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty61
) /* mpropdefs on <var_mproperty61:MProperty(MAttribute)>*/;
3630 var91
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var90
) /* iterator on <var90:Array[MPropDef](Array[MAttributeDef])>*/;
3632 var92
= ((short int (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var91
) /* is_ok on <var91:Iterator[nullable Object]>*/;
3634 var93
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var91
) /* item on <var91:Iterator[nullable Object]>*/;
3635 var_mpropdef94
= var93
;
3636 var95
= ((val
* (*)(val
*))(var_mpropdef94
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef94
) /* mclassdef on <var_mpropdef94:MAttributeDef>*/;
3637 var96
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_model__MClassDef__mclass
]))(var95
) /* mclass on <var95:MClassDef>*/;
3638 var97
= ((short int (*)(val
*, val
*))(var96
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var96
, var_mclass
) /* == on <var96:MClass>*/;
3640 ((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]>*/;
3643 CONTINUE_label98
: (void)0;
3644 ((void (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var91
) /* next on <var91:Iterator[nullable Object]>*/;
3646 BREAK_label98
: (void)0;
3647 CONTINUE_label66
: (void)0;
3648 ((void (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var58
) /* next on <var58:Iterator[nullable Object]>*/;
3650 BREAK_label66
: (void)0;
3651 ((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]]>*/;
3652 CONTINUE_label99
: (void)0;
3653 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
3655 BREAK_label99
: (void)0;
3661 /* method separate_compiler#SeparateCompiler#build_attr_tables for (self: Object, Set[MClass]): Map[MClass, Array[nullable MPropDef]] */
3662 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_attr_tables(val
* self
, val
* p0
) {
3663 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
3664 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
3665 var1
= separate_compiler__SeparateCompiler__build_attr_tables(self
, p0
);
3670 /* method separate_compiler#SeparateCompiler#do_type_coloring for (self: SeparateCompiler): POSet[MType] */
3671 val
* separate_compiler__SeparateCompiler__do_type_coloring(val
* self
) {
3672 val
* var
/* : POSet[MType] */;
3673 val
* var1
/* : HashSet[MType] */;
3674 val
* var_mtypes
/* var mtypes: HashSet[MType] */;
3675 val
* var2
/* : nullable RapidTypeAnalysis */;
3676 val
* var3
/* : HashSet[MClassType] */;
3677 val
* var4
/* : nullable RapidTypeAnalysis */;
3678 val
* var5
/* : HashSet[MClassType] */;
3679 val
* var6
/* : Set[MType] */;
3680 val
* var7
/* : HashMap[MClass, Int] */;
3681 val
* var8
/* : Collection[Object] */;
3682 val
* var9
/* : Iterator[nullable Object] */;
3683 short int var10
/* : Bool */;
3684 val
* var11
/* : nullable Object */;
3685 val
* var_c
/* var c: MClass */;
3686 val
* var12
/* : MClassType */;
3687 val
* var13
/* : Iterator[nullable Object] */;
3688 short int var14
/* : Bool */;
3689 val
* var15
/* : nullable Object */;
3690 val
* var_mtype
/* var mtype: MType */;
3691 val
* var17
/* : Set[MType] */;
3692 val
* var18
/* : ModelBuilder */;
3693 val
* var19
/* : ToolContext */;
3694 val
* var20
/* : OptionBool */;
3695 val
* var21
/* : nullable Object */;
3696 short int var22
/* : Bool */;
3697 val
* var23
/* : MTypeBMizer */;
3698 val
* var24
/* : MModule */;
3699 val
* var_layout_builder
/* var layout_builder: TypingLayoutBuilder[MType] */;
3700 val
* var25
/* : ModelBuilder */;
3701 val
* var26
/* : ToolContext */;
3702 val
* var27
/* : OptionBool */;
3703 val
* var28
/* : nullable Object */;
3704 short int var29
/* : Bool */;
3705 val
* var30
/* : MTypeHasher */;
3706 val
* var31
/* : PHModOperator */;
3707 val
* var32
/* : MModule */;
3708 val
* var33
/* : ModelBuilder */;
3709 val
* var34
/* : ToolContext */;
3710 val
* var35
/* : OptionBool */;
3711 val
* var36
/* : nullable Object */;
3712 short int var37
/* : Bool */;
3713 val
* var38
/* : MTypeHasher */;
3714 val
* var39
/* : PHAndOperator */;
3715 val
* var40
/* : MModule */;
3716 val
* var41
/* : MTypeColorer */;
3717 val
* var42
/* : MModule */;
3718 val
* var43
/* : Layout[Object] */;
3719 val
* var44
/* : nullable POSet[Object] */;
3720 val
* var_poset
/* var poset: POSet[MType] */;
3721 val
* var45
/* : Map[MType, Array[nullable MType]] */;
3722 var1
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
3723 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var1
) /* init on <var1:HashSet[MType]>*/;
3725 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
3727 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3728 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 443);
3731 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var2
) /* live_types on <var2:nullable RapidTypeAnalysis>*/;
3733 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_mtypes
, var3
) /* add_all on <var_mtypes:HashSet[MType]>*/;
3734 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
3736 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3737 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 444);
3740 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_cast_types
]))(var4
) /* live_cast_types on <var4:nullable RapidTypeAnalysis>*/;
3742 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_mtypes
, var5
) /* add_all on <var_mtypes:HashSet[MType]>*/;
3743 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__undead_types
]))(self
) /* undead_types on <self:SeparateCompiler>*/;
3744 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_mtypes
, var6
) /* add_all on <var_mtypes:HashSet[MType]>*/;
3745 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
3746 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__MapRead__keys
]))(var7
) /* keys on <var7:HashMap[MClass, Int]>*/;
3747 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:Collection[Object](HashMapKeys[MClass, Int])>*/;
3749 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
3751 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
3753 var12
= ((val
* (*)(val
*))(var_c
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c
) /* mclass_type on <var_c:MClass>*/;
3754 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_mtypes
, var12
) /* add on <var_mtypes:HashSet[MType]>*/;
3755 CONTINUE_label
: (void)0;
3756 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
3758 BREAK_label
: (void)0;
3759 var13
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mtypes
) /* iterator on <var_mtypes:HashSet[MType]>*/;
3761 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
3763 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
3765 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__retrieve_partial_types
]))(self
, var_mtype
) /* retrieve_partial_types on <self:SeparateCompiler>*/;
3766 CONTINUE_label16
: (void)0;
3767 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
3769 BREAK_label16
: (void)0;
3770 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__partial_types
]))(self
) /* partial_types on <self:SeparateCompiler>*/;
3771 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_mtypes
, var17
) /* add_all on <var_mtypes:HashSet[MType]>*/;
3772 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
3773 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var18
) /* toolcontext on <var18:ModelBuilder>*/;
3774 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_separate_compiler__ToolContext__opt_bm_typing
]))(var19
) /* opt_bm_typing on <var19:ToolContext>*/;
3775 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_opts__Option__value
]))(var20
) /* value on <var20:OptionBool>*/;
3776 var22
= ((struct instance_kernel__Bool
*)var21
)->value
; /* autounbox from nullable Object to Bool */;
3778 var23
= NEW_layout_builders__MTypeBMizer(&type_layout_builders__MTypeBMizer
);
3779 var24
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3780 ((void (*)(val
*, val
*))(var23
->class->vft
[COLOR_layout_builders__MTypeBMizer__init
]))(var23
, var24
) /* init on <var23:MTypeBMizer>*/;
3781 var_layout_builder
= var23
;
3783 var25
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
3784 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var25
) /* toolcontext on <var25:ModelBuilder>*/;
3785 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var26
) /* opt_phmod_typing on <var26:ToolContext>*/;
3786 var28
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_opts__Option__value
]))(var27
) /* value on <var27:OptionBool>*/;
3787 var29
= ((struct instance_kernel__Bool
*)var28
)->value
; /* autounbox from nullable Object to Bool */;
3789 var30
= NEW_layout_builders__MTypeHasher(&type_layout_builders__MTypeHasher
);
3790 var31
= NEW_layout_builders__PHModOperator(&type_layout_builders__PHModOperator
);
3791 ((void (*)(val
*))(var31
->class->vft
[COLOR_layout_builders__PHModOperator__init
]))(var31
) /* init on <var31:PHModOperator>*/;
3792 var32
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3793 ((void (*)(val
*, val
*, val
*))(var30
->class->vft
[COLOR_layout_builders__MTypeHasher__init
]))(var30
, var31
, var32
) /* init on <var30:MTypeHasher>*/;
3794 var_layout_builder
= var30
;
3796 var33
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
3797 var34
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var33
) /* toolcontext on <var33:ModelBuilder>*/;
3798 var35
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var34
) /* opt_phand_typing on <var34:ToolContext>*/;
3799 var36
= ((val
* (*)(val
*))(var35
->class->vft
[COLOR_opts__Option__value
]))(var35
) /* value on <var35:OptionBool>*/;
3800 var37
= ((struct instance_kernel__Bool
*)var36
)->value
; /* autounbox from nullable Object to Bool */;
3802 var38
= NEW_layout_builders__MTypeHasher(&type_layout_builders__MTypeHasher
);
3803 var39
= NEW_layout_builders__PHAndOperator(&type_layout_builders__PHAndOperator
);
3804 ((void (*)(val
*))(var39
->class->vft
[COLOR_layout_builders__PHAndOperator__init
]))(var39
) /* init on <var39:PHAndOperator>*/;
3805 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3806 ((void (*)(val
*, val
*, val
*))(var38
->class->vft
[COLOR_layout_builders__MTypeHasher__init
]))(var38
, var39
, var40
) /* init on <var38:MTypeHasher>*/;
3807 var_layout_builder
= var38
;
3809 var41
= NEW_layout_builders__MTypeColorer(&type_layout_builders__MTypeColorer
);
3810 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3811 ((void (*)(val
*, val
*))(var41
->class->vft
[COLOR_layout_builders__MTypeColorer__init
]))(var41
, var42
) /* init on <var41:MTypeColorer>*/;
3812 var_layout_builder
= var41
;
3816 var43
= ((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]>*/;
3817 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout_61d
]))(self
, var43
) /* type_layout= on <self:SeparateCompiler>*/;
3818 var44
= ((val
* (*)(val
*))(var_layout_builder
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(var_layout_builder
) /* poset on <var_layout_builder:TypingLayoutBuilder[MType]>*/;
3819 if (var44
== NULL
) {
3820 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3821 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 469);
3825 var45
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__build_type_tables
]))(self
, var_poset
) /* build_type_tables on <self:SeparateCompiler>*/;
3826 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_tables_61d
]))(self
, var45
) /* type_tables= on <self:SeparateCompiler>*/;
3827 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_resolution_tables
]))(self
, var_mtypes
) /* compile_resolution_tables on <self:SeparateCompiler>*/;
3833 /* method separate_compiler#SeparateCompiler#do_type_coloring for (self: Object): POSet[MType] */
3834 val
* VIRTUAL_separate_compiler__SeparateCompiler__do_type_coloring(val
* self
) {
3835 val
* var
/* : POSet[MType] */;
3836 val
* var1
/* : POSet[MType] */;
3837 var1
= separate_compiler__SeparateCompiler__do_type_coloring(self
);
3842 /* method separate_compiler#SeparateCompiler#build_type_tables for (self: SeparateCompiler, POSet[MType]): Map[MType, Array[nullable MType]] */
3843 val
* separate_compiler__SeparateCompiler__build_type_tables(val
* self
, val
* p0
) {
3844 val
* var
/* : Map[MType, Array[nullable MType]] */;
3845 val
* var_mtypes
/* var mtypes: POSet[MType] */;
3846 val
* var1
/* : HashMap[MType, Array[nullable MType]] */;
3847 val
* var_tables
/* var tables: HashMap[MType, Array[nullable MType]] */;
3848 val
* var2
/* : nullable Layout[MType] */;
3849 val
* var_layout
/* var layout: nullable Layout[MType] */;
3850 val
* var3
/* : Iterator[nullable Object] */;
3851 short int var4
/* : Bool */;
3852 val
* var5
/* : nullable Object */;
3853 val
* var_mtype
/* var mtype: MType */;
3854 val
* var6
/* : Array[nullable MType] */;
3855 val
* var_table
/* var table: Array[nullable MType] */;
3856 val
* var7
/* : POSetElement[Object] */;
3857 val
* var8
/* : Collection[Object] */;
3858 val
* var9
/* : Iterator[nullable Object] */;
3859 short int var10
/* : Bool */;
3860 val
* var11
/* : nullable Object */;
3861 val
* var_sup
/* var sup: MType */;
3862 short int var12
/* : Bool */;
3865 val
* var13
/* : Map[Object, Map[Object, Int]] */;
3866 val
* var14
/* : nullable Object */;
3867 val
* var15
/* : nullable Object */;
3868 long var16
/* : Int */;
3869 long var_color
/* var color: Int */;
3870 val
* var17
/* : Map[Object, Int] */;
3871 val
* var18
/* : nullable Object */;
3872 long var19
/* : Int */;
3873 long var20
/* : Int */;
3874 short int var21
/* : Bool */;
3875 short int var23
/* : Bool */;
3878 const char* var_class_name
;
3879 short int var26
/* : Bool */;
3880 val
* var27
/* : Range[Int] */;
3881 long var28
/* : Int */;
3882 val
* var29
/* : Discrete */;
3883 val
* var30
/* : Discrete */;
3884 val
* var31
/* : Iterator[nullable Object] */;
3885 short int var32
/* : Bool */;
3886 val
* var33
/* : nullable Object */;
3887 long var_i
/* var i: Int */;
3888 long var34
/* : Int */;
3889 val
* var35
/* : null */;
3891 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType
);
3892 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var1
) /* init on <var1:HashMap[MType, Array[nullable MType]]>*/;
3894 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout
]))(self
) /* type_layout on <self:SeparateCompiler>*/;
3896 var3
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mtypes
) /* iterator on <var_mtypes:POSet[MType]>*/;
3898 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
3900 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
3902 var6
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
3903 ((void (*)(val
*))(var6
->class->vft
[COLOR_array__Array__init
]))(var6
) /* init on <var6:Array[nullable MType]>*/;
3905 var7
= ((val
* (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_poset__POSet___91d_93d
]))(var_mtypes
, var_mtype
) /* [] on <var_mtypes:POSet[MType]>*/;
3906 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var7
) /* greaters on <var7:POSetElement[Object](POSetElement[MType])>*/;
3907 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:Collection[Object](Collection[MType])>*/;
3909 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
3911 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
3913 /* <var_layout:nullable Layout[MType]> isa PHLayout[MType, MType] */
3914 cltype
= type_layout_builders__PHLayoutmodel__MTypemodel__MType
.color
;
3915 idtype
= type_layout_builders__PHLayoutmodel__MTypemodel__MType
.id
;
3916 if(var_layout
== NULL
) {
3919 if(cltype
>= var_layout
->type
->table_size
) {
3922 var12
= var_layout
->type
->type_table
[cltype
] == idtype
;
3926 var13
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__hashes
]))(var_layout
) /* hashes on <var_layout:nullable Layout[MType](PHLayout[MType, MType])>*/;
3927 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]])>*/;
3928 var15
= ((val
* (*)(val
*, val
*))(var14
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var14
, var_sup
) /* [] on <var14:nullable Object(Map[MType, Int])>*/;
3929 var16
= ((struct instance_kernel__Int
*)var15
)->value
; /* autounbox from nullable Object to Int */;
3932 if (var_layout
== NULL
) {
3933 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3934 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 489);
3937 var17
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MType]>*/;
3939 var18
= ((val
* (*)(val
*, val
*))(var17
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var17
, var_sup
) /* [] on <var17:Map[Object, Int](Map[MType, Int])>*/;
3940 var19
= ((struct instance_kernel__Int
*)var18
)->value
; /* autounbox from nullable Object to Int */;
3943 var20
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MType]>*/;
3944 { /* Inline kernel#Int#<= (var20,var_color) */
3945 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
3946 /* <var_color:Int> isa OTHER */
3947 var23
= 1; /* easy <var_color:Int> isa OTHER*/
3949 var_class_name
= type_kernel__Int
.name
;
3950 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3951 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
3954 var26
= var20
<= var_color
;
3957 RET_LABEL22
:(void)0;
3960 var27
= NEW_range__Range(&type_range__Rangekernel__Int
);
3961 var28
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MType]>*/;
3962 var29
= BOX_kernel__Int(var28
); /* autobox from Int to Discrete */
3963 var30
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
3964 ((void (*)(val
*, val
*, val
*))(var27
->class->vft
[COLOR_range__Range__without_last
]))(var27
, var29
, var30
) /* without_last on <var27:Range[Int]>*/;
3965 var31
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var27
) /* iterator on <var27:Range[Int]>*/;
3967 var32
= ((short int (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var31
) /* is_ok on <var31:Iterator[nullable Object]>*/;
3969 var33
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var31
) /* item on <var31:Iterator[nullable Object]>*/;
3970 var34
= ((struct instance_kernel__Int
*)var33
)->value
; /* autounbox from nullable Object to Int */;
3973 ((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]>*/;
3974 CONTINUE_label
: (void)0;
3975 ((void (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var31
) /* next on <var31:Iterator[nullable Object]>*/;
3977 BREAK_label
: (void)0;
3980 ((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]>*/;
3981 CONTINUE_label36
: (void)0;
3982 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
3984 BREAK_label36
: (void)0;
3985 ((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]]>*/;
3986 CONTINUE_label37
: (void)0;
3987 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
3989 BREAK_label37
: (void)0;
3995 /* method separate_compiler#SeparateCompiler#build_type_tables for (self: Object, POSet[MType]): Map[MType, Array[nullable MType]] */
3996 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_type_tables(val
* self
, val
* p0
) {
3997 val
* var
/* : Map[MType, Array[nullable MType]] */;
3998 val
* var1
/* : Map[MType, Array[nullable MType]] */;
3999 var1
= separate_compiler__SeparateCompiler__build_type_tables(self
, p0
);
4004 /* method separate_compiler#SeparateCompiler#compile_resolution_tables for (self: SeparateCompiler, Set[MType]) */
4005 void separate_compiler__SeparateCompiler__compile_resolution_tables(val
* self
, val
* p0
) {
4006 val
* var_mtypes
/* var mtypes: Set[MType] */;
4007 val
* var
/* : HashMap[MClassType, Set[MType]] */;
4008 val
* var_mtype2unresolved
/* var mtype2unresolved: HashMap[MClassType, Set[MType]] */;
4009 val
* var1
/* : nullable RapidTypeAnalysis */;
4010 val
* var2
/* : HashSet[MClassType] */;
4011 val
* var3
/* : Iterator[nullable Object] */;
4012 short int var4
/* : Bool */;
4013 val
* var5
/* : nullable Object */;
4014 val
* var_mtype
/* var mtype: MClassType */;
4015 val
* var6
/* : HashSet[MType] */;
4016 val
* var_set
/* var set: HashSet[MType] */;
4017 val
* var7
/* : MModule */;
4018 val
* var8
/* : Set[MClassDef] */;
4019 val
* var9
/* : Iterator[nullable Object] */;
4020 short int var10
/* : Bool */;
4021 val
* var11
/* : nullable Object */;
4022 val
* var_cd
/* var cd: MClassDef */;
4023 val
* var12
/* : Map[MClassDef, Set[MType]] */;
4024 short int var13
/* : Bool */;
4025 val
* var14
/* : Map[MClassDef, Set[MType]] */;
4026 val
* var15
/* : nullable Object */;
4027 val
* var17
/* : ModelBuilder */;
4028 val
* var18
/* : ToolContext */;
4029 val
* var19
/* : OptionBool */;
4030 val
* var20
/* : nullable Object */;
4031 short int var21
/* : Bool */;
4032 val
* var22
/* : ResolutionBMizer */;
4033 val
* var_resolution_builder
/* var resolution_builder: ResolutionLayoutBuilder */;
4034 val
* var23
/* : ModelBuilder */;
4035 val
* var24
/* : ToolContext */;
4036 val
* var25
/* : OptionBool */;
4037 val
* var26
/* : nullable Object */;
4038 short int var27
/* : Bool */;
4039 val
* var28
/* : ResolutionHasher */;
4040 val
* var29
/* : PHModOperator */;
4041 val
* var30
/* : ModelBuilder */;
4042 val
* var31
/* : ToolContext */;
4043 val
* var32
/* : OptionBool */;
4044 val
* var33
/* : nullable Object */;
4045 short int var34
/* : Bool */;
4046 val
* var35
/* : ResolutionHasher */;
4047 val
* var36
/* : PHAndOperator */;
4048 val
* var37
/* : ResolutionColorer */;
4049 val
* var38
/* : Layout[MType] */;
4050 val
* var39
/* : Map[MClassType, Array[nullable MType]] */;
4051 val
* var40
/* : HashSet[MType] */;
4052 val
* var_all_unresolved
/* var all_unresolved: HashSet[MType] */;
4053 val
* var41
/* : Map[MClassDef, Set[MType]] */;
4054 val
* var42
/* : Collection[nullable Object] */;
4055 val
* var43
/* : Iterator[nullable Object] */;
4056 short int var44
/* : Bool */;
4057 val
* var45
/* : nullable Object */;
4058 val
* var_t
/* var t: Set[MType] */;
4059 val
* var47
/* : HashMap[MType, Int] */;
4060 val
* var_all_unresolved_types_colors
/* var all_unresolved_types_colors: HashMap[MType, Int] */;
4061 val
* var48
/* : Iterator[nullable Object] */;
4062 short int var49
/* : Bool */;
4063 val
* var50
/* : nullable Object */;
4064 val
* var_t51
/* var t: MType */;
4065 val
* var52
/* : nullable Layout[MType] */;
4066 val
* var53
/* : Map[Object, Int] */;
4067 short int var54
/* : Bool */;
4068 val
* var55
/* : nullable Layout[MType] */;
4069 val
* var56
/* : Map[Object, Int] */;
4070 val
* var57
/* : nullable Object */;
4071 long var58
/* : Int */;
4072 long var59
/* : Int */;
4073 long var61
/* : Int */;
4074 val
* var62
/* : nullable Object */;
4076 var
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypeabstract_collection__Setmodel__MType
);
4077 ((void (*)(val
*))(var
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var
) /* init on <var:HashMap[MClassType, Set[MType]]>*/;
4078 var_mtype2unresolved
= var
;
4079 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
4081 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4082 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 512);
4085 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var1
) /* live_types on <var1:nullable RapidTypeAnalysis>*/;
4087 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:HashSet[MClassType]>*/;
4089 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
4091 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
4093 var6
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
4094 ((void (*)(val
*))(var6
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var6
) /* init on <var6:HashSet[MType]>*/;
4096 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
4097 var8
= ((val
* (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var_mtype
, var7
) /* collect_mclassdefs on <var_mtype:MClassType>*/;
4098 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:Set[MClassDef]>*/;
4100 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
4102 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
4104 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__live_unresolved_types
]))(self
) /* live_unresolved_types on <self:SeparateCompiler>*/;
4105 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]]>*/;
4107 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__live_unresolved_types
]))(self
) /* live_unresolved_types on <self:SeparateCompiler>*/;
4108 var15
= ((val
* (*)(val
*, val
*))(var14
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var14
, var_cd
) /* [] on <var14:Map[MClassDef, Set[MType]]>*/;
4109 ((void (*)(val
*, val
*))(var_set
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_set
, var15
) /* add_all on <var_set:HashSet[MType]>*/;
4112 CONTINUE_label
: (void)0;
4113 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
4115 BREAK_label
: (void)0;
4116 ((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]]>*/;
4117 CONTINUE_label16
: (void)0;
4118 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
4120 BREAK_label16
: (void)0;
4121 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
4122 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var17
) /* toolcontext on <var17:ModelBuilder>*/;
4123 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_separate_compiler__ToolContext__opt_bm_typing
]))(var18
) /* opt_bm_typing on <var18:ToolContext>*/;
4124 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_opts__Option__value
]))(var19
) /* value on <var19:OptionBool>*/;
4125 var21
= ((struct instance_kernel__Bool
*)var20
)->value
; /* autounbox from nullable Object to Bool */;
4127 var22
= NEW_layout_builders__ResolutionBMizer(&type_layout_builders__ResolutionBMizer
);
4128 ((void (*)(val
*))(var22
->class->vft
[COLOR_layout_builders__ResolutionBMizer__init
]))(var22
) /* init on <var22:ResolutionBMizer>*/;
4129 var_resolution_builder
= var22
;
4131 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
4132 var24
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var23
) /* toolcontext on <var23:ModelBuilder>*/;
4133 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var24
) /* opt_phmod_typing on <var24:ToolContext>*/;
4134 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_opts__Option__value
]))(var25
) /* value on <var25:OptionBool>*/;
4135 var27
= ((struct instance_kernel__Bool
*)var26
)->value
; /* autounbox from nullable Object to Bool */;
4137 var28
= NEW_layout_builders__ResolutionHasher(&type_layout_builders__ResolutionHasher
);
4138 var29
= NEW_layout_builders__PHModOperator(&type_layout_builders__PHModOperator
);
4139 ((void (*)(val
*))(var29
->class->vft
[COLOR_layout_builders__PHModOperator__init
]))(var29
) /* init on <var29:PHModOperator>*/;
4140 ((void (*)(val
*, val
*))(var28
->class->vft
[COLOR_layout_builders__ResolutionHasher__init
]))(var28
, var29
) /* init on <var28:ResolutionHasher>*/;
4141 var_resolution_builder
= var28
;
4143 var30
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
4144 var31
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var30
) /* toolcontext on <var30:ModelBuilder>*/;
4145 var32
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var31
) /* opt_phand_typing on <var31:ToolContext>*/;
4146 var33
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_opts__Option__value
]))(var32
) /* value on <var32:OptionBool>*/;
4147 var34
= ((struct instance_kernel__Bool
*)var33
)->value
; /* autounbox from nullable Object to Bool */;
4149 var35
= NEW_layout_builders__ResolutionHasher(&type_layout_builders__ResolutionHasher
);
4150 var36
= NEW_layout_builders__PHAndOperator(&type_layout_builders__PHAndOperator
);
4151 ((void (*)(val
*))(var36
->class->vft
[COLOR_layout_builders__PHAndOperator__init
]))(var36
) /* init on <var36:PHAndOperator>*/;
4152 ((void (*)(val
*, val
*))(var35
->class->vft
[COLOR_layout_builders__ResolutionHasher__init
]))(var35
, var36
) /* init on <var35:ResolutionHasher>*/;
4153 var_resolution_builder
= var35
;
4155 var37
= NEW_layout_builders__ResolutionColorer(&type_layout_builders__ResolutionColorer
);
4156 ((void (*)(val
*))(var37
->class->vft
[COLOR_layout_builders__ResolutionColorer__init
]))(var37
) /* init on <var37:ResolutionColorer>*/;
4157 var_resolution_builder
= var37
;
4161 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>*/;
4162 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_layout_61d
]))(self
, var38
) /* resolution_layout= on <self:SeparateCompiler>*/;
4163 var39
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__build_resolution_tables
]))(self
, var_mtype2unresolved
) /* build_resolution_tables on <self:SeparateCompiler>*/;
4164 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_tables_61d
]))(self
, var39
) /* resolution_tables= on <self:SeparateCompiler>*/;
4165 var40
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
4166 ((void (*)(val
*))(var40
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var40
) /* init on <var40:HashSet[MType]>*/;
4167 var_all_unresolved
= var40
;
4168 var41
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__live_unresolved_types
]))(self
) /* live_unresolved_types on <self:SeparateCompiler>*/;
4169 var42
= ((val
* (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__MapRead__values
]))(var41
) /* values on <var41:Map[MClassDef, Set[MType]]>*/;
4170 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var42
) /* iterator on <var42:Collection[nullable Object](RemovableCollection[Set[MType]])>*/;
4172 var44
= ((short int (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var43
) /* is_ok on <var43:Iterator[nullable Object]>*/;
4174 var45
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var43
) /* item on <var43:Iterator[nullable Object]>*/;
4176 ((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]>*/;
4177 CONTINUE_label46
: (void)0;
4178 ((void (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var43
) /* next on <var43:Iterator[nullable Object]>*/;
4180 BREAK_label46
: (void)0;
4181 var47
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypekernel__Int
);
4182 ((void (*)(val
*))(var47
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var47
) /* init on <var47:HashMap[MType, Int]>*/;
4183 var_all_unresolved_types_colors
= var47
;
4184 var48
= ((val
* (*)(val
*))(var_all_unresolved
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_all_unresolved
) /* iterator on <var_all_unresolved:HashSet[MType]>*/;
4186 var49
= ((short int (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var48
) /* is_ok on <var48:Iterator[nullable Object]>*/;
4188 var50
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var48
) /* item on <var48:Iterator[nullable Object]>*/;
4190 var52
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_layout
]))(self
) /* resolution_layout on <self:SeparateCompiler>*/;
4191 if (var52
== NULL
) {
4192 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4193 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 544);
4196 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var52
) /* pos on <var52:nullable Layout[MType]>*/;
4198 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])>*/;
4200 var55
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_layout
]))(self
) /* resolution_layout on <self:SeparateCompiler>*/;
4201 if (var55
== NULL
) {
4202 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4203 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 545);
4206 var56
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var55
) /* pos on <var55:nullable Layout[MType]>*/;
4208 var57
= ((val
* (*)(val
*, val
*))(var56
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var56
, var_t51
) /* [] on <var56:Map[Object, Int](Map[MType, Int])>*/;
4209 ((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]>*/;
4212 { /* Inline kernel#Int#unary - (var58) */
4216 RET_LABEL60
:(void)0;
4218 var62
= BOX_kernel__Int(var59
); /* autobox from Int to nullable Object */
4219 ((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]>*/;
4221 CONTINUE_label63
: (void)0;
4222 ((void (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var48
) /* next on <var48:Iterator[nullable Object]>*/;
4224 BREAK_label63
: (void)0;
4225 ((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>*/;
4228 /* method separate_compiler#SeparateCompiler#compile_resolution_tables for (self: Object, Set[MType]) */
4229 void VIRTUAL_separate_compiler__SeparateCompiler__compile_resolution_tables(val
* self
, val
* p0
) {
4230 separate_compiler__SeparateCompiler__compile_resolution_tables(self
, p0
);
4233 /* method separate_compiler#SeparateCompiler#build_resolution_tables for (self: SeparateCompiler, Map[MClassType, Set[MType]]): Map[MClassType, Array[nullable MType]] */
4234 val
* separate_compiler__SeparateCompiler__build_resolution_tables(val
* self
, val
* p0
) {
4235 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
4236 val
* var_elements
/* var elements: Map[MClassType, Set[MType]] */;
4237 val
* var1
/* : HashMap[MClassType, Array[nullable MType]] */;
4238 val
* var_tables
/* var tables: HashMap[MClassType, Array[nullable MType]] */;
4239 val
* var2
/* : nullable Layout[MType] */;
4240 val
* var_layout
/* var layout: nullable Layout[MType] */;
4241 val
* var3
/* : MapIterator[Object, nullable Object] */;
4242 short int var4
/* : Bool */;
4243 val
* var5
/* : Object */;
4244 val
* var_mclasstype
/* var mclasstype: MClassType */;
4245 val
* var6
/* : nullable Object */;
4246 val
* var_mtypes
/* var mtypes: Set[MType] */;
4247 val
* var7
/* : Array[nullable MType] */;
4248 val
* var_table
/* var table: Array[nullable MType] */;
4249 val
* var8
/* : Iterator[nullable Object] */;
4250 short int var9
/* : Bool */;
4251 val
* var10
/* : nullable Object */;
4252 val
* var_mtype
/* var mtype: MType */;
4253 short int var11
/* : Bool */;
4256 val
* var12
/* : Map[Object, Map[Object, Int]] */;
4257 val
* var13
/* : nullable Object */;
4258 val
* var14
/* : nullable Object */;
4259 long var15
/* : Int */;
4260 long var_color
/* var color: Int */;
4261 val
* var16
/* : Map[Object, Int] */;
4262 val
* var17
/* : nullable Object */;
4263 long var18
/* : Int */;
4264 long var19
/* : Int */;
4265 short int var20
/* : Bool */;
4266 short int var22
/* : Bool */;
4269 const char* var_class_name
;
4270 short int var25
/* : Bool */;
4271 val
* var26
/* : Range[Int] */;
4272 long var27
/* : Int */;
4273 val
* var28
/* : Discrete */;
4274 val
* var29
/* : Discrete */;
4275 val
* var30
/* : Iterator[nullable Object] */;
4276 short int var31
/* : Bool */;
4277 val
* var32
/* : nullable Object */;
4278 long var_i
/* var i: Int */;
4279 long var33
/* : Int */;
4280 val
* var34
/* : null */;
4282 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType
);
4283 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var1
) /* init on <var1:HashMap[MClassType, Array[nullable MType]]>*/;
4285 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_layout
]))(self
) /* resolution_layout on <self:SeparateCompiler>*/;
4287 var3
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_elements
) /* iterator on <var_elements:Map[MClassType, Set[MType]]>*/;
4289 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var3
) /* is_ok on <var3:MapIterator[Object, nullable Object]>*/;
4291 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var3
) /* key on <var3:MapIterator[Object, nullable Object]>*/;
4292 var_mclasstype
= var5
;
4293 var6
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var3
) /* item on <var3:MapIterator[Object, nullable Object]>*/;
4295 var7
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
4296 ((void (*)(val
*))(var7
->class->vft
[COLOR_array__Array__init
]))(var7
) /* init on <var7:Array[nullable MType]>*/;
4298 var8
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mtypes
) /* iterator on <var_mtypes:Set[MType]>*/;
4300 var9
= ((short int (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var8
) /* is_ok on <var8:Iterator[nullable Object]>*/;
4302 var10
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var8
) /* item on <var8:Iterator[nullable Object]>*/;
4304 /* <var_layout:nullable Layout[MType]> isa PHLayout[MClassType, MType] */
4305 cltype
= type_layout_builders__PHLayoutmodel__MClassTypemodel__MType
.color
;
4306 idtype
= type_layout_builders__PHLayoutmodel__MClassTypemodel__MType
.id
;
4307 if(var_layout
== NULL
) {
4310 if(cltype
>= var_layout
->type
->table_size
) {
4313 var11
= var_layout
->type
->type_table
[cltype
] == idtype
;
4317 var12
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__hashes
]))(var_layout
) /* hashes on <var_layout:nullable Layout[MType](PHLayout[MClassType, MType])>*/;
4318 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]])>*/;
4319 var14
= ((val
* (*)(val
*, val
*))(var13
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var13
, var_mtype
) /* [] on <var13:nullable Object(Map[MType, Int])>*/;
4320 var15
= ((struct instance_kernel__Int
*)var14
)->value
; /* autounbox from nullable Object to Int */;
4323 if (var_layout
== NULL
) {
4324 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4325 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 569);
4328 var16
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MType]>*/;
4330 var17
= ((val
* (*)(val
*, val
*))(var16
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var16
, var_mtype
) /* [] on <var16:Map[Object, Int](Map[MType, Int])>*/;
4331 var18
= ((struct instance_kernel__Int
*)var17
)->value
; /* autounbox from nullable Object to Int */;
4334 var19
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MType]>*/;
4335 { /* Inline kernel#Int#<= (var19,var_color) */
4336 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
4337 /* <var_color:Int> isa OTHER */
4338 var22
= 1; /* easy <var_color:Int> isa OTHER*/
4340 var_class_name
= type_kernel__Int
.name
;
4341 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
4342 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
4345 var25
= var19
<= var_color
;
4348 RET_LABEL21
:(void)0;
4351 var26
= NEW_range__Range(&type_range__Rangekernel__Int
);
4352 var27
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MType]>*/;
4353 var28
= BOX_kernel__Int(var27
); /* autobox from Int to Discrete */
4354 var29
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
4355 ((void (*)(val
*, val
*, val
*))(var26
->class->vft
[COLOR_range__Range__without_last
]))(var26
, var28
, var29
) /* without_last on <var26:Range[Int]>*/;
4356 var30
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var26
) /* iterator on <var26:Range[Int]>*/;
4358 var31
= ((short int (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var30
) /* is_ok on <var30:Iterator[nullable Object]>*/;
4360 var32
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var30
) /* item on <var30:Iterator[nullable Object]>*/;
4361 var33
= ((struct instance_kernel__Int
*)var32
)->value
; /* autounbox from nullable Object to Int */;
4364 ((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]>*/;
4365 CONTINUE_label
: (void)0;
4366 ((void (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var30
) /* next on <var30:Iterator[nullable Object]>*/;
4368 BREAK_label
: (void)0;
4371 ((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]>*/;
4372 CONTINUE_label35
: (void)0;
4373 ((void (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var8
) /* next on <var8:Iterator[nullable Object]>*/;
4375 BREAK_label35
: (void)0;
4376 ((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]]>*/;
4377 CONTINUE_label36
: (void)0;
4378 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var3
) /* next on <var3:MapIterator[Object, nullable Object]>*/;
4380 BREAK_label36
: (void)0;
4386 /* method separate_compiler#SeparateCompiler#build_resolution_tables for (self: Object, Map[MClassType, Set[MType]]): Map[MClassType, Array[nullable MType]] */
4387 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_resolution_tables(val
* self
, val
* p0
) {
4388 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
4389 val
* var1
/* : Map[MClassType, Array[nullable MType]] */;
4390 var1
= separate_compiler__SeparateCompiler__build_resolution_tables(self
, p0
);
4395 /* method separate_compiler#SeparateCompiler#retrieve_partial_types for (self: SeparateCompiler, MType) */
4396 void separate_compiler__SeparateCompiler__retrieve_partial_types(val
* self
, val
* p0
) {
4397 val
* var_mtype
/* var mtype: MType */;
4398 short int var
/* : Bool */;
4401 val
* var1
/* : Array[MType] */;
4402 val
* var2
/* : Iterator[nullable Object] */;
4403 short int var3
/* : Bool */;
4404 val
* var4
/* : nullable Object */;
4405 val
* var_ft
/* var ft: MType */;
4406 short int var5
/* : Bool */;
4407 static val
* varonce
;
4408 val
* var6
/* : String */;
4409 char* var7
/* : NativeString */;
4410 long var8
/* : Int */;
4411 val
* var9
/* : String */;
4412 val
* var10
/* : Set[MType] */;
4413 short int var11
/* : Bool */;
4416 val
* var14
/* : MType */;
4417 short int var15
/* : Bool */;
4420 const char* var_class_name
;
4421 val
* var_mclass_type
/* var mclass_type: MClassType */;
4422 short int var18
/* : Bool */;
4425 const char* var_class_name21
;
4426 val
* var22
/* : MModule */;
4427 val
* var23
/* : MClass */;
4428 val
* var24
/* : Set[MProperty] */;
4429 val
* var25
/* : Iterator[nullable Object] */;
4430 short int var26
/* : Bool */;
4431 val
* var27
/* : nullable Object */;
4432 val
* var_vt
/* var vt: MProperty */;
4433 short int var28
/* : Bool */;
4436 val
* var31
/* : MVirtualType */;
4437 val
* var32
/* : MModule */;
4438 val
* var33
/* : MType */;
4439 val
* var34
/* : MModule */;
4440 val
* var35
/* : MType */;
4441 val
* var_anchored
/* var anchored: MType */;
4442 val
* var36
/* : Set[MType] */;
4444 /* <var_mtype:MType> isa MGenericType */
4445 cltype
= type_model__MGenericType
.color
;
4446 idtype
= type_model__MGenericType
.id
;
4447 if(cltype
>= var_mtype
->type
->table_size
) {
4450 var
= var_mtype
->type
->type_table
[cltype
] == idtype
;
4453 var1
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MType(MGenericType)>*/;
4454 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var1
) /* iterator on <var1:Array[MType]>*/;
4456 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var2
) /* is_ok on <var2:Iterator[nullable Object]>*/;
4458 var4
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var2
) /* item on <var2:Iterator[nullable Object]>*/;
4460 var5
= ((short int (*)(val
*))(var_ft
->class->vft
[COLOR_model__MType__need_anchor
]))(var_ft
) /* need_anchor on <var_ft:MType>*/;
4465 var7
= "Why do we need anchor here ?";
4467 var9
= string__NativeString__to_s_with_length(var7
, var8
);
4471 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var6
) /* print on <self:SeparateCompiler>*/;
4472 fprintf(stderr
, "Runtime error: %s", "Aborted");
4473 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 589);
4477 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__partial_types
]))(self
) /* partial_types on <self:SeparateCompiler>*/;
4478 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var10
, var_ft
) /* add on <var10:Set[MType]>*/;
4479 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__retrieve_partial_types
]))(self
, var_ft
) /* retrieve_partial_types on <self:SeparateCompiler>*/;
4480 CONTINUE_label
: (void)0;
4481 ((void (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var2
) /* next on <var2:Iterator[nullable Object]>*/;
4483 BREAK_label
: (void)0;
4486 /* <var_mtype:MType> isa MNullableType */
4487 cltype12
= type_model__MNullableType
.color
;
4488 idtype13
= type_model__MNullableType
.id
;
4489 if(cltype12
>= var_mtype
->type
->table_size
) {
4492 var11
= var_mtype
->type
->type_table
[cltype12
] == idtype13
;
4495 var14
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
4496 /* <var14:MType> isa MClassType */
4497 cltype16
= type_model__MClassType
.color
;
4498 idtype17
= type_model__MClassType
.id
;
4499 if(cltype16
>= var14
->type
->table_size
) {
4502 var15
= var14
->type
->type_table
[cltype16
] == idtype17
;
4505 var_class_name
= var14
== NULL ?
"null" : var14
->type
->name
;
4506 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
4507 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 597);
4510 var_mclass_type
= var14
;
4512 /* <var_mtype:MType> isa MClassType */
4513 cltype19
= type_model__MClassType
.color
;
4514 idtype20
= type_model__MClassType
.id
;
4515 if(cltype19
>= var_mtype
->type
->table_size
) {
4518 var18
= var_mtype
->type
->type_table
[cltype19
] == idtype20
;
4521 var_class_name21
= var_mtype
== NULL ?
"null" : var_mtype
->type
->name
;
4522 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name21
);
4523 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 599);
4526 var_mclass_type
= var_mtype
;
4528 var22
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
4529 var23
= ((val
* (*)(val
*))(var_mclass_type
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mclass_type
) /* mclass on <var_mclass_type:MClassType>*/;
4530 var24
= ((val
* (*)(val
*, val
*))(var22
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var22
, var23
) /* properties on <var22:MModule>*/;
4531 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var24
) /* iterator on <var24:Set[MProperty]>*/;
4533 var26
= ((short int (*)(val
*))(var25
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var25
) /* is_ok on <var25:Iterator[nullable Object]>*/;
4535 var27
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var25
) /* item on <var25:Iterator[nullable Object]>*/;
4537 /* <var_vt:MProperty> isa MVirtualTypeProp */
4538 cltype29
= type_model__MVirtualTypeProp
.color
;
4539 idtype30
= type_model__MVirtualTypeProp
.id
;
4540 if(cltype29
>= var_vt
->type
->table_size
) {
4543 var28
= var_vt
->type
->type_table
[cltype29
] == idtype30
;
4546 var31
= ((val
* (*)(val
*))(var_vt
->class->vft
[COLOR_model__MVirtualTypeProp__mvirtualtype
]))(var_vt
) /* mvirtualtype on <var_vt:MProperty(MVirtualTypeProp)>*/;
4547 var32
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
4548 var33
= ((val
* (*)(val
*, val
*, val
*))(var31
->class->vft
[COLOR_model__MVirtualType__lookup_bound
]))(var31
, var32
, var_mclass_type
) /* lookup_bound on <var31:MVirtualType>*/;
4549 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
4550 var35
= ((val
* (*)(val
*, val
*, val
*))(var33
->class->vft
[COLOR_model__MType__anchor_to
]))(var33
, var34
, var_mclass_type
) /* anchor_to on <var33:MType>*/;
4551 var_anchored
= var35
;
4552 var36
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__partial_types
]))(self
) /* partial_types on <self:SeparateCompiler>*/;
4553 ((void (*)(val
*, val
*))(var36
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var36
, var_anchored
) /* add on <var36:Set[MType]>*/;
4556 CONTINUE_label37
: (void)0;
4557 ((void (*)(val
*))(var25
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var25
) /* next on <var25:Iterator[nullable Object]>*/;
4559 BREAK_label37
: (void)0;
4562 /* method separate_compiler#SeparateCompiler#retrieve_partial_types for (self: Object, MType) */
4563 void VIRTUAL_separate_compiler__SeparateCompiler__retrieve_partial_types(val
* self
, val
* p0
) {
4564 separate_compiler__SeparateCompiler__retrieve_partial_types(self
, p0
);
4567 /* method separate_compiler#SeparateCompiler#compile_module_to_c for (self: SeparateCompiler, MModule) */
4568 void separate_compiler__SeparateCompiler__compile_module_to_c(val
* self
, val
* p0
) {
4569 val
* var_mmodule
/* var mmodule: MModule */;
4570 val
* var
/* : MModule */;
4571 val
* var_old_module
/* var old_module: MModule */;
4572 val
* var1
/* : Array[MClassDef] */;
4573 val
* var2
/* : Iterator[nullable Object] */;
4574 short int var3
/* : Bool */;
4575 val
* var4
/* : nullable Object */;
4576 val
* var_cd
/* var cd: MClassDef */;
4577 val
* var5
/* : Array[MPropDef] */;
4578 val
* var6
/* : Iterator[nullable Object] */;
4579 short int var7
/* : Bool */;
4580 val
* var8
/* : nullable Object */;
4581 val
* var_pd
/* var pd: MPropDef */;
4582 short int var9
/* : Bool */;
4585 short int var10
/* : Bool */;
4586 val
* var11
/* : AbstractRuntimeFunction */;
4587 val
* var_r
/* var r: AbstractRuntimeFunction */;
4588 val
* var12
/* : AbstractRuntimeFunction */;
4589 val
* var_r2
/* var r2: AbstractRuntimeFunction */;
4591 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
4592 var_old_module
= var
;
4593 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule_61d
]))(self
, var_mmodule
) /* mainmodule= on <self:SeparateCompiler>*/;
4594 var1
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model__MModule__mclassdefs
]))(var_mmodule
) /* mclassdefs on <var_mmodule:MModule>*/;
4595 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var1
) /* iterator on <var1:Array[MClassDef]>*/;
4597 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var2
) /* is_ok on <var2:Iterator[nullable Object]>*/;
4599 var4
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var2
) /* item on <var2:Iterator[nullable Object]>*/;
4601 var5
= ((val
* (*)(val
*))(var_cd
->class->vft
[COLOR_model__MClassDef__mpropdefs
]))(var_cd
) /* mpropdefs on <var_cd:MClassDef>*/;
4602 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var5
) /* iterator on <var5:Array[MPropDef]>*/;
4604 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[nullable Object]>*/;
4606 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[nullable Object]>*/;
4608 /* <var_pd:MPropDef> isa MMethodDef */
4609 cltype
= type_model__MMethodDef
.color
;
4610 idtype
= type_model__MMethodDef
.id
;
4611 if(cltype
>= var_pd
->type
->table_size
) {
4614 var9
= var_pd
->type
->type_table
[cltype
] == idtype
;
4618 goto CONTINUE_label
;
4621 var11
= ((val
* (*)(val
*))(var_pd
->class->vft
[COLOR_separate_compiler__MMethodDef__separate_runtime_function
]))(var_pd
) /* separate_runtime_function on <var_pd:MPropDef(MMethodDef)>*/;
4623 ((void (*)(val
*, val
*))(var_r
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__compile_to_c
]))(var_r
, self
) /* compile_to_c on <var_r:AbstractRuntimeFunction>*/;
4624 var12
= ((val
* (*)(val
*))(var_pd
->class->vft
[COLOR_separate_compiler__MMethodDef__virtual_runtime_function
]))(var_pd
) /* virtual_runtime_function on <var_pd:MPropDef(MMethodDef)>*/;
4626 ((void (*)(val
*, val
*))(var_r2
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__compile_to_c
]))(var_r2
, self
) /* compile_to_c on <var_r2:AbstractRuntimeFunction>*/;
4627 CONTINUE_label
: (void)0;
4628 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[nullable Object]>*/;
4630 BREAK_label
: (void)0;
4631 CONTINUE_label13
: (void)0;
4632 ((void (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var2
) /* next on <var2:Iterator[nullable Object]>*/;
4634 BREAK_label13
: (void)0;
4635 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule_61d
]))(self
, var_old_module
) /* mainmodule= on <self:SeparateCompiler>*/;
4638 /* method separate_compiler#SeparateCompiler#compile_module_to_c for (self: Object, MModule) */
4639 void VIRTUAL_separate_compiler__SeparateCompiler__compile_module_to_c(val
* self
, val
* p0
) {
4640 separate_compiler__SeparateCompiler__compile_module_to_c(self
, p0
);
4643 /* method separate_compiler#SeparateCompiler#compile_type_to_c for (self: SeparateCompiler, MType) */
4644 void separate_compiler__SeparateCompiler__compile_type_to_c(val
* self
, val
* p0
) {
4645 val
* var_mtype
/* var mtype: MType */;
4646 val
* var
/* : String */;
4647 val
* var_c_name
/* var c_name: String */;
4648 val
* var1
/* : SeparateCompilerVisitor */;
4649 val
* var_v
/* var v: SeparateCompilerVisitor */;
4650 static val
* varonce
;
4651 val
* var2
/* : String */;
4652 char* var3
/* : NativeString */;
4653 long var4
/* : Int */;
4654 val
* var5
/* : String */;
4655 static val
* varonce6
;
4656 val
* var7
/* : String */;
4657 char* var8
/* : NativeString */;
4658 long var9
/* : Int */;
4659 val
* var10
/* : String */;
4660 val
* var11
/* : Array[Object] */;
4661 long var12
/* : Int */;
4662 val
* var13
/* : NativeArray[Object] */;
4663 val
* var14
/* : String */;
4664 static val
* varonce15
;
4665 val
* var16
/* : String */;
4666 char* var17
/* : NativeString */;
4667 long var18
/* : Int */;
4668 val
* var19
/* : String */;
4669 val
* var20
/* : Array[Object] */;
4670 long var21
/* : Int */;
4671 val
* var22
/* : NativeArray[Object] */;
4672 val
* var23
/* : String */;
4673 static val
* varonce24
;
4674 val
* var25
/* : String */;
4675 char* var26
/* : NativeString */;
4676 long var27
/* : Int */;
4677 val
* var28
/* : String */;
4678 static val
* varonce29
;
4679 val
* var30
/* : String */;
4680 char* var31
/* : NativeString */;
4681 long var32
/* : Int */;
4682 val
* var33
/* : String */;
4683 val
* var34
/* : Array[Object] */;
4684 long var35
/* : Int */;
4685 val
* var36
/* : NativeArray[Object] */;
4686 val
* var37
/* : String */;
4687 static val
* varonce38
;
4688 val
* var39
/* : String */;
4689 char* var40
/* : NativeString */;
4690 long var41
/* : Int */;
4691 val
* var42
/* : String */;
4692 static val
* varonce43
;
4693 val
* var44
/* : String */;
4694 char* var45
/* : NativeString */;
4695 long var46
/* : Int */;
4696 val
* var47
/* : String */;
4697 val
* var48
/* : Array[Object] */;
4698 long var49
/* : Int */;
4699 val
* var50
/* : NativeArray[Object] */;
4700 val
* var51
/* : String */;
4701 val
* var52
/* : nullable Layout[MType] */;
4702 val
* var53
/* : Map[Object, Int] */;
4703 val
* var54
/* : nullable Object */;
4704 static val
* varonce55
;
4705 val
* var56
/* : String */;
4706 char* var57
/* : NativeString */;
4707 long var58
/* : Int */;
4708 val
* var59
/* : String */;
4709 val
* var60
/* : Array[Object] */;
4710 long var61
/* : Int */;
4711 val
* var62
/* : NativeArray[Object] */;
4712 val
* var63
/* : String */;
4713 static val
* varonce64
;
4714 val
* var65
/* : String */;
4715 char* var66
/* : NativeString */;
4716 long var67
/* : Int */;
4717 val
* var68
/* : String */;
4718 static val
* varonce69
;
4719 val
* var70
/* : String */;
4720 char* var71
/* : NativeString */;
4721 long var72
/* : Int */;
4722 val
* var73
/* : String */;
4723 val
* var74
/* : Array[Object] */;
4724 long var75
/* : Int */;
4725 val
* var76
/* : NativeArray[Object] */;
4726 val
* var77
/* : String */;
4727 val
* var78
/* : nullable Layout[MType] */;
4728 val
* var_layout
/* var layout: nullable Layout[MType] */;
4729 short int var79
/* : Bool */;
4732 val
* var80
/* : Map[Object, Int] */;
4733 val
* var81
/* : nullable Object */;
4734 static val
* varonce82
;
4735 val
* var83
/* : String */;
4736 char* var84
/* : NativeString */;
4737 long var85
/* : Int */;
4738 val
* var86
/* : String */;
4739 val
* var87
/* : Array[Object] */;
4740 long var88
/* : Int */;
4741 val
* var89
/* : NativeArray[Object] */;
4742 val
* var90
/* : String */;
4743 val
* var91
/* : Map[Object, Int] */;
4744 val
* var92
/* : nullable Object */;
4745 static val
* varonce93
;
4746 val
* var94
/* : String */;
4747 char* var95
/* : NativeString */;
4748 long var96
/* : Int */;
4749 val
* var97
/* : String */;
4750 val
* var98
/* : Array[Object] */;
4751 long var99
/* : Int */;
4752 val
* var100
/* : NativeArray[Object] */;
4753 val
* var101
/* : String */;
4754 short int var102
/* : Bool */;
4757 static val
* varonce105
;
4758 val
* var106
/* : String */;
4759 char* var107
/* : NativeString */;
4760 long var108
/* : Int */;
4761 val
* var109
/* : String */;
4762 static val
* varonce110
;
4763 val
* var111
/* : String */;
4764 char* var112
/* : NativeString */;
4765 long var113
/* : Int */;
4766 val
* var114
/* : String */;
4767 short int var115
/* : Bool */;
4768 static val
* varonce116
;
4769 val
* var117
/* : String */;
4770 char* var118
/* : NativeString */;
4771 long var119
/* : Int */;
4772 val
* var120
/* : String */;
4773 val
* var121
/* : Array[Object] */;
4774 long var122
/* : Int */;
4775 val
* var123
/* : NativeArray[Object] */;
4776 val
* var124
/* : String */;
4777 static val
* varonce125
;
4778 val
* var126
/* : String */;
4779 char* var127
/* : NativeString */;
4780 long var128
/* : Int */;
4781 val
* var129
/* : String */;
4782 static val
* varonce130
;
4783 val
* var131
/* : String */;
4784 char* var132
/* : NativeString */;
4785 long var133
/* : Int */;
4786 val
* var134
/* : String */;
4787 val
* var135
/* : Array[Object] */;
4788 long var136
/* : Int */;
4789 val
* var137
/* : NativeArray[Object] */;
4790 val
* var138
/* : String */;
4791 static val
* varonce139
;
4792 val
* var140
/* : String */;
4793 char* var141
/* : NativeString */;
4794 long var142
/* : Int */;
4795 val
* var143
/* : String */;
4796 val
* var144
/* : Map[MType, Array[nullable MType]] */;
4797 val
* var145
/* : nullable Object */;
4798 long var146
/* : Int */;
4799 static val
* varonce147
;
4800 val
* var148
/* : String */;
4801 char* var149
/* : NativeString */;
4802 long var150
/* : Int */;
4803 val
* var151
/* : String */;
4804 val
* var152
/* : Array[Object] */;
4805 long var153
/* : Int */;
4806 val
* var154
/* : NativeArray[Object] */;
4807 val
* var155
/* : Object */;
4808 val
* var156
/* : String */;
4809 static val
* varonce157
;
4810 val
* var158
/* : String */;
4811 char* var159
/* : NativeString */;
4812 long var160
/* : Int */;
4813 val
* var161
/* : String */;
4814 val
* var162
/* : Map[MType, Array[nullable MType]] */;
4815 val
* var163
/* : nullable Object */;
4816 val
* var164
/* : Iterator[nullable Object] */;
4817 short int var165
/* : Bool */;
4818 val
* var166
/* : nullable Object */;
4819 val
* var_stype
/* var stype: nullable MType */;
4820 val
* var167
/* : null */;
4821 short int var168
/* : Bool */;
4822 static val
* varonce169
;
4823 val
* var170
/* : String */;
4824 char* var171
/* : NativeString */;
4825 long var172
/* : Int */;
4826 val
* var173
/* : String */;
4827 val
* var174
/* : nullable Layout[MType] */;
4828 val
* var175
/* : Map[Object, Int] */;
4829 val
* var176
/* : nullable Object */;
4830 static val
* varonce177
;
4831 val
* var178
/* : String */;
4832 char* var179
/* : NativeString */;
4833 long var180
/* : Int */;
4834 val
* var181
/* : String */;
4835 static val
* varonce182
;
4836 val
* var183
/* : String */;
4837 char* var184
/* : NativeString */;
4838 long var185
/* : Int */;
4839 val
* var186
/* : String */;
4840 val
* var187
/* : Array[Object] */;
4841 long var188
/* : Int */;
4842 val
* var189
/* : NativeArray[Object] */;
4843 val
* var190
/* : String */;
4844 static val
* varonce191
;
4845 val
* var192
/* : String */;
4846 char* var193
/* : NativeString */;
4847 long var194
/* : Int */;
4848 val
* var195
/* : String */;
4849 static val
* varonce196
;
4850 val
* var197
/* : String */;
4851 char* var198
/* : NativeString */;
4852 long var199
/* : Int */;
4853 val
* var200
/* : String */;
4855 var
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
4857 var1
= NEW_separate_compiler__SeparateCompilerVisitor(&type_separate_compiler__SeparateCompilerVisitor
);
4858 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init
]))(var1
, self
) /* init on <var1:SeparateCompilerVisitor>*/;
4863 var3
= "/* runtime type ";
4865 var5
= string__NativeString__to_s_with_length(var3
, var4
);
4874 var10
= string__NativeString__to_s_with_length(var8
, var9
);
4878 var11
= NEW_array__Array(&type_array__Arraykernel__Object
);
4879 { /* var11 = array_instance Array[Object] */
4881 var13
= NEW_array__NativeArray(var12
, &type_array__NativeArraykernel__Object
);
4882 ((struct instance_array__NativeArray
*)var13
)->values
[0] = (val
*) var2
;
4883 ((struct instance_array__NativeArray
*)var13
)->values
[1] = (val
*) var_mtype
;
4884 ((struct instance_array__NativeArray
*)var13
)->values
[2] = (val
*) var7
;
4885 ((void (*)(val
*, val
*, long))(var11
->class->vft
[COLOR_array__Array__with_native
]))(var11
, var13
, var12
) /* with_native on <var11:Array[Object]>*/;
4887 var14
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_string__Object__to_s
]))(var11
) /* to_s on <var11:Array[Object]>*/;
4888 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var14
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4894 var19
= string__NativeString__to_s_with_length(var17
, var18
);
4898 var20
= NEW_array__Array(&type_array__Arraykernel__Object
);
4899 { /* var20 = array_instance Array[Object] */
4901 var22
= NEW_array__NativeArray(var21
, &type_array__NativeArraykernel__Object
);
4902 ((struct instance_array__NativeArray
*)var22
)->values
[0] = (val
*) var16
;
4903 ((struct instance_array__NativeArray
*)var22
)->values
[1] = (val
*) var_c_name
;
4904 ((void (*)(val
*, val
*, long))(var20
->class->vft
[COLOR_array__Array__with_native
]))(var20
, var22
, var21
) /* with_native on <var20:Array[Object]>*/;
4906 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_string__Object__to_s
]))(var20
) /* to_s on <var20:Array[Object]>*/;
4910 var26
= "extern const struct type type_";
4912 var28
= string__NativeString__to_s_with_length(var26
, var27
);
4921 var33
= string__NativeString__to_s_with_length(var31
, var32
);
4925 var34
= NEW_array__Array(&type_array__Arraykernel__Object
);
4926 { /* var34 = array_instance Array[Object] */
4928 var36
= NEW_array__NativeArray(var35
, &type_array__NativeArraykernel__Object
);
4929 ((struct instance_array__NativeArray
*)var36
)->values
[0] = (val
*) var25
;
4930 ((struct instance_array__NativeArray
*)var36
)->values
[1] = (val
*) var_c_name
;
4931 ((struct instance_array__NativeArray
*)var36
)->values
[2] = (val
*) var30
;
4932 ((void (*)(val
*, val
*, long))(var34
->class->vft
[COLOR_array__Array__with_native
]))(var34
, var36
, var35
) /* with_native on <var34:Array[Object]>*/;
4934 var37
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_string__Object__to_s
]))(var34
) /* to_s on <var34:Array[Object]>*/;
4935 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var23
, var37
) /* provide_declaration on <self:SeparateCompiler>*/;
4939 var40
= "const struct type type_";
4941 var42
= string__NativeString__to_s_with_length(var40
, var41
);
4950 var47
= string__NativeString__to_s_with_length(var45
, var46
);
4954 var48
= NEW_array__Array(&type_array__Arraykernel__Object
);
4955 { /* var48 = array_instance Array[Object] */
4957 var50
= NEW_array__NativeArray(var49
, &type_array__NativeArraykernel__Object
);
4958 ((struct instance_array__NativeArray
*)var50
)->values
[0] = (val
*) var39
;
4959 ((struct instance_array__NativeArray
*)var50
)->values
[1] = (val
*) var_c_name
;
4960 ((struct instance_array__NativeArray
*)var50
)->values
[2] = (val
*) var44
;
4961 ((void (*)(val
*, val
*, long))(var48
->class->vft
[COLOR_array__Array__with_native
]))(var48
, var50
, var49
) /* with_native on <var48:Array[Object]>*/;
4963 var51
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_string__Object__to_s
]))(var48
) /* to_s on <var48:Array[Object]>*/;
4964 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var51
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4965 var52
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout
]))(self
) /* type_layout on <self:SeparateCompiler>*/;
4966 if (var52
== NULL
) {
4967 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4968 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 641);
4971 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var52
) /* ids on <var52:nullable Layout[MType]>*/;
4973 var54
= ((val
* (*)(val
*, val
*))(var53
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var53
, var_mtype
) /* [] on <var53:Map[Object, Int](Map[MType, Int])>*/;
4979 var59
= string__NativeString__to_s_with_length(var57
, var58
);
4983 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
4984 { /* var60 = array_instance Array[Object] */
4986 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
4987 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var54
;
4988 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var56
;
4989 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
4991 var63
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
4992 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var63
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4998 var68
= string__NativeString__to_s_with_length(var66
, var67
);
5005 var71
= "\", /* class_name_string */";
5007 var73
= string__NativeString__to_s_with_length(var71
, var72
);
5011 var74
= NEW_array__Array(&type_array__Arraykernel__Object
);
5012 { /* var74 = array_instance Array[Object] */
5014 var76
= NEW_array__NativeArray(var75
, &type_array__NativeArraykernel__Object
);
5015 ((struct instance_array__NativeArray
*)var76
)->values
[0] = (val
*) var65
;
5016 ((struct instance_array__NativeArray
*)var76
)->values
[1] = (val
*) var_mtype
;
5017 ((struct instance_array__NativeArray
*)var76
)->values
[2] = (val
*) var70
;
5018 ((void (*)(val
*, val
*, long))(var74
->class->vft
[COLOR_array__Array__with_native
]))(var74
, var76
, var75
) /* with_native on <var74:Array[Object]>*/;
5020 var77
= ((val
* (*)(val
*))(var74
->class->vft
[COLOR_string__Object__to_s
]))(var74
) /* to_s on <var74:Array[Object]>*/;
5021 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var77
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5022 var78
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout
]))(self
) /* type_layout on <self:SeparateCompiler>*/;
5024 /* <var_layout:nullable Layout[MType]> isa PHLayout[MType, MType] */
5025 cltype
= type_layout_builders__PHLayoutmodel__MTypemodel__MType
.color
;
5026 idtype
= type_layout_builders__PHLayoutmodel__MTypemodel__MType
.id
;
5027 if(var_layout
== NULL
) {
5030 if(cltype
>= var_layout
->type
->table_size
) {
5033 var79
= var_layout
->type
->type_table
[cltype
] == idtype
;
5037 var80
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__masks
]))(var_layout
) /* masks on <var_layout:nullable Layout[MType](PHLayout[MType, MType])>*/;
5038 var81
= ((val
* (*)(val
*, val
*))(var80
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var80
, var_mtype
) /* [] on <var80:Map[Object, Int](Map[MType, Int])>*/;
5044 var86
= string__NativeString__to_s_with_length(var84
, var85
);
5048 var87
= NEW_array__Array(&type_array__Arraykernel__Object
);
5049 { /* var87 = array_instance Array[Object] */
5051 var89
= NEW_array__NativeArray(var88
, &type_array__NativeArraykernel__Object
);
5052 ((struct instance_array__NativeArray
*)var89
)->values
[0] = (val
*) var81
;
5053 ((struct instance_array__NativeArray
*)var89
)->values
[1] = (val
*) var83
;
5054 ((void (*)(val
*, val
*, long))(var87
->class->vft
[COLOR_array__Array__with_native
]))(var87
, var89
, var88
) /* with_native on <var87:Array[Object]>*/;
5056 var90
= ((val
* (*)(val
*))(var87
->class->vft
[COLOR_string__Object__to_s
]))(var87
) /* to_s on <var87:Array[Object]>*/;
5057 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var90
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5059 if (var_layout
== NULL
) {
5060 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5061 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 647);
5064 var91
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MType]>*/;
5066 var92
= ((val
* (*)(val
*, val
*))(var91
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var91
, var_mtype
) /* [] on <var91:Map[Object, Int](Map[MType, Int])>*/;
5072 var97
= string__NativeString__to_s_with_length(var95
, var96
);
5076 var98
= NEW_array__Array(&type_array__Arraykernel__Object
);
5077 { /* var98 = array_instance Array[Object] */
5079 var100
= NEW_array__NativeArray(var99
, &type_array__NativeArraykernel__Object
);
5080 ((struct instance_array__NativeArray
*)var100
)->values
[0] = (val
*) var92
;
5081 ((struct instance_array__NativeArray
*)var100
)->values
[1] = (val
*) var94
;
5082 ((void (*)(val
*, val
*, long))(var98
->class->vft
[COLOR_array__Array__with_native
]))(var98
, var100
, var99
) /* with_native on <var98:Array[Object]>*/;
5084 var101
= ((val
* (*)(val
*))(var98
->class->vft
[COLOR_string__Object__to_s
]))(var98
) /* to_s on <var98:Array[Object]>*/;
5085 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var101
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5087 /* <var_mtype:MType> isa MNullableType */
5088 cltype103
= type_model__MNullableType
.color
;
5089 idtype104
= type_model__MNullableType
.id
;
5090 if(cltype103
>= var_mtype
->type
->table_size
) {
5093 var102
= var_mtype
->type
->type_table
[cltype103
] == idtype104
;
5097 var106
= varonce105
;
5101 var109
= string__NativeString__to_s_with_length(var107
, var108
);
5103 varonce105
= var106
;
5105 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var106
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5108 var111
= varonce110
;
5112 var114
= string__NativeString__to_s_with_length(var112
, var113
);
5114 varonce110
= var111
;
5116 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var111
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5118 var115
= ((short int (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_type_resolution_table
]))(self
, var_mtype
) /* compile_type_resolution_table on <self:SeparateCompiler>*/;
5121 var117
= varonce116
;
5123 var118
= "resolution_table_";
5125 var120
= string__NativeString__to_s_with_length(var118
, var119
);
5127 varonce116
= var117
;
5129 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
5130 { /* var121 = array_instance Array[Object] */
5132 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
5133 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var117
;
5134 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var_c_name
;
5135 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
5137 var124
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
5138 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var124
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
5140 var126
= varonce125
;
5142 var127
= "&resolution_table_";
5144 var129
= string__NativeString__to_s_with_length(var127
, var128
);
5146 varonce125
= var126
;
5149 var131
= varonce130
;
5153 var134
= string__NativeString__to_s_with_length(var132
, var133
);
5155 varonce130
= var131
;
5157 var135
= NEW_array__Array(&type_array__Arraykernel__Object
);
5158 { /* var135 = array_instance Array[Object] */
5160 var137
= NEW_array__NativeArray(var136
, &type_array__NativeArraykernel__Object
);
5161 ((struct instance_array__NativeArray
*)var137
)->values
[0] = (val
*) var126
;
5162 ((struct instance_array__NativeArray
*)var137
)->values
[1] = (val
*) var_c_name
;
5163 ((struct instance_array__NativeArray
*)var137
)->values
[2] = (val
*) var131
;
5164 ((void (*)(val
*, val
*, long))(var135
->class->vft
[COLOR_array__Array__with_native
]))(var135
, var137
, var136
) /* with_native on <var135:Array[Object]>*/;
5166 var138
= ((val
* (*)(val
*))(var135
->class->vft
[COLOR_string__Object__to_s
]))(var135
) /* to_s on <var135:Array[Object]>*/;
5167 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var138
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5170 var140
= varonce139
;
5174 var143
= string__NativeString__to_s_with_length(var141
, var142
);
5176 varonce139
= var140
;
5178 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var140
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5180 var144
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_tables
]))(self
) /* type_tables on <self:SeparateCompiler>*/;
5181 var145
= ((val
* (*)(val
*, val
*))(var144
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var144
, var_mtype
) /* [] on <var144:Map[MType, Array[nullable MType]]>*/;
5182 var146
= ((long (*)(val
*))(var145
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var145
) /* length on <var145:nullable Object(Array[nullable MType])>*/;
5184 var148
= varonce147
;
5188 var151
= string__NativeString__to_s_with_length(var149
, var150
);
5190 varonce147
= var148
;
5192 var152
= NEW_array__Array(&type_array__Arraykernel__Object
);
5193 { /* var152 = array_instance Array[Object] */
5195 var154
= NEW_array__NativeArray(var153
, &type_array__NativeArraykernel__Object
);
5196 var155
= BOX_kernel__Int(var146
); /* autobox from Int to Object */
5197 ((struct instance_array__NativeArray
*)var154
)->values
[0] = (val
*) var155
;
5198 ((struct instance_array__NativeArray
*)var154
)->values
[1] = (val
*) var148
;
5199 ((void (*)(val
*, val
*, long))(var152
->class->vft
[COLOR_array__Array__with_native
]))(var152
, var154
, var153
) /* with_native on <var152:Array[Object]>*/;
5201 var156
= ((val
* (*)(val
*))(var152
->class->vft
[COLOR_string__Object__to_s
]))(var152
) /* to_s on <var152:Array[Object]>*/;
5202 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var156
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5204 var158
= varonce157
;
5208 var161
= string__NativeString__to_s_with_length(var159
, var160
);
5210 varonce157
= var158
;
5212 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var158
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5213 var162
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_tables
]))(self
) /* type_tables on <self:SeparateCompiler>*/;
5214 var163
= ((val
* (*)(val
*, val
*))(var162
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var162
, var_mtype
) /* [] on <var162:Map[MType, Array[nullable MType]]>*/;
5215 var164
= ((val
* (*)(val
*))(var163
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var163
) /* iterator on <var163:nullable Object(Array[nullable MType])>*/;
5217 var165
= ((short int (*)(val
*))(var164
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var164
) /* is_ok on <var164:Iterator[nullable Object]>*/;
5219 var166
= ((val
* (*)(val
*))(var164
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var164
) /* item on <var164:Iterator[nullable Object]>*/;
5222 if (var_stype
== NULL
) {
5223 var168
= 1; /* is null */
5225 var168
= 0; /* arg is null but recv is not */
5229 var170
= varonce169
;
5231 var171
= "-1, /* empty */";
5233 var173
= string__NativeString__to_s_with_length(var171
, var172
);
5235 varonce169
= var170
;
5237 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var170
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5239 var174
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout
]))(self
) /* type_layout on <self:SeparateCompiler>*/;
5240 if (var174
== NULL
) {
5241 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5242 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 666);
5245 var175
= ((val
* (*)(val
*))(var174
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var174
) /* ids on <var174:nullable Layout[MType]>*/;
5247 var176
= ((val
* (*)(val
*, val
*))(var175
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var175
, var_stype
) /* [] on <var175:Map[Object, Int](Map[MType, Int])>*/;
5249 var178
= varonce177
;
5253 var181
= string__NativeString__to_s_with_length(var179
, var180
);
5255 varonce177
= var178
;
5258 var183
= varonce182
;
5262 var186
= string__NativeString__to_s_with_length(var184
, var185
);
5264 varonce182
= var183
;
5266 var187
= NEW_array__Array(&type_array__Arraykernel__Object
);
5267 { /* var187 = array_instance Array[Object] */
5269 var189
= NEW_array__NativeArray(var188
, &type_array__NativeArraykernel__Object
);
5270 ((struct instance_array__NativeArray
*)var189
)->values
[0] = (val
*) var176
;
5271 ((struct instance_array__NativeArray
*)var189
)->values
[1] = (val
*) var178
;
5272 ((struct instance_array__NativeArray
*)var189
)->values
[2] = (val
*) var_stype
;
5273 ((struct instance_array__NativeArray
*)var189
)->values
[3] = (val
*) var183
;
5274 ((void (*)(val
*, val
*, long))(var187
->class->vft
[COLOR_array__Array__with_native
]))(var187
, var189
, var188
) /* with_native on <var187:Array[Object]>*/;
5276 var190
= ((val
* (*)(val
*))(var187
->class->vft
[COLOR_string__Object__to_s
]))(var187
) /* to_s on <var187:Array[Object]>*/;
5277 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var190
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5279 CONTINUE_label
: (void)0;
5280 ((void (*)(val
*))(var164
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var164
) /* next on <var164:Iterator[nullable Object]>*/;
5282 BREAK_label
: (void)0;
5284 var192
= varonce191
;
5288 var195
= string__NativeString__to_s_with_length(var193
, var194
);
5290 varonce191
= var192
;
5292 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var192
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5294 var197
= varonce196
;
5298 var200
= string__NativeString__to_s_with_length(var198
, var199
);
5300 varonce196
= var197
;
5302 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var197
) /* 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): Bool */
5311 short int separate_compiler__SeparateCompiler__compile_type_resolution_table(val
* self
, val
* p0
) {
5312 short int var
/* : Bool */;
5313 val
* var_mtype
/* var mtype: MType */;
5314 short int var1
/* : Bool */;
5317 val
* var2
/* : MType */;
5318 short int var3
/* : Bool */;
5321 const char* var_class_name
;
5322 val
* var_mclass_type
/* var mclass_type: MClassType */;
5323 short int var6
/* : Bool */;
5326 const char* var_class_name9
;
5327 val
* var10
/* : Map[MClassType, Array[nullable MType]] */;
5328 short int var11
/* : Bool */;
5329 short int var12
/* : Bool */;
5330 short int var13
/* : Bool */;
5331 val
* var14
/* : nullable Layout[MType] */;
5332 val
* var_layout
/* var layout: nullable Layout[MType] */;
5333 static val
* varonce
;
5334 val
* var15
/* : String */;
5335 char* var16
/* : NativeString */;
5336 long var17
/* : Int */;
5337 val
* var18
/* : String */;
5338 val
* var19
/* : String */;
5339 val
* var20
/* : Array[Object] */;
5340 long var21
/* : Int */;
5341 val
* var22
/* : NativeArray[Object] */;
5342 val
* var23
/* : String */;
5343 static val
* varonce24
;
5344 val
* var25
/* : String */;
5345 char* var26
/* : NativeString */;
5346 long var27
/* : Int */;
5347 val
* var28
/* : String */;
5348 val
* var29
/* : String */;
5349 static val
* varonce30
;
5350 val
* var31
/* : String */;
5351 char* var32
/* : NativeString */;
5352 long var33
/* : Int */;
5353 val
* var34
/* : String */;
5354 val
* var35
/* : Array[Object] */;
5355 long var36
/* : Int */;
5356 val
* var37
/* : NativeArray[Object] */;
5357 val
* var38
/* : String */;
5358 val
* var39
/* : AbstractCompilerVisitor */;
5359 val
* var_v
/* var v: SeparateCompilerVisitor */;
5360 static val
* varonce40
;
5361 val
* var41
/* : String */;
5362 char* var42
/* : NativeString */;
5363 long var43
/* : Int */;
5364 val
* var44
/* : String */;
5365 val
* var45
/* : String */;
5366 static val
* varonce46
;
5367 val
* var47
/* : String */;
5368 char* var48
/* : NativeString */;
5369 long var49
/* : Int */;
5370 val
* var50
/* : String */;
5371 val
* var51
/* : Array[Object] */;
5372 long var52
/* : Int */;
5373 val
* var53
/* : NativeArray[Object] */;
5374 val
* var54
/* : String */;
5375 short int var55
/* : Bool */;
5378 val
* var58
/* : Map[Object, Int] */;
5379 val
* var59
/* : nullable Object */;
5380 static val
* varonce60
;
5381 val
* var61
/* : String */;
5382 char* var62
/* : NativeString */;
5383 long var63
/* : Int */;
5384 val
* var64
/* : String */;
5385 val
* var65
/* : Array[Object] */;
5386 long var66
/* : Int */;
5387 val
* var67
/* : NativeArray[Object] */;
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 static val
* varonce74
;
5395 val
* var75
/* : String */;
5396 char* var76
/* : NativeString */;
5397 long var77
/* : Int */;
5398 val
* var78
/* : String */;
5399 val
* var79
/* : Map[MClassType, Array[nullable MType]] */;
5400 val
* var80
/* : nullable Object */;
5401 val
* var81
/* : Iterator[nullable Object] */;
5402 short int var82
/* : Bool */;
5403 val
* var83
/* : nullable Object */;
5404 val
* var_t
/* var t: nullable MType */;
5405 val
* var84
/* : null */;
5406 short int var85
/* : Bool */;
5407 static val
* varonce86
;
5408 val
* var87
/* : String */;
5409 char* var88
/* : NativeString */;
5410 long var89
/* : Int */;
5411 val
* var90
/* : String */;
5412 val
* var91
/* : MModule */;
5413 short int var92
/* : Bool */;
5414 val
* var93
/* : MType */;
5415 val
* var_tv
/* var tv: MType */;
5416 val
* var94
/* : nullable Layout[MType] */;
5417 val
* var95
/* : Map[Object, Int] */;
5418 short int var96
/* : Bool */;
5419 static val
* varonce97
;
5420 val
* var98
/* : String */;
5421 char* var99
/* : NativeString */;
5422 long var100
/* : Int */;
5423 val
* var101
/* : String */;
5424 val
* var102
/* : String */;
5425 val
* var103
/* : Array[Object] */;
5426 long var104
/* : Int */;
5427 val
* var105
/* : NativeArray[Object] */;
5428 val
* var106
/* : String */;
5429 static val
* varonce107
;
5430 val
* var108
/* : String */;
5431 char* var109
/* : NativeString */;
5432 long var110
/* : Int */;
5433 val
* var111
/* : String */;
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 static val
* varonce123
;
5446 val
* var124
/* : String */;
5447 char* var125
/* : NativeString */;
5448 long var126
/* : Int */;
5449 val
* var127
/* : String */;
5450 val
* var128
/* : Array[Object] */;
5451 long var129
/* : Int */;
5452 val
* var130
/* : NativeArray[Object] */;
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 static val
* varonce142
;
5465 val
* var143
/* : String */;
5466 char* var144
/* : NativeString */;
5467 long var145
/* : Int */;
5468 val
* var146
/* : String */;
5469 val
* var147
/* : Array[Object] */;
5470 long var148
/* : Int */;
5471 val
* var149
/* : NativeArray[Object] */;
5472 val
* var150
/* : String */;
5473 static val
* varonce151
;
5474 val
* var152
/* : String */;
5475 char* var153
/* : NativeString */;
5476 long var154
/* : Int */;
5477 val
* var155
/* : String */;
5478 static val
* varonce156
;
5479 val
* var157
/* : String */;
5480 char* var158
/* : NativeString */;
5481 long var159
/* : Int */;
5482 val
* var160
/* : String */;
5483 short int var161
/* : Bool */;
5485 /* <var_mtype:MType> isa MNullableType */
5486 cltype
= type_model__MNullableType
.color
;
5487 idtype
= type_model__MNullableType
.id
;
5488 if(cltype
>= var_mtype
->type
->table_size
) {
5491 var1
= var_mtype
->type
->type_table
[cltype
] == idtype
;
5494 var2
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
5495 /* <var2:MType> isa MClassType */
5496 cltype4
= type_model__MClassType
.color
;
5497 idtype5
= type_model__MClassType
.id
;
5498 if(cltype4
>= var2
->type
->table_size
) {
5501 var3
= var2
->type
->type_table
[cltype4
] == idtype5
;
5504 var_class_name
= var2
== NULL ?
"null" : var2
->type
->name
;
5505 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5506 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 677);
5509 var_mclass_type
= var2
;
5511 /* <var_mtype:MType> isa MClassType */
5512 cltype7
= type_model__MClassType
.color
;
5513 idtype8
= type_model__MClassType
.id
;
5514 if(cltype7
>= var_mtype
->type
->table_size
) {
5517 var6
= var_mtype
->type
->type_table
[cltype7
] == idtype8
;
5520 var_class_name9
= var_mtype
== NULL ?
"null" : var_mtype
->type
->name
;
5521 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name9
);
5522 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 679);
5525 var_mclass_type
= var_mtype
;
5527 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_tables
]))(self
) /* resolution_tables on <self:SeparateCompiler>*/;
5528 var11
= ((short int (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var10
, var_mclass_type
) /* has_key on <var10:Map[MClassType, Array[nullable MType]]>*/;
5536 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_layout
]))(self
) /* resolution_layout on <self:SeparateCompiler>*/;
5541 var16
= "resolution_table_";
5543 var18
= string__NativeString__to_s_with_length(var16
, var17
);
5547 var19
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
5548 var20
= NEW_array__Array(&type_array__Arraykernel__Object
);
5549 { /* var20 = array_instance Array[Object] */
5551 var22
= NEW_array__NativeArray(var21
, &type_array__NativeArraykernel__Object
);
5552 ((struct instance_array__NativeArray
*)var22
)->values
[0] = (val
*) var15
;
5553 ((struct instance_array__NativeArray
*)var22
)->values
[1] = (val
*) var19
;
5554 ((void (*)(val
*, val
*, long))(var20
->class->vft
[COLOR_array__Array__with_native
]))(var20
, var22
, var21
) /* with_native on <var20:Array[Object]>*/;
5556 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_string__Object__to_s
]))(var20
) /* to_s on <var20:Array[Object]>*/;
5560 var26
= "extern const struct types resolution_table_";
5562 var28
= string__NativeString__to_s_with_length(var26
, var27
);
5566 var29
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
5572 var34
= string__NativeString__to_s_with_length(var32
, var33
);
5576 var35
= NEW_array__Array(&type_array__Arraykernel__Object
);
5577 { /* var35 = array_instance Array[Object] */
5579 var37
= NEW_array__NativeArray(var36
, &type_array__NativeArraykernel__Object
);
5580 ((struct instance_array__NativeArray
*)var37
)->values
[0] = (val
*) var25
;
5581 ((struct instance_array__NativeArray
*)var37
)->values
[1] = (val
*) var29
;
5582 ((struct instance_array__NativeArray
*)var37
)->values
[2] = (val
*) var31
;
5583 ((void (*)(val
*, val
*, long))(var35
->class->vft
[COLOR_array__Array__with_native
]))(var35
, var37
, var36
) /* with_native on <var35:Array[Object]>*/;
5585 var38
= ((val
* (*)(val
*))(var35
->class->vft
[COLOR_string__Object__to_s
]))(var35
) /* to_s on <var35:Array[Object]>*/;
5586 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var23
, var38
) /* provide_declaration on <self:SeparateCompiler>*/;
5587 var39
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
5592 var42
= "const struct types resolution_table_";
5594 var44
= string__NativeString__to_s_with_length(var42
, var43
);
5598 var45
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
5604 var50
= string__NativeString__to_s_with_length(var48
, var49
);
5608 var51
= NEW_array__Array(&type_array__Arraykernel__Object
);
5609 { /* var51 = array_instance Array[Object] */
5611 var53
= NEW_array__NativeArray(var52
, &type_array__NativeArraykernel__Object
);
5612 ((struct instance_array__NativeArray
*)var53
)->values
[0] = (val
*) var41
;
5613 ((struct instance_array__NativeArray
*)var53
)->values
[1] = (val
*) var45
;
5614 ((struct instance_array__NativeArray
*)var53
)->values
[2] = (val
*) var47
;
5615 ((void (*)(val
*, val
*, long))(var51
->class->vft
[COLOR_array__Array__with_native
]))(var51
, var53
, var52
) /* with_native on <var51:Array[Object]>*/;
5617 var54
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_string__Object__to_s
]))(var51
) /* to_s on <var51:Array[Object]>*/;
5618 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var54
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5619 /* <var_layout:nullable Layout[MType]> isa PHLayout[MClassType, MType] */
5620 cltype56
= type_layout_builders__PHLayoutmodel__MClassTypemodel__MType
.color
;
5621 idtype57
= type_layout_builders__PHLayoutmodel__MClassTypemodel__MType
.id
;
5622 if(var_layout
== NULL
) {
5625 if(cltype56
>= var_layout
->type
->table_size
) {
5628 var55
= var_layout
->type
->type_table
[cltype56
] == idtype57
;
5632 var58
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__masks
]))(var_layout
) /* masks on <var_layout:nullable Layout[MType](PHLayout[MClassType, MType])>*/;
5633 var59
= ((val
* (*)(val
*, val
*))(var58
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var58
, var_mclass_type
) /* [] on <var58:Map[Object, Int](Map[MClassType, Int])>*/;
5639 var64
= string__NativeString__to_s_with_length(var62
, var63
);
5643 var65
= NEW_array__Array(&type_array__Arraykernel__Object
);
5644 { /* var65 = array_instance Array[Object] */
5646 var67
= NEW_array__NativeArray(var66
, &type_array__NativeArraykernel__Object
);
5647 ((struct instance_array__NativeArray
*)var67
)->values
[0] = (val
*) var59
;
5648 ((struct instance_array__NativeArray
*)var67
)->values
[1] = (val
*) var61
;
5649 ((void (*)(val
*, val
*, long))(var65
->class->vft
[COLOR_array__Array__with_native
]))(var65
, var67
, var66
) /* with_native on <var65:Array[Object]>*/;
5651 var68
= ((val
* (*)(val
*))(var65
->class->vft
[COLOR_string__Object__to_s
]))(var65
) /* to_s on <var65:Array[Object]>*/;
5652 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var68
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5657 var71
= "0, /* dummy */";
5659 var73
= string__NativeString__to_s_with_length(var71
, var72
);
5663 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var70
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5670 var78
= string__NativeString__to_s_with_length(var76
, var77
);
5674 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var75
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5675 var79
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_tables
]))(self
) /* resolution_tables on <self:SeparateCompiler>*/;
5676 var80
= ((val
* (*)(val
*, val
*))(var79
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var79
, var_mclass_type
) /* [] on <var79:Map[MClassType, Array[nullable MType]]>*/;
5677 var81
= ((val
* (*)(val
*))(var80
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var80
) /* iterator on <var80:nullable Object(Array[nullable MType])>*/;
5679 var82
= ((short int (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var81
) /* is_ok on <var81:Iterator[nullable Object]>*/;
5681 var83
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var81
) /* item on <var81:Iterator[nullable Object]>*/;
5684 if (var_t
== NULL
) {
5685 var85
= 1; /* is null */
5687 var85
= 0; /* arg is null but recv is not */
5693 var88
= "NULL, /* empty */";
5695 var90
= string__NativeString__to_s_with_length(var88
, var89
);
5699 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var87
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5701 var91
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
5703 var93
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_t
->class->vft
[COLOR_model__MType__resolve_for
]))(var_t
, var_mclass_type
, var_mclass_type
, var91
, var92
) /* resolve_for on <var_t:nullable MType(MType)>*/;
5705 var94
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout
]))(self
) /* type_layout on <self:SeparateCompiler>*/;
5706 if (var94
== NULL
) {
5707 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5708 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 706);
5711 var95
= ((val
* (*)(val
*))(var94
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var94
) /* ids on <var94:nullable Layout[MType]>*/;
5713 var96
= ((short int (*)(val
*, val
*))(var95
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var95
, var_tv
) /* has_key on <var95:Map[Object, Int](Map[MType, Int])>*/;
5720 var101
= string__NativeString__to_s_with_length(var99
, var100
);
5724 var102
= ((val
* (*)(val
*))(var_tv
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_tv
) /* c_name on <var_tv:MType>*/;
5725 var103
= NEW_array__Array(&type_array__Arraykernel__Object
);
5726 { /* var103 = array_instance Array[Object] */
5728 var105
= NEW_array__NativeArray(var104
, &type_array__NativeArraykernel__Object
);
5729 ((struct instance_array__NativeArray
*)var105
)->values
[0] = (val
*) var98
;
5730 ((struct instance_array__NativeArray
*)var105
)->values
[1] = (val
*) var102
;
5731 ((void (*)(val
*, val
*, long))(var103
->class->vft
[COLOR_array__Array__with_native
]))(var103
, var105
, var104
) /* with_native on <var103:Array[Object]>*/;
5733 var106
= ((val
* (*)(val
*))(var103
->class->vft
[COLOR_string__Object__to_s
]))(var103
) /* to_s on <var103:Array[Object]>*/;
5734 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var106
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
5736 var108
= varonce107
;
5740 var111
= string__NativeString__to_s_with_length(var109
, var110
);
5742 varonce107
= var108
;
5744 var112
= ((val
* (*)(val
*))(var_tv
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_tv
) /* c_name on <var_tv:MType>*/;
5746 var114
= varonce113
;
5750 var117
= string__NativeString__to_s_with_length(var115
, var116
);
5752 varonce113
= var114
;
5755 var119
= varonce118
;
5759 var122
= string__NativeString__to_s_with_length(var120
, var121
);
5761 varonce118
= var119
;
5764 var124
= varonce123
;
5768 var127
= string__NativeString__to_s_with_length(var125
, var126
);
5770 varonce123
= var124
;
5772 var128
= NEW_array__Array(&type_array__Arraykernel__Object
);
5773 { /* var128 = array_instance Array[Object] */
5775 var130
= NEW_array__NativeArray(var129
, &type_array__NativeArraykernel__Object
);
5776 ((struct instance_array__NativeArray
*)var130
)->values
[0] = (val
*) var108
;
5777 ((struct instance_array__NativeArray
*)var130
)->values
[1] = (val
*) var112
;
5778 ((struct instance_array__NativeArray
*)var130
)->values
[2] = (val
*) var114
;
5779 ((struct instance_array__NativeArray
*)var130
)->values
[3] = (val
*) var_t
;
5780 ((struct instance_array__NativeArray
*)var130
)->values
[4] = (val
*) var119
;
5781 ((struct instance_array__NativeArray
*)var130
)->values
[5] = (val
*) var_tv
;
5782 ((struct instance_array__NativeArray
*)var130
)->values
[6] = (val
*) var124
;
5783 ((void (*)(val
*, val
*, long))(var128
->class->vft
[COLOR_array__Array__with_native
]))(var128
, var130
, var129
) /* with_native on <var128:Array[Object]>*/;
5785 var131
= ((val
* (*)(val
*))(var128
->class->vft
[COLOR_string__Object__to_s
]))(var128
) /* to_s on <var128:Array[Object]>*/;
5786 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var131
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5789 var133
= varonce132
;
5791 var134
= "NULL, /* empty (";
5793 var136
= string__NativeString__to_s_with_length(var134
, var135
);
5795 varonce132
= var133
;
5798 var138
= varonce137
;
5802 var141
= string__NativeString__to_s_with_length(var139
, var140
);
5804 varonce137
= var138
;
5807 var143
= varonce142
;
5809 var144
= " not a live type) */";
5811 var146
= string__NativeString__to_s_with_length(var144
, var145
);
5813 varonce142
= var143
;
5815 var147
= NEW_array__Array(&type_array__Arraykernel__Object
);
5816 { /* var147 = array_instance Array[Object] */
5818 var149
= NEW_array__NativeArray(var148
, &type_array__NativeArraykernel__Object
);
5819 ((struct instance_array__NativeArray
*)var149
)->values
[0] = (val
*) var133
;
5820 ((struct instance_array__NativeArray
*)var149
)->values
[1] = (val
*) var_t
;
5821 ((struct instance_array__NativeArray
*)var149
)->values
[2] = (val
*) var138
;
5822 ((struct instance_array__NativeArray
*)var149
)->values
[3] = (val
*) var_tv
;
5823 ((struct instance_array__NativeArray
*)var149
)->values
[4] = (val
*) var143
;
5824 ((void (*)(val
*, val
*, long))(var147
->class->vft
[COLOR_array__Array__with_native
]))(var147
, var149
, var148
) /* with_native on <var147:Array[Object]>*/;
5826 var150
= ((val
* (*)(val
*))(var147
->class->vft
[COLOR_string__Object__to_s
]))(var147
) /* to_s on <var147:Array[Object]>*/;
5827 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var150
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5830 CONTINUE_label
: (void)0;
5831 ((void (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var81
) /* next on <var81:Iterator[nullable Object]>*/;
5833 BREAK_label
: (void)0;
5835 var152
= varonce151
;
5839 var155
= string__NativeString__to_s_with_length(var153
, var154
);
5841 varonce151
= var152
;
5843 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var152
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5845 var157
= varonce156
;
5849 var160
= string__NativeString__to_s_with_length(var158
, var159
);
5851 varonce156
= var157
;
5853 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var157
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5860 /* method separate_compiler#SeparateCompiler#compile_type_resolution_table for (self: Object, MType): Bool */
5861 short int VIRTUAL_separate_compiler__SeparateCompiler__compile_type_resolution_table(val
* self
, val
* p0
) {
5862 short int var
/* : Bool */;
5863 short int var1
/* : Bool */;
5864 var1
= separate_compiler__SeparateCompiler__compile_type_resolution_table(self
, p0
);
5869 /* method separate_compiler#SeparateCompiler#compile_class_to_c for (self: SeparateCompiler, MClass) */
5870 void separate_compiler__SeparateCompiler__compile_class_to_c(val
* self
, val
* p0
) {
5871 val
* var_mclass
/* var mclass: MClass */;
5872 val
* var
/* : MClassDef */;
5873 val
* var1
/* : MClassType */;
5874 val
* var_mtype
/* var mtype: MClassType */;
5875 val
* var2
/* : String */;
5876 val
* var_c_name
/* var c_name: String */;
5877 val
* var3
/* : Map[MClass, Array[nullable MPropDef]] */;
5878 val
* var4
/* : nullable Object */;
5879 val
* var_vft
/* var vft: Array[nullable MPropDef] */;
5880 val
* var5
/* : Map[MClass, Array[nullable MPropDef]] */;
5881 val
* var6
/* : nullable Object */;
5882 val
* var_attrs
/* var attrs: Array[nullable MPropDef] */;
5883 val
* var7
/* : AbstractCompilerVisitor */;
5884 val
* var_v
/* var v: SeparateCompilerVisitor */;
5885 short int var8
/* : Bool */;
5886 short int var9
/* : Bool */;
5887 short int var10
/* : Bool */;
5888 val
* var11
/* : nullable RapidTypeAnalysis */;
5889 val
* var12
/* : null */;
5890 short int var13
/* : Bool */;
5891 short int var_
/* var : Bool */;
5892 val
* var14
/* : nullable RapidTypeAnalysis */;
5893 val
* var15
/* : HashSet[MClass] */;
5894 short int var16
/* : Bool */;
5895 short int var17
/* : Bool */;
5896 short int var_18
/* var : Bool */;
5897 val
* var19
/* : String */;
5898 static val
* varonce
;
5899 val
* var20
/* : String */;
5900 char* var21
/* : NativeString */;
5901 long var22
/* : Int */;
5902 val
* var23
/* : String */;
5903 short int var24
/* : Bool */;
5904 short int var_25
/* var : Bool */;
5905 val
* var26
/* : String */;
5906 static val
* varonce27
;
5907 val
* var28
/* : String */;
5908 char* var29
/* : NativeString */;
5909 long var30
/* : Int */;
5910 val
* var31
/* : String */;
5911 short int var32
/* : Bool */;
5912 short int var_is_dead
/* var is_dead: Bool */;
5913 static val
* varonce33
;
5914 val
* var34
/* : String */;
5915 char* var35
/* : NativeString */;
5916 long var36
/* : Int */;
5917 val
* var37
/* : String */;
5918 static val
* varonce38
;
5919 val
* var39
/* : String */;
5920 char* var40
/* : NativeString */;
5921 long var41
/* : Int */;
5922 val
* var42
/* : String */;
5923 val
* var43
/* : Array[Object] */;
5924 long var44
/* : Int */;
5925 val
* var45
/* : NativeArray[Object] */;
5926 val
* var46
/* : String */;
5927 short int var47
/* : Bool */;
5928 static val
* varonce48
;
5929 val
* var49
/* : String */;
5930 char* var50
/* : NativeString */;
5931 long var51
/* : Int */;
5932 val
* var52
/* : String */;
5933 val
* var53
/* : Array[Object] */;
5934 long var54
/* : Int */;
5935 val
* var55
/* : NativeArray[Object] */;
5936 val
* var56
/* : String */;
5937 static val
* varonce57
;
5938 val
* var58
/* : String */;
5939 char* var59
/* : NativeString */;
5940 long var60
/* : Int */;
5941 val
* var61
/* : String */;
5942 static val
* varonce62
;
5943 val
* var63
/* : String */;
5944 char* var64
/* : NativeString */;
5945 long var65
/* : Int */;
5946 val
* var66
/* : String */;
5947 val
* var67
/* : Array[Object] */;
5948 long var68
/* : Int */;
5949 val
* var69
/* : NativeArray[Object] */;
5950 val
* var70
/* : String */;
5951 static val
* varonce71
;
5952 val
* var72
/* : String */;
5953 char* var73
/* : NativeString */;
5954 long var74
/* : Int */;
5955 val
* var75
/* : String */;
5956 static val
* varonce76
;
5957 val
* var77
/* : String */;
5958 char* var78
/* : NativeString */;
5959 long var79
/* : Int */;
5960 val
* var80
/* : String */;
5961 val
* var81
/* : Array[Object] */;
5962 long var82
/* : Int */;
5963 val
* var83
/* : NativeArray[Object] */;
5964 val
* var84
/* : String */;
5965 long var85
/* : Int */;
5966 static val
* varonce86
;
5967 val
* var87
/* : String */;
5968 char* var88
/* : NativeString */;
5969 long var89
/* : Int */;
5970 val
* var90
/* : String */;
5971 val
* var91
/* : Array[Object] */;
5972 long var92
/* : Int */;
5973 val
* var93
/* : NativeArray[Object] */;
5974 val
* var94
/* : Object */;
5975 val
* var95
/* : String */;
5976 static val
* varonce96
;
5977 val
* var97
/* : String */;
5978 char* var98
/* : NativeString */;
5979 long var99
/* : Int */;
5980 val
* var100
/* : String */;
5981 val
* var101
/* : Range[Int] */;
5982 long var102
/* : Int */;
5983 long var103
/* : Int */;
5984 val
* var104
/* : Discrete */;
5985 val
* var105
/* : Discrete */;
5986 val
* var106
/* : Iterator[nullable Object] */;
5987 short int var107
/* : Bool */;
5988 val
* var108
/* : nullable Object */;
5989 long var_i
/* var i: Int */;
5990 long var109
/* : Int */;
5991 val
* var110
/* : nullable Object */;
5992 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
5993 val
* var111
/* : null */;
5994 short int var112
/* : Bool */;
5995 static val
* varonce113
;
5996 val
* var114
/* : String */;
5997 char* var115
/* : NativeString */;
5998 long var116
/* : Int */;
5999 val
* var117
/* : String */;
6000 short int var118
/* : Bool */;
6003 val
* var119
/* : AbstractRuntimeFunction */;
6004 val
* var_rf
/* var rf: AbstractRuntimeFunction */;
6005 val
* var120
/* : String */;
6006 static val
* varonce121
;
6007 val
* var122
/* : String */;
6008 char* var123
/* : NativeString */;
6009 long var124
/* : Int */;
6010 val
* var125
/* : String */;
6011 val
* var126
/* : String */;
6012 static val
* varonce127
;
6013 val
* var128
/* : String */;
6014 char* var129
/* : NativeString */;
6015 long var130
/* : Int */;
6016 val
* var131
/* : String */;
6017 val
* var132
/* : MModule */;
6018 static val
* varonce133
;
6019 val
* var134
/* : String */;
6020 char* var135
/* : NativeString */;
6021 long var136
/* : Int */;
6022 val
* var137
/* : String */;
6023 static val
* varonce138
;
6024 val
* var139
/* : String */;
6025 char* var140
/* : NativeString */;
6026 long var141
/* : Int */;
6027 val
* var142
/* : String */;
6028 static val
* varonce143
;
6029 val
* var144
/* : String */;
6030 char* var145
/* : NativeString */;
6031 long var146
/* : Int */;
6032 val
* var147
/* : String */;
6033 val
* var148
/* : Array[Object] */;
6034 long var149
/* : Int */;
6035 val
* var150
/* : NativeArray[Object] */;
6036 val
* var151
/* : String */;
6037 static val
* varonce152
;
6038 val
* var153
/* : String */;
6039 char* var154
/* : NativeString */;
6040 long var155
/* : Int */;
6041 val
* var156
/* : String */;
6042 static val
* varonce157
;
6043 val
* var158
/* : String */;
6044 char* var159
/* : NativeString */;
6045 long var160
/* : Int */;
6046 val
* var161
/* : String */;
6047 val
* var162
/* : String */;
6048 static val
* varonce163
;
6049 val
* var164
/* : String */;
6050 char* var165
/* : NativeString */;
6051 long var166
/* : Int */;
6052 val
* var167
/* : String */;
6053 short int var168
/* : Bool */;
6054 val
* var169
/* : CodeWriter */;
6055 static val
* varonce170
;
6056 val
* var171
/* : String */;
6057 char* var172
/* : NativeString */;
6058 long var173
/* : Int */;
6059 val
* var174
/* : String */;
6060 static val
* varonce175
;
6061 val
* var176
/* : String */;
6062 char* var177
/* : NativeString */;
6063 long var178
/* : Int */;
6064 val
* var179
/* : String */;
6065 val
* var180
/* : Array[Object] */;
6066 long var181
/* : Int */;
6067 val
* var182
/* : NativeArray[Object] */;
6068 val
* var183
/* : String */;
6069 val
* var184
/* : CodeWriter */;
6070 static val
* varonce185
;
6071 val
* var186
/* : String */;
6072 char* var187
/* : NativeString */;
6073 long var188
/* : Int */;
6074 val
* var189
/* : String */;
6075 val
* var190
/* : CodeWriter */;
6076 static val
* varonce191
;
6077 val
* var192
/* : String */;
6078 char* var193
/* : NativeString */;
6079 long var194
/* : Int */;
6080 val
* var195
/* : String */;
6081 val
* var196
/* : CodeWriter */;
6082 val
* var197
/* : String */;
6083 static val
* varonce198
;
6084 val
* var199
/* : String */;
6085 char* var200
/* : NativeString */;
6086 long var201
/* : Int */;
6087 val
* var202
/* : String */;
6088 val
* var203
/* : Array[Object] */;
6089 long var204
/* : Int */;
6090 val
* var205
/* : NativeArray[Object] */;
6091 val
* var206
/* : String */;
6092 val
* var207
/* : CodeWriter */;
6093 static val
* varonce208
;
6094 val
* var209
/* : String */;
6095 char* var210
/* : NativeString */;
6096 long var211
/* : Int */;
6097 val
* var212
/* : String */;
6098 val
* var213
/* : nullable RapidTypeAnalysis */;
6099 val
* var214
/* : HashSet[MClassType] */;
6100 short int var215
/* : Bool */;
6101 short int var216
/* : Bool */;
6102 val
* var217
/* : CodeWriter */;
6103 static val
* varonce218
;
6104 val
* var219
/* : String */;
6105 char* var220
/* : NativeString */;
6106 long var221
/* : Int */;
6107 val
* var222
/* : String */;
6108 static val
* varonce223
;
6109 val
* var224
/* : String */;
6110 char* var225
/* : NativeString */;
6111 long var226
/* : Int */;
6112 val
* var227
/* : String */;
6113 val
* var228
/* : String */;
6114 static val
* varonce229
;
6115 val
* var230
/* : String */;
6116 char* var231
/* : NativeString */;
6117 long var232
/* : Int */;
6118 val
* var233
/* : String */;
6119 val
* var234
/* : Array[Object] */;
6120 long var235
/* : Int */;
6121 val
* var236
/* : NativeArray[Object] */;
6122 val
* var237
/* : String */;
6123 static val
* varonce238
;
6124 val
* var239
/* : String */;
6125 char* var240
/* : NativeString */;
6126 long var241
/* : Int */;
6127 val
* var242
/* : String */;
6128 static val
* varonce243
;
6129 val
* var244
/* : String */;
6130 char* var245
/* : NativeString */;
6131 long var246
/* : Int */;
6132 val
* var247
/* : String */;
6133 val
* var248
/* : Array[Object] */;
6134 long var249
/* : Int */;
6135 val
* var250
/* : NativeArray[Object] */;
6136 val
* var251
/* : String */;
6137 static val
* varonce252
;
6138 val
* var253
/* : String */;
6139 char* var254
/* : NativeString */;
6140 long var255
/* : Int */;
6141 val
* var256
/* : String */;
6142 val
* var257
/* : String */;
6143 static val
* varonce258
;
6144 val
* var259
/* : String */;
6145 char* var260
/* : NativeString */;
6146 long var261
/* : Int */;
6147 val
* var262
/* : String */;
6148 val
* var263
/* : String */;
6149 static val
* varonce264
;
6150 val
* var265
/* : String */;
6151 char* var266
/* : NativeString */;
6152 long var267
/* : Int */;
6153 val
* var268
/* : String */;
6154 val
* var269
/* : Array[Object] */;
6155 long var270
/* : Int */;
6156 val
* var271
/* : NativeArray[Object] */;
6157 val
* var272
/* : String */;
6158 static val
* varonce273
;
6159 val
* var274
/* : String */;
6160 char* var275
/* : NativeString */;
6161 long var276
/* : Int */;
6162 val
* var277
/* : String */;
6163 static val
* varonce278
;
6164 val
* var279
/* : String */;
6165 char* var280
/* : NativeString */;
6166 long var281
/* : Int */;
6167 val
* var282
/* : String */;
6168 static val
* varonce283
;
6169 val
* var284
/* : String */;
6170 char* var285
/* : NativeString */;
6171 long var286
/* : Int */;
6172 val
* var287
/* : String */;
6173 val
* var288
/* : Array[Object] */;
6174 long var289
/* : Int */;
6175 val
* var290
/* : NativeArray[Object] */;
6176 val
* var291
/* : String */;
6177 static val
* varonce292
;
6178 val
* var293
/* : String */;
6179 char* var294
/* : NativeString */;
6180 long var295
/* : Int */;
6181 val
* var296
/* : String */;
6182 val
* var297
/* : Array[Object] */;
6183 long var298
/* : Int */;
6184 val
* var299
/* : NativeArray[Object] */;
6185 val
* var300
/* : String */;
6186 static val
* varonce301
;
6187 val
* var302
/* : String */;
6188 char* var303
/* : NativeString */;
6189 long var304
/* : Int */;
6190 val
* var305
/* : String */;
6191 static val
* varonce306
;
6192 val
* var307
/* : String */;
6193 char* var308
/* : NativeString */;
6194 long var309
/* : Int */;
6195 val
* var310
/* : String */;
6196 val
* var311
/* : Array[Object] */;
6197 long var312
/* : Int */;
6198 val
* var313
/* : NativeArray[Object] */;
6199 val
* var314
/* : String */;
6200 static val
* varonce315
;
6201 val
* var316
/* : String */;
6202 char* var317
/* : NativeString */;
6203 long var318
/* : Int */;
6204 val
* var319
/* : String */;
6205 val
* var320
/* : Array[Object] */;
6206 long var321
/* : Int */;
6207 val
* var322
/* : NativeArray[Object] */;
6208 val
* var323
/* : String */;
6209 static val
* varonce324
;
6210 val
* var325
/* : String */;
6211 char* var326
/* : NativeString */;
6212 long var327
/* : Int */;
6213 val
* var328
/* : String */;
6214 static val
* varonce329
;
6215 val
* var330
/* : String */;
6216 char* var331
/* : NativeString */;
6217 long var332
/* : Int */;
6218 val
* var333
/* : String */;
6219 val
* var334
/* : Array[Object] */;
6220 long var335
/* : Int */;
6221 val
* var336
/* : NativeArray[Object] */;
6222 val
* var337
/* : String */;
6223 static val
* varonce338
;
6224 val
* var339
/* : String */;
6225 char* var340
/* : NativeString */;
6226 long var341
/* : Int */;
6227 val
* var342
/* : String */;
6228 static val
* varonce343
;
6229 val
* var344
/* : String */;
6230 char* var345
/* : NativeString */;
6231 long var346
/* : Int */;
6232 val
* var347
/* : String */;
6233 static val
* varonce348
;
6234 val
* var349
/* : String */;
6235 char* var350
/* : NativeString */;
6236 long var351
/* : Int */;
6237 val
* var352
/* : String */;
6238 val
* var353
/* : String */;
6239 static val
* varonce354
;
6240 val
* var355
/* : String */;
6241 char* var356
/* : NativeString */;
6242 long var357
/* : Int */;
6243 val
* var358
/* : String */;
6244 short int var359
/* : Bool */;
6245 val
* var360
/* : CodeWriter */;
6246 static val
* varonce361
;
6247 val
* var362
/* : String */;
6248 char* var363
/* : NativeString */;
6249 long var364
/* : Int */;
6250 val
* var365
/* : String */;
6251 static val
* varonce366
;
6252 val
* var367
/* : String */;
6253 char* var368
/* : NativeString */;
6254 long var369
/* : Int */;
6255 val
* var370
/* : String */;
6256 val
* var371
/* : Array[Object] */;
6257 long var372
/* : Int */;
6258 val
* var373
/* : NativeArray[Object] */;
6259 val
* var374
/* : String */;
6260 val
* var375
/* : CodeWriter */;
6261 static val
* varonce376
;
6262 val
* var377
/* : String */;
6263 char* var378
/* : NativeString */;
6264 long var379
/* : Int */;
6265 val
* var380
/* : String */;
6266 val
* var381
/* : CodeWriter */;
6267 static val
* varonce382
;
6268 val
* var383
/* : String */;
6269 char* var384
/* : NativeString */;
6270 long var385
/* : Int */;
6271 val
* var386
/* : String */;
6272 val
* var387
/* : CodeWriter */;
6273 static val
* varonce388
;
6274 val
* var389
/* : String */;
6275 char* var390
/* : NativeString */;
6276 long var391
/* : Int */;
6277 val
* var392
/* : String */;
6278 val
* var393
/* : CodeWriter */;
6279 static val
* varonce394
;
6280 val
* var395
/* : String */;
6281 char* var396
/* : NativeString */;
6282 long var397
/* : Int */;
6283 val
* var398
/* : String */;
6284 static val
* varonce399
;
6285 val
* var400
/* : String */;
6286 char* var401
/* : NativeString */;
6287 long var402
/* : Int */;
6288 val
* var403
/* : String */;
6289 val
* var404
/* : Array[Object] */;
6290 long var405
/* : Int */;
6291 val
* var406
/* : NativeArray[Object] */;
6292 val
* var407
/* : String */;
6293 val
* var408
/* : String */;
6294 static val
* varonce409
;
6295 val
* var410
/* : String */;
6296 char* var411
/* : NativeString */;
6297 long var412
/* : Int */;
6298 val
* var413
/* : String */;
6299 static val
* varonce414
;
6300 val
* var415
/* : String */;
6301 char* var416
/* : NativeString */;
6302 long var417
/* : Int */;
6303 val
* var418
/* : String */;
6304 val
* var419
/* : Array[Object] */;
6305 long var420
/* : Int */;
6306 val
* var421
/* : NativeArray[Object] */;
6307 val
* var422
/* : String */;
6308 static val
* varonce423
;
6309 val
* var424
/* : String */;
6310 char* var425
/* : NativeString */;
6311 long var426
/* : Int */;
6312 val
* var427
/* : String */;
6313 static val
* varonce428
;
6314 val
* var429
/* : String */;
6315 char* var430
/* : NativeString */;
6316 long var431
/* : Int */;
6317 val
* var432
/* : String */;
6318 val
* var433
/* : Array[Object] */;
6319 long var434
/* : Int */;
6320 val
* var435
/* : NativeArray[Object] */;
6321 val
* var436
/* : String */;
6322 val
* var437
/* : String */;
6323 static val
* varonce438
;
6324 val
* var439
/* : String */;
6325 char* var440
/* : NativeString */;
6326 long var441
/* : Int */;
6327 val
* var442
/* : String */;
6328 static val
* varonce443
;
6329 val
* var444
/* : String */;
6330 char* var445
/* : NativeString */;
6331 long var446
/* : Int */;
6332 val
* var447
/* : String */;
6333 val
* var448
/* : Array[Object] */;
6334 long var449
/* : Int */;
6335 val
* var450
/* : NativeArray[Object] */;
6336 val
* var451
/* : String */;
6337 static val
* varonce452
;
6338 val
* var453
/* : String */;
6339 char* var454
/* : NativeString */;
6340 long var455
/* : Int */;
6341 val
* var456
/* : String */;
6342 val
* var457
/* : RuntimeVariable */;
6343 val
* var_res
/* var res: RuntimeVariable */;
6344 short int var458
/* : Bool */;
6345 val
* var459
/* : Array[MType] */;
6346 val
* var460
/* : nullable Object */;
6347 val
* var_mtype_elt
/* var mtype_elt: MType */;
6348 static val
* varonce461
;
6349 val
* var462
/* : String */;
6350 char* var463
/* : NativeString */;
6351 long var464
/* : Int */;
6352 val
* var465
/* : String */;
6353 static val
* varonce466
;
6354 val
* var467
/* : String */;
6355 char* var468
/* : NativeString */;
6356 long var469
/* : Int */;
6357 val
* var470
/* : String */;
6358 val
* var471
/* : String */;
6359 static val
* varonce472
;
6360 val
* var473
/* : String */;
6361 char* var474
/* : NativeString */;
6362 long var475
/* : Int */;
6363 val
* var476
/* : String */;
6364 val
* var477
/* : Array[Object] */;
6365 long var478
/* : Int */;
6366 val
* var479
/* : NativeArray[Object] */;
6367 val
* var480
/* : String */;
6368 static val
* varonce481
;
6369 val
* var482
/* : String */;
6370 char* var483
/* : NativeString */;
6371 long var484
/* : Int */;
6372 val
* var485
/* : String */;
6373 val
* var486
/* : Array[Object] */;
6374 long var487
/* : Int */;
6375 val
* var488
/* : NativeArray[Object] */;
6376 val
* var489
/* : String */;
6377 static val
* varonce490
;
6378 val
* var491
/* : String */;
6379 char* var492
/* : NativeString */;
6380 long var493
/* : Int */;
6381 val
* var494
/* : String */;
6382 static val
* varonce495
;
6383 val
* var496
/* : String */;
6384 char* var497
/* : NativeString */;
6385 long var498
/* : Int */;
6386 val
* var499
/* : String */;
6387 val
* var500
/* : Array[Object] */;
6388 long var501
/* : Int */;
6389 val
* var502
/* : NativeArray[Object] */;
6390 val
* var503
/* : String */;
6391 static val
* varonce504
;
6392 val
* var505
/* : String */;
6393 char* var506
/* : NativeString */;
6394 long var507
/* : Int */;
6395 val
* var508
/* : String */;
6396 static val
* varonce509
;
6397 val
* var510
/* : String */;
6398 char* var511
/* : NativeString */;
6399 long var512
/* : Int */;
6400 val
* var513
/* : String */;
6401 val
* var514
/* : Array[Object] */;
6402 long var515
/* : Int */;
6403 val
* var516
/* : NativeArray[Object] */;
6404 val
* var517
/* : String */;
6405 static val
* varonce518
;
6406 val
* var519
/* : String */;
6407 char* var520
/* : NativeString */;
6408 long var521
/* : Int */;
6409 val
* var522
/* : String */;
6410 static val
* varonce523
;
6411 val
* var524
/* : String */;
6412 char* var525
/* : NativeString */;
6413 long var526
/* : Int */;
6414 val
* var527
/* : String */;
6415 val
* var528
/* : Array[Object] */;
6416 long var529
/* : Int */;
6417 val
* var530
/* : NativeArray[Object] */;
6418 val
* var531
/* : String */;
6419 static val
* varonce532
;
6420 val
* var533
/* : String */;
6421 char* var534
/* : NativeString */;
6422 long var535
/* : Int */;
6423 val
* var536
/* : String */;
6424 static val
* varonce537
;
6425 val
* var538
/* : String */;
6426 char* var539
/* : NativeString */;
6427 long var540
/* : Int */;
6428 val
* var541
/* : String */;
6429 val
* var542
/* : Array[Object] */;
6430 long var543
/* : Int */;
6431 val
* var544
/* : NativeArray[Object] */;
6432 val
* var545
/* : String */;
6433 val
* var546
/* : String */;
6434 static val
* varonce547
;
6435 val
* var548
/* : String */;
6436 char* var549
/* : NativeString */;
6437 long var550
/* : Int */;
6438 val
* var551
/* : String */;
6439 static val
* varonce552
;
6440 val
* var553
/* : String */;
6441 char* var554
/* : NativeString */;
6442 long var555
/* : Int */;
6443 val
* var556
/* : String */;
6444 val
* var557
/* : Array[Object] */;
6445 long var558
/* : Int */;
6446 val
* var559
/* : NativeArray[Object] */;
6447 val
* var560
/* : String */;
6448 static val
* varonce561
;
6449 val
* var562
/* : String */;
6450 char* var563
/* : NativeString */;
6451 long var564
/* : Int */;
6452 val
* var565
/* : String */;
6453 static val
* varonce566
;
6454 val
* var567
/* : String */;
6455 char* var568
/* : NativeString */;
6456 long var569
/* : Int */;
6457 val
* var570
/* : String */;
6458 val
* var571
/* : Array[Object] */;
6459 long var572
/* : Int */;
6460 val
* var573
/* : NativeArray[Object] */;
6461 val
* var574
/* : String */;
6462 val
* var575
/* : String */;
6463 static val
* varonce576
;
6464 val
* var577
/* : String */;
6465 char* var578
/* : NativeString */;
6466 long var579
/* : Int */;
6467 val
* var580
/* : String */;
6468 static val
* varonce581
;
6469 val
* var582
/* : String */;
6470 char* var583
/* : NativeString */;
6471 long var584
/* : Int */;
6472 val
* var585
/* : String */;
6473 val
* var586
/* : Array[Object] */;
6474 long var587
/* : Int */;
6475 val
* var588
/* : NativeArray[Object] */;
6476 val
* var589
/* : String */;
6477 static val
* varonce590
;
6478 val
* var591
/* : String */;
6479 char* var592
/* : NativeString */;
6480 long var593
/* : Int */;
6481 val
* var594
/* : String */;
6482 val
* var595
/* : Array[Object] */;
6483 long var596
/* : Int */;
6484 val
* var597
/* : NativeArray[Object] */;
6485 val
* var598
/* : String */;
6486 static val
* varonce599
;
6487 val
* var600
/* : String */;
6488 char* var601
/* : NativeString */;
6489 long var602
/* : Int */;
6490 val
* var603
/* : String */;
6491 val
* var604
/* : RuntimeVariable */;
6492 val
* var_res605
/* var res: RuntimeVariable */;
6493 short int var606
/* : Bool */;
6494 static val
* varonce607
;
6495 val
* var608
/* : String */;
6496 char* var609
/* : NativeString */;
6497 long var610
/* : Int */;
6498 val
* var611
/* : String */;
6499 long var612
/* : Int */;
6500 static val
* varonce613
;
6501 val
* var614
/* : String */;
6502 char* var615
/* : NativeString */;
6503 long var616
/* : Int */;
6504 val
* var617
/* : String */;
6505 val
* var618
/* : Array[Object] */;
6506 long var619
/* : Int */;
6507 val
* var620
/* : NativeArray[Object] */;
6508 val
* var621
/* : Object */;
6509 val
* var622
/* : String */;
6510 static val
* varonce623
;
6511 val
* var624
/* : String */;
6512 char* var625
/* : NativeString */;
6513 long var626
/* : Int */;
6514 val
* var627
/* : String */;
6515 val
* var628
/* : Array[Object] */;
6516 long var629
/* : Int */;
6517 val
* var630
/* : NativeArray[Object] */;
6518 val
* var631
/* : String */;
6519 static val
* varonce632
;
6520 val
* var633
/* : String */;
6521 char* var634
/* : NativeString */;
6522 long var635
/* : Int */;
6523 val
* var636
/* : String */;
6524 static val
* varonce637
;
6525 val
* var638
/* : String */;
6526 char* var639
/* : NativeString */;
6527 long var640
/* : Int */;
6528 val
* var641
/* : String */;
6529 val
* var642
/* : Array[Object] */;
6530 long var643
/* : Int */;
6531 val
* var644
/* : NativeArray[Object] */;
6532 val
* var645
/* : String */;
6533 static val
* varonce646
;
6534 val
* var647
/* : String */;
6535 char* var648
/* : NativeString */;
6536 long var649
/* : Int */;
6537 val
* var650
/* : String */;
6538 static val
* varonce651
;
6539 val
* var652
/* : String */;
6540 char* var653
/* : NativeString */;
6541 long var654
/* : Int */;
6542 val
* var655
/* : String */;
6543 val
* var656
/* : Array[Object] */;
6544 long var657
/* : Int */;
6545 val
* var658
/* : NativeArray[Object] */;
6546 val
* var659
/* : String */;
6547 static val
* varonce660
;
6548 val
* var661
/* : String */;
6549 char* var662
/* : NativeString */;
6550 long var663
/* : Int */;
6551 val
* var664
/* : String */;
6552 static val
* varonce665
;
6553 val
* var666
/* : String */;
6554 char* var667
/* : NativeString */;
6555 long var668
/* : Int */;
6556 val
* var669
/* : String */;
6557 val
* var670
/* : Array[Object] */;
6558 long var671
/* : Int */;
6559 val
* var672
/* : NativeArray[Object] */;
6560 val
* var673
/* : String */;
6561 static val
* varonce674
;
6562 val
* var675
/* : String */;
6563 char* var676
/* : NativeString */;
6564 long var677
/* : Int */;
6565 val
* var678
/* : String */;
6567 var
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
6568 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var
) /* bound_mtype on <var:MClassDef>*/;
6570 var2
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
6572 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_tables
]))(self
) /* method_tables on <self:SeparateCompiler>*/;
6573 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var3
, var_mclass
) /* [] on <var3:Map[MClass, Array[nullable MPropDef]]>*/;
6575 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_tables
]))(self
) /* attr_tables on <self:SeparateCompiler>*/;
6576 var6
= ((val
* (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var5
, var_mclass
) /* [] on <var5:Map[MClass, Array[nullable MPropDef]]>*/;
6578 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
6580 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
6582 if (var11
== NULL
) {
6583 var13
= 0; /* is null */
6585 var13
= 1; /* arg is null and recv is not */
6589 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
6590 if (var14
== NULL
) {
6591 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
6592 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 731);
6595 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_classes
]))(var14
) /* live_classes on <var14:nullable RapidTypeAnalysis>*/;
6597 var16
= ((short int (*)(val
*, val
*))(var15
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var15
, var_mclass
) /* has on <var15:HashSet[MClass]>*/;
6605 var19
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
6611 var23
= string__NativeString__to_s_with_length(var21
, var22
);
6615 var24
= ((short int (*)(val
*, val
*))(var19
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var19
, var20
) /* == on <var19:String>*/;
6622 var26
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__name
]))(var_mclass
) /* name on <var_mclass:MClass>*/;
6626 var29
= "NativeArray";
6628 var31
= string__NativeString__to_s_with_length(var29
, var30
);
6632 var32
= ((short int (*)(val
*, val
*))(var26
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var26
, var28
) /* != on <var26:String>*/;
6641 var35
= "/* runtime class ";
6643 var37
= string__NativeString__to_s_with_length(var35
, var36
);
6652 var42
= string__NativeString__to_s_with_length(var40
, var41
);
6656 var43
= NEW_array__Array(&type_array__Arraykernel__Object
);
6657 { /* var43 = array_instance Array[Object] */
6659 var45
= NEW_array__NativeArray(var44
, &type_array__NativeArraykernel__Object
);
6660 ((struct instance_array__NativeArray
*)var45
)->values
[0] = (val
*) var34
;
6661 ((struct instance_array__NativeArray
*)var45
)->values
[1] = (val
*) var_c_name
;
6662 ((struct instance_array__NativeArray
*)var45
)->values
[2] = (val
*) var39
;
6663 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[Object]>*/;
6665 var46
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_string__Object__to_s
]))(var43
) /* to_s on <var43:Array[Object]>*/;
6666 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var46
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6667 var47
= !var_is_dead
;
6674 var52
= string__NativeString__to_s_with_length(var50
, var51
);
6678 var53
= NEW_array__Array(&type_array__Arraykernel__Object
);
6679 { /* var53 = array_instance Array[Object] */
6681 var55
= NEW_array__NativeArray(var54
, &type_array__NativeArraykernel__Object
);
6682 ((struct instance_array__NativeArray
*)var55
)->values
[0] = (val
*) var49
;
6683 ((struct instance_array__NativeArray
*)var55
)->values
[1] = (val
*) var_c_name
;
6684 ((void (*)(val
*, val
*, long))(var53
->class->vft
[COLOR_array__Array__with_native
]))(var53
, var55
, var54
) /* with_native on <var53:Array[Object]>*/;
6686 var56
= ((val
* (*)(val
*))(var53
->class->vft
[COLOR_string__Object__to_s
]))(var53
) /* to_s on <var53:Array[Object]>*/;
6690 var59
= "extern const struct class class_";
6692 var61
= string__NativeString__to_s_with_length(var59
, var60
);
6701 var66
= string__NativeString__to_s_with_length(var64
, var65
);
6705 var67
= NEW_array__Array(&type_array__Arraykernel__Object
);
6706 { /* var67 = array_instance Array[Object] */
6708 var69
= NEW_array__NativeArray(var68
, &type_array__NativeArraykernel__Object
);
6709 ((struct instance_array__NativeArray
*)var69
)->values
[0] = (val
*) var58
;
6710 ((struct instance_array__NativeArray
*)var69
)->values
[1] = (val
*) var_c_name
;
6711 ((struct instance_array__NativeArray
*)var69
)->values
[2] = (val
*) var63
;
6712 ((void (*)(val
*, val
*, long))(var67
->class->vft
[COLOR_array__Array__with_native
]))(var67
, var69
, var68
) /* with_native on <var67:Array[Object]>*/;
6714 var70
= ((val
* (*)(val
*))(var67
->class->vft
[COLOR_string__Object__to_s
]))(var67
) /* to_s on <var67:Array[Object]>*/;
6715 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var56
, var70
) /* provide_declaration on <self:SeparateCompiler>*/;
6719 var73
= "const struct class class_";
6721 var75
= string__NativeString__to_s_with_length(var73
, var74
);
6730 var80
= string__NativeString__to_s_with_length(var78
, var79
);
6734 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
6735 { /* var81 = array_instance Array[Object] */
6737 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
6738 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var72
;
6739 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var_c_name
;
6740 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var77
;
6741 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
6743 var84
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
6744 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var84
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6745 var85
= ((long (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kind_of
]))(self
, var_mclass
) /* box_kind_of on <self:SeparateCompiler>*/;
6749 var88
= ", /* box_kind */";
6751 var90
= string__NativeString__to_s_with_length(var88
, var89
);
6755 var91
= NEW_array__Array(&type_array__Arraykernel__Object
);
6756 { /* var91 = array_instance Array[Object] */
6758 var93
= NEW_array__NativeArray(var92
, &type_array__NativeArraykernel__Object
);
6759 var94
= BOX_kernel__Int(var85
); /* autobox from Int to Object */
6760 ((struct instance_array__NativeArray
*)var93
)->values
[0] = (val
*) var94
;
6761 ((struct instance_array__NativeArray
*)var93
)->values
[1] = (val
*) var87
;
6762 ((void (*)(val
*, val
*, long))(var91
->class->vft
[COLOR_array__Array__with_native
]))(var91
, var93
, var92
) /* with_native on <var91:Array[Object]>*/;
6764 var95
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_string__Object__to_s
]))(var91
) /* to_s on <var91:Array[Object]>*/;
6765 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var95
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6771 var100
= string__NativeString__to_s_with_length(var98
, var99
);
6775 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var97
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6776 var101
= NEW_range__Range(&type_range__Rangekernel__Int
);
6778 var103
= ((long (*)(val
*))(var_vft
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_vft
) /* length on <var_vft:Array[nullable MPropDef]>*/;
6779 var104
= BOX_kernel__Int(var102
); /* autobox from Int to Discrete */
6780 var105
= BOX_kernel__Int(var103
); /* autobox from Int to Discrete */
6781 ((void (*)(val
*, val
*, val
*))(var101
->class->vft
[COLOR_range__Range__without_last
]))(var101
, var104
, var105
) /* without_last on <var101:Range[Int]>*/;
6782 var106
= ((val
* (*)(val
*))(var101
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var101
) /* iterator on <var101:Range[Int]>*/;
6784 var107
= ((short int (*)(val
*))(var106
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var106
) /* is_ok on <var106:Iterator[nullable Object]>*/;
6786 var108
= ((val
* (*)(val
*))(var106
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var106
) /* item on <var106:Iterator[nullable Object]>*/;
6787 var109
= ((struct instance_kernel__Int
*)var108
)->value
; /* autounbox from nullable Object to Int */;
6789 var110
= ((val
* (*)(val
*, long))(var_vft
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_vft
, var_i
) /* [] on <var_vft:Array[nullable MPropDef]>*/;
6790 var_mpropdef
= var110
;
6792 if (var_mpropdef
== NULL
) {
6793 var112
= 1; /* is null */
6795 var112
= 0; /* arg is null but recv is not */
6799 var114
= varonce113
;
6801 var115
= "NULL, /* empty */";
6803 var117
= string__NativeString__to_s_with_length(var115
, var116
);
6805 varonce113
= var114
;
6807 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var114
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6809 /* <var_mpropdef:nullable MPropDef(MPropDef)> isa MMethodDef */
6810 cltype
= type_model__MMethodDef
.color
;
6811 idtype
= type_model__MMethodDef
.id
;
6812 if(cltype
>= var_mpropdef
->type
->table_size
) {
6815 var118
= var_mpropdef
->type
->type_table
[cltype
] == idtype
;
6818 fprintf(stderr
, "Runtime error: %s", "Assert failed");
6819 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 746);
6822 var119
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_separate_compiler__MMethodDef__virtual_runtime_function
]))(var_mpropdef
) /* virtual_runtime_function on <var_mpropdef:nullable MPropDef(MMethodDef)>*/;
6824 var120
= ((val
* (*)(val
*))(var_rf
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name
]))(var_rf
) /* c_name on <var_rf:AbstractRuntimeFunction>*/;
6825 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var120
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
6827 var122
= varonce121
;
6829 var123
= "(nitmethod_t)";
6831 var125
= string__NativeString__to_s_with_length(var123
, var124
);
6833 varonce121
= var122
;
6835 var126
= ((val
* (*)(val
*))(var_rf
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name
]))(var_rf
) /* c_name on <var_rf:AbstractRuntimeFunction>*/;
6837 var128
= varonce127
;
6839 var129
= ", /* pointer to ";
6841 var131
= string__NativeString__to_s_with_length(var129
, var130
);
6843 varonce127
= var128
;
6845 var132
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var_mclass
) /* intro_mmodule on <var_mclass:MClass>*/;
6847 var134
= varonce133
;
6851 var137
= string__NativeString__to_s_with_length(var135
, var136
);
6853 varonce133
= var134
;
6856 var139
= varonce138
;
6860 var142
= string__NativeString__to_s_with_length(var140
, var141
);
6862 varonce138
= var139
;
6865 var144
= varonce143
;
6869 var147
= string__NativeString__to_s_with_length(var145
, var146
);
6871 varonce143
= var144
;
6873 var148
= NEW_array__Array(&type_array__Arraykernel__Object
);
6874 { /* var148 = array_instance Array[Object] */
6876 var150
= NEW_array__NativeArray(var149
, &type_array__NativeArraykernel__Object
);
6877 ((struct instance_array__NativeArray
*)var150
)->values
[0] = (val
*) var122
;
6878 ((struct instance_array__NativeArray
*)var150
)->values
[1] = (val
*) var126
;
6879 ((struct instance_array__NativeArray
*)var150
)->values
[2] = (val
*) var128
;
6880 ((struct instance_array__NativeArray
*)var150
)->values
[3] = (val
*) var132
;
6881 ((struct instance_array__NativeArray
*)var150
)->values
[4] = (val
*) var134
;
6882 ((struct instance_array__NativeArray
*)var150
)->values
[5] = (val
*) var_mclass
;
6883 ((struct instance_array__NativeArray
*)var150
)->values
[6] = (val
*) var139
;
6884 ((struct instance_array__NativeArray
*)var150
)->values
[7] = (val
*) var_mpropdef
;
6885 ((struct instance_array__NativeArray
*)var150
)->values
[8] = (val
*) var144
;
6886 ((void (*)(val
*, val
*, long))(var148
->class->vft
[COLOR_array__Array__with_native
]))(var148
, var150
, var149
) /* with_native on <var148:Array[Object]>*/;
6888 var151
= ((val
* (*)(val
*))(var148
->class->vft
[COLOR_string__Object__to_s
]))(var148
) /* to_s on <var148:Array[Object]>*/;
6889 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var151
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6891 CONTINUE_label
: (void)0;
6892 ((void (*)(val
*))(var106
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var106
) /* next on <var106:Iterator[nullable Object]>*/;
6894 BREAK_label
: (void)0;
6896 var153
= varonce152
;
6900 var156
= string__NativeString__to_s_with_length(var154
, var155
);
6902 varonce152
= var153
;
6904 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var153
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6906 var158
= varonce157
;
6910 var161
= string__NativeString__to_s_with_length(var159
, var160
);
6912 varonce157
= var158
;
6914 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var158
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6917 var162
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
6919 var164
= varonce163
;
6923 var167
= string__NativeString__to_s_with_length(var165
, var166
);
6925 varonce163
= var164
;
6927 var168
= ((short int (*)(val
*, val
*))(var162
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var162
, var164
) /* != on <var162:String>*/;
6929 var169
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
6931 var171
= varonce170
;
6933 var172
= "struct instance_";
6935 var174
= string__NativeString__to_s_with_length(var172
, var173
);
6937 varonce170
= var171
;
6940 var176
= varonce175
;
6944 var179
= string__NativeString__to_s_with_length(var177
, var178
);
6946 varonce175
= var176
;
6948 var180
= NEW_array__Array(&type_array__Arraykernel__Object
);
6949 { /* var180 = array_instance Array[Object] */
6951 var182
= NEW_array__NativeArray(var181
, &type_array__NativeArraykernel__Object
);
6952 ((struct instance_array__NativeArray
*)var182
)->values
[0] = (val
*) var171
;
6953 ((struct instance_array__NativeArray
*)var182
)->values
[1] = (val
*) var_c_name
;
6954 ((struct instance_array__NativeArray
*)var182
)->values
[2] = (val
*) var176
;
6955 ((void (*)(val
*, val
*, long))(var180
->class->vft
[COLOR_array__Array__with_native
]))(var180
, var182
, var181
) /* with_native on <var180:Array[Object]>*/;
6957 var183
= ((val
* (*)(val
*))(var180
->class->vft
[COLOR_string__Object__to_s
]))(var180
) /* to_s on <var180:Array[Object]>*/;
6958 ((void (*)(val
*, val
*))(var169
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var169
, var183
) /* add_decl on <var169:CodeWriter>*/;
6959 var184
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
6961 var186
= varonce185
;
6963 var187
= "const struct type *type;";
6965 var189
= string__NativeString__to_s_with_length(var187
, var188
);
6967 varonce185
= var186
;
6969 ((void (*)(val
*, val
*))(var184
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var184
, var186
) /* add_decl on <var184:CodeWriter>*/;
6970 var190
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
6972 var192
= varonce191
;
6974 var193
= "const struct class *class;";
6976 var195
= string__NativeString__to_s_with_length(var193
, var194
);
6978 varonce191
= var192
;
6980 ((void (*)(val
*, val
*))(var190
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var190
, var192
) /* add_decl on <var190:CodeWriter>*/;
6981 var196
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
6982 var197
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
6984 var199
= varonce198
;
6988 var202
= string__NativeString__to_s_with_length(var200
, var201
);
6990 varonce198
= var199
;
6992 var203
= NEW_array__Array(&type_array__Arraykernel__Object
);
6993 { /* var203 = array_instance Array[Object] */
6995 var205
= NEW_array__NativeArray(var204
, &type_array__NativeArraykernel__Object
);
6996 ((struct instance_array__NativeArray
*)var205
)->values
[0] = (val
*) var197
;
6997 ((struct instance_array__NativeArray
*)var205
)->values
[1] = (val
*) var199
;
6998 ((void (*)(val
*, val
*, long))(var203
->class->vft
[COLOR_array__Array__with_native
]))(var203
, var205
, var204
) /* with_native on <var203:Array[Object]>*/;
7000 var206
= ((val
* (*)(val
*))(var203
->class->vft
[COLOR_string__Object__to_s
]))(var203
) /* to_s on <var203:Array[Object]>*/;
7001 ((void (*)(val
*, val
*))(var196
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var196
, var206
) /* add_decl on <var196:CodeWriter>*/;
7002 var207
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7004 var209
= varonce208
;
7008 var212
= string__NativeString__to_s_with_length(var210
, var211
);
7010 varonce208
= var209
;
7012 ((void (*)(val
*, val
*))(var207
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var207
, var209
) /* add_decl on <var207:CodeWriter>*/;
7013 var213
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
7014 if (var213
== NULL
) {
7015 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
7016 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 764);
7019 var214
= ((val
* (*)(val
*))(var213
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var213
) /* live_types on <var213:nullable RapidTypeAnalysis>*/;
7021 var215
= ((short int (*)(val
*, val
*))(var214
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var214
, var_mtype
) /* has on <var214:HashSet[MClassType]>*/;
7027 var217
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7029 var219
= varonce218
;
7031 var220
= "val* BOX_";
7033 var222
= string__NativeString__to_s_with_length(var220
, var221
);
7035 varonce218
= var219
;
7038 var224
= varonce223
;
7042 var227
= string__NativeString__to_s_with_length(var225
, var226
);
7044 varonce223
= var224
;
7046 var228
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7048 var230
= varonce229
;
7052 var233
= string__NativeString__to_s_with_length(var231
, var232
);
7054 varonce229
= var230
;
7056 var234
= NEW_array__Array(&type_array__Arraykernel__Object
);
7057 { /* var234 = array_instance Array[Object] */
7059 var236
= NEW_array__NativeArray(var235
, &type_array__NativeArraykernel__Object
);
7060 ((struct instance_array__NativeArray
*)var236
)->values
[0] = (val
*) var219
;
7061 ((struct instance_array__NativeArray
*)var236
)->values
[1] = (val
*) var_c_name
;
7062 ((struct instance_array__NativeArray
*)var236
)->values
[2] = (val
*) var224
;
7063 ((struct instance_array__NativeArray
*)var236
)->values
[3] = (val
*) var228
;
7064 ((struct instance_array__NativeArray
*)var236
)->values
[4] = (val
*) var230
;
7065 ((void (*)(val
*, val
*, long))(var234
->class->vft
[COLOR_array__Array__with_native
]))(var234
, var236
, var235
) /* with_native on <var234:Array[Object]>*/;
7067 var237
= ((val
* (*)(val
*))(var234
->class->vft
[COLOR_string__Object__to_s
]))(var234
) /* to_s on <var234:Array[Object]>*/;
7068 ((void (*)(val
*, val
*))(var217
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var217
, var237
) /* add_decl on <var217:CodeWriter>*/;
7070 var239
= varonce238
;
7072 var240
= "/* allocate ";
7074 var242
= string__NativeString__to_s_with_length(var240
, var241
);
7076 varonce238
= var239
;
7079 var244
= varonce243
;
7083 var247
= string__NativeString__to_s_with_length(var245
, var246
);
7085 varonce243
= var244
;
7087 var248
= NEW_array__Array(&type_array__Arraykernel__Object
);
7088 { /* var248 = array_instance Array[Object] */
7090 var250
= NEW_array__NativeArray(var249
, &type_array__NativeArraykernel__Object
);
7091 ((struct instance_array__NativeArray
*)var250
)->values
[0] = (val
*) var239
;
7092 ((struct instance_array__NativeArray
*)var250
)->values
[1] = (val
*) var_mtype
;
7093 ((struct instance_array__NativeArray
*)var250
)->values
[2] = (val
*) var244
;
7094 ((void (*)(val
*, val
*, long))(var248
->class->vft
[COLOR_array__Array__with_native
]))(var248
, var250
, var249
) /* with_native on <var248:Array[Object]>*/;
7096 var251
= ((val
* (*)(val
*))(var248
->class->vft
[COLOR_string__Object__to_s
]))(var248
) /* to_s on <var248:Array[Object]>*/;
7097 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var251
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7099 var253
= varonce252
;
7101 var254
= "val* BOX_";
7103 var256
= string__NativeString__to_s_with_length(var254
, var255
);
7105 varonce252
= var253
;
7107 var257
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
7109 var259
= varonce258
;
7113 var262
= string__NativeString__to_s_with_length(var260
, var261
);
7115 varonce258
= var259
;
7117 var263
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7119 var265
= varonce264
;
7121 var266
= " value) {";
7123 var268
= string__NativeString__to_s_with_length(var266
, var267
);
7125 varonce264
= var265
;
7127 var269
= NEW_array__Array(&type_array__Arraykernel__Object
);
7128 { /* var269 = array_instance Array[Object] */
7130 var271
= NEW_array__NativeArray(var270
, &type_array__NativeArraykernel__Object
);
7131 ((struct instance_array__NativeArray
*)var271
)->values
[0] = (val
*) var253
;
7132 ((struct instance_array__NativeArray
*)var271
)->values
[1] = (val
*) var257
;
7133 ((struct instance_array__NativeArray
*)var271
)->values
[2] = (val
*) var259
;
7134 ((struct instance_array__NativeArray
*)var271
)->values
[3] = (val
*) var263
;
7135 ((struct instance_array__NativeArray
*)var271
)->values
[4] = (val
*) var265
;
7136 ((void (*)(val
*, val
*, long))(var269
->class->vft
[COLOR_array__Array__with_native
]))(var269
, var271
, var270
) /* with_native on <var269:Array[Object]>*/;
7138 var272
= ((val
* (*)(val
*))(var269
->class->vft
[COLOR_string__Object__to_s
]))(var269
) /* to_s on <var269:Array[Object]>*/;
7139 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var272
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7141 var274
= varonce273
;
7143 var275
= "struct instance_";
7145 var277
= string__NativeString__to_s_with_length(var275
, var276
);
7147 varonce273
= var274
;
7150 var279
= varonce278
;
7152 var280
= "*res = nit_alloc(sizeof(struct instance_";
7154 var282
= string__NativeString__to_s_with_length(var280
, var281
);
7156 varonce278
= var279
;
7159 var284
= varonce283
;
7163 var287
= string__NativeString__to_s_with_length(var285
, var286
);
7165 varonce283
= var284
;
7167 var288
= NEW_array__Array(&type_array__Arraykernel__Object
);
7168 { /* var288 = array_instance Array[Object] */
7170 var290
= NEW_array__NativeArray(var289
, &type_array__NativeArraykernel__Object
);
7171 ((struct instance_array__NativeArray
*)var290
)->values
[0] = (val
*) var274
;
7172 ((struct instance_array__NativeArray
*)var290
)->values
[1] = (val
*) var_c_name
;
7173 ((struct instance_array__NativeArray
*)var290
)->values
[2] = (val
*) var279
;
7174 ((struct instance_array__NativeArray
*)var290
)->values
[3] = (val
*) var_c_name
;
7175 ((struct instance_array__NativeArray
*)var290
)->values
[4] = (val
*) var284
;
7176 ((void (*)(val
*, val
*, long))(var288
->class->vft
[COLOR_array__Array__with_native
]))(var288
, var290
, var289
) /* with_native on <var288:Array[Object]>*/;
7178 var291
= ((val
* (*)(val
*))(var288
->class->vft
[COLOR_string__Object__to_s
]))(var288
) /* to_s on <var288:Array[Object]>*/;
7179 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var291
) /* add on <var_v:SeparateCompilerVisitor>*/;
7181 var293
= varonce292
;
7185 var296
= string__NativeString__to_s_with_length(var294
, var295
);
7187 varonce292
= var293
;
7189 var297
= NEW_array__Array(&type_array__Arraykernel__Object
);
7190 { /* var297 = array_instance Array[Object] */
7192 var299
= NEW_array__NativeArray(var298
, &type_array__NativeArraykernel__Object
);
7193 ((struct instance_array__NativeArray
*)var299
)->values
[0] = (val
*) var293
;
7194 ((struct instance_array__NativeArray
*)var299
)->values
[1] = (val
*) var_c_name
;
7195 ((void (*)(val
*, val
*, long))(var297
->class->vft
[COLOR_array__Array__with_native
]))(var297
, var299
, var298
) /* with_native on <var297:Array[Object]>*/;
7197 var300
= ((val
* (*)(val
*))(var297
->class->vft
[COLOR_string__Object__to_s
]))(var297
) /* to_s on <var297:Array[Object]>*/;
7198 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var300
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
7200 var302
= varonce301
;
7202 var303
= "res->type = &type_";
7204 var305
= string__NativeString__to_s_with_length(var303
, var304
);
7206 varonce301
= var302
;
7209 var307
= varonce306
;
7213 var310
= string__NativeString__to_s_with_length(var308
, var309
);
7215 varonce306
= var307
;
7217 var311
= NEW_array__Array(&type_array__Arraykernel__Object
);
7218 { /* var311 = array_instance Array[Object] */
7220 var313
= NEW_array__NativeArray(var312
, &type_array__NativeArraykernel__Object
);
7221 ((struct instance_array__NativeArray
*)var313
)->values
[0] = (val
*) var302
;
7222 ((struct instance_array__NativeArray
*)var313
)->values
[1] = (val
*) var_c_name
;
7223 ((struct instance_array__NativeArray
*)var313
)->values
[2] = (val
*) var307
;
7224 ((void (*)(val
*, val
*, long))(var311
->class->vft
[COLOR_array__Array__with_native
]))(var311
, var313
, var312
) /* with_native on <var311:Array[Object]>*/;
7226 var314
= ((val
* (*)(val
*))(var311
->class->vft
[COLOR_string__Object__to_s
]))(var311
) /* to_s on <var311:Array[Object]>*/;
7227 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var314
) /* add on <var_v:SeparateCompilerVisitor>*/;
7229 var316
= varonce315
;
7233 var319
= string__NativeString__to_s_with_length(var317
, var318
);
7235 varonce315
= var316
;
7237 var320
= NEW_array__Array(&type_array__Arraykernel__Object
);
7238 { /* var320 = array_instance Array[Object] */
7240 var322
= NEW_array__NativeArray(var321
, &type_array__NativeArraykernel__Object
);
7241 ((struct instance_array__NativeArray
*)var322
)->values
[0] = (val
*) var316
;
7242 ((struct instance_array__NativeArray
*)var322
)->values
[1] = (val
*) var_c_name
;
7243 ((void (*)(val
*, val
*, long))(var320
->class->vft
[COLOR_array__Array__with_native
]))(var320
, var322
, var321
) /* with_native on <var320:Array[Object]>*/;
7245 var323
= ((val
* (*)(val
*))(var320
->class->vft
[COLOR_string__Object__to_s
]))(var320
) /* to_s on <var320:Array[Object]>*/;
7246 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var323
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
7248 var325
= varonce324
;
7250 var326
= "res->class = &class_";
7252 var328
= string__NativeString__to_s_with_length(var326
, var327
);
7254 varonce324
= var325
;
7257 var330
= varonce329
;
7261 var333
= string__NativeString__to_s_with_length(var331
, var332
);
7263 varonce329
= var330
;
7265 var334
= NEW_array__Array(&type_array__Arraykernel__Object
);
7266 { /* var334 = array_instance Array[Object] */
7268 var336
= NEW_array__NativeArray(var335
, &type_array__NativeArraykernel__Object
);
7269 ((struct instance_array__NativeArray
*)var336
)->values
[0] = (val
*) var325
;
7270 ((struct instance_array__NativeArray
*)var336
)->values
[1] = (val
*) var_c_name
;
7271 ((struct instance_array__NativeArray
*)var336
)->values
[2] = (val
*) var330
;
7272 ((void (*)(val
*, val
*, long))(var334
->class->vft
[COLOR_array__Array__with_native
]))(var334
, var336
, var335
) /* with_native on <var334:Array[Object]>*/;
7274 var337
= ((val
* (*)(val
*))(var334
->class->vft
[COLOR_string__Object__to_s
]))(var334
) /* to_s on <var334:Array[Object]>*/;
7275 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var337
) /* add on <var_v:SeparateCompilerVisitor>*/;
7277 var339
= varonce338
;
7279 var340
= "res->value = value;";
7281 var342
= string__NativeString__to_s_with_length(var340
, var341
);
7283 varonce338
= var339
;
7285 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var339
) /* add on <var_v:SeparateCompilerVisitor>*/;
7287 var344
= varonce343
;
7289 var345
= "return (val*)res;";
7291 var347
= string__NativeString__to_s_with_length(var345
, var346
);
7293 varonce343
= var344
;
7295 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var344
) /* add on <var_v:SeparateCompilerVisitor>*/;
7297 var349
= varonce348
;
7301 var352
= string__NativeString__to_s_with_length(var350
, var351
);
7303 varonce348
= var349
;
7305 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var349
) /* add on <var_v:SeparateCompilerVisitor>*/;
7308 var353
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__name
]))(var_mclass
) /* name on <var_mclass:MClass>*/;
7310 var355
= varonce354
;
7312 var356
= "NativeArray";
7314 var358
= string__NativeString__to_s_with_length(var356
, var357
);
7316 varonce354
= var355
;
7318 var359
= ((short int (*)(val
*, val
*))(var353
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var353
, var355
) /* == on <var353:String>*/;
7320 var360
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7322 var362
= varonce361
;
7324 var363
= "struct instance_";
7326 var365
= string__NativeString__to_s_with_length(var363
, var364
);
7328 varonce361
= var362
;
7331 var367
= varonce366
;
7335 var370
= string__NativeString__to_s_with_length(var368
, var369
);
7337 varonce366
= var367
;
7339 var371
= NEW_array__Array(&type_array__Arraykernel__Object
);
7340 { /* var371 = array_instance Array[Object] */
7342 var373
= NEW_array__NativeArray(var372
, &type_array__NativeArraykernel__Object
);
7343 ((struct instance_array__NativeArray
*)var373
)->values
[0] = (val
*) var362
;
7344 ((struct instance_array__NativeArray
*)var373
)->values
[1] = (val
*) var_c_name
;
7345 ((struct instance_array__NativeArray
*)var373
)->values
[2] = (val
*) var367
;
7346 ((void (*)(val
*, val
*, long))(var371
->class->vft
[COLOR_array__Array__with_native
]))(var371
, var373
, var372
) /* with_native on <var371:Array[Object]>*/;
7348 var374
= ((val
* (*)(val
*))(var371
->class->vft
[COLOR_string__Object__to_s
]))(var371
) /* to_s on <var371:Array[Object]>*/;
7349 ((void (*)(val
*, val
*))(var360
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var360
, var374
) /* add_decl on <var360:CodeWriter>*/;
7350 var375
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7352 var377
= varonce376
;
7354 var378
= "const struct type *type;";
7356 var380
= string__NativeString__to_s_with_length(var378
, var379
);
7358 varonce376
= var377
;
7360 ((void (*)(val
*, val
*))(var375
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var375
, var377
) /* add_decl on <var375:CodeWriter>*/;
7361 var381
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7363 var383
= varonce382
;
7365 var384
= "const struct class *class;";
7367 var386
= string__NativeString__to_s_with_length(var384
, var385
);
7369 varonce382
= var383
;
7371 ((void (*)(val
*, val
*))(var381
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var381
, var383
) /* add_decl on <var381:CodeWriter>*/;
7372 var387
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7374 var389
= varonce388
;
7376 var390
= "val* values[0];";
7378 var392
= string__NativeString__to_s_with_length(var390
, var391
);
7380 varonce388
= var389
;
7382 ((void (*)(val
*, val
*))(var387
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var387
, var389
) /* add_decl on <var387:CodeWriter>*/;
7383 var393
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7385 var395
= varonce394
;
7389 var398
= string__NativeString__to_s_with_length(var396
, var397
);
7391 varonce394
= var395
;
7393 ((void (*)(val
*, val
*))(var393
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var393
, var395
) /* add_decl on <var393:CodeWriter>*/;
7395 var400
= varonce399
;
7399 var403
= string__NativeString__to_s_with_length(var401
, var402
);
7401 varonce399
= var400
;
7403 var404
= NEW_array__Array(&type_array__Arraykernel__Object
);
7404 { /* var404 = array_instance Array[Object] */
7406 var406
= NEW_array__NativeArray(var405
, &type_array__NativeArraykernel__Object
);
7407 ((struct instance_array__NativeArray
*)var406
)->values
[0] = (val
*) var400
;
7408 ((struct instance_array__NativeArray
*)var406
)->values
[1] = (val
*) var_c_name
;
7409 ((void (*)(val
*, val
*, long))(var404
->class->vft
[COLOR_array__Array__with_native
]))(var404
, var406
, var405
) /* with_native on <var404:Array[Object]>*/;
7411 var407
= ((val
* (*)(val
*))(var404
->class->vft
[COLOR_string__Object__to_s
]))(var404
) /* to_s on <var404:Array[Object]>*/;
7412 var408
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7414 var410
= varonce409
;
7418 var413
= string__NativeString__to_s_with_length(var411
, var412
);
7420 varonce409
= var410
;
7423 var415
= varonce414
;
7425 var416
= "(int length, const struct type* type);";
7427 var418
= string__NativeString__to_s_with_length(var416
, var417
);
7429 varonce414
= var415
;
7431 var419
= NEW_array__Array(&type_array__Arraykernel__Object
);
7432 { /* var419 = array_instance Array[Object] */
7434 var421
= NEW_array__NativeArray(var420
, &type_array__NativeArraykernel__Object
);
7435 ((struct instance_array__NativeArray
*)var421
)->values
[0] = (val
*) var408
;
7436 ((struct instance_array__NativeArray
*)var421
)->values
[1] = (val
*) var410
;
7437 ((struct instance_array__NativeArray
*)var421
)->values
[2] = (val
*) var_c_name
;
7438 ((struct instance_array__NativeArray
*)var421
)->values
[3] = (val
*) var415
;
7439 ((void (*)(val
*, val
*, long))(var419
->class->vft
[COLOR_array__Array__with_native
]))(var419
, var421
, var420
) /* with_native on <var419:Array[Object]>*/;
7441 var422
= ((val
* (*)(val
*))(var419
->class->vft
[COLOR_string__Object__to_s
]))(var419
) /* to_s on <var419:Array[Object]>*/;
7442 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var407
, var422
) /* provide_declaration on <self:SeparateCompiler>*/;
7444 var424
= varonce423
;
7446 var425
= "/* allocate ";
7448 var427
= string__NativeString__to_s_with_length(var425
, var426
);
7450 varonce423
= var424
;
7453 var429
= varonce428
;
7457 var432
= string__NativeString__to_s_with_length(var430
, var431
);
7459 varonce428
= var429
;
7461 var433
= NEW_array__Array(&type_array__Arraykernel__Object
);
7462 { /* var433 = array_instance Array[Object] */
7464 var435
= NEW_array__NativeArray(var434
, &type_array__NativeArraykernel__Object
);
7465 ((struct instance_array__NativeArray
*)var435
)->values
[0] = (val
*) var424
;
7466 ((struct instance_array__NativeArray
*)var435
)->values
[1] = (val
*) var_mtype
;
7467 ((struct instance_array__NativeArray
*)var435
)->values
[2] = (val
*) var429
;
7468 ((void (*)(val
*, val
*, long))(var433
->class->vft
[COLOR_array__Array__with_native
]))(var433
, var435
, var434
) /* with_native on <var433:Array[Object]>*/;
7470 var436
= ((val
* (*)(val
*))(var433
->class->vft
[COLOR_string__Object__to_s
]))(var433
) /* to_s on <var433:Array[Object]>*/;
7471 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var436
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7472 var437
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7474 var439
= varonce438
;
7478 var442
= string__NativeString__to_s_with_length(var440
, var441
);
7480 varonce438
= var439
;
7483 var444
= varonce443
;
7485 var445
= "(int length, const struct type* type) {";
7487 var447
= string__NativeString__to_s_with_length(var445
, var446
);
7489 varonce443
= var444
;
7491 var448
= NEW_array__Array(&type_array__Arraykernel__Object
);
7492 { /* var448 = array_instance Array[Object] */
7494 var450
= NEW_array__NativeArray(var449
, &type_array__NativeArraykernel__Object
);
7495 ((struct instance_array__NativeArray
*)var450
)->values
[0] = (val
*) var437
;
7496 ((struct instance_array__NativeArray
*)var450
)->values
[1] = (val
*) var439
;
7497 ((struct instance_array__NativeArray
*)var450
)->values
[2] = (val
*) var_c_name
;
7498 ((struct instance_array__NativeArray
*)var450
)->values
[3] = (val
*) var444
;
7499 ((void (*)(val
*, val
*, long))(var448
->class->vft
[COLOR_array__Array__with_native
]))(var448
, var450
, var449
) /* with_native on <var448:Array[Object]>*/;
7501 var451
= ((val
* (*)(val
*))(var448
->class->vft
[COLOR_string__Object__to_s
]))(var448
) /* to_s on <var448:Array[Object]>*/;
7502 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var451
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7504 var453
= varonce452
;
7508 var456
= string__NativeString__to_s_with_length(var454
, var455
);
7510 varonce452
= var453
;
7512 var457
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_named_var
]))(var_v
, var_mtype
, var453
) /* new_named_var on <var_v:SeparateCompilerVisitor>*/;
7515 ((void (*)(val
*, short int))(var_res
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res
, var458
) /* is_exact= on <var_res:RuntimeVariable>*/;
7516 var459
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
7517 var460
= ((val
* (*)(val
*))(var459
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var459
) /* first on <var459:Array[MType]>*/;
7518 var_mtype_elt
= var460
;
7520 var462
= varonce461
;
7522 var463
= " = nit_alloc(sizeof(struct instance_";
7524 var465
= string__NativeString__to_s_with_length(var463
, var464
);
7526 varonce461
= var462
;
7529 var467
= varonce466
;
7531 var468
= ") + length*sizeof(";
7533 var470
= string__NativeString__to_s_with_length(var468
, var469
);
7535 varonce466
= var467
;
7537 var471
= ((val
* (*)(val
*))(var_mtype_elt
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype_elt
) /* ctype on <var_mtype_elt:MType>*/;
7539 var473
= varonce472
;
7543 var476
= string__NativeString__to_s_with_length(var474
, var475
);
7545 varonce472
= var473
;
7547 var477
= NEW_array__Array(&type_array__Arraykernel__Object
);
7548 { /* var477 = array_instance Array[Object] */
7550 var479
= NEW_array__NativeArray(var478
, &type_array__NativeArraykernel__Object
);
7551 ((struct instance_array__NativeArray
*)var479
)->values
[0] = (val
*) var_res
;
7552 ((struct instance_array__NativeArray
*)var479
)->values
[1] = (val
*) var462
;
7553 ((struct instance_array__NativeArray
*)var479
)->values
[2] = (val
*) var_c_name
;
7554 ((struct instance_array__NativeArray
*)var479
)->values
[3] = (val
*) var467
;
7555 ((struct instance_array__NativeArray
*)var479
)->values
[4] = (val
*) var471
;
7556 ((struct instance_array__NativeArray
*)var479
)->values
[5] = (val
*) var473
;
7557 ((void (*)(val
*, val
*, long))(var477
->class->vft
[COLOR_array__Array__with_native
]))(var477
, var479
, var478
) /* with_native on <var477:Array[Object]>*/;
7559 var480
= ((val
* (*)(val
*))(var477
->class->vft
[COLOR_string__Object__to_s
]))(var477
) /* to_s on <var477:Array[Object]>*/;
7560 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var480
) /* add on <var_v:SeparateCompilerVisitor>*/;
7562 var482
= varonce481
;
7564 var483
= "->type = type;";
7566 var485
= string__NativeString__to_s_with_length(var483
, var484
);
7568 varonce481
= var482
;
7570 var486
= NEW_array__Array(&type_array__Arraykernel__Object
);
7571 { /* var486 = array_instance Array[Object] */
7573 var488
= NEW_array__NativeArray(var487
, &type_array__NativeArraykernel__Object
);
7574 ((struct instance_array__NativeArray
*)var488
)->values
[0] = (val
*) var_res
;
7575 ((struct instance_array__NativeArray
*)var488
)->values
[1] = (val
*) var482
;
7576 ((void (*)(val
*, val
*, long))(var486
->class->vft
[COLOR_array__Array__with_native
]))(var486
, var488
, var487
) /* with_native on <var486:Array[Object]>*/;
7578 var489
= ((val
* (*)(val
*))(var486
->class->vft
[COLOR_string__Object__to_s
]))(var486
) /* to_s on <var486:Array[Object]>*/;
7579 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var489
) /* add on <var_v:SeparateCompilerVisitor>*/;
7581 var491
= varonce490
;
7585 var494
= string__NativeString__to_s_with_length(var492
, var493
);
7587 varonce490
= var491
;
7589 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__hardening_live_type
]))(self
, var_v
, var491
) /* hardening_live_type on <self:SeparateCompiler>*/;
7591 var496
= varonce495
;
7595 var499
= string__NativeString__to_s_with_length(var497
, var498
);
7597 varonce495
= var496
;
7599 var500
= NEW_array__Array(&type_array__Arraykernel__Object
);
7600 { /* var500 = array_instance Array[Object] */
7602 var502
= NEW_array__NativeArray(var501
, &type_array__NativeArraykernel__Object
);
7603 ((struct instance_array__NativeArray
*)var502
)->values
[0] = (val
*) var496
;
7604 ((struct instance_array__NativeArray
*)var502
)->values
[1] = (val
*) var_c_name
;
7605 ((void (*)(val
*, val
*, long))(var500
->class->vft
[COLOR_array__Array__with_native
]))(var500
, var502
, var501
) /* with_native on <var500:Array[Object]>*/;
7607 var503
= ((val
* (*)(val
*))(var500
->class->vft
[COLOR_string__Object__to_s
]))(var500
) /* to_s on <var500:Array[Object]>*/;
7608 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var503
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
7610 var505
= varonce504
;
7612 var506
= "->class = &class_";
7614 var508
= string__NativeString__to_s_with_length(var506
, var507
);
7616 varonce504
= var505
;
7619 var510
= varonce509
;
7623 var513
= string__NativeString__to_s_with_length(var511
, var512
);
7625 varonce509
= var510
;
7627 var514
= NEW_array__Array(&type_array__Arraykernel__Object
);
7628 { /* var514 = array_instance Array[Object] */
7630 var516
= NEW_array__NativeArray(var515
, &type_array__NativeArraykernel__Object
);
7631 ((struct instance_array__NativeArray
*)var516
)->values
[0] = (val
*) var_res
;
7632 ((struct instance_array__NativeArray
*)var516
)->values
[1] = (val
*) var505
;
7633 ((struct instance_array__NativeArray
*)var516
)->values
[2] = (val
*) var_c_name
;
7634 ((struct instance_array__NativeArray
*)var516
)->values
[3] = (val
*) var510
;
7635 ((void (*)(val
*, val
*, long))(var514
->class->vft
[COLOR_array__Array__with_native
]))(var514
, var516
, var515
) /* with_native on <var514:Array[Object]>*/;
7637 var517
= ((val
* (*)(val
*))(var514
->class->vft
[COLOR_string__Object__to_s
]))(var514
) /* to_s on <var514:Array[Object]>*/;
7638 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var517
) /* add on <var_v:SeparateCompilerVisitor>*/;
7640 var519
= varonce518
;
7644 var522
= string__NativeString__to_s_with_length(var520
, var521
);
7646 varonce518
= var519
;
7649 var524
= varonce523
;
7653 var527
= string__NativeString__to_s_with_length(var525
, var526
);
7655 varonce523
= var524
;
7657 var528
= NEW_array__Array(&type_array__Arraykernel__Object
);
7658 { /* var528 = array_instance Array[Object] */
7660 var530
= NEW_array__NativeArray(var529
, &type_array__NativeArraykernel__Object
);
7661 ((struct instance_array__NativeArray
*)var530
)->values
[0] = (val
*) var519
;
7662 ((struct instance_array__NativeArray
*)var530
)->values
[1] = (val
*) var_res
;
7663 ((struct instance_array__NativeArray
*)var530
)->values
[2] = (val
*) var524
;
7664 ((void (*)(val
*, val
*, long))(var528
->class->vft
[COLOR_array__Array__with_native
]))(var528
, var530
, var529
) /* with_native on <var528:Array[Object]>*/;
7666 var531
= ((val
* (*)(val
*))(var528
->class->vft
[COLOR_string__Object__to_s
]))(var528
) /* to_s on <var528:Array[Object]>*/;
7667 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var531
) /* add on <var_v:SeparateCompilerVisitor>*/;
7669 var533
= varonce532
;
7673 var536
= string__NativeString__to_s_with_length(var534
, var535
);
7675 varonce532
= var533
;
7677 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var533
) /* add on <var_v:SeparateCompilerVisitor>*/;
7683 var538
= varonce537
;
7687 var541
= string__NativeString__to_s_with_length(var539
, var540
);
7689 varonce537
= var538
;
7691 var542
= NEW_array__Array(&type_array__Arraykernel__Object
);
7692 { /* var542 = array_instance Array[Object] */
7694 var544
= NEW_array__NativeArray(var543
, &type_array__NativeArraykernel__Object
);
7695 ((struct instance_array__NativeArray
*)var544
)->values
[0] = (val
*) var538
;
7696 ((struct instance_array__NativeArray
*)var544
)->values
[1] = (val
*) var_c_name
;
7697 ((void (*)(val
*, val
*, long))(var542
->class->vft
[COLOR_array__Array__with_native
]))(var542
, var544
, var543
) /* with_native on <var542:Array[Object]>*/;
7699 var545
= ((val
* (*)(val
*))(var542
->class->vft
[COLOR_string__Object__to_s
]))(var542
) /* to_s on <var542:Array[Object]>*/;
7700 var546
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7702 var548
= varonce547
;
7706 var551
= string__NativeString__to_s_with_length(var549
, var550
);
7708 varonce547
= var548
;
7711 var553
= varonce552
;
7713 var554
= "(const struct type* type);";
7715 var556
= string__NativeString__to_s_with_length(var554
, var555
);
7717 varonce552
= var553
;
7719 var557
= NEW_array__Array(&type_array__Arraykernel__Object
);
7720 { /* var557 = array_instance Array[Object] */
7722 var559
= NEW_array__NativeArray(var558
, &type_array__NativeArraykernel__Object
);
7723 ((struct instance_array__NativeArray
*)var559
)->values
[0] = (val
*) var546
;
7724 ((struct instance_array__NativeArray
*)var559
)->values
[1] = (val
*) var548
;
7725 ((struct instance_array__NativeArray
*)var559
)->values
[2] = (val
*) var_c_name
;
7726 ((struct instance_array__NativeArray
*)var559
)->values
[3] = (val
*) var553
;
7727 ((void (*)(val
*, val
*, long))(var557
->class->vft
[COLOR_array__Array__with_native
]))(var557
, var559
, var558
) /* with_native on <var557:Array[Object]>*/;
7729 var560
= ((val
* (*)(val
*))(var557
->class->vft
[COLOR_string__Object__to_s
]))(var557
) /* to_s on <var557:Array[Object]>*/;
7730 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var545
, var560
) /* provide_declaration on <self:SeparateCompiler>*/;
7732 var562
= varonce561
;
7734 var563
= "/* allocate ";
7736 var565
= string__NativeString__to_s_with_length(var563
, var564
);
7738 varonce561
= var562
;
7741 var567
= varonce566
;
7745 var570
= string__NativeString__to_s_with_length(var568
, var569
);
7747 varonce566
= var567
;
7749 var571
= NEW_array__Array(&type_array__Arraykernel__Object
);
7750 { /* var571 = array_instance Array[Object] */
7752 var573
= NEW_array__NativeArray(var572
, &type_array__NativeArraykernel__Object
);
7753 ((struct instance_array__NativeArray
*)var573
)->values
[0] = (val
*) var562
;
7754 ((struct instance_array__NativeArray
*)var573
)->values
[1] = (val
*) var_mtype
;
7755 ((struct instance_array__NativeArray
*)var573
)->values
[2] = (val
*) var567
;
7756 ((void (*)(val
*, val
*, long))(var571
->class->vft
[COLOR_array__Array__with_native
]))(var571
, var573
, var572
) /* with_native on <var571:Array[Object]>*/;
7758 var574
= ((val
* (*)(val
*))(var571
->class->vft
[COLOR_string__Object__to_s
]))(var571
) /* to_s on <var571:Array[Object]>*/;
7759 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var574
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7760 var575
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7762 var577
= varonce576
;
7766 var580
= string__NativeString__to_s_with_length(var578
, var579
);
7768 varonce576
= var577
;
7771 var582
= varonce581
;
7773 var583
= "(const struct type* type) {";
7775 var585
= string__NativeString__to_s_with_length(var583
, var584
);
7777 varonce581
= var582
;
7779 var586
= NEW_array__Array(&type_array__Arraykernel__Object
);
7780 { /* var586 = array_instance Array[Object] */
7782 var588
= NEW_array__NativeArray(var587
, &type_array__NativeArraykernel__Object
);
7783 ((struct instance_array__NativeArray
*)var588
)->values
[0] = (val
*) var575
;
7784 ((struct instance_array__NativeArray
*)var588
)->values
[1] = (val
*) var577
;
7785 ((struct instance_array__NativeArray
*)var588
)->values
[2] = (val
*) var_c_name
;
7786 ((struct instance_array__NativeArray
*)var588
)->values
[3] = (val
*) var582
;
7787 ((void (*)(val
*, val
*, long))(var586
->class->vft
[COLOR_array__Array__with_native
]))(var586
, var588
, var587
) /* with_native on <var586:Array[Object]>*/;
7789 var589
= ((val
* (*)(val
*))(var586
->class->vft
[COLOR_string__Object__to_s
]))(var586
) /* to_s on <var586:Array[Object]>*/;
7790 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var589
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7793 var591
= varonce590
;
7795 var592
= " is DEAD";
7797 var594
= string__NativeString__to_s_with_length(var592
, var593
);
7799 varonce590
= var591
;
7801 var595
= NEW_array__Array(&type_array__Arraykernel__Object
);
7802 { /* var595 = array_instance Array[Object] */
7804 var597
= NEW_array__NativeArray(var596
, &type_array__NativeArraykernel__Object
);
7805 ((struct instance_array__NativeArray
*)var597
)->values
[0] = (val
*) var_mclass
;
7806 ((struct instance_array__NativeArray
*)var597
)->values
[1] = (val
*) var591
;
7807 ((void (*)(val
*, val
*, long))(var595
->class->vft
[COLOR_array__Array__with_native
]))(var595
, var597
, var596
) /* with_native on <var595:Array[Object]>*/;
7809 var598
= ((val
* (*)(val
*))(var595
->class->vft
[COLOR_string__Object__to_s
]))(var595
) /* to_s on <var595:Array[Object]>*/;
7810 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(var_v
, var598
) /* add_abort on <var_v:SeparateCompilerVisitor>*/;
7813 var600
= varonce599
;
7817 var603
= string__NativeString__to_s_with_length(var601
, var602
);
7819 varonce599
= var600
;
7821 var604
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_named_var
]))(var_v
, var_mtype
, var600
) /* new_named_var on <var_v:SeparateCompilerVisitor>*/;
7822 var_res605
= var604
;
7824 ((void (*)(val
*, short int))(var_res605
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res605
, var606
) /* is_exact= on <var_res605:RuntimeVariable>*/;
7826 var608
= varonce607
;
7828 var609
= " = nit_alloc(sizeof(struct instance) + ";
7830 var611
= string__NativeString__to_s_with_length(var609
, var610
);
7832 varonce607
= var608
;
7834 var612
= ((long (*)(val
*))(var_attrs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_attrs
) /* length on <var_attrs:Array[nullable MPropDef]>*/;
7836 var614
= varonce613
;
7838 var615
= "*sizeof(nitattribute_t));";
7840 var617
= string__NativeString__to_s_with_length(var615
, var616
);
7842 varonce613
= var614
;
7844 var618
= NEW_array__Array(&type_array__Arraykernel__Object
);
7845 { /* var618 = array_instance Array[Object] */
7847 var620
= NEW_array__NativeArray(var619
, &type_array__NativeArraykernel__Object
);
7848 ((struct instance_array__NativeArray
*)var620
)->values
[0] = (val
*) var_res605
;
7849 ((struct instance_array__NativeArray
*)var620
)->values
[1] = (val
*) var608
;
7850 var621
= BOX_kernel__Int(var612
); /* autobox from Int to Object */
7851 ((struct instance_array__NativeArray
*)var620
)->values
[2] = (val
*) var621
;
7852 ((struct instance_array__NativeArray
*)var620
)->values
[3] = (val
*) var614
;
7853 ((void (*)(val
*, val
*, long))(var618
->class->vft
[COLOR_array__Array__with_native
]))(var618
, var620
, var619
) /* with_native on <var618:Array[Object]>*/;
7855 var622
= ((val
* (*)(val
*))(var618
->class->vft
[COLOR_string__Object__to_s
]))(var618
) /* to_s on <var618:Array[Object]>*/;
7856 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var622
) /* add on <var_v:SeparateCompilerVisitor>*/;
7858 var624
= varonce623
;
7860 var625
= "->type = type;";
7862 var627
= string__NativeString__to_s_with_length(var625
, var626
);
7864 varonce623
= var624
;
7866 var628
= NEW_array__Array(&type_array__Arraykernel__Object
);
7867 { /* var628 = array_instance Array[Object] */
7869 var630
= NEW_array__NativeArray(var629
, &type_array__NativeArraykernel__Object
);
7870 ((struct instance_array__NativeArray
*)var630
)->values
[0] = (val
*) var_res605
;
7871 ((struct instance_array__NativeArray
*)var630
)->values
[1] = (val
*) var624
;
7872 ((void (*)(val
*, val
*, long))(var628
->class->vft
[COLOR_array__Array__with_native
]))(var628
, var630
, var629
) /* with_native on <var628:Array[Object]>*/;
7874 var631
= ((val
* (*)(val
*))(var628
->class->vft
[COLOR_string__Object__to_s
]))(var628
) /* to_s on <var628:Array[Object]>*/;
7875 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var631
) /* add on <var_v:SeparateCompilerVisitor>*/;
7877 var633
= varonce632
;
7881 var636
= string__NativeString__to_s_with_length(var634
, var635
);
7883 varonce632
= var633
;
7885 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__hardening_live_type
]))(self
, var_v
, var633
) /* hardening_live_type on <self:SeparateCompiler>*/;
7887 var638
= varonce637
;
7891 var641
= string__NativeString__to_s_with_length(var639
, var640
);
7893 varonce637
= var638
;
7895 var642
= NEW_array__Array(&type_array__Arraykernel__Object
);
7896 { /* var642 = array_instance Array[Object] */
7898 var644
= NEW_array__NativeArray(var643
, &type_array__NativeArraykernel__Object
);
7899 ((struct instance_array__NativeArray
*)var644
)->values
[0] = (val
*) var638
;
7900 ((struct instance_array__NativeArray
*)var644
)->values
[1] = (val
*) var_c_name
;
7901 ((void (*)(val
*, val
*, long))(var642
->class->vft
[COLOR_array__Array__with_native
]))(var642
, var644
, var643
) /* with_native on <var642:Array[Object]>*/;
7903 var645
= ((val
* (*)(val
*))(var642
->class->vft
[COLOR_string__Object__to_s
]))(var642
) /* to_s on <var642:Array[Object]>*/;
7904 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var645
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
7906 var647
= varonce646
;
7908 var648
= "->class = &class_";
7910 var650
= string__NativeString__to_s_with_length(var648
, var649
);
7912 varonce646
= var647
;
7915 var652
= varonce651
;
7919 var655
= string__NativeString__to_s_with_length(var653
, var654
);
7921 varonce651
= var652
;
7923 var656
= NEW_array__Array(&type_array__Arraykernel__Object
);
7924 { /* var656 = array_instance Array[Object] */
7926 var658
= NEW_array__NativeArray(var657
, &type_array__NativeArraykernel__Object
);
7927 ((struct instance_array__NativeArray
*)var658
)->values
[0] = (val
*) var_res605
;
7928 ((struct instance_array__NativeArray
*)var658
)->values
[1] = (val
*) var647
;
7929 ((struct instance_array__NativeArray
*)var658
)->values
[2] = (val
*) var_c_name
;
7930 ((struct instance_array__NativeArray
*)var658
)->values
[3] = (val
*) var652
;
7931 ((void (*)(val
*, val
*, long))(var656
->class->vft
[COLOR_array__Array__with_native
]))(var656
, var658
, var657
) /* with_native on <var656:Array[Object]>*/;
7933 var659
= ((val
* (*)(val
*))(var656
->class->vft
[COLOR_string__Object__to_s
]))(var656
) /* to_s on <var656:Array[Object]>*/;
7934 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var659
) /* add on <var_v:SeparateCompilerVisitor>*/;
7935 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__generate_init_attr
]))(self
, var_v
, var_res605
, var_mtype
) /* generate_init_attr on <self:SeparateCompiler>*/;
7937 var661
= varonce660
;
7941 var664
= string__NativeString__to_s_with_length(var662
, var663
);
7943 varonce660
= var661
;
7946 var666
= varonce665
;
7950 var669
= string__NativeString__to_s_with_length(var667
, var668
);
7952 varonce665
= var666
;
7954 var670
= NEW_array__Array(&type_array__Arraykernel__Object
);
7955 { /* var670 = array_instance Array[Object] */
7957 var672
= NEW_array__NativeArray(var671
, &type_array__NativeArraykernel__Object
);
7958 ((struct instance_array__NativeArray
*)var672
)->values
[0] = (val
*) var661
;
7959 ((struct instance_array__NativeArray
*)var672
)->values
[1] = (val
*) var_res605
;
7960 ((struct instance_array__NativeArray
*)var672
)->values
[2] = (val
*) var666
;
7961 ((void (*)(val
*, val
*, long))(var670
->class->vft
[COLOR_array__Array__with_native
]))(var670
, var672
, var671
) /* with_native on <var670:Array[Object]>*/;
7963 var673
= ((val
* (*)(val
*))(var670
->class->vft
[COLOR_string__Object__to_s
]))(var670
) /* to_s on <var670:Array[Object]>*/;
7964 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var673
) /* add on <var_v:SeparateCompilerVisitor>*/;
7967 var675
= varonce674
;
7971 var678
= string__NativeString__to_s_with_length(var676
, var677
);
7973 varonce674
= var675
;
7975 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var675
) /* add on <var_v:SeparateCompilerVisitor>*/;
7978 /* method separate_compiler#SeparateCompiler#compile_class_to_c for (self: Object, MClass) */
7979 void VIRTUAL_separate_compiler__SeparateCompiler__compile_class_to_c(val
* self
, val
* p0
) {
7980 separate_compiler__SeparateCompiler__compile_class_to_c(self
, p0
);
7983 /* method separate_compiler#SeparateCompiler#hardening_live_type for (self: SeparateCompiler, SeparateCompilerVisitor, String) */
7984 void separate_compiler__SeparateCompiler__hardening_live_type(val
* self
, val
* p0
, val
* p1
) {
7985 short int var
/* : Bool */;
7988 const struct type
* type_struct
;
7989 const char* var_class_name
;
7990 val
* var_v
/* var v: SeparateCompilerVisitor */;
7991 val
* var_t
/* var t: String */;
7992 val
* var1
/* : AbstractCompiler */;
7993 val
* var2
/* : ModelBuilder */;
7994 val
* var3
/* : ToolContext */;
7995 val
* var4
/* : OptionBool */;
7996 val
* var5
/* : nullable Object */;
7997 short int var6
/* : Bool */;
7998 short int var7
/* : Bool */;
7999 static val
* varonce
;
8000 val
* var8
/* : String */;
8001 char* var9
/* : NativeString */;
8002 long var10
/* : Int */;
8003 val
* var11
/* : String */;
8004 static val
* varonce12
;
8005 val
* var13
/* : String */;
8006 char* var14
/* : NativeString */;
8007 long var15
/* : Int */;
8008 val
* var16
/* : String */;
8009 val
* var17
/* : Array[Object] */;
8010 long var18
/* : Int */;
8011 val
* var19
/* : NativeArray[Object] */;
8012 val
* var20
/* : String */;
8013 static val
* varonce21
;
8014 val
* var22
/* : String */;
8015 char* var23
/* : NativeString */;
8016 long var24
/* : Int */;
8017 val
* var25
/* : String */;
8018 static val
* varonce26
;
8019 val
* var27
/* : String */;
8020 char* var28
/* : NativeString */;
8021 long var29
/* : Int */;
8022 val
* var30
/* : String */;
8023 static val
* varonce31
;
8024 val
* var32
/* : String */;
8025 char* var33
/* : NativeString */;
8026 long var34
/* : Int */;
8027 val
* var35
/* : String */;
8028 static val
* varonce36
;
8029 val
* var37
/* : String */;
8030 char* var38
/* : NativeString */;
8031 long var39
/* : Int */;
8032 val
* var40
/* : String */;
8033 val
* var41
/* : Array[Object] */;
8034 long var42
/* : Int */;
8035 val
* var43
/* : NativeArray[Object] */;
8036 val
* var44
/* : String */;
8037 static val
* varonce45
;
8038 val
* var46
/* : String */;
8039 char* var47
/* : NativeString */;
8040 long var48
/* : Int */;
8041 val
* var49
/* : String */;
8042 static val
* varonce50
;
8043 val
* var51
/* : String */;
8044 char* var52
/* : NativeString */;
8045 long var53
/* : Int */;
8046 val
* var54
/* : String */;
8047 val
* var55
/* : Array[Object] */;
8048 long var56
/* : Int */;
8049 val
* var57
/* : NativeArray[Object] */;
8050 val
* var58
/* : String */;
8051 static val
* varonce59
;
8052 val
* var60
/* : String */;
8053 char* var61
/* : NativeString */;
8054 long var62
/* : Int */;
8055 val
* var63
/* : String */;
8056 static val
* varonce64
;
8057 val
* var65
/* : String */;
8058 char* var66
/* : NativeString */;
8059 long var67
/* : Int */;
8060 val
* var68
/* : String */;
8061 /* Covariant cast for argument 0 (v) <p0:SeparateCompilerVisitor> isa VISITOR */
8062 /* <p0:SeparateCompilerVisitor> isa VISITOR */
8063 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
8064 cltype
= type_struct
->color
;
8065 idtype
= type_struct
->id
;
8066 if(cltype
>= p0
->type
->table_size
) {
8069 var
= p0
->type
->type_table
[cltype
] == idtype
;
8072 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
8073 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
8074 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 825);
8079 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:SeparateCompilerVisitor>*/;
8080 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var1
) /* modelbuilder on <var1:AbstractCompiler(SeparateCompiler)>*/;
8081 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var2
) /* toolcontext on <var2:ModelBuilder>*/;
8082 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_hardening
]))(var3
) /* opt_hardening on <var3:ToolContext>*/;
8083 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_opts__Option__value
]))(var4
) /* value on <var4:OptionBool>*/;
8084 var6
= ((struct instance_kernel__Bool
*)var5
)->value
; /* autounbox from nullable Object to Bool */;
8095 var11
= string__NativeString__to_s_with_length(var9
, var10
);
8102 var14
= " == NULL) {";
8104 var16
= string__NativeString__to_s_with_length(var14
, var15
);
8108 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
8109 { /* var17 = array_instance Array[Object] */
8111 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
8112 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var8
;
8113 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var_t
;
8114 ((struct instance_array__NativeArray
*)var19
)->values
[2] = (val
*) var13
;
8115 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
8117 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
8118 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var20
) /* add on <var_v:SeparateCompilerVisitor>*/;
8122 var23
= "type null";
8124 var25
= string__NativeString__to_s_with_length(var23
, var24
);
8128 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(var_v
, var22
) /* add_abort on <var_v:SeparateCompilerVisitor>*/;
8134 var30
= string__NativeString__to_s_with_length(var28
, var29
);
8138 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var27
) /* add on <var_v:SeparateCompilerVisitor>*/;
8144 var35
= string__NativeString__to_s_with_length(var33
, var34
);
8151 var38
= "->resolution_table == NULL) {";
8153 var40
= string__NativeString__to_s_with_length(var38
, var39
);
8157 var41
= NEW_array__Array(&type_array__Arraykernel__Object
);
8158 { /* var41 = array_instance Array[Object] */
8160 var43
= NEW_array__NativeArray(var42
, &type_array__NativeArraykernel__Object
);
8161 ((struct instance_array__NativeArray
*)var43
)->values
[0] = (val
*) var32
;
8162 ((struct instance_array__NativeArray
*)var43
)->values
[1] = (val
*) var_t
;
8163 ((struct instance_array__NativeArray
*)var43
)->values
[2] = (val
*) var37
;
8164 ((void (*)(val
*, val
*, long))(var41
->class->vft
[COLOR_array__Array__with_native
]))(var41
, var43
, var42
) /* with_native on <var41:Array[Object]>*/;
8166 var44
= ((val
* (*)(val
*))(var41
->class->vft
[COLOR_string__Object__to_s
]))(var41
) /* to_s on <var41:Array[Object]>*/;
8167 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var44
) /* add on <var_v:SeparateCompilerVisitor>*/;
8171 var47
= "fprintf(stderr, \"Insantiation of a dead type: %s\\n\", ";
8173 var49
= string__NativeString__to_s_with_length(var47
, var48
);
8182 var54
= string__NativeString__to_s_with_length(var52
, var53
);
8186 var55
= NEW_array__Array(&type_array__Arraykernel__Object
);
8187 { /* var55 = array_instance Array[Object] */
8189 var57
= NEW_array__NativeArray(var56
, &type_array__NativeArraykernel__Object
);
8190 ((struct instance_array__NativeArray
*)var57
)->values
[0] = (val
*) var46
;
8191 ((struct instance_array__NativeArray
*)var57
)->values
[1] = (val
*) var_t
;
8192 ((struct instance_array__NativeArray
*)var57
)->values
[2] = (val
*) var51
;
8193 ((void (*)(val
*, val
*, long))(var55
->class->vft
[COLOR_array__Array__with_native
]))(var55
, var57
, var56
) /* with_native on <var55:Array[Object]>*/;
8195 var58
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_string__Object__to_s
]))(var55
) /* to_s on <var55:Array[Object]>*/;
8196 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var58
) /* add on <var_v:SeparateCompilerVisitor>*/;
8200 var61
= "type dead";
8202 var63
= string__NativeString__to_s_with_length(var61
, var62
);
8206 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(var_v
, var60
) /* add_abort on <var_v:SeparateCompilerVisitor>*/;
8212 var68
= string__NativeString__to_s_with_length(var66
, var67
);
8216 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var65
) /* add on <var_v:SeparateCompilerVisitor>*/;
8219 /* method separate_compiler#SeparateCompiler#hardening_live_type for (self: Object, SeparateCompilerVisitor, String) */
8220 void VIRTUAL_separate_compiler__SeparateCompiler__hardening_live_type(val
* self
, val
* p0
, val
* p1
) {
8221 separate_compiler__SeparateCompiler__hardening_live_type(self
, p0
, p1
);
8224 /* method separate_compiler#SeparateCompiler#new_visitor for (self: SeparateCompiler): SeparateCompilerVisitor */
8225 val
* separate_compiler__SeparateCompiler__new_visitor(val
* self
) {
8226 val
* var
/* : SeparateCompilerVisitor */;
8227 val
* var1
/* : SeparateCompilerVisitor */;
8228 short int var2
/* : Bool */;
8231 const struct type
* type_struct
;
8232 const char* var_class_name
;
8233 var1
= NEW_separate_compiler__SeparateCompilerVisitor(&type_separate_compiler__SeparateCompilerVisitor
);
8234 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init
]))(var1
, self
) /* init on <var1:SeparateCompilerVisitor>*/;
8235 /* <var1:SeparateCompilerVisitor> isa VISITOR */
8236 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
8237 cltype
= type_struct
->color
;
8238 idtype
= type_struct
->id
;
8239 if(cltype
>= var1
->type
->table_size
) {
8242 var2
= var1
->type
->type_table
[cltype
] == idtype
;
8245 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
8246 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
8247 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 838);
8255 /* method separate_compiler#SeparateCompiler#new_visitor for (self: Object): AbstractCompilerVisitor */
8256 val
* VIRTUAL_separate_compiler__SeparateCompiler__new_visitor(val
* self
) {
8257 val
* var
/* : AbstractCompilerVisitor */;
8258 val
* var1
/* : SeparateCompilerVisitor */;
8259 var1
= separate_compiler__SeparateCompiler__new_visitor(self
);
8264 /* method separate_compiler#SeparateCompiler#type_tables for (self: SeparateCompiler): Map[MType, Array[nullable MType]] */
8265 val
* separate_compiler__SeparateCompiler__type_tables(val
* self
) {
8266 val
* var
/* : Map[MType, Array[nullable MType]] */;
8267 val
* var1
/* : Map[MType, Array[nullable MType]] */;
8268 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dtype_tables
].val
; /* @type_tables on <self:SeparateCompiler> */
8270 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @type_tables");
8271 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 842);
8278 /* method separate_compiler#SeparateCompiler#type_tables for (self: Object): Map[MType, Array[nullable MType]] */
8279 val
* VIRTUAL_separate_compiler__SeparateCompiler__type_tables(val
* self
) {
8280 val
* var
/* : Map[MType, Array[nullable MType]] */;
8281 val
* var1
/* : Map[MType, Array[nullable MType]] */;
8282 var1
= separate_compiler__SeparateCompiler__type_tables(self
);
8287 /* method separate_compiler#SeparateCompiler#type_tables= for (self: SeparateCompiler, Map[MType, Array[nullable MType]]) */
8288 void separate_compiler__SeparateCompiler__type_tables_61d(val
* self
, val
* p0
) {
8289 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dtype_tables
].val
= p0
; /* @type_tables on <self:SeparateCompiler> */
8292 /* method separate_compiler#SeparateCompiler#type_tables= for (self: Object, Map[MType, Array[nullable MType]]) */
8293 void VIRTUAL_separate_compiler__SeparateCompiler__type_tables_61d(val
* self
, val
* p0
) {
8294 separate_compiler__SeparateCompiler__type_tables_61d(self
, p0
);
8297 /* method separate_compiler#SeparateCompiler#resolution_tables for (self: SeparateCompiler): Map[MClassType, Array[nullable MType]] */
8298 val
* separate_compiler__SeparateCompiler__resolution_tables(val
* self
) {
8299 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
8300 val
* var1
/* : Map[MClassType, Array[nullable MType]] */;
8301 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dresolution_tables
].val
; /* @resolution_tables on <self:SeparateCompiler> */
8303 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @resolution_tables");
8304 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 843);
8311 /* method separate_compiler#SeparateCompiler#resolution_tables for (self: Object): Map[MClassType, Array[nullable MType]] */
8312 val
* VIRTUAL_separate_compiler__SeparateCompiler__resolution_tables(val
* self
) {
8313 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
8314 val
* var1
/* : Map[MClassType, Array[nullable MType]] */;
8315 var1
= separate_compiler__SeparateCompiler__resolution_tables(self
);
8320 /* method separate_compiler#SeparateCompiler#resolution_tables= for (self: SeparateCompiler, Map[MClassType, Array[nullable MType]]) */
8321 void separate_compiler__SeparateCompiler__resolution_tables_61d(val
* self
, val
* p0
) {
8322 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dresolution_tables
].val
= p0
; /* @resolution_tables on <self:SeparateCompiler> */
8325 /* method separate_compiler#SeparateCompiler#resolution_tables= for (self: Object, Map[MClassType, Array[nullable MType]]) */
8326 void VIRTUAL_separate_compiler__SeparateCompiler__resolution_tables_61d(val
* self
, val
* p0
) {
8327 separate_compiler__SeparateCompiler__resolution_tables_61d(self
, p0
);
8330 /* method separate_compiler#SeparateCompiler#method_tables for (self: SeparateCompiler): Map[MClass, Array[nullable MPropDef]] */
8331 val
* separate_compiler__SeparateCompiler__method_tables(val
* self
) {
8332 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
8333 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
8334 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dmethod_tables
].val
; /* @method_tables on <self:SeparateCompiler> */
8336 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @method_tables");
8337 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 844);
8344 /* method separate_compiler#SeparateCompiler#method_tables for (self: Object): Map[MClass, Array[nullable MPropDef]] */
8345 val
* VIRTUAL_separate_compiler__SeparateCompiler__method_tables(val
* self
) {
8346 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
8347 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
8348 var1
= separate_compiler__SeparateCompiler__method_tables(self
);
8353 /* method separate_compiler#SeparateCompiler#method_tables= for (self: SeparateCompiler, Map[MClass, Array[nullable MPropDef]]) */
8354 void separate_compiler__SeparateCompiler__method_tables_61d(val
* self
, val
* p0
) {
8355 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dmethod_tables
].val
= p0
; /* @method_tables on <self:SeparateCompiler> */
8358 /* method separate_compiler#SeparateCompiler#method_tables= for (self: Object, Map[MClass, Array[nullable MPropDef]]) */
8359 void VIRTUAL_separate_compiler__SeparateCompiler__method_tables_61d(val
* self
, val
* p0
) {
8360 separate_compiler__SeparateCompiler__method_tables_61d(self
, p0
);
8363 /* method separate_compiler#SeparateCompiler#attr_tables for (self: SeparateCompiler): Map[MClass, Array[nullable MPropDef]] */
8364 val
* separate_compiler__SeparateCompiler__attr_tables(val
* self
) {
8365 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
8366 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
8367 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dattr_tables
].val
; /* @attr_tables on <self:SeparateCompiler> */
8369 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @attr_tables");
8370 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 845);
8377 /* method separate_compiler#SeparateCompiler#attr_tables for (self: Object): Map[MClass, Array[nullable MPropDef]] */
8378 val
* VIRTUAL_separate_compiler__SeparateCompiler__attr_tables(val
* self
) {
8379 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
8380 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
8381 var1
= separate_compiler__SeparateCompiler__attr_tables(self
);
8386 /* method separate_compiler#SeparateCompiler#attr_tables= for (self: SeparateCompiler, Map[MClass, Array[nullable MPropDef]]) */
8387 void separate_compiler__SeparateCompiler__attr_tables_61d(val
* self
, val
* p0
) {
8388 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dattr_tables
].val
= p0
; /* @attr_tables on <self:SeparateCompiler> */
8391 /* method separate_compiler#SeparateCompiler#attr_tables= for (self: Object, Map[MClass, Array[nullable MPropDef]]) */
8392 void VIRTUAL_separate_compiler__SeparateCompiler__attr_tables_61d(val
* self
, val
* p0
) {
8393 separate_compiler__SeparateCompiler__attr_tables_61d(self
, p0
);
8396 /* method separate_compiler#SeparateCompiler#display_stats for (self: SeparateCompiler) */
8397 void separate_compiler__SeparateCompiler__display_stats(val
* self
) {
8398 val
* var
/* : ModelBuilder */;
8399 val
* var1
/* : ToolContext */;
8400 val
* var2
/* : OptionBool */;
8401 val
* var3
/* : nullable Object */;
8402 short int var4
/* : Bool */;
8403 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__display_stats
]))(self
) /* display_stats on <self:SeparateCompiler>*/;
8404 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
8405 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var
) /* toolcontext on <var:ModelBuilder>*/;
8406 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_separate_compiler__ToolContext__opt_tables_metrics
]))(var1
) /* opt_tables_metrics on <var1:ToolContext>*/;
8407 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_opts__Option__value
]))(var2
) /* value on <var2:OptionBool>*/;
8408 var4
= ((struct instance_kernel__Bool
*)var3
)->value
; /* autounbox from nullable Object to Bool */;
8410 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__display_sizes
]))(self
) /* display_sizes on <self:SeparateCompiler>*/;
8415 /* method separate_compiler#SeparateCompiler#display_stats for (self: Object) */
8416 void VIRTUAL_separate_compiler__SeparateCompiler__display_stats(val
* self
) {
8417 separate_compiler__SeparateCompiler__display_stats(self
);
8420 /* method separate_compiler#SeparateCompiler#display_sizes for (self: SeparateCompiler) */
8421 void separate_compiler__SeparateCompiler__display_sizes(val
* self
) {
8422 static val
* varonce
;
8423 val
* var
/* : String */;
8424 char* var1
/* : NativeString */;
8425 long var2
/* : Int */;
8426 val
* var3
/* : String */;
8427 static val
* varonce4
;
8428 val
* var5
/* : String */;
8429 char* var6
/* : NativeString */;
8430 long var7
/* : Int */;
8431 val
* var8
/* : String */;
8432 long var9
/* : Int */;
8433 long var_total
/* var total: Int */;
8434 long var10
/* : Int */;
8435 long var_holes
/* var holes: Int */;
8436 val
* var11
/* : Map[MType, Array[nullable MType]] */;
8437 val
* var12
/* : MapIterator[Object, nullable Object] */;
8438 short int var13
/* : Bool */;
8439 val
* var14
/* : Object */;
8440 val
* var_t
/* var t: MType */;
8441 val
* var15
/* : nullable Object */;
8442 val
* var_table
/* var table: Array[nullable MType] */;
8443 long var16
/* : Int */;
8444 long var17
/* : Int */;
8445 long var19
/* : Int */;
8446 val
* var20
/* : Iterator[nullable Object] */;
8447 short int var21
/* : Bool */;
8448 val
* var22
/* : nullable Object */;
8449 val
* var_e
/* var e: nullable MType */;
8450 val
* var23
/* : null */;
8451 short int var24
/* : Bool */;
8452 long var25
/* : Int */;
8453 long var26
/* : Int */;
8454 long var28
/* : Int */;
8455 static val
* varonce30
;
8456 val
* var31
/* : String */;
8457 char* var32
/* : NativeString */;
8458 long var33
/* : Int */;
8459 val
* var34
/* : String */;
8460 static val
* varonce35
;
8461 val
* var36
/* : String */;
8462 char* var37
/* : NativeString */;
8463 long var38
/* : Int */;
8464 val
* var39
/* : String */;
8465 val
* var40
/* : Array[Object] */;
8466 long var41
/* : Int */;
8467 val
* var42
/* : NativeArray[Object] */;
8468 val
* var43
/* : Object */;
8469 val
* var44
/* : Object */;
8470 val
* var45
/* : String */;
8471 static val
* varonce46
;
8472 val
* var47
/* : String */;
8473 char* var48
/* : NativeString */;
8474 long var49
/* : Int */;
8475 val
* var50
/* : String */;
8476 static val
* varonce51
;
8477 val
* var52
/* : String */;
8478 char* var53
/* : NativeString */;
8479 long var54
/* : Int */;
8480 val
* var55
/* : String */;
8481 long var56
/* : Int */;
8482 long var57
/* : Int */;
8483 val
* var58
/* : Map[MClassType, Array[nullable MType]] */;
8484 val
* var59
/* : MapIterator[Object, nullable Object] */;
8485 short int var60
/* : Bool */;
8486 val
* var61
/* : Object */;
8487 val
* var_t62
/* var t: MClassType */;
8488 val
* var63
/* : nullable Object */;
8489 val
* var_table64
/* var table: Array[nullable MType] */;
8490 long var65
/* : Int */;
8491 long var66
/* : Int */;
8492 long var68
/* : Int */;
8493 val
* var69
/* : Iterator[nullable Object] */;
8494 short int var70
/* : Bool */;
8495 val
* var71
/* : nullable Object */;
8496 val
* var_e72
/* var e: nullable MType */;
8497 val
* var73
/* : null */;
8498 short int var74
/* : Bool */;
8499 long var75
/* : Int */;
8500 long var76
/* : Int */;
8501 long var78
/* : Int */;
8502 static val
* varonce81
;
8503 val
* var82
/* : String */;
8504 char* var83
/* : NativeString */;
8505 long var84
/* : Int */;
8506 val
* var85
/* : String */;
8507 static val
* varonce86
;
8508 val
* var87
/* : String */;
8509 char* var88
/* : NativeString */;
8510 long var89
/* : Int */;
8511 val
* var90
/* : String */;
8512 val
* var91
/* : Array[Object] */;
8513 long var92
/* : Int */;
8514 val
* var93
/* : NativeArray[Object] */;
8515 val
* var94
/* : Object */;
8516 val
* var95
/* : Object */;
8517 val
* var96
/* : String */;
8518 static val
* varonce97
;
8519 val
* var98
/* : String */;
8520 char* var99
/* : NativeString */;
8521 long var100
/* : Int */;
8522 val
* var101
/* : String */;
8523 static val
* varonce102
;
8524 val
* var103
/* : String */;
8525 char* var104
/* : NativeString */;
8526 long var105
/* : Int */;
8527 val
* var106
/* : String */;
8528 long var107
/* : Int */;
8529 long var108
/* : Int */;
8530 val
* var109
/* : Map[MClass, Array[nullable MPropDef]] */;
8531 val
* var110
/* : MapIterator[Object, nullable Object] */;
8532 short int var111
/* : Bool */;
8533 val
* var112
/* : Object */;
8534 val
* var_t113
/* var t: MClass */;
8535 val
* var114
/* : nullable Object */;
8536 val
* var_table115
/* var table: Array[nullable MPropDef] */;
8537 long var116
/* : Int */;
8538 long var117
/* : Int */;
8539 long var119
/* : Int */;
8540 val
* var120
/* : Iterator[nullable Object] */;
8541 short int var121
/* : Bool */;
8542 val
* var122
/* : nullable Object */;
8543 val
* var_e123
/* var e: nullable MPropDef */;
8544 val
* var124
/* : null */;
8545 short int var125
/* : Bool */;
8546 long var126
/* : Int */;
8547 long var127
/* : Int */;
8548 long var129
/* : Int */;
8549 static val
* varonce132
;
8550 val
* var133
/* : String */;
8551 char* var134
/* : NativeString */;
8552 long var135
/* : Int */;
8553 val
* var136
/* : String */;
8554 static val
* varonce137
;
8555 val
* var138
/* : String */;
8556 char* var139
/* : NativeString */;
8557 long var140
/* : Int */;
8558 val
* var141
/* : String */;
8559 val
* var142
/* : Array[Object] */;
8560 long var143
/* : Int */;
8561 val
* var144
/* : NativeArray[Object] */;
8562 val
* var145
/* : Object */;
8563 val
* var146
/* : Object */;
8564 val
* var147
/* : String */;
8565 static val
* varonce148
;
8566 val
* var149
/* : String */;
8567 char* var150
/* : NativeString */;
8568 long var151
/* : Int */;
8569 val
* var152
/* : String */;
8570 static val
* varonce153
;
8571 val
* var154
/* : String */;
8572 char* var155
/* : NativeString */;
8573 long var156
/* : Int */;
8574 val
* var157
/* : String */;
8575 long var158
/* : Int */;
8576 long var159
/* : Int */;
8577 val
* var160
/* : Map[MClass, Array[nullable MPropDef]] */;
8578 val
* var161
/* : MapIterator[Object, nullable Object] */;
8579 short int var162
/* : Bool */;
8580 val
* var163
/* : Object */;
8581 val
* var_t164
/* var t: MClass */;
8582 val
* var165
/* : nullable Object */;
8583 val
* var_table166
/* var table: Array[nullable MPropDef] */;
8584 long var167
/* : Int */;
8585 long var168
/* : Int */;
8586 long var170
/* : Int */;
8587 val
* var171
/* : Iterator[nullable Object] */;
8588 short int var172
/* : Bool */;
8589 val
* var173
/* : nullable Object */;
8590 val
* var_e174
/* var e: nullable MPropDef */;
8591 val
* var175
/* : null */;
8592 short int var176
/* : Bool */;
8593 long var177
/* : Int */;
8594 long var178
/* : Int */;
8595 long var180
/* : Int */;
8596 static val
* varonce183
;
8597 val
* var184
/* : String */;
8598 char* var185
/* : NativeString */;
8599 long var186
/* : Int */;
8600 val
* var187
/* : String */;
8601 static val
* varonce188
;
8602 val
* var189
/* : String */;
8603 char* var190
/* : NativeString */;
8604 long var191
/* : Int */;
8605 val
* var192
/* : String */;
8606 val
* var193
/* : Array[Object] */;
8607 long var194
/* : Int */;
8608 val
* var195
/* : NativeArray[Object] */;
8609 val
* var196
/* : Object */;
8610 val
* var197
/* : Object */;
8611 val
* var198
/* : String */;
8615 var1
= "# size of subtyping tables";
8617 var3
= string__NativeString__to_s_with_length(var1
, var2
);
8621 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var
) /* print on <self:SeparateCompiler>*/;
8625 var6
= "\11total \11holes";
8627 var8
= string__NativeString__to_s_with_length(var6
, var7
);
8631 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var5
) /* print on <self:SeparateCompiler>*/;
8636 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_tables
]))(self
) /* type_tables on <self:SeparateCompiler>*/;
8637 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var11
) /* iterator on <var11:Map[MType, Array[nullable MType]]>*/;
8639 var13
= ((short int (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var12
) /* is_ok on <var12:MapIterator[Object, nullable Object]>*/;
8641 var14
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var12
) /* key on <var12:MapIterator[Object, nullable Object]>*/;
8643 var15
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var12
) /* item on <var12:MapIterator[Object, nullable Object]>*/;
8645 var16
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MType]>*/;
8646 { /* Inline kernel#Int#+ (var_total,var16) */
8647 var19
= var_total
+ var16
;
8650 RET_LABEL18
:(void)0;
8653 var20
= ((val
* (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table
) /* iterator on <var_table:Array[nullable MType]>*/;
8655 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var20
) /* is_ok on <var20:Iterator[nullable Object]>*/;
8657 var22
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var20
) /* item on <var20:Iterator[nullable Object]>*/;
8660 if (var_e
== NULL
) {
8661 var24
= 1; /* is null */
8663 var24
= 0; /* arg is null but recv is not */
8667 { /* Inline kernel#Int#+ (var_holes,var25) */
8668 var28
= var_holes
+ var25
;
8671 RET_LABEL27
:(void)0;
8676 CONTINUE_label
: (void)0;
8677 ((void (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var20
) /* next on <var20:Iterator[nullable Object]>*/;
8679 BREAK_label
: (void)0;
8680 CONTINUE_label29
: (void)0;
8681 ((void (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var12
) /* next on <var12:MapIterator[Object, nullable Object]>*/;
8683 BREAK_label29
: (void)0;
8689 var34
= string__NativeString__to_s_with_length(var32
, var33
);
8698 var39
= string__NativeString__to_s_with_length(var37
, var38
);
8702 var40
= NEW_array__Array(&type_array__Arraykernel__Object
);
8703 { /* var40 = array_instance Array[Object] */
8705 var42
= NEW_array__NativeArray(var41
, &type_array__NativeArraykernel__Object
);
8706 ((struct instance_array__NativeArray
*)var42
)->values
[0] = (val
*) var31
;
8707 var43
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
8708 ((struct instance_array__NativeArray
*)var42
)->values
[1] = (val
*) var43
;
8709 ((struct instance_array__NativeArray
*)var42
)->values
[2] = (val
*) var36
;
8710 var44
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
8711 ((struct instance_array__NativeArray
*)var42
)->values
[3] = (val
*) var44
;
8712 ((void (*)(val
*, val
*, long))(var40
->class->vft
[COLOR_array__Array__with_native
]))(var40
, var42
, var41
) /* with_native on <var40:Array[Object]>*/;
8714 var45
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_string__Object__to_s
]))(var40
) /* to_s on <var40:Array[Object]>*/;
8715 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var45
) /* print on <self:SeparateCompiler>*/;
8719 var48
= "# size of resolution tables";
8721 var50
= string__NativeString__to_s_with_length(var48
, var49
);
8725 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var47
) /* print on <self:SeparateCompiler>*/;
8729 var53
= "\11total \11holes";
8731 var55
= string__NativeString__to_s_with_length(var53
, var54
);
8735 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var52
) /* print on <self:SeparateCompiler>*/;
8740 var58
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_tables
]))(self
) /* resolution_tables on <self:SeparateCompiler>*/;
8741 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var58
) /* iterator on <var58:Map[MClassType, Array[nullable MType]]>*/;
8743 var60
= ((short int (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var59
) /* is_ok on <var59:MapIterator[Object, nullable Object]>*/;
8745 var61
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var59
) /* key on <var59:MapIterator[Object, nullable Object]>*/;
8747 var63
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var59
) /* item on <var59:MapIterator[Object, nullable Object]>*/;
8748 var_table64
= var63
;
8749 var65
= ((long (*)(val
*))(var_table64
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table64
) /* length on <var_table64:Array[nullable MType]>*/;
8750 { /* Inline kernel#Int#+ (var_total,var65) */
8751 var68
= var_total
+ var65
;
8754 RET_LABEL67
:(void)0;
8757 var69
= ((val
* (*)(val
*))(var_table64
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table64
) /* iterator on <var_table64:Array[nullable MType]>*/;
8759 var70
= ((short int (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var69
) /* is_ok on <var69:Iterator[nullable Object]>*/;
8761 var71
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var69
) /* item on <var69:Iterator[nullable Object]>*/;
8764 if (var_e72
== NULL
) {
8765 var74
= 1; /* is null */
8767 var74
= 0; /* arg is null but recv is not */
8771 { /* Inline kernel#Int#+ (var_holes,var75) */
8772 var78
= var_holes
+ var75
;
8775 RET_LABEL77
:(void)0;
8780 CONTINUE_label79
: (void)0;
8781 ((void (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var69
) /* next on <var69:Iterator[nullable Object]>*/;
8783 BREAK_label79
: (void)0;
8784 CONTINUE_label80
: (void)0;
8785 ((void (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var59
) /* next on <var59:MapIterator[Object, nullable Object]>*/;
8787 BREAK_label80
: (void)0;
8793 var85
= string__NativeString__to_s_with_length(var83
, var84
);
8802 var90
= string__NativeString__to_s_with_length(var88
, var89
);
8806 var91
= NEW_array__Array(&type_array__Arraykernel__Object
);
8807 { /* var91 = array_instance Array[Object] */
8809 var93
= NEW_array__NativeArray(var92
, &type_array__NativeArraykernel__Object
);
8810 ((struct instance_array__NativeArray
*)var93
)->values
[0] = (val
*) var82
;
8811 var94
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
8812 ((struct instance_array__NativeArray
*)var93
)->values
[1] = (val
*) var94
;
8813 ((struct instance_array__NativeArray
*)var93
)->values
[2] = (val
*) var87
;
8814 var95
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
8815 ((struct instance_array__NativeArray
*)var93
)->values
[3] = (val
*) var95
;
8816 ((void (*)(val
*, val
*, long))(var91
->class->vft
[COLOR_array__Array__with_native
]))(var91
, var93
, var92
) /* with_native on <var91:Array[Object]>*/;
8818 var96
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_string__Object__to_s
]))(var91
) /* to_s on <var91:Array[Object]>*/;
8819 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var96
) /* print on <self:SeparateCompiler>*/;
8823 var99
= "# size of methods tables";
8825 var101
= string__NativeString__to_s_with_length(var99
, var100
);
8829 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var98
) /* print on <self:SeparateCompiler>*/;
8831 var103
= varonce102
;
8833 var104
= "\11total \11holes";
8835 var106
= string__NativeString__to_s_with_length(var104
, var105
);
8837 varonce102
= var103
;
8839 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var103
) /* print on <self:SeparateCompiler>*/;
8844 var109
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_tables
]))(self
) /* method_tables on <self:SeparateCompiler>*/;
8845 var110
= ((val
* (*)(val
*))(var109
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var109
) /* iterator on <var109:Map[MClass, Array[nullable MPropDef]]>*/;
8847 var111
= ((short int (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var110
) /* is_ok on <var110:MapIterator[Object, nullable Object]>*/;
8849 var112
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var110
) /* key on <var110:MapIterator[Object, nullable Object]>*/;
8851 var114
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var110
) /* item on <var110:MapIterator[Object, nullable Object]>*/;
8852 var_table115
= var114
;
8853 var116
= ((long (*)(val
*))(var_table115
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table115
) /* length on <var_table115:Array[nullable MPropDef]>*/;
8854 { /* Inline kernel#Int#+ (var_total,var116) */
8855 var119
= var_total
+ var116
;
8858 RET_LABEL118
:(void)0;
8861 var120
= ((val
* (*)(val
*))(var_table115
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table115
) /* iterator on <var_table115:Array[nullable MPropDef]>*/;
8863 var121
= ((short int (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var120
) /* is_ok on <var120:Iterator[nullable Object]>*/;
8865 var122
= ((val
* (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var120
) /* item on <var120:Iterator[nullable Object]>*/;
8868 if (var_e123
== NULL
) {
8869 var125
= 1; /* is null */
8871 var125
= 0; /* arg is null but recv is not */
8875 { /* Inline kernel#Int#+ (var_holes,var126) */
8876 var129
= var_holes
+ var126
;
8879 RET_LABEL128
:(void)0;
8884 CONTINUE_label130
: (void)0;
8885 ((void (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var120
) /* next on <var120:Iterator[nullable Object]>*/;
8887 BREAK_label130
: (void)0;
8888 CONTINUE_label131
: (void)0;
8889 ((void (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var110
) /* next on <var110:MapIterator[Object, nullable Object]>*/;
8891 BREAK_label131
: (void)0;
8893 var133
= varonce132
;
8897 var136
= string__NativeString__to_s_with_length(var134
, var135
);
8899 varonce132
= var133
;
8902 var138
= varonce137
;
8906 var141
= string__NativeString__to_s_with_length(var139
, var140
);
8908 varonce137
= var138
;
8910 var142
= NEW_array__Array(&type_array__Arraykernel__Object
);
8911 { /* var142 = array_instance Array[Object] */
8913 var144
= NEW_array__NativeArray(var143
, &type_array__NativeArraykernel__Object
);
8914 ((struct instance_array__NativeArray
*)var144
)->values
[0] = (val
*) var133
;
8915 var145
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
8916 ((struct instance_array__NativeArray
*)var144
)->values
[1] = (val
*) var145
;
8917 ((struct instance_array__NativeArray
*)var144
)->values
[2] = (val
*) var138
;
8918 var146
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
8919 ((struct instance_array__NativeArray
*)var144
)->values
[3] = (val
*) var146
;
8920 ((void (*)(val
*, val
*, long))(var142
->class->vft
[COLOR_array__Array__with_native
]))(var142
, var144
, var143
) /* with_native on <var142:Array[Object]>*/;
8922 var147
= ((val
* (*)(val
*))(var142
->class->vft
[COLOR_string__Object__to_s
]))(var142
) /* to_s on <var142:Array[Object]>*/;
8923 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var147
) /* print on <self:SeparateCompiler>*/;
8925 var149
= varonce148
;
8927 var150
= "# size of attributes tables";
8929 var152
= string__NativeString__to_s_with_length(var150
, var151
);
8931 varonce148
= var149
;
8933 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var149
) /* print on <self:SeparateCompiler>*/;
8935 var154
= varonce153
;
8937 var155
= "\11total \11holes";
8939 var157
= string__NativeString__to_s_with_length(var155
, var156
);
8941 varonce153
= var154
;
8943 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var154
) /* print on <self:SeparateCompiler>*/;
8948 var160
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_tables
]))(self
) /* attr_tables on <self:SeparateCompiler>*/;
8949 var161
= ((val
* (*)(val
*))(var160
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var160
) /* iterator on <var160:Map[MClass, Array[nullable MPropDef]]>*/;
8951 var162
= ((short int (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var161
) /* is_ok on <var161:MapIterator[Object, nullable Object]>*/;
8953 var163
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var161
) /* key on <var161:MapIterator[Object, nullable Object]>*/;
8955 var165
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var161
) /* item on <var161:MapIterator[Object, nullable Object]>*/;
8956 var_table166
= var165
;
8957 var167
= ((long (*)(val
*))(var_table166
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table166
) /* length on <var_table166:Array[nullable MPropDef]>*/;
8958 { /* Inline kernel#Int#+ (var_total,var167) */
8959 var170
= var_total
+ var167
;
8962 RET_LABEL169
:(void)0;
8965 var171
= ((val
* (*)(val
*))(var_table166
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table166
) /* iterator on <var_table166:Array[nullable MPropDef]>*/;
8967 var172
= ((short int (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var171
) /* is_ok on <var171:Iterator[nullable Object]>*/;
8969 var173
= ((val
* (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var171
) /* item on <var171:Iterator[nullable Object]>*/;
8972 if (var_e174
== NULL
) {
8973 var176
= 1; /* is null */
8975 var176
= 0; /* arg is null but recv is not */
8979 { /* Inline kernel#Int#+ (var_holes,var177) */
8980 var180
= var_holes
+ var177
;
8983 RET_LABEL179
:(void)0;
8988 CONTINUE_label181
: (void)0;
8989 ((void (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var171
) /* next on <var171:Iterator[nullable Object]>*/;
8991 BREAK_label181
: (void)0;
8992 CONTINUE_label182
: (void)0;
8993 ((void (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var161
) /* next on <var161:MapIterator[Object, nullable Object]>*/;
8995 BREAK_label182
: (void)0;
8997 var184
= varonce183
;
9001 var187
= string__NativeString__to_s_with_length(var185
, var186
);
9003 varonce183
= var184
;
9006 var189
= varonce188
;
9010 var192
= string__NativeString__to_s_with_length(var190
, var191
);
9012 varonce188
= var189
;
9014 var193
= NEW_array__Array(&type_array__Arraykernel__Object
);
9015 { /* var193 = array_instance Array[Object] */
9017 var195
= NEW_array__NativeArray(var194
, &type_array__NativeArraykernel__Object
);
9018 ((struct instance_array__NativeArray
*)var195
)->values
[0] = (val
*) var184
;
9019 var196
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
9020 ((struct instance_array__NativeArray
*)var195
)->values
[1] = (val
*) var196
;
9021 ((struct instance_array__NativeArray
*)var195
)->values
[2] = (val
*) var189
;
9022 var197
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
9023 ((struct instance_array__NativeArray
*)var195
)->values
[3] = (val
*) var197
;
9024 ((void (*)(val
*, val
*, long))(var193
->class->vft
[COLOR_array__Array__with_native
]))(var193
, var195
, var194
) /* with_native on <var193:Array[Object]>*/;
9026 var198
= ((val
* (*)(val
*))(var193
->class->vft
[COLOR_string__Object__to_s
]))(var193
) /* to_s on <var193:Array[Object]>*/;
9027 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var198
) /* print on <self:SeparateCompiler>*/;
9030 /* method separate_compiler#SeparateCompiler#display_sizes for (self: Object) */
9031 void VIRTUAL_separate_compiler__SeparateCompiler__display_sizes(val
* self
) {
9032 separate_compiler__SeparateCompiler__display_sizes(self
);
9035 /* method separate_compiler#SeparateCompilerVisitor#adapt_signature for (self: SeparateCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
9036 void separate_compiler__SeparateCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
9037 val
* var_m
/* var m: MMethodDef */;
9038 val
* var_args
/* var args: Array[RuntimeVariable] */;
9039 val
* var
/* : nullable MSignature */;
9040 val
* var1
/* : MClassDef */;
9041 val
* var2
/* : MClassType */;
9042 val
* var3
/* : MClassDef */;
9043 val
* var4
/* : MClassType */;
9044 val
* var5
/* : MClassDef */;
9045 val
* var6
/* : MModule */;
9046 short int var7
/* : Bool */;
9047 val
* var8
/* : MType */;
9048 val
* var_msignature
/* var msignature: MSignature */;
9049 val
* var9
/* : nullable Object */;
9050 val
* var_recv
/* var recv: RuntimeVariable */;
9051 val
* var10
/* : MType */;
9052 val
* var11
/* : String */;
9053 val
* var12
/* : MClassDef */;
9054 val
* var13
/* : MClass */;
9055 val
* var14
/* : MClassType */;
9056 val
* var15
/* : String */;
9057 short int var16
/* : Bool */;
9058 val
* var17
/* : nullable Object */;
9059 val
* var18
/* : MClassDef */;
9060 val
* var19
/* : MClass */;
9061 val
* var20
/* : MClassType */;
9062 val
* var21
/* : RuntimeVariable */;
9063 val
* var22
/* : Range[Int] */;
9064 long var23
/* : Int */;
9065 long var24
/* : Int */;
9066 val
* var25
/* : Discrete */;
9067 val
* var26
/* : Discrete */;
9068 val
* var27
/* : Iterator[nullable Object] */;
9069 short int var28
/* : Bool */;
9070 val
* var29
/* : nullable Object */;
9071 long var_i
/* var i: Int */;
9072 long var30
/* : Int */;
9073 val
* var31
/* : Array[MParameter] */;
9074 val
* var32
/* : nullable Object */;
9075 val
* var33
/* : MType */;
9076 val
* var_t
/* var t: MType */;
9077 long var34
/* : Int */;
9078 short int var35
/* : Bool */;
9079 short int var37
/* : Bool */;
9080 long var38
/* : Int */;
9081 long var39
/* : Int */;
9082 long var41
/* : Int */;
9083 val
* var42
/* : nullable Object */;
9084 val
* var43
/* : MType */;
9085 long var44
/* : Int */;
9086 long var45
/* : Int */;
9087 long var47
/* : Int */;
9088 long var48
/* : Int */;
9089 long var49
/* : Int */;
9090 long var51
/* : Int */;
9091 val
* var52
/* : nullable Object */;
9092 val
* var53
/* : RuntimeVariable */;
9095 var
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
9096 var1
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
9097 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var1
) /* bound_mtype on <var1:MClassDef>*/;
9098 var3
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
9099 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var3
) /* bound_mtype on <var3:MClassDef>*/;
9100 var5
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
9101 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var5
) /* mmodule on <var5:MClassDef>*/;
9104 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
9105 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 907);
9108 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>*/;
9110 var_msignature
= var8
;
9111 var9
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
9113 var10
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_recv
) /* mtype on <var_recv:RuntimeVariable>*/;
9114 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var10
) /* ctype on <var10:MType>*/;
9115 var12
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
9116 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_model__MClassDef__mclass
]))(var12
) /* mclass on <var12:MClassDef>*/;
9117 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__MClass__mclass_type
]))(var13
) /* mclass_type on <var13:MClass>*/;
9118 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var14
) /* ctype on <var14:MClassType>*/;
9119 var16
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var11
, var15
) /* != on <var11:String>*/;
9121 var17
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
9122 var18
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
9123 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_model__MClassDef__mclass
]))(var18
) /* mclass on <var18:MClassDef>*/;
9124 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_model__MClass__mclass_type
]))(var19
) /* mclass_type on <var19:MClass>*/;
9125 var21
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var17
, var20
) /* autobox on <self:SeparateCompilerVisitor>*/;
9126 ((void (*)(val
*, val
*))(var_args
->class->vft
[COLOR_abstract_collection__Sequence__first_61d
]))(var_args
, var21
) /* first= on <var_args:Array[RuntimeVariable]>*/;
9129 var22
= NEW_range__Range(&type_range__Rangekernel__Int
);
9131 var24
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
9132 var25
= BOX_kernel__Int(var23
); /* autobox from Int to Discrete */
9133 var26
= BOX_kernel__Int(var24
); /* autobox from Int to Discrete */
9134 ((void (*)(val
*, val
*, val
*))(var22
->class->vft
[COLOR_range__Range__without_last
]))(var22
, var25
, var26
) /* without_last on <var22:Range[Int]>*/;
9135 var27
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var22
) /* iterator on <var22:Range[Int]>*/;
9137 var28
= ((short int (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var27
) /* is_ok on <var27:Iterator[nullable Object]>*/;
9139 var29
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var27
) /* item on <var27:Iterator[nullable Object]>*/;
9140 var30
= ((struct instance_kernel__Int
*)var29
)->value
; /* autounbox from nullable Object to Int */;
9142 var31
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
9143 var32
= ((val
* (*)(val
*, long))(var31
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var31
, var_i
) /* [] on <var31:Array[MParameter]>*/;
9144 var33
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_model__MParameter__mtype
]))(var32
) /* mtype on <var32:nullable Object(MParameter)>*/;
9146 var34
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var_msignature
) /* vararg_rank on <var_msignature:MSignature>*/;
9147 { /* Inline kernel#Int#== (var_i,var34) */
9148 var37
= var_i
== var34
;
9151 RET_LABEL36
:(void)0;
9155 { /* Inline kernel#Int#+ (var_i,var38) */
9156 var41
= var_i
+ var38
;
9159 RET_LABEL40
:(void)0;
9161 var42
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var39
) /* [] on <var_args:Array[RuntimeVariable]>*/;
9162 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var42
) /* mtype on <var42:nullable Object(RuntimeVariable)>*/;
9167 { /* Inline kernel#Int#+ (var_i,var44) */
9168 var47
= var_i
+ var44
;
9171 RET_LABEL46
:(void)0;
9174 { /* Inline kernel#Int#+ (var_i,var48) */
9175 var51
= var_i
+ var48
;
9178 RET_LABEL50
:(void)0;
9180 var52
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var49
) /* [] on <var_args:Array[RuntimeVariable]>*/;
9181 var53
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var52
, var_t
) /* autobox on <self:SeparateCompilerVisitor>*/;
9182 ((void (*)(val
*, long, val
*))(var_args
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_args
, var45
, var53
) /* []= on <var_args:Array[RuntimeVariable]>*/;
9183 CONTINUE_label
: (void)0;
9184 ((void (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var27
) /* next on <var27:Iterator[nullable Object]>*/;
9186 BREAK_label
: (void)0;
9189 /* method separate_compiler#SeparateCompilerVisitor#adapt_signature for (self: Object, MMethodDef, Array[RuntimeVariable]) */
9190 void VIRTUAL_separate_compiler__SeparateCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
9191 separate_compiler__SeparateCompilerVisitor__adapt_signature(self
, p0
, p1
);
9194 /* method separate_compiler#SeparateCompilerVisitor#autobox for (self: SeparateCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
9195 val
* separate_compiler__SeparateCompilerVisitor__autobox(val
* self
, val
* p0
, val
* p1
) {
9196 val
* var
/* : RuntimeVariable */;
9197 val
* var_value
/* var value: RuntimeVariable */;
9198 val
* var_mtype
/* var mtype: MType */;
9199 val
* var1
/* : MType */;
9200 short int var2
/* : Bool */;
9201 short int var3
/* : Bool */;
9202 val
* var4
/* : MType */;
9203 val
* var5
/* : String */;
9204 static val
* varonce
;
9205 val
* var6
/* : String */;
9206 char* var7
/* : NativeString */;
9207 long var8
/* : Int */;
9208 val
* var9
/* : String */;
9209 short int var10
/* : Bool */;
9210 short int var_
/* var : Bool */;
9211 val
* var11
/* : String */;
9212 static val
* varonce12
;
9213 val
* var13
/* : String */;
9214 char* var14
/* : NativeString */;
9215 long var15
/* : Int */;
9216 val
* var16
/* : String */;
9217 short int var17
/* : Bool */;
9218 val
* var18
/* : MType */;
9219 val
* var19
/* : String */;
9220 static val
* varonce20
;
9221 val
* var21
/* : String */;
9222 char* var22
/* : NativeString */;
9223 long var23
/* : Int */;
9224 val
* var24
/* : String */;
9225 short int var25
/* : Bool */;
9226 static val
* varonce26
;
9227 val
* var27
/* : String */;
9228 char* var28
/* : NativeString */;
9229 long var29
/* : Int */;
9230 val
* var30
/* : String */;
9231 val
* var31
/* : String */;
9232 static val
* varonce32
;
9233 val
* var33
/* : String */;
9234 char* var34
/* : NativeString */;
9235 long var35
/* : Int */;
9236 val
* var36
/* : String */;
9237 static val
* varonce37
;
9238 val
* var38
/* : String */;
9239 char* var39
/* : NativeString */;
9240 long var40
/* : Int */;
9241 val
* var41
/* : String */;
9242 val
* var42
/* : MType */;
9243 static val
* varonce43
;
9244 val
* var44
/* : String */;
9245 char* var45
/* : NativeString */;
9246 long var46
/* : Int */;
9247 val
* var47
/* : String */;
9248 static val
* varonce48
;
9249 val
* var49
/* : String */;
9250 char* var50
/* : NativeString */;
9251 long var51
/* : Int */;
9252 val
* var52
/* : String */;
9253 val
* var53
/* : Array[Object] */;
9254 long var54
/* : Int */;
9255 val
* var55
/* : NativeArray[Object] */;
9256 val
* var56
/* : String */;
9257 val
* var57
/* : RuntimeVariable */;
9258 val
* var58
/* : String */;
9259 static val
* varonce59
;
9260 val
* var60
/* : String */;
9261 char* var61
/* : NativeString */;
9262 long var62
/* : Int */;
9263 val
* var63
/* : String */;
9264 short int var64
/* : Bool */;
9265 val
* var65
/* : MType */;
9266 short int var66
/* : Bool */;
9269 const char* var_class_name
;
9270 val
* var_valtype
/* var valtype: MClassType */;
9271 val
* var67
/* : RuntimeVariable */;
9272 val
* var_res
/* var res: RuntimeVariable */;
9273 short int var68
/* : Bool */;
9274 val
* var69
/* : AbstractCompiler */;
9275 val
* var70
/* : nullable RapidTypeAnalysis */;
9276 val
* var71
/* : null */;
9277 short int var72
/* : Bool */;
9278 short int var_73
/* var : Bool */;
9279 val
* var74
/* : AbstractCompiler */;
9280 val
* var75
/* : nullable RapidTypeAnalysis */;
9281 val
* var76
/* : HashSet[MClassType] */;
9282 short int var77
/* : Bool */;
9283 short int var78
/* : Bool */;
9284 static val
* varonce79
;
9285 val
* var80
/* : String */;
9286 char* var81
/* : NativeString */;
9287 long var82
/* : Int */;
9288 val
* var83
/* : String */;
9289 val
* var84
/* : MType */;
9290 static val
* varonce85
;
9291 val
* var86
/* : String */;
9292 char* var87
/* : NativeString */;
9293 long var88
/* : Int */;
9294 val
* var89
/* : String */;
9295 static val
* varonce90
;
9296 val
* var91
/* : String */;
9297 char* var92
/* : NativeString */;
9298 long var93
/* : Int */;
9299 val
* var94
/* : String */;
9300 val
* var95
/* : MType */;
9301 static val
* varonce96
;
9302 val
* var97
/* : String */;
9303 char* var98
/* : NativeString */;
9304 long var99
/* : Int */;
9305 val
* var100
/* : String */;
9306 val
* var101
/* : Array[Object] */;
9307 long var102
/* : Int */;
9308 val
* var103
/* : NativeArray[Object] */;
9309 val
* var104
/* : String */;
9310 static val
* varonce105
;
9311 val
* var106
/* : String */;
9312 char* var107
/* : NativeString */;
9313 long var108
/* : Int */;
9314 val
* var109
/* : String */;
9315 static val
* varonce110
;
9316 val
* var111
/* : String */;
9317 char* var112
/* : NativeString */;
9318 long var113
/* : Int */;
9319 val
* var114
/* : String */;
9320 val
* var115
/* : String */;
9321 static val
* varonce116
;
9322 val
* var117
/* : String */;
9323 char* var118
/* : NativeString */;
9324 long var119
/* : Int */;
9325 val
* var120
/* : String */;
9326 static val
* varonce121
;
9327 val
* var122
/* : String */;
9328 char* var123
/* : NativeString */;
9329 long var124
/* : Int */;
9330 val
* var125
/* : String */;
9331 val
* var126
/* : MType */;
9332 static val
* varonce127
;
9333 val
* var128
/* : String */;
9334 char* var129
/* : NativeString */;
9335 long var130
/* : Int */;
9336 val
* var131
/* : String */;
9337 static val
* varonce132
;
9338 val
* var133
/* : String */;
9339 char* var134
/* : NativeString */;
9340 long var135
/* : Int */;
9341 val
* var136
/* : String */;
9342 val
* var137
/* : Array[Object] */;
9343 long var138
/* : Int */;
9344 val
* var139
/* : NativeArray[Object] */;
9345 val
* var140
/* : String */;
9346 val
* var141
/* : RuntimeVariable */;
9347 val
* var_res142
/* var res: RuntimeVariable */;
9348 static val
* varonce143
;
9349 val
* var144
/* : String */;
9350 char* var145
/* : NativeString */;
9351 long var146
/* : Int */;
9352 val
* var147
/* : String */;
9353 static val
* varonce148
;
9354 val
* var149
/* : String */;
9355 char* var150
/* : NativeString */;
9356 long var151
/* : Int */;
9357 val
* var152
/* : String */;
9358 val
* var153
/* : MType */;
9359 static val
* varonce154
;
9360 val
* var155
/* : String */;
9361 char* var156
/* : NativeString */;
9362 long var157
/* : Int */;
9363 val
* var158
/* : String */;
9364 static val
* varonce159
;
9365 val
* var160
/* : String */;
9366 char* var161
/* : NativeString */;
9367 long var162
/* : Int */;
9368 val
* var163
/* : String */;
9369 val
* var164
/* : Array[Object] */;
9370 long var165
/* : Int */;
9371 val
* var166
/* : NativeArray[Object] */;
9372 val
* var167
/* : String */;
9373 static val
* varonce168
;
9374 val
* var169
/* : String */;
9375 char* var170
/* : NativeString */;
9376 long var171
/* : Int */;
9377 val
* var172
/* : String */;
9378 val
* var173
/* : MType */;
9379 static val
* varonce174
;
9380 val
* var175
/* : String */;
9381 char* var176
/* : NativeString */;
9382 long var177
/* : Int */;
9383 val
* var178
/* : String */;
9384 static val
* varonce179
;
9385 val
* var180
/* : String */;
9386 char* var181
/* : NativeString */;
9387 long var182
/* : Int */;
9388 val
* var183
/* : String */;
9389 val
* var184
/* : Array[Object] */;
9390 long var185
/* : Int */;
9391 val
* var186
/* : NativeArray[Object] */;
9392 val
* var187
/* : String */;
9395 var1
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9396 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var1
, var_mtype
) /* == on <var1:MType>*/;
9401 var4
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9402 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var4
) /* ctype on <var4:MType>*/;
9408 var9
= string__NativeString__to_s_with_length(var7
, var8
);
9412 var10
= ((short int (*)(val
*, val
*))(var5
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var5
, var6
) /* == on <var5:String>*/;
9415 var11
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
9421 var16
= string__NativeString__to_s_with_length(var14
, var15
);
9425 var17
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var11
, var13
) /* == on <var11:String>*/;
9434 var18
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9435 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var18
) /* ctype on <var18:MType>*/;
9441 var24
= string__NativeString__to_s_with_length(var22
, var23
);
9445 var25
= ((short int (*)(val
*, val
*))(var19
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var19
, var21
) /* == on <var19:String>*/;
9450 var28
= "((struct instance_";
9452 var30
= string__NativeString__to_s_with_length(var28
, var29
);
9456 var31
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
9462 var36
= string__NativeString__to_s_with_length(var34
, var35
);
9469 var39
= ")->value; /* autounbox from ";
9471 var41
= string__NativeString__to_s_with_length(var39
, var40
);
9475 var42
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9481 var47
= string__NativeString__to_s_with_length(var45
, var46
);
9490 var52
= string__NativeString__to_s_with_length(var50
, var51
);
9494 var53
= NEW_array__Array(&type_array__Arraykernel__Object
);
9495 { /* var53 = array_instance Array[Object] */
9497 var55
= NEW_array__NativeArray(var54
, &type_array__NativeArraykernel__Object
);
9498 ((struct instance_array__NativeArray
*)var55
)->values
[0] = (val
*) var27
;
9499 ((struct instance_array__NativeArray
*)var55
)->values
[1] = (val
*) var31
;
9500 ((struct instance_array__NativeArray
*)var55
)->values
[2] = (val
*) var33
;
9501 ((struct instance_array__NativeArray
*)var55
)->values
[3] = (val
*) var_value
;
9502 ((struct instance_array__NativeArray
*)var55
)->values
[4] = (val
*) var38
;
9503 ((struct instance_array__NativeArray
*)var55
)->values
[5] = (val
*) var42
;
9504 ((struct instance_array__NativeArray
*)var55
)->values
[6] = (val
*) var44
;
9505 ((struct instance_array__NativeArray
*)var55
)->values
[7] = (val
*) var_mtype
;
9506 ((struct instance_array__NativeArray
*)var55
)->values
[8] = (val
*) var49
;
9507 ((void (*)(val
*, val
*, long))(var53
->class->vft
[COLOR_array__Array__with_native
]))(var53
, var55
, var54
) /* with_native on <var53:Array[Object]>*/;
9509 var56
= ((val
* (*)(val
*))(var53
->class->vft
[COLOR_string__Object__to_s
]))(var53
) /* to_s on <var53:Array[Object]>*/;
9510 var57
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var56
, var_mtype
) /* new_expr on <self:SeparateCompilerVisitor>*/;
9514 var58
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
9520 var63
= string__NativeString__to_s_with_length(var61
, var62
);
9524 var64
= ((short int (*)(val
*, val
*))(var58
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var58
, var60
) /* == on <var58:String>*/;
9526 var65
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9527 /* <var65:MType> isa MClassType */
9528 cltype
= type_model__MClassType
.color
;
9529 idtype
= type_model__MClassType
.id
;
9530 if(cltype
>= var65
->type
->table_size
) {
9533 var66
= var65
->type
->type_table
[cltype
] == idtype
;
9536 var_class_name
= var65
== NULL ?
"null" : var65
->type
->name
;
9537 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
9538 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 930);
9541 var_valtype
= var65
;
9542 var67
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_mtype
) /* new_var on <self:SeparateCompilerVisitor>*/;
9544 var69
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateCompilerVisitor>*/;
9545 var70
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(var69
) /* runtime_type_analysis on <var69:AbstractCompiler(SeparateCompiler)>*/;
9547 if (var70
== NULL
) {
9548 var72
= 0; /* is null */
9550 var72
= 1; /* arg is null and recv is not */
9554 var74
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateCompilerVisitor>*/;
9555 var75
= ((val
* (*)(val
*))(var74
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(var74
) /* runtime_type_analysis on <var74:AbstractCompiler(SeparateCompiler)>*/;
9556 if (var75
== NULL
) {
9557 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
9558 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 932);
9561 var76
= ((val
* (*)(val
*))(var75
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var75
) /* live_types on <var75:nullable RapidTypeAnalysis>*/;
9563 var77
= ((short int (*)(val
*, val
*))(var76
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var76
, var_valtype
) /* has on <var76:HashSet[MClassType]>*/;
9573 var81
= "/*no autobox from ";
9575 var83
= string__NativeString__to_s_with_length(var81
, var82
);
9579 var84
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9585 var89
= string__NativeString__to_s_with_length(var87
, var88
);
9594 var94
= string__NativeString__to_s_with_length(var92
, var93
);
9598 var95
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9602 var98
= " is not live! */";
9604 var100
= string__NativeString__to_s_with_length(var98
, var99
);
9608 var101
= NEW_array__Array(&type_array__Arraykernel__Object
);
9609 { /* var101 = array_instance Array[Object] */
9611 var103
= NEW_array__NativeArray(var102
, &type_array__NativeArraykernel__Object
);
9612 ((struct instance_array__NativeArray
*)var103
)->values
[0] = (val
*) var80
;
9613 ((struct instance_array__NativeArray
*)var103
)->values
[1] = (val
*) var84
;
9614 ((struct instance_array__NativeArray
*)var103
)->values
[2] = (val
*) var86
;
9615 ((struct instance_array__NativeArray
*)var103
)->values
[3] = (val
*) var_mtype
;
9616 ((struct instance_array__NativeArray
*)var103
)->values
[4] = (val
*) var91
;
9617 ((struct instance_array__NativeArray
*)var103
)->values
[5] = (val
*) var95
;
9618 ((struct instance_array__NativeArray
*)var103
)->values
[6] = (val
*) var97
;
9619 ((void (*)(val
*, val
*, long))(var101
->class->vft
[COLOR_array__Array__with_native
]))(var101
, var103
, var102
) /* with_native on <var101:Array[Object]>*/;
9621 var104
= ((val
* (*)(val
*))(var101
->class->vft
[COLOR_string__Object__to_s
]))(var101
) /* to_s on <var101:Array[Object]>*/;
9622 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var104
) /* add on <self:SeparateCompilerVisitor>*/;
9624 var106
= varonce105
;
9626 var107
= "printf(\"Dead code executed!\\n\"); show_backtrace(1);";
9628 var109
= string__NativeString__to_s_with_length(var107
, var108
);
9630 varonce105
= var106
;
9632 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var106
) /* add on <self:SeparateCompilerVisitor>*/;
9638 var111
= varonce110
;
9642 var114
= string__NativeString__to_s_with_length(var112
, var113
);
9644 varonce110
= var111
;
9646 var115
= ((val
* (*)(val
*))(var_valtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_valtype
) /* c_name on <var_valtype:MClassType>*/;
9648 var117
= varonce116
;
9652 var120
= string__NativeString__to_s_with_length(var118
, var119
);
9654 varonce116
= var117
;
9657 var122
= varonce121
;
9659 var123
= "); /* autobox from ";
9661 var125
= string__NativeString__to_s_with_length(var123
, var124
);
9663 varonce121
= var122
;
9665 var126
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9667 var128
= varonce127
;
9671 var131
= string__NativeString__to_s_with_length(var129
, var130
);
9673 varonce127
= var128
;
9676 var133
= varonce132
;
9680 var136
= string__NativeString__to_s_with_length(var134
, var135
);
9682 varonce132
= var133
;
9684 var137
= NEW_array__Array(&type_array__Arraykernel__Object
);
9685 { /* var137 = array_instance Array[Object] */
9687 var139
= NEW_array__NativeArray(var138
, &type_array__NativeArraykernel__Object
);
9688 ((struct instance_array__NativeArray
*)var139
)->values
[0] = (val
*) var_res
;
9689 ((struct instance_array__NativeArray
*)var139
)->values
[1] = (val
*) var111
;
9690 ((struct instance_array__NativeArray
*)var139
)->values
[2] = (val
*) var115
;
9691 ((struct instance_array__NativeArray
*)var139
)->values
[3] = (val
*) var117
;
9692 ((struct instance_array__NativeArray
*)var139
)->values
[4] = (val
*) var_value
;
9693 ((struct instance_array__NativeArray
*)var139
)->values
[5] = (val
*) var122
;
9694 ((struct instance_array__NativeArray
*)var139
)->values
[6] = (val
*) var126
;
9695 ((struct instance_array__NativeArray
*)var139
)->values
[7] = (val
*) var128
;
9696 ((struct instance_array__NativeArray
*)var139
)->values
[8] = (val
*) var_mtype
;
9697 ((struct instance_array__NativeArray
*)var139
)->values
[9] = (val
*) var133
;
9698 ((void (*)(val
*, val
*, long))(var137
->class->vft
[COLOR_array__Array__with_native
]))(var137
, var139
, var138
) /* with_native on <var137:Array[Object]>*/;
9700 var140
= ((val
* (*)(val
*))(var137
->class->vft
[COLOR_string__Object__to_s
]))(var137
) /* to_s on <var137:Array[Object]>*/;
9701 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var140
) /* add on <self:SeparateCompilerVisitor>*/;
9705 var141
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(self
, var_mtype
) /* new_var on <self:SeparateCompilerVisitor>*/;
9706 var_res142
= var141
;
9708 var144
= varonce143
;
9712 var147
= string__NativeString__to_s_with_length(var145
, var146
);
9714 varonce143
= var144
;
9717 var149
= varonce148
;
9719 var150
= " left unintialized (cannot convert ";
9721 var152
= string__NativeString__to_s_with_length(var150
, var151
);
9723 varonce148
= var149
;
9725 var153
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9727 var155
= varonce154
;
9731 var158
= string__NativeString__to_s_with_length(var156
, var157
);
9733 varonce154
= var155
;
9736 var160
= varonce159
;
9740 var163
= string__NativeString__to_s_with_length(var161
, var162
);
9742 varonce159
= var160
;
9744 var164
= NEW_array__Array(&type_array__Arraykernel__Object
);
9745 { /* var164 = array_instance Array[Object] */
9747 var166
= NEW_array__NativeArray(var165
, &type_array__NativeArraykernel__Object
);
9748 ((struct instance_array__NativeArray
*)var166
)->values
[0] = (val
*) var144
;
9749 ((struct instance_array__NativeArray
*)var166
)->values
[1] = (val
*) var_res142
;
9750 ((struct instance_array__NativeArray
*)var166
)->values
[2] = (val
*) var149
;
9751 ((struct instance_array__NativeArray
*)var166
)->values
[3] = (val
*) var153
;
9752 ((struct instance_array__NativeArray
*)var166
)->values
[4] = (val
*) var155
;
9753 ((struct instance_array__NativeArray
*)var166
)->values
[5] = (val
*) var_mtype
;
9754 ((struct instance_array__NativeArray
*)var166
)->values
[6] = (val
*) var160
;
9755 ((void (*)(val
*, val
*, long))(var164
->class->vft
[COLOR_array__Array__with_native
]))(var164
, var166
, var165
) /* with_native on <var164:Array[Object]>*/;
9757 var167
= ((val
* (*)(val
*))(var164
->class->vft
[COLOR_string__Object__to_s
]))(var164
) /* to_s on <var164:Array[Object]>*/;
9758 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var167
) /* add on <self:SeparateCompilerVisitor>*/;
9760 var169
= varonce168
;
9762 var170
= "printf(\"Cast error: Cannot cast %s to %s.\\n\", \"";
9764 var172
= string__NativeString__to_s_with_length(var170
, var171
);
9766 varonce168
= var169
;
9768 var173
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9770 var175
= varonce174
;
9774 var178
= string__NativeString__to_s_with_length(var176
, var177
);
9776 varonce174
= var175
;
9779 var180
= varonce179
;
9781 var181
= "\"); show_backtrace(1);";
9783 var183
= string__NativeString__to_s_with_length(var181
, var182
);
9785 varonce179
= var180
;
9787 var184
= NEW_array__Array(&type_array__Arraykernel__Object
);
9788 { /* var184 = array_instance Array[Object] */
9790 var186
= NEW_array__NativeArray(var185
, &type_array__NativeArraykernel__Object
);
9791 ((struct instance_array__NativeArray
*)var186
)->values
[0] = (val
*) var169
;
9792 ((struct instance_array__NativeArray
*)var186
)->values
[1] = (val
*) var173
;
9793 ((struct instance_array__NativeArray
*)var186
)->values
[2] = (val
*) var175
;
9794 ((struct instance_array__NativeArray
*)var186
)->values
[3] = (val
*) var_mtype
;
9795 ((struct instance_array__NativeArray
*)var186
)->values
[4] = (val
*) var180
;
9796 ((void (*)(val
*, val
*, long))(var184
->class->vft
[COLOR_array__Array__with_native
]))(var184
, var186
, var185
) /* with_native on <var184:Array[Object]>*/;
9798 var187
= ((val
* (*)(val
*))(var184
->class->vft
[COLOR_string__Object__to_s
]))(var184
) /* to_s on <var184:Array[Object]>*/;
9799 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var187
) /* add on <self:SeparateCompilerVisitor>*/;
9809 /* method separate_compiler#SeparateCompilerVisitor#autobox for (self: Object, RuntimeVariable, MType): RuntimeVariable */
9810 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__autobox(val
* self
, val
* p0
, val
* p1
) {
9811 val
* var
/* : RuntimeVariable */;
9812 val
* var1
/* : RuntimeVariable */;
9813 var1
= separate_compiler__SeparateCompilerVisitor__autobox(self
, p0
, p1
);
9818 /* method separate_compiler#SeparateCompilerVisitor#type_info for (self: SeparateCompilerVisitor, RuntimeVariable): String */
9819 val
* separate_compiler__SeparateCompilerVisitor__type_info(val
* self
, val
* p0
) {
9820 val
* var
/* : String */;
9821 val
* var_value
/* var value: RuntimeVariable */;
9822 val
* var1
/* : MType */;
9823 val
* var2
/* : String */;
9824 static val
* varonce
;
9825 val
* var3
/* : String */;
9826 char* var4
/* : NativeString */;
9827 long var5
/* : Int */;
9828 val
* var6
/* : String */;
9829 short int var7
/* : Bool */;
9830 val
* var8
/* : Array[Object] */;
9831 long var9
/* : Int */;
9832 val
* var_
/* var : Array[Object] */;
9833 static val
* varonce10
;
9834 val
* var11
/* : String */;
9835 char* var12
/* : NativeString */;
9836 long var13
/* : Int */;
9837 val
* var14
/* : String */;
9838 static val
* varonce15
;
9839 val
* var16
/* : String */;
9840 char* var17
/* : NativeString */;
9841 long var18
/* : Int */;
9842 val
* var19
/* : String */;
9843 val
* var20
/* : String */;
9844 static val
* varonce21
;
9845 val
* var22
/* : String */;
9846 char* var23
/* : NativeString */;
9847 long var24
/* : Int */;
9848 val
* var25
/* : String */;
9849 val
* var26
/* : MType */;
9850 val
* var27
/* : String */;
9851 val
* var28
/* : Array[Object] */;
9852 long var29
/* : Int */;
9853 val
* var30
/* : NativeArray[Object] */;
9854 val
* var31
/* : String */;
9855 val
* var32
/* : Array[Object] */;
9856 long var33
/* : Int */;
9857 val
* var_34
/* var : Array[Object] */;
9858 static val
* varonce35
;
9859 val
* var36
/* : String */;
9860 char* var37
/* : NativeString */;
9861 long var38
/* : Int */;
9862 val
* var39
/* : String */;
9863 val
* var40
/* : MType */;
9864 val
* var41
/* : String */;
9865 static val
* varonce42
;
9866 val
* var43
/* : String */;
9867 char* var44
/* : NativeString */;
9868 long var45
/* : Int */;
9869 val
* var46
/* : String */;
9870 val
* var47
/* : String */;
9872 var1
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9873 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var1
) /* ctype on <var1:MType>*/;
9879 var6
= string__NativeString__to_s_with_length(var4
, var5
);
9883 var7
= ((short int (*)(val
*, val
*))(var2
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var2
, var3
) /* == on <var2:String>*/;
9885 var8
= NEW_array__Array(&type_array__Arraykernel__Object
);
9887 ((void (*)(val
*, long))(var8
->class->vft
[COLOR_array__Array__with_capacity
]))(var8
, var9
) /* with_capacity on <var8:Array[Object]>*/;
9894 var14
= string__NativeString__to_s_with_length(var12
, var13
);
9898 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var11
) /* add on <var_:Array[Object]>*/;
9899 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var_value
) /* add on <var_:Array[Object]>*/;
9905 var19
= string__NativeString__to_s_with_length(var17
, var18
);
9909 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var16
) /* add on <var_:Array[Object]>*/;
9910 var20
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
9919 var25
= string__NativeString__to_s_with_length(var23
, var24
);
9923 var26
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9924 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var26
) /* c_name on <var26:MType>*/;
9925 var28
= NEW_array__Array(&type_array__Arraykernel__Object
);
9926 { /* var28 = array_instance Array[Object] */
9928 var30
= NEW_array__NativeArray(var29
, &type_array__NativeArraykernel__Object
);
9929 ((struct instance_array__NativeArray
*)var30
)->values
[0] = (val
*) var22
;
9930 ((struct instance_array__NativeArray
*)var30
)->values
[1] = (val
*) var27
;
9931 ((void (*)(val
*, val
*, long))(var28
->class->vft
[COLOR_array__Array__with_native
]))(var28
, var30
, var29
) /* with_native on <var28:Array[Object]>*/;
9933 var31
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_string__Object__to_s
]))(var28
) /* to_s on <var28:Array[Object]>*/;
9934 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(self
, var31
) /* require_declaration on <self:SeparateCompilerVisitor>*/;
9935 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
9937 ((void (*)(val
*, long))(var32
->class->vft
[COLOR_array__Array__with_capacity
]))(var32
, var33
) /* with_capacity on <var32:Array[Object]>*/;
9944 var39
= string__NativeString__to_s_with_length(var37
, var38
);
9948 ((void (*)(val
*, val
*))(var_34
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_34
, var36
) /* add on <var_34:Array[Object]>*/;
9949 var40
= ((val
* (*)(val
*))(var_value
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_value
) /* mtype on <var_value:RuntimeVariable>*/;
9950 var41
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var40
) /* c_name on <var40:MType>*/;
9951 ((void (*)(val
*, val
*))(var_34
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_34
, var41
) /* add on <var_34:Array[Object]>*/;
9957 var46
= string__NativeString__to_s_with_length(var44
, var45
);
9961 ((void (*)(val
*, val
*))(var_34
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_34
, var43
) /* add on <var_34:Array[Object]>*/;
9962 var47
= ((val
* (*)(val
*))(var_34
->class->vft
[COLOR_string__Object__to_s
]))(var_34
) /* to_s on <var_34:Array[Object]>*/;
9969 /* method separate_compiler#SeparateCompilerVisitor#type_info for (self: Object, RuntimeVariable): String */
9970 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__type_info(val
* self
, val
* p0
) {
9971 val
* var
/* : String */;
9972 val
* var1
/* : String */;
9973 var1
= separate_compiler__SeparateCompilerVisitor__type_info(self
, p0
);