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", 24);
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", 26);
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", 28);
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", 30);
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", 32);
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", 34);
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", 36);
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", 38);
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", 40);
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]>*/;
355 CHECK_NEW_array__Array(var2
);
357 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var
, var2
) /* add_option on <var:OptionContext>*/;
358 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
359 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_no_inline_intern
]))(self
) /* opt_no_inline_intern on <self:ToolContext>*/;
360 var7
= NEW_array__Array(&type_array__Arrayopts__Option
);
361 { /* var7 = array_instance Array[Option] */
363 var9
= NEW_array__NativeArray(var8
, &type_array__NativeArrayopts__Option
);
364 ((struct instance_array__NativeArray
*)var9
)->values
[0] = (val
*) var6
;
365 ((void (*)(val
*, val
*, long))(var7
->class->vft
[COLOR_array__Array__with_native
]))(var7
, var9
, var8
) /* with_native on <var7:Array[Option]>*/;
366 CHECK_NEW_array__Array(var7
);
368 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var5
, var7
) /* add_option on <var5:OptionContext>*/;
369 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
370 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_no_union_attribute
]))(self
) /* opt_no_union_attribute on <self:ToolContext>*/;
371 var12
= NEW_array__Array(&type_array__Arrayopts__Option
);
372 { /* var12 = array_instance Array[Option] */
374 var14
= NEW_array__NativeArray(var13
, &type_array__NativeArrayopts__Option
);
375 ((struct instance_array__NativeArray
*)var14
)->values
[0] = (val
*) var11
;
376 ((void (*)(val
*, val
*, long))(var12
->class->vft
[COLOR_array__Array__with_native
]))(var12
, var14
, var13
) /* with_native on <var12:Array[Option]>*/;
377 CHECK_NEW_array__Array(var12
);
379 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var10
, var12
) /* add_option on <var10:OptionContext>*/;
380 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
381 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_no_shortcut_equate
]))(self
) /* opt_no_shortcut_equate on <self:ToolContext>*/;
382 var17
= NEW_array__Array(&type_array__Arrayopts__Option
);
383 { /* var17 = array_instance Array[Option] */
385 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArrayopts__Option
);
386 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var16
;
387 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Option]>*/;
388 CHECK_NEW_array__Array(var17
);
390 ((void (*)(val
*, val
*))(var15
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var15
, var17
) /* add_option on <var15:OptionContext>*/;
391 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
392 var21
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_inline_coloring_numbers
]))(self
) /* opt_inline_coloring_numbers on <self:ToolContext>*/;
393 var22
= NEW_array__Array(&type_array__Arrayopts__Option
);
394 { /* var22 = array_instance Array[Option] */
396 var24
= NEW_array__NativeArray(var23
, &type_array__NativeArrayopts__Option
);
397 ((struct instance_array__NativeArray
*)var24
)->values
[0] = (val
*) var21
;
398 ((void (*)(val
*, val
*, long))(var22
->class->vft
[COLOR_array__Array__with_native
]))(var22
, var24
, var23
) /* with_native on <var22:Array[Option]>*/;
399 CHECK_NEW_array__Array(var22
);
401 ((void (*)(val
*, val
*))(var20
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var20
, var22
) /* add_option on <var20:OptionContext>*/;
402 var25
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
403 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_bm_typing
]))(self
) /* opt_bm_typing on <self:ToolContext>*/;
404 var27
= NEW_array__Array(&type_array__Arrayopts__Option
);
405 { /* var27 = array_instance Array[Option] */
407 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArrayopts__Option
);
408 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var26
;
409 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Option]>*/;
410 CHECK_NEW_array__Array(var27
);
412 ((void (*)(val
*, val
*))(var25
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var25
, var27
) /* add_option on <var25:OptionContext>*/;
413 var30
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
414 var31
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(self
) /* opt_phmod_typing on <self:ToolContext>*/;
415 var32
= NEW_array__Array(&type_array__Arrayopts__Option
);
416 { /* var32 = array_instance Array[Option] */
418 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArrayopts__Option
);
419 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var31
;
420 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Option]>*/;
421 CHECK_NEW_array__Array(var32
);
423 ((void (*)(val
*, val
*))(var30
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var30
, var32
) /* add_option on <var30:OptionContext>*/;
424 var35
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
425 var36
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(self
) /* opt_phand_typing on <self:ToolContext>*/;
426 var37
= NEW_array__Array(&type_array__Arrayopts__Option
);
427 { /* var37 = array_instance Array[Option] */
429 var39
= NEW_array__NativeArray(var38
, &type_array__NativeArrayopts__Option
);
430 ((struct instance_array__NativeArray
*)var39
)->values
[0] = (val
*) var36
;
431 ((void (*)(val
*, val
*, long))(var37
->class->vft
[COLOR_array__Array__with_native
]))(var37
, var39
, var38
) /* with_native on <var37:Array[Option]>*/;
432 CHECK_NEW_array__Array(var37
);
434 ((void (*)(val
*, val
*))(var35
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var35
, var37
) /* add_option on <var35:OptionContext>*/;
435 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_toolcontext__ToolContext__option_context
]))(self
) /* option_context on <self:ToolContext>*/;
436 var41
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__opt_tables_metrics
]))(self
) /* opt_tables_metrics on <self:ToolContext>*/;
437 var42
= NEW_array__Array(&type_array__Arrayopts__Option
);
438 { /* var42 = array_instance Array[Option] */
440 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArrayopts__Option
);
441 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var41
;
442 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Option]>*/;
443 CHECK_NEW_array__Array(var42
);
445 ((void (*)(val
*, val
*))(var40
->class->vft
[COLOR_opts__OptionContext__add_option
]))(var40
, var42
) /* add_option on <var40:OptionContext>*/;
448 /* method separate_compiler#ToolContext#init for (self: Object) */
449 void VIRTUAL_separate_compiler__ToolContext__init(val
* self
) {
450 separate_compiler__ToolContext__init(self
);
453 /* method separate_compiler#ModelBuilder#run_separate_compiler for (self: ModelBuilder, MModule, RapidTypeAnalysis) */
454 void separate_compiler__ModelBuilder__run_separate_compiler(val
* self
, val
* p0
, val
* p1
) {
455 val
* var_mainmodule
/* var mainmodule: MModule */;
456 val
* var_runtime_type_analysis
/* var runtime_type_analysis: RapidTypeAnalysis */;
457 long var
/* : Int */;
458 long var_time0
/* var time0: Int */;
459 val
* var1
/* : ToolContext */;
461 val
* var2
/* : String */;
462 char* var3
/* : NativeString */;
463 long var4
/* : Int */;
464 val
* var5
/* : String */;
465 long var6
/* : Int */;
466 val
* var7
/* : SeparateCompiler */;
467 val
* var_compiler
/* var compiler: SeparateCompiler */;
468 val
* var8
/* : ToolContext */;
469 static val
* varonce9
;
470 val
* var10
/* : String */;
471 char* var11
/* : NativeString */;
472 long var12
/* : Int */;
473 val
* var13
/* : String */;
474 long var14
/* : Int */;
475 val
* var15
/* : String */;
476 static val
* varonce16
;
477 val
* var17
/* : String */;
478 char* var18
/* : NativeString */;
479 long var19
/* : Int */;
480 val
* var20
/* : String */;
481 val
* var21
/* : Array[Object] */;
482 long var22
/* : Int */;
483 val
* var23
/* : NativeArray[Object] */;
484 val
* var24
/* : String */;
485 val
* var25
/* : CodeFile */;
486 val
* var26
/* : POSetElement[MModule] */;
487 val
* var27
/* : Collection[Object] */;
488 val
* var28
/* : Iterator[nullable Object] */;
489 short int var29
/* : Bool */;
490 val
* var30
/* : nullable Object */;
491 val
* var_m
/* var m: MModule */;
492 val
* var31
/* : Array[MClass] */;
493 val
* var32
/* : Iterator[nullable Object] */;
494 short int var33
/* : Bool */;
495 val
* var34
/* : nullable Object */;
496 val
* var_mclass
/* var mclass: MClass */;
497 short int var35
/* : Bool */;
498 val
* var36
/* : MClassKind */;
499 val
* var37
/* : MClassKind */;
500 short int var38
/* : Bool */;
501 short int var_
/* var : Bool */;
502 val
* var39
/* : MClassKind */;
503 val
* var40
/* : MClassKind */;
504 short int var41
/* : Bool */;
505 val
* var43
/* : String */;
506 static val
* varonce44
;
507 val
* var45
/* : String */;
508 char* var46
/* : NativeString */;
509 long var47
/* : Int */;
510 val
* var48
/* : String */;
511 val
* var49
/* : Array[Object] */;
512 long var50
/* : Int */;
513 val
* var51
/* : NativeArray[Object] */;
514 val
* var52
/* : String */;
515 val
* var53
/* : CodeFile */;
516 val
* var54
/* : POSetElement[MModule] */;
517 val
* var55
/* : Collection[Object] */;
518 val
* var56
/* : Iterator[nullable Object] */;
519 short int var57
/* : Bool */;
520 val
* var58
/* : nullable Object */;
521 val
* var_m59
/* var m: MModule */;
522 val
* var60
/* : ToolContext */;
523 static val
* varonce61
;
524 val
* var62
/* : String */;
525 char* var63
/* : NativeString */;
526 long var64
/* : Int */;
527 val
* var65
/* : String */;
528 val
* var66
/* : Array[Object] */;
529 long var67
/* : Int */;
530 val
* var68
/* : NativeArray[Object] */;
531 val
* var69
/* : String */;
532 long var70
/* : Int */;
533 val
* var71
/* : String */;
534 static val
* varonce72
;
535 val
* var73
/* : String */;
536 char* var74
/* : NativeString */;
537 long var75
/* : Int */;
538 val
* var76
/* : String */;
539 val
* var77
/* : Array[Object] */;
540 long var78
/* : Int */;
541 val
* var79
/* : NativeArray[Object] */;
542 val
* var80
/* : String */;
543 val
* var81
/* : CodeFile */;
544 val
* var83
/* : ToolContext */;
545 static val
* varonce84
;
546 val
* var85
/* : String */;
547 char* var86
/* : NativeString */;
548 long var87
/* : Int */;
549 val
* var88
/* : String */;
550 long var89
/* : Int */;
551 val
* var90
/* : String */;
552 static val
* varonce91
;
553 val
* var92
/* : String */;
554 char* var93
/* : NativeString */;
555 long var94
/* : Int */;
556 val
* var95
/* : String */;
557 val
* var96
/* : Array[Object] */;
558 long var97
/* : Int */;
559 val
* var98
/* : NativeArray[Object] */;
560 val
* var99
/* : String */;
561 val
* var100
/* : CodeFile */;
562 val
* var101
/* : POSet[MType] */;
563 val
* var_mtypes
/* var mtypes: POSet[MType] */;
564 val
* var102
/* : Iterator[nullable Object] */;
565 short int var103
/* : Bool */;
566 val
* var104
/* : nullable Object */;
567 val
* var_t
/* var t: MType */;
568 long var106
/* : Int */;
569 long var_time1
/* var time1: Int */;
570 val
* var107
/* : ToolContext */;
571 static val
* varonce108
;
572 val
* var109
/* : String */;
573 char* var110
/* : NativeString */;
574 long var111
/* : Int */;
575 val
* var112
/* : String */;
576 long var113
/* : Int */;
577 long var115
/* : Int */;
578 static val
* varonce116
;
579 val
* var117
/* : String */;
580 char* var118
/* : NativeString */;
581 long var119
/* : Int */;
582 val
* var120
/* : String */;
583 val
* var121
/* : Array[Object] */;
584 long var122
/* : Int */;
585 val
* var123
/* : NativeArray[Object] */;
586 val
* var124
/* : Object */;
587 val
* var125
/* : String */;
588 long var126
/* : Int */;
590 var_runtime_type_analysis
= p1
;
591 var
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
593 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
597 var3
= "*** GENERATING C ***";
599 var5
= string__NativeString__to_s_with_length(var3
, var4
);
604 ((void (*)(val
*, val
*, long))(var1
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var1
, var2
, var6
) /* info on <var1:ToolContext>*/;
605 var7
= NEW_separate_compiler__SeparateCompiler(&type_separate_compiler__SeparateCompiler
);
606 ((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>*/;
607 CHECK_NEW_separate_compiler__SeparateCompiler(var7
);
609 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_header
]))(var_compiler
) /* compile_header on <var_compiler:SeparateCompiler>*/;
610 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
614 var11
= "Property coloring";
616 var13
= string__NativeString__to_s_with_length(var11
, var12
);
621 ((void (*)(val
*, val
*, long))(var8
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var8
, var10
, var14
) /* info on <var8:ToolContext>*/;
622 var15
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_model_base__MModule__name
]))(var_mainmodule
) /* name on <var_mainmodule:MModule>*/;
628 var20
= string__NativeString__to_s_with_length(var18
, var19
);
632 var21
= NEW_array__Array(&type_array__Arraykernel__Object
);
633 { /* var21 = array_instance Array[Object] */
635 var23
= NEW_array__NativeArray(var22
, &type_array__NativeArraykernel__Object
);
636 ((struct instance_array__NativeArray
*)var23
)->values
[0] = (val
*) var15
;
637 ((struct instance_array__NativeArray
*)var23
)->values
[1] = (val
*) var17
;
638 ((void (*)(val
*, val
*, long))(var21
->class->vft
[COLOR_array__Array__with_native
]))(var21
, var23
, var22
) /* with_native on <var21:Array[Object]>*/;
639 CHECK_NEW_array__Array(var21
);
641 var24
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_string__Object__to_s
]))(var21
) /* to_s on <var21:Array[Object]>*/;
642 var25
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var24
) /* new_file on <var_compiler:SeparateCompiler>*/;
644 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__do_property_coloring
]))(var_compiler
) /* do_property_coloring on <var_compiler:SeparateCompiler>*/;
645 var26
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_model_base__MModule__in_importation
]))(var_mainmodule
) /* in_importation on <var_mainmodule:MModule>*/;
646 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var26
) /* greaters on <var26:POSetElement[MModule]>*/;
647 var28
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var27
) /* iterator on <var27:Collection[Object](Collection[MModule])>*/;
649 var29
= ((short int (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var28
) /* is_ok on <var28:Iterator[nullable Object]>*/;
651 var30
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var28
) /* item on <var28:Iterator[nullable Object]>*/;
653 var31
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MModule__intro_mclasses
]))(var_m
) /* intro_mclasses on <var_m:MModule>*/;
654 var32
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var31
) /* iterator on <var31:Array[MClass]>*/;
656 var33
= ((short int (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var32
) /* is_ok on <var32:Iterator[nullable Object]>*/;
658 var34
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var32
) /* item on <var32:Iterator[nullable Object]>*/;
660 var36
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__kind
]))(var_mclass
) /* kind on <var_mclass:MClass>*/;
661 var37
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__abstract_kind
]))(self
) /* abstract_kind on <self:ModelBuilder>*/;
662 var38
= ((short int (*)(val
*, val
*))(var36
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var36
, var37
) /* == on <var36:MClassKind>*/;
667 var39
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__kind
]))(var_mclass
) /* kind on <var_mclass:MClass>*/;
668 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__interface_kind
]))(self
) /* interface_kind on <self:ModelBuilder>*/;
669 var41
= ((short int (*)(val
*, val
*))(var39
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var39
, var40
) /* == on <var39:MClassKind>*/;
676 ((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>*/;
677 CONTINUE_label
: (void)0;
678 ((void (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var32
) /* next on <var32:Iterator[nullable Object]>*/;
680 BREAK_label
: (void)0;
681 CONTINUE_label42
: (void)0;
682 ((void (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var28
) /* next on <var28:Iterator[nullable Object]>*/;
684 BREAK_label42
: (void)0;
685 var43
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_model_base__MModule__name
]))(var_mainmodule
) /* name on <var_mainmodule:MModule>*/;
691 var48
= string__NativeString__to_s_with_length(var46
, var47
);
695 var49
= NEW_array__Array(&type_array__Arraykernel__Object
);
696 { /* var49 = array_instance Array[Object] */
698 var51
= NEW_array__NativeArray(var50
, &type_array__NativeArraykernel__Object
);
699 ((struct instance_array__NativeArray
*)var51
)->values
[0] = (val
*) var43
;
700 ((struct instance_array__NativeArray
*)var51
)->values
[1] = (val
*) var45
;
701 ((void (*)(val
*, val
*, long))(var49
->class->vft
[COLOR_array__Array__with_native
]))(var49
, var51
, var50
) /* with_native on <var49:Array[Object]>*/;
702 CHECK_NEW_array__Array(var49
);
704 var52
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_string__Object__to_s
]))(var49
) /* to_s on <var49:Array[Object]>*/;
705 var53
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var52
) /* new_file on <var_compiler:SeparateCompiler>*/;
707 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__compile_main_function
]))(var_compiler
) /* compile_main_function on <var_compiler:SeparateCompiler>*/;
708 var54
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_model_base__MModule__in_importation
]))(var_mainmodule
) /* in_importation on <var_mainmodule:MModule>*/;
709 var55
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var54
) /* greaters on <var54:POSetElement[MModule]>*/;
710 var56
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var55
) /* iterator on <var55:Collection[Object](Collection[MModule])>*/;
712 var57
= ((short int (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var56
) /* is_ok on <var56:Iterator[nullable Object]>*/;
714 var58
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var56
) /* item on <var56:Iterator[nullable Object]>*/;
716 var60
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
720 var63
= "Generate C for module ";
722 var65
= string__NativeString__to_s_with_length(var63
, var64
);
726 var66
= NEW_array__Array(&type_array__Arraykernel__Object
);
727 { /* var66 = array_instance Array[Object] */
729 var68
= NEW_array__NativeArray(var67
, &type_array__NativeArraykernel__Object
);
730 ((struct instance_array__NativeArray
*)var68
)->values
[0] = (val
*) var62
;
731 ((struct instance_array__NativeArray
*)var68
)->values
[1] = (val
*) var_m59
;
732 ((void (*)(val
*, val
*, long))(var66
->class->vft
[COLOR_array__Array__with_native
]))(var66
, var68
, var67
) /* with_native on <var66:Array[Object]>*/;
733 CHECK_NEW_array__Array(var66
);
735 var69
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_string__Object__to_s
]))(var66
) /* to_s on <var66:Array[Object]>*/;
737 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var60
, var69
, var70
) /* info on <var60:ToolContext>*/;
738 var71
= ((val
* (*)(val
*))(var_m59
->class->vft
[COLOR_model_base__MModule__name
]))(var_m59
) /* name on <var_m59:MModule>*/;
744 var76
= string__NativeString__to_s_with_length(var74
, var75
);
748 var77
= NEW_array__Array(&type_array__Arraykernel__Object
);
749 { /* var77 = array_instance Array[Object] */
751 var79
= NEW_array__NativeArray(var78
, &type_array__NativeArraykernel__Object
);
752 ((struct instance_array__NativeArray
*)var79
)->values
[0] = (val
*) var71
;
753 ((struct instance_array__NativeArray
*)var79
)->values
[1] = (val
*) var73
;
754 ((void (*)(val
*, val
*, long))(var77
->class->vft
[COLOR_array__Array__with_native
]))(var77
, var79
, var78
) /* with_native on <var77:Array[Object]>*/;
755 CHECK_NEW_array__Array(var77
);
757 var80
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_string__Object__to_s
]))(var77
) /* to_s on <var77:Array[Object]>*/;
758 var81
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var80
) /* new_file on <var_compiler:SeparateCompiler>*/;
760 ((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>*/;
761 CONTINUE_label82
: (void)0;
762 ((void (*)(val
*))(var56
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var56
) /* next on <var56:Iterator[nullable Object]>*/;
764 BREAK_label82
: (void)0;
765 var83
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
769 var86
= "Type coloring";
771 var88
= string__NativeString__to_s_with_length(var86
, var87
);
776 ((void (*)(val
*, val
*, long))(var83
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var83
, var85
, var89
) /* info on <var83:ToolContext>*/;
777 var90
= ((val
* (*)(val
*))(var_mainmodule
->class->vft
[COLOR_model_base__MModule__name
]))(var_mainmodule
) /* name on <var_mainmodule:MModule>*/;
783 var95
= string__NativeString__to_s_with_length(var93
, var94
);
787 var96
= NEW_array__Array(&type_array__Arraykernel__Object
);
788 { /* var96 = array_instance Array[Object] */
790 var98
= NEW_array__NativeArray(var97
, &type_array__NativeArraykernel__Object
);
791 ((struct instance_array__NativeArray
*)var98
)->values
[0] = (val
*) var90
;
792 ((struct instance_array__NativeArray
*)var98
)->values
[1] = (val
*) var92
;
793 ((void (*)(val
*, val
*, long))(var96
->class->vft
[COLOR_array__Array__with_native
]))(var96
, var98
, var97
) /* with_native on <var96:Array[Object]>*/;
794 CHECK_NEW_array__Array(var96
);
796 var99
= ((val
* (*)(val
*))(var96
->class->vft
[COLOR_string__Object__to_s
]))(var96
) /* to_s on <var96:Array[Object]>*/;
797 var100
= ((val
* (*)(val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(var_compiler
, var99
) /* new_file on <var_compiler:SeparateCompiler>*/;
799 var101
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__do_type_coloring
]))(var_compiler
) /* do_type_coloring on <var_compiler:SeparateCompiler>*/;
801 var102
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mtypes
) /* iterator on <var_mtypes:POSet[MType]>*/;
803 var103
= ((short int (*)(val
*))(var102
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var102
) /* is_ok on <var102:Iterator[nullable Object]>*/;
805 var104
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var102
) /* item on <var102:Iterator[nullable Object]>*/;
807 ((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>*/;
808 CONTINUE_label105
: (void)0;
809 ((void (*)(val
*))(var102
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var102
) /* next on <var102:Iterator[nullable Object]>*/;
811 BREAK_label105
: (void)0;
812 ((void (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__display_stats
]))(var_compiler
) /* display_stats on <var_compiler:SeparateCompiler>*/;
813 var106
= ((long (*)(val
*))(self
->class->vft
[COLOR_time__Object__get_time
]))(self
) /* get_time on <self:ModelBuilder>*/;
815 var107
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(self
) /* toolcontext on <self:ModelBuilder>*/;
819 var110
= "*** END GENERATING C: ";
821 var112
= string__NativeString__to_s_with_length(var110
, var111
);
825 { /* Inline kernel#Int#- (var_time1,var_time0) */
826 var115
= var_time1
- var_time0
;
829 RET_LABEL114
:(void)0;
836 var120
= string__NativeString__to_s_with_length(var118
, var119
);
840 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
841 { /* var121 = array_instance Array[Object] */
843 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
844 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var109
;
845 var124
= BOX_kernel__Int(var113
); /* autobox from Int to Object */
846 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var124
;
847 ((struct instance_array__NativeArray
*)var123
)->values
[2] = (val
*) var117
;
848 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
849 CHECK_NEW_array__Array(var121
);
851 var125
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
853 ((void (*)(val
*, val
*, long))(var107
->class->vft
[COLOR_toolcontext__ToolContext__info
]))(var107
, var125
, var126
) /* info on <var107:ToolContext>*/;
854 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__ModelBuilder__write_and_make
]))(self
, var_compiler
) /* write_and_make on <self:ModelBuilder>*/;
857 /* method separate_compiler#ModelBuilder#run_separate_compiler for (self: Object, MModule, RapidTypeAnalysis) */
858 void VIRTUAL_separate_compiler__ModelBuilder__run_separate_compiler(val
* self
, val
* p0
, val
* p1
) {
859 separate_compiler__ModelBuilder__run_separate_compiler(self
, p0
, p1
);
862 /* method separate_compiler#SeparateCompiler#runtime_type_analysis for (self: SeparateCompiler): RapidTypeAnalysis */
863 val
* separate_compiler__SeparateCompiler__runtime_type_analysis(val
* self
) {
864 val
* var
/* : RapidTypeAnalysis */;
865 val
* var1
/* : RapidTypeAnalysis */;
866 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64druntime_type_analysis
].val
; /* @runtime_type_analysis on <self:SeparateCompiler> */
868 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @runtime_type_analysis");
869 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 111);
876 /* method separate_compiler#SeparateCompiler#runtime_type_analysis for (self: Object): RapidTypeAnalysis */
877 val
* VIRTUAL_separate_compiler__SeparateCompiler__runtime_type_analysis(val
* self
) {
878 val
* var
/* : RapidTypeAnalysis */;
879 val
* var1
/* : RapidTypeAnalysis */;
880 var1
= separate_compiler__SeparateCompiler__runtime_type_analysis(self
);
885 /* method separate_compiler#SeparateCompiler#runtime_type_analysis= for (self: SeparateCompiler, RapidTypeAnalysis) */
886 void separate_compiler__SeparateCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
887 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64druntime_type_analysis
].val
= p0
; /* @runtime_type_analysis on <self:SeparateCompiler> */
890 /* method separate_compiler#SeparateCompiler#runtime_type_analysis= for (self: Object, RapidTypeAnalysis) */
891 void VIRTUAL_separate_compiler__SeparateCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
892 separate_compiler__SeparateCompiler__runtime_type_analysis_61d(self
, p0
);
895 /* method separate_compiler#SeparateCompiler#undead_types for (self: SeparateCompiler): Set[MType] */
896 val
* separate_compiler__SeparateCompiler__undead_types(val
* self
) {
897 val
* var
/* : Set[MType] */;
898 val
* var1
/* : Set[MType] */;
899 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dundead_types
].val
; /* @undead_types on <self:SeparateCompiler> */
901 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @undead_types");
902 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 114);
909 /* method separate_compiler#SeparateCompiler#undead_types for (self: Object): Set[MType] */
910 val
* VIRTUAL_separate_compiler__SeparateCompiler__undead_types(val
* self
) {
911 val
* var
/* : Set[MType] */;
912 val
* var1
/* : Set[MType] */;
913 var1
= separate_compiler__SeparateCompiler__undead_types(self
);
918 /* method separate_compiler#SeparateCompiler#undead_types= for (self: SeparateCompiler, Set[MType]) */
919 void separate_compiler__SeparateCompiler__undead_types_61d(val
* self
, val
* p0
) {
920 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dundead_types
].val
= p0
; /* @undead_types on <self:SeparateCompiler> */
923 /* method separate_compiler#SeparateCompiler#undead_types= for (self: Object, Set[MType]) */
924 void VIRTUAL_separate_compiler__SeparateCompiler__undead_types_61d(val
* self
, val
* p0
) {
925 separate_compiler__SeparateCompiler__undead_types_61d(self
, p0
);
928 /* method separate_compiler#SeparateCompiler#partial_types for (self: SeparateCompiler): Set[MType] */
929 val
* separate_compiler__SeparateCompiler__partial_types(val
* self
) {
930 val
* var
/* : Set[MType] */;
931 val
* var1
/* : Set[MType] */;
932 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dpartial_types
].val
; /* @partial_types on <self:SeparateCompiler> */
934 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @partial_types");
935 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 115);
942 /* method separate_compiler#SeparateCompiler#partial_types for (self: Object): Set[MType] */
943 val
* VIRTUAL_separate_compiler__SeparateCompiler__partial_types(val
* self
) {
944 val
* var
/* : Set[MType] */;
945 val
* var1
/* : Set[MType] */;
946 var1
= separate_compiler__SeparateCompiler__partial_types(self
);
951 /* method separate_compiler#SeparateCompiler#partial_types= for (self: SeparateCompiler, Set[MType]) */
952 void separate_compiler__SeparateCompiler__partial_types_61d(val
* self
, val
* p0
) {
953 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dpartial_types
].val
= p0
; /* @partial_types on <self:SeparateCompiler> */
956 /* method separate_compiler#SeparateCompiler#partial_types= for (self: Object, Set[MType]) */
957 void VIRTUAL_separate_compiler__SeparateCompiler__partial_types_61d(val
* self
, val
* p0
) {
958 separate_compiler__SeparateCompiler__partial_types_61d(self
, p0
);
961 /* method separate_compiler#SeparateCompiler#live_unresolved_types for (self: SeparateCompiler): Map[MClassDef, Set[MType]] */
962 val
* separate_compiler__SeparateCompiler__live_unresolved_types(val
* self
) {
963 val
* var
/* : Map[MClassDef, Set[MType]] */;
964 val
* var1
/* : Map[MClassDef, Set[MType]] */;
965 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dlive_unresolved_types
].val
; /* @live_unresolved_types on <self:SeparateCompiler> */
967 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @live_unresolved_types");
968 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 116);
975 /* method separate_compiler#SeparateCompiler#live_unresolved_types for (self: Object): Map[MClassDef, Set[MType]] */
976 val
* VIRTUAL_separate_compiler__SeparateCompiler__live_unresolved_types(val
* self
) {
977 val
* var
/* : Map[MClassDef, Set[MType]] */;
978 val
* var1
/* : Map[MClassDef, Set[MType]] */;
979 var1
= separate_compiler__SeparateCompiler__live_unresolved_types(self
);
984 /* method separate_compiler#SeparateCompiler#live_unresolved_types= for (self: SeparateCompiler, Map[MClassDef, Set[MType]]) */
985 void separate_compiler__SeparateCompiler__live_unresolved_types_61d(val
* self
, val
* p0
) {
986 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dlive_unresolved_types
].val
= p0
; /* @live_unresolved_types on <self:SeparateCompiler> */
989 /* method separate_compiler#SeparateCompiler#live_unresolved_types= for (self: Object, Map[MClassDef, Set[MType]]) */
990 void VIRTUAL_separate_compiler__SeparateCompiler__live_unresolved_types_61d(val
* self
, val
* p0
) {
991 separate_compiler__SeparateCompiler__live_unresolved_types_61d(self
, p0
);
994 /* method separate_compiler#SeparateCompiler#type_layout for (self: SeparateCompiler): nullable Layout[MType] */
995 val
* separate_compiler__SeparateCompiler__type_layout(val
* self
) {
996 val
* var
/* : nullable Layout[MType] */;
997 val
* var1
/* : nullable Layout[MType] */;
998 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dtype_layout
].val
; /* @type_layout on <self:SeparateCompiler> */
1003 /* method separate_compiler#SeparateCompiler#type_layout for (self: Object): nullable Layout[MType] */
1004 val
* VIRTUAL_separate_compiler__SeparateCompiler__type_layout(val
* self
) {
1005 val
* var
/* : nullable Layout[MType] */;
1006 val
* var1
/* : nullable Layout[MType] */;
1007 var1
= separate_compiler__SeparateCompiler__type_layout(self
);
1012 /* method separate_compiler#SeparateCompiler#type_layout= for (self: SeparateCompiler, nullable Layout[MType]) */
1013 void separate_compiler__SeparateCompiler__type_layout_61d(val
* self
, val
* p0
) {
1014 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dtype_layout
].val
= p0
; /* @type_layout on <self:SeparateCompiler> */
1017 /* method separate_compiler#SeparateCompiler#type_layout= for (self: Object, nullable Layout[MType]) */
1018 void VIRTUAL_separate_compiler__SeparateCompiler__type_layout_61d(val
* self
, val
* p0
) {
1019 separate_compiler__SeparateCompiler__type_layout_61d(self
, p0
);
1022 /* method separate_compiler#SeparateCompiler#resolution_layout for (self: SeparateCompiler): nullable Layout[MType] */
1023 val
* separate_compiler__SeparateCompiler__resolution_layout(val
* self
) {
1024 val
* var
/* : nullable Layout[MType] */;
1025 val
* var1
/* : nullable Layout[MType] */;
1026 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dresolution_layout
].val
; /* @resolution_layout on <self:SeparateCompiler> */
1031 /* method separate_compiler#SeparateCompiler#resolution_layout for (self: Object): nullable Layout[MType] */
1032 val
* VIRTUAL_separate_compiler__SeparateCompiler__resolution_layout(val
* self
) {
1033 val
* var
/* : nullable Layout[MType] */;
1034 val
* var1
/* : nullable Layout[MType] */;
1035 var1
= separate_compiler__SeparateCompiler__resolution_layout(self
);
1040 /* method separate_compiler#SeparateCompiler#resolution_layout= for (self: SeparateCompiler, nullable Layout[MType]) */
1041 void separate_compiler__SeparateCompiler__resolution_layout_61d(val
* self
, val
* p0
) {
1042 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dresolution_layout
].val
= p0
; /* @resolution_layout on <self:SeparateCompiler> */
1045 /* method separate_compiler#SeparateCompiler#resolution_layout= for (self: Object, nullable Layout[MType]) */
1046 void VIRTUAL_separate_compiler__SeparateCompiler__resolution_layout_61d(val
* self
, val
* p0
) {
1047 separate_compiler__SeparateCompiler__resolution_layout_61d(self
, p0
);
1050 /* method separate_compiler#SeparateCompiler#method_layout for (self: SeparateCompiler): nullable Layout[PropertyLayoutElement] */
1051 val
* separate_compiler__SeparateCompiler__method_layout(val
* self
) {
1052 val
* var
/* : nullable Layout[PropertyLayoutElement] */;
1053 val
* var1
/* : nullable Layout[PropertyLayoutElement] */;
1054 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dmethod_layout
].val
; /* @method_layout on <self:SeparateCompiler> */
1059 /* method separate_compiler#SeparateCompiler#method_layout for (self: Object): nullable Layout[PropertyLayoutElement] */
1060 val
* VIRTUAL_separate_compiler__SeparateCompiler__method_layout(val
* self
) {
1061 val
* var
/* : nullable Layout[PropertyLayoutElement] */;
1062 val
* var1
/* : nullable Layout[PropertyLayoutElement] */;
1063 var1
= separate_compiler__SeparateCompiler__method_layout(self
);
1068 /* method separate_compiler#SeparateCompiler#method_layout= for (self: SeparateCompiler, nullable Layout[PropertyLayoutElement]) */
1069 void separate_compiler__SeparateCompiler__method_layout_61d(val
* self
, val
* p0
) {
1070 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dmethod_layout
].val
= p0
; /* @method_layout on <self:SeparateCompiler> */
1073 /* method separate_compiler#SeparateCompiler#method_layout= for (self: Object, nullable Layout[PropertyLayoutElement]) */
1074 void VIRTUAL_separate_compiler__SeparateCompiler__method_layout_61d(val
* self
, val
* p0
) {
1075 separate_compiler__SeparateCompiler__method_layout_61d(self
, p0
);
1078 /* method separate_compiler#SeparateCompiler#attr_layout for (self: SeparateCompiler): nullable Layout[MAttribute] */
1079 val
* separate_compiler__SeparateCompiler__attr_layout(val
* self
) {
1080 val
* var
/* : nullable Layout[MAttribute] */;
1081 val
* var1
/* : nullable Layout[MAttribute] */;
1082 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dattr_layout
].val
; /* @attr_layout on <self:SeparateCompiler> */
1087 /* method separate_compiler#SeparateCompiler#attr_layout for (self: Object): nullable Layout[MAttribute] */
1088 val
* VIRTUAL_separate_compiler__SeparateCompiler__attr_layout(val
* self
) {
1089 val
* var
/* : nullable Layout[MAttribute] */;
1090 val
* var1
/* : nullable Layout[MAttribute] */;
1091 var1
= separate_compiler__SeparateCompiler__attr_layout(self
);
1096 /* method separate_compiler#SeparateCompiler#attr_layout= for (self: SeparateCompiler, nullable Layout[MAttribute]) */
1097 void separate_compiler__SeparateCompiler__attr_layout_61d(val
* self
, val
* p0
) {
1098 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dattr_layout
].val
= p0
; /* @attr_layout on <self:SeparateCompiler> */
1101 /* method separate_compiler#SeparateCompiler#attr_layout= for (self: Object, nullable Layout[MAttribute]) */
1102 void VIRTUAL_separate_compiler__SeparateCompiler__attr_layout_61d(val
* self
, val
* p0
) {
1103 separate_compiler__SeparateCompiler__attr_layout_61d(self
, p0
);
1106 /* method separate_compiler#SeparateCompiler#init for (self: SeparateCompiler, MModule, ModelBuilder, RapidTypeAnalysis) */
1107 void separate_compiler__SeparateCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1108 val
* var_mainmodule
/* var mainmodule: MModule */;
1109 val
* var_mmbuilder
/* var mmbuilder: ModelBuilder */;
1110 val
* var_runtime_type_analysis
/* var runtime_type_analysis: RapidTypeAnalysis */;
1111 static val
* varonce
;
1112 val
* var
/* : String */;
1113 char* var1
/* : NativeString */;
1114 long var2
/* : Int */;
1115 val
* var3
/* : String */;
1116 val
* var4
/* : CodeFile */;
1117 val
* var_file
/* var file: CodeFile */;
1118 val
* var5
/* : CodeWriter */;
1119 var_mainmodule
= p0
;
1121 var_runtime_type_analysis
= p2
;
1122 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__init
]))(self
, var_mainmodule
, var_mmbuilder
) /* init on <self:SeparateCompiler>*/;
1126 var1
= "nit.common";
1128 var3
= string__NativeString__to_s_with_length(var1
, var2
);
1132 var4
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_file
]))(self
, var
) /* new_file on <self:SeparateCompiler>*/;
1134 var5
= NEW_abstract_compiler__CodeWriter(&type_abstract_compiler__CodeWriter
);
1135 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_compiler__CodeWriter__init
]))(var5
, var_file
) /* init on <var5:CodeWriter>*/;
1136 CHECK_NEW_abstract_compiler__CodeWriter(var5
);
1137 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header_61d
]))(self
, var5
) /* header= on <self:SeparateCompiler>*/;
1138 ((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>*/;
1139 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_box_kinds
]))(self
) /* compile_box_kinds on <self:SeparateCompiler>*/;
1142 /* method separate_compiler#SeparateCompiler#init for (self: Object, MModule, ModelBuilder, RapidTypeAnalysis) */
1143 void VIRTUAL_separate_compiler__SeparateCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1144 separate_compiler__SeparateCompiler__init(self
, p0
, p1
, p2
);
1147 /* method separate_compiler#SeparateCompiler#compile_header_structs for (self: SeparateCompiler) */
1148 void separate_compiler__SeparateCompiler__compile_header_structs(val
* self
) {
1149 val
* var
/* : CodeWriter */;
1150 static val
* varonce
;
1151 val
* var1
/* : String */;
1152 char* var2
/* : NativeString */;
1153 long var3
/* : Int */;
1154 val
* var4
/* : String */;
1155 val
* var5
/* : CodeWriter */;
1156 static val
* varonce6
;
1157 val
* var7
/* : String */;
1158 char* var8
/* : NativeString */;
1159 long var9
/* : Int */;
1160 val
* var10
/* : String */;
1161 val
* var11
/* : CodeWriter */;
1162 static val
* varonce12
;
1163 val
* var13
/* : String */;
1164 char* var14
/* : NativeString */;
1165 long var15
/* : Int */;
1166 val
* var16
/* : String */;
1167 val
* var17
/* : CodeWriter */;
1168 static val
* varonce18
;
1169 val
* var19
/* : String */;
1170 char* var20
/* : NativeString */;
1171 long var21
/* : Int */;
1172 val
* var22
/* : String */;
1173 short int var23
/* : Bool */;
1174 val
* var24
/* : ModelBuilder */;
1175 val
* var25
/* : ToolContext */;
1176 val
* var26
/* : OptionBool */;
1177 val
* var27
/* : nullable Object */;
1178 short int var28
/* : Bool */;
1179 short int var_
/* var : Bool */;
1180 val
* var29
/* : ModelBuilder */;
1181 val
* var30
/* : ToolContext */;
1182 val
* var31
/* : OptionBool */;
1183 val
* var32
/* : nullable Object */;
1184 short int var33
/* : Bool */;
1185 val
* var34
/* : CodeWriter */;
1186 static val
* varonce35
;
1187 val
* var36
/* : String */;
1188 char* var37
/* : NativeString */;
1189 long var38
/* : Int */;
1190 val
* var39
/* : String */;
1191 val
* var40
/* : CodeWriter */;
1192 static val
* varonce41
;
1193 val
* var42
/* : String */;
1194 char* var43
/* : NativeString */;
1195 long var44
/* : Int */;
1196 val
* var45
/* : String */;
1197 val
* var46
/* : ModelBuilder */;
1198 val
* var47
/* : ToolContext */;
1199 val
* var48
/* : OptionBool */;
1200 val
* var49
/* : nullable Object */;
1201 short int var50
/* : Bool */;
1202 val
* var51
/* : CodeWriter */;
1203 static val
* varonce52
;
1204 val
* var53
/* : String */;
1205 char* var54
/* : NativeString */;
1206 long var55
/* : Int */;
1207 val
* var56
/* : String */;
1208 val
* var57
/* : ModelBuilder */;
1209 val
* var58
/* : ToolContext */;
1210 val
* var59
/* : OptionBool */;
1211 val
* var60
/* : nullable Object */;
1212 short int var61
/* : Bool */;
1213 val
* var62
/* : CodeWriter */;
1214 static val
* varonce63
;
1215 val
* var64
/* : String */;
1216 char* var65
/* : NativeString */;
1217 long var66
/* : Int */;
1218 val
* var67
/* : String */;
1219 val
* var68
/* : CodeWriter */;
1220 static val
* varonce69
;
1221 val
* var70
/* : String */;
1222 char* var71
/* : NativeString */;
1223 long var72
/* : Int */;
1224 val
* var73
/* : String */;
1225 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1229 var2
= "typedef void(*nitmethod_t)(void); /* general C type representing a Nit method. */";
1231 var4
= string__NativeString__to_s_with_length(var2
, var3
);
1235 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var
, var1
) /* add_decl on <var:CodeWriter>*/;
1236 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_header_attribute_structs
]))(self
) /* compile_header_attribute_structs on <self:SeparateCompiler>*/;
1237 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1241 var8
= "struct class { int box_kind; nitmethod_t vft[]; }; /* general C type representing a Nit class. */";
1243 var10
= string__NativeString__to_s_with_length(var8
, var9
);
1247 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var5
, var7
) /* add_decl on <var5:CodeWriter>*/;
1248 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1252 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. */";
1254 var16
= string__NativeString__to_s_with_length(var14
, var15
);
1258 ((void (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var11
, var13
) /* add_decl on <var11:CodeWriter>*/;
1259 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1263 var20
= "struct instance { const struct type *type; const struct class *class; nitattribute_t attrs[]; }; /* general C type representing a Nit instance. */";
1265 var22
= string__NativeString__to_s_with_length(var20
, var21
);
1269 ((void (*)(val
*, val
*))(var17
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var17
, var19
) /* add_decl on <var17:CodeWriter>*/;
1270 var24
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
1271 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var24
) /* toolcontext on <var24:ModelBuilder>*/;
1272 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var25
) /* opt_phmod_typing on <var25:ToolContext>*/;
1273 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_opts__Option__value
]))(var26
) /* value on <var26:OptionBool>*/;
1274 var28
= ((struct instance_kernel__Bool
*)var27
)->value
; /* autounbox from nullable Object to Bool */;
1279 var29
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
1280 var30
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var29
) /* toolcontext on <var29:ModelBuilder>*/;
1281 var31
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var30
) /* opt_phand_typing on <var30:ToolContext>*/;
1282 var32
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_opts__Option__value
]))(var31
) /* value on <var31:OptionBool>*/;
1283 var33
= ((struct instance_kernel__Bool
*)var32
)->value
; /* autounbox from nullable Object to Bool */;
1287 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1291 var37
= "struct types { int mask; const struct type *types[]; }; /* a list types (used for vts, fts and unresolved lists). */";
1293 var39
= string__NativeString__to_s_with_length(var37
, var38
);
1297 ((void (*)(val
*, val
*))(var34
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var34
, var36
) /* add_decl on <var34:CodeWriter>*/;
1299 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1303 var43
= "struct types { int dummy; const struct type *types[]; }; /* a list types (used for vts, fts and unresolved lists). */";
1305 var45
= string__NativeString__to_s_with_length(var43
, var44
);
1309 ((void (*)(val
*, val
*))(var40
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var40
, var42
) /* add_decl on <var40:CodeWriter>*/;
1311 var46
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
1312 var47
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var46
) /* toolcontext on <var46:ModelBuilder>*/;
1313 var48
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var47
) /* opt_phmod_typing on <var47:ToolContext>*/;
1314 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_opts__Option__value
]))(var48
) /* value on <var48:OptionBool>*/;
1315 var50
= ((struct instance_kernel__Bool
*)var49
)->value
; /* autounbox from nullable Object to Bool */;
1317 var51
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1321 var54
= "#define HASH(mask, id) ((mask)%(id))";
1323 var56
= string__NativeString__to_s_with_length(var54
, var55
);
1327 ((void (*)(val
*, val
*))(var51
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var51
, var53
) /* add_decl on <var51:CodeWriter>*/;
1329 var57
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
1330 var58
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var57
) /* toolcontext on <var57:ModelBuilder>*/;
1331 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var58
) /* opt_phand_typing on <var58:ToolContext>*/;
1332 var60
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_opts__Option__value
]))(var59
) /* value on <var59:OptionBool>*/;
1333 var61
= ((struct instance_kernel__Bool
*)var60
)->value
; /* autounbox from nullable Object to Bool */;
1335 var62
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1339 var65
= "#define HASH(mask, id) ((mask)&(id))";
1341 var67
= string__NativeString__to_s_with_length(var65
, var66
);
1345 ((void (*)(val
*, val
*))(var62
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var62
, var64
) /* add_decl on <var62:CodeWriter>*/;
1349 var68
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1353 var71
= "typedef struct instance val; /* general C type representing a Nit instance. */";
1355 var73
= string__NativeString__to_s_with_length(var71
, var72
);
1359 ((void (*)(val
*, val
*))(var68
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var68
, var70
) /* add_decl on <var68:CodeWriter>*/;
1362 /* method separate_compiler#SeparateCompiler#compile_header_structs for (self: Object) */
1363 void VIRTUAL_separate_compiler__SeparateCompiler__compile_header_structs(val
* self
) {
1364 separate_compiler__SeparateCompiler__compile_header_structs(self
);
1367 /* method separate_compiler#SeparateCompiler#compile_header_attribute_structs for (self: SeparateCompiler) */
1368 void separate_compiler__SeparateCompiler__compile_header_attribute_structs(val
* self
) {
1369 val
* var
/* : ModelBuilder */;
1370 val
* var1
/* : ToolContext */;
1371 val
* var2
/* : OptionBool */;
1372 val
* var3
/* : nullable Object */;
1373 short int var4
/* : Bool */;
1374 val
* var5
/* : CodeWriter */;
1375 static val
* varonce
;
1376 val
* var6
/* : String */;
1377 char* var7
/* : NativeString */;
1378 long var8
/* : Int */;
1379 val
* var9
/* : String */;
1380 val
* var10
/* : CodeWriter */;
1381 static val
* varonce11
;
1382 val
* var12
/* : String */;
1383 char* var13
/* : NativeString */;
1384 long var14
/* : Int */;
1385 val
* var15
/* : String */;
1386 val
* var16
/* : CodeWriter */;
1387 static val
* varonce17
;
1388 val
* var18
/* : String */;
1389 char* var19
/* : NativeString */;
1390 long var20
/* : Int */;
1391 val
* var21
/* : String */;
1392 val
* var22
/* : HashMap[MClass, Int] */;
1393 val
* var23
/* : MapIterator[Object, nullable Object] */;
1394 short int var24
/* : Bool */;
1395 val
* var25
/* : Object */;
1396 val
* var_c
/* var c: MClass */;
1397 val
* var26
/* : nullable Object */;
1398 long var_v
/* var v: Int */;
1399 long var27
/* : Int */;
1400 val
* var28
/* : MClassType */;
1401 val
* var_t
/* var t: MClassType */;
1402 val
* var29
/* : CodeWriter */;
1403 val
* var30
/* : String */;
1404 static val
* varonce31
;
1405 val
* var32
/* : String */;
1406 char* var33
/* : NativeString */;
1407 long var34
/* : Int */;
1408 val
* var35
/* : String */;
1409 val
* var36
/* : String */;
1410 static val
* varonce37
;
1411 val
* var38
/* : String */;
1412 char* var39
/* : NativeString */;
1413 long var40
/* : Int */;
1414 val
* var41
/* : String */;
1415 val
* var42
/* : Array[Object] */;
1416 long var43
/* : Int */;
1417 val
* var44
/* : NativeArray[Object] */;
1418 val
* var45
/* : String */;
1419 val
* var46
/* : CodeWriter */;
1420 static val
* varonce47
;
1421 val
* var48
/* : String */;
1422 char* var49
/* : NativeString */;
1423 long var50
/* : Int */;
1424 val
* var51
/* : String */;
1425 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
1426 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var
) /* toolcontext on <var:ModelBuilder>*/;
1427 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_separate_compiler__ToolContext__opt_no_union_attribute
]))(var1
) /* opt_no_union_attribute on <var1:ToolContext>*/;
1428 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_opts__Option__value
]))(var2
) /* value on <var2:OptionBool>*/;
1429 var4
= ((struct instance_kernel__Bool
*)var3
)->value
; /* autounbox from nullable Object to Bool */;
1431 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1435 var7
= "typedef void* nitattribute_t; /* general C type representing a Nit attribute. */";
1437 var9
= string__NativeString__to_s_with_length(var7
, var8
);
1441 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var5
, var6
) /* add_decl on <var5:CodeWriter>*/;
1443 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1447 var13
= "typedef union {";
1449 var15
= string__NativeString__to_s_with_length(var13
, var14
);
1453 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var10
, var12
) /* add_decl on <var10:CodeWriter>*/;
1454 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1458 var19
= "void* val;";
1460 var21
= string__NativeString__to_s_with_length(var19
, var20
);
1464 ((void (*)(val
*, val
*))(var16
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var16
, var18
) /* add_decl on <var16:CodeWriter>*/;
1465 var22
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
1466 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var22
) /* iterator on <var22:HashMap[MClass, Int]>*/;
1468 var24
= ((short int (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var23
) /* is_ok on <var23:MapIterator[Object, nullable Object]>*/;
1470 var25
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var23
) /* key on <var23:MapIterator[Object, nullable Object]>*/;
1472 var26
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var23
) /* item on <var23:MapIterator[Object, nullable Object]>*/;
1473 var27
= ((struct instance_kernel__Int
*)var26
)->value
; /* autounbox from nullable Object to Int */;
1475 var28
= ((val
* (*)(val
*))(var_c
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c
) /* mclass_type on <var_c:MClass>*/;
1477 var29
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1478 var30
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t
) /* ctype on <var_t:MClassType>*/;
1484 var35
= string__NativeString__to_s_with_length(var33
, var34
);
1488 var36
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_abstract_compiler__MType__ctypename
]))(var_t
) /* ctypename on <var_t:MClassType>*/;
1494 var41
= string__NativeString__to_s_with_length(var39
, var40
);
1498 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
1499 { /* var42 = array_instance Array[Object] */
1501 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
1502 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var30
;
1503 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var32
;
1504 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var36
;
1505 ((struct instance_array__NativeArray
*)var44
)->values
[3] = (val
*) var38
;
1506 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
1507 CHECK_NEW_array__Array(var42
);
1509 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
1510 ((void (*)(val
*, val
*))(var29
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var29
, var45
) /* add_decl on <var29:CodeWriter>*/;
1511 CONTINUE_label
: (void)0;
1512 ((void (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var23
) /* next on <var23:MapIterator[Object, nullable Object]>*/;
1514 BREAK_label
: (void)0;
1515 var46
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
1519 var49
= "} nitattribute_t; /* general C type representing a Nit attribute. */";
1521 var51
= string__NativeString__to_s_with_length(var49
, var50
);
1525 ((void (*)(val
*, val
*))(var46
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var46
, var48
) /* add_decl on <var46:CodeWriter>*/;
1529 /* method separate_compiler#SeparateCompiler#compile_header_attribute_structs for (self: Object) */
1530 void VIRTUAL_separate_compiler__SeparateCompiler__compile_header_attribute_structs(val
* self
) {
1531 separate_compiler__SeparateCompiler__compile_header_attribute_structs(self
);
1534 /* method separate_compiler#SeparateCompiler#compile_box_kinds for (self: SeparateCompiler) */
1535 void separate_compiler__SeparateCompiler__compile_box_kinds(val
* self
) {
1536 val
* var
/* : Array[String] */;
1537 long var1
/* : Int */;
1538 val
* var_
/* var : Array[String] */;
1539 static val
* varonce
;
1540 val
* var2
/* : String */;
1541 char* var3
/* : NativeString */;
1542 long var4
/* : Int */;
1543 val
* var5
/* : String */;
1544 static val
* varonce6
;
1545 val
* var7
/* : String */;
1546 char* var8
/* : NativeString */;
1547 long var9
/* : Int */;
1548 val
* var10
/* : String */;
1549 static val
* varonce11
;
1550 val
* var12
/* : String */;
1551 char* var13
/* : NativeString */;
1552 long var14
/* : Int */;
1553 val
* var15
/* : String */;
1554 static val
* varonce16
;
1555 val
* var17
/* : String */;
1556 char* var18
/* : NativeString */;
1557 long var19
/* : Int */;
1558 val
* var20
/* : String */;
1559 static val
* varonce21
;
1560 val
* var22
/* : String */;
1561 char* var23
/* : NativeString */;
1562 long var24
/* : Int */;
1563 val
* var25
/* : String */;
1564 static val
* varonce26
;
1565 val
* var27
/* : String */;
1566 char* var28
/* : NativeString */;
1567 long var29
/* : Int */;
1568 val
* var30
/* : String */;
1569 val
* var31
/* : Iterator[nullable Object] */;
1570 short int var32
/* : Bool */;
1571 val
* var33
/* : nullable Object */;
1572 val
* var_classname
/* var classname: String */;
1573 val
* var34
/* : MModule */;
1574 val
* var35
/* : Model */;
1575 val
* var36
/* : nullable Array[MClass] */;
1576 val
* var_classes
/* var classes: nullable Array[MClass] */;
1577 val
* var37
/* : null */;
1578 short int var38
/* : Bool */;
1579 long var39
/* : Int */;
1580 long var40
/* : Int */;
1581 short int var41
/* : Bool */;
1582 short int var43
/* : Bool */;
1583 static val
* varonce44
;
1584 val
* var45
/* : String */;
1585 char* var46
/* : NativeString */;
1586 long var47
/* : Int */;
1587 val
* var48
/* : String */;
1588 val
* var49
/* : String */;
1589 val
* var50
/* : HashMap[MClass, Int] */;
1590 val
* var51
/* : nullable Object */;
1591 val
* var52
/* : HashMap[MClass, Int] */;
1592 long var53
/* : Int */;
1593 long var54
/* : Int */;
1594 long var55
/* : Int */;
1595 long var57
/* : Int */;
1596 val
* var58
/* : nullable Object */;
1597 var
= NEW_array__Array(&type_array__Arraystring__String
);
1599 ((void (*)(val
*, long))(var
->class->vft
[COLOR_array__Array__with_capacity
]))(var
, var1
) /* with_capacity on <var:Array[String]>*/;
1600 CHECK_NEW_array__Array(var
);
1607 var5
= string__NativeString__to_s_with_length(var3
, var4
);
1611 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var2
) /* push on <var_:Array[String]>*/;
1617 var10
= string__NativeString__to_s_with_length(var8
, var9
);
1621 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var7
) /* push on <var_:Array[String]>*/;
1627 var15
= string__NativeString__to_s_with_length(var13
, var14
);
1631 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var12
) /* push on <var_:Array[String]>*/;
1637 var20
= string__NativeString__to_s_with_length(var18
, var19
);
1641 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var17
) /* push on <var_:Array[String]>*/;
1645 var23
= "NativeString";
1647 var25
= string__NativeString__to_s_with_length(var23
, var24
);
1651 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var22
) /* push on <var_:Array[String]>*/;
1657 var30
= string__NativeString__to_s_with_length(var28
, var29
);
1661 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var27
) /* push on <var_:Array[String]>*/;
1662 var31
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Array[String]>*/;
1664 var32
= ((short int (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var31
) /* is_ok on <var31:Iterator[nullable Object]>*/;
1666 var33
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var31
) /* item on <var31:Iterator[nullable Object]>*/;
1667 var_classname
= var33
;
1668 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
1669 var35
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_model_base__MModule__model
]))(var34
) /* model on <var34:MModule>*/;
1670 var36
= ((val
* (*)(val
*, val
*))(var35
->class->vft
[COLOR_model__Model__get_mclasses_by_name
]))(var35
, var_classname
) /* get_mclasses_by_name on <var35:Model>*/;
1671 var_classes
= var36
;
1673 if (var_classes
== NULL
) {
1674 var38
= 1; /* is null */
1676 var38
= 0; /* arg is null but recv is not */
1679 goto CONTINUE_label
;
1682 var39
= ((long (*)(val
*))(var_classes
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_classes
) /* length on <var_classes:nullable Array[MClass](Array[MClass])>*/;
1684 { /* Inline kernel#Int#== (var39,var40) */
1685 var43
= var39
== var40
;
1688 RET_LABEL42
:(void)0;
1696 var48
= string__NativeString__to_s_with_length(var46
, var47
);
1700 var49
= ((val
* (*)(val
*, val
*))(var_classes
->class->vft
[COLOR_string__Collection__join
]))(var_classes
, var45
) /* join on <var_classes:nullable Array[MClass](Array[MClass])>*/;
1701 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var49
) /* print on <self:SeparateCompiler>*/;
1702 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1703 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 177);
1706 var50
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
1707 var51
= ((val
* (*)(val
*))(var_classes
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_classes
) /* first on <var_classes:nullable Array[MClass](Array[MClass])>*/;
1708 var52
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
1709 var53
= ((long (*)(val
*))(var52
->class->vft
[COLOR_abstract_collection__MapRead__length
]))(var52
) /* length on <var52:HashMap[MClass, Int]>*/;
1711 { /* Inline kernel#Int#+ (var53,var54) */
1712 var57
= var53
+ var54
;
1715 RET_LABEL56
:(void)0;
1717 var58
= BOX_kernel__Int(var55
); /* autobox from Int to nullable Object */
1718 ((void (*)(val
*, val
*, val
*))(var50
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var50
, var51
, var58
) /* []= on <var50:HashMap[MClass, Int]>*/;
1719 CONTINUE_label
: (void)0;
1720 ((void (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var31
) /* next on <var31:Iterator[nullable Object]>*/;
1722 BREAK_label
: (void)0;
1725 /* method separate_compiler#SeparateCompiler#compile_box_kinds for (self: Object) */
1726 void VIRTUAL_separate_compiler__SeparateCompiler__compile_box_kinds(val
* self
) {
1727 separate_compiler__SeparateCompiler__compile_box_kinds(self
);
1730 /* method separate_compiler#SeparateCompiler#box_kinds for (self: SeparateCompiler): HashMap[MClass, Int] */
1731 val
* separate_compiler__SeparateCompiler__box_kinds(val
* self
) {
1732 val
* var
/* : HashMap[MClass, Int] */;
1733 val
* var1
/* : HashMap[MClass, Int] */;
1734 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dbox_kinds
].val
; /* @box_kinds on <self:SeparateCompiler> */
1736 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @box_kinds");
1737 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 182);
1744 /* method separate_compiler#SeparateCompiler#box_kinds for (self: Object): HashMap[MClass, Int] */
1745 val
* VIRTUAL_separate_compiler__SeparateCompiler__box_kinds(val
* self
) {
1746 val
* var
/* : HashMap[MClass, Int] */;
1747 val
* var1
/* : HashMap[MClass, Int] */;
1748 var1
= separate_compiler__SeparateCompiler__box_kinds(self
);
1753 /* method separate_compiler#SeparateCompiler#box_kinds= for (self: SeparateCompiler, HashMap[MClass, Int]) */
1754 void separate_compiler__SeparateCompiler__box_kinds_61d(val
* self
, val
* p0
) {
1755 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dbox_kinds
].val
= p0
; /* @box_kinds on <self:SeparateCompiler> */
1758 /* method separate_compiler#SeparateCompiler#box_kinds= for (self: Object, HashMap[MClass, Int]) */
1759 void VIRTUAL_separate_compiler__SeparateCompiler__box_kinds_61d(val
* self
, val
* p0
) {
1760 separate_compiler__SeparateCompiler__box_kinds_61d(self
, p0
);
1763 /* method separate_compiler#SeparateCompiler#box_kind_of for (self: SeparateCompiler, MClass): Int */
1764 long separate_compiler__SeparateCompiler__box_kind_of(val
* self
, val
* p0
) {
1765 long var
/* : Int */;
1766 val
* var_mclass
/* var mclass: MClass */;
1767 val
* var1
/* : MClassType */;
1768 val
* var2
/* : String */;
1769 static val
* varonce
;
1770 val
* var3
/* : String */;
1771 char* var4
/* : NativeString */;
1772 long var5
/* : Int */;
1773 val
* var6
/* : String */;
1774 short int var7
/* : Bool */;
1775 long var8
/* : Int */;
1776 val
* var9
/* : MClassKind */;
1777 val
* var10
/* : MClassKind */;
1778 short int var11
/* : Bool */;
1779 val
* var12
/* : HashMap[MClass, Int] */;
1780 val
* var13
/* : MModule */;
1781 static val
* varonce14
;
1782 val
* var15
/* : String */;
1783 char* var16
/* : NativeString */;
1784 long var17
/* : Int */;
1785 val
* var18
/* : String */;
1786 val
* var19
/* : MClass */;
1787 val
* var20
/* : nullable Object */;
1788 long var21
/* : Int */;
1789 val
* var22
/* : HashMap[MClass, Int] */;
1790 val
* var23
/* : nullable Object */;
1791 long var24
/* : Int */;
1793 var1
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:MClass>*/;
1794 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var1
) /* ctype on <var1:MClassType>*/;
1800 var6
= string__NativeString__to_s_with_length(var4
, var5
);
1804 var7
= ((short int (*)(val
*, val
*))(var2
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var2
, var3
) /* == on <var2:String>*/;
1810 var9
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__kind
]))(var_mclass
) /* kind on <var_mclass:MClass>*/;
1811 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__extern_kind
]))(self
) /* extern_kind on <self:SeparateCompiler>*/;
1812 var11
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var9
, var10
) /* == on <var9:MClassKind>*/;
1814 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
1815 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
1821 var18
= string__NativeString__to_s_with_length(var16
, var17
);
1825 var19
= ((val
* (*)(val
*, val
*))(var13
->class->vft
[COLOR_model__MModule__get_primitive_class
]))(var13
, var15
) /* get_primitive_class on <var13:MModule>*/;
1826 var20
= ((val
* (*)(val
*, val
*))(var12
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var12
, var19
) /* [] on <var12:HashMap[MClass, Int]>*/;
1827 var21
= ((struct instance_kernel__Int
*)var20
)->value
; /* autounbox from nullable Object to Int */;
1831 var22
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
1832 var23
= ((val
* (*)(val
*, val
*))(var22
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var22
, var_mclass
) /* [] on <var22:HashMap[MClass, Int]>*/;
1833 var24
= ((struct instance_kernel__Int
*)var23
)->value
; /* autounbox from nullable Object to Int */;
1841 /* method separate_compiler#SeparateCompiler#box_kind_of for (self: Object, MClass): Int */
1842 long VIRTUAL_separate_compiler__SeparateCompiler__box_kind_of(val
* self
, val
* p0
) {
1843 long var
/* : Int */;
1844 long var1
/* : Int */;
1845 var1
= separate_compiler__SeparateCompiler__box_kind_of(self
, p0
);
1850 /* method separate_compiler#SeparateCompiler#compile_color_consts for (self: SeparateCompiler, Map[Object, Int]) */
1851 void separate_compiler__SeparateCompiler__compile_color_consts(val
* self
, val
* p0
) {
1852 val
* var_colors
/* var colors: Map[Object, Int] */;
1853 val
* var
/* : AbstractCompilerVisitor */;
1854 val
* var_v
/* var v: SeparateCompilerVisitor */;
1855 val
* var1
/* : MapIterator[Object, nullable Object] */;
1856 short int var2
/* : Bool */;
1857 val
* var3
/* : Object */;
1858 val
* var_m
/* var m: Object */;
1859 val
* var4
/* : nullable Object */;
1860 long var_c
/* var c: Int */;
1861 long var5
/* : Int */;
1863 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
1865 var1
= ((val
* (*)(val
*))(var_colors
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_colors
) /* iterator on <var_colors:Map[Object, Int]>*/;
1867 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var1
) /* is_ok on <var1:MapIterator[Object, nullable Object]>*/;
1869 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var1
) /* key on <var1:MapIterator[Object, nullable Object]>*/;
1871 var4
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var1
) /* item on <var1:MapIterator[Object, nullable Object]>*/;
1872 var5
= ((struct instance_kernel__Int
*)var4
)->value
; /* autounbox from nullable Object to Int */;
1874 ((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>*/;
1875 CONTINUE_label
: (void)0;
1876 ((void (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var1
) /* next on <var1:MapIterator[Object, nullable Object]>*/;
1878 BREAK_label
: (void)0;
1881 /* method separate_compiler#SeparateCompiler#compile_color_consts for (self: Object, Map[Object, Int]) */
1882 void VIRTUAL_separate_compiler__SeparateCompiler__compile_color_consts(val
* self
, val
* p0
) {
1883 separate_compiler__SeparateCompiler__compile_color_consts(self
, p0
);
1886 /* method separate_compiler#SeparateCompiler#compile_color_const for (self: SeparateCompiler, SeparateCompilerVisitor, Object, Int) */
1887 void separate_compiler__SeparateCompiler__compile_color_const(val
* self
, val
* p0
, val
* p1
, long p2
) {
1888 val
* var_v
/* var v: SeparateCompilerVisitor */;
1889 val
* var_m
/* var m: Object */;
1890 long var_color
/* var color: Int */;
1891 val
* var
/* : HashSet[Object] */;
1892 short int var1
/* : Bool */;
1893 short int var2
/* : Bool */;
1896 val
* var3
/* : ModelBuilder */;
1897 val
* var4
/* : ToolContext */;
1898 val
* var5
/* : OptionBool */;
1899 val
* var6
/* : nullable Object */;
1900 short int var7
/* : Bool */;
1901 val
* var8
/* : String */;
1902 static val
* varonce
;
1903 val
* var9
/* : String */;
1904 char* var10
/* : NativeString */;
1905 long var11
/* : Int */;
1906 val
* var12
/* : String */;
1907 val
* var13
/* : String */;
1908 static val
* varonce14
;
1909 val
* var15
/* : String */;
1910 char* var16
/* : NativeString */;
1911 long var17
/* : Int */;
1912 val
* var18
/* : String */;
1913 val
* var19
/* : Array[Object] */;
1914 long var20
/* : Int */;
1915 val
* var21
/* : NativeArray[Object] */;
1916 val
* var22
/* : Object */;
1917 val
* var23
/* : String */;
1918 val
* var24
/* : String */;
1919 static val
* varonce25
;
1920 val
* var26
/* : String */;
1921 char* var27
/* : NativeString */;
1922 long var28
/* : Int */;
1923 val
* var29
/* : String */;
1924 val
* var30
/* : String */;
1925 static val
* varonce31
;
1926 val
* var32
/* : String */;
1927 char* var33
/* : NativeString */;
1928 long var34
/* : Int */;
1929 val
* var35
/* : String */;
1930 val
* var36
/* : Array[Object] */;
1931 long var37
/* : Int */;
1932 val
* var38
/* : NativeArray[Object] */;
1933 val
* var39
/* : String */;
1934 static val
* varonce40
;
1935 val
* var41
/* : String */;
1936 char* var42
/* : NativeString */;
1937 long var43
/* : Int */;
1938 val
* var44
/* : String */;
1939 val
* var45
/* : String */;
1940 static val
* varonce46
;
1941 val
* var47
/* : String */;
1942 char* var48
/* : NativeString */;
1943 long var49
/* : Int */;
1944 val
* var50
/* : String */;
1945 static val
* varonce51
;
1946 val
* var52
/* : String */;
1947 char* var53
/* : NativeString */;
1948 long var54
/* : Int */;
1949 val
* var55
/* : String */;
1950 val
* var56
/* : Array[Object] */;
1951 long var57
/* : Int */;
1952 val
* var58
/* : NativeArray[Object] */;
1953 val
* var59
/* : Object */;
1954 val
* var60
/* : String */;
1955 short int var61
/* : Bool */;
1958 val
* var64
/* : ModelBuilder */;
1959 val
* var65
/* : ToolContext */;
1960 val
* var66
/* : OptionBool */;
1961 val
* var67
/* : nullable Object */;
1962 short int var68
/* : Bool */;
1963 val
* var69
/* : String */;
1964 static val
* varonce70
;
1965 val
* var71
/* : String */;
1966 char* var72
/* : NativeString */;
1967 long var73
/* : Int */;
1968 val
* var74
/* : String */;
1969 val
* var75
/* : String */;
1970 static val
* varonce76
;
1971 val
* var77
/* : String */;
1972 char* var78
/* : NativeString */;
1973 long var79
/* : Int */;
1974 val
* var80
/* : String */;
1975 val
* var81
/* : Array[Object] */;
1976 long var82
/* : Int */;
1977 val
* var83
/* : NativeArray[Object] */;
1978 val
* var84
/* : Object */;
1979 val
* var85
/* : String */;
1980 val
* var86
/* : String */;
1981 static val
* varonce87
;
1982 val
* var88
/* : String */;
1983 char* var89
/* : NativeString */;
1984 long var90
/* : Int */;
1985 val
* var91
/* : String */;
1986 val
* var92
/* : String */;
1987 static val
* varonce93
;
1988 val
* var94
/* : String */;
1989 char* var95
/* : NativeString */;
1990 long var96
/* : Int */;
1991 val
* var97
/* : String */;
1992 val
* var98
/* : Array[Object] */;
1993 long var99
/* : Int */;
1994 val
* var100
/* : NativeArray[Object] */;
1995 val
* var101
/* : String */;
1996 static val
* varonce102
;
1997 val
* var103
/* : String */;
1998 char* var104
/* : NativeString */;
1999 long var105
/* : Int */;
2000 val
* var106
/* : String */;
2001 val
* var107
/* : String */;
2002 static val
* varonce108
;
2003 val
* var109
/* : String */;
2004 char* var110
/* : NativeString */;
2005 long var111
/* : Int */;
2006 val
* var112
/* : String */;
2007 static val
* varonce113
;
2008 val
* var114
/* : String */;
2009 char* var115
/* : NativeString */;
2010 long var116
/* : Int */;
2011 val
* var117
/* : String */;
2012 val
* var118
/* : Array[Object] */;
2013 long var119
/* : Int */;
2014 val
* var120
/* : NativeArray[Object] */;
2015 val
* var121
/* : Object */;
2016 val
* var122
/* : String */;
2017 short int var123
/* : Bool */;
2020 val
* var126
/* : ModelBuilder */;
2021 val
* var127
/* : ToolContext */;
2022 val
* var128
/* : OptionBool */;
2023 val
* var129
/* : nullable Object */;
2024 short int var130
/* : Bool */;
2025 val
* var131
/* : String */;
2026 static val
* varonce132
;
2027 val
* var133
/* : String */;
2028 char* var134
/* : NativeString */;
2029 long var135
/* : Int */;
2030 val
* var136
/* : String */;
2031 val
* var137
/* : String */;
2032 static val
* varonce138
;
2033 val
* var139
/* : String */;
2034 char* var140
/* : NativeString */;
2035 long var141
/* : Int */;
2036 val
* var142
/* : String */;
2037 val
* var143
/* : Array[Object] */;
2038 long var144
/* : Int */;
2039 val
* var145
/* : NativeArray[Object] */;
2040 val
* var146
/* : Object */;
2041 val
* var147
/* : String */;
2042 val
* var148
/* : String */;
2043 static val
* varonce149
;
2044 val
* var150
/* : String */;
2045 char* var151
/* : NativeString */;
2046 long var152
/* : Int */;
2047 val
* var153
/* : String */;
2048 val
* var154
/* : String */;
2049 static val
* varonce155
;
2050 val
* var156
/* : String */;
2051 char* var157
/* : NativeString */;
2052 long var158
/* : Int */;
2053 val
* var159
/* : String */;
2054 val
* var160
/* : Array[Object] */;
2055 long var161
/* : Int */;
2056 val
* var162
/* : NativeArray[Object] */;
2057 val
* var163
/* : String */;
2058 static val
* varonce164
;
2059 val
* var165
/* : String */;
2060 char* var166
/* : NativeString */;
2061 long var167
/* : Int */;
2062 val
* var168
/* : String */;
2063 val
* var169
/* : String */;
2064 static val
* varonce170
;
2065 val
* var171
/* : String */;
2066 char* var172
/* : NativeString */;
2067 long var173
/* : Int */;
2068 val
* var174
/* : String */;
2069 static val
* varonce175
;
2070 val
* var176
/* : String */;
2071 char* var177
/* : NativeString */;
2072 long var178
/* : Int */;
2073 val
* var179
/* : String */;
2074 val
* var180
/* : Array[Object] */;
2075 long var181
/* : Int */;
2076 val
* var182
/* : NativeArray[Object] */;
2077 val
* var183
/* : Object */;
2078 val
* var184
/* : String */;
2079 val
* var185
/* : HashSet[Object] */;
2083 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__color_consts_done
]))(self
) /* color_consts_done on <self:SeparateCompiler>*/;
2084 var1
= ((short int (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var
, var_m
) /* has on <var:HashSet[Object]>*/;
2089 /* <var_m:Object> isa MProperty */
2090 cltype
= type_model__MProperty
.color
;
2091 idtype
= type_model__MProperty
.id
;
2092 if(cltype
>= var_m
->type
->table_size
) {
2095 var2
= var_m
->type
->type_table
[cltype
] == idtype
;
2098 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
2099 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var3
) /* toolcontext on <var3:ModelBuilder>*/;
2100 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_separate_compiler__ToolContext__opt_inline_coloring_numbers
]))(var4
) /* opt_inline_coloring_numbers on <var4:ToolContext>*/;
2101 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_opts__Option__value
]))(var5
) /* value on <var5:OptionBool>*/;
2102 var7
= ((struct instance_kernel__Bool
*)var6
)->value
; /* autounbox from nullable Object to Bool */;
2104 var8
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var_m
) /* const_color on <var_m:Object(MProperty)>*/;
2110 var12
= string__NativeString__to_s_with_length(var10
, var11
);
2114 var13
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var_m
) /* const_color on <var_m:Object(MProperty)>*/;
2120 var18
= string__NativeString__to_s_with_length(var16
, var17
);
2124 var19
= NEW_array__Array(&type_array__Arraykernel__Object
);
2125 { /* var19 = array_instance Array[Object] */
2127 var21
= NEW_array__NativeArray(var20
, &type_array__NativeArraykernel__Object
);
2128 ((struct instance_array__NativeArray
*)var21
)->values
[0] = (val
*) var9
;
2129 ((struct instance_array__NativeArray
*)var21
)->values
[1] = (val
*) var13
;
2130 ((struct instance_array__NativeArray
*)var21
)->values
[2] = (val
*) var15
;
2131 var22
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2132 ((struct instance_array__NativeArray
*)var21
)->values
[3] = (val
*) var22
;
2133 ((void (*)(val
*, val
*, long))(var19
->class->vft
[COLOR_array__Array__with_native
]))(var19
, var21
, var20
) /* with_native on <var19:Array[Object]>*/;
2134 CHECK_NEW_array__Array(var19
);
2136 var23
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_string__Object__to_s
]))(var19
) /* to_s on <var19:Array[Object]>*/;
2137 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var8
, var23
) /* provide_declaration on <self:SeparateCompiler>*/;
2139 var24
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var_m
) /* const_color on <var_m:Object(MProperty)>*/;
2143 var27
= "extern const int ";
2145 var29
= string__NativeString__to_s_with_length(var27
, var28
);
2149 var30
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var_m
) /* const_color on <var_m:Object(MProperty)>*/;
2155 var35
= string__NativeString__to_s_with_length(var33
, var34
);
2159 var36
= NEW_array__Array(&type_array__Arraykernel__Object
);
2160 { /* var36 = array_instance Array[Object] */
2162 var38
= NEW_array__NativeArray(var37
, &type_array__NativeArraykernel__Object
);
2163 ((struct instance_array__NativeArray
*)var38
)->values
[0] = (val
*) var26
;
2164 ((struct instance_array__NativeArray
*)var38
)->values
[1] = (val
*) var30
;
2165 ((struct instance_array__NativeArray
*)var38
)->values
[2] = (val
*) var32
;
2166 ((void (*)(val
*, val
*, long))(var36
->class->vft
[COLOR_array__Array__with_native
]))(var36
, var38
, var37
) /* with_native on <var36:Array[Object]>*/;
2167 CHECK_NEW_array__Array(var36
);
2169 var39
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_string__Object__to_s
]))(var36
) /* to_s on <var36:Array[Object]>*/;
2170 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var24
, var39
) /* provide_declaration on <self:SeparateCompiler>*/;
2174 var42
= "const int ";
2176 var44
= string__NativeString__to_s_with_length(var42
, var43
);
2180 var45
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MProperty__const_color
]))(var_m
) /* const_color on <var_m:Object(MProperty)>*/;
2186 var50
= string__NativeString__to_s_with_length(var48
, var49
);
2195 var55
= string__NativeString__to_s_with_length(var53
, var54
);
2199 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
2200 { /* var56 = array_instance Array[Object] */
2202 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
2203 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var41
;
2204 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var45
;
2205 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var47
;
2206 var59
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2207 ((struct instance_array__NativeArray
*)var58
)->values
[3] = (val
*) var59
;
2208 ((struct instance_array__NativeArray
*)var58
)->values
[4] = (val
*) var52
;
2209 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
2210 CHECK_NEW_array__Array(var56
);
2212 var60
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
2213 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var60
) /* add on <var_v:SeparateCompilerVisitor>*/;
2216 /* <var_m:Object> isa MPropDef */
2217 cltype62
= type_model__MPropDef
.color
;
2218 idtype63
= type_model__MPropDef
.id
;
2219 if(cltype62
>= var_m
->type
->table_size
) {
2222 var61
= var_m
->type
->type_table
[cltype62
] == idtype63
;
2225 var64
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
2226 var65
= ((val
* (*)(val
*))(var64
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var64
) /* toolcontext on <var64:ModelBuilder>*/;
2227 var66
= ((val
* (*)(val
*))(var65
->class->vft
[COLOR_separate_compiler__ToolContext__opt_inline_coloring_numbers
]))(var65
) /* opt_inline_coloring_numbers on <var65:ToolContext>*/;
2228 var67
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_opts__Option__value
]))(var66
) /* value on <var66:OptionBool>*/;
2229 var68
= ((struct instance_kernel__Bool
*)var67
)->value
; /* autounbox from nullable Object to Bool */;
2231 var69
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MPropDef__const_color
]))(var_m
) /* const_color on <var_m:Object(MPropDef)>*/;
2237 var74
= string__NativeString__to_s_with_length(var72
, var73
);
2241 var75
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MPropDef__const_color
]))(var_m
) /* const_color on <var_m:Object(MPropDef)>*/;
2247 var80
= string__NativeString__to_s_with_length(var78
, var79
);
2251 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
2252 { /* var81 = array_instance Array[Object] */
2254 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
2255 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var71
;
2256 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var75
;
2257 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var77
;
2258 var84
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2259 ((struct instance_array__NativeArray
*)var83
)->values
[3] = (val
*) var84
;
2260 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
2261 CHECK_NEW_array__Array(var81
);
2263 var85
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
2264 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var69
, var85
) /* provide_declaration on <self:SeparateCompiler>*/;
2266 var86
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MPropDef__const_color
]))(var_m
) /* const_color on <var_m:Object(MPropDef)>*/;
2270 var89
= "extern const int ";
2272 var91
= string__NativeString__to_s_with_length(var89
, var90
);
2276 var92
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MPropDef__const_color
]))(var_m
) /* const_color on <var_m:Object(MPropDef)>*/;
2282 var97
= string__NativeString__to_s_with_length(var95
, var96
);
2286 var98
= NEW_array__Array(&type_array__Arraykernel__Object
);
2287 { /* var98 = array_instance Array[Object] */
2289 var100
= NEW_array__NativeArray(var99
, &type_array__NativeArraykernel__Object
);
2290 ((struct instance_array__NativeArray
*)var100
)->values
[0] = (val
*) var88
;
2291 ((struct instance_array__NativeArray
*)var100
)->values
[1] = (val
*) var92
;
2292 ((struct instance_array__NativeArray
*)var100
)->values
[2] = (val
*) var94
;
2293 ((void (*)(val
*, val
*, long))(var98
->class->vft
[COLOR_array__Array__with_native
]))(var98
, var100
, var99
) /* with_native on <var98:Array[Object]>*/;
2294 CHECK_NEW_array__Array(var98
);
2296 var101
= ((val
* (*)(val
*))(var98
->class->vft
[COLOR_string__Object__to_s
]))(var98
) /* to_s on <var98:Array[Object]>*/;
2297 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var86
, var101
) /* provide_declaration on <self:SeparateCompiler>*/;
2299 var103
= varonce102
;
2301 var104
= "const int ";
2303 var106
= string__NativeString__to_s_with_length(var104
, var105
);
2305 varonce102
= var103
;
2307 var107
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MPropDef__const_color
]))(var_m
) /* const_color on <var_m:Object(MPropDef)>*/;
2309 var109
= varonce108
;
2313 var112
= string__NativeString__to_s_with_length(var110
, var111
);
2315 varonce108
= var109
;
2318 var114
= varonce113
;
2322 var117
= string__NativeString__to_s_with_length(var115
, var116
);
2324 varonce113
= var114
;
2326 var118
= NEW_array__Array(&type_array__Arraykernel__Object
);
2327 { /* var118 = array_instance Array[Object] */
2329 var120
= NEW_array__NativeArray(var119
, &type_array__NativeArraykernel__Object
);
2330 ((struct instance_array__NativeArray
*)var120
)->values
[0] = (val
*) var103
;
2331 ((struct instance_array__NativeArray
*)var120
)->values
[1] = (val
*) var107
;
2332 ((struct instance_array__NativeArray
*)var120
)->values
[2] = (val
*) var109
;
2333 var121
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2334 ((struct instance_array__NativeArray
*)var120
)->values
[3] = (val
*) var121
;
2335 ((struct instance_array__NativeArray
*)var120
)->values
[4] = (val
*) var114
;
2336 ((void (*)(val
*, val
*, long))(var118
->class->vft
[COLOR_array__Array__with_native
]))(var118
, var120
, var119
) /* with_native on <var118:Array[Object]>*/;
2337 CHECK_NEW_array__Array(var118
);
2339 var122
= ((val
* (*)(val
*))(var118
->class->vft
[COLOR_string__Object__to_s
]))(var118
) /* to_s on <var118:Array[Object]>*/;
2340 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var122
) /* add on <var_v:SeparateCompilerVisitor>*/;
2343 /* <var_m:Object> isa MType */
2344 cltype124
= type_model__MType
.color
;
2345 idtype125
= type_model__MType
.id
;
2346 if(cltype124
>= var_m
->type
->table_size
) {
2349 var123
= var_m
->type
->type_table
[cltype124
] == idtype125
;
2352 var126
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
2353 var127
= ((val
* (*)(val
*))(var126
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var126
) /* toolcontext on <var126:ModelBuilder>*/;
2354 var128
= ((val
* (*)(val
*))(var127
->class->vft
[COLOR_separate_compiler__ToolContext__opt_inline_coloring_numbers
]))(var127
) /* opt_inline_coloring_numbers on <var127:ToolContext>*/;
2355 var129
= ((val
* (*)(val
*))(var128
->class->vft
[COLOR_opts__Option__value
]))(var128
) /* value on <var128:OptionBool>*/;
2356 var130
= ((struct instance_kernel__Bool
*)var129
)->value
; /* autounbox from nullable Object to Bool */;
2358 var131
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MType__const_color
]))(var_m
) /* const_color on <var_m:Object(MType)>*/;
2360 var133
= varonce132
;
2362 var134
= "#define ";
2364 var136
= string__NativeString__to_s_with_length(var134
, var135
);
2366 varonce132
= var133
;
2368 var137
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MType__const_color
]))(var_m
) /* const_color on <var_m:Object(MType)>*/;
2370 var139
= varonce138
;
2374 var142
= string__NativeString__to_s_with_length(var140
, var141
);
2376 varonce138
= var139
;
2378 var143
= NEW_array__Array(&type_array__Arraykernel__Object
);
2379 { /* var143 = array_instance Array[Object] */
2381 var145
= NEW_array__NativeArray(var144
, &type_array__NativeArraykernel__Object
);
2382 ((struct instance_array__NativeArray
*)var145
)->values
[0] = (val
*) var133
;
2383 ((struct instance_array__NativeArray
*)var145
)->values
[1] = (val
*) var137
;
2384 ((struct instance_array__NativeArray
*)var145
)->values
[2] = (val
*) var139
;
2385 var146
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2386 ((struct instance_array__NativeArray
*)var145
)->values
[3] = (val
*) var146
;
2387 ((void (*)(val
*, val
*, long))(var143
->class->vft
[COLOR_array__Array__with_native
]))(var143
, var145
, var144
) /* with_native on <var143:Array[Object]>*/;
2388 CHECK_NEW_array__Array(var143
);
2390 var147
= ((val
* (*)(val
*))(var143
->class->vft
[COLOR_string__Object__to_s
]))(var143
) /* to_s on <var143:Array[Object]>*/;
2391 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var131
, var147
) /* provide_declaration on <self:SeparateCompiler>*/;
2393 var148
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MType__const_color
]))(var_m
) /* const_color on <var_m:Object(MType)>*/;
2395 var150
= varonce149
;
2397 var151
= "extern const int ";
2399 var153
= string__NativeString__to_s_with_length(var151
, var152
);
2401 varonce149
= var150
;
2403 var154
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MType__const_color
]))(var_m
) /* const_color on <var_m:Object(MType)>*/;
2405 var156
= varonce155
;
2409 var159
= string__NativeString__to_s_with_length(var157
, var158
);
2411 varonce155
= var156
;
2413 var160
= NEW_array__Array(&type_array__Arraykernel__Object
);
2414 { /* var160 = array_instance Array[Object] */
2416 var162
= NEW_array__NativeArray(var161
, &type_array__NativeArraykernel__Object
);
2417 ((struct instance_array__NativeArray
*)var162
)->values
[0] = (val
*) var150
;
2418 ((struct instance_array__NativeArray
*)var162
)->values
[1] = (val
*) var154
;
2419 ((struct instance_array__NativeArray
*)var162
)->values
[2] = (val
*) var156
;
2420 ((void (*)(val
*, val
*, long))(var160
->class->vft
[COLOR_array__Array__with_native
]))(var160
, var162
, var161
) /* with_native on <var160:Array[Object]>*/;
2421 CHECK_NEW_array__Array(var160
);
2423 var163
= ((val
* (*)(val
*))(var160
->class->vft
[COLOR_string__Object__to_s
]))(var160
) /* to_s on <var160:Array[Object]>*/;
2424 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var148
, var163
) /* provide_declaration on <self:SeparateCompiler>*/;
2426 var165
= varonce164
;
2428 var166
= "const int ";
2430 var168
= string__NativeString__to_s_with_length(var166
, var167
);
2432 varonce164
= var165
;
2434 var169
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_separate_compiler__MType__const_color
]))(var_m
) /* const_color on <var_m:Object(MType)>*/;
2436 var171
= varonce170
;
2440 var174
= string__NativeString__to_s_with_length(var172
, var173
);
2442 varonce170
= var171
;
2445 var176
= varonce175
;
2449 var179
= string__NativeString__to_s_with_length(var177
, var178
);
2451 varonce175
= var176
;
2453 var180
= NEW_array__Array(&type_array__Arraykernel__Object
);
2454 { /* var180 = array_instance Array[Object] */
2456 var182
= NEW_array__NativeArray(var181
, &type_array__NativeArraykernel__Object
);
2457 ((struct instance_array__NativeArray
*)var182
)->values
[0] = (val
*) var165
;
2458 ((struct instance_array__NativeArray
*)var182
)->values
[1] = (val
*) var169
;
2459 ((struct instance_array__NativeArray
*)var182
)->values
[2] = (val
*) var171
;
2460 var183
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
2461 ((struct instance_array__NativeArray
*)var182
)->values
[3] = (val
*) var183
;
2462 ((struct instance_array__NativeArray
*)var182
)->values
[4] = (val
*) var176
;
2463 ((void (*)(val
*, val
*, long))(var180
->class->vft
[COLOR_array__Array__with_native
]))(var180
, var182
, var181
) /* with_native on <var180:Array[Object]>*/;
2464 CHECK_NEW_array__Array(var180
);
2466 var184
= ((val
* (*)(val
*))(var180
->class->vft
[COLOR_string__Object__to_s
]))(var180
) /* to_s on <var180:Array[Object]>*/;
2467 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var184
) /* add on <var_v:SeparateCompilerVisitor>*/;
2473 var185
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__color_consts_done
]))(self
) /* color_consts_done on <self:SeparateCompiler>*/;
2474 ((void (*)(val
*, val
*))(var185
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var185
, var_m
) /* add on <var185:HashSet[Object]>*/;
2477 /* method separate_compiler#SeparateCompiler#compile_color_const for (self: Object, SeparateCompilerVisitor, Object, Int) */
2478 void VIRTUAL_separate_compiler__SeparateCompiler__compile_color_const(val
* self
, val
* p0
, val
* p1
, long p2
) {
2479 separate_compiler__SeparateCompiler__compile_color_const(self
, p0
, p1
, p2
);
2482 /* method separate_compiler#SeparateCompiler#color_consts_done for (self: SeparateCompiler): HashSet[Object] */
2483 val
* separate_compiler__SeparateCompiler__color_consts_done(val
* self
) {
2484 val
* var
/* : HashSet[Object] */;
2485 val
* var1
/* : HashSet[Object] */;
2486 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dcolor_consts_done
].val
; /* @color_consts_done on <self:SeparateCompiler> */
2488 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @color_consts_done");
2489 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 230);
2496 /* method separate_compiler#SeparateCompiler#color_consts_done for (self: Object): HashSet[Object] */
2497 val
* VIRTUAL_separate_compiler__SeparateCompiler__color_consts_done(val
* self
) {
2498 val
* var
/* : HashSet[Object] */;
2499 val
* var1
/* : HashSet[Object] */;
2500 var1
= separate_compiler__SeparateCompiler__color_consts_done(self
);
2505 /* method separate_compiler#SeparateCompiler#color_consts_done= for (self: SeparateCompiler, HashSet[Object]) */
2506 void separate_compiler__SeparateCompiler__color_consts_done_61d(val
* self
, val
* p0
) {
2507 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dcolor_consts_done
].val
= p0
; /* @color_consts_done on <self:SeparateCompiler> */
2510 /* method separate_compiler#SeparateCompiler#color_consts_done= for (self: Object, HashSet[Object]) */
2511 void VIRTUAL_separate_compiler__SeparateCompiler__color_consts_done_61d(val
* self
, val
* p0
) {
2512 separate_compiler__SeparateCompiler__color_consts_done_61d(self
, p0
);
2515 /* method separate_compiler#SeparateCompiler#do_property_coloring for (self: SeparateCompiler) */
2516 void separate_compiler__SeparateCompiler__do_property_coloring(val
* self
) {
2517 val
* var
/* : HashSet[MClass] */;
2518 val
* var1
/* : ModelBuilder */;
2519 val
* var2
/* : Model */;
2520 val
* var3
/* : Array[MClass] */;
2521 val
* var_mclasses
/* var mclasses: HashSet[MClass] */;
2522 val
* var4
/* : MClassColorer */;
2523 val
* var5
/* : MModule */;
2524 val
* var_class_layout_builder
/* var class_layout_builder: MClassColorer */;
2525 val
* var6
/* : Layout[Object] */;
2526 val
* var7
/* : MPropertyColorer[PropertyLayoutElement] */;
2527 val
* var8
/* : MModule */;
2528 val
* var_method_layout_builder
/* var method_layout_builder: PropertyLayoutBuilder[PropertyLayoutElement] */;
2529 val
* var9
/* : MPropertyColorer[MAttribute] */;
2530 val
* var10
/* : MModule */;
2531 val
* var_attribute_layout_builder
/* var attribute_layout_builder: PropertyLayoutBuilder[MAttribute] */;
2532 val
* var11
/* : HashMap[MClass, Set[PropertyLayoutElement]] */;
2533 val
* var_mmethods
/* var mmethods: HashMap[MClass, Set[PropertyLayoutElement]] */;
2534 val
* var12
/* : HashMap[MClass, Set[MAttribute]] */;
2535 val
* var_mattributes
/* var mattributes: HashMap[MClass, Set[MAttribute]] */;
2536 val
* var13
/* : Iterator[nullable Object] */;
2537 short int var14
/* : Bool */;
2538 val
* var15
/* : nullable Object */;
2539 val
* var_mclass
/* var mclass: MClass */;
2540 val
* var16
/* : HashSet[PropertyLayoutElement] */;
2541 val
* var17
/* : HashSet[MAttribute] */;
2542 val
* var18
/* : MModule */;
2543 val
* var19
/* : Set[MProperty] */;
2544 val
* var20
/* : Iterator[nullable Object] */;
2545 short int var21
/* : Bool */;
2546 val
* var22
/* : nullable Object */;
2547 val
* var_mprop
/* var mprop: MProperty */;
2548 short int var23
/* : Bool */;
2551 val
* var24
/* : nullable Object */;
2552 short int var25
/* : Bool */;
2555 val
* var28
/* : nullable Object */;
2556 val
* var30
/* : RapidTypeAnalysis */;
2557 val
* var31
/* : HashSet[MMethodDef] */;
2558 val
* var_super_calls
/* var super_calls: HashSet[MMethodDef] */;
2559 val
* var32
/* : Iterator[nullable Object] */;
2560 short int var33
/* : Bool */;
2561 val
* var34
/* : nullable Object */;
2562 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
2563 val
* var35
/* : MClassDef */;
2564 val
* var36
/* : MClass */;
2565 val
* var_mclass37
/* var mclass: MClass */;
2566 val
* var38
/* : nullable Object */;
2567 val
* var39
/* : MModule */;
2568 val
* var40
/* : POSetElement[MClass] */;
2569 val
* var41
/* : Collection[Object] */;
2570 val
* var42
/* : Iterator[nullable Object] */;
2571 short int var43
/* : Bool */;
2572 val
* var44
/* : nullable Object */;
2573 val
* var_descendant
/* var descendant: MClass */;
2574 val
* var45
/* : nullable Object */;
2575 val
* var48
/* : Layout[PropertyLayoutElement] */;
2576 val
* var49
/* : Map[MClass, Array[nullable MPropDef]] */;
2577 val
* var50
/* : nullable Layout[PropertyLayoutElement] */;
2578 val
* var51
/* : Map[Object, Int] */;
2579 val
* var52
/* : MModule */;
2580 val
* var53
/* : POSetElement[MModule] */;
2581 val
* var54
/* : Collection[Object] */;
2582 val
* var55
/* : Iterator[nullable Object] */;
2583 short int var56
/* : Bool */;
2584 val
* var57
/* : nullable Object */;
2585 val
* var_mmodule
/* var mmodule: MModule */;
2586 val
* var58
/* : Array[MClassDef] */;
2587 val
* var59
/* : Iterator[nullable Object] */;
2588 short int var60
/* : Bool */;
2589 val
* var61
/* : nullable Object */;
2590 val
* var_mclassdef
/* var mclassdef: MClassDef */;
2591 val
* var62
/* : Array[MPropDef] */;
2592 val
* var63
/* : Iterator[nullable Object] */;
2593 short int var64
/* : Bool */;
2594 val
* var65
/* : nullable Object */;
2595 val
* var_mpropdef
/* var mpropdef: MPropDef */;
2596 short int var66
/* : Bool */;
2597 val
* var67
/* : AbstractCompilerVisitor */;
2598 long var68
/* : Int */;
2599 long var69
/* : Int */;
2600 long var71
/* : Int */;
2601 val
* var75
/* : Layout[PropertyLayoutElement] */;
2602 val
* var76
/* : Map[MClass, Array[nullable MPropDef]] */;
2603 val
* var77
/* : nullable Layout[MAttribute] */;
2604 val
* var78
/* : Map[Object, Int] */;
2605 var
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass
);
2606 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
2607 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelbuilder__ModelBuilder__model
]))(var1
) /* model on <var1:ModelBuilder>*/;
2608 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__Model__mclasses
]))(var2
) /* mclasses on <var2:Model>*/;
2609 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_hash_collection__HashSet__from
]))(var
, var3
) /* from on <var:HashSet[MClass]>*/;
2610 CHECK_NEW_hash_collection__HashSet(var
);
2612 var4
= NEW_layout_builders__MClassColorer(&type_layout_builders__MClassColorer
);
2613 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2614 ((void (*)(val
*, val
*))(var4
->class->vft
[COLOR_layout_builders__MClassColorer__init
]))(var4
, var5
) /* init on <var4:MClassColorer>*/;
2615 CHECK_NEW_layout_builders__MClassColorer(var4
);
2616 var_class_layout_builder
= var4
;
2617 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>*/;
2619 var7
= NEW_layout_builders__MPropertyColorer(&type_layout_builders__MPropertyColorerlayout_builders__PropertyLayoutElement
);
2620 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2621 ((void (*)(val
*, val
*, val
*))(var7
->class->vft
[COLOR_layout_builders__MPropertyColorer__init
]))(var7
, var8
, var_class_layout_builder
) /* init on <var7:MPropertyColorer[PropertyLayoutElement]>*/;
2622 CHECK_NEW_layout_builders__MPropertyColorer(var7
);
2623 var_method_layout_builder
= var7
;
2624 var9
= NEW_layout_builders__MPropertyColorer(&type_layout_builders__MPropertyColorermodel__MAttribute
);
2625 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2626 ((void (*)(val
*, val
*, val
*))(var9
->class->vft
[COLOR_layout_builders__MPropertyColorer__init
]))(var9
, var10
, var_class_layout_builder
) /* init on <var9:MPropertyColorer[MAttribute]>*/;
2627 CHECK_NEW_layout_builders__MPropertyColorer(var9
);
2628 var_attribute_layout_builder
= var9
;
2629 var11
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement
);
2630 ((void (*)(val
*))(var11
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var11
) /* init on <var11:HashMap[MClass, Set[PropertyLayoutElement]]>*/;
2631 CHECK_NEW_hash_collection__HashMap(var11
);
2632 var_mmethods
= var11
;
2633 var12
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute
);
2634 ((void (*)(val
*))(var12
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var12
) /* init on <var12:HashMap[MClass, Set[MAttribute]]>*/;
2635 CHECK_NEW_hash_collection__HashMap(var12
);
2636 var_mattributes
= var12
;
2637 var13
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:HashSet[MClass]>*/;
2639 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
2641 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
2643 var16
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetlayout_builders__PropertyLayoutElement
);
2644 ((void (*)(val
*))(var16
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var16
) /* init on <var16:HashSet[PropertyLayoutElement]>*/;
2645 CHECK_NEW_hash_collection__HashSet(var16
);
2646 ((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]]>*/;
2647 var17
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MAttribute
);
2648 ((void (*)(val
*))(var17
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var17
) /* init on <var17:HashSet[MAttribute]>*/;
2649 CHECK_NEW_hash_collection__HashSet(var17
);
2650 ((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]]>*/;
2651 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2652 var19
= ((val
* (*)(val
*, val
*))(var18
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var18
, var_mclass
) /* properties on <var18:MModule>*/;
2653 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var19
) /* iterator on <var19:Set[MProperty]>*/;
2655 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var20
) /* is_ok on <var20:Iterator[nullable Object]>*/;
2657 var22
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var20
) /* item on <var20:Iterator[nullable Object]>*/;
2659 /* <var_mprop:MProperty> isa MMethod */
2660 cltype
= type_model__MMethod
.color
;
2661 idtype
= type_model__MMethod
.id
;
2662 if(cltype
>= var_mprop
->type
->table_size
) {
2665 var23
= var_mprop
->type
->type_table
[cltype
] == idtype
;
2668 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]]>*/;
2669 ((void (*)(val
*, val
*))(var24
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var24
, var_mprop
) /* add on <var24:nullable Object(Set[PropertyLayoutElement])>*/;
2671 /* <var_mprop:MProperty> isa MAttribute */
2672 cltype26
= type_model__MAttribute
.color
;
2673 idtype27
= type_model__MAttribute
.id
;
2674 if(cltype26
>= var_mprop
->type
->table_size
) {
2677 var25
= var_mprop
->type
->type_table
[cltype26
] == idtype27
;
2680 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]]>*/;
2681 ((void (*)(val
*, val
*))(var28
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var28
, var_mprop
) /* add on <var28:nullable Object(Set[MAttribute])>*/;
2685 CONTINUE_label
: (void)0;
2686 ((void (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var20
) /* next on <var20:Iterator[nullable Object]>*/;
2688 BREAK_label
: (void)0;
2689 CONTINUE_label29
: (void)0;
2690 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
2692 BREAK_label29
: (void)0;
2693 var30
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
2694 var31
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_super_sends
]))(var30
) /* live_super_sends on <var30:RapidTypeAnalysis>*/;
2695 var_super_calls
= var31
;
2696 var32
= ((val
* (*)(val
*))(var_super_calls
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_super_calls
) /* iterator on <var_super_calls:HashSet[MMethodDef]>*/;
2698 var33
= ((short int (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var32
) /* is_ok on <var32:Iterator[nullable Object]>*/;
2700 var34
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var32
) /* item on <var32:Iterator[nullable Object]>*/;
2701 var_mmethoddef
= var34
;
2702 var35
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mmethoddef
) /* mclassdef on <var_mmethoddef:MMethodDef>*/;
2703 var36
= ((val
* (*)(val
*))(var35
->class->vft
[COLOR_model__MClassDef__mclass
]))(var35
) /* mclass on <var35:MClassDef>*/;
2704 var_mclass37
= var36
;
2705 var38
= ((val
* (*)(val
*, val
*))(var_mmethods
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_mmethods
, var_mclass37
) /* [] on <var_mmethods:HashMap[MClass, Set[PropertyLayoutElement]]>*/;
2706 ((void (*)(val
*, val
*))(var38
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var38
, var_mmethoddef
) /* add on <var38:nullable Object(Set[PropertyLayoutElement])>*/;
2707 var39
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2708 var40
= ((val
* (*)(val
*, val
*))(var_mclass37
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass37
, var39
) /* in_hierarchy on <var_mclass37:MClass>*/;
2709 var41
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_poset__POSetElement__smallers
]))(var40
) /* smallers on <var40:POSetElement[MClass]>*/;
2710 var42
= ((val
* (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var41
) /* iterator on <var41:Collection[Object](Collection[MClass])>*/;
2712 var43
= ((short int (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var42
) /* is_ok on <var42:Iterator[nullable Object]>*/;
2714 var44
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var42
) /* item on <var42:Iterator[nullable Object]>*/;
2715 var_descendant
= var44
;
2716 var45
= ((val
* (*)(val
*, val
*))(var_mmethods
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_mmethods
, var_descendant
) /* [] on <var_mmethods:HashMap[MClass, Set[PropertyLayoutElement]]>*/;
2717 ((void (*)(val
*, val
*))(var45
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var45
, var_mmethoddef
) /* add on <var45:nullable Object(Set[PropertyLayoutElement])>*/;
2718 CONTINUE_label46
: (void)0;
2719 ((void (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var42
) /* next on <var42:Iterator[nullable Object]>*/;
2721 BREAK_label46
: (void)0;
2722 CONTINUE_label47
: (void)0;
2723 ((void (*)(val
*))(var32
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var32
) /* next on <var32:Iterator[nullable Object]>*/;
2725 BREAK_label47
: (void)0;
2726 var48
= ((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])>*/;
2727 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_layout_61d
]))(self
, var48
) /* method_layout= on <self:SeparateCompiler>*/;
2728 var49
= ((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>*/;
2729 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_tables_61d
]))(self
, var49
) /* method_tables= on <self:SeparateCompiler>*/;
2730 var50
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_layout
]))(self
) /* method_layout on <self:SeparateCompiler>*/;
2731 if (var50
== NULL
) {
2732 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2733 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 285);
2736 var51
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var50
) /* pos on <var50:nullable Layout[PropertyLayoutElement]>*/;
2738 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_color_consts
]))(self
, var51
) /* compile_color_consts on <self:SeparateCompiler>*/;
2739 var52
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2740 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_model_base__MModule__in_importation
]))(var52
) /* in_importation on <var52:MModule>*/;
2741 var54
= ((val
* (*)(val
*))(var53
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var53
) /* greaters on <var53:POSetElement[MModule]>*/;
2742 var55
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var54
) /* iterator on <var54:Collection[Object](Collection[MModule])>*/;
2744 var56
= ((short int (*)(val
*))(var55
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var55
) /* is_ok on <var55:Iterator[nullable Object]>*/;
2746 var57
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var55
) /* item on <var55:Iterator[nullable Object]>*/;
2747 var_mmodule
= var57
;
2748 var58
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model__MModule__mclassdefs
]))(var_mmodule
) /* mclassdefs on <var_mmodule:MModule>*/;
2749 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var58
) /* iterator on <var58:Array[MClassDef]>*/;
2751 var60
= ((short int (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var59
) /* is_ok on <var59:Iterator[nullable Object]>*/;
2753 var61
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var59
) /* item on <var59:Iterator[nullable Object]>*/;
2754 var_mclassdef
= var61
;
2755 var62
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__mpropdefs
]))(var_mclassdef
) /* mpropdefs on <var_mclassdef:MClassDef>*/;
2756 var63
= ((val
* (*)(val
*))(var62
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var62
) /* iterator on <var62:Array[MPropDef]>*/;
2758 var64
= ((short int (*)(val
*))(var63
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var63
) /* is_ok on <var63:Iterator[nullable Object]>*/;
2760 var65
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var63
) /* item on <var63:Iterator[nullable Object]>*/;
2761 var_mpropdef
= var65
;
2762 var66
= ((short int (*)(val
*))(var_mpropdef
->class->vft
[COLOR_typing__MPropDef__has_supercall
]))(var_mpropdef
) /* has_supercall on <var_mpropdef:MPropDef>*/;
2764 var67
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
2766 { /* Inline kernel#Int#unary - (var68) */
2770 RET_LABEL70
:(void)0;
2772 ((void (*)(val
*, val
*, val
*, long))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_color_const
]))(self
, var67
, var_mpropdef
, var69
) /* compile_color_const on <self:SeparateCompiler>*/;
2775 CONTINUE_label72
: (void)0;
2776 ((void (*)(val
*))(var63
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var63
) /* next on <var63:Iterator[nullable Object]>*/;
2778 BREAK_label72
: (void)0;
2779 CONTINUE_label73
: (void)0;
2780 ((void (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var59
) /* next on <var59:Iterator[nullable Object]>*/;
2782 BREAK_label73
: (void)0;
2783 CONTINUE_label74
: (void)0;
2784 ((void (*)(val
*))(var55
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var55
) /* next on <var55:Iterator[nullable Object]>*/;
2786 BREAK_label74
: (void)0;
2787 var75
= ((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])>*/;
2788 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_layout_61d
]))(self
, var75
) /* attr_layout= on <self:SeparateCompiler>*/;
2789 var76
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__build_attr_tables
]))(self
, var_mclasses
) /* build_attr_tables on <self:SeparateCompiler>*/;
2790 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_tables_61d
]))(self
, var76
) /* attr_tables= on <self:SeparateCompiler>*/;
2791 var77
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_layout
]))(self
) /* attr_layout on <self:SeparateCompiler>*/;
2792 if (var77
== NULL
) {
2793 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2794 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 301);
2797 var78
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var77
) /* pos on <var77:nullable Layout[MAttribute]>*/;
2799 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_color_consts
]))(self
, var78
) /* compile_color_consts on <self:SeparateCompiler>*/;
2802 /* method separate_compiler#SeparateCompiler#do_property_coloring for (self: Object) */
2803 void VIRTUAL_separate_compiler__SeparateCompiler__do_property_coloring(val
* self
) {
2804 separate_compiler__SeparateCompiler__do_property_coloring(self
);
2807 /* method separate_compiler#SeparateCompiler#build_method_tables for (self: SeparateCompiler, Set[MClass], Set[MMethodDef]): Map[MClass, Array[nullable MPropDef]] */
2808 val
* separate_compiler__SeparateCompiler__build_method_tables(val
* self
, val
* p0
, val
* p1
) {
2809 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
2810 val
* var_mclasses
/* var mclasses: Set[MClass] */;
2811 val
* var_super_calls
/* var super_calls: Set[MMethodDef] */;
2812 val
* var1
/* : nullable Layout[PropertyLayoutElement] */;
2813 val
* var_layout
/* var layout: nullable Layout[PropertyLayoutElement] */;
2814 val
* var2
/* : HashMap[MClass, Array[nullable MPropDef]] */;
2815 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MPropDef]] */;
2816 val
* var3
/* : Iterator[nullable Object] */;
2817 short int var4
/* : Bool */;
2818 val
* var5
/* : nullable Object */;
2819 val
* var_mclass
/* var mclass: MClass */;
2820 val
* var6
/* : Array[nullable MPropDef] */;
2821 val
* var_table
/* var table: Array[nullable MPropDef] */;
2822 val
* var7
/* : List[MMethodDef] */;
2823 val
* var_supercalls
/* var supercalls: List[MMethodDef] */;
2824 val
* var8
/* : Array[MClass] */;
2825 val
* var_parents
/* var parents: Array[MClass] */;
2826 val
* var9
/* : MModule */;
2827 val
* var10
/* : POSet[MClass] */;
2828 short int var11
/* : Bool */;
2829 val
* var12
/* : MModule */;
2830 val
* var13
/* : POSetElement[MClass] */;
2831 val
* var14
/* : Collection[Object] */;
2832 val
* var15
/* : Array[nullable Object] */;
2833 val
* var16
/* : MModule */;
2834 val
* var17
/* : Iterator[nullable Object] */;
2835 short int var18
/* : Bool */;
2836 val
* var19
/* : nullable Object */;
2837 val
* var_parent
/* var parent: MClass */;
2838 short int var20
/* : Bool */;
2839 val
* var21
/* : MModule */;
2840 val
* var22
/* : Set[MProperty] */;
2841 val
* var23
/* : Iterator[nullable Object] */;
2842 short int var24
/* : Bool */;
2843 val
* var25
/* : nullable Object */;
2844 val
* var_mproperty
/* var mproperty: MProperty */;
2845 short int var26
/* : Bool */;
2848 short int var27
/* : Bool */;
2849 val
* var29
/* : Map[Object, Int] */;
2850 val
* var30
/* : nullable Object */;
2851 long var31
/* : Int */;
2852 long var_color
/* var color: Int */;
2853 long var32
/* : Int */;
2854 short int var33
/* : Bool */;
2855 short int var35
/* : Bool */;
2858 const char* var_class_name
;
2859 short int var38
/* : Bool */;
2860 val
* var39
/* : Range[Int] */;
2861 long var40
/* : Int */;
2862 val
* var41
/* : Discrete */;
2863 val
* var42
/* : Discrete */;
2864 val
* var43
/* : Iterator[nullable Object] */;
2865 short int var44
/* : Bool */;
2866 val
* var45
/* : nullable Object */;
2867 long var_i
/* var i: Int */;
2868 long var46
/* : Int */;
2869 val
* var47
/* : null */;
2870 val
* var49
/* : Array[MPropDef] */;
2871 val
* var50
/* : Iterator[nullable Object] */;
2872 short int var51
/* : Bool */;
2873 val
* var52
/* : nullable Object */;
2874 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
2875 val
* var53
/* : MClassDef */;
2876 val
* var54
/* : MClass */;
2877 short int var55
/* : Bool */;
2878 val
* var57
/* : Iterator[nullable Object] */;
2879 short int var58
/* : Bool */;
2880 val
* var59
/* : nullable Object */;
2881 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
2882 val
* var60
/* : Array[MClassDef] */;
2883 val
* var61
/* : Iterator[nullable Object] */;
2884 short int var62
/* : Bool */;
2885 val
* var63
/* : nullable Object */;
2886 val
* var_mclassdef
/* var mclassdef: MClassDef */;
2887 val
* var64
/* : Array[MPropDef] */;
2888 short int var65
/* : Bool */;
2889 val
* var68
/* : MModule */;
2890 val
* var69
/* : Set[MProperty] */;
2891 val
* var70
/* : Iterator[nullable Object] */;
2892 short int var71
/* : Bool */;
2893 val
* var72
/* : nullable Object */;
2894 val
* var_mproperty73
/* var mproperty: MProperty */;
2895 short int var74
/* : Bool */;
2898 short int var77
/* : Bool */;
2899 val
* var79
/* : Map[Object, Int] */;
2900 val
* var80
/* : nullable Object */;
2901 long var81
/* : Int */;
2902 long var_color82
/* var color: Int */;
2903 long var83
/* : Int */;
2904 short int var84
/* : Bool */;
2905 short int var86
/* : Bool */;
2908 const char* var_class_name89
;
2909 short int var90
/* : Bool */;
2910 val
* var91
/* : Range[Int] */;
2911 long var92
/* : Int */;
2912 val
* var93
/* : Discrete */;
2913 val
* var94
/* : Discrete */;
2914 val
* var95
/* : Iterator[nullable Object] */;
2915 short int var96
/* : Bool */;
2916 val
* var97
/* : nullable Object */;
2917 long var_i98
/* var i: Int */;
2918 long var99
/* : Int */;
2919 val
* var100
/* : null */;
2920 val
* var102
/* : Array[MPropDef] */;
2921 val
* var103
/* : Iterator[nullable Object] */;
2922 short int var104
/* : Bool */;
2923 val
* var105
/* : nullable Object */;
2924 val
* var_mpropdef106
/* var mpropdef: MMethodDef */;
2925 val
* var107
/* : MClassDef */;
2926 val
* var108
/* : MClass */;
2927 short int var109
/* : Bool */;
2928 val
* var111
/* : Iterator[nullable Object] */;
2929 short int var112
/* : Bool */;
2930 val
* var113
/* : nullable Object */;
2931 val
* var_mmethoddef114
/* var mmethoddef: MMethodDef */;
2932 val
* var115
/* : Array[MClassDef] */;
2933 val
* var116
/* : Iterator[nullable Object] */;
2934 short int var117
/* : Bool */;
2935 val
* var118
/* : nullable Object */;
2936 val
* var_mclassdef119
/* var mclassdef: MClassDef */;
2937 val
* var120
/* : Array[MPropDef] */;
2938 short int var121
/* : Bool */;
2939 val
* var124
/* : Iterator[nullable Object] */;
2940 short int var125
/* : Bool */;
2941 val
* var126
/* : nullable Object */;
2942 val
* var_supercall
/* var supercall: MMethodDef */;
2943 val
* var127
/* : Map[Object, Int] */;
2944 val
* var128
/* : nullable Object */;
2945 long var129
/* : Int */;
2946 long var_color130
/* var color: Int */;
2947 long var131
/* : Int */;
2948 short int var132
/* : Bool */;
2949 short int var134
/* : Bool */;
2952 const char* var_class_name137
;
2953 short int var138
/* : Bool */;
2954 val
* var139
/* : Range[Int] */;
2955 long var140
/* : Int */;
2956 val
* var141
/* : Discrete */;
2957 val
* var142
/* : Discrete */;
2958 val
* var143
/* : Iterator[nullable Object] */;
2959 short int var144
/* : Bool */;
2960 val
* var145
/* : nullable Object */;
2961 long var_i146
/* var i: Int */;
2962 long var147
/* : Int */;
2963 val
* var148
/* : null */;
2964 val
* var150
/* : MModule */;
2965 val
* var151
/* : MClassDef */;
2966 val
* var152
/* : MClassType */;
2967 val
* var153
/* : MPropDef */;
2968 val
* var_mmethoddef154
/* var mmethoddef: MMethodDef */;
2970 var_super_calls
= p1
;
2971 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_layout
]))(self
) /* method_layout on <self:SeparateCompiler>*/;
2973 var2
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef
);
2974 ((void (*)(val
*))(var2
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var2
) /* init on <var2:HashMap[MClass, Array[nullable MPropDef]]>*/;
2975 CHECK_NEW_hash_collection__HashMap(var2
);
2977 var3
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:Set[MClass]>*/;
2979 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
2981 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
2983 var6
= NEW_array__Array(&type_array__Arraynullable_model__MPropDef
);
2984 ((void (*)(val
*))(var6
->class->vft
[COLOR_array__Array__init
]))(var6
) /* init on <var6:Array[nullable MPropDef]>*/;
2985 CHECK_NEW_array__Array(var6
);
2987 var7
= NEW_list__List(&type_list__Listmodel__MMethodDef
);
2988 ((void (*)(val
*))(var7
->class->vft
[COLOR_list__List__init
]))(var7
) /* init on <var7:List[MMethodDef]>*/;
2989 CHECK_NEW_list__List(var7
);
2990 var_supercalls
= var7
;
2991 var8
= NEW_array__Array(&type_array__Arraymodel__MClass
);
2992 ((void (*)(val
*))(var8
->class->vft
[COLOR_array__Array__init
]))(var8
) /* init on <var8:Array[MClass]>*/;
2993 CHECK_NEW_array__Array(var8
);
2995 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
2996 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var9
) /* flatten_mclass_hierarchy on <var9:MModule>*/;
2997 var11
= ((short int (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var10
, var_mclass
) /* has on <var10:POSet[MClass]>*/;
2999 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3000 var13
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass
, var12
) /* in_hierarchy on <var_mclass:MClass>*/;
3001 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var13
) /* greaters on <var13:POSetElement[MClass]>*/;
3002 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_array__Collection__to_a
]))(var14
) /* to_a on <var14:Collection[Object](Collection[MClass])>*/;
3003 var_parents
= var15
;
3004 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3005 ((void (*)(val
*, val
*))(var16
->class->vft
[COLOR_model__MModule__linearize_mclasses
]))(var16
, var_parents
) /* linearize_mclasses on <var16:MModule>*/;
3008 var17
= ((val
* (*)(val
*))(var_parents
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_parents
) /* iterator on <var_parents:Array[MClass]>*/;
3010 var18
= ((short int (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var17
) /* is_ok on <var17:Iterator[nullable Object]>*/;
3012 var19
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var17
) /* item on <var17:Iterator[nullable Object]>*/;
3014 var20
= ((short int (*)(val
*, val
*))(var_parent
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_parent
, var_mclass
) /* == on <var_parent:MClass>*/;
3016 goto CONTINUE_label
;
3019 var21
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3020 var22
= ((val
* (*)(val
*, val
*))(var21
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var21
, var_parent
) /* properties on <var21:MModule>*/;
3021 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var22
) /* iterator on <var22:Set[MProperty]>*/;
3023 var24
= ((short int (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var23
) /* is_ok on <var23:Iterator[nullable Object]>*/;
3025 var25
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var23
) /* item on <var23:Iterator[nullable Object]>*/;
3026 var_mproperty
= var25
;
3027 /* <var_mproperty:MProperty> isa MMethod */
3028 cltype
= type_model__MMethod
.color
;
3029 idtype
= type_model__MMethod
.id
;
3030 if(cltype
>= var_mproperty
->type
->table_size
) {
3033 var26
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
3037 goto CONTINUE_label28
;
3040 if (var_layout
== NULL
) {
3041 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3042 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 322);
3045 var29
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[PropertyLayoutElement]>*/;
3047 var30
= ((val
* (*)(val
*, val
*))(var29
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var29
, var_mproperty
) /* [] on <var29:Map[Object, Int](Map[PropertyLayoutElement, Int])>*/;
3048 var31
= ((struct instance_kernel__Int
*)var30
)->value
; /* autounbox from nullable Object to Int */;
3050 var32
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3051 { /* Inline kernel#Int#<= (var32,var_color) */
3052 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
3053 /* <var_color:Int> isa OTHER */
3054 var35
= 1; /* easy <var_color:Int> isa OTHER*/
3056 var_class_name
= type_kernel__Int
.name
;
3057 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3058 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
3061 var38
= var32
<= var_color
;
3064 RET_LABEL34
:(void)0;
3067 var39
= NEW_range__Range(&type_range__Rangekernel__Int
);
3068 var40
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3069 var41
= BOX_kernel__Int(var40
); /* autobox from Int to Discrete */
3070 var42
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
3071 ((void (*)(val
*, val
*, val
*))(var39
->class->vft
[COLOR_range__Range__without_last
]))(var39
, var41
, var42
) /* without_last on <var39:Range[Int]>*/;
3072 CHECK_NEW_range__Range(var39
);
3073 var43
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var39
) /* iterator on <var39:Range[Int]>*/;
3075 var44
= ((short int (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var43
) /* is_ok on <var43:Iterator[nullable Object]>*/;
3077 var45
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var43
) /* item on <var43:Iterator[nullable Object]>*/;
3078 var46
= ((struct instance_kernel__Int
*)var45
)->value
; /* autounbox from nullable Object to Int */;
3081 ((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]>*/;
3082 CONTINUE_label48
: (void)0;
3083 ((void (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var43
) /* next on <var43:Iterator[nullable Object]>*/;
3085 BREAK_label48
: (void)0;
3088 var49
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty
) /* mpropdefs on <var_mproperty:MProperty(MMethod)>*/;
3089 var50
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var49
) /* iterator on <var49:Array[MPropDef](Array[MMethodDef])>*/;
3091 var51
= ((short int (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var50
) /* is_ok on <var50:Iterator[nullable Object]>*/;
3093 var52
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var50
) /* item on <var50:Iterator[nullable Object]>*/;
3094 var_mpropdef
= var52
;
3095 var53
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MMethodDef>*/;
3096 var54
= ((val
* (*)(val
*))(var53
->class->vft
[COLOR_model__MClassDef__mclass
]))(var53
) /* mclass on <var53:MClassDef>*/;
3097 var55
= ((short int (*)(val
*, val
*))(var54
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var54
, var_parent
) /* == on <var54:MClass>*/;
3099 ((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]>*/;
3102 CONTINUE_label56
: (void)0;
3103 ((void (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var50
) /* next on <var50:Iterator[nullable Object]>*/;
3105 BREAK_label56
: (void)0;
3106 CONTINUE_label28
: (void)0;
3107 ((void (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var23
) /* next on <var23:Iterator[nullable Object]>*/;
3109 BREAK_label28
: (void)0;
3110 var57
= ((val
* (*)(val
*))(var_super_calls
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_super_calls
) /* iterator on <var_super_calls:Set[MMethodDef]>*/;
3112 var58
= ((short int (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var57
) /* is_ok on <var57:Iterator[nullable Object]>*/;
3114 var59
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var57
) /* item on <var57:Iterator[nullable Object]>*/;
3115 var_mmethoddef
= var59
;
3116 var60
= ((val
* (*)(val
*))(var_parent
->class->vft
[COLOR_model__MClass__mclassdefs
]))(var_parent
) /* mclassdefs on <var_parent:MClass>*/;
3117 var61
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var60
) /* iterator on <var60:Array[MClassDef]>*/;
3119 var62
= ((short int (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var61
) /* is_ok on <var61:Iterator[nullable Object]>*/;
3121 var63
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var61
) /* item on <var61:Iterator[nullable Object]>*/;
3122 var_mclassdef
= var63
;
3123 var64
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__mpropdefs
]))(var_mclassdef
) /* mpropdefs on <var_mclassdef:MClassDef>*/;
3124 var65
= ((short int (*)(val
*, val
*))(var64
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var64
, var_mmethoddef
) /* has on <var64:Array[MPropDef]>*/;
3126 ((void (*)(val
*, val
*))(var_supercalls
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_supercalls
, var_mmethoddef
) /* add on <var_supercalls:List[MMethodDef]>*/;
3129 CONTINUE_label66
: (void)0;
3130 ((void (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var61
) /* next on <var61:Iterator[nullable Object]>*/;
3132 BREAK_label66
: (void)0;
3133 CONTINUE_label67
: (void)0;
3134 ((void (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var57
) /* next on <var57:Iterator[nullable Object]>*/;
3136 BREAK_label67
: (void)0;
3137 CONTINUE_label
: (void)0;
3138 ((void (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var17
) /* next on <var17:Iterator[nullable Object]>*/;
3140 BREAK_label
: (void)0;
3141 var68
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3142 var69
= ((val
* (*)(val
*, val
*))(var68
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var68
, var_mclass
) /* properties on <var68:MModule>*/;
3143 var70
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var69
) /* iterator on <var69:Set[MProperty]>*/;
3145 var71
= ((short int (*)(val
*))(var70
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var70
) /* is_ok on <var70:Iterator[nullable Object]>*/;
3147 var72
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var70
) /* item on <var70:Iterator[nullable Object]>*/;
3148 var_mproperty73
= var72
;
3149 /* <var_mproperty73:MProperty> isa MMethod */
3150 cltype75
= type_model__MMethod
.color
;
3151 idtype76
= type_model__MMethod
.id
;
3152 if(cltype75
>= var_mproperty73
->type
->table_size
) {
3155 var74
= var_mproperty73
->type
->type_table
[cltype75
] == idtype76
;
3159 goto CONTINUE_label78
;
3162 if (var_layout
== NULL
) {
3163 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3164 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 348);
3167 var79
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[PropertyLayoutElement]>*/;
3169 var80
= ((val
* (*)(val
*, val
*))(var79
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var79
, var_mproperty73
) /* [] on <var79:Map[Object, Int](Map[PropertyLayoutElement, Int])>*/;
3170 var81
= ((struct instance_kernel__Int
*)var80
)->value
; /* autounbox from nullable Object to Int */;
3171 var_color82
= var81
;
3172 var83
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3173 { /* Inline kernel#Int#<= (var83,var_color82) */
3174 /* Covariant cast for argument 0 (i) <var_color82:Int> isa OTHER */
3175 /* <var_color82:Int> isa OTHER */
3176 var86
= 1; /* easy <var_color82:Int> isa OTHER*/
3178 var_class_name89
= type_kernel__Int
.name
;
3179 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name89
);
3180 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
3183 var90
= var83
<= var_color82
;
3186 RET_LABEL85
:(void)0;
3189 var91
= NEW_range__Range(&type_range__Rangekernel__Int
);
3190 var92
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3191 var93
= BOX_kernel__Int(var92
); /* autobox from Int to Discrete */
3192 var94
= BOX_kernel__Int(var_color82
); /* autobox from Int to Discrete */
3193 ((void (*)(val
*, val
*, val
*))(var91
->class->vft
[COLOR_range__Range__without_last
]))(var91
, var93
, var94
) /* without_last on <var91:Range[Int]>*/;
3194 CHECK_NEW_range__Range(var91
);
3195 var95
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var91
) /* iterator on <var91:Range[Int]>*/;
3197 var96
= ((short int (*)(val
*))(var95
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var95
) /* is_ok on <var95:Iterator[nullable Object]>*/;
3199 var97
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var95
) /* item on <var95:Iterator[nullable Object]>*/;
3200 var99
= ((struct instance_kernel__Int
*)var97
)->value
; /* autounbox from nullable Object to Int */;
3203 ((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]>*/;
3204 CONTINUE_label101
: (void)0;
3205 ((void (*)(val
*))(var95
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var95
) /* next on <var95:Iterator[nullable Object]>*/;
3207 BREAK_label101
: (void)0;
3210 var102
= ((val
* (*)(val
*))(var_mproperty73
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty73
) /* mpropdefs on <var_mproperty73:MProperty(MMethod)>*/;
3211 var103
= ((val
* (*)(val
*))(var102
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var102
) /* iterator on <var102:Array[MPropDef](Array[MMethodDef])>*/;
3213 var104
= ((short int (*)(val
*))(var103
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var103
) /* is_ok on <var103:Iterator[nullable Object]>*/;
3215 var105
= ((val
* (*)(val
*))(var103
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var103
) /* item on <var103:Iterator[nullable Object]>*/;
3216 var_mpropdef106
= var105
;
3217 var107
= ((val
* (*)(val
*))(var_mpropdef106
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef106
) /* mclassdef on <var_mpropdef106:MMethodDef>*/;
3218 var108
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_model__MClassDef__mclass
]))(var107
) /* mclass on <var107:MClassDef>*/;
3219 var109
= ((short int (*)(val
*, val
*))(var108
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var108
, var_mclass
) /* == on <var108:MClass>*/;
3221 ((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]>*/;
3224 CONTINUE_label110
: (void)0;
3225 ((void (*)(val
*))(var103
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var103
) /* next on <var103:Iterator[nullable Object]>*/;
3227 BREAK_label110
: (void)0;
3228 CONTINUE_label78
: (void)0;
3229 ((void (*)(val
*))(var70
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var70
) /* next on <var70:Iterator[nullable Object]>*/;
3231 BREAK_label78
: (void)0;
3232 var111
= ((val
* (*)(val
*))(var_super_calls
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_super_calls
) /* iterator on <var_super_calls:Set[MMethodDef]>*/;
3234 var112
= ((short int (*)(val
*))(var111
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var111
) /* is_ok on <var111:Iterator[nullable Object]>*/;
3236 var113
= ((val
* (*)(val
*))(var111
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var111
) /* item on <var111:Iterator[nullable Object]>*/;
3237 var_mmethoddef114
= var113
;
3238 var115
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclassdefs
]))(var_mclass
) /* mclassdefs on <var_mclass:MClass>*/;
3239 var116
= ((val
* (*)(val
*))(var115
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var115
) /* iterator on <var115:Array[MClassDef]>*/;
3241 var117
= ((short int (*)(val
*))(var116
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var116
) /* is_ok on <var116:Iterator[nullable Object]>*/;
3243 var118
= ((val
* (*)(val
*))(var116
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var116
) /* item on <var116:Iterator[nullable Object]>*/;
3244 var_mclassdef119
= var118
;
3245 var120
= ((val
* (*)(val
*))(var_mclassdef119
->class->vft
[COLOR_model__MClassDef__mpropdefs
]))(var_mclassdef119
) /* mpropdefs on <var_mclassdef119:MClassDef>*/;
3246 var121
= ((short int (*)(val
*, val
*))(var120
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var120
, var_mmethoddef114
) /* has on <var120:Array[MPropDef]>*/;
3248 ((void (*)(val
*, val
*))(var_supercalls
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_supercalls
, var_mmethoddef114
) /* add on <var_supercalls:List[MMethodDef]>*/;
3251 CONTINUE_label122
: (void)0;
3252 ((void (*)(val
*))(var116
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var116
) /* next on <var116:Iterator[nullable Object]>*/;
3254 BREAK_label122
: (void)0;
3255 CONTINUE_label123
: (void)0;
3256 ((void (*)(val
*))(var111
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var111
) /* next on <var111:Iterator[nullable Object]>*/;
3258 BREAK_label123
: (void)0;
3259 var124
= ((val
* (*)(val
*))(var_supercalls
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_supercalls
) /* iterator on <var_supercalls:List[MMethodDef]>*/;
3261 var125
= ((short int (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var124
) /* is_ok on <var124:Iterator[nullable Object]>*/;
3263 var126
= ((val
* (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var124
) /* item on <var124:Iterator[nullable Object]>*/;
3264 var_supercall
= var126
;
3265 if (var_layout
== NULL
) {
3266 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3267 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 371);
3270 var127
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[PropertyLayoutElement]>*/;
3272 var128
= ((val
* (*)(val
*, val
*))(var127
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var127
, var_supercall
) /* [] on <var127:Map[Object, Int](Map[PropertyLayoutElement, Int])>*/;
3273 var129
= ((struct instance_kernel__Int
*)var128
)->value
; /* autounbox from nullable Object to Int */;
3274 var_color130
= var129
;
3275 var131
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3276 { /* Inline kernel#Int#<= (var131,var_color130) */
3277 /* Covariant cast for argument 0 (i) <var_color130:Int> isa OTHER */
3278 /* <var_color130:Int> isa OTHER */
3279 var134
= 1; /* easy <var_color130:Int> isa OTHER*/
3281 var_class_name137
= type_kernel__Int
.name
;
3282 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name137
);
3283 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
3286 var138
= var131
<= var_color130
;
3289 RET_LABEL133
:(void)0;
3292 var139
= NEW_range__Range(&type_range__Rangekernel__Int
);
3293 var140
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3294 var141
= BOX_kernel__Int(var140
); /* autobox from Int to Discrete */
3295 var142
= BOX_kernel__Int(var_color130
); /* autobox from Int to Discrete */
3296 ((void (*)(val
*, val
*, val
*))(var139
->class->vft
[COLOR_range__Range__without_last
]))(var139
, var141
, var142
) /* without_last on <var139:Range[Int]>*/;
3297 CHECK_NEW_range__Range(var139
);
3298 var143
= ((val
* (*)(val
*))(var139
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var139
) /* iterator on <var139:Range[Int]>*/;
3300 var144
= ((short int (*)(val
*))(var143
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var143
) /* is_ok on <var143:Iterator[nullable Object]>*/;
3302 var145
= ((val
* (*)(val
*))(var143
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var143
) /* item on <var143:Iterator[nullable Object]>*/;
3303 var147
= ((struct instance_kernel__Int
*)var145
)->value
; /* autounbox from nullable Object to Int */;
3306 ((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]>*/;
3307 CONTINUE_label149
: (void)0;
3308 ((void (*)(val
*))(var143
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var143
) /* next on <var143:Iterator[nullable Object]>*/;
3310 BREAK_label149
: (void)0;
3313 var150
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3314 var151
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
3315 var152
= ((val
* (*)(val
*))(var151
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var151
) /* bound_mtype on <var151:MClassDef>*/;
3316 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>*/;
3317 var_mmethoddef154
= var153
;
3318 ((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]>*/;
3319 CONTINUE_label155
: (void)0;
3320 ((void (*)(val
*))(var124
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var124
) /* next on <var124:Iterator[nullable Object]>*/;
3322 BREAK_label155
: (void)0;
3323 ((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]]>*/;
3324 CONTINUE_label156
: (void)0;
3325 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
3327 BREAK_label156
: (void)0;
3333 /* method separate_compiler#SeparateCompiler#build_method_tables for (self: Object, Set[MClass], Set[MMethodDef]): Map[MClass, Array[nullable MPropDef]] */
3334 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_method_tables(val
* self
, val
* p0
, val
* p1
) {
3335 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
3336 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
3337 var1
= separate_compiler__SeparateCompiler__build_method_tables(self
, p0
, p1
);
3342 /* method separate_compiler#SeparateCompiler#build_attr_tables for (self: SeparateCompiler, Set[MClass]): Map[MClass, Array[nullable MPropDef]] */
3343 val
* separate_compiler__SeparateCompiler__build_attr_tables(val
* self
, val
* p0
) {
3344 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
3345 val
* var_mclasses
/* var mclasses: Set[MClass] */;
3346 val
* var1
/* : nullable Layout[MAttribute] */;
3347 val
* var_layout
/* var layout: nullable Layout[MAttribute] */;
3348 val
* var2
/* : HashMap[MClass, Array[nullable MPropDef]] */;
3349 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MPropDef]] */;
3350 val
* var3
/* : Iterator[nullable Object] */;
3351 short int var4
/* : Bool */;
3352 val
* var5
/* : nullable Object */;
3353 val
* var_mclass
/* var mclass: MClass */;
3354 val
* var6
/* : Array[nullable MPropDef] */;
3355 val
* var_table
/* var table: Array[nullable MPropDef] */;
3356 val
* var7
/* : Array[MClass] */;
3357 val
* var_parents
/* var parents: Array[MClass] */;
3358 val
* var8
/* : MModule */;
3359 val
* var9
/* : POSet[MClass] */;
3360 short int var10
/* : Bool */;
3361 val
* var11
/* : MModule */;
3362 val
* var12
/* : POSetElement[MClass] */;
3363 val
* var13
/* : Collection[Object] */;
3364 val
* var14
/* : Array[nullable Object] */;
3365 val
* var15
/* : MModule */;
3366 val
* var16
/* : Iterator[nullable Object] */;
3367 short int var17
/* : Bool */;
3368 val
* var18
/* : nullable Object */;
3369 val
* var_parent
/* var parent: MClass */;
3370 short int var19
/* : Bool */;
3371 val
* var20
/* : MModule */;
3372 val
* var21
/* : Set[MProperty] */;
3373 val
* var22
/* : Iterator[nullable Object] */;
3374 short int var23
/* : Bool */;
3375 val
* var24
/* : nullable Object */;
3376 val
* var_mproperty
/* var mproperty: MProperty */;
3377 short int var25
/* : Bool */;
3380 short int var26
/* : Bool */;
3381 val
* var28
/* : Map[Object, Int] */;
3382 val
* var29
/* : nullable Object */;
3383 long var30
/* : Int */;
3384 long var_color
/* var color: Int */;
3385 long var31
/* : Int */;
3386 short int var32
/* : Bool */;
3387 short int var34
/* : Bool */;
3390 const char* var_class_name
;
3391 short int var37
/* : Bool */;
3392 val
* var38
/* : Range[Int] */;
3393 long var39
/* : Int */;
3394 val
* var40
/* : Discrete */;
3395 val
* var41
/* : Discrete */;
3396 val
* var42
/* : Iterator[nullable Object] */;
3397 short int var43
/* : Bool */;
3398 val
* var44
/* : nullable Object */;
3399 long var_i
/* var i: Int */;
3400 long var45
/* : Int */;
3401 val
* var46
/* : null */;
3402 val
* var48
/* : Array[MPropDef] */;
3403 val
* var49
/* : Iterator[nullable Object] */;
3404 short int var50
/* : Bool */;
3405 val
* var51
/* : nullable Object */;
3406 val
* var_mpropdef
/* var mpropdef: MAttributeDef */;
3407 val
* var52
/* : MClassDef */;
3408 val
* var53
/* : MClass */;
3409 short int var54
/* : Bool */;
3410 val
* var56
/* : MModule */;
3411 val
* var57
/* : Set[MProperty] */;
3412 val
* var58
/* : Iterator[nullable Object] */;
3413 short int var59
/* : Bool */;
3414 val
* var60
/* : nullable Object */;
3415 val
* var_mproperty61
/* var mproperty: MProperty */;
3416 short int var62
/* : Bool */;
3419 short int var65
/* : Bool */;
3420 val
* var67
/* : Map[Object, Int] */;
3421 val
* var68
/* : nullable Object */;
3422 long var69
/* : Int */;
3423 long var_color70
/* var color: Int */;
3424 long var71
/* : Int */;
3425 short int var72
/* : Bool */;
3426 short int var74
/* : Bool */;
3429 const char* var_class_name77
;
3430 short int var78
/* : Bool */;
3431 val
* var79
/* : Range[Int] */;
3432 long var80
/* : Int */;
3433 val
* var81
/* : Discrete */;
3434 val
* var82
/* : Discrete */;
3435 val
* var83
/* : Iterator[nullable Object] */;
3436 short int var84
/* : Bool */;
3437 val
* var85
/* : nullable Object */;
3438 long var_i86
/* var i: Int */;
3439 long var87
/* : Int */;
3440 val
* var88
/* : null */;
3441 val
* var90
/* : Array[MPropDef] */;
3442 val
* var91
/* : Iterator[nullable Object] */;
3443 short int var92
/* : Bool */;
3444 val
* var93
/* : nullable Object */;
3445 val
* var_mpropdef94
/* var mpropdef: MAttributeDef */;
3446 val
* var95
/* : MClassDef */;
3447 val
* var96
/* : MClass */;
3448 short int var97
/* : Bool */;
3450 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_layout
]))(self
) /* attr_layout on <self:SeparateCompiler>*/;
3452 var2
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef
);
3453 ((void (*)(val
*))(var2
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var2
) /* init on <var2:HashMap[MClass, Array[nullable MPropDef]]>*/;
3454 CHECK_NEW_hash_collection__HashMap(var2
);
3456 var3
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:Set[MClass]>*/;
3458 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
3460 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
3462 var6
= NEW_array__Array(&type_array__Arraynullable_model__MPropDef
);
3463 ((void (*)(val
*))(var6
->class->vft
[COLOR_array__Array__init
]))(var6
) /* init on <var6:Array[nullable MPropDef]>*/;
3464 CHECK_NEW_array__Array(var6
);
3466 var7
= NEW_array__Array(&type_array__Arraymodel__MClass
);
3467 ((void (*)(val
*))(var7
->class->vft
[COLOR_array__Array__init
]))(var7
) /* init on <var7:Array[MClass]>*/;
3468 CHECK_NEW_array__Array(var7
);
3470 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3471 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var8
) /* flatten_mclass_hierarchy on <var8:MModule>*/;
3472 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var9
, var_mclass
) /* has on <var9:POSet[MClass]>*/;
3474 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3475 var12
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass
, var11
) /* in_hierarchy on <var_mclass:MClass>*/;
3476 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var12
) /* greaters on <var12:POSetElement[MClass]>*/;
3477 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_array__Collection__to_a
]))(var13
) /* to_a on <var13:Collection[Object](Collection[MClass])>*/;
3478 var_parents
= var14
;
3479 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3480 ((void (*)(val
*, val
*))(var15
->class->vft
[COLOR_model__MModule__linearize_mclasses
]))(var15
, var_parents
) /* linearize_mclasses on <var15:MModule>*/;
3483 var16
= ((val
* (*)(val
*))(var_parents
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_parents
) /* iterator on <var_parents:Array[MClass]>*/;
3485 var17
= ((short int (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var16
) /* is_ok on <var16:Iterator[nullable Object]>*/;
3487 var18
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var16
) /* item on <var16:Iterator[nullable Object]>*/;
3489 var19
= ((short int (*)(val
*, val
*))(var_parent
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_parent
, var_mclass
) /* == on <var_parent:MClass>*/;
3491 goto CONTINUE_label
;
3494 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3495 var21
= ((val
* (*)(val
*, val
*))(var20
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var20
, var_parent
) /* properties on <var20:MModule>*/;
3496 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var21
) /* iterator on <var21:Set[MProperty]>*/;
3498 var23
= ((short int (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var22
) /* is_ok on <var22:Iterator[nullable Object]>*/;
3500 var24
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var22
) /* item on <var22:Iterator[nullable Object]>*/;
3501 var_mproperty
= var24
;
3502 /* <var_mproperty:MProperty> isa MAttribute */
3503 cltype
= type_model__MAttribute
.color
;
3504 idtype
= type_model__MAttribute
.id
;
3505 if(cltype
>= var_mproperty
->type
->table_size
) {
3508 var25
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
3512 goto CONTINUE_label27
;
3515 if (var_layout
== NULL
) {
3516 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3517 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 400);
3520 var28
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MAttribute]>*/;
3522 var29
= ((val
* (*)(val
*, val
*))(var28
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var28
, var_mproperty
) /* [] on <var28:Map[Object, Int](Map[MAttribute, Int])>*/;
3523 var30
= ((struct instance_kernel__Int
*)var29
)->value
; /* autounbox from nullable Object to Int */;
3525 var31
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3526 { /* Inline kernel#Int#<= (var31,var_color) */
3527 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
3528 /* <var_color:Int> isa OTHER */
3529 var34
= 1; /* easy <var_color:Int> isa OTHER*/
3531 var_class_name
= type_kernel__Int
.name
;
3532 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3533 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
3536 var37
= var31
<= var_color
;
3539 RET_LABEL33
:(void)0;
3542 var38
= NEW_range__Range(&type_range__Rangekernel__Int
);
3543 var39
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3544 var40
= BOX_kernel__Int(var39
); /* autobox from Int to Discrete */
3545 var41
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
3546 ((void (*)(val
*, val
*, val
*))(var38
->class->vft
[COLOR_range__Range__without_last
]))(var38
, var40
, var41
) /* without_last on <var38:Range[Int]>*/;
3547 CHECK_NEW_range__Range(var38
);
3548 var42
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var38
) /* iterator on <var38:Range[Int]>*/;
3550 var43
= ((short int (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var42
) /* is_ok on <var42:Iterator[nullable Object]>*/;
3552 var44
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var42
) /* item on <var42:Iterator[nullable Object]>*/;
3553 var45
= ((struct instance_kernel__Int
*)var44
)->value
; /* autounbox from nullable Object to Int */;
3556 ((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]>*/;
3557 CONTINUE_label47
: (void)0;
3558 ((void (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var42
) /* next on <var42:Iterator[nullable Object]>*/;
3560 BREAK_label47
: (void)0;
3563 var48
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty
) /* mpropdefs on <var_mproperty:MProperty(MAttribute)>*/;
3564 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var48
) /* iterator on <var48:Array[MPropDef](Array[MAttributeDef])>*/;
3566 var50
= ((short int (*)(val
*))(var49
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var49
) /* is_ok on <var49:Iterator[nullable Object]>*/;
3568 var51
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var49
) /* item on <var49:Iterator[nullable Object]>*/;
3569 var_mpropdef
= var51
;
3570 var52
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MAttributeDef>*/;
3571 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_model__MClassDef__mclass
]))(var52
) /* mclass on <var52:MClassDef>*/;
3572 var54
= ((short int (*)(val
*, val
*))(var53
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var53
, var_parent
) /* == on <var53:MClass>*/;
3574 ((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]>*/;
3577 CONTINUE_label55
: (void)0;
3578 ((void (*)(val
*))(var49
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var49
) /* next on <var49:Iterator[nullable Object]>*/;
3580 BREAK_label55
: (void)0;
3581 CONTINUE_label27
: (void)0;
3582 ((void (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var22
) /* next on <var22:Iterator[nullable Object]>*/;
3584 BREAK_label27
: (void)0;
3585 CONTINUE_label
: (void)0;
3586 ((void (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var16
) /* next on <var16:Iterator[nullable Object]>*/;
3588 BREAK_label
: (void)0;
3589 var56
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3590 var57
= ((val
* (*)(val
*, val
*))(var56
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var56
, var_mclass
) /* properties on <var56:MModule>*/;
3591 var58
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var57
) /* iterator on <var57:Set[MProperty]>*/;
3593 var59
= ((short int (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var58
) /* is_ok on <var58:Iterator[nullable Object]>*/;
3595 var60
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var58
) /* item on <var58:Iterator[nullable Object]>*/;
3596 var_mproperty61
= var60
;
3597 /* <var_mproperty61:MProperty> isa MAttribute */
3598 cltype63
= type_model__MAttribute
.color
;
3599 idtype64
= type_model__MAttribute
.id
;
3600 if(cltype63
>= var_mproperty61
->type
->table_size
) {
3603 var62
= var_mproperty61
->type
->type_table
[cltype63
] == idtype64
;
3607 goto CONTINUE_label66
;
3610 if (var_layout
== NULL
) {
3611 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3612 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 417);
3615 var67
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MAttribute]>*/;
3617 var68
= ((val
* (*)(val
*, val
*))(var67
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var67
, var_mproperty61
) /* [] on <var67:Map[Object, Int](Map[MAttribute, Int])>*/;
3618 var69
= ((struct instance_kernel__Int
*)var68
)->value
; /* autounbox from nullable Object to Int */;
3619 var_color70
= var69
;
3620 var71
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3621 { /* Inline kernel#Int#<= (var71,var_color70) */
3622 /* Covariant cast for argument 0 (i) <var_color70:Int> isa OTHER */
3623 /* <var_color70:Int> isa OTHER */
3624 var74
= 1; /* easy <var_color70:Int> isa OTHER*/
3626 var_class_name77
= type_kernel__Int
.name
;
3627 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name77
);
3628 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
3631 var78
= var71
<= var_color70
;
3634 RET_LABEL73
:(void)0;
3637 var79
= NEW_range__Range(&type_range__Rangekernel__Int
);
3638 var80
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MPropDef]>*/;
3639 var81
= BOX_kernel__Int(var80
); /* autobox from Int to Discrete */
3640 var82
= BOX_kernel__Int(var_color70
); /* autobox from Int to Discrete */
3641 ((void (*)(val
*, val
*, val
*))(var79
->class->vft
[COLOR_range__Range__without_last
]))(var79
, var81
, var82
) /* without_last on <var79:Range[Int]>*/;
3642 CHECK_NEW_range__Range(var79
);
3643 var83
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var79
) /* iterator on <var79:Range[Int]>*/;
3645 var84
= ((short int (*)(val
*))(var83
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var83
) /* is_ok on <var83:Iterator[nullable Object]>*/;
3647 var85
= ((val
* (*)(val
*))(var83
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var83
) /* item on <var83:Iterator[nullable Object]>*/;
3648 var87
= ((struct instance_kernel__Int
*)var85
)->value
; /* autounbox from nullable Object to Int */;
3651 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_i86
, var88
) /* []= on <var_table:Array[nullable MPropDef]>*/;
3652 CONTINUE_label89
: (void)0;
3653 ((void (*)(val
*))(var83
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var83
) /* next on <var83:Iterator[nullable Object]>*/;
3655 BREAK_label89
: (void)0;
3658 var90
= ((val
* (*)(val
*))(var_mproperty61
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty61
) /* mpropdefs on <var_mproperty61:MProperty(MAttribute)>*/;
3659 var91
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var90
) /* iterator on <var90:Array[MPropDef](Array[MAttributeDef])>*/;
3661 var92
= ((short int (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var91
) /* is_ok on <var91:Iterator[nullable Object]>*/;
3663 var93
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var91
) /* item on <var91:Iterator[nullable Object]>*/;
3664 var_mpropdef94
= var93
;
3665 var95
= ((val
* (*)(val
*))(var_mpropdef94
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef94
) /* mclassdef on <var_mpropdef94:MAttributeDef>*/;
3666 var96
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_model__MClassDef__mclass
]))(var95
) /* mclass on <var95:MClassDef>*/;
3667 var97
= ((short int (*)(val
*, val
*))(var96
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var96
, var_mclass
) /* == on <var96:MClass>*/;
3669 ((void (*)(val
*, long, val
*))(var_table
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_table
, var_color70
, var_mpropdef94
) /* []= on <var_table:Array[nullable MPropDef]>*/;
3672 CONTINUE_label98
: (void)0;
3673 ((void (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var91
) /* next on <var91:Iterator[nullable Object]>*/;
3675 BREAK_label98
: (void)0;
3676 CONTINUE_label66
: (void)0;
3677 ((void (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var58
) /* next on <var58:Iterator[nullable Object]>*/;
3679 BREAK_label66
: (void)0;
3680 ((void (*)(val
*, val
*, val
*))(var_tables
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_tables
, var_mclass
, var_table
) /* []= on <var_tables:HashMap[MClass, Array[nullable MPropDef]]>*/;
3681 CONTINUE_label99
: (void)0;
3682 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
3684 BREAK_label99
: (void)0;
3690 /* method separate_compiler#SeparateCompiler#build_attr_tables for (self: Object, Set[MClass]): Map[MClass, Array[nullable MPropDef]] */
3691 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_attr_tables(val
* self
, val
* p0
) {
3692 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
3693 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
3694 var1
= separate_compiler__SeparateCompiler__build_attr_tables(self
, p0
);
3699 /* method separate_compiler#SeparateCompiler#do_type_coloring for (self: SeparateCompiler): POSet[MType] */
3700 val
* separate_compiler__SeparateCompiler__do_type_coloring(val
* self
) {
3701 val
* var
/* : POSet[MType] */;
3702 val
* var1
/* : HashSet[MType] */;
3703 val
* var_mtypes
/* var mtypes: HashSet[MType] */;
3704 val
* var2
/* : RapidTypeAnalysis */;
3705 val
* var3
/* : HashSet[MClassType] */;
3706 val
* var4
/* : RapidTypeAnalysis */;
3707 val
* var5
/* : HashSet[MClassType] */;
3708 val
* var6
/* : Set[MType] */;
3709 val
* var7
/* : HashMap[MClass, Int] */;
3710 val
* var8
/* : Collection[Object] */;
3711 val
* var9
/* : Iterator[nullable Object] */;
3712 short int var10
/* : Bool */;
3713 val
* var11
/* : nullable Object */;
3714 val
* var_c
/* var c: MClass */;
3715 val
* var12
/* : MClassType */;
3716 val
* var13
/* : Iterator[nullable Object] */;
3717 short int var14
/* : Bool */;
3718 val
* var15
/* : nullable Object */;
3719 val
* var_mtype
/* var mtype: MType */;
3720 val
* var17
/* : Set[MType] */;
3721 val
* var18
/* : ModelBuilder */;
3722 val
* var19
/* : ToolContext */;
3723 val
* var20
/* : OptionBool */;
3724 val
* var21
/* : nullable Object */;
3725 short int var22
/* : Bool */;
3726 val
* var23
/* : MTypeBMizer */;
3727 val
* var24
/* : MModule */;
3728 val
* var_layout_builder
/* var layout_builder: TypingLayoutBuilder[MType] */;
3729 val
* var25
/* : ModelBuilder */;
3730 val
* var26
/* : ToolContext */;
3731 val
* var27
/* : OptionBool */;
3732 val
* var28
/* : nullable Object */;
3733 short int var29
/* : Bool */;
3734 val
* var30
/* : MTypeHasher */;
3735 val
* var31
/* : PHModOperator */;
3736 val
* var32
/* : MModule */;
3737 val
* var33
/* : ModelBuilder */;
3738 val
* var34
/* : ToolContext */;
3739 val
* var35
/* : OptionBool */;
3740 val
* var36
/* : nullable Object */;
3741 short int var37
/* : Bool */;
3742 val
* var38
/* : MTypeHasher */;
3743 val
* var39
/* : PHAndOperator */;
3744 val
* var40
/* : MModule */;
3745 val
* var41
/* : MTypeColorer */;
3746 val
* var42
/* : MModule */;
3747 val
* var43
/* : Layout[Object] */;
3748 val
* var44
/* : nullable POSet[Object] */;
3749 val
* var_poset
/* var poset: POSet[MType] */;
3750 val
* var45
/* : Map[MType, Array[nullable MType]] */;
3751 var1
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
3752 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var1
) /* init on <var1:HashSet[MType]>*/;
3753 CHECK_NEW_hash_collection__HashSet(var1
);
3755 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
3756 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var2
) /* live_types on <var2:RapidTypeAnalysis>*/;
3757 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_mtypes
, var3
) /* add_all on <var_mtypes:HashSet[MType]>*/;
3758 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
3759 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_cast_types
]))(var4
) /* live_cast_types on <var4:RapidTypeAnalysis>*/;
3760 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_mtypes
, var5
) /* add_all on <var_mtypes:HashSet[MType]>*/;
3761 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__undead_types
]))(self
) /* undead_types on <self:SeparateCompiler>*/;
3762 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_mtypes
, var6
) /* add_all on <var_mtypes:HashSet[MType]>*/;
3763 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kinds
]))(self
) /* box_kinds on <self:SeparateCompiler>*/;
3764 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__MapRead__keys
]))(var7
) /* keys on <var7:HashMap[MClass, Int]>*/;
3765 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:Collection[Object](HashMapKeys[MClass, Int])>*/;
3767 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
3769 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
3771 var12
= ((val
* (*)(val
*))(var_c
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c
) /* mclass_type on <var_c:MClass>*/;
3772 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_mtypes
, var12
) /* add on <var_mtypes:HashSet[MType]>*/;
3773 CONTINUE_label
: (void)0;
3774 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
3776 BREAK_label
: (void)0;
3777 var13
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mtypes
) /* iterator on <var_mtypes:HashSet[MType]>*/;
3779 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
3781 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
3783 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__retrieve_partial_types
]))(self
, var_mtype
) /* retrieve_partial_types on <self:SeparateCompiler>*/;
3784 CONTINUE_label16
: (void)0;
3785 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
3787 BREAK_label16
: (void)0;
3788 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__partial_types
]))(self
) /* partial_types on <self:SeparateCompiler>*/;
3789 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_mtypes
, var17
) /* add_all on <var_mtypes:HashSet[MType]>*/;
3790 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
3791 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var18
) /* toolcontext on <var18:ModelBuilder>*/;
3792 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_separate_compiler__ToolContext__opt_bm_typing
]))(var19
) /* opt_bm_typing on <var19:ToolContext>*/;
3793 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_opts__Option__value
]))(var20
) /* value on <var20:OptionBool>*/;
3794 var22
= ((struct instance_kernel__Bool
*)var21
)->value
; /* autounbox from nullable Object to Bool */;
3796 var23
= NEW_layout_builders__MTypeBMizer(&type_layout_builders__MTypeBMizer
);
3797 var24
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3798 ((void (*)(val
*, val
*))(var23
->class->vft
[COLOR_layout_builders__MTypeBMizer__init
]))(var23
, var24
) /* init on <var23:MTypeBMizer>*/;
3799 CHECK_NEW_layout_builders__MTypeBMizer(var23
);
3800 var_layout_builder
= var23
;
3802 var25
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
3803 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var25
) /* toolcontext on <var25:ModelBuilder>*/;
3804 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var26
) /* opt_phmod_typing on <var26:ToolContext>*/;
3805 var28
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_opts__Option__value
]))(var27
) /* value on <var27:OptionBool>*/;
3806 var29
= ((struct instance_kernel__Bool
*)var28
)->value
; /* autounbox from nullable Object to Bool */;
3808 var30
= NEW_layout_builders__MTypeHasher(&type_layout_builders__MTypeHasher
);
3809 var31
= NEW_layout_builders__PHModOperator(&type_layout_builders__PHModOperator
);
3810 ((void (*)(val
*))(var31
->class->vft
[COLOR_layout_builders__PHModOperator__init
]))(var31
) /* init on <var31:PHModOperator>*/;
3811 CHECK_NEW_layout_builders__PHModOperator(var31
);
3812 var32
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3813 ((void (*)(val
*, val
*, val
*))(var30
->class->vft
[COLOR_layout_builders__MTypeHasher__init
]))(var30
, var31
, var32
) /* init on <var30:MTypeHasher>*/;
3814 CHECK_NEW_layout_builders__MTypeHasher(var30
);
3815 var_layout_builder
= var30
;
3817 var33
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
3818 var34
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var33
) /* toolcontext on <var33:ModelBuilder>*/;
3819 var35
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var34
) /* opt_phand_typing on <var34:ToolContext>*/;
3820 var36
= ((val
* (*)(val
*))(var35
->class->vft
[COLOR_opts__Option__value
]))(var35
) /* value on <var35:OptionBool>*/;
3821 var37
= ((struct instance_kernel__Bool
*)var36
)->value
; /* autounbox from nullable Object to Bool */;
3823 var38
= NEW_layout_builders__MTypeHasher(&type_layout_builders__MTypeHasher
);
3824 var39
= NEW_layout_builders__PHAndOperator(&type_layout_builders__PHAndOperator
);
3825 ((void (*)(val
*))(var39
->class->vft
[COLOR_layout_builders__PHAndOperator__init
]))(var39
) /* init on <var39:PHAndOperator>*/;
3826 CHECK_NEW_layout_builders__PHAndOperator(var39
);
3827 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3828 ((void (*)(val
*, val
*, val
*))(var38
->class->vft
[COLOR_layout_builders__MTypeHasher__init
]))(var38
, var39
, var40
) /* init on <var38:MTypeHasher>*/;
3829 CHECK_NEW_layout_builders__MTypeHasher(var38
);
3830 var_layout_builder
= var38
;
3832 var41
= NEW_layout_builders__MTypeColorer(&type_layout_builders__MTypeColorer
);
3833 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
3834 ((void (*)(val
*, val
*))(var41
->class->vft
[COLOR_layout_builders__MTypeColorer__init
]))(var41
, var42
) /* init on <var41:MTypeColorer>*/;
3835 CHECK_NEW_layout_builders__MTypeColorer(var41
);
3836 var_layout_builder
= var41
;
3840 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]>*/;
3841 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout_61d
]))(self
, var43
) /* type_layout= on <self:SeparateCompiler>*/;
3842 var44
= ((val
* (*)(val
*))(var_layout_builder
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(var_layout_builder
) /* poset on <var_layout_builder:TypingLayoutBuilder[MType]>*/;
3843 if (var44
== NULL
) {
3844 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3845 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 463);
3849 var45
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__build_type_tables
]))(self
, var_poset
) /* build_type_tables on <self:SeparateCompiler>*/;
3850 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_tables_61d
]))(self
, var45
) /* type_tables= on <self:SeparateCompiler>*/;
3851 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_resolution_tables
]))(self
, var_mtypes
) /* compile_resolution_tables on <self:SeparateCompiler>*/;
3857 /* method separate_compiler#SeparateCompiler#do_type_coloring for (self: Object): POSet[MType] */
3858 val
* VIRTUAL_separate_compiler__SeparateCompiler__do_type_coloring(val
* self
) {
3859 val
* var
/* : POSet[MType] */;
3860 val
* var1
/* : POSet[MType] */;
3861 var1
= separate_compiler__SeparateCompiler__do_type_coloring(self
);
3866 /* method separate_compiler#SeparateCompiler#build_type_tables for (self: SeparateCompiler, POSet[MType]): Map[MType, Array[nullable MType]] */
3867 val
* separate_compiler__SeparateCompiler__build_type_tables(val
* self
, val
* p0
) {
3868 val
* var
/* : Map[MType, Array[nullable MType]] */;
3869 val
* var_mtypes
/* var mtypes: POSet[MType] */;
3870 val
* var1
/* : HashMap[MType, Array[nullable MType]] */;
3871 val
* var_tables
/* var tables: HashMap[MType, Array[nullable MType]] */;
3872 val
* var2
/* : nullable Layout[MType] */;
3873 val
* var_layout
/* var layout: nullable Layout[MType] */;
3874 val
* var3
/* : Iterator[nullable Object] */;
3875 short int var4
/* : Bool */;
3876 val
* var5
/* : nullable Object */;
3877 val
* var_mtype
/* var mtype: MType */;
3878 val
* var6
/* : Array[nullable MType] */;
3879 val
* var_table
/* var table: Array[nullable MType] */;
3880 val
* var7
/* : POSetElement[Object] */;
3881 val
* var8
/* : Collection[Object] */;
3882 val
* var9
/* : Iterator[nullable Object] */;
3883 short int var10
/* : Bool */;
3884 val
* var11
/* : nullable Object */;
3885 val
* var_sup
/* var sup: MType */;
3886 short int var12
/* : Bool */;
3889 val
* var13
/* : Map[Object, Map[Object, Int]] */;
3890 val
* var14
/* : nullable Object */;
3891 val
* var15
/* : nullable Object */;
3892 long var16
/* : Int */;
3893 long var_color
/* var color: Int */;
3894 val
* var17
/* : Map[Object, Int] */;
3895 val
* var18
/* : nullable Object */;
3896 long var19
/* : Int */;
3897 long var20
/* : Int */;
3898 short int var21
/* : Bool */;
3899 short int var23
/* : Bool */;
3902 const char* var_class_name
;
3903 short int var26
/* : Bool */;
3904 val
* var27
/* : Range[Int] */;
3905 long var28
/* : Int */;
3906 val
* var29
/* : Discrete */;
3907 val
* var30
/* : Discrete */;
3908 val
* var31
/* : Iterator[nullable Object] */;
3909 short int var32
/* : Bool */;
3910 val
* var33
/* : nullable Object */;
3911 long var_i
/* var i: Int */;
3912 long var34
/* : Int */;
3913 val
* var35
/* : null */;
3915 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType
);
3916 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var1
) /* init on <var1:HashMap[MType, Array[nullable MType]]>*/;
3917 CHECK_NEW_hash_collection__HashMap(var1
);
3919 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout
]))(self
) /* type_layout on <self:SeparateCompiler>*/;
3921 var3
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mtypes
) /* iterator on <var_mtypes:POSet[MType]>*/;
3923 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
3925 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
3927 var6
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
3928 ((void (*)(val
*))(var6
->class->vft
[COLOR_array__Array__init
]))(var6
) /* init on <var6:Array[nullable MType]>*/;
3929 CHECK_NEW_array__Array(var6
);
3931 var7
= ((val
* (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_poset__POSet___91d_93d
]))(var_mtypes
, var_mtype
) /* [] on <var_mtypes:POSet[MType]>*/;
3932 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var7
) /* greaters on <var7:POSetElement[Object](POSetElement[MType])>*/;
3933 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:Collection[Object](Collection[MType])>*/;
3935 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
3937 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
3939 /* <var_layout:nullable Layout[MType]> isa PHLayout[MType, MType] */
3940 cltype
= type_layout_builders__PHLayoutmodel__MTypemodel__MType
.color
;
3941 idtype
= type_layout_builders__PHLayoutmodel__MTypemodel__MType
.id
;
3942 if(var_layout
== NULL
) {
3945 if(cltype
>= var_layout
->type
->table_size
) {
3948 var12
= var_layout
->type
->type_table
[cltype
] == idtype
;
3952 var13
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__hashes
]))(var_layout
) /* hashes on <var_layout:nullable Layout[MType](PHLayout[MType, MType])>*/;
3953 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]])>*/;
3954 var15
= ((val
* (*)(val
*, val
*))(var14
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var14
, var_sup
) /* [] on <var14:nullable Object(Map[MType, Int])>*/;
3955 var16
= ((struct instance_kernel__Int
*)var15
)->value
; /* autounbox from nullable Object to Int */;
3958 if (var_layout
== NULL
) {
3959 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3960 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 483);
3963 var17
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MType]>*/;
3965 var18
= ((val
* (*)(val
*, val
*))(var17
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var17
, var_sup
) /* [] on <var17:Map[Object, Int](Map[MType, Int])>*/;
3966 var19
= ((struct instance_kernel__Int
*)var18
)->value
; /* autounbox from nullable Object to Int */;
3969 var20
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MType]>*/;
3970 { /* Inline kernel#Int#<= (var20,var_color) */
3971 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
3972 /* <var_color:Int> isa OTHER */
3973 var23
= 1; /* easy <var_color:Int> isa OTHER*/
3975 var_class_name
= type_kernel__Int
.name
;
3976 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3977 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
3980 var26
= var20
<= var_color
;
3983 RET_LABEL22
:(void)0;
3986 var27
= NEW_range__Range(&type_range__Rangekernel__Int
);
3987 var28
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MType]>*/;
3988 var29
= BOX_kernel__Int(var28
); /* autobox from Int to Discrete */
3989 var30
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
3990 ((void (*)(val
*, val
*, val
*))(var27
->class->vft
[COLOR_range__Range__without_last
]))(var27
, var29
, var30
) /* without_last on <var27:Range[Int]>*/;
3991 CHECK_NEW_range__Range(var27
);
3992 var31
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var27
) /* iterator on <var27:Range[Int]>*/;
3994 var32
= ((short int (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var31
) /* is_ok on <var31:Iterator[nullable Object]>*/;
3996 var33
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var31
) /* item on <var31:Iterator[nullable Object]>*/;
3997 var34
= ((struct instance_kernel__Int
*)var33
)->value
; /* autounbox from nullable Object to Int */;
4000 ((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]>*/;
4001 CONTINUE_label
: (void)0;
4002 ((void (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var31
) /* next on <var31:Iterator[nullable Object]>*/;
4004 BREAK_label
: (void)0;
4007 ((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]>*/;
4008 CONTINUE_label36
: (void)0;
4009 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
4011 BREAK_label36
: (void)0;
4012 ((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]]>*/;
4013 CONTINUE_label37
: (void)0;
4014 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
4016 BREAK_label37
: (void)0;
4022 /* method separate_compiler#SeparateCompiler#build_type_tables for (self: Object, POSet[MType]): Map[MType, Array[nullable MType]] */
4023 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_type_tables(val
* self
, val
* p0
) {
4024 val
* var
/* : Map[MType, Array[nullable MType]] */;
4025 val
* var1
/* : Map[MType, Array[nullable MType]] */;
4026 var1
= separate_compiler__SeparateCompiler__build_type_tables(self
, p0
);
4031 /* method separate_compiler#SeparateCompiler#compile_resolution_tables for (self: SeparateCompiler, Set[MType]) */
4032 void separate_compiler__SeparateCompiler__compile_resolution_tables(val
* self
, val
* p0
) {
4033 val
* var_mtypes
/* var mtypes: Set[MType] */;
4034 val
* var
/* : HashMap[MClassType, Set[MType]] */;
4035 val
* var_mtype2unresolved
/* var mtype2unresolved: HashMap[MClassType, Set[MType]] */;
4036 val
* var1
/* : RapidTypeAnalysis */;
4037 val
* var2
/* : HashSet[MClassType] */;
4038 val
* var3
/* : Iterator[nullable Object] */;
4039 short int var4
/* : Bool */;
4040 val
* var5
/* : nullable Object */;
4041 val
* var_mtype
/* var mtype: MClassType */;
4042 val
* var6
/* : HashSet[MType] */;
4043 val
* var_set
/* var set: HashSet[MType] */;
4044 val
* var7
/* : MModule */;
4045 val
* var8
/* : Set[MClassDef] */;
4046 val
* var9
/* : Iterator[nullable Object] */;
4047 short int var10
/* : Bool */;
4048 val
* var11
/* : nullable Object */;
4049 val
* var_cd
/* var cd: MClassDef */;
4050 val
* var12
/* : Map[MClassDef, Set[MType]] */;
4051 short int var13
/* : Bool */;
4052 val
* var14
/* : Map[MClassDef, Set[MType]] */;
4053 val
* var15
/* : nullable Object */;
4054 val
* var17
/* : ModelBuilder */;
4055 val
* var18
/* : ToolContext */;
4056 val
* var19
/* : OptionBool */;
4057 val
* var20
/* : nullable Object */;
4058 short int var21
/* : Bool */;
4059 val
* var22
/* : ResolutionBMizer */;
4060 val
* var_resolution_builder
/* var resolution_builder: ResolutionLayoutBuilder */;
4061 val
* var23
/* : ModelBuilder */;
4062 val
* var24
/* : ToolContext */;
4063 val
* var25
/* : OptionBool */;
4064 val
* var26
/* : nullable Object */;
4065 short int var27
/* : Bool */;
4066 val
* var28
/* : ResolutionHasher */;
4067 val
* var29
/* : PHModOperator */;
4068 val
* var30
/* : ModelBuilder */;
4069 val
* var31
/* : ToolContext */;
4070 val
* var32
/* : OptionBool */;
4071 val
* var33
/* : nullable Object */;
4072 short int var34
/* : Bool */;
4073 val
* var35
/* : ResolutionHasher */;
4074 val
* var36
/* : PHAndOperator */;
4075 val
* var37
/* : ResolutionColorer */;
4076 val
* var38
/* : Layout[MType] */;
4077 val
* var39
/* : Map[MClassType, Array[nullable MType]] */;
4078 val
* var40
/* : HashSet[MType] */;
4079 val
* var_all_unresolved
/* var all_unresolved: HashSet[MType] */;
4080 val
* var41
/* : Map[MClassDef, Set[MType]] */;
4081 val
* var42
/* : Collection[nullable Object] */;
4082 val
* var43
/* : Iterator[nullable Object] */;
4083 short int var44
/* : Bool */;
4084 val
* var45
/* : nullable Object */;
4085 val
* var_t
/* var t: Set[MType] */;
4086 val
* var47
/* : HashMap[MType, Int] */;
4087 val
* var_all_unresolved_types_colors
/* var all_unresolved_types_colors: HashMap[MType, Int] */;
4088 val
* var48
/* : Iterator[nullable Object] */;
4089 short int var49
/* : Bool */;
4090 val
* var50
/* : nullable Object */;
4091 val
* var_t51
/* var t: MType */;
4092 val
* var52
/* : nullable Layout[MType] */;
4093 val
* var53
/* : Map[Object, Int] */;
4094 short int var54
/* : Bool */;
4095 val
* var55
/* : nullable Layout[MType] */;
4096 val
* var56
/* : Map[Object, Int] */;
4097 val
* var57
/* : nullable Object */;
4098 long var58
/* : Int */;
4099 long var59
/* : Int */;
4100 long var61
/* : Int */;
4101 val
* var62
/* : nullable Object */;
4103 var
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypeabstract_collection__Setmodel__MType
);
4104 ((void (*)(val
*))(var
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var
) /* init on <var:HashMap[MClassType, Set[MType]]>*/;
4105 CHECK_NEW_hash_collection__HashMap(var
);
4106 var_mtype2unresolved
= var
;
4107 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
4108 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var1
) /* live_types on <var1:RapidTypeAnalysis>*/;
4109 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:HashSet[MClassType]>*/;
4111 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
4113 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
4115 var6
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
4116 ((void (*)(val
*))(var6
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var6
) /* init on <var6:HashSet[MType]>*/;
4117 CHECK_NEW_hash_collection__HashSet(var6
);
4119 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
4120 var8
= ((val
* (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var_mtype
, var7
) /* collect_mclassdefs on <var_mtype:MClassType>*/;
4121 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:Set[MClassDef]>*/;
4123 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
4125 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
4127 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__live_unresolved_types
]))(self
) /* live_unresolved_types on <self:SeparateCompiler>*/;
4128 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]]>*/;
4130 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__live_unresolved_types
]))(self
) /* live_unresolved_types on <self:SeparateCompiler>*/;
4131 var15
= ((val
* (*)(val
*, val
*))(var14
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var14
, var_cd
) /* [] on <var14:Map[MClassDef, Set[MType]]>*/;
4132 ((void (*)(val
*, val
*))(var_set
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_set
, var15
) /* add_all on <var_set:HashSet[MType]>*/;
4135 CONTINUE_label
: (void)0;
4136 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
4138 BREAK_label
: (void)0;
4139 ((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]]>*/;
4140 CONTINUE_label16
: (void)0;
4141 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
4143 BREAK_label16
: (void)0;
4144 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
4145 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var17
) /* toolcontext on <var17:ModelBuilder>*/;
4146 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_separate_compiler__ToolContext__opt_bm_typing
]))(var18
) /* opt_bm_typing on <var18:ToolContext>*/;
4147 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_opts__Option__value
]))(var19
) /* value on <var19:OptionBool>*/;
4148 var21
= ((struct instance_kernel__Bool
*)var20
)->value
; /* autounbox from nullable Object to Bool */;
4150 var22
= NEW_layout_builders__ResolutionBMizer(&type_layout_builders__ResolutionBMizer
);
4151 ((void (*)(val
*))(var22
->class->vft
[COLOR_layout_builders__ResolutionBMizer__init
]))(var22
) /* init on <var22:ResolutionBMizer>*/;
4152 CHECK_NEW_layout_builders__ResolutionBMizer(var22
);
4153 var_resolution_builder
= var22
;
4155 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
4156 var24
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var23
) /* toolcontext on <var23:ModelBuilder>*/;
4157 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phmod_typing
]))(var24
) /* opt_phmod_typing on <var24:ToolContext>*/;
4158 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_opts__Option__value
]))(var25
) /* value on <var25:OptionBool>*/;
4159 var27
= ((struct instance_kernel__Bool
*)var26
)->value
; /* autounbox from nullable Object to Bool */;
4161 var28
= NEW_layout_builders__ResolutionHasher(&type_layout_builders__ResolutionHasher
);
4162 var29
= NEW_layout_builders__PHModOperator(&type_layout_builders__PHModOperator
);
4163 ((void (*)(val
*))(var29
->class->vft
[COLOR_layout_builders__PHModOperator__init
]))(var29
) /* init on <var29:PHModOperator>*/;
4164 CHECK_NEW_layout_builders__PHModOperator(var29
);
4165 ((void (*)(val
*, val
*))(var28
->class->vft
[COLOR_layout_builders__ResolutionHasher__init
]))(var28
, var29
) /* init on <var28:ResolutionHasher>*/;
4166 CHECK_NEW_layout_builders__ResolutionHasher(var28
);
4167 var_resolution_builder
= var28
;
4169 var30
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
4170 var31
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var30
) /* toolcontext on <var30:ModelBuilder>*/;
4171 var32
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_separate_compiler__ToolContext__opt_phand_typing
]))(var31
) /* opt_phand_typing on <var31:ToolContext>*/;
4172 var33
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_opts__Option__value
]))(var32
) /* value on <var32:OptionBool>*/;
4173 var34
= ((struct instance_kernel__Bool
*)var33
)->value
; /* autounbox from nullable Object to Bool */;
4175 var35
= NEW_layout_builders__ResolutionHasher(&type_layout_builders__ResolutionHasher
);
4176 var36
= NEW_layout_builders__PHAndOperator(&type_layout_builders__PHAndOperator
);
4177 ((void (*)(val
*))(var36
->class->vft
[COLOR_layout_builders__PHAndOperator__init
]))(var36
) /* init on <var36:PHAndOperator>*/;
4178 CHECK_NEW_layout_builders__PHAndOperator(var36
);
4179 ((void (*)(val
*, val
*))(var35
->class->vft
[COLOR_layout_builders__ResolutionHasher__init
]))(var35
, var36
) /* init on <var35:ResolutionHasher>*/;
4180 CHECK_NEW_layout_builders__ResolutionHasher(var35
);
4181 var_resolution_builder
= var35
;
4183 var37
= NEW_layout_builders__ResolutionColorer(&type_layout_builders__ResolutionColorer
);
4184 ((void (*)(val
*))(var37
->class->vft
[COLOR_layout_builders__ResolutionColorer__init
]))(var37
) /* init on <var37:ResolutionColorer>*/;
4185 CHECK_NEW_layout_builders__ResolutionColorer(var37
);
4186 var_resolution_builder
= var37
;
4190 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>*/;
4191 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_layout_61d
]))(self
, var38
) /* resolution_layout= on <self:SeparateCompiler>*/;
4192 var39
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__build_resolution_tables
]))(self
, var_mtype2unresolved
) /* build_resolution_tables on <self:SeparateCompiler>*/;
4193 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_tables_61d
]))(self
, var39
) /* resolution_tables= on <self:SeparateCompiler>*/;
4194 var40
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
4195 ((void (*)(val
*))(var40
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var40
) /* init on <var40:HashSet[MType]>*/;
4196 CHECK_NEW_hash_collection__HashSet(var40
);
4197 var_all_unresolved
= var40
;
4198 var41
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__live_unresolved_types
]))(self
) /* live_unresolved_types on <self:SeparateCompiler>*/;
4199 var42
= ((val
* (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__MapRead__values
]))(var41
) /* values on <var41:Map[MClassDef, Set[MType]]>*/;
4200 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var42
) /* iterator on <var42:Collection[nullable Object](RemovableCollection[Set[MType]])>*/;
4202 var44
= ((short int (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var43
) /* is_ok on <var43:Iterator[nullable Object]>*/;
4204 var45
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var43
) /* item on <var43:Iterator[nullable Object]>*/;
4206 ((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]>*/;
4207 CONTINUE_label46
: (void)0;
4208 ((void (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var43
) /* next on <var43:Iterator[nullable Object]>*/;
4210 BREAK_label46
: (void)0;
4211 var47
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypekernel__Int
);
4212 ((void (*)(val
*))(var47
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var47
) /* init on <var47:HashMap[MType, Int]>*/;
4213 CHECK_NEW_hash_collection__HashMap(var47
);
4214 var_all_unresolved_types_colors
= var47
;
4215 var48
= ((val
* (*)(val
*))(var_all_unresolved
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_all_unresolved
) /* iterator on <var_all_unresolved:HashSet[MType]>*/;
4217 var49
= ((short int (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var48
) /* is_ok on <var48:Iterator[nullable Object]>*/;
4219 var50
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var48
) /* item on <var48:Iterator[nullable Object]>*/;
4221 var52
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_layout
]))(self
) /* resolution_layout on <self:SeparateCompiler>*/;
4222 if (var52
== NULL
) {
4223 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4224 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 538);
4227 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var52
) /* pos on <var52:nullable Layout[MType]>*/;
4229 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])>*/;
4231 var55
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_layout
]))(self
) /* resolution_layout on <self:SeparateCompiler>*/;
4232 if (var55
== NULL
) {
4233 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4234 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 539);
4237 var56
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var55
) /* pos on <var55:nullable Layout[MType]>*/;
4239 var57
= ((val
* (*)(val
*, val
*))(var56
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var56
, var_t51
) /* [] on <var56:Map[Object, Int](Map[MType, Int])>*/;
4240 ((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]>*/;
4243 { /* Inline kernel#Int#unary - (var58) */
4247 RET_LABEL60
:(void)0;
4249 var62
= BOX_kernel__Int(var59
); /* autobox from Int to nullable Object */
4250 ((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]>*/;
4252 CONTINUE_label63
: (void)0;
4253 ((void (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var48
) /* next on <var48:Iterator[nullable Object]>*/;
4255 BREAK_label63
: (void)0;
4256 ((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>*/;
4259 /* method separate_compiler#SeparateCompiler#compile_resolution_tables for (self: Object, Set[MType]) */
4260 void VIRTUAL_separate_compiler__SeparateCompiler__compile_resolution_tables(val
* self
, val
* p0
) {
4261 separate_compiler__SeparateCompiler__compile_resolution_tables(self
, p0
);
4264 /* method separate_compiler#SeparateCompiler#build_resolution_tables for (self: SeparateCompiler, Map[MClassType, Set[MType]]): Map[MClassType, Array[nullable MType]] */
4265 val
* separate_compiler__SeparateCompiler__build_resolution_tables(val
* self
, val
* p0
) {
4266 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
4267 val
* var_elements
/* var elements: Map[MClassType, Set[MType]] */;
4268 val
* var1
/* : HashMap[MClassType, Array[nullable MType]] */;
4269 val
* var_tables
/* var tables: HashMap[MClassType, Array[nullable MType]] */;
4270 val
* var2
/* : nullable Layout[MType] */;
4271 val
* var_layout
/* var layout: nullable Layout[MType] */;
4272 val
* var3
/* : MapIterator[Object, nullable Object] */;
4273 short int var4
/* : Bool */;
4274 val
* var5
/* : Object */;
4275 val
* var_mclasstype
/* var mclasstype: MClassType */;
4276 val
* var6
/* : nullable Object */;
4277 val
* var_mtypes
/* var mtypes: Set[MType] */;
4278 val
* var7
/* : Array[nullable MType] */;
4279 val
* var_table
/* var table: Array[nullable MType] */;
4280 val
* var8
/* : Iterator[nullable Object] */;
4281 short int var9
/* : Bool */;
4282 val
* var10
/* : nullable Object */;
4283 val
* var_mtype
/* var mtype: MType */;
4284 short int var11
/* : Bool */;
4287 val
* var12
/* : Map[Object, Map[Object, Int]] */;
4288 val
* var13
/* : nullable Object */;
4289 val
* var14
/* : nullable Object */;
4290 long var15
/* : Int */;
4291 long var_color
/* var color: Int */;
4292 val
* var16
/* : Map[Object, Int] */;
4293 val
* var17
/* : nullable Object */;
4294 long var18
/* : Int */;
4295 long var19
/* : Int */;
4296 short int var20
/* : Bool */;
4297 short int var22
/* : Bool */;
4300 const char* var_class_name
;
4301 short int var25
/* : Bool */;
4302 val
* var26
/* : Range[Int] */;
4303 long var27
/* : Int */;
4304 val
* var28
/* : Discrete */;
4305 val
* var29
/* : Discrete */;
4306 val
* var30
/* : Iterator[nullable Object] */;
4307 short int var31
/* : Bool */;
4308 val
* var32
/* : nullable Object */;
4309 long var_i
/* var i: Int */;
4310 long var33
/* : Int */;
4311 val
* var34
/* : null */;
4313 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType
);
4314 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var1
) /* init on <var1:HashMap[MClassType, Array[nullable MType]]>*/;
4315 CHECK_NEW_hash_collection__HashMap(var1
);
4317 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_layout
]))(self
) /* resolution_layout on <self:SeparateCompiler>*/;
4319 var3
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_elements
) /* iterator on <var_elements:Map[MClassType, Set[MType]]>*/;
4321 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var3
) /* is_ok on <var3:MapIterator[Object, nullable Object]>*/;
4323 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var3
) /* key on <var3:MapIterator[Object, nullable Object]>*/;
4324 var_mclasstype
= var5
;
4325 var6
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var3
) /* item on <var3:MapIterator[Object, nullable Object]>*/;
4327 var7
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
4328 ((void (*)(val
*))(var7
->class->vft
[COLOR_array__Array__init
]))(var7
) /* init on <var7:Array[nullable MType]>*/;
4329 CHECK_NEW_array__Array(var7
);
4331 var8
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mtypes
) /* iterator on <var_mtypes:Set[MType]>*/;
4333 var9
= ((short int (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var8
) /* is_ok on <var8:Iterator[nullable Object]>*/;
4335 var10
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var8
) /* item on <var8:Iterator[nullable Object]>*/;
4337 /* <var_layout:nullable Layout[MType]> isa PHLayout[MClassType, MType] */
4338 cltype
= type_layout_builders__PHLayoutmodel__MClassTypemodel__MType
.color
;
4339 idtype
= type_layout_builders__PHLayoutmodel__MClassTypemodel__MType
.id
;
4340 if(var_layout
== NULL
) {
4343 if(cltype
>= var_layout
->type
->table_size
) {
4346 var11
= var_layout
->type
->type_table
[cltype
] == idtype
;
4350 var12
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__hashes
]))(var_layout
) /* hashes on <var_layout:nullable Layout[MType](PHLayout[MClassType, MType])>*/;
4351 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]])>*/;
4352 var14
= ((val
* (*)(val
*, val
*))(var13
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var13
, var_mtype
) /* [] on <var13:nullable Object(Map[MType, Int])>*/;
4353 var15
= ((struct instance_kernel__Int
*)var14
)->value
; /* autounbox from nullable Object to Int */;
4356 if (var_layout
== NULL
) {
4357 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4358 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 563);
4361 var16
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MType]>*/;
4363 var17
= ((val
* (*)(val
*, val
*))(var16
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var16
, var_mtype
) /* [] on <var16:Map[Object, Int](Map[MType, Int])>*/;
4364 var18
= ((struct instance_kernel__Int
*)var17
)->value
; /* autounbox from nullable Object to Int */;
4367 var19
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MType]>*/;
4368 { /* Inline kernel#Int#<= (var19,var_color) */
4369 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
4370 /* <var_color:Int> isa OTHER */
4371 var22
= 1; /* easy <var_color:Int> isa OTHER*/
4373 var_class_name
= type_kernel__Int
.name
;
4374 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
4375 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
4378 var25
= var19
<= var_color
;
4381 RET_LABEL21
:(void)0;
4384 var26
= NEW_range__Range(&type_range__Rangekernel__Int
);
4385 var27
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MType]>*/;
4386 var28
= BOX_kernel__Int(var27
); /* autobox from Int to Discrete */
4387 var29
= BOX_kernel__Int(var_color
); /* autobox from Int to Discrete */
4388 ((void (*)(val
*, val
*, val
*))(var26
->class->vft
[COLOR_range__Range__without_last
]))(var26
, var28
, var29
) /* without_last on <var26:Range[Int]>*/;
4389 CHECK_NEW_range__Range(var26
);
4390 var30
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var26
) /* iterator on <var26:Range[Int]>*/;
4392 var31
= ((short int (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var30
) /* is_ok on <var30:Iterator[nullable Object]>*/;
4394 var32
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var30
) /* item on <var30:Iterator[nullable Object]>*/;
4395 var33
= ((struct instance_kernel__Int
*)var32
)->value
; /* autounbox from nullable Object to Int */;
4398 ((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]>*/;
4399 CONTINUE_label
: (void)0;
4400 ((void (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var30
) /* next on <var30:Iterator[nullable Object]>*/;
4402 BREAK_label
: (void)0;
4405 ((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]>*/;
4406 CONTINUE_label35
: (void)0;
4407 ((void (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var8
) /* next on <var8:Iterator[nullable Object]>*/;
4409 BREAK_label35
: (void)0;
4410 ((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]]>*/;
4411 CONTINUE_label36
: (void)0;
4412 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var3
) /* next on <var3:MapIterator[Object, nullable Object]>*/;
4414 BREAK_label36
: (void)0;
4420 /* method separate_compiler#SeparateCompiler#build_resolution_tables for (self: Object, Map[MClassType, Set[MType]]): Map[MClassType, Array[nullable MType]] */
4421 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_resolution_tables(val
* self
, val
* p0
) {
4422 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
4423 val
* var1
/* : Map[MClassType, Array[nullable MType]] */;
4424 var1
= separate_compiler__SeparateCompiler__build_resolution_tables(self
, p0
);
4429 /* method separate_compiler#SeparateCompiler#retrieve_partial_types for (self: SeparateCompiler, MType) */
4430 void separate_compiler__SeparateCompiler__retrieve_partial_types(val
* self
, val
* p0
) {
4431 val
* var_mtype
/* var mtype: MType */;
4432 short int var
/* : Bool */;
4435 val
* var1
/* : Array[MType] */;
4436 val
* var2
/* : Iterator[nullable Object] */;
4437 short int var3
/* : Bool */;
4438 val
* var4
/* : nullable Object */;
4439 val
* var_ft
/* var ft: MType */;
4440 short int var5
/* : Bool */;
4441 static val
* varonce
;
4442 val
* var6
/* : String */;
4443 char* var7
/* : NativeString */;
4444 long var8
/* : Int */;
4445 val
* var9
/* : String */;
4446 val
* var10
/* : Set[MType] */;
4447 short int var11
/* : Bool */;
4450 val
* var14
/* : MType */;
4451 short int var15
/* : Bool */;
4454 const char* var_class_name
;
4455 val
* var_mclass_type
/* var mclass_type: MClassType */;
4456 short int var18
/* : Bool */;
4459 const char* var_class_name21
;
4460 val
* var22
/* : MModule */;
4461 val
* var23
/* : MClass */;
4462 val
* var24
/* : Set[MProperty] */;
4463 val
* var25
/* : Iterator[nullable Object] */;
4464 short int var26
/* : Bool */;
4465 val
* var27
/* : nullable Object */;
4466 val
* var_vt
/* var vt: MProperty */;
4467 short int var28
/* : Bool */;
4470 val
* var31
/* : MVirtualType */;
4471 val
* var32
/* : MModule */;
4472 val
* var33
/* : MType */;
4473 val
* var34
/* : MModule */;
4474 val
* var35
/* : MType */;
4475 val
* var_anchored
/* var anchored: MType */;
4476 val
* var36
/* : Set[MType] */;
4478 /* <var_mtype:MType> isa MGenericType */
4479 cltype
= type_model__MGenericType
.color
;
4480 idtype
= type_model__MGenericType
.id
;
4481 if(cltype
>= var_mtype
->type
->table_size
) {
4484 var
= var_mtype
->type
->type_table
[cltype
] == idtype
;
4487 var1
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MType(MGenericType)>*/;
4488 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var1
) /* iterator on <var1:Array[MType]>*/;
4490 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var2
) /* is_ok on <var2:Iterator[nullable Object]>*/;
4492 var4
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var2
) /* item on <var2:Iterator[nullable Object]>*/;
4494 var5
= ((short int (*)(val
*))(var_ft
->class->vft
[COLOR_model__MType__need_anchor
]))(var_ft
) /* need_anchor on <var_ft:MType>*/;
4499 var7
= "Why do we need anchor here ?";
4501 var9
= string__NativeString__to_s_with_length(var7
, var8
);
4505 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var6
) /* print on <self:SeparateCompiler>*/;
4506 fprintf(stderr
, "Runtime error: %s", "Aborted");
4507 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 583);
4511 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__partial_types
]))(self
) /* partial_types on <self:SeparateCompiler>*/;
4512 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var10
, var_ft
) /* add on <var10:Set[MType]>*/;
4513 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__retrieve_partial_types
]))(self
, var_ft
) /* retrieve_partial_types on <self:SeparateCompiler>*/;
4514 CONTINUE_label
: (void)0;
4515 ((void (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var2
) /* next on <var2:Iterator[nullable Object]>*/;
4517 BREAK_label
: (void)0;
4520 /* <var_mtype:MType> isa MNullableType */
4521 cltype12
= type_model__MNullableType
.color
;
4522 idtype13
= type_model__MNullableType
.id
;
4523 if(cltype12
>= var_mtype
->type
->table_size
) {
4526 var11
= var_mtype
->type
->type_table
[cltype12
] == idtype13
;
4529 var14
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
4530 /* <var14:MType> isa MClassType */
4531 cltype16
= type_model__MClassType
.color
;
4532 idtype17
= type_model__MClassType
.id
;
4533 if(cltype16
>= var14
->type
->table_size
) {
4536 var15
= var14
->type
->type_table
[cltype16
] == idtype17
;
4539 var_class_name
= var14
== NULL ?
"null" : var14
->type
->name
;
4540 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
4541 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 591);
4544 var_mclass_type
= var14
;
4546 /* <var_mtype:MType> isa MClassType */
4547 cltype19
= type_model__MClassType
.color
;
4548 idtype20
= type_model__MClassType
.id
;
4549 if(cltype19
>= var_mtype
->type
->table_size
) {
4552 var18
= var_mtype
->type
->type_table
[cltype19
] == idtype20
;
4555 var_class_name21
= var_mtype
== NULL ?
"null" : var_mtype
->type
->name
;
4556 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name21
);
4557 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 593);
4560 var_mclass_type
= var_mtype
;
4562 var22
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
4563 var23
= ((val
* (*)(val
*))(var_mclass_type
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mclass_type
) /* mclass on <var_mclass_type:MClassType>*/;
4564 var24
= ((val
* (*)(val
*, val
*))(var22
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(var22
, var23
) /* properties on <var22:MModule>*/;
4565 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var24
) /* iterator on <var24:Set[MProperty]>*/;
4567 var26
= ((short int (*)(val
*))(var25
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var25
) /* is_ok on <var25:Iterator[nullable Object]>*/;
4569 var27
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var25
) /* item on <var25:Iterator[nullable Object]>*/;
4571 /* <var_vt:MProperty> isa MVirtualTypeProp */
4572 cltype29
= type_model__MVirtualTypeProp
.color
;
4573 idtype30
= type_model__MVirtualTypeProp
.id
;
4574 if(cltype29
>= var_vt
->type
->table_size
) {
4577 var28
= var_vt
->type
->type_table
[cltype29
] == idtype30
;
4580 var31
= ((val
* (*)(val
*))(var_vt
->class->vft
[COLOR_model__MVirtualTypeProp__mvirtualtype
]))(var_vt
) /* mvirtualtype on <var_vt:MProperty(MVirtualTypeProp)>*/;
4581 var32
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
4582 var33
= ((val
* (*)(val
*, val
*, val
*))(var31
->class->vft
[COLOR_model__MVirtualType__lookup_bound
]))(var31
, var32
, var_mclass_type
) /* lookup_bound on <var31:MVirtualType>*/;
4583 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
4584 var35
= ((val
* (*)(val
*, val
*, val
*))(var33
->class->vft
[COLOR_model__MType__anchor_to
]))(var33
, var34
, var_mclass_type
) /* anchor_to on <var33:MType>*/;
4585 var_anchored
= var35
;
4586 var36
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__partial_types
]))(self
) /* partial_types on <self:SeparateCompiler>*/;
4587 ((void (*)(val
*, val
*))(var36
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var36
, var_anchored
) /* add on <var36:Set[MType]>*/;
4590 CONTINUE_label37
: (void)0;
4591 ((void (*)(val
*))(var25
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var25
) /* next on <var25:Iterator[nullable Object]>*/;
4593 BREAK_label37
: (void)0;
4596 /* method separate_compiler#SeparateCompiler#retrieve_partial_types for (self: Object, MType) */
4597 void VIRTUAL_separate_compiler__SeparateCompiler__retrieve_partial_types(val
* self
, val
* p0
) {
4598 separate_compiler__SeparateCompiler__retrieve_partial_types(self
, p0
);
4601 /* method separate_compiler#SeparateCompiler#compile_module_to_c for (self: SeparateCompiler, MModule) */
4602 void separate_compiler__SeparateCompiler__compile_module_to_c(val
* self
, val
* p0
) {
4603 val
* var_mmodule
/* var mmodule: MModule */;
4604 val
* var
/* : MModule */;
4605 val
* var_old_module
/* var old_module: MModule */;
4606 val
* var1
/* : Array[MClassDef] */;
4607 val
* var2
/* : Iterator[nullable Object] */;
4608 short int var3
/* : Bool */;
4609 val
* var4
/* : nullable Object */;
4610 val
* var_cd
/* var cd: MClassDef */;
4611 val
* var5
/* : Array[MPropDef] */;
4612 val
* var6
/* : Iterator[nullable Object] */;
4613 short int var7
/* : Bool */;
4614 val
* var8
/* : nullable Object */;
4615 val
* var_pd
/* var pd: MPropDef */;
4616 short int var9
/* : Bool */;
4619 short int var10
/* : Bool */;
4620 val
* var11
/* : AbstractRuntimeFunction */;
4621 val
* var_r
/* var r: AbstractRuntimeFunction */;
4622 val
* var12
/* : AbstractRuntimeFunction */;
4623 val
* var_r2
/* var r2: AbstractRuntimeFunction */;
4625 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
4626 var_old_module
= var
;
4627 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule_61d
]))(self
, var_mmodule
) /* mainmodule= on <self:SeparateCompiler>*/;
4628 var1
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model__MModule__mclassdefs
]))(var_mmodule
) /* mclassdefs on <var_mmodule:MModule>*/;
4629 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var1
) /* iterator on <var1:Array[MClassDef]>*/;
4631 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var2
) /* is_ok on <var2:Iterator[nullable Object]>*/;
4633 var4
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var2
) /* item on <var2:Iterator[nullable Object]>*/;
4635 var5
= ((val
* (*)(val
*))(var_cd
->class->vft
[COLOR_model__MClassDef__mpropdefs
]))(var_cd
) /* mpropdefs on <var_cd:MClassDef>*/;
4636 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var5
) /* iterator on <var5:Array[MPropDef]>*/;
4638 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[nullable Object]>*/;
4640 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[nullable Object]>*/;
4642 /* <var_pd:MPropDef> isa MMethodDef */
4643 cltype
= type_model__MMethodDef
.color
;
4644 idtype
= type_model__MMethodDef
.id
;
4645 if(cltype
>= var_pd
->type
->table_size
) {
4648 var9
= var_pd
->type
->type_table
[cltype
] == idtype
;
4652 goto CONTINUE_label
;
4655 var11
= ((val
* (*)(val
*))(var_pd
->class->vft
[COLOR_separate_compiler__MMethodDef__separate_runtime_function
]))(var_pd
) /* separate_runtime_function on <var_pd:MPropDef(MMethodDef)>*/;
4657 ((void (*)(val
*, val
*))(var_r
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__compile_to_c
]))(var_r
, self
) /* compile_to_c on <var_r:AbstractRuntimeFunction>*/;
4658 var12
= ((val
* (*)(val
*))(var_pd
->class->vft
[COLOR_separate_compiler__MMethodDef__virtual_runtime_function
]))(var_pd
) /* virtual_runtime_function on <var_pd:MPropDef(MMethodDef)>*/;
4660 ((void (*)(val
*, val
*))(var_r2
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__compile_to_c
]))(var_r2
, self
) /* compile_to_c on <var_r2:AbstractRuntimeFunction>*/;
4661 CONTINUE_label
: (void)0;
4662 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[nullable Object]>*/;
4664 BREAK_label
: (void)0;
4665 CONTINUE_label13
: (void)0;
4666 ((void (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var2
) /* next on <var2:Iterator[nullable Object]>*/;
4668 BREAK_label13
: (void)0;
4669 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule_61d
]))(self
, var_old_module
) /* mainmodule= on <self:SeparateCompiler>*/;
4672 /* method separate_compiler#SeparateCompiler#compile_module_to_c for (self: Object, MModule) */
4673 void VIRTUAL_separate_compiler__SeparateCompiler__compile_module_to_c(val
* self
, val
* p0
) {
4674 separate_compiler__SeparateCompiler__compile_module_to_c(self
, p0
);
4677 /* method separate_compiler#SeparateCompiler#compile_type_to_c for (self: SeparateCompiler, MType) */
4678 void separate_compiler__SeparateCompiler__compile_type_to_c(val
* self
, val
* p0
) {
4679 val
* var_mtype
/* var mtype: MType */;
4680 val
* var
/* : String */;
4681 val
* var_c_name
/* var c_name: String */;
4682 val
* var1
/* : SeparateCompilerVisitor */;
4683 val
* var_v
/* var v: SeparateCompilerVisitor */;
4684 static val
* varonce
;
4685 val
* var2
/* : String */;
4686 char* var3
/* : NativeString */;
4687 long var4
/* : Int */;
4688 val
* var5
/* : String */;
4689 static val
* varonce6
;
4690 val
* var7
/* : String */;
4691 char* var8
/* : NativeString */;
4692 long var9
/* : Int */;
4693 val
* var10
/* : String */;
4694 val
* var11
/* : Array[Object] */;
4695 long var12
/* : Int */;
4696 val
* var13
/* : NativeArray[Object] */;
4697 val
* var14
/* : String */;
4698 static val
* varonce15
;
4699 val
* var16
/* : String */;
4700 char* var17
/* : NativeString */;
4701 long var18
/* : Int */;
4702 val
* var19
/* : String */;
4703 val
* var20
/* : Array[Object] */;
4704 long var21
/* : Int */;
4705 val
* var22
/* : NativeArray[Object] */;
4706 val
* var23
/* : String */;
4707 static val
* varonce24
;
4708 val
* var25
/* : String */;
4709 char* var26
/* : NativeString */;
4710 long var27
/* : Int */;
4711 val
* var28
/* : String */;
4712 static val
* varonce29
;
4713 val
* var30
/* : String */;
4714 char* var31
/* : NativeString */;
4715 long var32
/* : Int */;
4716 val
* var33
/* : String */;
4717 val
* var34
/* : Array[Object] */;
4718 long var35
/* : Int */;
4719 val
* var36
/* : NativeArray[Object] */;
4720 val
* var37
/* : String */;
4721 static val
* varonce38
;
4722 val
* var39
/* : String */;
4723 char* var40
/* : NativeString */;
4724 long var41
/* : Int */;
4725 val
* var42
/* : String */;
4726 static val
* varonce43
;
4727 val
* var44
/* : String */;
4728 char* var45
/* : NativeString */;
4729 long var46
/* : Int */;
4730 val
* var47
/* : String */;
4731 val
* var48
/* : Array[Object] */;
4732 long var49
/* : Int */;
4733 val
* var50
/* : NativeArray[Object] */;
4734 val
* var51
/* : String */;
4735 val
* var52
/* : nullable Layout[MType] */;
4736 val
* var53
/* : Map[Object, Int] */;
4737 val
* var54
/* : nullable Object */;
4738 static val
* varonce55
;
4739 val
* var56
/* : String */;
4740 char* var57
/* : NativeString */;
4741 long var58
/* : Int */;
4742 val
* var59
/* : String */;
4743 val
* var60
/* : Array[Object] */;
4744 long var61
/* : Int */;
4745 val
* var62
/* : NativeArray[Object] */;
4746 val
* var63
/* : String */;
4747 static val
* varonce64
;
4748 val
* var65
/* : String */;
4749 char* var66
/* : NativeString */;
4750 long var67
/* : Int */;
4751 val
* var68
/* : String */;
4752 static val
* varonce69
;
4753 val
* var70
/* : String */;
4754 char* var71
/* : NativeString */;
4755 long var72
/* : Int */;
4756 val
* var73
/* : String */;
4757 val
* var74
/* : Array[Object] */;
4758 long var75
/* : Int */;
4759 val
* var76
/* : NativeArray[Object] */;
4760 val
* var77
/* : String */;
4761 val
* var78
/* : nullable Layout[MType] */;
4762 val
* var_layout
/* var layout: nullable Layout[MType] */;
4763 short int var79
/* : Bool */;
4766 val
* var80
/* : Map[Object, Int] */;
4767 val
* var81
/* : nullable Object */;
4768 static val
* varonce82
;
4769 val
* var83
/* : String */;
4770 char* var84
/* : NativeString */;
4771 long var85
/* : Int */;
4772 val
* var86
/* : String */;
4773 val
* var87
/* : Array[Object] */;
4774 long var88
/* : Int */;
4775 val
* var89
/* : NativeArray[Object] */;
4776 val
* var90
/* : String */;
4777 val
* var91
/* : Map[Object, Int] */;
4778 val
* var92
/* : nullable Object */;
4779 static val
* varonce93
;
4780 val
* var94
/* : String */;
4781 char* var95
/* : NativeString */;
4782 long var96
/* : Int */;
4783 val
* var97
/* : String */;
4784 val
* var98
/* : Array[Object] */;
4785 long var99
/* : Int */;
4786 val
* var100
/* : NativeArray[Object] */;
4787 val
* var101
/* : String */;
4788 short int var102
/* : Bool */;
4791 static val
* varonce105
;
4792 val
* var106
/* : String */;
4793 char* var107
/* : NativeString */;
4794 long var108
/* : Int */;
4795 val
* var109
/* : String */;
4796 static val
* varonce110
;
4797 val
* var111
/* : String */;
4798 char* var112
/* : NativeString */;
4799 long var113
/* : Int */;
4800 val
* var114
/* : String */;
4801 short int var115
/* : Bool */;
4802 static val
* varonce116
;
4803 val
* var117
/* : String */;
4804 char* var118
/* : NativeString */;
4805 long var119
/* : Int */;
4806 val
* var120
/* : String */;
4807 val
* var121
/* : Array[Object] */;
4808 long var122
/* : Int */;
4809 val
* var123
/* : NativeArray[Object] */;
4810 val
* var124
/* : String */;
4811 static val
* varonce125
;
4812 val
* var126
/* : String */;
4813 char* var127
/* : NativeString */;
4814 long var128
/* : Int */;
4815 val
* var129
/* : String */;
4816 static val
* varonce130
;
4817 val
* var131
/* : String */;
4818 char* var132
/* : NativeString */;
4819 long var133
/* : Int */;
4820 val
* var134
/* : String */;
4821 val
* var135
/* : Array[Object] */;
4822 long var136
/* : Int */;
4823 val
* var137
/* : NativeArray[Object] */;
4824 val
* var138
/* : String */;
4825 static val
* varonce139
;
4826 val
* var140
/* : String */;
4827 char* var141
/* : NativeString */;
4828 long var142
/* : Int */;
4829 val
* var143
/* : String */;
4830 val
* var144
/* : Map[MType, Array[nullable MType]] */;
4831 val
* var145
/* : nullable Object */;
4832 long var146
/* : Int */;
4833 static val
* varonce147
;
4834 val
* var148
/* : String */;
4835 char* var149
/* : NativeString */;
4836 long var150
/* : Int */;
4837 val
* var151
/* : String */;
4838 val
* var152
/* : Array[Object] */;
4839 long var153
/* : Int */;
4840 val
* var154
/* : NativeArray[Object] */;
4841 val
* var155
/* : Object */;
4842 val
* var156
/* : String */;
4843 static val
* varonce157
;
4844 val
* var158
/* : String */;
4845 char* var159
/* : NativeString */;
4846 long var160
/* : Int */;
4847 val
* var161
/* : String */;
4848 val
* var162
/* : Map[MType, Array[nullable MType]] */;
4849 val
* var163
/* : nullable Object */;
4850 val
* var164
/* : Iterator[nullable Object] */;
4851 short int var165
/* : Bool */;
4852 val
* var166
/* : nullable Object */;
4853 val
* var_stype
/* var stype: nullable MType */;
4854 val
* var167
/* : null */;
4855 short int var168
/* : Bool */;
4856 static val
* varonce169
;
4857 val
* var170
/* : String */;
4858 char* var171
/* : NativeString */;
4859 long var172
/* : Int */;
4860 val
* var173
/* : String */;
4861 val
* var174
/* : nullable Layout[MType] */;
4862 val
* var175
/* : Map[Object, Int] */;
4863 val
* var176
/* : nullable Object */;
4864 static val
* varonce177
;
4865 val
* var178
/* : String */;
4866 char* var179
/* : NativeString */;
4867 long var180
/* : Int */;
4868 val
* var181
/* : String */;
4869 static val
* varonce182
;
4870 val
* var183
/* : String */;
4871 char* var184
/* : NativeString */;
4872 long var185
/* : Int */;
4873 val
* var186
/* : String */;
4874 val
* var187
/* : Array[Object] */;
4875 long var188
/* : Int */;
4876 val
* var189
/* : NativeArray[Object] */;
4877 val
* var190
/* : String */;
4878 static val
* varonce191
;
4879 val
* var192
/* : String */;
4880 char* var193
/* : NativeString */;
4881 long var194
/* : Int */;
4882 val
* var195
/* : String */;
4883 static val
* varonce196
;
4884 val
* var197
/* : String */;
4885 char* var198
/* : NativeString */;
4886 long var199
/* : Int */;
4887 val
* var200
/* : String */;
4889 var
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
4891 var1
= NEW_separate_compiler__SeparateCompilerVisitor(&type_separate_compiler__SeparateCompilerVisitor
);
4892 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init
]))(var1
, self
) /* init on <var1:SeparateCompilerVisitor>*/;
4893 CHECK_NEW_separate_compiler__SeparateCompilerVisitor(var1
);
4898 var3
= "/* runtime type ";
4900 var5
= string__NativeString__to_s_with_length(var3
, var4
);
4909 var10
= string__NativeString__to_s_with_length(var8
, var9
);
4913 var11
= NEW_array__Array(&type_array__Arraykernel__Object
);
4914 { /* var11 = array_instance Array[Object] */
4916 var13
= NEW_array__NativeArray(var12
, &type_array__NativeArraykernel__Object
);
4917 ((struct instance_array__NativeArray
*)var13
)->values
[0] = (val
*) var2
;
4918 ((struct instance_array__NativeArray
*)var13
)->values
[1] = (val
*) var_mtype
;
4919 ((struct instance_array__NativeArray
*)var13
)->values
[2] = (val
*) var7
;
4920 ((void (*)(val
*, val
*, long))(var11
->class->vft
[COLOR_array__Array__with_native
]))(var11
, var13
, var12
) /* with_native on <var11:Array[Object]>*/;
4921 CHECK_NEW_array__Array(var11
);
4923 var14
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_string__Object__to_s
]))(var11
) /* to_s on <var11:Array[Object]>*/;
4924 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var14
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
4930 var19
= string__NativeString__to_s_with_length(var17
, var18
);
4934 var20
= NEW_array__Array(&type_array__Arraykernel__Object
);
4935 { /* var20 = array_instance Array[Object] */
4937 var22
= NEW_array__NativeArray(var21
, &type_array__NativeArraykernel__Object
);
4938 ((struct instance_array__NativeArray
*)var22
)->values
[0] = (val
*) var16
;
4939 ((struct instance_array__NativeArray
*)var22
)->values
[1] = (val
*) var_c_name
;
4940 ((void (*)(val
*, val
*, long))(var20
->class->vft
[COLOR_array__Array__with_native
]))(var20
, var22
, var21
) /* with_native on <var20:Array[Object]>*/;
4941 CHECK_NEW_array__Array(var20
);
4943 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_string__Object__to_s
]))(var20
) /* to_s on <var20:Array[Object]>*/;
4947 var26
= "extern const struct type type_";
4949 var28
= string__NativeString__to_s_with_length(var26
, var27
);
4958 var33
= string__NativeString__to_s_with_length(var31
, var32
);
4962 var34
= NEW_array__Array(&type_array__Arraykernel__Object
);
4963 { /* var34 = array_instance Array[Object] */
4965 var36
= NEW_array__NativeArray(var35
, &type_array__NativeArraykernel__Object
);
4966 ((struct instance_array__NativeArray
*)var36
)->values
[0] = (val
*) var25
;
4967 ((struct instance_array__NativeArray
*)var36
)->values
[1] = (val
*) var_c_name
;
4968 ((struct instance_array__NativeArray
*)var36
)->values
[2] = (val
*) var30
;
4969 ((void (*)(val
*, val
*, long))(var34
->class->vft
[COLOR_array__Array__with_native
]))(var34
, var36
, var35
) /* with_native on <var34:Array[Object]>*/;
4970 CHECK_NEW_array__Array(var34
);
4972 var37
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_string__Object__to_s
]))(var34
) /* to_s on <var34:Array[Object]>*/;
4973 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var23
, var37
) /* provide_declaration on <self:SeparateCompiler>*/;
4977 var40
= "const struct type type_";
4979 var42
= string__NativeString__to_s_with_length(var40
, var41
);
4988 var47
= string__NativeString__to_s_with_length(var45
, var46
);
4992 var48
= NEW_array__Array(&type_array__Arraykernel__Object
);
4993 { /* var48 = array_instance Array[Object] */
4995 var50
= NEW_array__NativeArray(var49
, &type_array__NativeArraykernel__Object
);
4996 ((struct instance_array__NativeArray
*)var50
)->values
[0] = (val
*) var39
;
4997 ((struct instance_array__NativeArray
*)var50
)->values
[1] = (val
*) var_c_name
;
4998 ((struct instance_array__NativeArray
*)var50
)->values
[2] = (val
*) var44
;
4999 ((void (*)(val
*, val
*, long))(var48
->class->vft
[COLOR_array__Array__with_native
]))(var48
, var50
, var49
) /* with_native on <var48:Array[Object]>*/;
5000 CHECK_NEW_array__Array(var48
);
5002 var51
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_string__Object__to_s
]))(var48
) /* to_s on <var48:Array[Object]>*/;
5003 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var51
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5004 var52
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout
]))(self
) /* type_layout on <self:SeparateCompiler>*/;
5005 if (var52
== NULL
) {
5006 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5007 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 635);
5010 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var52
) /* ids on <var52:nullable Layout[MType]>*/;
5012 var54
= ((val
* (*)(val
*, val
*))(var53
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var53
, var_mtype
) /* [] on <var53:Map[Object, Int](Map[MType, Int])>*/;
5018 var59
= string__NativeString__to_s_with_length(var57
, var58
);
5022 var60
= NEW_array__Array(&type_array__Arraykernel__Object
);
5023 { /* var60 = array_instance Array[Object] */
5025 var62
= NEW_array__NativeArray(var61
, &type_array__NativeArraykernel__Object
);
5026 ((struct instance_array__NativeArray
*)var62
)->values
[0] = (val
*) var54
;
5027 ((struct instance_array__NativeArray
*)var62
)->values
[1] = (val
*) var56
;
5028 ((void (*)(val
*, val
*, long))(var60
->class->vft
[COLOR_array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
5029 CHECK_NEW_array__Array(var60
);
5031 var63
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
5032 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var63
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5038 var68
= string__NativeString__to_s_with_length(var66
, var67
);
5045 var71
= "\", /* class_name_string */";
5047 var73
= string__NativeString__to_s_with_length(var71
, var72
);
5051 var74
= NEW_array__Array(&type_array__Arraykernel__Object
);
5052 { /* var74 = array_instance Array[Object] */
5054 var76
= NEW_array__NativeArray(var75
, &type_array__NativeArraykernel__Object
);
5055 ((struct instance_array__NativeArray
*)var76
)->values
[0] = (val
*) var65
;
5056 ((struct instance_array__NativeArray
*)var76
)->values
[1] = (val
*) var_mtype
;
5057 ((struct instance_array__NativeArray
*)var76
)->values
[2] = (val
*) var70
;
5058 ((void (*)(val
*, val
*, long))(var74
->class->vft
[COLOR_array__Array__with_native
]))(var74
, var76
, var75
) /* with_native on <var74:Array[Object]>*/;
5059 CHECK_NEW_array__Array(var74
);
5061 var77
= ((val
* (*)(val
*))(var74
->class->vft
[COLOR_string__Object__to_s
]))(var74
) /* to_s on <var74:Array[Object]>*/;
5062 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var77
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5063 var78
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout
]))(self
) /* type_layout on <self:SeparateCompiler>*/;
5065 /* <var_layout:nullable Layout[MType]> isa PHLayout[MType, MType] */
5066 cltype
= type_layout_builders__PHLayoutmodel__MTypemodel__MType
.color
;
5067 idtype
= type_layout_builders__PHLayoutmodel__MTypemodel__MType
.id
;
5068 if(var_layout
== NULL
) {
5071 if(cltype
>= var_layout
->type
->table_size
) {
5074 var79
= var_layout
->type
->type_table
[cltype
] == idtype
;
5078 var80
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__masks
]))(var_layout
) /* masks on <var_layout:nullable Layout[MType](PHLayout[MType, MType])>*/;
5079 var81
= ((val
* (*)(val
*, val
*))(var80
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var80
, var_mtype
) /* [] on <var80:Map[Object, Int](Map[MType, Int])>*/;
5085 var86
= string__NativeString__to_s_with_length(var84
, var85
);
5089 var87
= NEW_array__Array(&type_array__Arraykernel__Object
);
5090 { /* var87 = array_instance Array[Object] */
5092 var89
= NEW_array__NativeArray(var88
, &type_array__NativeArraykernel__Object
);
5093 ((struct instance_array__NativeArray
*)var89
)->values
[0] = (val
*) var81
;
5094 ((struct instance_array__NativeArray
*)var89
)->values
[1] = (val
*) var83
;
5095 ((void (*)(val
*, val
*, long))(var87
->class->vft
[COLOR_array__Array__with_native
]))(var87
, var89
, var88
) /* with_native on <var87:Array[Object]>*/;
5096 CHECK_NEW_array__Array(var87
);
5098 var90
= ((val
* (*)(val
*))(var87
->class->vft
[COLOR_string__Object__to_s
]))(var87
) /* to_s on <var87:Array[Object]>*/;
5099 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var90
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5101 if (var_layout
== NULL
) {
5102 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5103 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 641);
5106 var91
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__Layout__pos
]))(var_layout
) /* pos on <var_layout:nullable Layout[MType]>*/;
5108 var92
= ((val
* (*)(val
*, val
*))(var91
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var91
, var_mtype
) /* [] on <var91:Map[Object, Int](Map[MType, Int])>*/;
5114 var97
= string__NativeString__to_s_with_length(var95
, var96
);
5118 var98
= NEW_array__Array(&type_array__Arraykernel__Object
);
5119 { /* var98 = array_instance Array[Object] */
5121 var100
= NEW_array__NativeArray(var99
, &type_array__NativeArraykernel__Object
);
5122 ((struct instance_array__NativeArray
*)var100
)->values
[0] = (val
*) var92
;
5123 ((struct instance_array__NativeArray
*)var100
)->values
[1] = (val
*) var94
;
5124 ((void (*)(val
*, val
*, long))(var98
->class->vft
[COLOR_array__Array__with_native
]))(var98
, var100
, var99
) /* with_native on <var98:Array[Object]>*/;
5125 CHECK_NEW_array__Array(var98
);
5127 var101
= ((val
* (*)(val
*))(var98
->class->vft
[COLOR_string__Object__to_s
]))(var98
) /* to_s on <var98:Array[Object]>*/;
5128 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var101
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5130 /* <var_mtype:MType> isa MNullableType */
5131 cltype103
= type_model__MNullableType
.color
;
5132 idtype104
= type_model__MNullableType
.id
;
5133 if(cltype103
>= var_mtype
->type
->table_size
) {
5136 var102
= var_mtype
->type
->type_table
[cltype103
] == idtype104
;
5140 var106
= varonce105
;
5144 var109
= string__NativeString__to_s_with_length(var107
, var108
);
5146 varonce105
= var106
;
5148 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var106
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5151 var111
= varonce110
;
5155 var114
= string__NativeString__to_s_with_length(var112
, var113
);
5157 varonce110
= var111
;
5159 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var111
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5161 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>*/;
5164 var117
= varonce116
;
5166 var118
= "resolution_table_";
5168 var120
= string__NativeString__to_s_with_length(var118
, var119
);
5170 varonce116
= var117
;
5172 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
5173 { /* var121 = array_instance Array[Object] */
5175 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
5176 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var117
;
5177 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var_c_name
;
5178 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
5179 CHECK_NEW_array__Array(var121
);
5181 var124
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
5182 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var124
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
5184 var126
= varonce125
;
5186 var127
= "&resolution_table_";
5188 var129
= string__NativeString__to_s_with_length(var127
, var128
);
5190 varonce125
= var126
;
5193 var131
= varonce130
;
5197 var134
= string__NativeString__to_s_with_length(var132
, var133
);
5199 varonce130
= var131
;
5201 var135
= NEW_array__Array(&type_array__Arraykernel__Object
);
5202 { /* var135 = array_instance Array[Object] */
5204 var137
= NEW_array__NativeArray(var136
, &type_array__NativeArraykernel__Object
);
5205 ((struct instance_array__NativeArray
*)var137
)->values
[0] = (val
*) var126
;
5206 ((struct instance_array__NativeArray
*)var137
)->values
[1] = (val
*) var_c_name
;
5207 ((struct instance_array__NativeArray
*)var137
)->values
[2] = (val
*) var131
;
5208 ((void (*)(val
*, val
*, long))(var135
->class->vft
[COLOR_array__Array__with_native
]))(var135
, var137
, var136
) /* with_native on <var135:Array[Object]>*/;
5209 CHECK_NEW_array__Array(var135
);
5211 var138
= ((val
* (*)(val
*))(var135
->class->vft
[COLOR_string__Object__to_s
]))(var135
) /* to_s on <var135:Array[Object]>*/;
5212 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var138
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5215 var140
= varonce139
;
5219 var143
= string__NativeString__to_s_with_length(var141
, var142
);
5221 varonce139
= var140
;
5223 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var140
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5225 var144
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_tables
]))(self
) /* type_tables on <self:SeparateCompiler>*/;
5226 var145
= ((val
* (*)(val
*, val
*))(var144
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var144
, var_mtype
) /* [] on <var144:Map[MType, Array[nullable MType]]>*/;
5227 var146
= ((long (*)(val
*))(var145
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var145
) /* length on <var145:nullable Object(Array[nullable MType])>*/;
5229 var148
= varonce147
;
5233 var151
= string__NativeString__to_s_with_length(var149
, var150
);
5235 varonce147
= var148
;
5237 var152
= NEW_array__Array(&type_array__Arraykernel__Object
);
5238 { /* var152 = array_instance Array[Object] */
5240 var154
= NEW_array__NativeArray(var153
, &type_array__NativeArraykernel__Object
);
5241 var155
= BOX_kernel__Int(var146
); /* autobox from Int to Object */
5242 ((struct instance_array__NativeArray
*)var154
)->values
[0] = (val
*) var155
;
5243 ((struct instance_array__NativeArray
*)var154
)->values
[1] = (val
*) var148
;
5244 ((void (*)(val
*, val
*, long))(var152
->class->vft
[COLOR_array__Array__with_native
]))(var152
, var154
, var153
) /* with_native on <var152:Array[Object]>*/;
5245 CHECK_NEW_array__Array(var152
);
5247 var156
= ((val
* (*)(val
*))(var152
->class->vft
[COLOR_string__Object__to_s
]))(var152
) /* to_s on <var152:Array[Object]>*/;
5248 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var156
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5250 var158
= varonce157
;
5254 var161
= string__NativeString__to_s_with_length(var159
, var160
);
5256 varonce157
= var158
;
5258 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var158
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5259 var162
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_tables
]))(self
) /* type_tables on <self:SeparateCompiler>*/;
5260 var163
= ((val
* (*)(val
*, val
*))(var162
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var162
, var_mtype
) /* [] on <var162:Map[MType, Array[nullable MType]]>*/;
5261 var164
= ((val
* (*)(val
*))(var163
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var163
) /* iterator on <var163:nullable Object(Array[nullable MType])>*/;
5263 var165
= ((short int (*)(val
*))(var164
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var164
) /* is_ok on <var164:Iterator[nullable Object]>*/;
5265 var166
= ((val
* (*)(val
*))(var164
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var164
) /* item on <var164:Iterator[nullable Object]>*/;
5268 if (var_stype
== NULL
) {
5269 var168
= 1; /* is null */
5271 var168
= 0; /* arg is null but recv is not */
5275 var170
= varonce169
;
5277 var171
= "-1, /* empty */";
5279 var173
= string__NativeString__to_s_with_length(var171
, var172
);
5281 varonce169
= var170
;
5283 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var170
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5285 var174
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout
]))(self
) /* type_layout on <self:SeparateCompiler>*/;
5286 if (var174
== NULL
) {
5287 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5288 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 660);
5291 var175
= ((val
* (*)(val
*))(var174
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var174
) /* ids on <var174:nullable Layout[MType]>*/;
5293 var176
= ((val
* (*)(val
*, val
*))(var175
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var175
, var_stype
) /* [] on <var175:Map[Object, Int](Map[MType, Int])>*/;
5295 var178
= varonce177
;
5299 var181
= string__NativeString__to_s_with_length(var179
, var180
);
5301 varonce177
= var178
;
5304 var183
= varonce182
;
5308 var186
= string__NativeString__to_s_with_length(var184
, var185
);
5310 varonce182
= var183
;
5312 var187
= NEW_array__Array(&type_array__Arraykernel__Object
);
5313 { /* var187 = array_instance Array[Object] */
5315 var189
= NEW_array__NativeArray(var188
, &type_array__NativeArraykernel__Object
);
5316 ((struct instance_array__NativeArray
*)var189
)->values
[0] = (val
*) var176
;
5317 ((struct instance_array__NativeArray
*)var189
)->values
[1] = (val
*) var178
;
5318 ((struct instance_array__NativeArray
*)var189
)->values
[2] = (val
*) var_stype
;
5319 ((struct instance_array__NativeArray
*)var189
)->values
[3] = (val
*) var183
;
5320 ((void (*)(val
*, val
*, long))(var187
->class->vft
[COLOR_array__Array__with_native
]))(var187
, var189
, var188
) /* with_native on <var187:Array[Object]>*/;
5321 CHECK_NEW_array__Array(var187
);
5323 var190
= ((val
* (*)(val
*))(var187
->class->vft
[COLOR_string__Object__to_s
]))(var187
) /* to_s on <var187:Array[Object]>*/;
5324 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var190
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5326 CONTINUE_label
: (void)0;
5327 ((void (*)(val
*))(var164
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var164
) /* next on <var164:Iterator[nullable Object]>*/;
5329 BREAK_label
: (void)0;
5331 var192
= varonce191
;
5335 var195
= string__NativeString__to_s_with_length(var193
, var194
);
5337 varonce191
= var192
;
5339 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var192
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5341 var197
= varonce196
;
5345 var200
= string__NativeString__to_s_with_length(var198
, var199
);
5347 varonce196
= var197
;
5349 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var197
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5352 /* method separate_compiler#SeparateCompiler#compile_type_to_c for (self: Object, MType) */
5353 void VIRTUAL_separate_compiler__SeparateCompiler__compile_type_to_c(val
* self
, val
* p0
) {
5354 separate_compiler__SeparateCompiler__compile_type_to_c(self
, p0
);
5357 /* method separate_compiler#SeparateCompiler#compile_type_resolution_table for (self: SeparateCompiler, MType): Bool */
5358 short int separate_compiler__SeparateCompiler__compile_type_resolution_table(val
* self
, val
* p0
) {
5359 short int var
/* : Bool */;
5360 val
* var_mtype
/* var mtype: MType */;
5361 short int var1
/* : Bool */;
5364 val
* var2
/* : MType */;
5365 short int var3
/* : Bool */;
5368 const char* var_class_name
;
5369 val
* var_mclass_type
/* var mclass_type: MClassType */;
5370 short int var6
/* : Bool */;
5373 const char* var_class_name9
;
5374 val
* var10
/* : Map[MClassType, Array[nullable MType]] */;
5375 short int var11
/* : Bool */;
5376 short int var12
/* : Bool */;
5377 short int var13
/* : Bool */;
5378 val
* var14
/* : nullable Layout[MType] */;
5379 val
* var_layout
/* var layout: nullable Layout[MType] */;
5380 static val
* varonce
;
5381 val
* var15
/* : String */;
5382 char* var16
/* : NativeString */;
5383 long var17
/* : Int */;
5384 val
* var18
/* : String */;
5385 val
* var19
/* : String */;
5386 val
* var20
/* : Array[Object] */;
5387 long var21
/* : Int */;
5388 val
* var22
/* : NativeArray[Object] */;
5389 val
* var23
/* : String */;
5390 static val
* varonce24
;
5391 val
* var25
/* : String */;
5392 char* var26
/* : NativeString */;
5393 long var27
/* : Int */;
5394 val
* var28
/* : String */;
5395 val
* var29
/* : String */;
5396 static val
* varonce30
;
5397 val
* var31
/* : String */;
5398 char* var32
/* : NativeString */;
5399 long var33
/* : Int */;
5400 val
* var34
/* : String */;
5401 val
* var35
/* : Array[Object] */;
5402 long var36
/* : Int */;
5403 val
* var37
/* : NativeArray[Object] */;
5404 val
* var38
/* : String */;
5405 val
* var39
/* : AbstractCompilerVisitor */;
5406 val
* var_v
/* var v: SeparateCompilerVisitor */;
5407 static val
* varonce40
;
5408 val
* var41
/* : String */;
5409 char* var42
/* : NativeString */;
5410 long var43
/* : Int */;
5411 val
* var44
/* : String */;
5412 val
* var45
/* : String */;
5413 static val
* varonce46
;
5414 val
* var47
/* : String */;
5415 char* var48
/* : NativeString */;
5416 long var49
/* : Int */;
5417 val
* var50
/* : String */;
5418 val
* var51
/* : Array[Object] */;
5419 long var52
/* : Int */;
5420 val
* var53
/* : NativeArray[Object] */;
5421 val
* var54
/* : String */;
5422 short int var55
/* : Bool */;
5425 val
* var58
/* : Map[Object, Int] */;
5426 val
* var59
/* : nullable Object */;
5427 static val
* varonce60
;
5428 val
* var61
/* : String */;
5429 char* var62
/* : NativeString */;
5430 long var63
/* : Int */;
5431 val
* var64
/* : String */;
5432 val
* var65
/* : Array[Object] */;
5433 long var66
/* : Int */;
5434 val
* var67
/* : NativeArray[Object] */;
5435 val
* var68
/* : String */;
5436 static val
* varonce69
;
5437 val
* var70
/* : String */;
5438 char* var71
/* : NativeString */;
5439 long var72
/* : Int */;
5440 val
* var73
/* : String */;
5441 static val
* varonce74
;
5442 val
* var75
/* : String */;
5443 char* var76
/* : NativeString */;
5444 long var77
/* : Int */;
5445 val
* var78
/* : String */;
5446 val
* var79
/* : Map[MClassType, Array[nullable MType]] */;
5447 val
* var80
/* : nullable Object */;
5448 val
* var81
/* : Iterator[nullable Object] */;
5449 short int var82
/* : Bool */;
5450 val
* var83
/* : nullable Object */;
5451 val
* var_t
/* var t: nullable MType */;
5452 val
* var84
/* : null */;
5453 short int var85
/* : Bool */;
5454 static val
* varonce86
;
5455 val
* var87
/* : String */;
5456 char* var88
/* : NativeString */;
5457 long var89
/* : Int */;
5458 val
* var90
/* : String */;
5459 val
* var91
/* : MModule */;
5460 short int var92
/* : Bool */;
5461 val
* var93
/* : MType */;
5462 val
* var_tv
/* var tv: MType */;
5463 val
* var94
/* : nullable Layout[MType] */;
5464 val
* var95
/* : Map[Object, Int] */;
5465 short int var96
/* : Bool */;
5466 static val
* varonce97
;
5467 val
* var98
/* : String */;
5468 char* var99
/* : NativeString */;
5469 long var100
/* : Int */;
5470 val
* var101
/* : String */;
5471 val
* var102
/* : String */;
5472 val
* var103
/* : Array[Object] */;
5473 long var104
/* : Int */;
5474 val
* var105
/* : NativeArray[Object] */;
5475 val
* var106
/* : String */;
5476 static val
* varonce107
;
5477 val
* var108
/* : String */;
5478 char* var109
/* : NativeString */;
5479 long var110
/* : Int */;
5480 val
* var111
/* : String */;
5481 val
* var112
/* : String */;
5482 static val
* varonce113
;
5483 val
* var114
/* : String */;
5484 char* var115
/* : NativeString */;
5485 long var116
/* : Int */;
5486 val
* var117
/* : String */;
5487 static val
* varonce118
;
5488 val
* var119
/* : String */;
5489 char* var120
/* : NativeString */;
5490 long var121
/* : Int */;
5491 val
* var122
/* : String */;
5492 static val
* varonce123
;
5493 val
* var124
/* : String */;
5494 char* var125
/* : NativeString */;
5495 long var126
/* : Int */;
5496 val
* var127
/* : String */;
5497 val
* var128
/* : Array[Object] */;
5498 long var129
/* : Int */;
5499 val
* var130
/* : NativeArray[Object] */;
5500 val
* var131
/* : String */;
5501 static val
* varonce132
;
5502 val
* var133
/* : String */;
5503 char* var134
/* : NativeString */;
5504 long var135
/* : Int */;
5505 val
* var136
/* : String */;
5506 static val
* varonce137
;
5507 val
* var138
/* : String */;
5508 char* var139
/* : NativeString */;
5509 long var140
/* : Int */;
5510 val
* var141
/* : String */;
5511 static val
* varonce142
;
5512 val
* var143
/* : String */;
5513 char* var144
/* : NativeString */;
5514 long var145
/* : Int */;
5515 val
* var146
/* : String */;
5516 val
* var147
/* : Array[Object] */;
5517 long var148
/* : Int */;
5518 val
* var149
/* : NativeArray[Object] */;
5519 val
* var150
/* : String */;
5520 static val
* varonce151
;
5521 val
* var152
/* : String */;
5522 char* var153
/* : NativeString */;
5523 long var154
/* : Int */;
5524 val
* var155
/* : String */;
5525 static val
* varonce156
;
5526 val
* var157
/* : String */;
5527 char* var158
/* : NativeString */;
5528 long var159
/* : Int */;
5529 val
* var160
/* : String */;
5530 short int var161
/* : Bool */;
5532 /* <var_mtype:MType> isa MNullableType */
5533 cltype
= type_model__MNullableType
.color
;
5534 idtype
= type_model__MNullableType
.id
;
5535 if(cltype
>= var_mtype
->type
->table_size
) {
5538 var1
= var_mtype
->type
->type_table
[cltype
] == idtype
;
5541 var2
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
5542 /* <var2:MType> isa MClassType */
5543 cltype4
= type_model__MClassType
.color
;
5544 idtype5
= type_model__MClassType
.id
;
5545 if(cltype4
>= var2
->type
->table_size
) {
5548 var3
= var2
->type
->type_table
[cltype4
] == idtype5
;
5551 var_class_name
= var2
== NULL ?
"null" : var2
->type
->name
;
5552 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5553 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 671);
5556 var_mclass_type
= var2
;
5558 /* <var_mtype:MType> isa MClassType */
5559 cltype7
= type_model__MClassType
.color
;
5560 idtype8
= type_model__MClassType
.id
;
5561 if(cltype7
>= var_mtype
->type
->table_size
) {
5564 var6
= var_mtype
->type
->type_table
[cltype7
] == idtype8
;
5567 var_class_name9
= var_mtype
== NULL ?
"null" : var_mtype
->type
->name
;
5568 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name9
);
5569 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 673);
5572 var_mclass_type
= var_mtype
;
5574 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_tables
]))(self
) /* resolution_tables on <self:SeparateCompiler>*/;
5575 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]]>*/;
5583 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_layout
]))(self
) /* resolution_layout on <self:SeparateCompiler>*/;
5588 var16
= "resolution_table_";
5590 var18
= string__NativeString__to_s_with_length(var16
, var17
);
5594 var19
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
5595 var20
= NEW_array__Array(&type_array__Arraykernel__Object
);
5596 { /* var20 = array_instance Array[Object] */
5598 var22
= NEW_array__NativeArray(var21
, &type_array__NativeArraykernel__Object
);
5599 ((struct instance_array__NativeArray
*)var22
)->values
[0] = (val
*) var15
;
5600 ((struct instance_array__NativeArray
*)var22
)->values
[1] = (val
*) var19
;
5601 ((void (*)(val
*, val
*, long))(var20
->class->vft
[COLOR_array__Array__with_native
]))(var20
, var22
, var21
) /* with_native on <var20:Array[Object]>*/;
5602 CHECK_NEW_array__Array(var20
);
5604 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_string__Object__to_s
]))(var20
) /* to_s on <var20:Array[Object]>*/;
5608 var26
= "extern const struct types resolution_table_";
5610 var28
= string__NativeString__to_s_with_length(var26
, var27
);
5614 var29
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
5620 var34
= string__NativeString__to_s_with_length(var32
, var33
);
5624 var35
= NEW_array__Array(&type_array__Arraykernel__Object
);
5625 { /* var35 = array_instance Array[Object] */
5627 var37
= NEW_array__NativeArray(var36
, &type_array__NativeArraykernel__Object
);
5628 ((struct instance_array__NativeArray
*)var37
)->values
[0] = (val
*) var25
;
5629 ((struct instance_array__NativeArray
*)var37
)->values
[1] = (val
*) var29
;
5630 ((struct instance_array__NativeArray
*)var37
)->values
[2] = (val
*) var31
;
5631 ((void (*)(val
*, val
*, long))(var35
->class->vft
[COLOR_array__Array__with_native
]))(var35
, var37
, var36
) /* with_native on <var35:Array[Object]>*/;
5632 CHECK_NEW_array__Array(var35
);
5634 var38
= ((val
* (*)(val
*))(var35
->class->vft
[COLOR_string__Object__to_s
]))(var35
) /* to_s on <var35:Array[Object]>*/;
5635 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var23
, var38
) /* provide_declaration on <self:SeparateCompiler>*/;
5636 var39
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
5641 var42
= "const struct types resolution_table_";
5643 var44
= string__NativeString__to_s_with_length(var42
, var43
);
5647 var45
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
5653 var50
= string__NativeString__to_s_with_length(var48
, var49
);
5657 var51
= NEW_array__Array(&type_array__Arraykernel__Object
);
5658 { /* var51 = array_instance Array[Object] */
5660 var53
= NEW_array__NativeArray(var52
, &type_array__NativeArraykernel__Object
);
5661 ((struct instance_array__NativeArray
*)var53
)->values
[0] = (val
*) var41
;
5662 ((struct instance_array__NativeArray
*)var53
)->values
[1] = (val
*) var45
;
5663 ((struct instance_array__NativeArray
*)var53
)->values
[2] = (val
*) var47
;
5664 ((void (*)(val
*, val
*, long))(var51
->class->vft
[COLOR_array__Array__with_native
]))(var51
, var53
, var52
) /* with_native on <var51:Array[Object]>*/;
5665 CHECK_NEW_array__Array(var51
);
5667 var54
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_string__Object__to_s
]))(var51
) /* to_s on <var51:Array[Object]>*/;
5668 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var54
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5669 /* <var_layout:nullable Layout[MType]> isa PHLayout[MClassType, MType] */
5670 cltype56
= type_layout_builders__PHLayoutmodel__MClassTypemodel__MType
.color
;
5671 idtype57
= type_layout_builders__PHLayoutmodel__MClassTypemodel__MType
.id
;
5672 if(var_layout
== NULL
) {
5675 if(cltype56
>= var_layout
->type
->table_size
) {
5678 var55
= var_layout
->type
->type_table
[cltype56
] == idtype57
;
5682 var58
= ((val
* (*)(val
*))(var_layout
->class->vft
[COLOR_layout_builders__PHLayout__masks
]))(var_layout
) /* masks on <var_layout:nullable Layout[MType](PHLayout[MClassType, MType])>*/;
5683 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])>*/;
5689 var64
= string__NativeString__to_s_with_length(var62
, var63
);
5693 var65
= NEW_array__Array(&type_array__Arraykernel__Object
);
5694 { /* var65 = array_instance Array[Object] */
5696 var67
= NEW_array__NativeArray(var66
, &type_array__NativeArraykernel__Object
);
5697 ((struct instance_array__NativeArray
*)var67
)->values
[0] = (val
*) var59
;
5698 ((struct instance_array__NativeArray
*)var67
)->values
[1] = (val
*) var61
;
5699 ((void (*)(val
*, val
*, long))(var65
->class->vft
[COLOR_array__Array__with_native
]))(var65
, var67
, var66
) /* with_native on <var65:Array[Object]>*/;
5700 CHECK_NEW_array__Array(var65
);
5702 var68
= ((val
* (*)(val
*))(var65
->class->vft
[COLOR_string__Object__to_s
]))(var65
) /* to_s on <var65:Array[Object]>*/;
5703 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var68
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5708 var71
= "0, /* dummy */";
5710 var73
= string__NativeString__to_s_with_length(var71
, var72
);
5714 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var70
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5721 var78
= string__NativeString__to_s_with_length(var76
, var77
);
5725 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var75
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5726 var79
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_tables
]))(self
) /* resolution_tables on <self:SeparateCompiler>*/;
5727 var80
= ((val
* (*)(val
*, val
*))(var79
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var79
, var_mclass_type
) /* [] on <var79:Map[MClassType, Array[nullable MType]]>*/;
5728 var81
= ((val
* (*)(val
*))(var80
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var80
) /* iterator on <var80:nullable Object(Array[nullable MType])>*/;
5730 var82
= ((short int (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var81
) /* is_ok on <var81:Iterator[nullable Object]>*/;
5732 var83
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var81
) /* item on <var81:Iterator[nullable Object]>*/;
5735 if (var_t
== NULL
) {
5736 var85
= 1; /* is null */
5738 var85
= 0; /* arg is null but recv is not */
5744 var88
= "NULL, /* empty */";
5746 var90
= string__NativeString__to_s_with_length(var88
, var89
);
5750 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var87
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5752 var91
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(self
) /* mainmodule on <self:SeparateCompiler>*/;
5754 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)>*/;
5756 var94
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_layout
]))(self
) /* type_layout on <self:SeparateCompiler>*/;
5757 if (var94
== NULL
) {
5758 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5759 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 700);
5762 var95
= ((val
* (*)(val
*))(var94
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var94
) /* ids on <var94:nullable Layout[MType]>*/;
5764 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])>*/;
5771 var101
= string__NativeString__to_s_with_length(var99
, var100
);
5775 var102
= ((val
* (*)(val
*))(var_tv
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_tv
) /* c_name on <var_tv:MType>*/;
5776 var103
= NEW_array__Array(&type_array__Arraykernel__Object
);
5777 { /* var103 = array_instance Array[Object] */
5779 var105
= NEW_array__NativeArray(var104
, &type_array__NativeArraykernel__Object
);
5780 ((struct instance_array__NativeArray
*)var105
)->values
[0] = (val
*) var98
;
5781 ((struct instance_array__NativeArray
*)var105
)->values
[1] = (val
*) var102
;
5782 ((void (*)(val
*, val
*, long))(var103
->class->vft
[COLOR_array__Array__with_native
]))(var103
, var105
, var104
) /* with_native on <var103:Array[Object]>*/;
5783 CHECK_NEW_array__Array(var103
);
5785 var106
= ((val
* (*)(val
*))(var103
->class->vft
[COLOR_string__Object__to_s
]))(var103
) /* to_s on <var103:Array[Object]>*/;
5786 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var106
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
5788 var108
= varonce107
;
5792 var111
= string__NativeString__to_s_with_length(var109
, var110
);
5794 varonce107
= var108
;
5796 var112
= ((val
* (*)(val
*))(var_tv
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_tv
) /* c_name on <var_tv:MType>*/;
5798 var114
= varonce113
;
5802 var117
= string__NativeString__to_s_with_length(var115
, var116
);
5804 varonce113
= var114
;
5807 var119
= varonce118
;
5811 var122
= string__NativeString__to_s_with_length(var120
, var121
);
5813 varonce118
= var119
;
5816 var124
= varonce123
;
5820 var127
= string__NativeString__to_s_with_length(var125
, var126
);
5822 varonce123
= var124
;
5824 var128
= NEW_array__Array(&type_array__Arraykernel__Object
);
5825 { /* var128 = array_instance Array[Object] */
5827 var130
= NEW_array__NativeArray(var129
, &type_array__NativeArraykernel__Object
);
5828 ((struct instance_array__NativeArray
*)var130
)->values
[0] = (val
*) var108
;
5829 ((struct instance_array__NativeArray
*)var130
)->values
[1] = (val
*) var112
;
5830 ((struct instance_array__NativeArray
*)var130
)->values
[2] = (val
*) var114
;
5831 ((struct instance_array__NativeArray
*)var130
)->values
[3] = (val
*) var_t
;
5832 ((struct instance_array__NativeArray
*)var130
)->values
[4] = (val
*) var119
;
5833 ((struct instance_array__NativeArray
*)var130
)->values
[5] = (val
*) var_tv
;
5834 ((struct instance_array__NativeArray
*)var130
)->values
[6] = (val
*) var124
;
5835 ((void (*)(val
*, val
*, long))(var128
->class->vft
[COLOR_array__Array__with_native
]))(var128
, var130
, var129
) /* with_native on <var128:Array[Object]>*/;
5836 CHECK_NEW_array__Array(var128
);
5838 var131
= ((val
* (*)(val
*))(var128
->class->vft
[COLOR_string__Object__to_s
]))(var128
) /* to_s on <var128:Array[Object]>*/;
5839 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var131
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5842 var133
= varonce132
;
5844 var134
= "NULL, /* empty (";
5846 var136
= string__NativeString__to_s_with_length(var134
, var135
);
5848 varonce132
= var133
;
5851 var138
= varonce137
;
5855 var141
= string__NativeString__to_s_with_length(var139
, var140
);
5857 varonce137
= var138
;
5860 var143
= varonce142
;
5862 var144
= " not a live type) */";
5864 var146
= string__NativeString__to_s_with_length(var144
, var145
);
5866 varonce142
= var143
;
5868 var147
= NEW_array__Array(&type_array__Arraykernel__Object
);
5869 { /* var147 = array_instance Array[Object] */
5871 var149
= NEW_array__NativeArray(var148
, &type_array__NativeArraykernel__Object
);
5872 ((struct instance_array__NativeArray
*)var149
)->values
[0] = (val
*) var133
;
5873 ((struct instance_array__NativeArray
*)var149
)->values
[1] = (val
*) var_t
;
5874 ((struct instance_array__NativeArray
*)var149
)->values
[2] = (val
*) var138
;
5875 ((struct instance_array__NativeArray
*)var149
)->values
[3] = (val
*) var_tv
;
5876 ((struct instance_array__NativeArray
*)var149
)->values
[4] = (val
*) var143
;
5877 ((void (*)(val
*, val
*, long))(var147
->class->vft
[COLOR_array__Array__with_native
]))(var147
, var149
, var148
) /* with_native on <var147:Array[Object]>*/;
5878 CHECK_NEW_array__Array(var147
);
5880 var150
= ((val
* (*)(val
*))(var147
->class->vft
[COLOR_string__Object__to_s
]))(var147
) /* to_s on <var147:Array[Object]>*/;
5881 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var150
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5884 CONTINUE_label
: (void)0;
5885 ((void (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var81
) /* next on <var81:Iterator[nullable Object]>*/;
5887 BREAK_label
: (void)0;
5889 var152
= varonce151
;
5893 var155
= string__NativeString__to_s_with_length(var153
, var154
);
5895 varonce151
= var152
;
5897 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var152
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5899 var157
= varonce156
;
5903 var160
= string__NativeString__to_s_with_length(var158
, var159
);
5905 varonce156
= var157
;
5907 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var157
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
5914 /* method separate_compiler#SeparateCompiler#compile_type_resolution_table for (self: Object, MType): Bool */
5915 short int VIRTUAL_separate_compiler__SeparateCompiler__compile_type_resolution_table(val
* self
, val
* p0
) {
5916 short int var
/* : Bool */;
5917 short int var1
/* : Bool */;
5918 var1
= separate_compiler__SeparateCompiler__compile_type_resolution_table(self
, p0
);
5923 /* method separate_compiler#SeparateCompiler#compile_class_to_c for (self: SeparateCompiler, MClass) */
5924 void separate_compiler__SeparateCompiler__compile_class_to_c(val
* self
, val
* p0
) {
5925 val
* var_mclass
/* var mclass: MClass */;
5926 val
* var
/* : MClassDef */;
5927 val
* var1
/* : MClassType */;
5928 val
* var_mtype
/* var mtype: MClassType */;
5929 val
* var2
/* : String */;
5930 val
* var_c_name
/* var c_name: String */;
5931 val
* var3
/* : Map[MClass, Array[nullable MPropDef]] */;
5932 val
* var4
/* : nullable Object */;
5933 val
* var_vft
/* var vft: Array[nullable MPropDef] */;
5934 val
* var5
/* : Map[MClass, Array[nullable MPropDef]] */;
5935 val
* var6
/* : nullable Object */;
5936 val
* var_attrs
/* var attrs: Array[nullable MPropDef] */;
5937 val
* var7
/* : AbstractCompilerVisitor */;
5938 val
* var_v
/* var v: SeparateCompilerVisitor */;
5939 short int var8
/* : Bool */;
5940 short int var9
/* : Bool */;
5941 val
* var10
/* : RapidTypeAnalysis */;
5942 val
* var11
/* : HashSet[MClass] */;
5943 short int var12
/* : Bool */;
5944 short int var13
/* : Bool */;
5945 short int var_
/* var : Bool */;
5946 val
* var14
/* : String */;
5947 static val
* varonce
;
5948 val
* var15
/* : String */;
5949 char* var16
/* : NativeString */;
5950 long var17
/* : Int */;
5951 val
* var18
/* : String */;
5952 short int var19
/* : Bool */;
5953 short int var_20
/* var : Bool */;
5954 val
* var21
/* : String */;
5955 static val
* varonce22
;
5956 val
* var23
/* : String */;
5957 char* var24
/* : NativeString */;
5958 long var25
/* : Int */;
5959 val
* var26
/* : String */;
5960 short int var27
/* : Bool */;
5961 short int var_is_dead
/* var is_dead: Bool */;
5962 static val
* varonce28
;
5963 val
* var29
/* : String */;
5964 char* var30
/* : NativeString */;
5965 long var31
/* : Int */;
5966 val
* var32
/* : String */;
5967 static val
* varonce33
;
5968 val
* var34
/* : String */;
5969 char* var35
/* : NativeString */;
5970 long var36
/* : Int */;
5971 val
* var37
/* : String */;
5972 val
* var38
/* : Array[Object] */;
5973 long var39
/* : Int */;
5974 val
* var40
/* : NativeArray[Object] */;
5975 val
* var41
/* : String */;
5976 short int var42
/* : Bool */;
5977 static val
* varonce43
;
5978 val
* var44
/* : String */;
5979 char* var45
/* : NativeString */;
5980 long var46
/* : Int */;
5981 val
* var47
/* : String */;
5982 val
* var48
/* : Array[Object] */;
5983 long var49
/* : Int */;
5984 val
* var50
/* : NativeArray[Object] */;
5985 val
* var51
/* : String */;
5986 static val
* varonce52
;
5987 val
* var53
/* : String */;
5988 char* var54
/* : NativeString */;
5989 long var55
/* : Int */;
5990 val
* var56
/* : String */;
5991 static val
* varonce57
;
5992 val
* var58
/* : String */;
5993 char* var59
/* : NativeString */;
5994 long var60
/* : Int */;
5995 val
* var61
/* : String */;
5996 val
* var62
/* : Array[Object] */;
5997 long var63
/* : Int */;
5998 val
* var64
/* : NativeArray[Object] */;
5999 val
* var65
/* : String */;
6000 static val
* varonce66
;
6001 val
* var67
/* : String */;
6002 char* var68
/* : NativeString */;
6003 long var69
/* : Int */;
6004 val
* var70
/* : String */;
6005 static val
* varonce71
;
6006 val
* var72
/* : String */;
6007 char* var73
/* : NativeString */;
6008 long var74
/* : Int */;
6009 val
* var75
/* : String */;
6010 val
* var76
/* : Array[Object] */;
6011 long var77
/* : Int */;
6012 val
* var78
/* : NativeArray[Object] */;
6013 val
* var79
/* : String */;
6014 long var80
/* : Int */;
6015 static val
* varonce81
;
6016 val
* var82
/* : String */;
6017 char* var83
/* : NativeString */;
6018 long var84
/* : Int */;
6019 val
* var85
/* : String */;
6020 val
* var86
/* : Array[Object] */;
6021 long var87
/* : Int */;
6022 val
* var88
/* : NativeArray[Object] */;
6023 val
* var89
/* : Object */;
6024 val
* var90
/* : String */;
6025 static val
* varonce91
;
6026 val
* var92
/* : String */;
6027 char* var93
/* : NativeString */;
6028 long var94
/* : Int */;
6029 val
* var95
/* : String */;
6030 val
* var96
/* : Range[Int] */;
6031 long var97
/* : Int */;
6032 long var98
/* : Int */;
6033 val
* var99
/* : Discrete */;
6034 val
* var100
/* : Discrete */;
6035 val
* var101
/* : Iterator[nullable Object] */;
6036 short int var102
/* : Bool */;
6037 val
* var103
/* : nullable Object */;
6038 long var_i
/* var i: Int */;
6039 long var104
/* : Int */;
6040 val
* var105
/* : nullable Object */;
6041 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
6042 val
* var106
/* : null */;
6043 short int var107
/* : Bool */;
6044 static val
* varonce108
;
6045 val
* var109
/* : String */;
6046 char* var110
/* : NativeString */;
6047 long var111
/* : Int */;
6048 val
* var112
/* : String */;
6049 short int var113
/* : Bool */;
6052 val
* var114
/* : AbstractRuntimeFunction */;
6053 val
* var_rf
/* var rf: AbstractRuntimeFunction */;
6054 val
* var115
/* : String */;
6055 static val
* varonce116
;
6056 val
* var117
/* : String */;
6057 char* var118
/* : NativeString */;
6058 long var119
/* : Int */;
6059 val
* var120
/* : String */;
6060 val
* var121
/* : String */;
6061 static val
* varonce122
;
6062 val
* var123
/* : String */;
6063 char* var124
/* : NativeString */;
6064 long var125
/* : Int */;
6065 val
* var126
/* : String */;
6066 val
* var127
/* : MModule */;
6067 static val
* varonce128
;
6068 val
* var129
/* : String */;
6069 char* var130
/* : NativeString */;
6070 long var131
/* : Int */;
6071 val
* var132
/* : String */;
6072 static val
* varonce133
;
6073 val
* var134
/* : String */;
6074 char* var135
/* : NativeString */;
6075 long var136
/* : Int */;
6076 val
* var137
/* : String */;
6077 static val
* varonce138
;
6078 val
* var139
/* : String */;
6079 char* var140
/* : NativeString */;
6080 long var141
/* : Int */;
6081 val
* var142
/* : String */;
6082 val
* var143
/* : Array[Object] */;
6083 long var144
/* : Int */;
6084 val
* var145
/* : NativeArray[Object] */;
6085 val
* var146
/* : String */;
6086 static val
* varonce147
;
6087 val
* var148
/* : String */;
6088 char* var149
/* : NativeString */;
6089 long var150
/* : Int */;
6090 val
* var151
/* : String */;
6091 static val
* varonce152
;
6092 val
* var153
/* : String */;
6093 char* var154
/* : NativeString */;
6094 long var155
/* : Int */;
6095 val
* var156
/* : String */;
6096 val
* var157
/* : String */;
6097 static val
* varonce158
;
6098 val
* var159
/* : String */;
6099 char* var160
/* : NativeString */;
6100 long var161
/* : Int */;
6101 val
* var162
/* : String */;
6102 short int var163
/* : Bool */;
6103 val
* var164
/* : CodeWriter */;
6104 static val
* varonce165
;
6105 val
* var166
/* : String */;
6106 char* var167
/* : NativeString */;
6107 long var168
/* : Int */;
6108 val
* var169
/* : String */;
6109 static val
* varonce170
;
6110 val
* var171
/* : String */;
6111 char* var172
/* : NativeString */;
6112 long var173
/* : Int */;
6113 val
* var174
/* : String */;
6114 val
* var175
/* : Array[Object] */;
6115 long var176
/* : Int */;
6116 val
* var177
/* : NativeArray[Object] */;
6117 val
* var178
/* : String */;
6118 val
* var179
/* : CodeWriter */;
6119 static val
* varonce180
;
6120 val
* var181
/* : String */;
6121 char* var182
/* : NativeString */;
6122 long var183
/* : Int */;
6123 val
* var184
/* : String */;
6124 val
* var185
/* : CodeWriter */;
6125 static val
* varonce186
;
6126 val
* var187
/* : String */;
6127 char* var188
/* : NativeString */;
6128 long var189
/* : Int */;
6129 val
* var190
/* : String */;
6130 val
* var191
/* : CodeWriter */;
6131 val
* var192
/* : String */;
6132 static val
* varonce193
;
6133 val
* var194
/* : String */;
6134 char* var195
/* : NativeString */;
6135 long var196
/* : Int */;
6136 val
* var197
/* : String */;
6137 val
* var198
/* : Array[Object] */;
6138 long var199
/* : Int */;
6139 val
* var200
/* : NativeArray[Object] */;
6140 val
* var201
/* : String */;
6141 val
* var202
/* : CodeWriter */;
6142 static val
* varonce203
;
6143 val
* var204
/* : String */;
6144 char* var205
/* : NativeString */;
6145 long var206
/* : Int */;
6146 val
* var207
/* : String */;
6147 val
* var208
/* : RapidTypeAnalysis */;
6148 val
* var209
/* : HashSet[MClassType] */;
6149 short int var210
/* : Bool */;
6150 short int var211
/* : Bool */;
6151 val
* var212
/* : CodeWriter */;
6152 static val
* varonce213
;
6153 val
* var214
/* : String */;
6154 char* var215
/* : NativeString */;
6155 long var216
/* : Int */;
6156 val
* var217
/* : String */;
6157 static val
* varonce218
;
6158 val
* var219
/* : String */;
6159 char* var220
/* : NativeString */;
6160 long var221
/* : Int */;
6161 val
* var222
/* : String */;
6162 val
* var223
/* : String */;
6163 static val
* varonce224
;
6164 val
* var225
/* : String */;
6165 char* var226
/* : NativeString */;
6166 long var227
/* : Int */;
6167 val
* var228
/* : String */;
6168 val
* var229
/* : Array[Object] */;
6169 long var230
/* : Int */;
6170 val
* var231
/* : NativeArray[Object] */;
6171 val
* var232
/* : String */;
6172 static val
* varonce233
;
6173 val
* var234
/* : String */;
6174 char* var235
/* : NativeString */;
6175 long var236
/* : Int */;
6176 val
* var237
/* : String */;
6177 static val
* varonce238
;
6178 val
* var239
/* : String */;
6179 char* var240
/* : NativeString */;
6180 long var241
/* : Int */;
6181 val
* var242
/* : String */;
6182 val
* var243
/* : Array[Object] */;
6183 long var244
/* : Int */;
6184 val
* var245
/* : NativeArray[Object] */;
6185 val
* var246
/* : String */;
6186 static val
* varonce247
;
6187 val
* var248
/* : String */;
6188 char* var249
/* : NativeString */;
6189 long var250
/* : Int */;
6190 val
* var251
/* : String */;
6191 val
* var252
/* : String */;
6192 static val
* varonce253
;
6193 val
* var254
/* : String */;
6194 char* var255
/* : NativeString */;
6195 long var256
/* : Int */;
6196 val
* var257
/* : String */;
6197 val
* var258
/* : String */;
6198 static val
* varonce259
;
6199 val
* var260
/* : String */;
6200 char* var261
/* : NativeString */;
6201 long var262
/* : Int */;
6202 val
* var263
/* : String */;
6203 val
* var264
/* : Array[Object] */;
6204 long var265
/* : Int */;
6205 val
* var266
/* : NativeArray[Object] */;
6206 val
* var267
/* : String */;
6207 static val
* varonce268
;
6208 val
* var269
/* : String */;
6209 char* var270
/* : NativeString */;
6210 long var271
/* : Int */;
6211 val
* var272
/* : String */;
6212 static val
* varonce273
;
6213 val
* var274
/* : String */;
6214 char* var275
/* : NativeString */;
6215 long var276
/* : Int */;
6216 val
* var277
/* : String */;
6217 static val
* varonce278
;
6218 val
* var279
/* : String */;
6219 char* var280
/* : NativeString */;
6220 long var281
/* : Int */;
6221 val
* var282
/* : String */;
6222 val
* var283
/* : Array[Object] */;
6223 long var284
/* : Int */;
6224 val
* var285
/* : NativeArray[Object] */;
6225 val
* var286
/* : String */;
6226 static val
* varonce287
;
6227 val
* var288
/* : String */;
6228 char* var289
/* : NativeString */;
6229 long var290
/* : Int */;
6230 val
* var291
/* : String */;
6231 val
* var292
/* : Array[Object] */;
6232 long var293
/* : Int */;
6233 val
* var294
/* : NativeArray[Object] */;
6234 val
* var295
/* : String */;
6235 static val
* varonce296
;
6236 val
* var297
/* : String */;
6237 char* var298
/* : NativeString */;
6238 long var299
/* : Int */;
6239 val
* var300
/* : String */;
6240 static val
* varonce301
;
6241 val
* var302
/* : String */;
6242 char* var303
/* : NativeString */;
6243 long var304
/* : Int */;
6244 val
* var305
/* : String */;
6245 val
* var306
/* : Array[Object] */;
6246 long var307
/* : Int */;
6247 val
* var308
/* : NativeArray[Object] */;
6248 val
* var309
/* : String */;
6249 static val
* varonce310
;
6250 val
* var311
/* : String */;
6251 char* var312
/* : NativeString */;
6252 long var313
/* : Int */;
6253 val
* var314
/* : String */;
6254 val
* var315
/* : Array[Object] */;
6255 long var316
/* : Int */;
6256 val
* var317
/* : NativeArray[Object] */;
6257 val
* var318
/* : String */;
6258 static val
* varonce319
;
6259 val
* var320
/* : String */;
6260 char* var321
/* : NativeString */;
6261 long var322
/* : Int */;
6262 val
* var323
/* : String */;
6263 static val
* varonce324
;
6264 val
* var325
/* : String */;
6265 char* var326
/* : NativeString */;
6266 long var327
/* : Int */;
6267 val
* var328
/* : String */;
6268 val
* var329
/* : Array[Object] */;
6269 long var330
/* : Int */;
6270 val
* var331
/* : NativeArray[Object] */;
6271 val
* var332
/* : String */;
6272 static val
* varonce333
;
6273 val
* var334
/* : String */;
6274 char* var335
/* : NativeString */;
6275 long var336
/* : Int */;
6276 val
* var337
/* : String */;
6277 static val
* varonce338
;
6278 val
* var339
/* : String */;
6279 char* var340
/* : NativeString */;
6280 long var341
/* : Int */;
6281 val
* var342
/* : String */;
6282 static val
* varonce343
;
6283 val
* var344
/* : String */;
6284 char* var345
/* : NativeString */;
6285 long var346
/* : Int */;
6286 val
* var347
/* : String */;
6287 val
* var348
/* : String */;
6288 static val
* varonce349
;
6289 val
* var350
/* : String */;
6290 char* var351
/* : NativeString */;
6291 long var352
/* : Int */;
6292 val
* var353
/* : String */;
6293 short int var354
/* : Bool */;
6294 val
* var355
/* : CodeWriter */;
6295 static val
* varonce356
;
6296 val
* var357
/* : String */;
6297 char* var358
/* : NativeString */;
6298 long var359
/* : Int */;
6299 val
* var360
/* : String */;
6300 static val
* varonce361
;
6301 val
* var362
/* : String */;
6302 char* var363
/* : NativeString */;
6303 long var364
/* : Int */;
6304 val
* var365
/* : String */;
6305 val
* var366
/* : Array[Object] */;
6306 long var367
/* : Int */;
6307 val
* var368
/* : NativeArray[Object] */;
6308 val
* var369
/* : String */;
6309 val
* var370
/* : CodeWriter */;
6310 static val
* varonce371
;
6311 val
* var372
/* : String */;
6312 char* var373
/* : NativeString */;
6313 long var374
/* : Int */;
6314 val
* var375
/* : String */;
6315 val
* var376
/* : CodeWriter */;
6316 static val
* varonce377
;
6317 val
* var378
/* : String */;
6318 char* var379
/* : NativeString */;
6319 long var380
/* : Int */;
6320 val
* var381
/* : String */;
6321 val
* var382
/* : CodeWriter */;
6322 static val
* varonce383
;
6323 val
* var384
/* : String */;
6324 char* var385
/* : NativeString */;
6325 long var386
/* : Int */;
6326 val
* var387
/* : String */;
6327 val
* var388
/* : CodeWriter */;
6328 static val
* varonce389
;
6329 val
* var390
/* : String */;
6330 char* var391
/* : NativeString */;
6331 long var392
/* : Int */;
6332 val
* var393
/* : String */;
6333 static val
* varonce394
;
6334 val
* var395
/* : String */;
6335 char* var396
/* : NativeString */;
6336 long var397
/* : Int */;
6337 val
* var398
/* : String */;
6338 val
* var399
/* : Array[Object] */;
6339 long var400
/* : Int */;
6340 val
* var401
/* : NativeArray[Object] */;
6341 val
* var402
/* : String */;
6342 val
* var403
/* : String */;
6343 static val
* varonce404
;
6344 val
* var405
/* : String */;
6345 char* var406
/* : NativeString */;
6346 long var407
/* : Int */;
6347 val
* var408
/* : String */;
6348 static val
* varonce409
;
6349 val
* var410
/* : String */;
6350 char* var411
/* : NativeString */;
6351 long var412
/* : Int */;
6352 val
* var413
/* : String */;
6353 val
* var414
/* : Array[Object] */;
6354 long var415
/* : Int */;
6355 val
* var416
/* : NativeArray[Object] */;
6356 val
* var417
/* : String */;
6357 static val
* varonce418
;
6358 val
* var419
/* : String */;
6359 char* var420
/* : NativeString */;
6360 long var421
/* : Int */;
6361 val
* var422
/* : String */;
6362 static val
* varonce423
;
6363 val
* var424
/* : String */;
6364 char* var425
/* : NativeString */;
6365 long var426
/* : Int */;
6366 val
* var427
/* : String */;
6367 val
* var428
/* : Array[Object] */;
6368 long var429
/* : Int */;
6369 val
* var430
/* : NativeArray[Object] */;
6370 val
* var431
/* : String */;
6371 val
* var432
/* : String */;
6372 static val
* varonce433
;
6373 val
* var434
/* : String */;
6374 char* var435
/* : NativeString */;
6375 long var436
/* : Int */;
6376 val
* var437
/* : String */;
6377 static val
* varonce438
;
6378 val
* var439
/* : String */;
6379 char* var440
/* : NativeString */;
6380 long var441
/* : Int */;
6381 val
* var442
/* : String */;
6382 val
* var443
/* : Array[Object] */;
6383 long var444
/* : Int */;
6384 val
* var445
/* : NativeArray[Object] */;
6385 val
* var446
/* : String */;
6386 static val
* varonce447
;
6387 val
* var448
/* : String */;
6388 char* var449
/* : NativeString */;
6389 long var450
/* : Int */;
6390 val
* var451
/* : String */;
6391 val
* var452
/* : RuntimeVariable */;
6392 val
* var_res
/* var res: RuntimeVariable */;
6393 short int var453
/* : Bool */;
6394 val
* var454
/* : Array[MType] */;
6395 val
* var455
/* : nullable Object */;
6396 val
* var_mtype_elt
/* var mtype_elt: MType */;
6397 static val
* varonce456
;
6398 val
* var457
/* : String */;
6399 char* var458
/* : NativeString */;
6400 long var459
/* : Int */;
6401 val
* var460
/* : String */;
6402 static val
* varonce461
;
6403 val
* var462
/* : String */;
6404 char* var463
/* : NativeString */;
6405 long var464
/* : Int */;
6406 val
* var465
/* : String */;
6407 val
* var466
/* : String */;
6408 static val
* varonce467
;
6409 val
* var468
/* : String */;
6410 char* var469
/* : NativeString */;
6411 long var470
/* : Int */;
6412 val
* var471
/* : String */;
6413 val
* var472
/* : Array[Object] */;
6414 long var473
/* : Int */;
6415 val
* var474
/* : NativeArray[Object] */;
6416 val
* var475
/* : String */;
6417 static val
* varonce476
;
6418 val
* var477
/* : String */;
6419 char* var478
/* : NativeString */;
6420 long var479
/* : Int */;
6421 val
* var480
/* : String */;
6422 val
* var481
/* : Array[Object] */;
6423 long var482
/* : Int */;
6424 val
* var483
/* : NativeArray[Object] */;
6425 val
* var484
/* : String */;
6426 static val
* varonce485
;
6427 val
* var486
/* : String */;
6428 char* var487
/* : NativeString */;
6429 long var488
/* : Int */;
6430 val
* var489
/* : String */;
6431 static val
* varonce490
;
6432 val
* var491
/* : String */;
6433 char* var492
/* : NativeString */;
6434 long var493
/* : Int */;
6435 val
* var494
/* : String */;
6436 val
* var495
/* : Array[Object] */;
6437 long var496
/* : Int */;
6438 val
* var497
/* : NativeArray[Object] */;
6439 val
* var498
/* : String */;
6440 static val
* varonce499
;
6441 val
* var500
/* : String */;
6442 char* var501
/* : NativeString */;
6443 long var502
/* : Int */;
6444 val
* var503
/* : String */;
6445 static val
* varonce504
;
6446 val
* var505
/* : String */;
6447 char* var506
/* : NativeString */;
6448 long var507
/* : Int */;
6449 val
* var508
/* : String */;
6450 val
* var509
/* : Array[Object] */;
6451 long var510
/* : Int */;
6452 val
* var511
/* : NativeArray[Object] */;
6453 val
* var512
/* : String */;
6454 static val
* varonce513
;
6455 val
* var514
/* : String */;
6456 char* var515
/* : NativeString */;
6457 long var516
/* : Int */;
6458 val
* var517
/* : String */;
6459 static val
* varonce518
;
6460 val
* var519
/* : String */;
6461 char* var520
/* : NativeString */;
6462 long var521
/* : Int */;
6463 val
* var522
/* : String */;
6464 val
* var523
/* : Array[Object] */;
6465 long var524
/* : Int */;
6466 val
* var525
/* : NativeArray[Object] */;
6467 val
* var526
/* : String */;
6468 static val
* varonce527
;
6469 val
* var528
/* : String */;
6470 char* var529
/* : NativeString */;
6471 long var530
/* : Int */;
6472 val
* var531
/* : String */;
6473 static val
* varonce532
;
6474 val
* var533
/* : String */;
6475 char* var534
/* : NativeString */;
6476 long var535
/* : Int */;
6477 val
* var536
/* : String */;
6478 val
* var537
/* : Array[Object] */;
6479 long var538
/* : Int */;
6480 val
* var539
/* : NativeArray[Object] */;
6481 val
* var540
/* : String */;
6482 val
* var541
/* : String */;
6483 static val
* varonce542
;
6484 val
* var543
/* : String */;
6485 char* var544
/* : NativeString */;
6486 long var545
/* : Int */;
6487 val
* var546
/* : String */;
6488 static val
* varonce547
;
6489 val
* var548
/* : String */;
6490 char* var549
/* : NativeString */;
6491 long var550
/* : Int */;
6492 val
* var551
/* : String */;
6493 val
* var552
/* : Array[Object] */;
6494 long var553
/* : Int */;
6495 val
* var554
/* : NativeArray[Object] */;
6496 val
* var555
/* : String */;
6497 static val
* varonce556
;
6498 val
* var557
/* : String */;
6499 char* var558
/* : NativeString */;
6500 long var559
/* : Int */;
6501 val
* var560
/* : String */;
6502 static val
* varonce561
;
6503 val
* var562
/* : String */;
6504 char* var563
/* : NativeString */;
6505 long var564
/* : Int */;
6506 val
* var565
/* : String */;
6507 val
* var566
/* : Array[Object] */;
6508 long var567
/* : Int */;
6509 val
* var568
/* : NativeArray[Object] */;
6510 val
* var569
/* : String */;
6511 val
* var570
/* : String */;
6512 static val
* varonce571
;
6513 val
* var572
/* : String */;
6514 char* var573
/* : NativeString */;
6515 long var574
/* : Int */;
6516 val
* var575
/* : String */;
6517 static val
* varonce576
;
6518 val
* var577
/* : String */;
6519 char* var578
/* : NativeString */;
6520 long var579
/* : Int */;
6521 val
* var580
/* : String */;
6522 val
* var581
/* : Array[Object] */;
6523 long var582
/* : Int */;
6524 val
* var583
/* : NativeArray[Object] */;
6525 val
* var584
/* : String */;
6526 static val
* varonce585
;
6527 val
* var586
/* : String */;
6528 char* var587
/* : NativeString */;
6529 long var588
/* : Int */;
6530 val
* var589
/* : String */;
6531 val
* var590
/* : Array[Object] */;
6532 long var591
/* : Int */;
6533 val
* var592
/* : NativeArray[Object] */;
6534 val
* var593
/* : String */;
6535 static val
* varonce594
;
6536 val
* var595
/* : String */;
6537 char* var596
/* : NativeString */;
6538 long var597
/* : Int */;
6539 val
* var598
/* : String */;
6540 val
* var599
/* : RuntimeVariable */;
6541 val
* var_res600
/* var res: RuntimeVariable */;
6542 short int var601
/* : Bool */;
6543 static val
* varonce602
;
6544 val
* var603
/* : String */;
6545 char* var604
/* : NativeString */;
6546 long var605
/* : Int */;
6547 val
* var606
/* : String */;
6548 long var607
/* : Int */;
6549 static val
* varonce608
;
6550 val
* var609
/* : String */;
6551 char* var610
/* : NativeString */;
6552 long var611
/* : Int */;
6553 val
* var612
/* : String */;
6554 val
* var613
/* : Array[Object] */;
6555 long var614
/* : Int */;
6556 val
* var615
/* : NativeArray[Object] */;
6557 val
* var616
/* : Object */;
6558 val
* var617
/* : String */;
6559 static val
* varonce618
;
6560 val
* var619
/* : String */;
6561 char* var620
/* : NativeString */;
6562 long var621
/* : Int */;
6563 val
* var622
/* : String */;
6564 val
* var623
/* : Array[Object] */;
6565 long var624
/* : Int */;
6566 val
* var625
/* : NativeArray[Object] */;
6567 val
* var626
/* : String */;
6568 static val
* varonce627
;
6569 val
* var628
/* : String */;
6570 char* var629
/* : NativeString */;
6571 long var630
/* : Int */;
6572 val
* var631
/* : String */;
6573 static val
* varonce632
;
6574 val
* var633
/* : String */;
6575 char* var634
/* : NativeString */;
6576 long var635
/* : Int */;
6577 val
* var636
/* : String */;
6578 val
* var637
/* : Array[Object] */;
6579 long var638
/* : Int */;
6580 val
* var639
/* : NativeArray[Object] */;
6581 val
* var640
/* : String */;
6582 static val
* varonce641
;
6583 val
* var642
/* : String */;
6584 char* var643
/* : NativeString */;
6585 long var644
/* : Int */;
6586 val
* var645
/* : String */;
6587 static val
* varonce646
;
6588 val
* var647
/* : String */;
6589 char* var648
/* : NativeString */;
6590 long var649
/* : Int */;
6591 val
* var650
/* : String */;
6592 val
* var651
/* : Array[Object] */;
6593 long var652
/* : Int */;
6594 val
* var653
/* : NativeArray[Object] */;
6595 val
* var654
/* : String */;
6596 static val
* varonce655
;
6597 val
* var656
/* : String */;
6598 char* var657
/* : NativeString */;
6599 long var658
/* : Int */;
6600 val
* var659
/* : String */;
6601 static val
* varonce660
;
6602 val
* var661
/* : String */;
6603 char* var662
/* : NativeString */;
6604 long var663
/* : Int */;
6605 val
* var664
/* : String */;
6606 val
* var665
/* : Array[Object] */;
6607 long var666
/* : Int */;
6608 val
* var667
/* : NativeArray[Object] */;
6609 val
* var668
/* : String */;
6610 static val
* varonce669
;
6611 val
* var670
/* : String */;
6612 char* var671
/* : NativeString */;
6613 long var672
/* : Int */;
6614 val
* var673
/* : String */;
6616 var
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:MClass>*/;
6617 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var
) /* bound_mtype on <var:MClassDef>*/;
6619 var2
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var_mclass
) /* c_name on <var_mclass:MClass>*/;
6621 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_tables
]))(self
) /* method_tables on <self:SeparateCompiler>*/;
6622 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var3
, var_mclass
) /* [] on <var3:Map[MClass, Array[nullable MPropDef]]>*/;
6624 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_tables
]))(self
) /* attr_tables on <self:SeparateCompiler>*/;
6625 var6
= ((val
* (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var5
, var_mclass
) /* [] on <var5:Map[MClass, Array[nullable MPropDef]]>*/;
6627 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
6629 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
6630 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_classes
]))(var10
) /* live_classes on <var10:RapidTypeAnalysis>*/;
6631 var12
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var11
, var_mclass
) /* has on <var11:HashSet[MClass]>*/;
6635 var14
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
6641 var18
= string__NativeString__to_s_with_length(var16
, var17
);
6645 var19
= ((short int (*)(val
*, val
*))(var14
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var14
, var15
) /* == on <var14:String>*/;
6652 var21
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__name
]))(var_mclass
) /* name on <var_mclass:MClass>*/;
6656 var24
= "NativeArray";
6658 var26
= string__NativeString__to_s_with_length(var24
, var25
);
6662 var27
= ((short int (*)(val
*, val
*))(var21
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var21
, var23
) /* != on <var21:String>*/;
6671 var30
= "/* runtime class ";
6673 var32
= string__NativeString__to_s_with_length(var30
, var31
);
6682 var37
= string__NativeString__to_s_with_length(var35
, var36
);
6686 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
6687 { /* var38 = array_instance Array[Object] */
6689 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
6690 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var29
;
6691 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var_c_name
;
6692 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var34
;
6693 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
6694 CHECK_NEW_array__Array(var38
);
6696 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
6697 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var41
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6698 var42
= !var_is_dead
;
6705 var47
= string__NativeString__to_s_with_length(var45
, var46
);
6709 var48
= NEW_array__Array(&type_array__Arraykernel__Object
);
6710 { /* var48 = array_instance Array[Object] */
6712 var50
= NEW_array__NativeArray(var49
, &type_array__NativeArraykernel__Object
);
6713 ((struct instance_array__NativeArray
*)var50
)->values
[0] = (val
*) var44
;
6714 ((struct instance_array__NativeArray
*)var50
)->values
[1] = (val
*) var_c_name
;
6715 ((void (*)(val
*, val
*, long))(var48
->class->vft
[COLOR_array__Array__with_native
]))(var48
, var50
, var49
) /* with_native on <var48:Array[Object]>*/;
6716 CHECK_NEW_array__Array(var48
);
6718 var51
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_string__Object__to_s
]))(var48
) /* to_s on <var48:Array[Object]>*/;
6722 var54
= "extern const struct class class_";
6724 var56
= string__NativeString__to_s_with_length(var54
, var55
);
6733 var61
= string__NativeString__to_s_with_length(var59
, var60
);
6737 var62
= NEW_array__Array(&type_array__Arraykernel__Object
);
6738 { /* var62 = array_instance Array[Object] */
6740 var64
= NEW_array__NativeArray(var63
, &type_array__NativeArraykernel__Object
);
6741 ((struct instance_array__NativeArray
*)var64
)->values
[0] = (val
*) var53
;
6742 ((struct instance_array__NativeArray
*)var64
)->values
[1] = (val
*) var_c_name
;
6743 ((struct instance_array__NativeArray
*)var64
)->values
[2] = (val
*) var58
;
6744 ((void (*)(val
*, val
*, long))(var62
->class->vft
[COLOR_array__Array__with_native
]))(var62
, var64
, var63
) /* with_native on <var62:Array[Object]>*/;
6745 CHECK_NEW_array__Array(var62
);
6747 var65
= ((val
* (*)(val
*))(var62
->class->vft
[COLOR_string__Object__to_s
]))(var62
) /* to_s on <var62:Array[Object]>*/;
6748 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var51
, var65
) /* provide_declaration on <self:SeparateCompiler>*/;
6752 var68
= "const struct class class_";
6754 var70
= string__NativeString__to_s_with_length(var68
, var69
);
6763 var75
= string__NativeString__to_s_with_length(var73
, var74
);
6767 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
6768 { /* var76 = array_instance Array[Object] */
6770 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
6771 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var67
;
6772 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var_c_name
;
6773 ((struct instance_array__NativeArray
*)var78
)->values
[2] = (val
*) var72
;
6774 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
6775 CHECK_NEW_array__Array(var76
);
6777 var79
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
6778 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var79
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6779 var80
= ((long (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__box_kind_of
]))(self
, var_mclass
) /* box_kind_of on <self:SeparateCompiler>*/;
6783 var83
= ", /* box_kind */";
6785 var85
= string__NativeString__to_s_with_length(var83
, var84
);
6789 var86
= NEW_array__Array(&type_array__Arraykernel__Object
);
6790 { /* var86 = array_instance Array[Object] */
6792 var88
= NEW_array__NativeArray(var87
, &type_array__NativeArraykernel__Object
);
6793 var89
= BOX_kernel__Int(var80
); /* autobox from Int to Object */
6794 ((struct instance_array__NativeArray
*)var88
)->values
[0] = (val
*) var89
;
6795 ((struct instance_array__NativeArray
*)var88
)->values
[1] = (val
*) var82
;
6796 ((void (*)(val
*, val
*, long))(var86
->class->vft
[COLOR_array__Array__with_native
]))(var86
, var88
, var87
) /* with_native on <var86:Array[Object]>*/;
6797 CHECK_NEW_array__Array(var86
);
6799 var90
= ((val
* (*)(val
*))(var86
->class->vft
[COLOR_string__Object__to_s
]))(var86
) /* to_s on <var86:Array[Object]>*/;
6800 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var90
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6806 var95
= string__NativeString__to_s_with_length(var93
, var94
);
6810 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var92
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6811 var96
= NEW_range__Range(&type_range__Rangekernel__Int
);
6813 var98
= ((long (*)(val
*))(var_vft
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_vft
) /* length on <var_vft:Array[nullable MPropDef]>*/;
6814 var99
= BOX_kernel__Int(var97
); /* autobox from Int to Discrete */
6815 var100
= BOX_kernel__Int(var98
); /* autobox from Int to Discrete */
6816 ((void (*)(val
*, val
*, val
*))(var96
->class->vft
[COLOR_range__Range__without_last
]))(var96
, var99
, var100
) /* without_last on <var96:Range[Int]>*/;
6817 CHECK_NEW_range__Range(var96
);
6818 var101
= ((val
* (*)(val
*))(var96
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var96
) /* iterator on <var96:Range[Int]>*/;
6820 var102
= ((short int (*)(val
*))(var101
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var101
) /* is_ok on <var101:Iterator[nullable Object]>*/;
6822 var103
= ((val
* (*)(val
*))(var101
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var101
) /* item on <var101:Iterator[nullable Object]>*/;
6823 var104
= ((struct instance_kernel__Int
*)var103
)->value
; /* autounbox from nullable Object to Int */;
6825 var105
= ((val
* (*)(val
*, long))(var_vft
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_vft
, var_i
) /* [] on <var_vft:Array[nullable MPropDef]>*/;
6826 var_mpropdef
= var105
;
6828 if (var_mpropdef
== NULL
) {
6829 var107
= 1; /* is null */
6831 var107
= 0; /* arg is null but recv is not */
6835 var109
= varonce108
;
6837 var110
= "NULL, /* empty */";
6839 var112
= string__NativeString__to_s_with_length(var110
, var111
);
6841 varonce108
= var109
;
6843 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var109
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6845 /* <var_mpropdef:nullable MPropDef(MPropDef)> isa MMethodDef */
6846 cltype
= type_model__MMethodDef
.color
;
6847 idtype
= type_model__MMethodDef
.id
;
6848 if(cltype
>= var_mpropdef
->type
->table_size
) {
6851 var113
= var_mpropdef
->type
->type_table
[cltype
] == idtype
;
6854 fprintf(stderr
, "Runtime error: %s", "Assert failed");
6855 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 740);
6858 var114
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_separate_compiler__MMethodDef__virtual_runtime_function
]))(var_mpropdef
) /* virtual_runtime_function on <var_mpropdef:nullable MPropDef(MMethodDef)>*/;
6860 var115
= ((val
* (*)(val
*))(var_rf
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name
]))(var_rf
) /* c_name on <var_rf:AbstractRuntimeFunction>*/;
6861 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var115
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
6863 var117
= varonce116
;
6865 var118
= "(nitmethod_t)";
6867 var120
= string__NativeString__to_s_with_length(var118
, var119
);
6869 varonce116
= var117
;
6871 var121
= ((val
* (*)(val
*))(var_rf
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name
]))(var_rf
) /* c_name on <var_rf:AbstractRuntimeFunction>*/;
6873 var123
= varonce122
;
6875 var124
= ", /* pointer to ";
6877 var126
= string__NativeString__to_s_with_length(var124
, var125
);
6879 varonce122
= var123
;
6881 var127
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var_mclass
) /* intro_mmodule on <var_mclass:MClass>*/;
6883 var129
= varonce128
;
6887 var132
= string__NativeString__to_s_with_length(var130
, var131
);
6889 varonce128
= var129
;
6892 var134
= varonce133
;
6896 var137
= string__NativeString__to_s_with_length(var135
, var136
);
6898 varonce133
= var134
;
6901 var139
= varonce138
;
6905 var142
= string__NativeString__to_s_with_length(var140
, var141
);
6907 varonce138
= var139
;
6909 var143
= NEW_array__Array(&type_array__Arraykernel__Object
);
6910 { /* var143 = array_instance Array[Object] */
6912 var145
= NEW_array__NativeArray(var144
, &type_array__NativeArraykernel__Object
);
6913 ((struct instance_array__NativeArray
*)var145
)->values
[0] = (val
*) var117
;
6914 ((struct instance_array__NativeArray
*)var145
)->values
[1] = (val
*) var121
;
6915 ((struct instance_array__NativeArray
*)var145
)->values
[2] = (val
*) var123
;
6916 ((struct instance_array__NativeArray
*)var145
)->values
[3] = (val
*) var127
;
6917 ((struct instance_array__NativeArray
*)var145
)->values
[4] = (val
*) var129
;
6918 ((struct instance_array__NativeArray
*)var145
)->values
[5] = (val
*) var_mclass
;
6919 ((struct instance_array__NativeArray
*)var145
)->values
[6] = (val
*) var134
;
6920 ((struct instance_array__NativeArray
*)var145
)->values
[7] = (val
*) var_mpropdef
;
6921 ((struct instance_array__NativeArray
*)var145
)->values
[8] = (val
*) var139
;
6922 ((void (*)(val
*, val
*, long))(var143
->class->vft
[COLOR_array__Array__with_native
]))(var143
, var145
, var144
) /* with_native on <var143:Array[Object]>*/;
6923 CHECK_NEW_array__Array(var143
);
6925 var146
= ((val
* (*)(val
*))(var143
->class->vft
[COLOR_string__Object__to_s
]))(var143
) /* to_s on <var143:Array[Object]>*/;
6926 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var146
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6928 CONTINUE_label
: (void)0;
6929 ((void (*)(val
*))(var101
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var101
) /* next on <var101:Iterator[nullable Object]>*/;
6931 BREAK_label
: (void)0;
6933 var148
= varonce147
;
6937 var151
= string__NativeString__to_s_with_length(var149
, var150
);
6939 varonce147
= var148
;
6941 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var148
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6943 var153
= varonce152
;
6947 var156
= string__NativeString__to_s_with_length(var154
, var155
);
6949 varonce152
= var153
;
6951 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var153
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
6954 var157
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
6956 var159
= varonce158
;
6960 var162
= string__NativeString__to_s_with_length(var160
, var161
);
6962 varonce158
= var159
;
6964 var163
= ((short int (*)(val
*, val
*))(var157
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var157
, var159
) /* != on <var157:String>*/;
6966 var164
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
6968 var166
= varonce165
;
6970 var167
= "struct instance_";
6972 var169
= string__NativeString__to_s_with_length(var167
, var168
);
6974 varonce165
= var166
;
6977 var171
= varonce170
;
6981 var174
= string__NativeString__to_s_with_length(var172
, var173
);
6983 varonce170
= var171
;
6985 var175
= NEW_array__Array(&type_array__Arraykernel__Object
);
6986 { /* var175 = array_instance Array[Object] */
6988 var177
= NEW_array__NativeArray(var176
, &type_array__NativeArraykernel__Object
);
6989 ((struct instance_array__NativeArray
*)var177
)->values
[0] = (val
*) var166
;
6990 ((struct instance_array__NativeArray
*)var177
)->values
[1] = (val
*) var_c_name
;
6991 ((struct instance_array__NativeArray
*)var177
)->values
[2] = (val
*) var171
;
6992 ((void (*)(val
*, val
*, long))(var175
->class->vft
[COLOR_array__Array__with_native
]))(var175
, var177
, var176
) /* with_native on <var175:Array[Object]>*/;
6993 CHECK_NEW_array__Array(var175
);
6995 var178
= ((val
* (*)(val
*))(var175
->class->vft
[COLOR_string__Object__to_s
]))(var175
) /* to_s on <var175:Array[Object]>*/;
6996 ((void (*)(val
*, val
*))(var164
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var164
, var178
) /* add_decl on <var164:CodeWriter>*/;
6997 var179
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
6999 var181
= varonce180
;
7001 var182
= "const struct type *type;";
7003 var184
= string__NativeString__to_s_with_length(var182
, var183
);
7005 varonce180
= var181
;
7007 ((void (*)(val
*, val
*))(var179
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var179
, var181
) /* add_decl on <var179:CodeWriter>*/;
7008 var185
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7010 var187
= varonce186
;
7012 var188
= "const struct class *class;";
7014 var190
= string__NativeString__to_s_with_length(var188
, var189
);
7016 varonce186
= var187
;
7018 ((void (*)(val
*, val
*))(var185
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var185
, var187
) /* add_decl on <var185:CodeWriter>*/;
7019 var191
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7020 var192
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7022 var194
= varonce193
;
7026 var197
= string__NativeString__to_s_with_length(var195
, var196
);
7028 varonce193
= var194
;
7030 var198
= NEW_array__Array(&type_array__Arraykernel__Object
);
7031 { /* var198 = array_instance Array[Object] */
7033 var200
= NEW_array__NativeArray(var199
, &type_array__NativeArraykernel__Object
);
7034 ((struct instance_array__NativeArray
*)var200
)->values
[0] = (val
*) var192
;
7035 ((struct instance_array__NativeArray
*)var200
)->values
[1] = (val
*) var194
;
7036 ((void (*)(val
*, val
*, long))(var198
->class->vft
[COLOR_array__Array__with_native
]))(var198
, var200
, var199
) /* with_native on <var198:Array[Object]>*/;
7037 CHECK_NEW_array__Array(var198
);
7039 var201
= ((val
* (*)(val
*))(var198
->class->vft
[COLOR_string__Object__to_s
]))(var198
) /* to_s on <var198:Array[Object]>*/;
7040 ((void (*)(val
*, val
*))(var191
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var191
, var201
) /* add_decl on <var191:CodeWriter>*/;
7041 var202
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7043 var204
= varonce203
;
7047 var207
= string__NativeString__to_s_with_length(var205
, var206
);
7049 varonce203
= var204
;
7051 ((void (*)(val
*, val
*))(var202
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var202
, var204
) /* add_decl on <var202:CodeWriter>*/;
7052 var208
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
7053 var209
= ((val
* (*)(val
*))(var208
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(var208
) /* live_types on <var208:RapidTypeAnalysis>*/;
7054 var210
= ((short int (*)(val
*, val
*))(var209
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var209
, var_mtype
) /* has on <var209:HashSet[MClassType]>*/;
7060 var212
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7062 var214
= varonce213
;
7064 var215
= "val* BOX_";
7066 var217
= string__NativeString__to_s_with_length(var215
, var216
);
7068 varonce213
= var214
;
7071 var219
= varonce218
;
7075 var222
= string__NativeString__to_s_with_length(var220
, var221
);
7077 varonce218
= var219
;
7079 var223
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7081 var225
= varonce224
;
7085 var228
= string__NativeString__to_s_with_length(var226
, var227
);
7087 varonce224
= var225
;
7089 var229
= NEW_array__Array(&type_array__Arraykernel__Object
);
7090 { /* var229 = array_instance Array[Object] */
7092 var231
= NEW_array__NativeArray(var230
, &type_array__NativeArraykernel__Object
);
7093 ((struct instance_array__NativeArray
*)var231
)->values
[0] = (val
*) var214
;
7094 ((struct instance_array__NativeArray
*)var231
)->values
[1] = (val
*) var_c_name
;
7095 ((struct instance_array__NativeArray
*)var231
)->values
[2] = (val
*) var219
;
7096 ((struct instance_array__NativeArray
*)var231
)->values
[3] = (val
*) var223
;
7097 ((struct instance_array__NativeArray
*)var231
)->values
[4] = (val
*) var225
;
7098 ((void (*)(val
*, val
*, long))(var229
->class->vft
[COLOR_array__Array__with_native
]))(var229
, var231
, var230
) /* with_native on <var229:Array[Object]>*/;
7099 CHECK_NEW_array__Array(var229
);
7101 var232
= ((val
* (*)(val
*))(var229
->class->vft
[COLOR_string__Object__to_s
]))(var229
) /* to_s on <var229:Array[Object]>*/;
7102 ((void (*)(val
*, val
*))(var212
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var212
, var232
) /* add_decl on <var212:CodeWriter>*/;
7104 var234
= varonce233
;
7106 var235
= "/* allocate ";
7108 var237
= string__NativeString__to_s_with_length(var235
, var236
);
7110 varonce233
= var234
;
7113 var239
= varonce238
;
7117 var242
= string__NativeString__to_s_with_length(var240
, var241
);
7119 varonce238
= var239
;
7121 var243
= NEW_array__Array(&type_array__Arraykernel__Object
);
7122 { /* var243 = array_instance Array[Object] */
7124 var245
= NEW_array__NativeArray(var244
, &type_array__NativeArraykernel__Object
);
7125 ((struct instance_array__NativeArray
*)var245
)->values
[0] = (val
*) var234
;
7126 ((struct instance_array__NativeArray
*)var245
)->values
[1] = (val
*) var_mtype
;
7127 ((struct instance_array__NativeArray
*)var245
)->values
[2] = (val
*) var239
;
7128 ((void (*)(val
*, val
*, long))(var243
->class->vft
[COLOR_array__Array__with_native
]))(var243
, var245
, var244
) /* with_native on <var243:Array[Object]>*/;
7129 CHECK_NEW_array__Array(var243
);
7131 var246
= ((val
* (*)(val
*))(var243
->class->vft
[COLOR_string__Object__to_s
]))(var243
) /* to_s on <var243:Array[Object]>*/;
7132 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var246
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7134 var248
= varonce247
;
7136 var249
= "val* BOX_";
7138 var251
= string__NativeString__to_s_with_length(var249
, var250
);
7140 varonce247
= var248
;
7142 var252
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
7144 var254
= varonce253
;
7148 var257
= string__NativeString__to_s_with_length(var255
, var256
);
7150 varonce253
= var254
;
7152 var258
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7154 var260
= varonce259
;
7156 var261
= " value) {";
7158 var263
= string__NativeString__to_s_with_length(var261
, var262
);
7160 varonce259
= var260
;
7162 var264
= NEW_array__Array(&type_array__Arraykernel__Object
);
7163 { /* var264 = array_instance Array[Object] */
7165 var266
= NEW_array__NativeArray(var265
, &type_array__NativeArraykernel__Object
);
7166 ((struct instance_array__NativeArray
*)var266
)->values
[0] = (val
*) var248
;
7167 ((struct instance_array__NativeArray
*)var266
)->values
[1] = (val
*) var252
;
7168 ((struct instance_array__NativeArray
*)var266
)->values
[2] = (val
*) var254
;
7169 ((struct instance_array__NativeArray
*)var266
)->values
[3] = (val
*) var258
;
7170 ((struct instance_array__NativeArray
*)var266
)->values
[4] = (val
*) var260
;
7171 ((void (*)(val
*, val
*, long))(var264
->class->vft
[COLOR_array__Array__with_native
]))(var264
, var266
, var265
) /* with_native on <var264:Array[Object]>*/;
7172 CHECK_NEW_array__Array(var264
);
7174 var267
= ((val
* (*)(val
*))(var264
->class->vft
[COLOR_string__Object__to_s
]))(var264
) /* to_s on <var264:Array[Object]>*/;
7175 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var267
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7177 var269
= varonce268
;
7179 var270
= "struct instance_";
7181 var272
= string__NativeString__to_s_with_length(var270
, var271
);
7183 varonce268
= var269
;
7186 var274
= varonce273
;
7188 var275
= "*res = nit_alloc(sizeof(struct instance_";
7190 var277
= string__NativeString__to_s_with_length(var275
, var276
);
7192 varonce273
= var274
;
7195 var279
= varonce278
;
7199 var282
= string__NativeString__to_s_with_length(var280
, var281
);
7201 varonce278
= var279
;
7203 var283
= NEW_array__Array(&type_array__Arraykernel__Object
);
7204 { /* var283 = array_instance Array[Object] */
7206 var285
= NEW_array__NativeArray(var284
, &type_array__NativeArraykernel__Object
);
7207 ((struct instance_array__NativeArray
*)var285
)->values
[0] = (val
*) var269
;
7208 ((struct instance_array__NativeArray
*)var285
)->values
[1] = (val
*) var_c_name
;
7209 ((struct instance_array__NativeArray
*)var285
)->values
[2] = (val
*) var274
;
7210 ((struct instance_array__NativeArray
*)var285
)->values
[3] = (val
*) var_c_name
;
7211 ((struct instance_array__NativeArray
*)var285
)->values
[4] = (val
*) var279
;
7212 ((void (*)(val
*, val
*, long))(var283
->class->vft
[COLOR_array__Array__with_native
]))(var283
, var285
, var284
) /* with_native on <var283:Array[Object]>*/;
7213 CHECK_NEW_array__Array(var283
);
7215 var286
= ((val
* (*)(val
*))(var283
->class->vft
[COLOR_string__Object__to_s
]))(var283
) /* to_s on <var283:Array[Object]>*/;
7216 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var286
) /* add on <var_v:SeparateCompilerVisitor>*/;
7218 var288
= varonce287
;
7222 var291
= string__NativeString__to_s_with_length(var289
, var290
);
7224 varonce287
= var288
;
7226 var292
= NEW_array__Array(&type_array__Arraykernel__Object
);
7227 { /* var292 = array_instance Array[Object] */
7229 var294
= NEW_array__NativeArray(var293
, &type_array__NativeArraykernel__Object
);
7230 ((struct instance_array__NativeArray
*)var294
)->values
[0] = (val
*) var288
;
7231 ((struct instance_array__NativeArray
*)var294
)->values
[1] = (val
*) var_c_name
;
7232 ((void (*)(val
*, val
*, long))(var292
->class->vft
[COLOR_array__Array__with_native
]))(var292
, var294
, var293
) /* with_native on <var292:Array[Object]>*/;
7233 CHECK_NEW_array__Array(var292
);
7235 var295
= ((val
* (*)(val
*))(var292
->class->vft
[COLOR_string__Object__to_s
]))(var292
) /* to_s on <var292:Array[Object]>*/;
7236 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var295
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
7238 var297
= varonce296
;
7240 var298
= "res->type = &type_";
7242 var300
= string__NativeString__to_s_with_length(var298
, var299
);
7244 varonce296
= var297
;
7247 var302
= varonce301
;
7251 var305
= string__NativeString__to_s_with_length(var303
, var304
);
7253 varonce301
= var302
;
7255 var306
= NEW_array__Array(&type_array__Arraykernel__Object
);
7256 { /* var306 = array_instance Array[Object] */
7258 var308
= NEW_array__NativeArray(var307
, &type_array__NativeArraykernel__Object
);
7259 ((struct instance_array__NativeArray
*)var308
)->values
[0] = (val
*) var297
;
7260 ((struct instance_array__NativeArray
*)var308
)->values
[1] = (val
*) var_c_name
;
7261 ((struct instance_array__NativeArray
*)var308
)->values
[2] = (val
*) var302
;
7262 ((void (*)(val
*, val
*, long))(var306
->class->vft
[COLOR_array__Array__with_native
]))(var306
, var308
, var307
) /* with_native on <var306:Array[Object]>*/;
7263 CHECK_NEW_array__Array(var306
);
7265 var309
= ((val
* (*)(val
*))(var306
->class->vft
[COLOR_string__Object__to_s
]))(var306
) /* to_s on <var306:Array[Object]>*/;
7266 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var309
) /* add on <var_v:SeparateCompilerVisitor>*/;
7268 var311
= varonce310
;
7272 var314
= string__NativeString__to_s_with_length(var312
, var313
);
7274 varonce310
= var311
;
7276 var315
= NEW_array__Array(&type_array__Arraykernel__Object
);
7277 { /* var315 = array_instance Array[Object] */
7279 var317
= NEW_array__NativeArray(var316
, &type_array__NativeArraykernel__Object
);
7280 ((struct instance_array__NativeArray
*)var317
)->values
[0] = (val
*) var311
;
7281 ((struct instance_array__NativeArray
*)var317
)->values
[1] = (val
*) var_c_name
;
7282 ((void (*)(val
*, val
*, long))(var315
->class->vft
[COLOR_array__Array__with_native
]))(var315
, var317
, var316
) /* with_native on <var315:Array[Object]>*/;
7283 CHECK_NEW_array__Array(var315
);
7285 var318
= ((val
* (*)(val
*))(var315
->class->vft
[COLOR_string__Object__to_s
]))(var315
) /* to_s on <var315:Array[Object]>*/;
7286 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var318
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
7288 var320
= varonce319
;
7290 var321
= "res->class = &class_";
7292 var323
= string__NativeString__to_s_with_length(var321
, var322
);
7294 varonce319
= var320
;
7297 var325
= varonce324
;
7301 var328
= string__NativeString__to_s_with_length(var326
, var327
);
7303 varonce324
= var325
;
7305 var329
= NEW_array__Array(&type_array__Arraykernel__Object
);
7306 { /* var329 = array_instance Array[Object] */
7308 var331
= NEW_array__NativeArray(var330
, &type_array__NativeArraykernel__Object
);
7309 ((struct instance_array__NativeArray
*)var331
)->values
[0] = (val
*) var320
;
7310 ((struct instance_array__NativeArray
*)var331
)->values
[1] = (val
*) var_c_name
;
7311 ((struct instance_array__NativeArray
*)var331
)->values
[2] = (val
*) var325
;
7312 ((void (*)(val
*, val
*, long))(var329
->class->vft
[COLOR_array__Array__with_native
]))(var329
, var331
, var330
) /* with_native on <var329:Array[Object]>*/;
7313 CHECK_NEW_array__Array(var329
);
7315 var332
= ((val
* (*)(val
*))(var329
->class->vft
[COLOR_string__Object__to_s
]))(var329
) /* to_s on <var329:Array[Object]>*/;
7316 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var332
) /* add on <var_v:SeparateCompilerVisitor>*/;
7318 var334
= varonce333
;
7320 var335
= "res->value = value;";
7322 var337
= string__NativeString__to_s_with_length(var335
, var336
);
7324 varonce333
= var334
;
7326 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var334
) /* add on <var_v:SeparateCompilerVisitor>*/;
7328 var339
= varonce338
;
7330 var340
= "return (val*)res;";
7332 var342
= string__NativeString__to_s_with_length(var340
, var341
);
7334 varonce338
= var339
;
7336 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var339
) /* add on <var_v:SeparateCompilerVisitor>*/;
7338 var344
= varonce343
;
7342 var347
= string__NativeString__to_s_with_length(var345
, var346
);
7344 varonce343
= var344
;
7346 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var344
) /* add on <var_v:SeparateCompilerVisitor>*/;
7349 var348
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__name
]))(var_mclass
) /* name on <var_mclass:MClass>*/;
7351 var350
= varonce349
;
7353 var351
= "NativeArray";
7355 var353
= string__NativeString__to_s_with_length(var351
, var352
);
7357 varonce349
= var350
;
7359 var354
= ((short int (*)(val
*, val
*))(var348
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var348
, var350
) /* == on <var348:String>*/;
7361 var355
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7363 var357
= varonce356
;
7365 var358
= "struct instance_";
7367 var360
= string__NativeString__to_s_with_length(var358
, var359
);
7369 varonce356
= var357
;
7372 var362
= varonce361
;
7376 var365
= string__NativeString__to_s_with_length(var363
, var364
);
7378 varonce361
= var362
;
7380 var366
= NEW_array__Array(&type_array__Arraykernel__Object
);
7381 { /* var366 = array_instance Array[Object] */
7383 var368
= NEW_array__NativeArray(var367
, &type_array__NativeArraykernel__Object
);
7384 ((struct instance_array__NativeArray
*)var368
)->values
[0] = (val
*) var357
;
7385 ((struct instance_array__NativeArray
*)var368
)->values
[1] = (val
*) var_c_name
;
7386 ((struct instance_array__NativeArray
*)var368
)->values
[2] = (val
*) var362
;
7387 ((void (*)(val
*, val
*, long))(var366
->class->vft
[COLOR_array__Array__with_native
]))(var366
, var368
, var367
) /* with_native on <var366:Array[Object]>*/;
7388 CHECK_NEW_array__Array(var366
);
7390 var369
= ((val
* (*)(val
*))(var366
->class->vft
[COLOR_string__Object__to_s
]))(var366
) /* to_s on <var366:Array[Object]>*/;
7391 ((void (*)(val
*, val
*))(var355
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var355
, var369
) /* add_decl on <var355:CodeWriter>*/;
7392 var370
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7394 var372
= varonce371
;
7396 var373
= "const struct type *type;";
7398 var375
= string__NativeString__to_s_with_length(var373
, var374
);
7400 varonce371
= var372
;
7402 ((void (*)(val
*, val
*))(var370
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var370
, var372
) /* add_decl on <var370:CodeWriter>*/;
7403 var376
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7405 var378
= varonce377
;
7407 var379
= "const struct class *class;";
7409 var381
= string__NativeString__to_s_with_length(var379
, var380
);
7411 varonce377
= var378
;
7413 ((void (*)(val
*, val
*))(var376
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var376
, var378
) /* add_decl on <var376:CodeWriter>*/;
7414 var382
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7416 var384
= varonce383
;
7418 var385
= "val* values[0];";
7420 var387
= string__NativeString__to_s_with_length(var385
, var386
);
7422 varonce383
= var384
;
7424 ((void (*)(val
*, val
*))(var382
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var382
, var384
) /* add_decl on <var382:CodeWriter>*/;
7425 var388
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__header
]))(self
) /* header on <self:SeparateCompiler>*/;
7427 var390
= varonce389
;
7431 var393
= string__NativeString__to_s_with_length(var391
, var392
);
7433 varonce389
= var390
;
7435 ((void (*)(val
*, val
*))(var388
->class->vft
[COLOR_abstract_compiler__CodeWriter__add_decl
]))(var388
, var390
) /* add_decl on <var388:CodeWriter>*/;
7437 var395
= varonce394
;
7441 var398
= string__NativeString__to_s_with_length(var396
, var397
);
7443 varonce394
= var395
;
7445 var399
= NEW_array__Array(&type_array__Arraykernel__Object
);
7446 { /* var399 = array_instance Array[Object] */
7448 var401
= NEW_array__NativeArray(var400
, &type_array__NativeArraykernel__Object
);
7449 ((struct instance_array__NativeArray
*)var401
)->values
[0] = (val
*) var395
;
7450 ((struct instance_array__NativeArray
*)var401
)->values
[1] = (val
*) var_c_name
;
7451 ((void (*)(val
*, val
*, long))(var399
->class->vft
[COLOR_array__Array__with_native
]))(var399
, var401
, var400
) /* with_native on <var399:Array[Object]>*/;
7452 CHECK_NEW_array__Array(var399
);
7454 var402
= ((val
* (*)(val
*))(var399
->class->vft
[COLOR_string__Object__to_s
]))(var399
) /* to_s on <var399:Array[Object]>*/;
7455 var403
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7457 var405
= varonce404
;
7461 var408
= string__NativeString__to_s_with_length(var406
, var407
);
7463 varonce404
= var405
;
7466 var410
= varonce409
;
7468 var411
= "(int length, const struct type* type);";
7470 var413
= string__NativeString__to_s_with_length(var411
, var412
);
7472 varonce409
= var410
;
7474 var414
= NEW_array__Array(&type_array__Arraykernel__Object
);
7475 { /* var414 = array_instance Array[Object] */
7477 var416
= NEW_array__NativeArray(var415
, &type_array__NativeArraykernel__Object
);
7478 ((struct instance_array__NativeArray
*)var416
)->values
[0] = (val
*) var403
;
7479 ((struct instance_array__NativeArray
*)var416
)->values
[1] = (val
*) var405
;
7480 ((struct instance_array__NativeArray
*)var416
)->values
[2] = (val
*) var_c_name
;
7481 ((struct instance_array__NativeArray
*)var416
)->values
[3] = (val
*) var410
;
7482 ((void (*)(val
*, val
*, long))(var414
->class->vft
[COLOR_array__Array__with_native
]))(var414
, var416
, var415
) /* with_native on <var414:Array[Object]>*/;
7483 CHECK_NEW_array__Array(var414
);
7485 var417
= ((val
* (*)(val
*))(var414
->class->vft
[COLOR_string__Object__to_s
]))(var414
) /* to_s on <var414:Array[Object]>*/;
7486 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var402
, var417
) /* provide_declaration on <self:SeparateCompiler>*/;
7488 var419
= varonce418
;
7490 var420
= "/* allocate ";
7492 var422
= string__NativeString__to_s_with_length(var420
, var421
);
7494 varonce418
= var419
;
7497 var424
= varonce423
;
7501 var427
= string__NativeString__to_s_with_length(var425
, var426
);
7503 varonce423
= var424
;
7505 var428
= NEW_array__Array(&type_array__Arraykernel__Object
);
7506 { /* var428 = array_instance Array[Object] */
7508 var430
= NEW_array__NativeArray(var429
, &type_array__NativeArraykernel__Object
);
7509 ((struct instance_array__NativeArray
*)var430
)->values
[0] = (val
*) var419
;
7510 ((struct instance_array__NativeArray
*)var430
)->values
[1] = (val
*) var_mtype
;
7511 ((struct instance_array__NativeArray
*)var430
)->values
[2] = (val
*) var424
;
7512 ((void (*)(val
*, val
*, long))(var428
->class->vft
[COLOR_array__Array__with_native
]))(var428
, var430
, var429
) /* with_native on <var428:Array[Object]>*/;
7513 CHECK_NEW_array__Array(var428
);
7515 var431
= ((val
* (*)(val
*))(var428
->class->vft
[COLOR_string__Object__to_s
]))(var428
) /* to_s on <var428:Array[Object]>*/;
7516 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var431
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7517 var432
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7519 var434
= varonce433
;
7523 var437
= string__NativeString__to_s_with_length(var435
, var436
);
7525 varonce433
= var434
;
7528 var439
= varonce438
;
7530 var440
= "(int length, const struct type* type) {";
7532 var442
= string__NativeString__to_s_with_length(var440
, var441
);
7534 varonce438
= var439
;
7536 var443
= NEW_array__Array(&type_array__Arraykernel__Object
);
7537 { /* var443 = array_instance Array[Object] */
7539 var445
= NEW_array__NativeArray(var444
, &type_array__NativeArraykernel__Object
);
7540 ((struct instance_array__NativeArray
*)var445
)->values
[0] = (val
*) var432
;
7541 ((struct instance_array__NativeArray
*)var445
)->values
[1] = (val
*) var434
;
7542 ((struct instance_array__NativeArray
*)var445
)->values
[2] = (val
*) var_c_name
;
7543 ((struct instance_array__NativeArray
*)var445
)->values
[3] = (val
*) var439
;
7544 ((void (*)(val
*, val
*, long))(var443
->class->vft
[COLOR_array__Array__with_native
]))(var443
, var445
, var444
) /* with_native on <var443:Array[Object]>*/;
7545 CHECK_NEW_array__Array(var443
);
7547 var446
= ((val
* (*)(val
*))(var443
->class->vft
[COLOR_string__Object__to_s
]))(var443
) /* to_s on <var443:Array[Object]>*/;
7548 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var446
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7550 var448
= varonce447
;
7554 var451
= string__NativeString__to_s_with_length(var449
, var450
);
7556 varonce447
= var448
;
7558 var452
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_named_var
]))(var_v
, var_mtype
, var448
) /* new_named_var on <var_v:SeparateCompilerVisitor>*/;
7561 ((void (*)(val
*, short int))(var_res
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res
, var453
) /* is_exact= on <var_res:RuntimeVariable>*/;
7562 var454
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
7563 var455
= ((val
* (*)(val
*))(var454
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var454
) /* first on <var454:Array[MType]>*/;
7564 var_mtype_elt
= var455
;
7566 var457
= varonce456
;
7568 var458
= " = nit_alloc(sizeof(struct instance_";
7570 var460
= string__NativeString__to_s_with_length(var458
, var459
);
7572 varonce456
= var457
;
7575 var462
= varonce461
;
7577 var463
= ") + length*sizeof(";
7579 var465
= string__NativeString__to_s_with_length(var463
, var464
);
7581 varonce461
= var462
;
7583 var466
= ((val
* (*)(val
*))(var_mtype_elt
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype_elt
) /* ctype on <var_mtype_elt:MType>*/;
7585 var468
= varonce467
;
7589 var471
= string__NativeString__to_s_with_length(var469
, var470
);
7591 varonce467
= var468
;
7593 var472
= NEW_array__Array(&type_array__Arraykernel__Object
);
7594 { /* var472 = array_instance Array[Object] */
7596 var474
= NEW_array__NativeArray(var473
, &type_array__NativeArraykernel__Object
);
7597 ((struct instance_array__NativeArray
*)var474
)->values
[0] = (val
*) var_res
;
7598 ((struct instance_array__NativeArray
*)var474
)->values
[1] = (val
*) var457
;
7599 ((struct instance_array__NativeArray
*)var474
)->values
[2] = (val
*) var_c_name
;
7600 ((struct instance_array__NativeArray
*)var474
)->values
[3] = (val
*) var462
;
7601 ((struct instance_array__NativeArray
*)var474
)->values
[4] = (val
*) var466
;
7602 ((struct instance_array__NativeArray
*)var474
)->values
[5] = (val
*) var468
;
7603 ((void (*)(val
*, val
*, long))(var472
->class->vft
[COLOR_array__Array__with_native
]))(var472
, var474
, var473
) /* with_native on <var472:Array[Object]>*/;
7604 CHECK_NEW_array__Array(var472
);
7606 var475
= ((val
* (*)(val
*))(var472
->class->vft
[COLOR_string__Object__to_s
]))(var472
) /* to_s on <var472:Array[Object]>*/;
7607 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var475
) /* add on <var_v:SeparateCompilerVisitor>*/;
7609 var477
= varonce476
;
7611 var478
= "->type = type;";
7613 var480
= string__NativeString__to_s_with_length(var478
, var479
);
7615 varonce476
= var477
;
7617 var481
= NEW_array__Array(&type_array__Arraykernel__Object
);
7618 { /* var481 = array_instance Array[Object] */
7620 var483
= NEW_array__NativeArray(var482
, &type_array__NativeArraykernel__Object
);
7621 ((struct instance_array__NativeArray
*)var483
)->values
[0] = (val
*) var_res
;
7622 ((struct instance_array__NativeArray
*)var483
)->values
[1] = (val
*) var477
;
7623 ((void (*)(val
*, val
*, long))(var481
->class->vft
[COLOR_array__Array__with_native
]))(var481
, var483
, var482
) /* with_native on <var481:Array[Object]>*/;
7624 CHECK_NEW_array__Array(var481
);
7626 var484
= ((val
* (*)(val
*))(var481
->class->vft
[COLOR_string__Object__to_s
]))(var481
) /* to_s on <var481:Array[Object]>*/;
7627 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var484
) /* add on <var_v:SeparateCompilerVisitor>*/;
7629 var486
= varonce485
;
7633 var489
= string__NativeString__to_s_with_length(var487
, var488
);
7635 varonce485
= var486
;
7637 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__hardening_live_type
]))(self
, var_v
, var486
) /* hardening_live_type on <self:SeparateCompiler>*/;
7639 var491
= varonce490
;
7643 var494
= string__NativeString__to_s_with_length(var492
, var493
);
7645 varonce490
= var491
;
7647 var495
= NEW_array__Array(&type_array__Arraykernel__Object
);
7648 { /* var495 = array_instance Array[Object] */
7650 var497
= NEW_array__NativeArray(var496
, &type_array__NativeArraykernel__Object
);
7651 ((struct instance_array__NativeArray
*)var497
)->values
[0] = (val
*) var491
;
7652 ((struct instance_array__NativeArray
*)var497
)->values
[1] = (val
*) var_c_name
;
7653 ((void (*)(val
*, val
*, long))(var495
->class->vft
[COLOR_array__Array__with_native
]))(var495
, var497
, var496
) /* with_native on <var495:Array[Object]>*/;
7654 CHECK_NEW_array__Array(var495
);
7656 var498
= ((val
* (*)(val
*))(var495
->class->vft
[COLOR_string__Object__to_s
]))(var495
) /* to_s on <var495:Array[Object]>*/;
7657 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var498
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
7659 var500
= varonce499
;
7661 var501
= "->class = &class_";
7663 var503
= string__NativeString__to_s_with_length(var501
, var502
);
7665 varonce499
= var500
;
7668 var505
= varonce504
;
7672 var508
= string__NativeString__to_s_with_length(var506
, var507
);
7674 varonce504
= var505
;
7676 var509
= NEW_array__Array(&type_array__Arraykernel__Object
);
7677 { /* var509 = array_instance Array[Object] */
7679 var511
= NEW_array__NativeArray(var510
, &type_array__NativeArraykernel__Object
);
7680 ((struct instance_array__NativeArray
*)var511
)->values
[0] = (val
*) var_res
;
7681 ((struct instance_array__NativeArray
*)var511
)->values
[1] = (val
*) var500
;
7682 ((struct instance_array__NativeArray
*)var511
)->values
[2] = (val
*) var_c_name
;
7683 ((struct instance_array__NativeArray
*)var511
)->values
[3] = (val
*) var505
;
7684 ((void (*)(val
*, val
*, long))(var509
->class->vft
[COLOR_array__Array__with_native
]))(var509
, var511
, var510
) /* with_native on <var509:Array[Object]>*/;
7685 CHECK_NEW_array__Array(var509
);
7687 var512
= ((val
* (*)(val
*))(var509
->class->vft
[COLOR_string__Object__to_s
]))(var509
) /* to_s on <var509:Array[Object]>*/;
7688 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var512
) /* add on <var_v:SeparateCompilerVisitor>*/;
7690 var514
= varonce513
;
7694 var517
= string__NativeString__to_s_with_length(var515
, var516
);
7696 varonce513
= var514
;
7699 var519
= varonce518
;
7703 var522
= string__NativeString__to_s_with_length(var520
, var521
);
7705 varonce518
= var519
;
7707 var523
= NEW_array__Array(&type_array__Arraykernel__Object
);
7708 { /* var523 = array_instance Array[Object] */
7710 var525
= NEW_array__NativeArray(var524
, &type_array__NativeArraykernel__Object
);
7711 ((struct instance_array__NativeArray
*)var525
)->values
[0] = (val
*) var514
;
7712 ((struct instance_array__NativeArray
*)var525
)->values
[1] = (val
*) var_res
;
7713 ((struct instance_array__NativeArray
*)var525
)->values
[2] = (val
*) var519
;
7714 ((void (*)(val
*, val
*, long))(var523
->class->vft
[COLOR_array__Array__with_native
]))(var523
, var525
, var524
) /* with_native on <var523:Array[Object]>*/;
7715 CHECK_NEW_array__Array(var523
);
7717 var526
= ((val
* (*)(val
*))(var523
->class->vft
[COLOR_string__Object__to_s
]))(var523
) /* to_s on <var523:Array[Object]>*/;
7718 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var526
) /* add on <var_v:SeparateCompilerVisitor>*/;
7720 var528
= varonce527
;
7724 var531
= string__NativeString__to_s_with_length(var529
, var530
);
7726 varonce527
= var528
;
7728 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var528
) /* add on <var_v:SeparateCompilerVisitor>*/;
7734 var533
= varonce532
;
7738 var536
= string__NativeString__to_s_with_length(var534
, var535
);
7740 varonce532
= var533
;
7742 var537
= NEW_array__Array(&type_array__Arraykernel__Object
);
7743 { /* var537 = array_instance Array[Object] */
7745 var539
= NEW_array__NativeArray(var538
, &type_array__NativeArraykernel__Object
);
7746 ((struct instance_array__NativeArray
*)var539
)->values
[0] = (val
*) var533
;
7747 ((struct instance_array__NativeArray
*)var539
)->values
[1] = (val
*) var_c_name
;
7748 ((void (*)(val
*, val
*, long))(var537
->class->vft
[COLOR_array__Array__with_native
]))(var537
, var539
, var538
) /* with_native on <var537:Array[Object]>*/;
7749 CHECK_NEW_array__Array(var537
);
7751 var540
= ((val
* (*)(val
*))(var537
->class->vft
[COLOR_string__Object__to_s
]))(var537
) /* to_s on <var537:Array[Object]>*/;
7752 var541
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7754 var543
= varonce542
;
7758 var546
= string__NativeString__to_s_with_length(var544
, var545
);
7760 varonce542
= var543
;
7763 var548
= varonce547
;
7765 var549
= "(const struct type* type);";
7767 var551
= string__NativeString__to_s_with_length(var549
, var550
);
7769 varonce547
= var548
;
7771 var552
= NEW_array__Array(&type_array__Arraykernel__Object
);
7772 { /* var552 = array_instance Array[Object] */
7774 var554
= NEW_array__NativeArray(var553
, &type_array__NativeArraykernel__Object
);
7775 ((struct instance_array__NativeArray
*)var554
)->values
[0] = (val
*) var541
;
7776 ((struct instance_array__NativeArray
*)var554
)->values
[1] = (val
*) var543
;
7777 ((struct instance_array__NativeArray
*)var554
)->values
[2] = (val
*) var_c_name
;
7778 ((struct instance_array__NativeArray
*)var554
)->values
[3] = (val
*) var548
;
7779 ((void (*)(val
*, val
*, long))(var552
->class->vft
[COLOR_array__Array__with_native
]))(var552
, var554
, var553
) /* with_native on <var552:Array[Object]>*/;
7780 CHECK_NEW_array__Array(var552
);
7782 var555
= ((val
* (*)(val
*))(var552
->class->vft
[COLOR_string__Object__to_s
]))(var552
) /* to_s on <var552:Array[Object]>*/;
7783 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var540
, var555
) /* provide_declaration on <self:SeparateCompiler>*/;
7785 var557
= varonce556
;
7787 var558
= "/* allocate ";
7789 var560
= string__NativeString__to_s_with_length(var558
, var559
);
7791 varonce556
= var557
;
7794 var562
= varonce561
;
7798 var565
= string__NativeString__to_s_with_length(var563
, var564
);
7800 varonce561
= var562
;
7802 var566
= NEW_array__Array(&type_array__Arraykernel__Object
);
7803 { /* var566 = array_instance Array[Object] */
7805 var568
= NEW_array__NativeArray(var567
, &type_array__NativeArraykernel__Object
);
7806 ((struct instance_array__NativeArray
*)var568
)->values
[0] = (val
*) var557
;
7807 ((struct instance_array__NativeArray
*)var568
)->values
[1] = (val
*) var_mtype
;
7808 ((struct instance_array__NativeArray
*)var568
)->values
[2] = (val
*) var562
;
7809 ((void (*)(val
*, val
*, long))(var566
->class->vft
[COLOR_array__Array__with_native
]))(var566
, var568
, var567
) /* with_native on <var566:Array[Object]>*/;
7810 CHECK_NEW_array__Array(var566
);
7812 var569
= ((val
* (*)(val
*))(var566
->class->vft
[COLOR_string__Object__to_s
]))(var566
) /* to_s on <var566:Array[Object]>*/;
7813 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var569
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7814 var570
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
7816 var572
= varonce571
;
7820 var575
= string__NativeString__to_s_with_length(var573
, var574
);
7822 varonce571
= var572
;
7825 var577
= varonce576
;
7827 var578
= "(const struct type* type) {";
7829 var580
= string__NativeString__to_s_with_length(var578
, var579
);
7831 varonce576
= var577
;
7833 var581
= NEW_array__Array(&type_array__Arraykernel__Object
);
7834 { /* var581 = array_instance Array[Object] */
7836 var583
= NEW_array__NativeArray(var582
, &type_array__NativeArraykernel__Object
);
7837 ((struct instance_array__NativeArray
*)var583
)->values
[0] = (val
*) var570
;
7838 ((struct instance_array__NativeArray
*)var583
)->values
[1] = (val
*) var572
;
7839 ((struct instance_array__NativeArray
*)var583
)->values
[2] = (val
*) var_c_name
;
7840 ((struct instance_array__NativeArray
*)var583
)->values
[3] = (val
*) var577
;
7841 ((void (*)(val
*, val
*, long))(var581
->class->vft
[COLOR_array__Array__with_native
]))(var581
, var583
, var582
) /* with_native on <var581:Array[Object]>*/;
7842 CHECK_NEW_array__Array(var581
);
7844 var584
= ((val
* (*)(val
*))(var581
->class->vft
[COLOR_string__Object__to_s
]))(var581
) /* to_s on <var581:Array[Object]>*/;
7845 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var584
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
7848 var586
= varonce585
;
7850 var587
= " is DEAD";
7852 var589
= string__NativeString__to_s_with_length(var587
, var588
);
7854 varonce585
= var586
;
7856 var590
= NEW_array__Array(&type_array__Arraykernel__Object
);
7857 { /* var590 = array_instance Array[Object] */
7859 var592
= NEW_array__NativeArray(var591
, &type_array__NativeArraykernel__Object
);
7860 ((struct instance_array__NativeArray
*)var592
)->values
[0] = (val
*) var_mclass
;
7861 ((struct instance_array__NativeArray
*)var592
)->values
[1] = (val
*) var586
;
7862 ((void (*)(val
*, val
*, long))(var590
->class->vft
[COLOR_array__Array__with_native
]))(var590
, var592
, var591
) /* with_native on <var590:Array[Object]>*/;
7863 CHECK_NEW_array__Array(var590
);
7865 var593
= ((val
* (*)(val
*))(var590
->class->vft
[COLOR_string__Object__to_s
]))(var590
) /* to_s on <var590:Array[Object]>*/;
7866 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(var_v
, var593
) /* add_abort on <var_v:SeparateCompilerVisitor>*/;
7869 var595
= varonce594
;
7873 var598
= string__NativeString__to_s_with_length(var596
, var597
);
7875 varonce594
= var595
;
7877 var599
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_named_var
]))(var_v
, var_mtype
, var595
) /* new_named_var on <var_v:SeparateCompilerVisitor>*/;
7878 var_res600
= var599
;
7880 ((void (*)(val
*, short int))(var_res600
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__is_exact_61d
]))(var_res600
, var601
) /* is_exact= on <var_res600:RuntimeVariable>*/;
7882 var603
= varonce602
;
7884 var604
= " = nit_alloc(sizeof(struct instance) + ";
7886 var606
= string__NativeString__to_s_with_length(var604
, var605
);
7888 varonce602
= var603
;
7890 var607
= ((long (*)(val
*))(var_attrs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_attrs
) /* length on <var_attrs:Array[nullable MPropDef]>*/;
7892 var609
= varonce608
;
7894 var610
= "*sizeof(nitattribute_t));";
7896 var612
= string__NativeString__to_s_with_length(var610
, var611
);
7898 varonce608
= var609
;
7900 var613
= NEW_array__Array(&type_array__Arraykernel__Object
);
7901 { /* var613 = array_instance Array[Object] */
7903 var615
= NEW_array__NativeArray(var614
, &type_array__NativeArraykernel__Object
);
7904 ((struct instance_array__NativeArray
*)var615
)->values
[0] = (val
*) var_res600
;
7905 ((struct instance_array__NativeArray
*)var615
)->values
[1] = (val
*) var603
;
7906 var616
= BOX_kernel__Int(var607
); /* autobox from Int to Object */
7907 ((struct instance_array__NativeArray
*)var615
)->values
[2] = (val
*) var616
;
7908 ((struct instance_array__NativeArray
*)var615
)->values
[3] = (val
*) var609
;
7909 ((void (*)(val
*, val
*, long))(var613
->class->vft
[COLOR_array__Array__with_native
]))(var613
, var615
, var614
) /* with_native on <var613:Array[Object]>*/;
7910 CHECK_NEW_array__Array(var613
);
7912 var617
= ((val
* (*)(val
*))(var613
->class->vft
[COLOR_string__Object__to_s
]))(var613
) /* to_s on <var613:Array[Object]>*/;
7913 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var617
) /* add on <var_v:SeparateCompilerVisitor>*/;
7915 var619
= varonce618
;
7917 var620
= "->type = type;";
7919 var622
= string__NativeString__to_s_with_length(var620
, var621
);
7921 varonce618
= var619
;
7923 var623
= NEW_array__Array(&type_array__Arraykernel__Object
);
7924 { /* var623 = array_instance Array[Object] */
7926 var625
= NEW_array__NativeArray(var624
, &type_array__NativeArraykernel__Object
);
7927 ((struct instance_array__NativeArray
*)var625
)->values
[0] = (val
*) var_res600
;
7928 ((struct instance_array__NativeArray
*)var625
)->values
[1] = (val
*) var619
;
7929 ((void (*)(val
*, val
*, long))(var623
->class->vft
[COLOR_array__Array__with_native
]))(var623
, var625
, var624
) /* with_native on <var623:Array[Object]>*/;
7930 CHECK_NEW_array__Array(var623
);
7932 var626
= ((val
* (*)(val
*))(var623
->class->vft
[COLOR_string__Object__to_s
]))(var623
) /* to_s on <var623:Array[Object]>*/;
7933 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var626
) /* add on <var_v:SeparateCompilerVisitor>*/;
7935 var628
= varonce627
;
7939 var631
= string__NativeString__to_s_with_length(var629
, var630
);
7941 varonce627
= var628
;
7943 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__hardening_live_type
]))(self
, var_v
, var628
) /* hardening_live_type on <self:SeparateCompiler>*/;
7945 var633
= varonce632
;
7949 var636
= string__NativeString__to_s_with_length(var634
, var635
);
7951 varonce632
= var633
;
7953 var637
= NEW_array__Array(&type_array__Arraykernel__Object
);
7954 { /* var637 = array_instance Array[Object] */
7956 var639
= NEW_array__NativeArray(var638
, &type_array__NativeArraykernel__Object
);
7957 ((struct instance_array__NativeArray
*)var639
)->values
[0] = (val
*) var633
;
7958 ((struct instance_array__NativeArray
*)var639
)->values
[1] = (val
*) var_c_name
;
7959 ((void (*)(val
*, val
*, long))(var637
->class->vft
[COLOR_array__Array__with_native
]))(var637
, var639
, var638
) /* with_native on <var637:Array[Object]>*/;
7960 CHECK_NEW_array__Array(var637
);
7962 var640
= ((val
* (*)(val
*))(var637
->class->vft
[COLOR_string__Object__to_s
]))(var637
) /* to_s on <var637:Array[Object]>*/;
7963 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration
]))(var_v
, var640
) /* require_declaration on <var_v:SeparateCompilerVisitor>*/;
7965 var642
= varonce641
;
7967 var643
= "->class = &class_";
7969 var645
= string__NativeString__to_s_with_length(var643
, var644
);
7971 varonce641
= var642
;
7974 var647
= varonce646
;
7978 var650
= string__NativeString__to_s_with_length(var648
, var649
);
7980 varonce646
= var647
;
7982 var651
= NEW_array__Array(&type_array__Arraykernel__Object
);
7983 { /* var651 = array_instance Array[Object] */
7985 var653
= NEW_array__NativeArray(var652
, &type_array__NativeArraykernel__Object
);
7986 ((struct instance_array__NativeArray
*)var653
)->values
[0] = (val
*) var_res600
;
7987 ((struct instance_array__NativeArray
*)var653
)->values
[1] = (val
*) var642
;
7988 ((struct instance_array__NativeArray
*)var653
)->values
[2] = (val
*) var_c_name
;
7989 ((struct instance_array__NativeArray
*)var653
)->values
[3] = (val
*) var647
;
7990 ((void (*)(val
*, val
*, long))(var651
->class->vft
[COLOR_array__Array__with_native
]))(var651
, var653
, var652
) /* with_native on <var651:Array[Object]>*/;
7991 CHECK_NEW_array__Array(var651
);
7993 var654
= ((val
* (*)(val
*))(var651
->class->vft
[COLOR_string__Object__to_s
]))(var651
) /* to_s on <var651:Array[Object]>*/;
7994 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var654
) /* add on <var_v:SeparateCompilerVisitor>*/;
7995 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__generate_init_attr
]))(self
, var_v
, var_res600
, var_mtype
) /* generate_init_attr on <self:SeparateCompiler>*/;
7997 var656
= varonce655
;
8001 var659
= string__NativeString__to_s_with_length(var657
, var658
);
8003 varonce655
= var656
;
8006 var661
= varonce660
;
8010 var664
= string__NativeString__to_s_with_length(var662
, var663
);
8012 varonce660
= var661
;
8014 var665
= NEW_array__Array(&type_array__Arraykernel__Object
);
8015 { /* var665 = array_instance Array[Object] */
8017 var667
= NEW_array__NativeArray(var666
, &type_array__NativeArraykernel__Object
);
8018 ((struct instance_array__NativeArray
*)var667
)->values
[0] = (val
*) var656
;
8019 ((struct instance_array__NativeArray
*)var667
)->values
[1] = (val
*) var_res600
;
8020 ((struct instance_array__NativeArray
*)var667
)->values
[2] = (val
*) var661
;
8021 ((void (*)(val
*, val
*, long))(var665
->class->vft
[COLOR_array__Array__with_native
]))(var665
, var667
, var666
) /* with_native on <var665:Array[Object]>*/;
8022 CHECK_NEW_array__Array(var665
);
8024 var668
= ((val
* (*)(val
*))(var665
->class->vft
[COLOR_string__Object__to_s
]))(var665
) /* to_s on <var665:Array[Object]>*/;
8025 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var668
) /* add on <var_v:SeparateCompilerVisitor>*/;
8028 var670
= varonce669
;
8032 var673
= string__NativeString__to_s_with_length(var671
, var672
);
8034 varonce669
= var670
;
8036 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var670
) /* add on <var_v:SeparateCompilerVisitor>*/;
8037 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__generate_check_init_instance
]))(self
, var_mtype
) /* generate_check_init_instance on <self:SeparateCompiler>*/;
8040 /* method separate_compiler#SeparateCompiler#compile_class_to_c for (self: Object, MClass) */
8041 void VIRTUAL_separate_compiler__SeparateCompiler__compile_class_to_c(val
* self
, val
* p0
) {
8042 separate_compiler__SeparateCompiler__compile_class_to_c(self
, p0
);
8045 /* method separate_compiler#SeparateCompiler#hardening_live_type for (self: SeparateCompiler, SeparateCompilerVisitor, String) */
8046 void separate_compiler__SeparateCompiler__hardening_live_type(val
* self
, val
* p0
, val
* p1
) {
8047 short int var
/* : Bool */;
8050 const struct type
* type_struct
;
8051 const char* var_class_name
;
8052 val
* var_v
/* var v: SeparateCompilerVisitor */;
8053 val
* var_t
/* var t: String */;
8054 val
* var1
/* : AbstractCompiler */;
8055 val
* var2
/* : ModelBuilder */;
8056 val
* var3
/* : ToolContext */;
8057 val
* var4
/* : OptionBool */;
8058 val
* var5
/* : nullable Object */;
8059 short int var6
/* : Bool */;
8060 short int var7
/* : Bool */;
8061 static val
* varonce
;
8062 val
* var8
/* : String */;
8063 char* var9
/* : NativeString */;
8064 long var10
/* : Int */;
8065 val
* var11
/* : String */;
8066 static val
* varonce12
;
8067 val
* var13
/* : String */;
8068 char* var14
/* : NativeString */;
8069 long var15
/* : Int */;
8070 val
* var16
/* : String */;
8071 val
* var17
/* : Array[Object] */;
8072 long var18
/* : Int */;
8073 val
* var19
/* : NativeArray[Object] */;
8074 val
* var20
/* : String */;
8075 static val
* varonce21
;
8076 val
* var22
/* : String */;
8077 char* var23
/* : NativeString */;
8078 long var24
/* : Int */;
8079 val
* var25
/* : String */;
8080 static val
* varonce26
;
8081 val
* var27
/* : String */;
8082 char* var28
/* : NativeString */;
8083 long var29
/* : Int */;
8084 val
* var30
/* : String */;
8085 static val
* varonce31
;
8086 val
* var32
/* : String */;
8087 char* var33
/* : NativeString */;
8088 long var34
/* : Int */;
8089 val
* var35
/* : String */;
8090 static val
* varonce36
;
8091 val
* var37
/* : String */;
8092 char* var38
/* : NativeString */;
8093 long var39
/* : Int */;
8094 val
* var40
/* : String */;
8095 val
* var41
/* : Array[Object] */;
8096 long var42
/* : Int */;
8097 val
* var43
/* : NativeArray[Object] */;
8098 val
* var44
/* : String */;
8099 static val
* varonce45
;
8100 val
* var46
/* : String */;
8101 char* var47
/* : NativeString */;
8102 long var48
/* : Int */;
8103 val
* var49
/* : String */;
8104 static val
* varonce50
;
8105 val
* var51
/* : String */;
8106 char* var52
/* : NativeString */;
8107 long var53
/* : Int */;
8108 val
* var54
/* : String */;
8109 val
* var55
/* : Array[Object] */;
8110 long var56
/* : Int */;
8111 val
* var57
/* : NativeArray[Object] */;
8112 val
* var58
/* : String */;
8113 static val
* varonce59
;
8114 val
* var60
/* : String */;
8115 char* var61
/* : NativeString */;
8116 long var62
/* : Int */;
8117 val
* var63
/* : String */;
8118 static val
* varonce64
;
8119 val
* var65
/* : String */;
8120 char* var66
/* : NativeString */;
8121 long var67
/* : Int */;
8122 val
* var68
/* : String */;
8123 /* Covariant cast for argument 0 (v) <p0:SeparateCompilerVisitor> isa VISITOR */
8124 /* <p0:SeparateCompilerVisitor> isa VISITOR */
8125 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
8126 cltype
= type_struct
->color
;
8127 idtype
= type_struct
->id
;
8128 if(cltype
>= p0
->type
->table_size
) {
8131 var
= p0
->type
->type_table
[cltype
] == idtype
;
8134 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
8135 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
8136 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 821);
8141 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:SeparateCompilerVisitor>*/;
8142 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var1
) /* modelbuilder on <var1:AbstractCompiler(SeparateCompiler)>*/;
8143 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var2
) /* toolcontext on <var2:ModelBuilder>*/;
8144 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_hardening
]))(var3
) /* opt_hardening on <var3:ToolContext>*/;
8145 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_opts__Option__value
]))(var4
) /* value on <var4:OptionBool>*/;
8146 var6
= ((struct instance_kernel__Bool
*)var5
)->value
; /* autounbox from nullable Object to Bool */;
8157 var11
= string__NativeString__to_s_with_length(var9
, var10
);
8164 var14
= " == NULL) {";
8166 var16
= string__NativeString__to_s_with_length(var14
, var15
);
8170 var17
= NEW_array__Array(&type_array__Arraykernel__Object
);
8171 { /* var17 = array_instance Array[Object] */
8173 var19
= NEW_array__NativeArray(var18
, &type_array__NativeArraykernel__Object
);
8174 ((struct instance_array__NativeArray
*)var19
)->values
[0] = (val
*) var8
;
8175 ((struct instance_array__NativeArray
*)var19
)->values
[1] = (val
*) var_t
;
8176 ((struct instance_array__NativeArray
*)var19
)->values
[2] = (val
*) var13
;
8177 ((void (*)(val
*, val
*, long))(var17
->class->vft
[COLOR_array__Array__with_native
]))(var17
, var19
, var18
) /* with_native on <var17:Array[Object]>*/;
8178 CHECK_NEW_array__Array(var17
);
8180 var20
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_string__Object__to_s
]))(var17
) /* to_s on <var17:Array[Object]>*/;
8181 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var20
) /* add on <var_v:SeparateCompilerVisitor>*/;
8185 var23
= "type null";
8187 var25
= string__NativeString__to_s_with_length(var23
, var24
);
8191 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(var_v
, var22
) /* add_abort on <var_v:SeparateCompilerVisitor>*/;
8197 var30
= string__NativeString__to_s_with_length(var28
, var29
);
8201 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var27
) /* add on <var_v:SeparateCompilerVisitor>*/;
8207 var35
= string__NativeString__to_s_with_length(var33
, var34
);
8214 var38
= "->resolution_table == NULL) {";
8216 var40
= string__NativeString__to_s_with_length(var38
, var39
);
8220 var41
= NEW_array__Array(&type_array__Arraykernel__Object
);
8221 { /* var41 = array_instance Array[Object] */
8223 var43
= NEW_array__NativeArray(var42
, &type_array__NativeArraykernel__Object
);
8224 ((struct instance_array__NativeArray
*)var43
)->values
[0] = (val
*) var32
;
8225 ((struct instance_array__NativeArray
*)var43
)->values
[1] = (val
*) var_t
;
8226 ((struct instance_array__NativeArray
*)var43
)->values
[2] = (val
*) var37
;
8227 ((void (*)(val
*, val
*, long))(var41
->class->vft
[COLOR_array__Array__with_native
]))(var41
, var43
, var42
) /* with_native on <var41:Array[Object]>*/;
8228 CHECK_NEW_array__Array(var41
);
8230 var44
= ((val
* (*)(val
*))(var41
->class->vft
[COLOR_string__Object__to_s
]))(var41
) /* to_s on <var41:Array[Object]>*/;
8231 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var44
) /* add on <var_v:SeparateCompilerVisitor>*/;
8235 var47
= "fprintf(stderr, \"Insantiation of a dead type: %s\\n\", ";
8237 var49
= string__NativeString__to_s_with_length(var47
, var48
);
8246 var54
= string__NativeString__to_s_with_length(var52
, var53
);
8250 var55
= NEW_array__Array(&type_array__Arraykernel__Object
);
8251 { /* var55 = array_instance Array[Object] */
8253 var57
= NEW_array__NativeArray(var56
, &type_array__NativeArraykernel__Object
);
8254 ((struct instance_array__NativeArray
*)var57
)->values
[0] = (val
*) var46
;
8255 ((struct instance_array__NativeArray
*)var57
)->values
[1] = (val
*) var_t
;
8256 ((struct instance_array__NativeArray
*)var57
)->values
[2] = (val
*) var51
;
8257 ((void (*)(val
*, val
*, long))(var55
->class->vft
[COLOR_array__Array__with_native
]))(var55
, var57
, var56
) /* with_native on <var55:Array[Object]>*/;
8258 CHECK_NEW_array__Array(var55
);
8260 var58
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_string__Object__to_s
]))(var55
) /* to_s on <var55:Array[Object]>*/;
8261 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var58
) /* add on <var_v:SeparateCompilerVisitor>*/;
8265 var61
= "type dead";
8267 var63
= string__NativeString__to_s_with_length(var61
, var62
);
8271 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(var_v
, var60
) /* add_abort on <var_v:SeparateCompilerVisitor>*/;
8277 var68
= string__NativeString__to_s_with_length(var66
, var67
);
8281 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var65
) /* add on <var_v:SeparateCompilerVisitor>*/;
8284 /* method separate_compiler#SeparateCompiler#hardening_live_type for (self: Object, SeparateCompilerVisitor, String) */
8285 void VIRTUAL_separate_compiler__SeparateCompiler__hardening_live_type(val
* self
, val
* p0
, val
* p1
) {
8286 separate_compiler__SeparateCompiler__hardening_live_type(self
, p0
, p1
);
8289 /* method separate_compiler#SeparateCompiler#generate_check_init_instance for (self: SeparateCompiler, MClassType) */
8290 void separate_compiler__SeparateCompiler__generate_check_init_instance(val
* self
, val
* p0
) {
8291 val
* var_mtype
/* var mtype: MClassType */;
8292 val
* var
/* : ModelBuilder */;
8293 val
* var1
/* : ToolContext */;
8294 val
* var2
/* : OptionBool */;
8295 val
* var3
/* : nullable Object */;
8296 short int var4
/* : Bool */;
8297 val
* var5
/* : AbstractCompilerVisitor */;
8298 val
* var_v
/* var v: SeparateCompilerVisitor */;
8299 val
* var6
/* : MClass */;
8300 val
* var7
/* : String */;
8301 val
* var_c_name
/* var c_name: String */;
8302 val
* var8
/* : RuntimeVariable */;
8303 static val
* varonce
;
8304 val
* var9
/* : String */;
8305 char* var10
/* : NativeString */;
8306 long var11
/* : Int */;
8307 val
* var12
/* : String */;
8308 val
* var_res
/* var res: RuntimeVariable */;
8309 static val
* varonce13
;
8310 val
* var14
/* : String */;
8311 char* var15
/* : NativeString */;
8312 long var16
/* : Int */;
8313 val
* var17
/* : String */;
8314 val
* var18
/* : Array[Object] */;
8315 long var19
/* : Int */;
8316 val
* var20
/* : NativeArray[Object] */;
8317 val
* var21
/* : String */;
8318 static val
* varonce22
;
8319 val
* var23
/* : String */;
8320 char* var24
/* : NativeString */;
8321 long var25
/* : Int */;
8322 val
* var26
/* : String */;
8323 static val
* varonce27
;
8324 val
* var28
/* : String */;
8325 char* var29
/* : NativeString */;
8326 long var30
/* : Int */;
8327 val
* var31
/* : String */;
8328 val
* var32
/* : String */;
8329 static val
* varonce33
;
8330 val
* var34
/* : String */;
8331 char* var35
/* : NativeString */;
8332 long var36
/* : Int */;
8333 val
* var37
/* : String */;
8334 val
* var38
/* : Array[Object] */;
8335 long var39
/* : Int */;
8336 val
* var40
/* : NativeArray[Object] */;
8337 val
* var41
/* : String */;
8338 static val
* varonce42
;
8339 val
* var43
/* : String */;
8340 char* var44
/* : NativeString */;
8341 long var45
/* : Int */;
8342 val
* var46
/* : String */;
8343 static val
* varonce47
;
8344 val
* var48
/* : String */;
8345 char* var49
/* : NativeString */;
8346 long var50
/* : Int */;
8347 val
* var51
/* : String */;
8348 val
* var52
/* : Array[Object] */;
8349 long var53
/* : Int */;
8350 val
* var54
/* : NativeArray[Object] */;
8351 val
* var55
/* : String */;
8352 static val
* varonce56
;
8353 val
* var57
/* : String */;
8354 char* var58
/* : NativeString */;
8355 long var59
/* : Int */;
8356 val
* var60
/* : String */;
8357 static val
* varonce61
;
8358 val
* var62
/* : String */;
8359 char* var63
/* : NativeString */;
8360 long var64
/* : Int */;
8361 val
* var65
/* : String */;
8362 val
* var66
/* : String */;
8363 static val
* varonce67
;
8364 val
* var68
/* : String */;
8365 char* var69
/* : NativeString */;
8366 long var70
/* : Int */;
8367 val
* var71
/* : String */;
8368 static val
* varonce72
;
8369 val
* var73
/* : String */;
8370 char* var74
/* : NativeString */;
8371 long var75
/* : Int */;
8372 val
* var76
/* : String */;
8373 val
* var77
/* : Array[Object] */;
8374 long var78
/* : Int */;
8375 val
* var79
/* : NativeArray[Object] */;
8376 val
* var80
/* : String */;
8377 val
* var81
/* : RapidTypeAnalysis */;
8378 val
* var82
/* : HashSet[MClass] */;
8379 val
* var83
/* : MClass */;
8380 short int var84
/* : Bool */;
8381 val
* var85
/* : MClass */;
8382 static val
* varonce86
;
8383 val
* var87
/* : String */;
8384 char* var88
/* : NativeString */;
8385 long var89
/* : Int */;
8386 val
* var90
/* : String */;
8387 val
* var91
/* : Array[Object] */;
8388 long var92
/* : Int */;
8389 val
* var93
/* : NativeArray[Object] */;
8390 val
* var94
/* : String */;
8391 static val
* varonce95
;
8392 val
* var96
/* : String */;
8393 char* var97
/* : NativeString */;
8394 long var98
/* : Int */;
8395 val
* var99
/* : String */;
8397 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
8398 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var
) /* toolcontext on <var:ModelBuilder>*/;
8399 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_no_check_initialization
]))(var1
) /* opt_no_check_initialization on <var1:ToolContext>*/;
8400 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_opts__Option__value
]))(var2
) /* value on <var2:OptionBool>*/;
8401 var4
= ((struct instance_kernel__Bool
*)var3
)->value
; /* autounbox from nullable Object to Bool */;
8406 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
8408 var6
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
8409 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(var6
) /* c_name on <var6:MClass>*/;
8411 var8
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
8417 var12
= string__NativeString__to_s_with_length(var10
, var11
);
8421 ((void (*)(val
*, val
*, val
*, val
*))(var8
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__init
]))(var8
, var9
, var_mtype
, var_mtype
) /* init on <var8:RuntimeVariable>*/;
8422 CHECK_NEW_abstract_compiler__RuntimeVariable(var8
);
8427 var15
= "CHECK_NEW_";
8429 var17
= string__NativeString__to_s_with_length(var15
, var16
);
8433 var18
= NEW_array__Array(&type_array__Arraykernel__Object
);
8434 { /* var18 = array_instance Array[Object] */
8436 var20
= NEW_array__NativeArray(var19
, &type_array__NativeArraykernel__Object
);
8437 ((struct instance_array__NativeArray
*)var20
)->values
[0] = (val
*) var14
;
8438 ((struct instance_array__NativeArray
*)var20
)->values
[1] = (val
*) var_c_name
;
8439 ((void (*)(val
*, val
*, long))(var18
->class->vft
[COLOR_array__Array__with_native
]))(var18
, var20
, var19
) /* with_native on <var18:Array[Object]>*/;
8440 CHECK_NEW_array__Array(var18
);
8442 var21
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_string__Object__to_s
]))(var18
) /* to_s on <var18:Array[Object]>*/;
8446 var24
= "void CHECK_NEW_";
8448 var26
= string__NativeString__to_s_with_length(var24
, var25
);
8457 var31
= string__NativeString__to_s_with_length(var29
, var30
);
8461 var32
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
8467 var37
= string__NativeString__to_s_with_length(var35
, var36
);
8471 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
8472 { /* var38 = array_instance Array[Object] */
8474 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
8475 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var23
;
8476 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var_c_name
;
8477 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var28
;
8478 ((struct instance_array__NativeArray
*)var40
)->values
[3] = (val
*) var32
;
8479 ((struct instance_array__NativeArray
*)var40
)->values
[4] = (val
*) var34
;
8480 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
8481 CHECK_NEW_array__Array(var38
);
8483 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
8484 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(self
, var21
, var41
) /* provide_declaration on <self:SeparateCompiler>*/;
8488 var44
= "/* allocate ";
8490 var46
= string__NativeString__to_s_with_length(var44
, var45
);
8499 var51
= string__NativeString__to_s_with_length(var49
, var50
);
8503 var52
= NEW_array__Array(&type_array__Arraykernel__Object
);
8504 { /* var52 = array_instance Array[Object] */
8506 var54
= NEW_array__NativeArray(var53
, &type_array__NativeArraykernel__Object
);
8507 ((struct instance_array__NativeArray
*)var54
)->values
[0] = (val
*) var43
;
8508 ((struct instance_array__NativeArray
*)var54
)->values
[1] = (val
*) var_mtype
;
8509 ((struct instance_array__NativeArray
*)var54
)->values
[2] = (val
*) var48
;
8510 ((void (*)(val
*, val
*, long))(var52
->class->vft
[COLOR_array__Array__with_native
]))(var52
, var54
, var53
) /* with_native on <var52:Array[Object]>*/;
8511 CHECK_NEW_array__Array(var52
);
8513 var55
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_string__Object__to_s
]))(var52
) /* to_s on <var52:Array[Object]>*/;
8514 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var55
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
8518 var58
= "void CHECK_NEW_";
8520 var60
= string__NativeString__to_s_with_length(var58
, var59
);
8529 var65
= string__NativeString__to_s_with_length(var63
, var64
);
8533 var66
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
8539 var71
= string__NativeString__to_s_with_length(var69
, var70
);
8548 var76
= string__NativeString__to_s_with_length(var74
, var75
);
8552 var77
= NEW_array__Array(&type_array__Arraykernel__Object
);
8553 { /* var77 = array_instance Array[Object] */
8555 var79
= NEW_array__NativeArray(var78
, &type_array__NativeArraykernel__Object
);
8556 ((struct instance_array__NativeArray
*)var79
)->values
[0] = (val
*) var57
;
8557 ((struct instance_array__NativeArray
*)var79
)->values
[1] = (val
*) var_c_name
;
8558 ((struct instance_array__NativeArray
*)var79
)->values
[2] = (val
*) var62
;
8559 ((struct instance_array__NativeArray
*)var79
)->values
[3] = (val
*) var66
;
8560 ((struct instance_array__NativeArray
*)var79
)->values
[4] = (val
*) var68
;
8561 ((struct instance_array__NativeArray
*)var79
)->values
[5] = (val
*) var_res
;
8562 ((struct instance_array__NativeArray
*)var79
)->values
[6] = (val
*) var73
;
8563 ((void (*)(val
*, val
*, long))(var77
->class->vft
[COLOR_array__Array__with_native
]))(var77
, var79
, var78
) /* with_native on <var77:Array[Object]>*/;
8564 CHECK_NEW_array__Array(var77
);
8566 var80
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_string__Object__to_s
]))(var77
) /* to_s on <var77:Array[Object]>*/;
8567 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var80
) /* add_decl on <var_v:SeparateCompilerVisitor>*/;
8568 var81
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis
]))(self
) /* runtime_type_analysis on <self:SeparateCompiler>*/;
8569 var82
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_classes
]))(var81
) /* live_classes on <var81:RapidTypeAnalysis>*/;
8570 var83
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
8571 var84
= ((short int (*)(val
*, val
*))(var82
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var82
, var83
) /* has on <var82:HashSet[MClass]>*/;
8573 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__generate_check_attr
]))(self
, var_v
, var_res
, var_mtype
) /* generate_check_attr on <self:SeparateCompiler>*/;
8575 var85
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
8581 var90
= string__NativeString__to_s_with_length(var88
, var89
);
8585 var91
= NEW_array__Array(&type_array__Arraykernel__Object
);
8586 { /* var91 = array_instance Array[Object] */
8588 var93
= NEW_array__NativeArray(var92
, &type_array__NativeArraykernel__Object
);
8589 ((struct instance_array__NativeArray
*)var93
)->values
[0] = (val
*) var85
;
8590 ((struct instance_array__NativeArray
*)var93
)->values
[1] = (val
*) var87
;
8591 ((void (*)(val
*, val
*, long))(var91
->class->vft
[COLOR_array__Array__with_native
]))(var91
, var93
, var92
) /* with_native on <var91:Array[Object]>*/;
8592 CHECK_NEW_array__Array(var91
);
8594 var94
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_string__Object__to_s
]))(var91
) /* to_s on <var91:Array[Object]>*/;
8595 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(var_v
, var94
) /* add_abort on <var_v:SeparateCompilerVisitor>*/;
8602 var99
= string__NativeString__to_s_with_length(var97
, var98
);
8606 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var96
) /* add on <var_v:SeparateCompilerVisitor>*/;
8609 /* method separate_compiler#SeparateCompiler#generate_check_init_instance for (self: Object, MClassType) */
8610 void VIRTUAL_separate_compiler__SeparateCompiler__generate_check_init_instance(val
* self
, val
* p0
) {
8611 separate_compiler__SeparateCompiler__generate_check_init_instance(self
, p0
);
8614 /* method separate_compiler#SeparateCompiler#new_visitor for (self: SeparateCompiler): SeparateCompilerVisitor */
8615 val
* separate_compiler__SeparateCompiler__new_visitor(val
* self
) {
8616 val
* var
/* : SeparateCompilerVisitor */;
8617 val
* var1
/* : SeparateCompilerVisitor */;
8618 short int var2
/* : Bool */;
8621 const struct type
* type_struct
;
8622 const char* var_class_name
;
8623 var1
= NEW_separate_compiler__SeparateCompilerVisitor(&type_separate_compiler__SeparateCompilerVisitor
);
8624 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init
]))(var1
, self
) /* init on <var1:SeparateCompilerVisitor>*/;
8625 CHECK_NEW_separate_compiler__SeparateCompilerVisitor(var1
);
8626 /* <var1:SeparateCompilerVisitor> isa VISITOR */
8627 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
8628 cltype
= type_struct
->color
;
8629 idtype
= type_struct
->id
;
8630 if(cltype
>= var1
->type
->table_size
) {
8633 var2
= var1
->type
->type_table
[cltype
] == idtype
;
8636 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
8637 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
8638 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 852);
8646 /* method separate_compiler#SeparateCompiler#new_visitor for (self: Object): AbstractCompilerVisitor */
8647 val
* VIRTUAL_separate_compiler__SeparateCompiler__new_visitor(val
* self
) {
8648 val
* var
/* : AbstractCompilerVisitor */;
8649 val
* var1
/* : SeparateCompilerVisitor */;
8650 var1
= separate_compiler__SeparateCompiler__new_visitor(self
);
8655 /* method separate_compiler#SeparateCompiler#type_tables for (self: SeparateCompiler): Map[MType, Array[nullable MType]] */
8656 val
* separate_compiler__SeparateCompiler__type_tables(val
* self
) {
8657 val
* var
/* : Map[MType, Array[nullable MType]] */;
8658 val
* var1
/* : Map[MType, Array[nullable MType]] */;
8659 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dtype_tables
].val
; /* @type_tables on <self:SeparateCompiler> */
8661 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @type_tables");
8662 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 856);
8669 /* method separate_compiler#SeparateCompiler#type_tables for (self: Object): Map[MType, Array[nullable MType]] */
8670 val
* VIRTUAL_separate_compiler__SeparateCompiler__type_tables(val
* self
) {
8671 val
* var
/* : Map[MType, Array[nullable MType]] */;
8672 val
* var1
/* : Map[MType, Array[nullable MType]] */;
8673 var1
= separate_compiler__SeparateCompiler__type_tables(self
);
8678 /* method separate_compiler#SeparateCompiler#type_tables= for (self: SeparateCompiler, Map[MType, Array[nullable MType]]) */
8679 void separate_compiler__SeparateCompiler__type_tables_61d(val
* self
, val
* p0
) {
8680 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dtype_tables
].val
= p0
; /* @type_tables on <self:SeparateCompiler> */
8683 /* method separate_compiler#SeparateCompiler#type_tables= for (self: Object, Map[MType, Array[nullable MType]]) */
8684 void VIRTUAL_separate_compiler__SeparateCompiler__type_tables_61d(val
* self
, val
* p0
) {
8685 separate_compiler__SeparateCompiler__type_tables_61d(self
, p0
);
8688 /* method separate_compiler#SeparateCompiler#resolution_tables for (self: SeparateCompiler): Map[MClassType, Array[nullable MType]] */
8689 val
* separate_compiler__SeparateCompiler__resolution_tables(val
* self
) {
8690 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
8691 val
* var1
/* : Map[MClassType, Array[nullable MType]] */;
8692 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dresolution_tables
].val
; /* @resolution_tables on <self:SeparateCompiler> */
8694 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @resolution_tables");
8695 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 857);
8702 /* method separate_compiler#SeparateCompiler#resolution_tables for (self: Object): Map[MClassType, Array[nullable MType]] */
8703 val
* VIRTUAL_separate_compiler__SeparateCompiler__resolution_tables(val
* self
) {
8704 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
8705 val
* var1
/* : Map[MClassType, Array[nullable MType]] */;
8706 var1
= separate_compiler__SeparateCompiler__resolution_tables(self
);
8711 /* method separate_compiler#SeparateCompiler#resolution_tables= for (self: SeparateCompiler, Map[MClassType, Array[nullable MType]]) */
8712 void separate_compiler__SeparateCompiler__resolution_tables_61d(val
* self
, val
* p0
) {
8713 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dresolution_tables
].val
= p0
; /* @resolution_tables on <self:SeparateCompiler> */
8716 /* method separate_compiler#SeparateCompiler#resolution_tables= for (self: Object, Map[MClassType, Array[nullable MType]]) */
8717 void VIRTUAL_separate_compiler__SeparateCompiler__resolution_tables_61d(val
* self
, val
* p0
) {
8718 separate_compiler__SeparateCompiler__resolution_tables_61d(self
, p0
);
8721 /* method separate_compiler#SeparateCompiler#method_tables for (self: SeparateCompiler): Map[MClass, Array[nullable MPropDef]] */
8722 val
* separate_compiler__SeparateCompiler__method_tables(val
* self
) {
8723 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
8724 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
8725 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dmethod_tables
].val
; /* @method_tables on <self:SeparateCompiler> */
8727 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @method_tables");
8728 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 858);
8735 /* method separate_compiler#SeparateCompiler#method_tables for (self: Object): Map[MClass, Array[nullable MPropDef]] */
8736 val
* VIRTUAL_separate_compiler__SeparateCompiler__method_tables(val
* self
) {
8737 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
8738 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
8739 var1
= separate_compiler__SeparateCompiler__method_tables(self
);
8744 /* method separate_compiler#SeparateCompiler#method_tables= for (self: SeparateCompiler, Map[MClass, Array[nullable MPropDef]]) */
8745 void separate_compiler__SeparateCompiler__method_tables_61d(val
* self
, val
* p0
) {
8746 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dmethod_tables
].val
= p0
; /* @method_tables on <self:SeparateCompiler> */
8749 /* method separate_compiler#SeparateCompiler#method_tables= for (self: Object, Map[MClass, Array[nullable MPropDef]]) */
8750 void VIRTUAL_separate_compiler__SeparateCompiler__method_tables_61d(val
* self
, val
* p0
) {
8751 separate_compiler__SeparateCompiler__method_tables_61d(self
, p0
);
8754 /* method separate_compiler#SeparateCompiler#attr_tables for (self: SeparateCompiler): Map[MClass, Array[nullable MPropDef]] */
8755 val
* separate_compiler__SeparateCompiler__attr_tables(val
* self
) {
8756 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
8757 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
8758 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dattr_tables
].val
; /* @attr_tables on <self:SeparateCompiler> */
8760 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @attr_tables");
8761 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 859);
8768 /* method separate_compiler#SeparateCompiler#attr_tables for (self: Object): Map[MClass, Array[nullable MPropDef]] */
8769 val
* VIRTUAL_separate_compiler__SeparateCompiler__attr_tables(val
* self
) {
8770 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
8771 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
8772 var1
= separate_compiler__SeparateCompiler__attr_tables(self
);
8777 /* method separate_compiler#SeparateCompiler#attr_tables= for (self: SeparateCompiler, Map[MClass, Array[nullable MPropDef]]) */
8778 void separate_compiler__SeparateCompiler__attr_tables_61d(val
* self
, val
* p0
) {
8779 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___64dattr_tables
].val
= p0
; /* @attr_tables on <self:SeparateCompiler> */
8782 /* method separate_compiler#SeparateCompiler#attr_tables= for (self: Object, Map[MClass, Array[nullable MPropDef]]) */
8783 void VIRTUAL_separate_compiler__SeparateCompiler__attr_tables_61d(val
* self
, val
* p0
) {
8784 separate_compiler__SeparateCompiler__attr_tables_61d(self
, p0
);
8787 /* method separate_compiler#SeparateCompiler#display_stats for (self: SeparateCompiler) */
8788 void separate_compiler__SeparateCompiler__display_stats(val
* self
) {
8789 val
* var
/* : ModelBuilder */;
8790 val
* var1
/* : ToolContext */;
8791 val
* var2
/* : OptionBool */;
8792 val
* var3
/* : nullable Object */;
8793 short int var4
/* : Bool */;
8794 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__display_stats
]))(self
) /* display_stats on <self:SeparateCompiler>*/;
8795 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(self
) /* modelbuilder on <self:SeparateCompiler>*/;
8796 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var
) /* toolcontext on <var:ModelBuilder>*/;
8797 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_separate_compiler__ToolContext__opt_tables_metrics
]))(var1
) /* opt_tables_metrics on <var1:ToolContext>*/;
8798 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_opts__Option__value
]))(var2
) /* value on <var2:OptionBool>*/;
8799 var4
= ((struct instance_kernel__Bool
*)var3
)->value
; /* autounbox from nullable Object to Bool */;
8801 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__display_sizes
]))(self
) /* display_sizes on <self:SeparateCompiler>*/;
8806 /* method separate_compiler#SeparateCompiler#display_stats for (self: Object) */
8807 void VIRTUAL_separate_compiler__SeparateCompiler__display_stats(val
* self
) {
8808 separate_compiler__SeparateCompiler__display_stats(self
);
8811 /* method separate_compiler#SeparateCompiler#display_sizes for (self: SeparateCompiler) */
8812 void separate_compiler__SeparateCompiler__display_sizes(val
* self
) {
8813 static val
* varonce
;
8814 val
* var
/* : String */;
8815 char* var1
/* : NativeString */;
8816 long var2
/* : Int */;
8817 val
* var3
/* : String */;
8818 static val
* varonce4
;
8819 val
* var5
/* : String */;
8820 char* var6
/* : NativeString */;
8821 long var7
/* : Int */;
8822 val
* var8
/* : String */;
8823 long var9
/* : Int */;
8824 long var_total
/* var total: Int */;
8825 long var10
/* : Int */;
8826 long var_holes
/* var holes: Int */;
8827 val
* var11
/* : Map[MType, Array[nullable MType]] */;
8828 val
* var12
/* : MapIterator[Object, nullable Object] */;
8829 short int var13
/* : Bool */;
8830 val
* var14
/* : Object */;
8831 val
* var_t
/* var t: MType */;
8832 val
* var15
/* : nullable Object */;
8833 val
* var_table
/* var table: Array[nullable MType] */;
8834 long var16
/* : Int */;
8835 long var17
/* : Int */;
8836 long var19
/* : Int */;
8837 val
* var20
/* : Iterator[nullable Object] */;
8838 short int var21
/* : Bool */;
8839 val
* var22
/* : nullable Object */;
8840 val
* var_e
/* var e: nullable MType */;
8841 val
* var23
/* : null */;
8842 short int var24
/* : Bool */;
8843 long var25
/* : Int */;
8844 long var26
/* : Int */;
8845 long var28
/* : Int */;
8846 static val
* varonce30
;
8847 val
* var31
/* : String */;
8848 char* var32
/* : NativeString */;
8849 long var33
/* : Int */;
8850 val
* var34
/* : String */;
8851 static val
* varonce35
;
8852 val
* var36
/* : String */;
8853 char* var37
/* : NativeString */;
8854 long var38
/* : Int */;
8855 val
* var39
/* : String */;
8856 val
* var40
/* : Array[Object] */;
8857 long var41
/* : Int */;
8858 val
* var42
/* : NativeArray[Object] */;
8859 val
* var43
/* : Object */;
8860 val
* var44
/* : Object */;
8861 val
* var45
/* : String */;
8862 static val
* varonce46
;
8863 val
* var47
/* : String */;
8864 char* var48
/* : NativeString */;
8865 long var49
/* : Int */;
8866 val
* var50
/* : String */;
8867 static val
* varonce51
;
8868 val
* var52
/* : String */;
8869 char* var53
/* : NativeString */;
8870 long var54
/* : Int */;
8871 val
* var55
/* : String */;
8872 long var56
/* : Int */;
8873 long var57
/* : Int */;
8874 val
* var58
/* : Map[MClassType, Array[nullable MType]] */;
8875 val
* var59
/* : MapIterator[Object, nullable Object] */;
8876 short int var60
/* : Bool */;
8877 val
* var61
/* : Object */;
8878 val
* var_t62
/* var t: MClassType */;
8879 val
* var63
/* : nullable Object */;
8880 val
* var_table64
/* var table: Array[nullable MType] */;
8881 long var65
/* : Int */;
8882 long var66
/* : Int */;
8883 long var68
/* : Int */;
8884 val
* var69
/* : Iterator[nullable Object] */;
8885 short int var70
/* : Bool */;
8886 val
* var71
/* : nullable Object */;
8887 val
* var_e72
/* var e: nullable MType */;
8888 val
* var73
/* : null */;
8889 short int var74
/* : Bool */;
8890 long var75
/* : Int */;
8891 long var76
/* : Int */;
8892 long var78
/* : Int */;
8893 static val
* varonce81
;
8894 val
* var82
/* : String */;
8895 char* var83
/* : NativeString */;
8896 long var84
/* : Int */;
8897 val
* var85
/* : String */;
8898 static val
* varonce86
;
8899 val
* var87
/* : String */;
8900 char* var88
/* : NativeString */;
8901 long var89
/* : Int */;
8902 val
* var90
/* : String */;
8903 val
* var91
/* : Array[Object] */;
8904 long var92
/* : Int */;
8905 val
* var93
/* : NativeArray[Object] */;
8906 val
* var94
/* : Object */;
8907 val
* var95
/* : Object */;
8908 val
* var96
/* : String */;
8909 static val
* varonce97
;
8910 val
* var98
/* : String */;
8911 char* var99
/* : NativeString */;
8912 long var100
/* : Int */;
8913 val
* var101
/* : String */;
8914 static val
* varonce102
;
8915 val
* var103
/* : String */;
8916 char* var104
/* : NativeString */;
8917 long var105
/* : Int */;
8918 val
* var106
/* : String */;
8919 long var107
/* : Int */;
8920 long var108
/* : Int */;
8921 val
* var109
/* : Map[MClass, Array[nullable MPropDef]] */;
8922 val
* var110
/* : MapIterator[Object, nullable Object] */;
8923 short int var111
/* : Bool */;
8924 val
* var112
/* : Object */;
8925 val
* var_t113
/* var t: MClass */;
8926 val
* var114
/* : nullable Object */;
8927 val
* var_table115
/* var table: Array[nullable MPropDef] */;
8928 long var116
/* : Int */;
8929 long var117
/* : Int */;
8930 long var119
/* : Int */;
8931 val
* var120
/* : Iterator[nullable Object] */;
8932 short int var121
/* : Bool */;
8933 val
* var122
/* : nullable Object */;
8934 val
* var_e123
/* var e: nullable MPropDef */;
8935 val
* var124
/* : null */;
8936 short int var125
/* : Bool */;
8937 long var126
/* : Int */;
8938 long var127
/* : Int */;
8939 long var129
/* : Int */;
8940 static val
* varonce132
;
8941 val
* var133
/* : String */;
8942 char* var134
/* : NativeString */;
8943 long var135
/* : Int */;
8944 val
* var136
/* : String */;
8945 static val
* varonce137
;
8946 val
* var138
/* : String */;
8947 char* var139
/* : NativeString */;
8948 long var140
/* : Int */;
8949 val
* var141
/* : String */;
8950 val
* var142
/* : Array[Object] */;
8951 long var143
/* : Int */;
8952 val
* var144
/* : NativeArray[Object] */;
8953 val
* var145
/* : Object */;
8954 val
* var146
/* : Object */;
8955 val
* var147
/* : String */;
8956 static val
* varonce148
;
8957 val
* var149
/* : String */;
8958 char* var150
/* : NativeString */;
8959 long var151
/* : Int */;
8960 val
* var152
/* : String */;
8961 static val
* varonce153
;
8962 val
* var154
/* : String */;
8963 char* var155
/* : NativeString */;
8964 long var156
/* : Int */;
8965 val
* var157
/* : String */;
8966 long var158
/* : Int */;
8967 long var159
/* : Int */;
8968 val
* var160
/* : Map[MClass, Array[nullable MPropDef]] */;
8969 val
* var161
/* : MapIterator[Object, nullable Object] */;
8970 short int var162
/* : Bool */;
8971 val
* var163
/* : Object */;
8972 val
* var_t164
/* var t: MClass */;
8973 val
* var165
/* : nullable Object */;
8974 val
* var_table166
/* var table: Array[nullable MPropDef] */;
8975 long var167
/* : Int */;
8976 long var168
/* : Int */;
8977 long var170
/* : Int */;
8978 val
* var171
/* : Iterator[nullable Object] */;
8979 short int var172
/* : Bool */;
8980 val
* var173
/* : nullable Object */;
8981 val
* var_e174
/* var e: nullable MPropDef */;
8982 val
* var175
/* : null */;
8983 short int var176
/* : Bool */;
8984 long var177
/* : Int */;
8985 long var178
/* : Int */;
8986 long var180
/* : Int */;
8987 static val
* varonce183
;
8988 val
* var184
/* : String */;
8989 char* var185
/* : NativeString */;
8990 long var186
/* : Int */;
8991 val
* var187
/* : String */;
8992 static val
* varonce188
;
8993 val
* var189
/* : String */;
8994 char* var190
/* : NativeString */;
8995 long var191
/* : Int */;
8996 val
* var192
/* : String */;
8997 val
* var193
/* : Array[Object] */;
8998 long var194
/* : Int */;
8999 val
* var195
/* : NativeArray[Object] */;
9000 val
* var196
/* : Object */;
9001 val
* var197
/* : Object */;
9002 val
* var198
/* : String */;
9006 var1
= "# size of subtyping tables";
9008 var3
= string__NativeString__to_s_with_length(var1
, var2
);
9012 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var
) /* print on <self:SeparateCompiler>*/;
9016 var6
= "\11total \11holes";
9018 var8
= string__NativeString__to_s_with_length(var6
, var7
);
9022 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var5
) /* print on <self:SeparateCompiler>*/;
9027 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__type_tables
]))(self
) /* type_tables on <self:SeparateCompiler>*/;
9028 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var11
) /* iterator on <var11:Map[MType, Array[nullable MType]]>*/;
9030 var13
= ((short int (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var12
) /* is_ok on <var12:MapIterator[Object, nullable Object]>*/;
9032 var14
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var12
) /* key on <var12:MapIterator[Object, nullable Object]>*/;
9034 var15
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var12
) /* item on <var12:MapIterator[Object, nullable Object]>*/;
9036 var16
= ((long (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table
) /* length on <var_table:Array[nullable MType]>*/;
9037 { /* Inline kernel#Int#+ (var_total,var16) */
9038 var19
= var_total
+ var16
;
9041 RET_LABEL18
:(void)0;
9044 var20
= ((val
* (*)(val
*))(var_table
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table
) /* iterator on <var_table:Array[nullable MType]>*/;
9046 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var20
) /* is_ok on <var20:Iterator[nullable Object]>*/;
9048 var22
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var20
) /* item on <var20:Iterator[nullable Object]>*/;
9051 if (var_e
== NULL
) {
9052 var24
= 1; /* is null */
9054 var24
= 0; /* arg is null but recv is not */
9058 { /* Inline kernel#Int#+ (var_holes,var25) */
9059 var28
= var_holes
+ var25
;
9062 RET_LABEL27
:(void)0;
9067 CONTINUE_label
: (void)0;
9068 ((void (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var20
) /* next on <var20:Iterator[nullable Object]>*/;
9070 BREAK_label
: (void)0;
9071 CONTINUE_label29
: (void)0;
9072 ((void (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var12
) /* next on <var12:MapIterator[Object, nullable Object]>*/;
9074 BREAK_label29
: (void)0;
9080 var34
= string__NativeString__to_s_with_length(var32
, var33
);
9089 var39
= string__NativeString__to_s_with_length(var37
, var38
);
9093 var40
= NEW_array__Array(&type_array__Arraykernel__Object
);
9094 { /* var40 = array_instance Array[Object] */
9096 var42
= NEW_array__NativeArray(var41
, &type_array__NativeArraykernel__Object
);
9097 ((struct instance_array__NativeArray
*)var42
)->values
[0] = (val
*) var31
;
9098 var43
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
9099 ((struct instance_array__NativeArray
*)var42
)->values
[1] = (val
*) var43
;
9100 ((struct instance_array__NativeArray
*)var42
)->values
[2] = (val
*) var36
;
9101 var44
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
9102 ((struct instance_array__NativeArray
*)var42
)->values
[3] = (val
*) var44
;
9103 ((void (*)(val
*, val
*, long))(var40
->class->vft
[COLOR_array__Array__with_native
]))(var40
, var42
, var41
) /* with_native on <var40:Array[Object]>*/;
9104 CHECK_NEW_array__Array(var40
);
9106 var45
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_string__Object__to_s
]))(var40
) /* to_s on <var40:Array[Object]>*/;
9107 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var45
) /* print on <self:SeparateCompiler>*/;
9111 var48
= "# size of resolution tables";
9113 var50
= string__NativeString__to_s_with_length(var48
, var49
);
9117 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var47
) /* print on <self:SeparateCompiler>*/;
9121 var53
= "\11total \11holes";
9123 var55
= string__NativeString__to_s_with_length(var53
, var54
);
9127 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var52
) /* print on <self:SeparateCompiler>*/;
9132 var58
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__resolution_tables
]))(self
) /* resolution_tables on <self:SeparateCompiler>*/;
9133 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var58
) /* iterator on <var58:Map[MClassType, Array[nullable MType]]>*/;
9135 var60
= ((short int (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var59
) /* is_ok on <var59:MapIterator[Object, nullable Object]>*/;
9137 var61
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var59
) /* key on <var59:MapIterator[Object, nullable Object]>*/;
9139 var63
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var59
) /* item on <var59:MapIterator[Object, nullable Object]>*/;
9140 var_table64
= var63
;
9141 var65
= ((long (*)(val
*))(var_table64
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table64
) /* length on <var_table64:Array[nullable MType]>*/;
9142 { /* Inline kernel#Int#+ (var_total,var65) */
9143 var68
= var_total
+ var65
;
9146 RET_LABEL67
:(void)0;
9149 var69
= ((val
* (*)(val
*))(var_table64
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table64
) /* iterator on <var_table64:Array[nullable MType]>*/;
9151 var70
= ((short int (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var69
) /* is_ok on <var69:Iterator[nullable Object]>*/;
9153 var71
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var69
) /* item on <var69:Iterator[nullable Object]>*/;
9156 if (var_e72
== NULL
) {
9157 var74
= 1; /* is null */
9159 var74
= 0; /* arg is null but recv is not */
9163 { /* Inline kernel#Int#+ (var_holes,var75) */
9164 var78
= var_holes
+ var75
;
9167 RET_LABEL77
:(void)0;
9172 CONTINUE_label79
: (void)0;
9173 ((void (*)(val
*))(var69
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var69
) /* next on <var69:Iterator[nullable Object]>*/;
9175 BREAK_label79
: (void)0;
9176 CONTINUE_label80
: (void)0;
9177 ((void (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var59
) /* next on <var59:MapIterator[Object, nullable Object]>*/;
9179 BREAK_label80
: (void)0;
9185 var85
= string__NativeString__to_s_with_length(var83
, var84
);
9194 var90
= string__NativeString__to_s_with_length(var88
, var89
);
9198 var91
= NEW_array__Array(&type_array__Arraykernel__Object
);
9199 { /* var91 = array_instance Array[Object] */
9201 var93
= NEW_array__NativeArray(var92
, &type_array__NativeArraykernel__Object
);
9202 ((struct instance_array__NativeArray
*)var93
)->values
[0] = (val
*) var82
;
9203 var94
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
9204 ((struct instance_array__NativeArray
*)var93
)->values
[1] = (val
*) var94
;
9205 ((struct instance_array__NativeArray
*)var93
)->values
[2] = (val
*) var87
;
9206 var95
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
9207 ((struct instance_array__NativeArray
*)var93
)->values
[3] = (val
*) var95
;
9208 ((void (*)(val
*, val
*, long))(var91
->class->vft
[COLOR_array__Array__with_native
]))(var91
, var93
, var92
) /* with_native on <var91:Array[Object]>*/;
9209 CHECK_NEW_array__Array(var91
);
9211 var96
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_string__Object__to_s
]))(var91
) /* to_s on <var91:Array[Object]>*/;
9212 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var96
) /* print on <self:SeparateCompiler>*/;
9216 var99
= "# size of methods tables";
9218 var101
= string__NativeString__to_s_with_length(var99
, var100
);
9222 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var98
) /* print on <self:SeparateCompiler>*/;
9224 var103
= varonce102
;
9226 var104
= "\11total \11holes";
9228 var106
= string__NativeString__to_s_with_length(var104
, var105
);
9230 varonce102
= var103
;
9232 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var103
) /* print on <self:SeparateCompiler>*/;
9237 var109
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__method_tables
]))(self
) /* method_tables on <self:SeparateCompiler>*/;
9238 var110
= ((val
* (*)(val
*))(var109
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var109
) /* iterator on <var109:Map[MClass, Array[nullable MPropDef]]>*/;
9240 var111
= ((short int (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var110
) /* is_ok on <var110:MapIterator[Object, nullable Object]>*/;
9242 var112
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var110
) /* key on <var110:MapIterator[Object, nullable Object]>*/;
9244 var114
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var110
) /* item on <var110:MapIterator[Object, nullable Object]>*/;
9245 var_table115
= var114
;
9246 var116
= ((long (*)(val
*))(var_table115
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table115
) /* length on <var_table115:Array[nullable MPropDef]>*/;
9247 { /* Inline kernel#Int#+ (var_total,var116) */
9248 var119
= var_total
+ var116
;
9251 RET_LABEL118
:(void)0;
9254 var120
= ((val
* (*)(val
*))(var_table115
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table115
) /* iterator on <var_table115:Array[nullable MPropDef]>*/;
9256 var121
= ((short int (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var120
) /* is_ok on <var120:Iterator[nullable Object]>*/;
9258 var122
= ((val
* (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var120
) /* item on <var120:Iterator[nullable Object]>*/;
9261 if (var_e123
== NULL
) {
9262 var125
= 1; /* is null */
9264 var125
= 0; /* arg is null but recv is not */
9268 { /* Inline kernel#Int#+ (var_holes,var126) */
9269 var129
= var_holes
+ var126
;
9272 RET_LABEL128
:(void)0;
9277 CONTINUE_label130
: (void)0;
9278 ((void (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var120
) /* next on <var120:Iterator[nullable Object]>*/;
9280 BREAK_label130
: (void)0;
9281 CONTINUE_label131
: (void)0;
9282 ((void (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var110
) /* next on <var110:MapIterator[Object, nullable Object]>*/;
9284 BREAK_label131
: (void)0;
9286 var133
= varonce132
;
9290 var136
= string__NativeString__to_s_with_length(var134
, var135
);
9292 varonce132
= var133
;
9295 var138
= varonce137
;
9299 var141
= string__NativeString__to_s_with_length(var139
, var140
);
9301 varonce137
= var138
;
9303 var142
= NEW_array__Array(&type_array__Arraykernel__Object
);
9304 { /* var142 = array_instance Array[Object] */
9306 var144
= NEW_array__NativeArray(var143
, &type_array__NativeArraykernel__Object
);
9307 ((struct instance_array__NativeArray
*)var144
)->values
[0] = (val
*) var133
;
9308 var145
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
9309 ((struct instance_array__NativeArray
*)var144
)->values
[1] = (val
*) var145
;
9310 ((struct instance_array__NativeArray
*)var144
)->values
[2] = (val
*) var138
;
9311 var146
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
9312 ((struct instance_array__NativeArray
*)var144
)->values
[3] = (val
*) var146
;
9313 ((void (*)(val
*, val
*, long))(var142
->class->vft
[COLOR_array__Array__with_native
]))(var142
, var144
, var143
) /* with_native on <var142:Array[Object]>*/;
9314 CHECK_NEW_array__Array(var142
);
9316 var147
= ((val
* (*)(val
*))(var142
->class->vft
[COLOR_string__Object__to_s
]))(var142
) /* to_s on <var142:Array[Object]>*/;
9317 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var147
) /* print on <self:SeparateCompiler>*/;
9319 var149
= varonce148
;
9321 var150
= "# size of attributes tables";
9323 var152
= string__NativeString__to_s_with_length(var150
, var151
);
9325 varonce148
= var149
;
9327 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var149
) /* print on <self:SeparateCompiler>*/;
9329 var154
= varonce153
;
9331 var155
= "\11total \11holes";
9333 var157
= string__NativeString__to_s_with_length(var155
, var156
);
9335 varonce153
= var154
;
9337 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var154
) /* print on <self:SeparateCompiler>*/;
9342 var160
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__attr_tables
]))(self
) /* attr_tables on <self:SeparateCompiler>*/;
9343 var161
= ((val
* (*)(val
*))(var160
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var160
) /* iterator on <var160:Map[MClass, Array[nullable MPropDef]]>*/;
9345 var162
= ((short int (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var161
) /* is_ok on <var161:MapIterator[Object, nullable Object]>*/;
9347 var163
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var161
) /* key on <var161:MapIterator[Object, nullable Object]>*/;
9349 var165
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var161
) /* item on <var161:MapIterator[Object, nullable Object]>*/;
9350 var_table166
= var165
;
9351 var167
= ((long (*)(val
*))(var_table166
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_table166
) /* length on <var_table166:Array[nullable MPropDef]>*/;
9352 { /* Inline kernel#Int#+ (var_total,var167) */
9353 var170
= var_total
+ var167
;
9356 RET_LABEL169
:(void)0;
9359 var171
= ((val
* (*)(val
*))(var_table166
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_table166
) /* iterator on <var_table166:Array[nullable MPropDef]>*/;
9361 var172
= ((short int (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var171
) /* is_ok on <var171:Iterator[nullable Object]>*/;
9363 var173
= ((val
* (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var171
) /* item on <var171:Iterator[nullable Object]>*/;
9366 if (var_e174
== NULL
) {
9367 var176
= 1; /* is null */
9369 var176
= 0; /* arg is null but recv is not */
9373 { /* Inline kernel#Int#+ (var_holes,var177) */
9374 var180
= var_holes
+ var177
;
9377 RET_LABEL179
:(void)0;
9382 CONTINUE_label181
: (void)0;
9383 ((void (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var171
) /* next on <var171:Iterator[nullable Object]>*/;
9385 BREAK_label181
: (void)0;
9386 CONTINUE_label182
: (void)0;
9387 ((void (*)(val
*))(var161
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var161
) /* next on <var161:MapIterator[Object, nullable Object]>*/;
9389 BREAK_label182
: (void)0;
9391 var184
= varonce183
;
9395 var187
= string__NativeString__to_s_with_length(var185
, var186
);
9397 varonce183
= var184
;
9400 var189
= varonce188
;
9404 var192
= string__NativeString__to_s_with_length(var190
, var191
);
9406 varonce188
= var189
;
9408 var193
= NEW_array__Array(&type_array__Arraykernel__Object
);
9409 { /* var193 = array_instance Array[Object] */
9411 var195
= NEW_array__NativeArray(var194
, &type_array__NativeArraykernel__Object
);
9412 ((struct instance_array__NativeArray
*)var195
)->values
[0] = (val
*) var184
;
9413 var196
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
9414 ((struct instance_array__NativeArray
*)var195
)->values
[1] = (val
*) var196
;
9415 ((struct instance_array__NativeArray
*)var195
)->values
[2] = (val
*) var189
;
9416 var197
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
9417 ((struct instance_array__NativeArray
*)var195
)->values
[3] = (val
*) var197
;
9418 ((void (*)(val
*, val
*, long))(var193
->class->vft
[COLOR_array__Array__with_native
]))(var193
, var195
, var194
) /* with_native on <var193:Array[Object]>*/;
9419 CHECK_NEW_array__Array(var193
);
9421 var198
= ((val
* (*)(val
*))(var193
->class->vft
[COLOR_string__Object__to_s
]))(var193
) /* to_s on <var193:Array[Object]>*/;
9422 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var198
) /* print on <self:SeparateCompiler>*/;
9425 /* method separate_compiler#SeparateCompiler#display_sizes for (self: Object) */
9426 void VIRTUAL_separate_compiler__SeparateCompiler__display_sizes(val
* self
) {
9427 separate_compiler__SeparateCompiler__display_sizes(self
);
9430 /* method separate_compiler#SeparateCompilerVisitor#adapt_signature for (self: SeparateCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
9431 void separate_compiler__SeparateCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
9432 val
* var_m
/* var m: MMethodDef */;
9433 val
* var_args
/* var args: Array[RuntimeVariable] */;
9434 val
* var
/* : nullable MSignature */;
9435 val
* var1
/* : MClassDef */;
9436 val
* var2
/* : MClassType */;
9437 val
* var3
/* : MClassDef */;
9438 val
* var4
/* : MClassType */;
9439 val
* var5
/* : MClassDef */;
9440 val
* var6
/* : MModule */;
9441 short int var7
/* : Bool */;
9442 val
* var8
/* : MType */;
9443 val
* var_msignature
/* var msignature: MSignature */;
9444 val
* var9
/* : nullable Object */;
9445 val
* var_recv
/* var recv: RuntimeVariable */;
9446 val
* var10
/* : MType */;
9447 val
* var11
/* : String */;
9448 val
* var12
/* : MClassDef */;
9449 val
* var13
/* : MClass */;
9450 val
* var14
/* : MClassType */;
9451 val
* var15
/* : String */;
9452 short int var16
/* : Bool */;
9453 val
* var17
/* : nullable Object */;
9454 val
* var18
/* : MClassDef */;
9455 val
* var19
/* : MClass */;
9456 val
* var20
/* : MClassType */;
9457 val
* var21
/* : RuntimeVariable */;
9458 val
* var22
/* : Range[Int] */;
9459 long var23
/* : Int */;
9460 long var24
/* : Int */;
9461 val
* var25
/* : Discrete */;
9462 val
* var26
/* : Discrete */;
9463 val
* var27
/* : Iterator[nullable Object] */;
9464 short int var28
/* : Bool */;
9465 val
* var29
/* : nullable Object */;
9466 long var_i
/* var i: Int */;
9467 long var30
/* : Int */;
9468 val
* var31
/* : Array[MParameter] */;
9469 val
* var32
/* : nullable Object */;
9470 val
* var33
/* : MType */;
9471 val
* var_t
/* var t: MType */;
9472 long var34
/* : Int */;
9473 short int var35
/* : Bool */;
9474 short int var37
/* : Bool */;
9475 long var38
/* : Int */;
9476 long var39
/* : Int */;
9477 long var41
/* : Int */;
9478 val
* var42
/* : nullable Object */;
9479 val
* var43
/* : MType */;
9480 long var44
/* : Int */;
9481 long var45
/* : Int */;
9482 long var47
/* : Int */;
9483 long var48
/* : Int */;
9484 long var49
/* : Int */;
9485 long var51
/* : Int */;
9486 val
* var52
/* : nullable Object */;
9487 val
* var53
/* : RuntimeVariable */;
9490 var
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_m
) /* msignature on <var_m:MMethodDef>*/;
9491 var1
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
9492 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var1
) /* bound_mtype on <var1:MClassDef>*/;
9493 var3
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
9494 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var3
) /* bound_mtype on <var3:MClassDef>*/;
9495 var5
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
9496 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var5
) /* mmodule on <var5:MClassDef>*/;
9499 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
9500 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 921);
9503 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>*/;
9505 var_msignature
= var8
;
9506 var9
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
9508 var10
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_recv
) /* mtype on <var_recv:RuntimeVariable>*/;
9509 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var10
) /* ctype on <var10:MType>*/;
9510 var12
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
9511 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_model__MClassDef__mclass
]))(var12
) /* mclass on <var12:MClassDef>*/;
9512 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__MClass__mclass_type
]))(var13
) /* mclass_type on <var13:MClass>*/;
9513 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var14
) /* ctype on <var14:MClassType>*/;
9514 var16
= ((short int (*)(val
*, val
*))(var11
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var11
, var15
) /* != on <var11:String>*/;
9516 var17
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_args
) /* first on <var_args:Array[RuntimeVariable]>*/;
9517 var18
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_m
) /* mclassdef on <var_m:MMethodDef>*/;
9518 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_model__MClassDef__mclass
]))(var18
) /* mclass on <var18:MClassDef>*/;
9519 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_model__MClass__mclass_type
]))(var19
) /* mclass_type on <var19:MClass>*/;
9520 var21
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var17
, var20
) /* autobox on <self:SeparateCompilerVisitor>*/;
9521 ((void (*)(val
*, val
*))(var_args
->class->vft
[COLOR_abstract_collection__Sequence__first_61d
]))(var_args
, var21
) /* first= on <var_args:Array[RuntimeVariable]>*/;
9524 var22
= NEW_range__Range(&type_range__Rangekernel__Int
);
9526 var24
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
9527 var25
= BOX_kernel__Int(var23
); /* autobox from Int to Discrete */
9528 var26
= BOX_kernel__Int(var24
); /* autobox from Int to Discrete */
9529 ((void (*)(val
*, val
*, val
*))(var22
->class->vft
[COLOR_range__Range__without_last
]))(var22
, var25
, var26
) /* without_last on <var22:Range[Int]>*/;
9530 CHECK_NEW_range__Range(var22
);
9531 var27
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var22
) /* iterator on <var22:Range[Int]>*/;
9533 var28
= ((short int (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var27
) /* is_ok on <var27:Iterator[nullable Object]>*/;
9535 var29
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var27
) /* item on <var27:Iterator[nullable Object]>*/;
9536 var30
= ((struct instance_kernel__Int
*)var29
)->value
; /* autounbox from nullable Object to Int */;
9538 var31
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
9539 var32
= ((val
* (*)(val
*, long))(var31
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var31
, var_i
) /* [] on <var31:Array[MParameter]>*/;
9540 var33
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_model__MParameter__mtype
]))(var32
) /* mtype on <var32:nullable Object(MParameter)>*/;
9542 var34
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var_msignature
) /* vararg_rank on <var_msignature:MSignature>*/;
9543 { /* Inline kernel#Int#== (var_i,var34) */
9544 var37
= var_i
== var34
;
9547 RET_LABEL36
:(void)0;
9551 { /* Inline kernel#Int#+ (var_i,var38) */
9552 var41
= var_i
+ var38
;
9555 RET_LABEL40
:(void)0;
9557 var42
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var39
) /* [] on <var_args:Array[RuntimeVariable]>*/;
9558 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var42
) /* mtype on <var42:nullable Object(RuntimeVariable)>*/;
9563 { /* Inline kernel#Int#+ (var_i,var44) */
9564 var47
= var_i
+ var44
;
9567 RET_LABEL46
:(void)0;
9570 { /* Inline kernel#Int#+ (var_i,var48) */
9571 var51
= var_i
+ var48
;
9574 RET_LABEL50
:(void)0;
9576 var52
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var49
) /* [] on <var_args:Array[RuntimeVariable]>*/;
9577 var53
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(self
, var52
, var_t
) /* autobox on <self:SeparateCompilerVisitor>*/;
9578 ((void (*)(val
*, long, val
*))(var_args
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_args
, var45
, var53
) /* []= on <var_args:Array[RuntimeVariable]>*/;
9579 CONTINUE_label
: (void)0;
9580 ((void (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var27
) /* next on <var27:Iterator[nullable Object]>*/;
9582 BREAK_label
: (void)0;
9585 /* method separate_compiler#SeparateCompilerVisitor#adapt_signature for (self: Object, MMethodDef, Array[RuntimeVariable]) */
9586 void VIRTUAL_separate_compiler__SeparateCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
9587 separate_compiler__SeparateCompilerVisitor__adapt_signature(self
, p0
, p1
);