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___opt_separate
].val
; /* _opt_separate on <self:ToolContext> */
7 if (unlikely(var1
== NULL
)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_separate");
9 PRINT_ERROR(" (%s:%d)\n", "compiler/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 val
* var3
/* : OptionBool */;
21 { /* Inline separate_compiler#ToolContext#opt_separate (self) on <self:Object(ToolContext)> */
22 var3
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_separate
].val
; /* _opt_separate on <self:Object(ToolContext)> */
23 if (unlikely(var3
== NULL
)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_separate");
25 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 24);
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___opt_no_inline_intern
].val
; /* _opt_no_inline_intern on <self:ToolContext> */
40 if (unlikely(var1
== NULL
)) {
41 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_inline_intern");
42 PRINT_ERROR(" (%s:%d)\n", "compiler/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 val
* var3
/* : OptionBool */;
54 { /* Inline separate_compiler#ToolContext#opt_no_inline_intern (self) on <self:Object(ToolContext)> */
55 var3
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_no_inline_intern
].val
; /* _opt_no_inline_intern on <self:Object(ToolContext)> */
56 if (unlikely(var3
== NULL
)) {
57 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_inline_intern");
58 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 26);
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___opt_no_union_attribute
].val
; /* _opt_no_union_attribute on <self:ToolContext> */
73 if (unlikely(var1
== NULL
)) {
74 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute");
75 PRINT_ERROR(" (%s:%d)\n", "compiler/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 val
* var3
/* : OptionBool */;
87 { /* Inline separate_compiler#ToolContext#opt_no_union_attribute (self) on <self:Object(ToolContext)> */
88 var3
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_no_union_attribute
].val
; /* _opt_no_union_attribute on <self:Object(ToolContext)> */
89 if (unlikely(var3
== NULL
)) {
90 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute");
91 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 28);
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___opt_no_shortcut_equate
].val
; /* _opt_no_shortcut_equate on <self:ToolContext> */
106 if (unlikely(var1
== NULL
)) {
107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_equate");
108 PRINT_ERROR(" (%s:%d)\n", "compiler/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 val
* var3
/* : OptionBool */;
120 { /* Inline separate_compiler#ToolContext#opt_no_shortcut_equate (self) on <self:Object(ToolContext)> */
121 var3
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_no_shortcut_equate
].val
; /* _opt_no_shortcut_equate on <self:Object(ToolContext)> */
122 if (unlikely(var3
== NULL
)) {
123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_equate");
124 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 30);
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___opt_inline_coloring_numbers
].val
; /* _opt_inline_coloring_numbers on <self:ToolContext> */
139 if (unlikely(var1
== NULL
)) {
140 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
141 PRINT_ERROR(" (%s:%d)\n", "compiler/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 val
* var3
/* : OptionBool */;
153 { /* Inline separate_compiler#ToolContext#opt_inline_coloring_numbers (self) on <self:Object(ToolContext)> */
154 var3
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_inline_coloring_numbers
].val
; /* _opt_inline_coloring_numbers on <self:Object(ToolContext)> */
155 if (unlikely(var3
== NULL
)) {
156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
157 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 32);
167 /* method separate_compiler#ToolContext#opt_inline_some_methods for (self: ToolContext): OptionBool */
168 val
* separate_compiler__ToolContext__opt_inline_some_methods(val
* self
) {
169 val
* var
/* : OptionBool */;
170 val
* var1
/* : OptionBool */;
171 var1
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_inline_some_methods
].val
; /* _opt_inline_some_methods on <self:ToolContext> */
172 if (unlikely(var1
== NULL
)) {
173 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_some_methods");
174 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 34);
181 /* method separate_compiler#ToolContext#opt_inline_some_methods for (self: Object): OptionBool */
182 val
* VIRTUAL_separate_compiler__ToolContext__opt_inline_some_methods(val
* self
) {
183 val
* var
/* : OptionBool */;
184 val
* var1
/* : OptionBool */;
185 val
* var3
/* : OptionBool */;
186 { /* Inline separate_compiler#ToolContext#opt_inline_some_methods (self) on <self:Object(ToolContext)> */
187 var3
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_inline_some_methods
].val
; /* _opt_inline_some_methods on <self:Object(ToolContext)> */
188 if (unlikely(var3
== NULL
)) {
189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_some_methods");
190 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 34);
200 /* method separate_compiler#ToolContext#opt_direct_call_monomorph for (self: ToolContext): OptionBool */
201 val
* separate_compiler__ToolContext__opt_direct_call_monomorph(val
* self
) {
202 val
* var
/* : OptionBool */;
203 val
* var1
/* : OptionBool */;
204 var1
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_direct_call_monomorph
].val
; /* _opt_direct_call_monomorph on <self:ToolContext> */
205 if (unlikely(var1
== NULL
)) {
206 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph");
207 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 36);
214 /* method separate_compiler#ToolContext#opt_direct_call_monomorph for (self: Object): OptionBool */
215 val
* VIRTUAL_separate_compiler__ToolContext__opt_direct_call_monomorph(val
* self
) {
216 val
* var
/* : OptionBool */;
217 val
* var1
/* : OptionBool */;
218 val
* var3
/* : OptionBool */;
219 { /* Inline separate_compiler#ToolContext#opt_direct_call_monomorph (self) on <self:Object(ToolContext)> */
220 var3
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_direct_call_monomorph
].val
; /* _opt_direct_call_monomorph on <self:Object(ToolContext)> */
221 if (unlikely(var3
== NULL
)) {
222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph");
223 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 36);
233 /* method separate_compiler#ToolContext#opt_skip_dead_methods for (self: ToolContext): OptionBool */
234 val
* separate_compiler__ToolContext__opt_skip_dead_methods(val
* self
) {
235 val
* var
/* : OptionBool */;
236 val
* var1
/* : OptionBool */;
237 var1
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_skip_dead_methods
].val
; /* _opt_skip_dead_methods on <self:ToolContext> */
238 if (unlikely(var1
== NULL
)) {
239 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods");
240 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 38);
247 /* method separate_compiler#ToolContext#opt_skip_dead_methods for (self: Object): OptionBool */
248 val
* VIRTUAL_separate_compiler__ToolContext__opt_skip_dead_methods(val
* self
) {
249 val
* var
/* : OptionBool */;
250 val
* var1
/* : OptionBool */;
251 val
* var3
/* : OptionBool */;
252 { /* Inline separate_compiler#ToolContext#opt_skip_dead_methods (self) on <self:Object(ToolContext)> */
253 var3
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_skip_dead_methods
].val
; /* _opt_skip_dead_methods on <self:Object(ToolContext)> */
254 if (unlikely(var3
== NULL
)) {
255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods");
256 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 38);
266 /* method separate_compiler#ToolContext#opt_semi_global for (self: ToolContext): OptionBool */
267 val
* separate_compiler__ToolContext__opt_semi_global(val
* self
) {
268 val
* var
/* : OptionBool */;
269 val
* var1
/* : OptionBool */;
270 var1
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_semi_global
].val
; /* _opt_semi_global on <self:ToolContext> */
271 if (unlikely(var1
== NULL
)) {
272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_semi_global");
273 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 40);
280 /* method separate_compiler#ToolContext#opt_semi_global for (self: Object): OptionBool */
281 val
* VIRTUAL_separate_compiler__ToolContext__opt_semi_global(val
* self
) {
282 val
* var
/* : OptionBool */;
283 val
* var1
/* : OptionBool */;
284 val
* var3
/* : OptionBool */;
285 { /* Inline separate_compiler#ToolContext#opt_semi_global (self) on <self:Object(ToolContext)> */
286 var3
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_semi_global
].val
; /* _opt_semi_global on <self:Object(ToolContext)> */
287 if (unlikely(var3
== NULL
)) {
288 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_semi_global");
289 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 40);
299 /* method separate_compiler#ToolContext#opt_colo_dead_methods for (self: ToolContext): OptionBool */
300 val
* separate_compiler__ToolContext__opt_colo_dead_methods(val
* self
) {
301 val
* var
/* : OptionBool */;
302 val
* var1
/* : OptionBool */;
303 var1
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_colo_dead_methods
].val
; /* _opt_colo_dead_methods on <self:ToolContext> */
304 if (unlikely(var1
== NULL
)) {
305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colo_dead_methods");
306 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 42);
313 /* method separate_compiler#ToolContext#opt_colo_dead_methods for (self: Object): OptionBool */
314 val
* VIRTUAL_separate_compiler__ToolContext__opt_colo_dead_methods(val
* self
) {
315 val
* var
/* : OptionBool */;
316 val
* var1
/* : OptionBool */;
317 val
* var3
/* : OptionBool */;
318 { /* Inline separate_compiler#ToolContext#opt_colo_dead_methods (self) on <self:Object(ToolContext)> */
319 var3
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_colo_dead_methods
].val
; /* _opt_colo_dead_methods on <self:Object(ToolContext)> */
320 if (unlikely(var3
== NULL
)) {
321 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colo_dead_methods");
322 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 42);
332 /* method separate_compiler#ToolContext#opt_tables_metrics for (self: ToolContext): OptionBool */
333 val
* separate_compiler__ToolContext__opt_tables_metrics(val
* self
) {
334 val
* var
/* : OptionBool */;
335 val
* var1
/* : OptionBool */;
336 var1
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_tables_metrics
].val
; /* _opt_tables_metrics on <self:ToolContext> */
337 if (unlikely(var1
== NULL
)) {
338 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_tables_metrics");
339 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 44);
346 /* method separate_compiler#ToolContext#opt_tables_metrics for (self: Object): OptionBool */
347 val
* VIRTUAL_separate_compiler__ToolContext__opt_tables_metrics(val
* self
) {
348 val
* var
/* : OptionBool */;
349 val
* var1
/* : OptionBool */;
350 val
* var3
/* : OptionBool */;
351 { /* Inline separate_compiler#ToolContext#opt_tables_metrics (self) on <self:Object(ToolContext)> */
352 var3
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_tables_metrics
].val
; /* _opt_tables_metrics on <self:Object(ToolContext)> */
353 if (unlikely(var3
== NULL
)) {
354 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_tables_metrics");
355 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 44);
365 /* method separate_compiler#ToolContext#init for (self: ToolContext) */
366 void separate_compiler__ToolContext__init(val
* self
) {
367 val
* var
/* : OptionContext */;
368 val
* var2
/* : OptionContext */;
369 val
* var3
/* : OptionBool */;
370 val
* var5
/* : OptionBool */;
371 val
* var6
/* : Array[Option] */;
372 long var7
/* : Int */;
373 val
* var8
/* : NativeArray[Option] */;
374 val
* var9
/* : OptionContext */;
375 val
* var11
/* : OptionContext */;
376 val
* var12
/* : OptionBool */;
377 val
* var14
/* : OptionBool */;
378 val
* var15
/* : Array[Option] */;
379 long var16
/* : Int */;
380 val
* var17
/* : NativeArray[Option] */;
381 val
* var18
/* : OptionContext */;
382 val
* var20
/* : OptionContext */;
383 val
* var21
/* : OptionBool */;
384 val
* var23
/* : OptionBool */;
385 val
* var24
/* : Array[Option] */;
386 long var25
/* : Int */;
387 val
* var26
/* : NativeArray[Option] */;
388 val
* var27
/* : OptionContext */;
389 val
* var29
/* : OptionContext */;
390 val
* var30
/* : OptionBool */;
391 val
* var32
/* : OptionBool */;
392 val
* var33
/* : Array[Option] */;
393 long var34
/* : Int */;
394 val
* var35
/* : NativeArray[Option] */;
395 val
* var36
/* : OptionContext */;
396 val
* var38
/* : OptionContext */;
397 val
* var39
/* : OptionBool */;
398 val
* var41
/* : OptionBool */;
399 val
* var42
/* : OptionBool */;
400 val
* var44
/* : OptionBool */;
401 val
* var45
/* : OptionBool */;
402 val
* var47
/* : OptionBool */;
403 val
* var48
/* : OptionBool */;
404 val
* var50
/* : OptionBool */;
405 val
* var51
/* : OptionBool */;
406 val
* var53
/* : OptionBool */;
407 val
* var54
/* : Array[Option] */;
408 long var55
/* : Int */;
409 val
* var56
/* : NativeArray[Option] */;
410 val
* var57
/* : OptionContext */;
411 val
* var59
/* : OptionContext */;
412 val
* var60
/* : OptionBool */;
413 val
* var62
/* : OptionBool */;
414 val
* var63
/* : Array[Option] */;
415 long var64
/* : Int */;
416 val
* var65
/* : NativeArray[Option] */;
417 val
* var66
/* : OptionContext */;
418 val
* var68
/* : OptionContext */;
419 val
* var69
/* : OptionBool */;
420 val
* var71
/* : OptionBool */;
421 val
* var72
/* : Array[Option] */;
422 long var73
/* : Int */;
423 val
* var74
/* : NativeArray[Option] */;
425 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__init
]))(self
) /* init on <self:ToolContext>*/;
428 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
429 var2
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
430 if (unlikely(var2
== NULL
)) {
431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
432 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
440 { /* Inline separate_compiler#ToolContext#opt_separate (self) on <self:ToolContext> */
441 var5
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_separate
].val
; /* _opt_separate on <self:ToolContext> */
442 if (unlikely(var5
== NULL
)) {
443 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_separate");
444 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 24);
451 var6
= NEW_array__Array(&type_array__Arrayopts__Option
);
452 { /* var6 = array_instance Array[Option] */
454 var8
= NEW_array__NativeArray(var7
, &type_array__NativeArrayopts__Option
);
455 ((struct instance_array__NativeArray
*)var8
)->values
[0] = (val
*) var3
;
457 ((void (*)(val
*, val
*, long))(var6
->class->vft
[COLOR_array__Array__with_native
]))(var6
, var8
, var7
) /* with_native on <var6:Array[Option]>*/;
461 opts__OptionContext__add_option(var
, var6
); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
464 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
465 var11
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
466 if (unlikely(var11
== NULL
)) {
467 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
468 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
476 { /* Inline separate_compiler#ToolContext#opt_no_inline_intern (self) on <self:ToolContext> */
477 var14
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_no_inline_intern
].val
; /* _opt_no_inline_intern on <self:ToolContext> */
478 if (unlikely(var14
== NULL
)) {
479 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_inline_intern");
480 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 26);
487 var15
= NEW_array__Array(&type_array__Arrayopts__Option
);
488 { /* var15 = array_instance Array[Option] */
490 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArrayopts__Option
);
491 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var12
;
493 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Option]>*/;
497 opts__OptionContext__add_option(var9
, var15
); /* Direct call opts#OptionContext#add_option on <var9:OptionContext>*/
500 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
501 var20
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
502 if (unlikely(var20
== NULL
)) {
503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
504 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
512 { /* Inline separate_compiler#ToolContext#opt_no_union_attribute (self) on <self:ToolContext> */
513 var23
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_no_union_attribute
].val
; /* _opt_no_union_attribute on <self:ToolContext> */
514 if (unlikely(var23
== NULL
)) {
515 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute");
516 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 28);
523 var24
= NEW_array__Array(&type_array__Arrayopts__Option
);
524 { /* var24 = array_instance Array[Option] */
526 var26
= NEW_array__NativeArray(var25
, &type_array__NativeArrayopts__Option
);
527 ((struct instance_array__NativeArray
*)var26
)->values
[0] = (val
*) var21
;
529 ((void (*)(val
*, val
*, long))(var24
->class->vft
[COLOR_array__Array__with_native
]))(var24
, var26
, var25
) /* with_native on <var24:Array[Option]>*/;
533 opts__OptionContext__add_option(var18
, var24
); /* Direct call opts#OptionContext#add_option on <var18:OptionContext>*/
536 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
537 var29
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
538 if (unlikely(var29
== NULL
)) {
539 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
540 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
548 { /* Inline separate_compiler#ToolContext#opt_no_shortcut_equate (self) on <self:ToolContext> */
549 var32
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_no_shortcut_equate
].val
; /* _opt_no_shortcut_equate on <self:ToolContext> */
550 if (unlikely(var32
== NULL
)) {
551 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_equate");
552 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 30);
559 var33
= NEW_array__Array(&type_array__Arrayopts__Option
);
560 { /* var33 = array_instance Array[Option] */
562 var35
= NEW_array__NativeArray(var34
, &type_array__NativeArrayopts__Option
);
563 ((struct instance_array__NativeArray
*)var35
)->values
[0] = (val
*) var30
;
565 ((void (*)(val
*, val
*, long))(var33
->class->vft
[COLOR_array__Array__with_native
]))(var33
, var35
, var34
) /* with_native on <var33:Array[Option]>*/;
569 opts__OptionContext__add_option(var27
, var33
); /* Direct call opts#OptionContext#add_option on <var27:OptionContext>*/
572 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
573 var38
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
574 if (unlikely(var38
== NULL
)) {
575 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
576 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
584 { /* Inline separate_compiler#ToolContext#opt_inline_coloring_numbers (self) on <self:ToolContext> */
585 var41
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_inline_coloring_numbers
].val
; /* _opt_inline_coloring_numbers on <self:ToolContext> */
586 if (unlikely(var41
== NULL
)) {
587 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
588 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 32);
596 { /* Inline separate_compiler#ToolContext#opt_inline_some_methods (self) on <self:ToolContext> */
597 var44
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_inline_some_methods
].val
; /* _opt_inline_some_methods on <self:ToolContext> */
598 if (unlikely(var44
== NULL
)) {
599 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_some_methods");
600 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 34);
608 { /* Inline separate_compiler#ToolContext#opt_direct_call_monomorph (self) on <self:ToolContext> */
609 var47
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_direct_call_monomorph
].val
; /* _opt_direct_call_monomorph on <self:ToolContext> */
610 if (unlikely(var47
== NULL
)) {
611 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph");
612 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 36);
620 { /* Inline separate_compiler#ToolContext#opt_skip_dead_methods (self) on <self:ToolContext> */
621 var50
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_skip_dead_methods
].val
; /* _opt_skip_dead_methods on <self:ToolContext> */
622 if (unlikely(var50
== NULL
)) {
623 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods");
624 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 38);
632 { /* Inline separate_compiler#ToolContext#opt_semi_global (self) on <self:ToolContext> */
633 var53
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_semi_global
].val
; /* _opt_semi_global on <self:ToolContext> */
634 if (unlikely(var53
== NULL
)) {
635 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_semi_global");
636 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 40);
643 var54
= NEW_array__Array(&type_array__Arrayopts__Option
);
644 { /* var54 = array_instance Array[Option] */
646 var56
= NEW_array__NativeArray(var55
, &type_array__NativeArrayopts__Option
);
647 ((struct instance_array__NativeArray
*)var56
)->values
[0] = (val
*) var39
;
648 ((struct instance_array__NativeArray
*)var56
)->values
[1] = (val
*) var42
;
649 ((struct instance_array__NativeArray
*)var56
)->values
[2] = (val
*) var45
;
650 ((struct instance_array__NativeArray
*)var56
)->values
[3] = (val
*) var48
;
651 ((struct instance_array__NativeArray
*)var56
)->values
[4] = (val
*) var51
;
653 ((void (*)(val
*, val
*, long))(var54
->class->vft
[COLOR_array__Array__with_native
]))(var54
, var56
, var55
) /* with_native on <var54:Array[Option]>*/;
657 opts__OptionContext__add_option(var36
, var54
); /* Direct call opts#OptionContext#add_option on <var36:OptionContext>*/
660 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
661 var59
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
662 if (unlikely(var59
== NULL
)) {
663 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
664 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
672 { /* Inline separate_compiler#ToolContext#opt_colo_dead_methods (self) on <self:ToolContext> */
673 var62
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_colo_dead_methods
].val
; /* _opt_colo_dead_methods on <self:ToolContext> */
674 if (unlikely(var62
== NULL
)) {
675 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colo_dead_methods");
676 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 42);
683 var63
= NEW_array__Array(&type_array__Arrayopts__Option
);
684 { /* var63 = array_instance Array[Option] */
686 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArrayopts__Option
);
687 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var60
;
689 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Option]>*/;
693 opts__OptionContext__add_option(var57
, var63
); /* Direct call opts#OptionContext#add_option on <var57:OptionContext>*/
696 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
697 var68
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
698 if (unlikely(var68
== NULL
)) {
699 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
700 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
708 { /* Inline separate_compiler#ToolContext#opt_tables_metrics (self) on <self:ToolContext> */
709 var71
= self
->attrs
[COLOR_separate_compiler__ToolContext___opt_tables_metrics
].val
; /* _opt_tables_metrics on <self:ToolContext> */
710 if (unlikely(var71
== NULL
)) {
711 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_tables_metrics");
712 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 44);
719 var72
= NEW_array__Array(&type_array__Arrayopts__Option
);
720 { /* var72 = array_instance Array[Option] */
722 var74
= NEW_array__NativeArray(var73
, &type_array__NativeArrayopts__Option
);
723 ((struct instance_array__NativeArray
*)var74
)->values
[0] = (val
*) var69
;
725 ((void (*)(val
*, val
*, long))(var72
->class->vft
[COLOR_array__Array__with_native
]))(var72
, var74
, var73
) /* with_native on <var72:Array[Option]>*/;
729 opts__OptionContext__add_option(var66
, var72
); /* Direct call opts#OptionContext#add_option on <var66:OptionContext>*/
733 /* method separate_compiler#ToolContext#init for (self: Object) */
734 void VIRTUAL_separate_compiler__ToolContext__init(val
* self
) {
735 separate_compiler__ToolContext__init(self
); /* Direct call separate_compiler#ToolContext#init on <self:Object(ToolContext)>*/
738 /* method separate_compiler#ToolContext#process_options for (self: ToolContext, Sequence[String]) */
739 void separate_compiler__ToolContext__process_options(val
* self
, val
* p0
) {
740 val
* var_args
/* var args: Sequence[String] */;
741 val
* var_tc
/* var tc: ToolContext */;
742 val
* var
/* : OptionBool */;
743 val
* var2
/* : OptionBool */;
744 val
* var3
/* : nullable Object */;
745 val
* var5
/* : nullable Object */;
746 short int var6
/* : Bool */;
747 val
* var7
/* : OptionBool */;
748 val
* var9
/* : OptionBool */;
749 short int var10
/* : Bool */;
750 short int var12
/* : Bool */;
753 const struct type
* type_struct
;
754 const char* var_class_name
;
755 val
* var13
/* : nullable Object */;
756 val
* var14
/* : OptionBool */;
757 val
* var16
/* : OptionBool */;
758 short int var17
/* : Bool */;
759 short int var19
/* : Bool */;
762 const struct type
* type_struct22
;
763 const char* var_class_name23
;
764 val
* var24
/* : nullable Object */;
765 val
* var25
/* : OptionBool */;
766 val
* var27
/* : OptionBool */;
767 short int var28
/* : Bool */;
768 short int var30
/* : Bool */;
771 const struct type
* type_struct33
;
772 const char* var_class_name34
;
773 val
* var35
/* : nullable Object */;
774 val
* var36
/* : OptionBool */;
775 val
* var38
/* : OptionBool */;
776 short int var39
/* : Bool */;
777 short int var41
/* : Bool */;
780 const struct type
* type_struct44
;
781 const char* var_class_name45
;
782 val
* var46
/* : nullable Object */;
785 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__ToolContext__process_options
]))(self
, p0
) /* process_options on <self:ToolContext>*/;
789 { /* Inline separate_compiler#ToolContext#opt_semi_global (var_tc) on <var_tc:ToolContext> */
790 var2
= var_tc
->attrs
[COLOR_separate_compiler__ToolContext___opt_semi_global
].val
; /* _opt_semi_global on <var_tc:ToolContext> */
791 if (unlikely(var2
== NULL
)) {
792 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_semi_global");
793 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 40);
801 { /* Inline opts#Option#value (var) on <var:OptionBool> */
802 var5
= var
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var:OptionBool> */
807 var6
= ((struct instance_kernel__Bool
*)var3
)->value
; /* autounbox from nullable Object to Bool */;
810 { /* Inline separate_compiler#ToolContext#opt_inline_coloring_numbers (var_tc) on <var_tc:ToolContext> */
811 var9
= var_tc
->attrs
[COLOR_separate_compiler__ToolContext___opt_inline_coloring_numbers
].val
; /* _opt_inline_coloring_numbers on <var_tc:ToolContext> */
812 if (unlikely(var9
== NULL
)) {
813 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
814 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 32);
823 { /* Inline opts#Option#value= (var7,var10) on <var7:OptionBool> */
824 /* Covariant cast for argument 0 (value) <var10:Bool> isa VALUE */
825 /* <var10:Bool> isa VALUE */
826 type_struct
= var7
->type
->resolution_table
->types
[COLOR_opts__Option_VTVALUE
];
827 cltype
= type_struct
->color
;
828 idtype
= type_struct
->id
;
829 if(cltype
>= (&type_kernel__Bool
)->table_size
) {
832 var12
= (&type_kernel__Bool
)->type_table
[cltype
] == idtype
;
834 if (unlikely(!var12
)) {
835 var_class_name
= type_kernel__Bool
.name
;
836 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name
);
837 PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40);
840 var13
= BOX_kernel__Bool(var10
); /* autobox from Bool to nullable Object */
841 var7
->attrs
[COLOR_opts__Option___value
].val
= var13
; /* _value on <var7:OptionBool> */
846 { /* Inline separate_compiler#ToolContext#opt_inline_some_methods (var_tc) on <var_tc:ToolContext> */
847 var16
= var_tc
->attrs
[COLOR_separate_compiler__ToolContext___opt_inline_some_methods
].val
; /* _opt_inline_some_methods on <var_tc:ToolContext> */
848 if (unlikely(var16
== NULL
)) {
849 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_some_methods");
850 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 34);
859 { /* Inline opts#Option#value= (var14,var17) on <var14:OptionBool> */
860 /* Covariant cast for argument 0 (value) <var17:Bool> isa VALUE */
861 /* <var17:Bool> isa VALUE */
862 type_struct22
= var14
->type
->resolution_table
->types
[COLOR_opts__Option_VTVALUE
];
863 cltype20
= type_struct22
->color
;
864 idtype21
= type_struct22
->id
;
865 if(cltype20
>= (&type_kernel__Bool
)->table_size
) {
868 var19
= (&type_kernel__Bool
)->type_table
[cltype20
] == idtype21
;
870 if (unlikely(!var19
)) {
871 var_class_name23
= type_kernel__Bool
.name
;
872 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name23
);
873 PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40);
876 var24
= BOX_kernel__Bool(var17
); /* autobox from Bool to nullable Object */
877 var14
->attrs
[COLOR_opts__Option___value
].val
= var24
; /* _value on <var14:OptionBool> */
882 { /* Inline separate_compiler#ToolContext#opt_direct_call_monomorph (var_tc) on <var_tc:ToolContext> */
883 var27
= var_tc
->attrs
[COLOR_separate_compiler__ToolContext___opt_direct_call_monomorph
].val
; /* _opt_direct_call_monomorph on <var_tc:ToolContext> */
884 if (unlikely(var27
== NULL
)) {
885 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph");
886 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 36);
895 { /* Inline opts#Option#value= (var25,var28) on <var25:OptionBool> */
896 /* Covariant cast for argument 0 (value) <var28:Bool> isa VALUE */
897 /* <var28:Bool> isa VALUE */
898 type_struct33
= var25
->type
->resolution_table
->types
[COLOR_opts__Option_VTVALUE
];
899 cltype31
= type_struct33
->color
;
900 idtype32
= type_struct33
->id
;
901 if(cltype31
>= (&type_kernel__Bool
)->table_size
) {
904 var30
= (&type_kernel__Bool
)->type_table
[cltype31
] == idtype32
;
906 if (unlikely(!var30
)) {
907 var_class_name34
= type_kernel__Bool
.name
;
908 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name34
);
909 PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40);
912 var35
= BOX_kernel__Bool(var28
); /* autobox from Bool to nullable Object */
913 var25
->attrs
[COLOR_opts__Option___value
].val
= var35
; /* _value on <var25:OptionBool> */
918 { /* Inline separate_compiler#ToolContext#opt_skip_dead_methods (var_tc) on <var_tc:ToolContext> */
919 var38
= var_tc
->attrs
[COLOR_separate_compiler__ToolContext___opt_skip_dead_methods
].val
; /* _opt_skip_dead_methods on <var_tc:ToolContext> */
920 if (unlikely(var38
== NULL
)) {
921 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods");
922 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 38);
931 { /* Inline opts#Option#value= (var36,var39) on <var36:OptionBool> */
932 /* Covariant cast for argument 0 (value) <var39:Bool> isa VALUE */
933 /* <var39:Bool> isa VALUE */
934 type_struct44
= var36
->type
->resolution_table
->types
[COLOR_opts__Option_VTVALUE
];
935 cltype42
= type_struct44
->color
;
936 idtype43
= type_struct44
->id
;
937 if(cltype42
>= (&type_kernel__Bool
)->table_size
) {
940 var41
= (&type_kernel__Bool
)->type_table
[cltype42
] == idtype43
;
942 if (unlikely(!var41
)) {
943 var_class_name45
= type_kernel__Bool
.name
;
944 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name45
);
945 PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40);
948 var46
= BOX_kernel__Bool(var39
); /* autobox from Bool to nullable Object */
949 var36
->attrs
[COLOR_opts__Option___value
].val
= var46
; /* _value on <var36:OptionBool> */
957 /* method separate_compiler#ToolContext#process_options for (self: Object, Sequence[String]) */
958 void VIRTUAL_separate_compiler__ToolContext__process_options(val
* self
, val
* p0
) {
959 separate_compiler__ToolContext__process_options(self
, p0
); /* Direct call separate_compiler#ToolContext#process_options on <self:Object(ToolContext)>*/
962 /* method separate_compiler#SeparateCompilerPhase#process_mainmodule for (self: SeparateCompilerPhase, MModule, SequenceRead[MModule]) */
963 void separate_compiler__SeparateCompilerPhase__process_mainmodule(val
* self
, val
* p0
, val
* p1
) {
964 val
* var_mainmodule
/* var mainmodule: MModule */;
965 val
* var_given_mmodules
/* var given_mmodules: SequenceRead[MModule] */;
966 val
* var
/* : ToolContext */;
967 val
* var2
/* : ToolContext */;
968 val
* var3
/* : OptionBool */;
969 val
* var5
/* : OptionBool */;
970 val
* var6
/* : nullable Object */;
971 val
* var8
/* : nullable Object */;
972 short int var9
/* : Bool */;
973 short int var10
/* : Bool */;
974 val
* var11
/* : ToolContext */;
975 val
* var13
/* : ToolContext */;
976 val
* var14
/* : ModelBuilder */;
977 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
978 val
* var15
/* : RapidTypeAnalysis */;
979 val
* var_analysis
/* var analysis: RapidTypeAnalysis */;
981 var_given_mmodules
= p1
;
983 { /* Inline phase#Phase#toolcontext (self) on <self:SeparateCompilerPhase> */
984 var2
= self
->attrs
[COLOR_phase__Phase___toolcontext
].val
; /* _toolcontext on <self:SeparateCompilerPhase> */
985 if (unlikely(var2
== NULL
)) {
986 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
987 PRINT_ERROR(" (%s:%d)\n", "phase.nit", 162);
995 { /* Inline separate_compiler#ToolContext#opt_separate (var) on <var:ToolContext> */
996 var5
= var
->attrs
[COLOR_separate_compiler__ToolContext___opt_separate
].val
; /* _opt_separate on <var:ToolContext> */
997 if (unlikely(var5
== NULL
)) {
998 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_separate");
999 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 24);
1007 { /* Inline opts#Option#value (var3) on <var3:OptionBool> */
1008 var8
= var3
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var3:OptionBool> */
1013 var9
= ((struct instance_kernel__Bool
*)var6
)->value
; /* autounbox from nullable Object to Bool */;
1020 { /* Inline phase#Phase#toolcontext (self) on <self:SeparateCompilerPhase> */
1021 var13
= self
->attrs
[COLOR_phase__Phase___toolcontext
].val
; /* _toolcontext on <self:SeparateCompilerPhase> */
1022 if (unlikely(var13
== NULL
)) {
1023 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1024 PRINT_ERROR(" (%s:%d)\n", "phase.nit", 162);
1028 RET_LABEL12
:(void)0;
1032 var14
= modelbuilder__ToolContext__modelbuilder(var11
);
1034 var_modelbuilder
= var14
;
1036 var15
= rapid_type_analysis__ModelBuilder__do_rapid_type_analysis(var_modelbuilder
, var_mainmodule
);
1038 var_analysis
= var15
;
1040 separate_compiler__ModelBuilder__run_separate_compiler(var_modelbuilder
, var_mainmodule
, var_analysis
); /* Direct call separate_compiler#ModelBuilder#run_separate_compiler on <var_modelbuilder:ModelBuilder>*/
1044 /* method separate_compiler#SeparateCompilerPhase#process_mainmodule for (self: Object, MModule, SequenceRead[MModule]) */
1045 void VIRTUAL_separate_compiler__SeparateCompilerPhase__process_mainmodule(val
* self
, val
* p0
, val
* p1
) {
1046 separate_compiler__SeparateCompilerPhase__process_mainmodule(self
, p0
, p1
); /* Direct call separate_compiler#SeparateCompilerPhase#process_mainmodule on <self:Object(SeparateCompilerPhase)>*/
1049 /* method separate_compiler#ModelBuilder#run_separate_compiler for (self: ModelBuilder, MModule, nullable RapidTypeAnalysis) */
1050 void separate_compiler__ModelBuilder__run_separate_compiler(val
* self
, val
* p0
, val
* p1
) {
1051 val
* var_mainmodule
/* var mainmodule: MModule */;
1052 val
* var_runtime_type_analysis
/* var runtime_type_analysis: nullable RapidTypeAnalysis */;
1053 long var
/* : Int */;
1054 long var2
/* : Int for extern */;
1055 long var_time0
/* var time0: Int */;
1056 val
* var3
/* : ToolContext */;
1057 val
* var5
/* : ToolContext */;
1058 static val
* varonce
;
1059 val
* var6
/* : String */;
1060 char* var7
/* : NativeString */;
1061 long var8
/* : Int */;
1062 val
* var9
/* : FlatString */;
1063 long var10
/* : Int */;
1064 val
* var11
/* : SeparateCompiler */;
1065 val
* var_compiler
/* var compiler: SeparateCompiler */;
1066 val
* var12
/* : ToolContext */;
1067 val
* var14
/* : ToolContext */;
1068 static val
* varonce15
;
1069 val
* var16
/* : String */;
1070 char* var17
/* : NativeString */;
1071 long var18
/* : Int */;
1072 val
* var19
/* : FlatString */;
1073 long var20
/* : Int */;
1074 val
* var21
/* : String */;
1075 val
* var23
/* : String */;
1076 static val
* varonce24
;
1077 val
* var25
/* : String */;
1078 char* var26
/* : NativeString */;
1079 long var27
/* : Int */;
1080 val
* var28
/* : FlatString */;
1081 val
* var29
/* : Array[Object] */;
1082 long var30
/* : Int */;
1083 val
* var31
/* : NativeArray[Object] */;
1084 val
* var32
/* : String */;
1085 val
* var33
/* : CodeFile */;
1086 val
* var34
/* : POSetElement[MModule] */;
1087 val
* var36
/* : POSetElement[MModule] */;
1088 val
* var37
/* : Collection[Object] */;
1089 val
* var_
/* var : Collection[MModule] */;
1090 val
* var38
/* : Iterator[nullable Object] */;
1091 val
* var_39
/* var : Iterator[MModule] */;
1092 short int var40
/* : Bool */;
1093 val
* var41
/* : nullable Object */;
1094 val
* var_m
/* var m: MModule */;
1095 val
* var42
/* : Array[MClass] */;
1096 val
* var44
/* : Array[MClass] */;
1097 val
* var_45
/* var : Array[MClass] */;
1098 val
* var46
/* : ArrayIterator[nullable Object] */;
1099 val
* var_47
/* var : ArrayIterator[MClass] */;
1100 short int var48
/* : Bool */;
1101 val
* var49
/* : nullable Object */;
1102 val
* var_mclass
/* var mclass: MClass */;
1103 val
* var53
/* : String */;
1104 val
* var55
/* : String */;
1105 static val
* varonce56
;
1106 val
* var57
/* : String */;
1107 char* var58
/* : NativeString */;
1108 long var59
/* : Int */;
1109 val
* var60
/* : FlatString */;
1110 val
* var61
/* : Array[Object] */;
1111 long var62
/* : Int */;
1112 val
* var63
/* : NativeArray[Object] */;
1113 val
* var64
/* : String */;
1114 val
* var65
/* : CodeFile */;
1115 val
* var66
/* : POSetElement[MModule] */;
1116 val
* var68
/* : POSetElement[MModule] */;
1117 val
* var69
/* : Collection[Object] */;
1118 val
* var_70
/* var : Collection[MModule] */;
1119 val
* var71
/* : Iterator[nullable Object] */;
1120 val
* var_72
/* var : Iterator[MModule] */;
1121 short int var73
/* : Bool */;
1122 val
* var74
/* : nullable Object */;
1123 val
* var_m75
/* var m: MModule */;
1124 val
* var76
/* : ToolContext */;
1125 val
* var78
/* : ToolContext */;
1126 static val
* varonce79
;
1127 val
* var80
/* : String */;
1128 char* var81
/* : NativeString */;
1129 long var82
/* : Int */;
1130 val
* var83
/* : FlatString */;
1131 val
* var84
/* : Array[Object] */;
1132 long var85
/* : Int */;
1133 val
* var86
/* : NativeArray[Object] */;
1134 val
* var87
/* : String */;
1135 long var88
/* : Int */;
1136 val
* var89
/* : String */;
1137 val
* var91
/* : String */;
1138 static val
* varonce92
;
1139 val
* var93
/* : String */;
1140 char* var94
/* : NativeString */;
1141 long var95
/* : Int */;
1142 val
* var96
/* : FlatString */;
1143 val
* var97
/* : Array[Object] */;
1144 long var98
/* : Int */;
1145 val
* var99
/* : NativeArray[Object] */;
1146 val
* var100
/* : String */;
1147 val
* var101
/* : CodeFile */;
1148 val
* var104
/* : ToolContext */;
1149 val
* var106
/* : ToolContext */;
1150 static val
* varonce107
;
1151 val
* var108
/* : String */;
1152 char* var109
/* : NativeString */;
1153 long var110
/* : Int */;
1154 val
* var111
/* : FlatString */;
1155 long var112
/* : Int */;
1156 val
* var113
/* : String */;
1157 val
* var115
/* : String */;
1158 static val
* varonce116
;
1159 val
* var117
/* : String */;
1160 char* var118
/* : NativeString */;
1161 long var119
/* : Int */;
1162 val
* var120
/* : FlatString */;
1163 val
* var121
/* : Array[Object] */;
1164 long var122
/* : Int */;
1165 val
* var123
/* : NativeArray[Object] */;
1166 val
* var124
/* : String */;
1167 val
* var125
/* : CodeFile */;
1168 val
* var126
/* : POSet[MType] */;
1169 val
* var_mtypes
/* var mtypes: POSet[MType] */;
1170 val
* var_127
/* var : POSet[MType] */;
1171 val
* var128
/* : Iterator[Object] */;
1172 val
* var_129
/* var : Iterator[MType] */;
1173 short int var130
/* : Bool */;
1174 val
* var131
/* : nullable Object */;
1175 val
* var_t
/* var t: MType */;
1176 val
* var134
/* : Set[MType] */;
1177 val
* var136
/* : Set[MType] */;
1178 val
* var_137
/* var : Set[MType] */;
1179 val
* var138
/* : Iterator[nullable Object] */;
1180 val
* var_139
/* var : Iterator[MType] */;
1181 short int var140
/* : Bool */;
1182 val
* var141
/* : nullable Object */;
1183 val
* var_t142
/* var t: MType */;
1184 short int var143
/* : Bool */;
1185 long var147
/* : Int */;
1186 long var149
/* : Int for extern */;
1187 long var_time1
/* var time1: Int */;
1188 val
* var150
/* : ToolContext */;
1189 val
* var152
/* : ToolContext */;
1190 static val
* varonce153
;
1191 val
* var154
/* : String */;
1192 char* var155
/* : NativeString */;
1193 long var156
/* : Int */;
1194 val
* var157
/* : FlatString */;
1195 long var158
/* : Int */;
1196 short int var160
/* : Bool */;
1199 const char* var_class_name
;
1200 long var161
/* : Int */;
1201 static val
* varonce162
;
1202 val
* var163
/* : String */;
1203 char* var164
/* : NativeString */;
1204 long var165
/* : Int */;
1205 val
* var166
/* : FlatString */;
1206 val
* var167
/* : Array[Object] */;
1207 long var168
/* : Int */;
1208 val
* var169
/* : NativeArray[Object] */;
1209 val
* var170
/* : Object */;
1210 val
* var171
/* : String */;
1211 long var172
/* : Int */;
1212 var_mainmodule
= p0
;
1213 var_runtime_type_analysis
= p1
;
1215 { /* Inline time#Object#get_time (self) on <self:ModelBuilder> */
1216 var2
= kernel_Any_Any_get_time_0(self
);
1224 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1225 var5
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1226 if (unlikely(var5
== NULL
)) {
1227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1228 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
1238 var7
= "*** GENERATING C ***";
1240 var9
= string__NativeString__to_s_with_length(var7
, var8
);
1246 toolcontext__ToolContext__info(var3
, var6
, var10
); /* Direct call toolcontext#ToolContext#info on <var3:ToolContext>*/
1248 var11
= NEW_separate_compiler__SeparateCompiler(&type_separate_compiler__SeparateCompiler
);
1250 separate_compiler__SeparateCompiler__init(var11
, var_mainmodule
, self
, var_runtime_type_analysis
); /* Direct call separate_compiler#SeparateCompiler#init on <var11:SeparateCompiler>*/
1252 var_compiler
= var11
;
1254 abstract_compiler__AbstractCompiler__compile_header(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#compile_header on <var_compiler:SeparateCompiler>*/
1257 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1258 var14
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1259 if (unlikely(var14
== NULL
)) {
1260 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1261 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
1265 RET_LABEL13
:(void)0;
1271 var17
= "Property coloring";
1273 var19
= string__NativeString__to_s_with_length(var17
, var18
);
1279 toolcontext__ToolContext__info(var12
, var16
, var20
); /* Direct call toolcontext#ToolContext#info on <var12:ToolContext>*/
1282 { /* Inline mmodule#MModule#name (var_mainmodule) on <var_mainmodule:MModule> */
1283 var23
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var_mainmodule:MModule> */
1284 if (unlikely(var23
== NULL
)) {
1285 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1286 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78);
1290 RET_LABEL22
:(void)0;
1298 var28
= string__NativeString__to_s_with_length(var26
, var27
);
1302 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
1303 { /* var29 = array_instance Array[Object] */
1305 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
1306 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var21
;
1307 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var25
;
1309 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
1313 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
1316 var33
= abstract_compiler__AbstractCompiler__new_file(var_compiler
, var32
);
1319 separate_compiler__SeparateCompiler__do_property_coloring(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#do_property_coloring on <var_compiler:SeparateCompiler>*/
1322 { /* Inline mmodule#MModule#in_importation (var_mainmodule) on <var_mainmodule:MModule> */
1323 var36
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var_mainmodule:MModule> */
1324 if (unlikely(var36
== NULL
)) {
1325 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
1326 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
1330 RET_LABEL35
:(void)0;
1334 var37
= poset__POSetElement__greaters(var34
);
1338 var38
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Collection[MModule]>*/;
1343 var40
= ((short int (*)(val
*))(var_39
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_39
) /* is_ok on <var_39:Iterator[MModule]>*/;
1347 var41
= ((val
* (*)(val
*))(var_39
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_39
) /* item on <var_39:Iterator[MModule]>*/;
1351 { /* Inline model#MModule#intro_mclasses (var_m) on <var_m:MModule> */
1352 var44
= var_m
->attrs
[COLOR_model__MModule___intro_mclasses
].val
; /* _intro_mclasses on <var_m:MModule> */
1353 if (unlikely(var44
== NULL
)) {
1354 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclasses");
1355 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 136);
1359 RET_LABEL43
:(void)0;
1364 var46
= array__AbstractArrayRead__iterator(var_45
);
1369 var48
= array__ArrayIterator__is_ok(var_47
);
1373 var49
= array__ArrayIterator__item(var_47
);
1377 ((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>*/;
1380 array__ArrayIterator__next(var_47
); /* Direct call array#ArrayIterator#next on <var_47:ArrayIterator[MClass]>*/
1386 BREAK_label
: (void)0;
1388 { /* Inline abstract_collection#Iterator#finish (var_47) on <var_47:ArrayIterator[MClass]> */
1389 RET_LABEL50
:(void)0;
1393 ((void (*)(val
*))(var_39
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_39
) /* next on <var_39:Iterator[MModule]>*/;
1399 BREAK_label51
: (void)0;
1401 { /* Inline abstract_collection#Iterator#finish (var_39) on <var_39:Iterator[MModule]> */
1402 RET_LABEL52
:(void)0;
1406 { /* Inline mmodule#MModule#name (var_mainmodule) on <var_mainmodule:MModule> */
1407 var55
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var_mainmodule:MModule> */
1408 if (unlikely(var55
== NULL
)) {
1409 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1410 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78);
1414 RET_LABEL54
:(void)0;
1422 var60
= string__NativeString__to_s_with_length(var58
, var59
);
1426 var61
= NEW_array__Array(&type_array__Arraykernel__Object
);
1427 { /* var61 = array_instance Array[Object] */
1429 var63
= NEW_array__NativeArray(var62
, &type_array__NativeArraykernel__Object
);
1430 ((struct instance_array__NativeArray
*)var63
)->values
[0] = (val
*) var53
;
1431 ((struct instance_array__NativeArray
*)var63
)->values
[1] = (val
*) var57
;
1433 ((void (*)(val
*, val
*, long))(var61
->class->vft
[COLOR_array__Array__with_native
]))(var61
, var63
, var62
) /* with_native on <var61:Array[Object]>*/;
1437 var64
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_string__Object__to_s
]))(var61
) /* to_s on <var61:Array[Object]>*/;
1440 var65
= abstract_compiler__AbstractCompiler__new_file(var_compiler
, var64
);
1443 abstract_compiler__AbstractCompiler__compile_nitni_global_ref_functions(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#compile_nitni_global_ref_functions on <var_compiler:SeparateCompiler>*/
1446 abstract_compiler__AbstractCompiler__compile_main_function(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#compile_main_function on <var_compiler:SeparateCompiler>*/
1449 abstract_compiler__AbstractCompiler__compile_finalizer_function(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#compile_finalizer_function on <var_compiler:SeparateCompiler>*/
1452 { /* Inline mmodule#MModule#in_importation (var_mainmodule) on <var_mainmodule:MModule> */
1453 var68
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var_mainmodule:MModule> */
1454 if (unlikely(var68
== NULL
)) {
1455 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
1456 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
1460 RET_LABEL67
:(void)0;
1464 var69
= poset__POSetElement__greaters(var66
);
1468 var71
= ((val
* (*)(val
*))(var_70
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_70
) /* iterator on <var_70:Collection[MModule]>*/;
1473 var73
= ((short int (*)(val
*))(var_72
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_72
) /* is_ok on <var_72:Iterator[MModule]>*/;
1477 var74
= ((val
* (*)(val
*))(var_72
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_72
) /* item on <var_72:Iterator[MModule]>*/;
1481 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1482 var78
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1483 if (unlikely(var78
== NULL
)) {
1484 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1485 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
1489 RET_LABEL77
:(void)0;
1495 var81
= "Generate C for module ";
1497 var83
= string__NativeString__to_s_with_length(var81
, var82
);
1501 var84
= NEW_array__Array(&type_array__Arraykernel__Object
);
1502 { /* var84 = array_instance Array[Object] */
1504 var86
= NEW_array__NativeArray(var85
, &type_array__NativeArraykernel__Object
);
1505 ((struct instance_array__NativeArray
*)var86
)->values
[0] = (val
*) var80
;
1506 ((struct instance_array__NativeArray
*)var86
)->values
[1] = (val
*) var_m75
;
1508 ((void (*)(val
*, val
*, long))(var84
->class->vft
[COLOR_array__Array__with_native
]))(var84
, var86
, var85
) /* with_native on <var84:Array[Object]>*/;
1512 var87
= ((val
* (*)(val
*))(var84
->class->vft
[COLOR_string__Object__to_s
]))(var84
) /* to_s on <var84:Array[Object]>*/;
1516 toolcontext__ToolContext__info(var76
, var87
, var88
); /* Direct call toolcontext#ToolContext#info on <var76:ToolContext>*/
1519 { /* Inline mmodule#MModule#name (var_m75) on <var_m75:MModule> */
1520 var91
= var_m75
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var_m75:MModule> */
1521 if (unlikely(var91
== NULL
)) {
1522 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1523 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78);
1527 RET_LABEL90
:(void)0;
1535 var96
= string__NativeString__to_s_with_length(var94
, var95
);
1539 var97
= NEW_array__Array(&type_array__Arraykernel__Object
);
1540 { /* var97 = array_instance Array[Object] */
1542 var99
= NEW_array__NativeArray(var98
, &type_array__NativeArraykernel__Object
);
1543 ((struct instance_array__NativeArray
*)var99
)->values
[0] = (val
*) var89
;
1544 ((struct instance_array__NativeArray
*)var99
)->values
[1] = (val
*) var93
;
1546 ((void (*)(val
*, val
*, long))(var97
->class->vft
[COLOR_array__Array__with_native
]))(var97
, var99
, var98
) /* with_native on <var97:Array[Object]>*/;
1550 var100
= ((val
* (*)(val
*))(var97
->class->vft
[COLOR_string__Object__to_s
]))(var97
) /* to_s on <var97:Array[Object]>*/;
1553 var101
= abstract_compiler__AbstractCompiler__new_file(var_compiler
, var100
);
1556 separate_compiler__SeparateCompiler__compile_module_to_c(var_compiler
, var_m75
); /* Direct call separate_compiler#SeparateCompiler#compile_module_to_c on <var_compiler:SeparateCompiler>*/
1559 ((void (*)(val
*))(var_72
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_72
) /* next on <var_72:Iterator[MModule]>*/;
1562 goto BREAK_label102
;
1565 BREAK_label102
: (void)0;
1567 { /* Inline abstract_collection#Iterator#finish (var_72) on <var_72:Iterator[MModule]> */
1568 RET_LABEL103
:(void)0;
1572 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1573 var106
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1574 if (unlikely(var106
== NULL
)) {
1575 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1576 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
1580 RET_LABEL105
:(void)0;
1584 var108
= varonce107
;
1586 var109
= "Type coloring";
1588 var111
= string__NativeString__to_s_with_length(var109
, var110
);
1590 varonce107
= var108
;
1594 toolcontext__ToolContext__info(var104
, var108
, var112
); /* Direct call toolcontext#ToolContext#info on <var104:ToolContext>*/
1597 { /* Inline mmodule#MModule#name (var_mainmodule) on <var_mainmodule:MModule> */
1598 var115
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var_mainmodule:MModule> */
1599 if (unlikely(var115
== NULL
)) {
1600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1601 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78);
1605 RET_LABEL114
:(void)0;
1609 var117
= varonce116
;
1613 var120
= string__NativeString__to_s_with_length(var118
, var119
);
1615 varonce116
= var117
;
1617 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
1618 { /* var121 = array_instance Array[Object] */
1620 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
1621 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var113
;
1622 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var117
;
1624 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
1628 var124
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
1631 var125
= abstract_compiler__AbstractCompiler__new_file(var_compiler
, var124
);
1634 var126
= separate_compiler__SeparateCompiler__do_type_coloring(var_compiler
);
1636 var_mtypes
= var126
;
1637 var_127
= var_mtypes
;
1639 var128
= poset__POSet__iterator(var_127
);
1644 var130
= ((short int (*)(val
*))(var_129
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_129
) /* is_ok on <var_129:Iterator[MType]>*/;
1648 var131
= ((val
* (*)(val
*))(var_129
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_129
) /* item on <var_129:Iterator[MType]>*/;
1652 separate_compiler__SeparateCompiler__compile_type_to_c(var_compiler
, var_t
); /* Direct call separate_compiler#SeparateCompiler#compile_type_to_c on <var_compiler:SeparateCompiler>*/
1655 ((void (*)(val
*))(var_129
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_129
) /* next on <var_129:Iterator[MType]>*/;
1658 goto BREAK_label132
;
1661 BREAK_label132
: (void)0;
1663 { /* Inline abstract_collection#Iterator#finish (var_129) on <var_129:Iterator[MType]> */
1664 RET_LABEL133
:(void)0;
1668 { /* Inline separate_compiler#SeparateCompiler#undead_types (var_compiler) on <var_compiler:SeparateCompiler> */
1669 var136
= var_compiler
->attrs
[COLOR_separate_compiler__SeparateCompiler___undead_types
].val
; /* _undead_types on <var_compiler:SeparateCompiler> */
1670 if (unlikely(var136
== NULL
)) {
1671 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
1672 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 156);
1676 RET_LABEL135
:(void)0;
1681 var138
= ((val
* (*)(val
*))(var_137
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_137
) /* iterator on <var_137:Set[MType]>*/;
1686 var140
= ((short int (*)(val
*))(var_139
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_139
) /* is_ok on <var_139:Iterator[MType]>*/;
1690 var141
= ((val
* (*)(val
*))(var_139
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_139
) /* item on <var_139:Iterator[MType]>*/;
1694 var143
= poset__POSet__has(var_mtypes
, var_t142
);
1697 goto BREAK_label144
;
1701 separate_compiler__SeparateCompiler__compile_type_to_c(var_compiler
, var_t142
); /* Direct call separate_compiler#SeparateCompiler#compile_type_to_c on <var_compiler:SeparateCompiler>*/
1703 BREAK_label144
: (void)0;
1705 ((void (*)(val
*))(var_139
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_139
) /* next on <var_139:Iterator[MType]>*/;
1708 goto BREAK_label145
;
1711 BREAK_label145
: (void)0;
1713 { /* Inline abstract_collection#Iterator#finish (var_139) on <var_139:Iterator[MType]> */
1714 RET_LABEL146
:(void)0;
1718 separate_compiler__SeparateCompiler__display_stats(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#display_stats on <var_compiler:SeparateCompiler>*/
1721 { /* Inline time#Object#get_time (self) on <self:ModelBuilder> */
1722 var149
= kernel_Any_Any_get_time_0(self
);
1725 RET_LABEL148
:(void)0;
1730 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1731 var152
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1732 if (unlikely(var152
== NULL
)) {
1733 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1734 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
1738 RET_LABEL151
:(void)0;
1742 var154
= varonce153
;
1744 var155
= "*** END GENERATING C: ";
1746 var157
= string__NativeString__to_s_with_length(var155
, var156
);
1748 varonce153
= var154
;
1751 { /* Inline kernel#Int#- (var_time1,var_time0) on <var_time1:Int> */
1752 /* Covariant cast for argument 0 (i) <var_time0:Int> isa OTHER */
1753 /* <var_time0:Int> isa OTHER */
1754 var160
= 1; /* easy <var_time0:Int> isa OTHER*/
1755 if (unlikely(!var160
)) {
1756 var_class_name
= type_kernel__Int
.name
;
1757 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1758 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
1761 var161
= var_time1
- var_time0
;
1764 RET_LABEL159
:(void)0;
1768 var163
= varonce162
;
1772 var166
= string__NativeString__to_s_with_length(var164
, var165
);
1774 varonce162
= var163
;
1776 var167
= NEW_array__Array(&type_array__Arraykernel__Object
);
1777 { /* var167 = array_instance Array[Object] */
1779 var169
= NEW_array__NativeArray(var168
, &type_array__NativeArraykernel__Object
);
1780 ((struct instance_array__NativeArray
*)var169
)->values
[0] = (val
*) var154
;
1781 var170
= BOX_kernel__Int(var158
); /* autobox from Int to Object */
1782 ((struct instance_array__NativeArray
*)var169
)->values
[1] = (val
*) var170
;
1783 ((struct instance_array__NativeArray
*)var169
)->values
[2] = (val
*) var163
;
1785 ((void (*)(val
*, val
*, long))(var167
->class->vft
[COLOR_array__Array__with_native
]))(var167
, var169
, var168
) /* with_native on <var167:Array[Object]>*/;
1789 var171
= ((val
* (*)(val
*))(var167
->class->vft
[COLOR_string__Object__to_s
]))(var167
) /* to_s on <var167:Array[Object]>*/;
1793 toolcontext__ToolContext__info(var150
, var171
, var172
); /* Direct call toolcontext#ToolContext#info on <var150:ToolContext>*/
1796 abstract_compiler__ModelBuilder__write_and_make(self
, var_compiler
); /* Direct call abstract_compiler#ModelBuilder#write_and_make on <self:ModelBuilder>*/
1800 /* method separate_compiler#ModelBuilder#run_separate_compiler for (self: Object, MModule, nullable RapidTypeAnalysis) */
1801 void VIRTUAL_separate_compiler__ModelBuilder__run_separate_compiler(val
* self
, val
* p0
, val
* p1
) {
1802 separate_compiler__ModelBuilder__run_separate_compiler(self
, p0
, p1
); /* Direct call separate_compiler#ModelBuilder#run_separate_compiler on <self:Object(ModelBuilder)>*/
1805 /* method separate_compiler#ModelBuilder#nb_invok_by_tables for (self: ModelBuilder): Int */
1806 long separate_compiler__ModelBuilder__nb_invok_by_tables(val
* self
) {
1807 long var
/* : Int */;
1808 long var1
/* : Int */;
1809 var1
= self
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_tables
].l
; /* _nb_invok_by_tables on <self:ModelBuilder> */
1814 /* method separate_compiler#ModelBuilder#nb_invok_by_tables for (self: Object): Int */
1815 long VIRTUAL_separate_compiler__ModelBuilder__nb_invok_by_tables(val
* self
) {
1816 long var
/* : Int */;
1817 long var1
/* : Int */;
1818 long var3
/* : Int */;
1819 { /* Inline separate_compiler#ModelBuilder#nb_invok_by_tables (self) on <self:Object(ModelBuilder)> */
1820 var3
= self
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_tables
].l
; /* _nb_invok_by_tables on <self:Object(ModelBuilder)> */
1828 /* method separate_compiler#ModelBuilder#nb_invok_by_tables= for (self: ModelBuilder, Int) */
1829 void separate_compiler__ModelBuilder__nb_invok_by_tables_61d(val
* self
, long p0
) {
1830 self
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_tables
].l
= p0
; /* _nb_invok_by_tables on <self:ModelBuilder> */
1833 /* method separate_compiler#ModelBuilder#nb_invok_by_tables= for (self: Object, Int) */
1834 void VIRTUAL_separate_compiler__ModelBuilder__nb_invok_by_tables_61d(val
* self
, long p0
) {
1835 { /* Inline separate_compiler#ModelBuilder#nb_invok_by_tables= (self,p0) on <self:Object(ModelBuilder)> */
1836 self
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_tables
].l
= p0
; /* _nb_invok_by_tables on <self:Object(ModelBuilder)> */
1841 /* method separate_compiler#ModelBuilder#nb_invok_by_direct for (self: ModelBuilder): Int */
1842 long separate_compiler__ModelBuilder__nb_invok_by_direct(val
* self
) {
1843 long var
/* : Int */;
1844 long var1
/* : Int */;
1845 var1
= self
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_direct
].l
; /* _nb_invok_by_direct on <self:ModelBuilder> */
1850 /* method separate_compiler#ModelBuilder#nb_invok_by_direct for (self: Object): Int */
1851 long VIRTUAL_separate_compiler__ModelBuilder__nb_invok_by_direct(val
* self
) {
1852 long var
/* : Int */;
1853 long var1
/* : Int */;
1854 long var3
/* : Int */;
1855 { /* Inline separate_compiler#ModelBuilder#nb_invok_by_direct (self) on <self:Object(ModelBuilder)> */
1856 var3
= self
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_direct
].l
; /* _nb_invok_by_direct on <self:Object(ModelBuilder)> */
1864 /* method separate_compiler#ModelBuilder#nb_invok_by_direct= for (self: ModelBuilder, Int) */
1865 void separate_compiler__ModelBuilder__nb_invok_by_direct_61d(val
* self
, long p0
) {
1866 self
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_direct
].l
= p0
; /* _nb_invok_by_direct on <self:ModelBuilder> */
1869 /* method separate_compiler#ModelBuilder#nb_invok_by_direct= for (self: Object, Int) */
1870 void VIRTUAL_separate_compiler__ModelBuilder__nb_invok_by_direct_61d(val
* self
, long p0
) {
1871 { /* Inline separate_compiler#ModelBuilder#nb_invok_by_direct= (self,p0) on <self:Object(ModelBuilder)> */
1872 self
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_direct
].l
= p0
; /* _nb_invok_by_direct on <self:Object(ModelBuilder)> */
1877 /* method separate_compiler#ModelBuilder#nb_invok_by_inline for (self: ModelBuilder): Int */
1878 long separate_compiler__ModelBuilder__nb_invok_by_inline(val
* self
) {
1879 long var
/* : Int */;
1880 long var1
/* : Int */;
1881 var1
= self
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_inline
].l
; /* _nb_invok_by_inline on <self:ModelBuilder> */
1886 /* method separate_compiler#ModelBuilder#nb_invok_by_inline for (self: Object): Int */
1887 long VIRTUAL_separate_compiler__ModelBuilder__nb_invok_by_inline(val
* self
) {
1888 long var
/* : Int */;
1889 long var1
/* : Int */;
1890 long var3
/* : Int */;
1891 { /* Inline separate_compiler#ModelBuilder#nb_invok_by_inline (self) on <self:Object(ModelBuilder)> */
1892 var3
= self
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_inline
].l
; /* _nb_invok_by_inline on <self:Object(ModelBuilder)> */
1900 /* method separate_compiler#ModelBuilder#nb_invok_by_inline= for (self: ModelBuilder, Int) */
1901 void separate_compiler__ModelBuilder__nb_invok_by_inline_61d(val
* self
, long p0
) {
1902 self
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_inline
].l
= p0
; /* _nb_invok_by_inline on <self:ModelBuilder> */
1905 /* method separate_compiler#ModelBuilder#nb_invok_by_inline= for (self: Object, Int) */
1906 void VIRTUAL_separate_compiler__ModelBuilder__nb_invok_by_inline_61d(val
* self
, long p0
) {
1907 { /* Inline separate_compiler#ModelBuilder#nb_invok_by_inline= (self,p0) on <self:Object(ModelBuilder)> */
1908 self
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_inline
].l
= p0
; /* _nb_invok_by_inline on <self:Object(ModelBuilder)> */
1913 /* method separate_compiler#SeparateCompiler#runtime_type_analysis for (self: SeparateCompiler): nullable RapidTypeAnalysis */
1914 val
* separate_compiler__SeparateCompiler__runtime_type_analysis(val
* self
) {
1915 val
* var
/* : nullable RapidTypeAnalysis */;
1916 val
* var1
/* : nullable RapidTypeAnalysis */;
1917 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
1922 /* method separate_compiler#SeparateCompiler#runtime_type_analysis for (self: Object): nullable RapidTypeAnalysis */
1923 val
* VIRTUAL_separate_compiler__SeparateCompiler__runtime_type_analysis(val
* self
) {
1924 val
* var
/* : nullable RapidTypeAnalysis */;
1925 val
* var1
/* : nullable RapidTypeAnalysis */;
1926 val
* var3
/* : nullable RapidTypeAnalysis */;
1927 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:Object(SeparateCompiler)> */
1928 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:Object(SeparateCompiler)> */
1936 /* method separate_compiler#SeparateCompiler#runtime_type_analysis= for (self: SeparateCompiler, nullable RapidTypeAnalysis) */
1937 void separate_compiler__SeparateCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
1938 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
= p0
; /* _runtime_type_analysis on <self:SeparateCompiler> */
1941 /* method separate_compiler#SeparateCompiler#runtime_type_analysis= for (self: Object, nullable RapidTypeAnalysis) */
1942 void VIRTUAL_separate_compiler__SeparateCompiler__runtime_type_analysis_61d(val
* self
, val
* p0
) {
1943 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis= (self,p0) on <self:Object(SeparateCompiler)> */
1944 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
= p0
; /* _runtime_type_analysis on <self:Object(SeparateCompiler)> */
1949 /* method separate_compiler#SeparateCompiler#undead_types for (self: SeparateCompiler): Set[MType] */
1950 val
* separate_compiler__SeparateCompiler__undead_types(val
* self
) {
1951 val
* var
/* : Set[MType] */;
1952 val
* var1
/* : Set[MType] */;
1953 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___undead_types
].val
; /* _undead_types on <self:SeparateCompiler> */
1954 if (unlikely(var1
== NULL
)) {
1955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
1956 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 156);
1963 /* method separate_compiler#SeparateCompiler#undead_types for (self: Object): Set[MType] */
1964 val
* VIRTUAL_separate_compiler__SeparateCompiler__undead_types(val
* self
) {
1965 val
* var
/* : Set[MType] */;
1966 val
* var1
/* : Set[MType] */;
1967 val
* var3
/* : Set[MType] */;
1968 { /* Inline separate_compiler#SeparateCompiler#undead_types (self) on <self:Object(SeparateCompiler)> */
1969 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___undead_types
].val
; /* _undead_types on <self:Object(SeparateCompiler)> */
1970 if (unlikely(var3
== NULL
)) {
1971 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
1972 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 156);
1982 /* method separate_compiler#SeparateCompiler#live_unresolved_types for (self: SeparateCompiler): Map[MClassDef, Set[MType]] */
1983 val
* separate_compiler__SeparateCompiler__live_unresolved_types(val
* self
) {
1984 val
* var
/* : Map[MClassDef, Set[MType]] */;
1985 val
* var1
/* : Map[MClassDef, Set[MType]] */;
1986 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <self:SeparateCompiler> */
1987 if (unlikely(var1
== NULL
)) {
1988 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
1989 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 157);
1996 /* method separate_compiler#SeparateCompiler#live_unresolved_types for (self: Object): Map[MClassDef, Set[MType]] */
1997 val
* VIRTUAL_separate_compiler__SeparateCompiler__live_unresolved_types(val
* self
) {
1998 val
* var
/* : Map[MClassDef, Set[MType]] */;
1999 val
* var1
/* : Map[MClassDef, Set[MType]] */;
2000 val
* var3
/* : Map[MClassDef, Set[MType]] */;
2001 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on <self:Object(SeparateCompiler)> */
2002 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <self:Object(SeparateCompiler)> */
2003 if (unlikely(var3
== NULL
)) {
2004 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
2005 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 157);
2015 /* method separate_compiler#SeparateCompiler#type_ids for (self: SeparateCompiler): Map[MType, Int] */
2016 val
* separate_compiler__SeparateCompiler__type_ids(val
* self
) {
2017 val
* var
/* : Map[MType, Int] */;
2018 val
* var1
/* : Map[MType, Int] */;
2019 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_ids
].val
; /* _type_ids on <self:SeparateCompiler> */
2020 if (unlikely(var1
== NULL
)) {
2021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
2022 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 159);
2029 /* method separate_compiler#SeparateCompiler#type_ids for (self: Object): Map[MType, Int] */
2030 val
* VIRTUAL_separate_compiler__SeparateCompiler__type_ids(val
* self
) {
2031 val
* var
/* : Map[MType, Int] */;
2032 val
* var1
/* : Map[MType, Int] */;
2033 val
* var3
/* : Map[MType, Int] */;
2034 { /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:Object(SeparateCompiler)> */
2035 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_ids
].val
; /* _type_ids on <self:Object(SeparateCompiler)> */
2036 if (unlikely(var3
== NULL
)) {
2037 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
2038 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 159);
2048 /* method separate_compiler#SeparateCompiler#type_ids= for (self: SeparateCompiler, Map[MType, Int]) */
2049 void separate_compiler__SeparateCompiler__type_ids_61d(val
* self
, val
* p0
) {
2050 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_ids
].val
= p0
; /* _type_ids on <self:SeparateCompiler> */
2053 /* method separate_compiler#SeparateCompiler#type_ids= for (self: Object, Map[MType, Int]) */
2054 void VIRTUAL_separate_compiler__SeparateCompiler__type_ids_61d(val
* self
, val
* p0
) {
2055 { /* Inline separate_compiler#SeparateCompiler#type_ids= (self,p0) on <self:Object(SeparateCompiler)> */
2056 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_ids
].val
= p0
; /* _type_ids on <self:Object(SeparateCompiler)> */
2061 /* method separate_compiler#SeparateCompiler#type_colors for (self: SeparateCompiler): Map[MType, Int] */
2062 val
* separate_compiler__SeparateCompiler__type_colors(val
* self
) {
2063 val
* var
/* : Map[MType, Int] */;
2064 val
* var1
/* : Map[MType, Int] */;
2065 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_colors
].val
; /* _type_colors on <self:SeparateCompiler> */
2066 if (unlikely(var1
== NULL
)) {
2067 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors");
2068 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 160);
2075 /* method separate_compiler#SeparateCompiler#type_colors for (self: Object): Map[MType, Int] */
2076 val
* VIRTUAL_separate_compiler__SeparateCompiler__type_colors(val
* self
) {
2077 val
* var
/* : Map[MType, Int] */;
2078 val
* var1
/* : Map[MType, Int] */;
2079 val
* var3
/* : Map[MType, Int] */;
2080 { /* Inline separate_compiler#SeparateCompiler#type_colors (self) on <self:Object(SeparateCompiler)> */
2081 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_colors
].val
; /* _type_colors on <self:Object(SeparateCompiler)> */
2082 if (unlikely(var3
== NULL
)) {
2083 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors");
2084 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 160);
2094 /* method separate_compiler#SeparateCompiler#type_colors= for (self: SeparateCompiler, Map[MType, Int]) */
2095 void separate_compiler__SeparateCompiler__type_colors_61d(val
* self
, val
* p0
) {
2096 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_colors
].val
= p0
; /* _type_colors on <self:SeparateCompiler> */
2099 /* method separate_compiler#SeparateCompiler#type_colors= for (self: Object, Map[MType, Int]) */
2100 void VIRTUAL_separate_compiler__SeparateCompiler__type_colors_61d(val
* self
, val
* p0
) {
2101 { /* Inline separate_compiler#SeparateCompiler#type_colors= (self,p0) on <self:Object(SeparateCompiler)> */
2102 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_colors
].val
= p0
; /* _type_colors on <self:Object(SeparateCompiler)> */
2107 /* method separate_compiler#SeparateCompiler#opentype_colors for (self: SeparateCompiler): Map[MType, Int] */
2108 val
* separate_compiler__SeparateCompiler__opentype_colors(val
* self
) {
2109 val
* var
/* : Map[MType, Int] */;
2110 val
* var1
/* : Map[MType, Int] */;
2111 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___opentype_colors
].val
; /* _opentype_colors on <self:SeparateCompiler> */
2112 if (unlikely(var1
== NULL
)) {
2113 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
2114 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 161);
2121 /* method separate_compiler#SeparateCompiler#opentype_colors for (self: Object): Map[MType, Int] */
2122 val
* VIRTUAL_separate_compiler__SeparateCompiler__opentype_colors(val
* self
) {
2123 val
* var
/* : Map[MType, Int] */;
2124 val
* var1
/* : Map[MType, Int] */;
2125 val
* var3
/* : Map[MType, Int] */;
2126 { /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on <self:Object(SeparateCompiler)> */
2127 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___opentype_colors
].val
; /* _opentype_colors on <self:Object(SeparateCompiler)> */
2128 if (unlikely(var3
== NULL
)) {
2129 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
2130 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 161);
2140 /* method separate_compiler#SeparateCompiler#opentype_colors= for (self: SeparateCompiler, Map[MType, Int]) */
2141 void separate_compiler__SeparateCompiler__opentype_colors_61d(val
* self
, val
* p0
) {
2142 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___opentype_colors
].val
= p0
; /* _opentype_colors on <self:SeparateCompiler> */
2145 /* method separate_compiler#SeparateCompiler#opentype_colors= for (self: Object, Map[MType, Int]) */
2146 void VIRTUAL_separate_compiler__SeparateCompiler__opentype_colors_61d(val
* self
, val
* p0
) {
2147 { /* Inline separate_compiler#SeparateCompiler#opentype_colors= (self,p0) on <self:Object(SeparateCompiler)> */
2148 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___opentype_colors
].val
= p0
; /* _opentype_colors on <self:Object(SeparateCompiler)> */
2153 /* method separate_compiler#SeparateCompiler#method_colors for (self: SeparateCompiler): Map[PropertyLayoutElement, Int] */
2154 val
* separate_compiler__SeparateCompiler__method_colors(val
* self
) {
2155 val
* var
/* : Map[PropertyLayoutElement, Int] */;
2156 val
* var1
/* : Map[PropertyLayoutElement, Int] */;
2157 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_colors
].val
; /* _method_colors on <self:SeparateCompiler> */
2158 if (unlikely(var1
== NULL
)) {
2159 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_colors");
2160 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 162);
2167 /* method separate_compiler#SeparateCompiler#method_colors for (self: Object): Map[PropertyLayoutElement, Int] */
2168 val
* VIRTUAL_separate_compiler__SeparateCompiler__method_colors(val
* self
) {
2169 val
* var
/* : Map[PropertyLayoutElement, Int] */;
2170 val
* var1
/* : Map[PropertyLayoutElement, Int] */;
2171 val
* var3
/* : Map[PropertyLayoutElement, Int] */;
2172 { /* Inline separate_compiler#SeparateCompiler#method_colors (self) on <self:Object(SeparateCompiler)> */
2173 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_colors
].val
; /* _method_colors on <self:Object(SeparateCompiler)> */
2174 if (unlikely(var3
== NULL
)) {
2175 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_colors");
2176 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 162);
2186 /* method separate_compiler#SeparateCompiler#method_colors= for (self: SeparateCompiler, Map[PropertyLayoutElement, Int]) */
2187 void separate_compiler__SeparateCompiler__method_colors_61d(val
* self
, val
* p0
) {
2188 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_colors
].val
= p0
; /* _method_colors on <self:SeparateCompiler> */
2191 /* method separate_compiler#SeparateCompiler#method_colors= for (self: Object, Map[PropertyLayoutElement, Int]) */
2192 void VIRTUAL_separate_compiler__SeparateCompiler__method_colors_61d(val
* self
, val
* p0
) {
2193 { /* Inline separate_compiler#SeparateCompiler#method_colors= (self,p0) on <self:Object(SeparateCompiler)> */
2194 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_colors
].val
= p0
; /* _method_colors on <self:Object(SeparateCompiler)> */
2199 /* method separate_compiler#SeparateCompiler#attr_colors for (self: SeparateCompiler): Map[MAttribute, Int] */
2200 val
* separate_compiler__SeparateCompiler__attr_colors(val
* self
) {
2201 val
* var
/* : Map[MAttribute, Int] */;
2202 val
* var1
/* : Map[MAttribute, Int] */;
2203 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_colors
].val
; /* _attr_colors on <self:SeparateCompiler> */
2204 if (unlikely(var1
== NULL
)) {
2205 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_colors");
2206 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 163);
2213 /* method separate_compiler#SeparateCompiler#attr_colors for (self: Object): Map[MAttribute, Int] */
2214 val
* VIRTUAL_separate_compiler__SeparateCompiler__attr_colors(val
* self
) {
2215 val
* var
/* : Map[MAttribute, Int] */;
2216 val
* var1
/* : Map[MAttribute, Int] */;
2217 val
* var3
/* : Map[MAttribute, Int] */;
2218 { /* Inline separate_compiler#SeparateCompiler#attr_colors (self) on <self:Object(SeparateCompiler)> */
2219 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_colors
].val
; /* _attr_colors on <self:Object(SeparateCompiler)> */
2220 if (unlikely(var3
== NULL
)) {
2221 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_colors");
2222 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 163);
2232 /* method separate_compiler#SeparateCompiler#attr_colors= for (self: SeparateCompiler, Map[MAttribute, Int]) */
2233 void separate_compiler__SeparateCompiler__attr_colors_61d(val
* self
, val
* p0
) {
2234 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_colors
].val
= p0
; /* _attr_colors on <self:SeparateCompiler> */
2237 /* method separate_compiler#SeparateCompiler#attr_colors= for (self: Object, Map[MAttribute, Int]) */
2238 void VIRTUAL_separate_compiler__SeparateCompiler__attr_colors_61d(val
* self
, val
* p0
) {
2239 { /* Inline separate_compiler#SeparateCompiler#attr_colors= (self,p0) on <self:Object(SeparateCompiler)> */
2240 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_colors
].val
= p0
; /* _attr_colors on <self:Object(SeparateCompiler)> */
2245 /* method separate_compiler#SeparateCompiler#init for (self: SeparateCompiler, MModule, ModelBuilder, nullable RapidTypeAnalysis) */
2246 void separate_compiler__SeparateCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2247 val
* var_mainmodule
/* var mainmodule: MModule */;
2248 val
* var_mmbuilder
/* var mmbuilder: ModelBuilder */;
2249 val
* var_runtime_type_analysis
/* var runtime_type_analysis: nullable RapidTypeAnalysis */;
2250 static val
* varonce
;
2251 val
* var
/* : String */;
2252 char* var1
/* : NativeString */;
2253 long var2
/* : Int */;
2254 val
* var3
/* : FlatString */;
2255 val
* var4
/* : CodeFile */;
2256 val
* var_file
/* var file: CodeFile */;
2257 val
* var5
/* : CodeWriter */;
2258 var_mainmodule
= p0
;
2260 var_runtime_type_analysis
= p2
;
2262 abstract_compiler__AbstractCompiler__init(self
, var_mainmodule
, var_mmbuilder
); /* Direct call abstract_compiler#AbstractCompiler#init on <self:SeparateCompiler>*/
2267 var1
= "nit.common";
2269 var3
= string__NativeString__to_s_with_length(var1
, var2
);
2274 var4
= abstract_compiler__AbstractCompiler__new_file(self
, var
);
2277 var5
= NEW_abstract_compiler__CodeWriter(&type_abstract_compiler__CodeWriter
);
2279 abstract_compiler__CodeWriter__init(var5
, var_file
); /* Direct call abstract_compiler#CodeWriter#init on <var5:CodeWriter>*/
2282 { /* Inline abstract_compiler#AbstractCompiler#header= (self,var5) on <self:SeparateCompiler> */
2283 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
= var5
; /* _header on <self:SeparateCompiler> */
2288 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis= (self,var_runtime_type_analysis) on <self:SeparateCompiler> */
2289 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
= var_runtime_type_analysis
; /* _runtime_type_analysis on <self:SeparateCompiler> */
2294 separate_compiler__SeparateCompiler__compile_box_kinds(self
); /* Direct call separate_compiler#SeparateCompiler#compile_box_kinds on <self:SeparateCompiler>*/
2298 /* method separate_compiler#SeparateCompiler#init for (self: Object, MModule, ModelBuilder, nullable RapidTypeAnalysis) */
2299 void VIRTUAL_separate_compiler__SeparateCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2300 separate_compiler__SeparateCompiler__init(self
, p0
, p1
, p2
); /* Direct call separate_compiler#SeparateCompiler#init on <self:Object(SeparateCompiler)>*/
2303 /* method separate_compiler#SeparateCompiler#compile_header_structs for (self: SeparateCompiler) */
2304 void separate_compiler__SeparateCompiler__compile_header_structs(val
* self
) {
2305 val
* var
/* : CodeWriter */;
2306 val
* var2
/* : CodeWriter */;
2307 static val
* varonce
;
2308 val
* var3
/* : String */;
2309 char* var4
/* : NativeString */;
2310 long var5
/* : Int */;
2311 val
* var6
/* : FlatString */;
2312 val
* var7
/* : CodeWriter */;
2313 val
* var9
/* : CodeWriter */;
2314 static val
* varonce10
;
2315 val
* var11
/* : String */;
2316 char* var12
/* : NativeString */;
2317 long var13
/* : Int */;
2318 val
* var14
/* : FlatString */;
2319 val
* var15
/* : CodeWriter */;
2320 val
* var17
/* : CodeWriter */;
2321 static val
* varonce18
;
2322 val
* var19
/* : String */;
2323 char* var20
/* : NativeString */;
2324 long var21
/* : Int */;
2325 val
* var22
/* : FlatString */;
2326 val
* var23
/* : CodeWriter */;
2327 val
* var25
/* : CodeWriter */;
2328 static val
* varonce26
;
2329 val
* var27
/* : String */;
2330 char* var28
/* : NativeString */;
2331 long var29
/* : Int */;
2332 val
* var30
/* : FlatString */;
2333 val
* var31
/* : CodeWriter */;
2334 val
* var33
/* : CodeWriter */;
2335 static val
* varonce34
;
2336 val
* var35
/* : String */;
2337 char* var36
/* : NativeString */;
2338 long var37
/* : Int */;
2339 val
* var38
/* : FlatString */;
2340 val
* var39
/* : CodeWriter */;
2341 val
* var41
/* : CodeWriter */;
2342 static val
* varonce42
;
2343 val
* var43
/* : String */;
2344 char* var44
/* : NativeString */;
2345 long var45
/* : Int */;
2346 val
* var46
/* : FlatString */;
2348 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2349 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2350 if (unlikely(var2
== NULL
)) {
2351 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2352 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2362 var4
= "typedef void(*nitmethod_t)(void); /* general C type representing a Nit method. */";
2364 var6
= string__NativeString__to_s_with_length(var4
, var5
);
2369 abstract_compiler__CodeWriter__add_decl(var
, var3
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var:CodeWriter>*/
2372 separate_compiler__SeparateCompiler__compile_header_attribute_structs(self
); /* Direct call separate_compiler#SeparateCompiler#compile_header_attribute_structs on <self:SeparateCompiler>*/
2375 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2376 var9
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2377 if (unlikely(var9
== NULL
)) {
2378 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2379 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2389 var12
= "struct class { int box_kind; nitmethod_t vft[]; }; /* general C type representing a Nit class. */";
2391 var14
= string__NativeString__to_s_with_length(var12
, var13
);
2396 abstract_compiler__CodeWriter__add_decl(var7
, var11
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var7:CodeWriter>*/
2399 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2400 var17
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2401 if (unlikely(var17
== NULL
)) {
2402 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2403 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2407 RET_LABEL16
:(void)0;
2413 var20
= "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. */";
2415 var22
= string__NativeString__to_s_with_length(var20
, var21
);
2420 abstract_compiler__CodeWriter__add_decl(var15
, var19
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var15:CodeWriter>*/
2423 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2424 var25
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2425 if (unlikely(var25
== NULL
)) {
2426 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2427 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2431 RET_LABEL24
:(void)0;
2437 var28
= "struct instance { const struct type *type; const struct class *class; nitattribute_t attrs[]; }; /* general C type representing a Nit instance. */";
2439 var30
= string__NativeString__to_s_with_length(var28
, var29
);
2444 abstract_compiler__CodeWriter__add_decl(var23
, var27
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var23:CodeWriter>*/
2447 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2448 var33
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2449 if (unlikely(var33
== NULL
)) {
2450 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2451 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2455 RET_LABEL32
:(void)0;
2461 var36
= "struct types { int dummy; const struct type *types[]; }; /* a list types (used for vts, fts and unresolved lists). */";
2463 var38
= string__NativeString__to_s_with_length(var36
, var37
);
2468 abstract_compiler__CodeWriter__add_decl(var31
, var35
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var31:CodeWriter>*/
2471 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2472 var41
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2473 if (unlikely(var41
== NULL
)) {
2474 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2475 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2479 RET_LABEL40
:(void)0;
2485 var44
= "typedef struct instance val; /* general C type representing a Nit instance. */";
2487 var46
= string__NativeString__to_s_with_length(var44
, var45
);
2492 abstract_compiler__CodeWriter__add_decl(var39
, var43
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var39:CodeWriter>*/
2496 /* method separate_compiler#SeparateCompiler#compile_header_structs for (self: Object) */
2497 void VIRTUAL_separate_compiler__SeparateCompiler__compile_header_structs(val
* self
) {
2498 separate_compiler__SeparateCompiler__compile_header_structs(self
); /* Direct call separate_compiler#SeparateCompiler#compile_header_structs on <self:Object(SeparateCompiler)>*/
2501 /* method separate_compiler#SeparateCompiler#compile_header_attribute_structs for (self: SeparateCompiler) */
2502 void separate_compiler__SeparateCompiler__compile_header_attribute_structs(val
* self
) {
2503 val
* var
/* : ModelBuilder */;
2504 val
* var2
/* : ModelBuilder */;
2505 val
* var3
/* : ToolContext */;
2506 val
* var5
/* : ToolContext */;
2507 val
* var6
/* : OptionBool */;
2508 val
* var8
/* : OptionBool */;
2509 val
* var9
/* : nullable Object */;
2510 val
* var11
/* : nullable Object */;
2511 short int var12
/* : Bool */;
2512 val
* var13
/* : CodeWriter */;
2513 val
* var15
/* : CodeWriter */;
2514 static val
* varonce
;
2515 val
* var16
/* : String */;
2516 char* var17
/* : NativeString */;
2517 long var18
/* : Int */;
2518 val
* var19
/* : FlatString */;
2519 val
* var20
/* : CodeWriter */;
2520 val
* var22
/* : CodeWriter */;
2521 static val
* varonce23
;
2522 val
* var24
/* : String */;
2523 char* var25
/* : NativeString */;
2524 long var26
/* : Int */;
2525 val
* var27
/* : FlatString */;
2526 val
* var28
/* : CodeWriter */;
2527 val
* var30
/* : CodeWriter */;
2528 static val
* varonce31
;
2529 val
* var32
/* : String */;
2530 char* var33
/* : NativeString */;
2531 long var34
/* : Int */;
2532 val
* var35
/* : FlatString */;
2533 val
* var36
/* : HashMap[MClass, Int] */;
2534 val
* var38
/* : HashMap[MClass, Int] */;
2535 val
* var_
/* var : HashMap[MClass, Int] */;
2536 val
* var39
/* : HashMapIterator[Object, nullable Object] */;
2537 val
* var_40
/* var : HashMapIterator[MClass, Int] */;
2538 short int var41
/* : Bool */;
2539 val
* var42
/* : Object */;
2540 val
* var_c
/* var c: MClass */;
2541 val
* var43
/* : nullable Object */;
2542 long var44
/* : Int */;
2543 long var_v
/* var v: Int */;
2544 val
* var45
/* : MClassType */;
2545 val
* var47
/* : MClassType */;
2546 val
* var_t
/* var t: MClassType */;
2547 val
* var48
/* : MClass */;
2548 val
* var50
/* : MClass */;
2549 val
* var51
/* : String */;
2550 val
* var53
/* : String */;
2551 static val
* varonce54
;
2552 val
* var55
/* : String */;
2553 char* var56
/* : NativeString */;
2554 long var57
/* : Int */;
2555 val
* var58
/* : FlatString */;
2556 short int var59
/* : Bool */;
2557 short int var60
/* : Bool */;
2558 val
* var61
/* : CodeWriter */;
2559 val
* var63
/* : CodeWriter */;
2560 val
* var64
/* : String */;
2561 static val
* varonce65
;
2562 val
* var66
/* : String */;
2563 char* var67
/* : NativeString */;
2564 long var68
/* : Int */;
2565 val
* var69
/* : FlatString */;
2566 val
* var70
/* : String */;
2567 static val
* varonce71
;
2568 val
* var72
/* : String */;
2569 char* var73
/* : NativeString */;
2570 long var74
/* : Int */;
2571 val
* var75
/* : FlatString */;
2572 val
* var76
/* : Array[Object] */;
2573 long var77
/* : Int */;
2574 val
* var78
/* : NativeArray[Object] */;
2575 val
* var79
/* : String */;
2576 val
* var82
/* : CodeWriter */;
2577 val
* var84
/* : CodeWriter */;
2578 static val
* varonce85
;
2579 val
* var86
/* : String */;
2580 char* var87
/* : NativeString */;
2581 long var88
/* : Int */;
2582 val
* var89
/* : FlatString */;
2584 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
2585 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
2586 if (unlikely(var2
== NULL
)) {
2587 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2588 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
2596 { /* Inline modelbuilder#ModelBuilder#toolcontext (var) on <var:ModelBuilder> */
2597 var5
= var
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var:ModelBuilder> */
2598 if (unlikely(var5
== NULL
)) {
2599 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2600 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
2608 { /* Inline separate_compiler#ToolContext#opt_no_union_attribute (var3) on <var3:ToolContext> */
2609 var8
= var3
->attrs
[COLOR_separate_compiler__ToolContext___opt_no_union_attribute
].val
; /* _opt_no_union_attribute on <var3:ToolContext> */
2610 if (unlikely(var8
== NULL
)) {
2611 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute");
2612 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 28);
2620 { /* Inline opts#Option#value (var6) on <var6:OptionBool> */
2621 var11
= var6
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var6:OptionBool> */
2623 RET_LABEL10
:(void)0;
2626 var12
= ((struct instance_kernel__Bool
*)var9
)->value
; /* autounbox from nullable Object to Bool */;
2629 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2630 var15
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2631 if (unlikely(var15
== NULL
)) {
2632 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2633 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2637 RET_LABEL14
:(void)0;
2643 var17
= "typedef void* nitattribute_t; /* general C type representing a Nit attribute. */";
2645 var19
= string__NativeString__to_s_with_length(var17
, var18
);
2650 abstract_compiler__CodeWriter__add_decl(var13
, var16
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var13:CodeWriter>*/
2654 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2655 var22
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2656 if (unlikely(var22
== NULL
)) {
2657 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2658 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2662 RET_LABEL21
:(void)0;
2668 var25
= "typedef union {";
2670 var27
= string__NativeString__to_s_with_length(var25
, var26
);
2675 abstract_compiler__CodeWriter__add_decl(var20
, var24
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var20:CodeWriter>*/
2678 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2679 var30
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2680 if (unlikely(var30
== NULL
)) {
2681 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2682 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2686 RET_LABEL29
:(void)0;
2692 var33
= "void* val;";
2694 var35
= string__NativeString__to_s_with_length(var33
, var34
);
2699 abstract_compiler__CodeWriter__add_decl(var28
, var32
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var28:CodeWriter>*/
2702 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
2703 var38
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
2704 if (unlikely(var38
== NULL
)) {
2705 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
2706 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216);
2710 RET_LABEL37
:(void)0;
2715 var39
= hash_collection__HashMap__iterator(var_
);
2720 var41
= hash_collection__HashMapIterator__is_ok(var_40
);
2724 var42
= hash_collection__HashMapIterator__key(var_40
);
2728 var43
= hash_collection__HashMapIterator__item(var_40
);
2730 var44
= ((struct instance_kernel__Int
*)var43
)->value
; /* autounbox from nullable Object to Int */;
2733 { /* Inline model#MClass#mclass_type (var_c) on <var_c:MClass> */
2734 var47
= var_c
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_c:MClass> */
2735 if (unlikely(var47
== NULL
)) {
2736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2737 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
2741 RET_LABEL46
:(void)0;
2746 { /* Inline model#MClassType#mclass (var_t) on <var_t:MClassType> */
2747 var50
= var_t
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_t:MClassType> */
2748 if (unlikely(var50
== NULL
)) {
2749 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2750 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
2754 RET_LABEL49
:(void)0;
2758 { /* Inline model#MClass#name (var48) on <var48:MClass> */
2759 var53
= var48
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var48:MClass> */
2760 if (unlikely(var53
== NULL
)) {
2761 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2762 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
2766 RET_LABEL52
:(void)0;
2774 var58
= string__NativeString__to_s_with_length(var56
, var57
);
2779 var60
= string__FlatString___61d_61d(var51
, var55
);
2787 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2788 var63
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2789 if (unlikely(var63
== NULL
)) {
2790 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2791 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2795 RET_LABEL62
:(void)0;
2799 var64
= abstract_compiler__MClassType__ctype_extern(var_t
);
2806 var69
= string__NativeString__to_s_with_length(var67
, var68
);
2811 var70
= abstract_compiler__MClassType__ctypename(var_t
);
2818 var75
= string__NativeString__to_s_with_length(var73
, var74
);
2822 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
2823 { /* var76 = array_instance Array[Object] */
2825 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
2826 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var64
;
2827 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var66
;
2828 ((struct instance_array__NativeArray
*)var78
)->values
[2] = (val
*) var70
;
2829 ((struct instance_array__NativeArray
*)var78
)->values
[3] = (val
*) var72
;
2831 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
2835 var79
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
2838 abstract_compiler__CodeWriter__add_decl(var61
, var79
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var61:CodeWriter>*/
2840 BREAK_label
: (void)0;
2842 hash_collection__HashMapIterator__next(var_40
); /* Direct call hash_collection#HashMapIterator#next on <var_40:HashMapIterator[MClass, Int]>*/
2848 BREAK_label80
: (void)0;
2850 { /* Inline abstract_collection#MapIterator#finish (var_40) on <var_40:HashMapIterator[MClass, Int]> */
2851 RET_LABEL81
:(void)0;
2855 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2856 var84
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2857 if (unlikely(var84
== NULL
)) {
2858 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2859 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2863 RET_LABEL83
:(void)0;
2869 var87
= "} nitattribute_t; /* general C type representing a Nit attribute. */";
2871 var89
= string__NativeString__to_s_with_length(var87
, var88
);
2876 abstract_compiler__CodeWriter__add_decl(var82
, var86
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var82:CodeWriter>*/
2881 /* method separate_compiler#SeparateCompiler#compile_header_attribute_structs for (self: Object) */
2882 void VIRTUAL_separate_compiler__SeparateCompiler__compile_header_attribute_structs(val
* self
) {
2883 separate_compiler__SeparateCompiler__compile_header_attribute_structs(self
); /* Direct call separate_compiler#SeparateCompiler#compile_header_attribute_structs on <self:Object(SeparateCompiler)>*/
2886 /* method separate_compiler#SeparateCompiler#compile_box_kinds for (self: SeparateCompiler) */
2887 void separate_compiler__SeparateCompiler__compile_box_kinds(val
* self
) {
2888 val
* var
/* : Array[String] */;
2889 long var1
/* : Int */;
2890 val
* var_
/* var : Array[String] */;
2891 static val
* varonce
;
2892 val
* var2
/* : String */;
2893 char* var3
/* : NativeString */;
2894 long var4
/* : Int */;
2895 val
* var5
/* : FlatString */;
2896 static val
* varonce6
;
2897 val
* var7
/* : String */;
2898 char* var8
/* : NativeString */;
2899 long var9
/* : Int */;
2900 val
* var10
/* : FlatString */;
2901 static val
* varonce11
;
2902 val
* var12
/* : String */;
2903 char* var13
/* : NativeString */;
2904 long var14
/* : Int */;
2905 val
* var15
/* : FlatString */;
2906 static val
* varonce16
;
2907 val
* var17
/* : String */;
2908 char* var18
/* : NativeString */;
2909 long var19
/* : Int */;
2910 val
* var20
/* : FlatString */;
2911 static val
* varonce21
;
2912 val
* var22
/* : String */;
2913 char* var23
/* : NativeString */;
2914 long var24
/* : Int */;
2915 val
* var25
/* : FlatString */;
2916 static val
* varonce26
;
2917 val
* var27
/* : String */;
2918 char* var28
/* : NativeString */;
2919 long var29
/* : Int */;
2920 val
* var30
/* : FlatString */;
2921 val
* var_31
/* var : Array[String] */;
2922 val
* var32
/* : ArrayIterator[nullable Object] */;
2923 val
* var_33
/* var : ArrayIterator[String] */;
2924 short int var34
/* : Bool */;
2925 val
* var35
/* : nullable Object */;
2926 val
* var_classname
/* var classname: String */;
2927 val
* var36
/* : MModule */;
2928 val
* var38
/* : MModule */;
2929 val
* var39
/* : Model */;
2930 val
* var41
/* : Model */;
2931 val
* var42
/* : nullable Array[MClass] */;
2932 val
* var_classes
/* var classes: nullable Array[MClass] */;
2933 val
* var43
/* : null */;
2934 short int var44
/* : Bool */;
2935 short int var45
/* : Bool */;
2936 long var46
/* : Int */;
2937 long var48
/* : Int */;
2938 long var49
/* : Int */;
2939 short int var50
/* : Bool */;
2940 short int var51
/* : Bool */;
2941 short int var53
/* : Bool */;
2942 static val
* varonce54
;
2943 val
* var55
/* : String */;
2944 char* var56
/* : NativeString */;
2945 long var57
/* : Int */;
2946 val
* var58
/* : FlatString */;
2947 val
* var59
/* : String */;
2948 val
* var60
/* : HashMap[MClass, Int] */;
2949 val
* var62
/* : HashMap[MClass, Int] */;
2950 val
* var63
/* : nullable Object */;
2951 val
* var64
/* : HashMap[MClass, Int] */;
2952 val
* var66
/* : HashMap[MClass, Int] */;
2953 long var67
/* : Int */;
2954 long var68
/* : Int */;
2955 long var69
/* : Int */;
2956 short int var71
/* : Bool */;
2959 const char* var_class_name
;
2960 long var72
/* : Int */;
2961 val
* var73
/* : nullable Object */;
2962 var
= NEW_array__Array(&type_array__Arraystring__String
);
2965 array__Array__with_capacity(var
, var1
); /* Direct call array#Array#with_capacity on <var:Array[String]>*/
2973 var5
= string__NativeString__to_s_with_length(var3
, var4
);
2978 array__AbstractArray__push(var_
, var2
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
2985 var10
= string__NativeString__to_s_with_length(var8
, var9
);
2990 array__AbstractArray__push(var_
, var7
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
2997 var15
= string__NativeString__to_s_with_length(var13
, var14
);
3002 array__AbstractArray__push(var_
, var12
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3009 var20
= string__NativeString__to_s_with_length(var18
, var19
);
3014 array__AbstractArray__push(var_
, var17
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3019 var23
= "NativeString";
3021 var25
= string__NativeString__to_s_with_length(var23
, var24
);
3026 array__AbstractArray__push(var_
, var22
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3033 var30
= string__NativeString__to_s_with_length(var28
, var29
);
3038 array__AbstractArray__push(var_
, var27
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3042 var32
= array__AbstractArrayRead__iterator(var_31
);
3047 var34
= array__ArrayIterator__is_ok(var_33
);
3051 var35
= array__ArrayIterator__item(var_33
);
3053 var_classname
= var35
;
3055 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
3056 var38
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
3057 if (unlikely(var38
== NULL
)) {
3058 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3059 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
3063 RET_LABEL37
:(void)0;
3067 { /* Inline mmodule#MModule#model (var36) on <var36:MModule> */
3068 var41
= var36
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var36:MModule> */
3069 if (unlikely(var41
== NULL
)) {
3070 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
3071 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
3075 RET_LABEL40
:(void)0;
3079 var42
= model__Model__get_mclasses_by_name(var39
, var_classname
);
3081 var_classes
= var42
;
3083 if (var_classes
== NULL
) {
3084 var44
= 1; /* is null */
3086 var44
= 0; /* arg is null but recv is not */
3089 var45
= array__Array___61d_61d(var_classes
, var43
);
3097 { /* Inline array#AbstractArrayRead#length (var_classes) on <var_classes:nullable Array[MClass](Array[MClass])> */
3098 var48
= var_classes
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_classes:nullable Array[MClass](Array[MClass])> */
3100 RET_LABEL47
:(void)0;
3105 { /* Inline kernel#Int#== (var46,var49) on <var46:Int> */
3106 var53
= var46
== var49
;
3109 RET_LABEL52
:(void)0;
3113 if (unlikely(!var50
)) {
3119 var58
= string__NativeString__to_s_with_length(var56
, var57
);
3124 var59
= string__Collection__join(var_classes
, var55
);
3127 file__Object__print(self
, var59
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
3129 PRINT_ERROR("Runtime error: %s", "Assert failed");
3130 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 211);
3134 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
3135 var62
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
3136 if (unlikely(var62
== NULL
)) {
3137 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3138 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216);
3142 RET_LABEL61
:(void)0;
3146 var63
= abstract_collection__SequenceRead__first(var_classes
);
3149 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
3150 var66
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
3151 if (unlikely(var66
== NULL
)) {
3152 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3153 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216);
3157 RET_LABEL65
:(void)0;
3161 var67
= hash_collection__HashMap__length(var64
);
3165 { /* Inline kernel#Int#+ (var67,var68) on <var67:Int> */
3166 /* Covariant cast for argument 0 (i) <var68:Int> isa OTHER */
3167 /* <var68:Int> isa OTHER */
3168 var71
= 1; /* easy <var68:Int> isa OTHER*/
3169 if (unlikely(!var71
)) {
3170 var_class_name
= type_kernel__Int
.name
;
3171 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3172 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
3175 var72
= var67
+ var68
;
3178 RET_LABEL70
:(void)0;
3182 var73
= BOX_kernel__Int(var69
); /* autobox from Int to nullable Object */
3183 hash_collection__HashMap___91d_93d_61d(var60
, var63
, var73
); /* Direct call hash_collection#HashMap#[]= on <var60:HashMap[MClass, Int]>*/
3185 BREAK_label
: (void)0;
3187 array__ArrayIterator__next(var_33
); /* Direct call array#ArrayIterator#next on <var_33:ArrayIterator[String]>*/
3193 BREAK_label74
: (void)0;
3195 { /* Inline abstract_collection#Iterator#finish (var_33) on <var_33:ArrayIterator[String]> */
3196 RET_LABEL75
:(void)0;
3201 /* method separate_compiler#SeparateCompiler#compile_box_kinds for (self: Object) */
3202 void VIRTUAL_separate_compiler__SeparateCompiler__compile_box_kinds(val
* self
) {
3203 separate_compiler__SeparateCompiler__compile_box_kinds(self
); /* Direct call separate_compiler#SeparateCompiler#compile_box_kinds on <self:Object(SeparateCompiler)>*/
3206 /* method separate_compiler#SeparateCompiler#box_kinds for (self: SeparateCompiler): HashMap[MClass, Int] */
3207 val
* separate_compiler__SeparateCompiler__box_kinds(val
* self
) {
3208 val
* var
/* : HashMap[MClass, Int] */;
3209 val
* var1
/* : HashMap[MClass, Int] */;
3210 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
3211 if (unlikely(var1
== NULL
)) {
3212 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3213 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216);
3220 /* method separate_compiler#SeparateCompiler#box_kinds for (self: Object): HashMap[MClass, Int] */
3221 val
* VIRTUAL_separate_compiler__SeparateCompiler__box_kinds(val
* self
) {
3222 val
* var
/* : HashMap[MClass, Int] */;
3223 val
* var1
/* : HashMap[MClass, Int] */;
3224 val
* var3
/* : HashMap[MClass, Int] */;
3225 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:Object(SeparateCompiler)> */
3226 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:Object(SeparateCompiler)> */
3227 if (unlikely(var3
== NULL
)) {
3228 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3229 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216);
3239 /* method separate_compiler#SeparateCompiler#box_kind_of for (self: SeparateCompiler, MClass): Int */
3240 long separate_compiler__SeparateCompiler__box_kind_of(val
* self
, val
* p0
) {
3241 long var
/* : Int */;
3242 val
* var_mclass
/* var mclass: MClass */;
3243 val
* var1
/* : MClassType */;
3244 val
* var3
/* : MClassType */;
3245 val
* var4
/* : String */;
3246 static val
* varonce
;
3247 val
* var5
/* : String */;
3248 char* var6
/* : NativeString */;
3249 long var7
/* : Int */;
3250 val
* var8
/* : FlatString */;
3251 short int var9
/* : Bool */;
3252 short int var10
/* : Bool */;
3253 long var11
/* : Int */;
3254 short int var12
/* : Bool */;
3255 val
* var13
/* : MClassKind */;
3256 val
* var15
/* : MClassKind */;
3257 val
* var16
/* : MClassKind */;
3258 short int var17
/* : Bool */;
3259 short int var18
/* : Bool */;
3260 val
* var_other
/* var other: nullable Object */;
3261 short int var20
/* : Bool */;
3262 short int var22
/* : Bool */;
3263 short int var_
/* var : Bool */;
3264 val
* var23
/* : String */;
3265 val
* var25
/* : String */;
3266 static val
* varonce26
;
3267 val
* var27
/* : String */;
3268 char* var28
/* : NativeString */;
3269 long var29
/* : Int */;
3270 val
* var30
/* : FlatString */;
3271 short int var31
/* : Bool */;
3272 short int var32
/* : Bool */;
3273 val
* var_other34
/* var other: nullable Object */;
3274 short int var35
/* : Bool */;
3275 short int var36
/* : Bool */;
3276 short int var37
/* : Bool */;
3277 val
* var38
/* : HashMap[MClass, Int] */;
3278 val
* var40
/* : HashMap[MClass, Int] */;
3279 val
* var41
/* : MModule */;
3280 val
* var43
/* : MModule */;
3281 static val
* varonce44
;
3282 val
* var45
/* : String */;
3283 char* var46
/* : NativeString */;
3284 long var47
/* : Int */;
3285 val
* var48
/* : FlatString */;
3286 val
* var49
/* : MClass */;
3287 val
* var50
/* : nullable Object */;
3288 long var51
/* : Int */;
3289 val
* var52
/* : HashMap[MClass, Int] */;
3290 val
* var54
/* : HashMap[MClass, Int] */;
3291 val
* var55
/* : nullable Object */;
3292 long var56
/* : Int */;
3295 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:MClass> */
3296 var3
= var_mclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:MClass> */
3297 if (unlikely(var3
== NULL
)) {
3298 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3299 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
3307 var4
= abstract_compiler__MClassType__ctype_extern(var1
);
3314 var8
= string__NativeString__to_s_with_length(var6
, var7
);
3319 var10
= string__FlatString___61d_61d(var4
, var5
);
3328 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:MClass> */
3329 var15
= var_mclass
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var_mclass:MClass> */
3330 if (unlikely(var15
== NULL
)) {
3331 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3332 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
3336 RET_LABEL14
:(void)0;
3340 var16
= model__Object__extern_kind(self
);
3343 { /* Inline kernel#Object#== (var13,var16) on <var13:MClassKind> */
3346 { /* Inline kernel#Object#is_same_instance (var13,var_other) on <var13:MClassKind> */
3347 var22
= var13
== var_other
;
3350 RET_LABEL21
:(void)0;
3355 RET_LABEL19
:(void)0;
3362 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
3363 var25
= var_mclass
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
3364 if (unlikely(var25
== NULL
)) {
3365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3366 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
3370 RET_LABEL24
:(void)0;
3376 var28
= "NativeString";
3378 var30
= string__NativeString__to_s_with_length(var28
, var29
);
3383 { /* Inline kernel#Object#!= (var23,var27) on <var23:String> */
3384 var_other34
= var27
;
3386 var36
= ((short int (*)(val
*, val
*))(var23
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var23
, var_other34
) /* == on <var23:String>*/;
3392 RET_LABEL33
:(void)0;
3402 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
3403 var40
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
3404 if (unlikely(var40
== NULL
)) {
3405 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3406 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216);
3410 RET_LABEL39
:(void)0;
3414 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
3415 var43
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
3416 if (unlikely(var43
== NULL
)) {
3417 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3418 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
3422 RET_LABEL42
:(void)0;
3430 var48
= string__NativeString__to_s_with_length(var46
, var47
);
3435 var49
= model__MModule__get_primitive_class(var41
, var45
);
3438 var50
= hash_collection__HashMap___91d_93d(var38
, var49
);
3440 var51
= ((struct instance_kernel__Int
*)var50
)->value
; /* autounbox from nullable Object to Int */;
3445 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
3446 var54
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
3447 if (unlikely(var54
== NULL
)) {
3448 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3449 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216);
3453 RET_LABEL53
:(void)0;
3457 var55
= hash_collection__HashMap___91d_93d(var52
, var_mclass
);
3459 var56
= ((struct instance_kernel__Int
*)var55
)->value
; /* autounbox from nullable Object to Int */;
3467 /* method separate_compiler#SeparateCompiler#box_kind_of for (self: Object, MClass): Int */
3468 long VIRTUAL_separate_compiler__SeparateCompiler__box_kind_of(val
* self
, val
* p0
) {
3469 long var
/* : Int */;
3470 long var1
/* : Int */;
3471 var1
= separate_compiler__SeparateCompiler__box_kind_of(self
, p0
);
3476 /* method separate_compiler#SeparateCompiler#compile_color_consts for (self: SeparateCompiler, Map[Object, Int]) */
3477 void separate_compiler__SeparateCompiler__compile_color_consts(val
* self
, val
* p0
) {
3478 val
* var_colors
/* var colors: Map[Object, Int] */;
3479 val
* var
/* : AbstractCompilerVisitor */;
3480 val
* var_v
/* var v: SeparateCompilerVisitor */;
3481 val
* var_
/* var : Map[Object, Int] */;
3482 val
* var1
/* : MapIterator[Object, nullable Object] */;
3483 val
* var_2
/* var : MapIterator[Object, Int] */;
3484 short int var3
/* : Bool */;
3485 val
* var4
/* : Object */;
3486 val
* var_m
/* var m: Object */;
3487 val
* var5
/* : nullable Object */;
3488 long var6
/* : Int */;
3489 long var_c
/* var c: Int */;
3492 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
3497 var1
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_
) /* iterator on <var_:Map[Object, Int]>*/;
3502 var3
= ((short int (*)(val
*))(var_2
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var_2
) /* is_ok on <var_2:MapIterator[Object, Int]>*/;
3506 var4
= ((val
* (*)(val
*))(var_2
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var_2
) /* key on <var_2:MapIterator[Object, Int]>*/;
3510 var5
= ((val
* (*)(val
*))(var_2
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var_2
) /* item on <var_2:MapIterator[Object, Int]>*/;
3512 var6
= ((struct instance_kernel__Int
*)var5
)->value
; /* autounbox from nullable Object to Int */;
3515 separate_compiler__SeparateCompiler__compile_color_const(self
, var_v
, var_m
, var_c
); /* Direct call separate_compiler#SeparateCompiler#compile_color_const on <self:SeparateCompiler>*/
3518 ((void (*)(val
*))(var_2
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var_2
) /* next on <var_2:MapIterator[Object, Int]>*/;
3524 BREAK_label
: (void)0;
3526 { /* Inline abstract_collection#MapIterator#finish (var_2) on <var_2:MapIterator[Object, Int]> */
3532 /* method separate_compiler#SeparateCompiler#compile_color_consts for (self: Object, Map[Object, Int]) */
3533 void VIRTUAL_separate_compiler__SeparateCompiler__compile_color_consts(val
* self
, val
* p0
) {
3534 separate_compiler__SeparateCompiler__compile_color_consts(self
, p0
); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:Object(SeparateCompiler)>*/
3537 /* method separate_compiler#SeparateCompiler#compile_color_const for (self: SeparateCompiler, SeparateCompilerVisitor, Object, Int) */
3538 void separate_compiler__SeparateCompiler__compile_color_const(val
* self
, val
* p0
, val
* p1
, long p2
) {
3539 val
* var_v
/* var v: SeparateCompilerVisitor */;
3540 val
* var_m
/* var m: Object */;
3541 long var_color
/* var color: Int */;
3542 val
* var
/* : HashSet[Object] */;
3543 val
* var2
/* : HashSet[Object] */;
3544 short int var3
/* : Bool */;
3545 short int var4
/* : Bool */;
3548 val
* var5
/* : ModelBuilder */;
3549 val
* var7
/* : ModelBuilder */;
3550 val
* var8
/* : ToolContext */;
3551 val
* var10
/* : ToolContext */;
3552 val
* var11
/* : OptionBool */;
3553 val
* var13
/* : OptionBool */;
3554 val
* var14
/* : nullable Object */;
3555 val
* var16
/* : nullable Object */;
3556 short int var17
/* : Bool */;
3557 val
* var18
/* : String */;
3558 static val
* varonce
;
3559 val
* var19
/* : String */;
3560 char* var20
/* : NativeString */;
3561 long var21
/* : Int */;
3562 val
* var22
/* : FlatString */;
3563 val
* var23
/* : String */;
3564 static val
* varonce24
;
3565 val
* var25
/* : String */;
3566 char* var26
/* : NativeString */;
3567 long var27
/* : Int */;
3568 val
* var28
/* : FlatString */;
3569 val
* var29
/* : Array[Object] */;
3570 long var30
/* : Int */;
3571 val
* var31
/* : NativeArray[Object] */;
3572 val
* var32
/* : Object */;
3573 val
* var33
/* : String */;
3574 val
* var34
/* : String */;
3575 static val
* varonce35
;
3576 val
* var36
/* : String */;
3577 char* var37
/* : NativeString */;
3578 long var38
/* : Int */;
3579 val
* var39
/* : FlatString */;
3580 val
* var40
/* : String */;
3581 static val
* varonce41
;
3582 val
* var42
/* : String */;
3583 char* var43
/* : NativeString */;
3584 long var44
/* : Int */;
3585 val
* var45
/* : FlatString */;
3586 val
* var46
/* : Array[Object] */;
3587 long var47
/* : Int */;
3588 val
* var48
/* : NativeArray[Object] */;
3589 val
* var49
/* : String */;
3590 static val
* varonce50
;
3591 val
* var51
/* : String */;
3592 char* var52
/* : NativeString */;
3593 long var53
/* : Int */;
3594 val
* var54
/* : FlatString */;
3595 val
* var55
/* : String */;
3596 static val
* varonce56
;
3597 val
* var57
/* : String */;
3598 char* var58
/* : NativeString */;
3599 long var59
/* : Int */;
3600 val
* var60
/* : FlatString */;
3601 static val
* varonce61
;
3602 val
* var62
/* : String */;
3603 char* var63
/* : NativeString */;
3604 long var64
/* : Int */;
3605 val
* var65
/* : FlatString */;
3606 val
* var66
/* : Array[Object] */;
3607 long var67
/* : Int */;
3608 val
* var68
/* : NativeArray[Object] */;
3609 val
* var69
/* : Object */;
3610 val
* var70
/* : String */;
3611 short int var71
/* : Bool */;
3614 val
* var74
/* : ModelBuilder */;
3615 val
* var76
/* : ModelBuilder */;
3616 val
* var77
/* : ToolContext */;
3617 val
* var79
/* : ToolContext */;
3618 val
* var80
/* : OptionBool */;
3619 val
* var82
/* : OptionBool */;
3620 val
* var83
/* : nullable Object */;
3621 val
* var85
/* : nullable Object */;
3622 short int var86
/* : Bool */;
3623 val
* var87
/* : String */;
3624 static val
* varonce88
;
3625 val
* var89
/* : String */;
3626 char* var90
/* : NativeString */;
3627 long var91
/* : Int */;
3628 val
* var92
/* : FlatString */;
3629 val
* var93
/* : String */;
3630 static val
* varonce94
;
3631 val
* var95
/* : String */;
3632 char* var96
/* : NativeString */;
3633 long var97
/* : Int */;
3634 val
* var98
/* : FlatString */;
3635 val
* var99
/* : Array[Object] */;
3636 long var100
/* : Int */;
3637 val
* var101
/* : NativeArray[Object] */;
3638 val
* var102
/* : Object */;
3639 val
* var103
/* : String */;
3640 val
* var104
/* : String */;
3641 static val
* varonce105
;
3642 val
* var106
/* : String */;
3643 char* var107
/* : NativeString */;
3644 long var108
/* : Int */;
3645 val
* var109
/* : FlatString */;
3646 val
* var110
/* : String */;
3647 static val
* varonce111
;
3648 val
* var112
/* : String */;
3649 char* var113
/* : NativeString */;
3650 long var114
/* : Int */;
3651 val
* var115
/* : FlatString */;
3652 val
* var116
/* : Array[Object] */;
3653 long var117
/* : Int */;
3654 val
* var118
/* : NativeArray[Object] */;
3655 val
* var119
/* : String */;
3656 static val
* varonce120
;
3657 val
* var121
/* : String */;
3658 char* var122
/* : NativeString */;
3659 long var123
/* : Int */;
3660 val
* var124
/* : FlatString */;
3661 val
* var125
/* : String */;
3662 static val
* varonce126
;
3663 val
* var127
/* : String */;
3664 char* var128
/* : NativeString */;
3665 long var129
/* : Int */;
3666 val
* var130
/* : FlatString */;
3667 static val
* varonce131
;
3668 val
* var132
/* : String */;
3669 char* var133
/* : NativeString */;
3670 long var134
/* : Int */;
3671 val
* var135
/* : FlatString */;
3672 val
* var136
/* : Array[Object] */;
3673 long var137
/* : Int */;
3674 val
* var138
/* : NativeArray[Object] */;
3675 val
* var139
/* : Object */;
3676 val
* var140
/* : String */;
3677 short int var141
/* : Bool */;
3680 val
* var144
/* : ModelBuilder */;
3681 val
* var146
/* : ModelBuilder */;
3682 val
* var147
/* : ToolContext */;
3683 val
* var149
/* : ToolContext */;
3684 val
* var150
/* : OptionBool */;
3685 val
* var152
/* : OptionBool */;
3686 val
* var153
/* : nullable Object */;
3687 val
* var155
/* : nullable Object */;
3688 short int var156
/* : Bool */;
3689 val
* var157
/* : String */;
3690 static val
* varonce158
;
3691 val
* var159
/* : String */;
3692 char* var160
/* : NativeString */;
3693 long var161
/* : Int */;
3694 val
* var162
/* : FlatString */;
3695 val
* var163
/* : String */;
3696 static val
* varonce164
;
3697 val
* var165
/* : String */;
3698 char* var166
/* : NativeString */;
3699 long var167
/* : Int */;
3700 val
* var168
/* : FlatString */;
3701 val
* var169
/* : Array[Object] */;
3702 long var170
/* : Int */;
3703 val
* var171
/* : NativeArray[Object] */;
3704 val
* var172
/* : Object */;
3705 val
* var173
/* : String */;
3706 val
* var174
/* : String */;
3707 static val
* varonce175
;
3708 val
* var176
/* : String */;
3709 char* var177
/* : NativeString */;
3710 long var178
/* : Int */;
3711 val
* var179
/* : FlatString */;
3712 val
* var180
/* : String */;
3713 static val
* varonce181
;
3714 val
* var182
/* : String */;
3715 char* var183
/* : NativeString */;
3716 long var184
/* : Int */;
3717 val
* var185
/* : FlatString */;
3718 val
* var186
/* : Array[Object] */;
3719 long var187
/* : Int */;
3720 val
* var188
/* : NativeArray[Object] */;
3721 val
* var189
/* : String */;
3722 static val
* varonce190
;
3723 val
* var191
/* : String */;
3724 char* var192
/* : NativeString */;
3725 long var193
/* : Int */;
3726 val
* var194
/* : FlatString */;
3727 val
* var195
/* : String */;
3728 static val
* varonce196
;
3729 val
* var197
/* : String */;
3730 char* var198
/* : NativeString */;
3731 long var199
/* : Int */;
3732 val
* var200
/* : FlatString */;
3733 static val
* varonce201
;
3734 val
* var202
/* : String */;
3735 char* var203
/* : NativeString */;
3736 long var204
/* : Int */;
3737 val
* var205
/* : FlatString */;
3738 val
* var206
/* : Array[Object] */;
3739 long var207
/* : Int */;
3740 val
* var208
/* : NativeArray[Object] */;
3741 val
* var209
/* : Object */;
3742 val
* var210
/* : String */;
3743 val
* var211
/* : HashSet[Object] */;
3744 val
* var213
/* : HashSet[Object] */;
3749 { /* Inline separate_compiler#SeparateCompiler#color_consts_done (self) on <self:SeparateCompiler> */
3750 var2
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___color_consts_done
].val
; /* _color_consts_done on <self:SeparateCompiler> */
3751 if (unlikely(var2
== NULL
)) {
3752 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done");
3753 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 266);
3761 var3
= hash_collection__HashSet__has(var
, var_m
);
3767 /* <var_m:Object> isa MProperty */
3768 cltype
= type_model__MProperty
.color
;
3769 idtype
= type_model__MProperty
.id
;
3770 if(cltype
>= var_m
->type
->table_size
) {
3773 var4
= var_m
->type
->type_table
[cltype
] == idtype
;
3777 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
3778 var7
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
3779 if (unlikely(var7
== NULL
)) {
3780 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3781 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
3789 { /* Inline modelbuilder#ModelBuilder#toolcontext (var5) on <var5:ModelBuilder> */
3790 var10
= var5
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var5:ModelBuilder> */
3791 if (unlikely(var10
== NULL
)) {
3792 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3793 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
3801 { /* Inline separate_compiler#ToolContext#opt_inline_coloring_numbers (var8) on <var8:ToolContext> */
3802 var13
= var8
->attrs
[COLOR_separate_compiler__ToolContext___opt_inline_coloring_numbers
].val
; /* _opt_inline_coloring_numbers on <var8:ToolContext> */
3803 if (unlikely(var13
== NULL
)) {
3804 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
3805 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 32);
3809 RET_LABEL12
:(void)0;
3813 { /* Inline opts#Option#value (var11) on <var11:OptionBool> */
3814 var16
= var11
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var11:OptionBool> */
3816 RET_LABEL15
:(void)0;
3819 var17
= ((struct instance_kernel__Bool
*)var14
)->value
; /* autounbox from nullable Object to Bool */;
3822 var18
= separate_compiler__MProperty__const_color(var_m
);
3829 var22
= string__NativeString__to_s_with_length(var20
, var21
);
3834 var23
= separate_compiler__MProperty__const_color(var_m
);
3841 var28
= string__NativeString__to_s_with_length(var26
, var27
);
3845 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
3846 { /* var29 = array_instance Array[Object] */
3848 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
3849 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var19
;
3850 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var23
;
3851 ((struct instance_array__NativeArray
*)var31
)->values
[2] = (val
*) var25
;
3852 var32
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
3853 ((struct instance_array__NativeArray
*)var31
)->values
[3] = (val
*) var32
;
3855 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
3859 var33
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
3862 abstract_compiler__AbstractCompiler__provide_declaration(self
, var18
, var33
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
3866 var34
= separate_compiler__MProperty__const_color(var_m
);
3871 var37
= "extern const int ";
3873 var39
= string__NativeString__to_s_with_length(var37
, var38
);
3878 var40
= separate_compiler__MProperty__const_color(var_m
);
3885 var45
= string__NativeString__to_s_with_length(var43
, var44
);
3889 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
3890 { /* var46 = array_instance Array[Object] */
3892 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
3893 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var36
;
3894 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var40
;
3895 ((struct instance_array__NativeArray
*)var48
)->values
[2] = (val
*) var42
;
3897 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
3901 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
3904 abstract_compiler__AbstractCompiler__provide_declaration(self
, var34
, var49
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
3909 var52
= "const int ";
3911 var54
= string__NativeString__to_s_with_length(var52
, var53
);
3916 var55
= separate_compiler__MProperty__const_color(var_m
);
3923 var60
= string__NativeString__to_s_with_length(var58
, var59
);
3932 var65
= string__NativeString__to_s_with_length(var63
, var64
);
3936 var66
= NEW_array__Array(&type_array__Arraykernel__Object
);
3937 { /* var66 = array_instance Array[Object] */
3939 var68
= NEW_array__NativeArray(var67
, &type_array__NativeArraykernel__Object
);
3940 ((struct instance_array__NativeArray
*)var68
)->values
[0] = (val
*) var51
;
3941 ((struct instance_array__NativeArray
*)var68
)->values
[1] = (val
*) var55
;
3942 ((struct instance_array__NativeArray
*)var68
)->values
[2] = (val
*) var57
;
3943 var69
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
3944 ((struct instance_array__NativeArray
*)var68
)->values
[3] = (val
*) var69
;
3945 ((struct instance_array__NativeArray
*)var68
)->values
[4] = (val
*) var62
;
3947 ((void (*)(val
*, val
*, long))(var66
->class->vft
[COLOR_array__Array__with_native
]))(var66
, var68
, var67
) /* with_native on <var66:Array[Object]>*/;
3951 var70
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_string__Object__to_s
]))(var66
) /* to_s on <var66:Array[Object]>*/;
3954 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var70
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
3958 /* <var_m:Object> isa MPropDef */
3959 cltype72
= type_model__MPropDef
.color
;
3960 idtype73
= type_model__MPropDef
.id
;
3961 if(cltype72
>= var_m
->type
->table_size
) {
3964 var71
= var_m
->type
->type_table
[cltype72
] == idtype73
;
3968 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
3969 var76
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
3970 if (unlikely(var76
== NULL
)) {
3971 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3972 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
3976 RET_LABEL75
:(void)0;
3980 { /* Inline modelbuilder#ModelBuilder#toolcontext (var74) on <var74:ModelBuilder> */
3981 var79
= var74
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var74:ModelBuilder> */
3982 if (unlikely(var79
== NULL
)) {
3983 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3984 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
3988 RET_LABEL78
:(void)0;
3992 { /* Inline separate_compiler#ToolContext#opt_inline_coloring_numbers (var77) on <var77:ToolContext> */
3993 var82
= var77
->attrs
[COLOR_separate_compiler__ToolContext___opt_inline_coloring_numbers
].val
; /* _opt_inline_coloring_numbers on <var77:ToolContext> */
3994 if (unlikely(var82
== NULL
)) {
3995 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
3996 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 32);
4000 RET_LABEL81
:(void)0;
4004 { /* Inline opts#Option#value (var80) on <var80:OptionBool> */
4005 var85
= var80
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var80:OptionBool> */
4007 RET_LABEL84
:(void)0;
4010 var86
= ((struct instance_kernel__Bool
*)var83
)->value
; /* autounbox from nullable Object to Bool */;
4013 var87
= separate_compiler__MPropDef__const_color(var_m
);
4020 var92
= string__NativeString__to_s_with_length(var90
, var91
);
4025 var93
= separate_compiler__MPropDef__const_color(var_m
);
4032 var98
= string__NativeString__to_s_with_length(var96
, var97
);
4036 var99
= NEW_array__Array(&type_array__Arraykernel__Object
);
4037 { /* var99 = array_instance Array[Object] */
4039 var101
= NEW_array__NativeArray(var100
, &type_array__NativeArraykernel__Object
);
4040 ((struct instance_array__NativeArray
*)var101
)->values
[0] = (val
*) var89
;
4041 ((struct instance_array__NativeArray
*)var101
)->values
[1] = (val
*) var93
;
4042 ((struct instance_array__NativeArray
*)var101
)->values
[2] = (val
*) var95
;
4043 var102
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
4044 ((struct instance_array__NativeArray
*)var101
)->values
[3] = (val
*) var102
;
4046 ((void (*)(val
*, val
*, long))(var99
->class->vft
[COLOR_array__Array__with_native
]))(var99
, var101
, var100
) /* with_native on <var99:Array[Object]>*/;
4050 var103
= ((val
* (*)(val
*))(var99
->class->vft
[COLOR_string__Object__to_s
]))(var99
) /* to_s on <var99:Array[Object]>*/;
4053 abstract_compiler__AbstractCompiler__provide_declaration(self
, var87
, var103
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
4057 var104
= separate_compiler__MPropDef__const_color(var_m
);
4060 var106
= varonce105
;
4062 var107
= "extern const int ";
4064 var109
= string__NativeString__to_s_with_length(var107
, var108
);
4066 varonce105
= var106
;
4069 var110
= separate_compiler__MPropDef__const_color(var_m
);
4072 var112
= varonce111
;
4076 var115
= string__NativeString__to_s_with_length(var113
, var114
);
4078 varonce111
= var112
;
4080 var116
= NEW_array__Array(&type_array__Arraykernel__Object
);
4081 { /* var116 = array_instance Array[Object] */
4083 var118
= NEW_array__NativeArray(var117
, &type_array__NativeArraykernel__Object
);
4084 ((struct instance_array__NativeArray
*)var118
)->values
[0] = (val
*) var106
;
4085 ((struct instance_array__NativeArray
*)var118
)->values
[1] = (val
*) var110
;
4086 ((struct instance_array__NativeArray
*)var118
)->values
[2] = (val
*) var112
;
4088 ((void (*)(val
*, val
*, long))(var116
->class->vft
[COLOR_array__Array__with_native
]))(var116
, var118
, var117
) /* with_native on <var116:Array[Object]>*/;
4092 var119
= ((val
* (*)(val
*))(var116
->class->vft
[COLOR_string__Object__to_s
]))(var116
) /* to_s on <var116:Array[Object]>*/;
4095 abstract_compiler__AbstractCompiler__provide_declaration(self
, var104
, var119
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
4098 var121
= varonce120
;
4100 var122
= "const int ";
4102 var124
= string__NativeString__to_s_with_length(var122
, var123
);
4104 varonce120
= var121
;
4107 var125
= separate_compiler__MPropDef__const_color(var_m
);
4110 var127
= varonce126
;
4114 var130
= string__NativeString__to_s_with_length(var128
, var129
);
4116 varonce126
= var127
;
4119 var132
= varonce131
;
4123 var135
= string__NativeString__to_s_with_length(var133
, var134
);
4125 varonce131
= var132
;
4127 var136
= NEW_array__Array(&type_array__Arraykernel__Object
);
4128 { /* var136 = array_instance Array[Object] */
4130 var138
= NEW_array__NativeArray(var137
, &type_array__NativeArraykernel__Object
);
4131 ((struct instance_array__NativeArray
*)var138
)->values
[0] = (val
*) var121
;
4132 ((struct instance_array__NativeArray
*)var138
)->values
[1] = (val
*) var125
;
4133 ((struct instance_array__NativeArray
*)var138
)->values
[2] = (val
*) var127
;
4134 var139
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
4135 ((struct instance_array__NativeArray
*)var138
)->values
[3] = (val
*) var139
;
4136 ((struct instance_array__NativeArray
*)var138
)->values
[4] = (val
*) var132
;
4138 ((void (*)(val
*, val
*, long))(var136
->class->vft
[COLOR_array__Array__with_native
]))(var136
, var138
, var137
) /* with_native on <var136:Array[Object]>*/;
4142 var140
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_string__Object__to_s
]))(var136
) /* to_s on <var136:Array[Object]>*/;
4145 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var140
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4149 /* <var_m:Object> isa MType */
4150 cltype142
= type_model__MType
.color
;
4151 idtype143
= type_model__MType
.id
;
4152 if(cltype142
>= var_m
->type
->table_size
) {
4155 var141
= var_m
->type
->type_table
[cltype142
] == idtype143
;
4159 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
4160 var146
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
4161 if (unlikely(var146
== NULL
)) {
4162 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4163 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
4167 RET_LABEL145
:(void)0;
4171 { /* Inline modelbuilder#ModelBuilder#toolcontext (var144) on <var144:ModelBuilder> */
4172 var149
= var144
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var144:ModelBuilder> */
4173 if (unlikely(var149
== NULL
)) {
4174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4175 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
4179 RET_LABEL148
:(void)0;
4183 { /* Inline separate_compiler#ToolContext#opt_inline_coloring_numbers (var147) on <var147:ToolContext> */
4184 var152
= var147
->attrs
[COLOR_separate_compiler__ToolContext___opt_inline_coloring_numbers
].val
; /* _opt_inline_coloring_numbers on <var147:ToolContext> */
4185 if (unlikely(var152
== NULL
)) {
4186 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
4187 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 32);
4191 RET_LABEL151
:(void)0;
4195 { /* Inline opts#Option#value (var150) on <var150:OptionBool> */
4196 var155
= var150
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var150:OptionBool> */
4198 RET_LABEL154
:(void)0;
4201 var156
= ((struct instance_kernel__Bool
*)var153
)->value
; /* autounbox from nullable Object to Bool */;
4204 var157
= separate_compiler__MType__const_color(var_m
);
4207 var159
= varonce158
;
4209 var160
= "#define ";
4211 var162
= string__NativeString__to_s_with_length(var160
, var161
);
4213 varonce158
= var159
;
4216 var163
= separate_compiler__MType__const_color(var_m
);
4219 var165
= varonce164
;
4223 var168
= string__NativeString__to_s_with_length(var166
, var167
);
4225 varonce164
= var165
;
4227 var169
= NEW_array__Array(&type_array__Arraykernel__Object
);
4228 { /* var169 = array_instance Array[Object] */
4230 var171
= NEW_array__NativeArray(var170
, &type_array__NativeArraykernel__Object
);
4231 ((struct instance_array__NativeArray
*)var171
)->values
[0] = (val
*) var159
;
4232 ((struct instance_array__NativeArray
*)var171
)->values
[1] = (val
*) var163
;
4233 ((struct instance_array__NativeArray
*)var171
)->values
[2] = (val
*) var165
;
4234 var172
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
4235 ((struct instance_array__NativeArray
*)var171
)->values
[3] = (val
*) var172
;
4237 ((void (*)(val
*, val
*, long))(var169
->class->vft
[COLOR_array__Array__with_native
]))(var169
, var171
, var170
) /* with_native on <var169:Array[Object]>*/;
4241 var173
= ((val
* (*)(val
*))(var169
->class->vft
[COLOR_string__Object__to_s
]))(var169
) /* to_s on <var169:Array[Object]>*/;
4244 abstract_compiler__AbstractCompiler__provide_declaration(self
, var157
, var173
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
4248 var174
= separate_compiler__MType__const_color(var_m
);
4251 var176
= varonce175
;
4253 var177
= "extern const int ";
4255 var179
= string__NativeString__to_s_with_length(var177
, var178
);
4257 varonce175
= var176
;
4260 var180
= separate_compiler__MType__const_color(var_m
);
4263 var182
= varonce181
;
4267 var185
= string__NativeString__to_s_with_length(var183
, var184
);
4269 varonce181
= var182
;
4271 var186
= NEW_array__Array(&type_array__Arraykernel__Object
);
4272 { /* var186 = array_instance Array[Object] */
4274 var188
= NEW_array__NativeArray(var187
, &type_array__NativeArraykernel__Object
);
4275 ((struct instance_array__NativeArray
*)var188
)->values
[0] = (val
*) var176
;
4276 ((struct instance_array__NativeArray
*)var188
)->values
[1] = (val
*) var180
;
4277 ((struct instance_array__NativeArray
*)var188
)->values
[2] = (val
*) var182
;
4279 ((void (*)(val
*, val
*, long))(var186
->class->vft
[COLOR_array__Array__with_native
]))(var186
, var188
, var187
) /* with_native on <var186:Array[Object]>*/;
4283 var189
= ((val
* (*)(val
*))(var186
->class->vft
[COLOR_string__Object__to_s
]))(var186
) /* to_s on <var186:Array[Object]>*/;
4286 abstract_compiler__AbstractCompiler__provide_declaration(self
, var174
, var189
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
4289 var191
= varonce190
;
4291 var192
= "const int ";
4293 var194
= string__NativeString__to_s_with_length(var192
, var193
);
4295 varonce190
= var191
;
4298 var195
= separate_compiler__MType__const_color(var_m
);
4301 var197
= varonce196
;
4305 var200
= string__NativeString__to_s_with_length(var198
, var199
);
4307 varonce196
= var197
;
4310 var202
= varonce201
;
4314 var205
= string__NativeString__to_s_with_length(var203
, var204
);
4316 varonce201
= var202
;
4318 var206
= NEW_array__Array(&type_array__Arraykernel__Object
);
4319 { /* var206 = array_instance Array[Object] */
4321 var208
= NEW_array__NativeArray(var207
, &type_array__NativeArraykernel__Object
);
4322 ((struct instance_array__NativeArray
*)var208
)->values
[0] = (val
*) var191
;
4323 ((struct instance_array__NativeArray
*)var208
)->values
[1] = (val
*) var195
;
4324 ((struct instance_array__NativeArray
*)var208
)->values
[2] = (val
*) var197
;
4325 var209
= BOX_kernel__Int(var_color
); /* autobox from Int to Object */
4326 ((struct instance_array__NativeArray
*)var208
)->values
[3] = (val
*) var209
;
4327 ((struct instance_array__NativeArray
*)var208
)->values
[4] = (val
*) var202
;
4329 ((void (*)(val
*, val
*, long))(var206
->class->vft
[COLOR_array__Array__with_native
]))(var206
, var208
, var207
) /* with_native on <var206:Array[Object]>*/;
4333 var210
= ((val
* (*)(val
*))(var206
->class->vft
[COLOR_string__Object__to_s
]))(var206
) /* to_s on <var206:Array[Object]>*/;
4336 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var210
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4344 { /* Inline separate_compiler#SeparateCompiler#color_consts_done (self) on <self:SeparateCompiler> */
4345 var213
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___color_consts_done
].val
; /* _color_consts_done on <self:SeparateCompiler> */
4346 if (unlikely(var213
== NULL
)) {
4347 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done");
4348 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 266);
4352 RET_LABEL212
:(void)0;
4356 hash_collection__HashSet__add(var211
, var_m
); /* Direct call hash_collection#HashSet#add on <var211:HashSet[Object]>*/
4360 /* method separate_compiler#SeparateCompiler#compile_color_const for (self: Object, SeparateCompilerVisitor, Object, Int) */
4361 void VIRTUAL_separate_compiler__SeparateCompiler__compile_color_const(val
* self
, val
* p0
, val
* p1
, long p2
) {
4362 separate_compiler__SeparateCompiler__compile_color_const(self
, p0
, p1
, p2
); /* Direct call separate_compiler#SeparateCompiler#compile_color_const on <self:Object(SeparateCompiler)>*/
4365 /* method separate_compiler#SeparateCompiler#color_consts_done for (self: SeparateCompiler): HashSet[Object] */
4366 val
* separate_compiler__SeparateCompiler__color_consts_done(val
* self
) {
4367 val
* var
/* : HashSet[Object] */;
4368 val
* var1
/* : HashSet[Object] */;
4369 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___color_consts_done
].val
; /* _color_consts_done on <self:SeparateCompiler> */
4370 if (unlikely(var1
== NULL
)) {
4371 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done");
4372 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 266);
4379 /* method separate_compiler#SeparateCompiler#color_consts_done for (self: Object): HashSet[Object] */
4380 val
* VIRTUAL_separate_compiler__SeparateCompiler__color_consts_done(val
* self
) {
4381 val
* var
/* : HashSet[Object] */;
4382 val
* var1
/* : HashSet[Object] */;
4383 val
* var3
/* : HashSet[Object] */;
4384 { /* Inline separate_compiler#SeparateCompiler#color_consts_done (self) on <self:Object(SeparateCompiler)> */
4385 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___color_consts_done
].val
; /* _color_consts_done on <self:Object(SeparateCompiler)> */
4386 if (unlikely(var3
== NULL
)) {
4387 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done");
4388 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 266);
4398 /* method separate_compiler#SeparateCompiler#do_property_coloring for (self: SeparateCompiler) */
4399 void separate_compiler__SeparateCompiler__do_property_coloring(val
* self
) {
4400 val
* var
/* : nullable RapidTypeAnalysis */;
4401 val
* var2
/* : nullable RapidTypeAnalysis */;
4402 val
* var_rta
/* var rta: nullable RapidTypeAnalysis */;
4403 val
* var3
/* : MModule */;
4404 val
* var5
/* : MModule */;
4405 val
* var6
/* : POSet[MClass] */;
4406 val
* var_poset
/* var poset: POSet[MClass] */;
4407 val
* var7
/* : HashSet[MClass] */;
4408 val
* var_mclasses
/* var mclasses: HashSet[MClass] */;
4409 val
* var8
/* : POSetColorer[MClass] */;
4410 val
* var_colorer
/* var colorer: POSetColorer[MClass] */;
4411 val
* var9
/* : Array[MMethod] */;
4412 val
* var_dead_methods
/* var dead_methods: Array[MMethod] */;
4413 val
* var10
/* : HashMap[MClass, Set[PropertyLayoutElement]] */;
4414 val
* var_mmethods
/* var mmethods: HashMap[MClass, Set[PropertyLayoutElement]] */;
4415 val
* var11
/* : HashMap[MClass, Set[MAttribute]] */;
4416 val
* var_mattributes
/* var mattributes: HashMap[MClass, Set[MAttribute]] */;
4417 val
* var_
/* var : HashSet[MClass] */;
4418 val
* var12
/* : Iterator[Object] */;
4419 val
* var_13
/* var : Iterator[MClass] */;
4420 short int var14
/* : Bool */;
4421 val
* var15
/* : nullable Object */;
4422 val
* var_mclass
/* var mclass: MClass */;
4423 val
* var16
/* : HashSet[PropertyLayoutElement] */;
4424 val
* var17
/* : HashSet[MAttribute] */;
4425 val
* var18
/* : MModule */;
4426 val
* var20
/* : MModule */;
4427 val
* var21
/* : Set[MProperty] */;
4428 val
* var_22
/* var : Set[MProperty] */;
4429 val
* var23
/* : Iterator[nullable Object] */;
4430 val
* var_24
/* var : Iterator[MProperty] */;
4431 short int var25
/* : Bool */;
4432 val
* var26
/* : nullable Object */;
4433 val
* var_mprop
/* var mprop: MProperty */;
4434 short int var27
/* : Bool */;
4437 short int var28
/* : Bool */;
4438 short int var29
/* : Bool */;
4439 val
* var30
/* : ModelBuilder */;
4440 val
* var32
/* : ModelBuilder */;
4441 val
* var33
/* : ToolContext */;
4442 val
* var35
/* : ToolContext */;
4443 val
* var36
/* : OptionBool */;
4444 val
* var38
/* : OptionBool */;
4445 val
* var39
/* : nullable Object */;
4446 val
* var41
/* : nullable Object */;
4447 short int var42
/* : Bool */;
4448 short int var43
/* : Bool */;
4449 short int var_44
/* var : Bool */;
4450 val
* var45
/* : null */;
4451 short int var46
/* : Bool */;
4452 short int var47
/* : Bool */;
4453 val
* var_other
/* var other: nullable Object */;
4454 short int var49
/* : Bool */;
4455 short int var50
/* : Bool */;
4456 short int var51
/* : Bool */;
4457 short int var_52
/* var : Bool */;
4458 val
* var53
/* : HashSet[MMethod] */;
4459 val
* var55
/* : HashSet[MMethod] */;
4460 short int var56
/* : Bool */;
4461 short int var57
/* : Bool */;
4462 val
* var58
/* : nullable Object */;
4463 short int var59
/* : Bool */;
4466 val
* var62
/* : nullable Object */;
4467 val
* var67
/* : HashSet[MMethodDef] */;
4468 val
* var_all_super_calls
/* var all_super_calls: HashSet[MMethodDef] */;
4469 val
* var68
/* : MModule */;
4470 val
* var70
/* : MModule */;
4471 val
* var71
/* : POSetElement[MModule] */;
4472 val
* var73
/* : POSetElement[MModule] */;
4473 val
* var74
/* : Collection[Object] */;
4474 val
* var_75
/* var : Collection[MModule] */;
4475 val
* var76
/* : Iterator[nullable Object] */;
4476 val
* var_77
/* var : Iterator[MModule] */;
4477 short int var78
/* : Bool */;
4478 val
* var79
/* : nullable Object */;
4479 val
* var_mmodule
/* var mmodule: MModule */;
4480 val
* var80
/* : Array[MClassDef] */;
4481 val
* var82
/* : Array[MClassDef] */;
4482 val
* var_83
/* var : Array[MClassDef] */;
4483 val
* var84
/* : ArrayIterator[nullable Object] */;
4484 val
* var_85
/* var : ArrayIterator[MClassDef] */;
4485 short int var86
/* : Bool */;
4486 val
* var87
/* : nullable Object */;
4487 val
* var_mclassdef
/* var mclassdef: MClassDef */;
4488 val
* var88
/* : Array[MPropDef] */;
4489 val
* var90
/* : Array[MPropDef] */;
4490 val
* var_91
/* var : Array[MPropDef] */;
4491 val
* var92
/* : ArrayIterator[nullable Object] */;
4492 val
* var_93
/* var : ArrayIterator[MPropDef] */;
4493 short int var94
/* : Bool */;
4494 val
* var95
/* : nullable Object */;
4495 val
* var_mpropdef
/* var mpropdef: MPropDef */;
4496 short int var96
/* : Bool */;
4499 short int var99
/* : Bool */;
4500 short int var101
/* : Bool */;
4501 short int var103
/* : Bool */;
4502 val
* var110
/* : null */;
4503 short int var111
/* : Bool */;
4504 short int var112
/* : Bool */;
4505 short int var114
/* : Bool */;
4506 short int var115
/* : Bool */;
4507 short int var116
/* : Bool */;
4508 val
* var117
/* : HashSet[MMethodDef] */;
4509 val
* var119
/* : HashSet[MMethodDef] */;
4510 val
* var_super_calls
/* var super_calls: nullable Object */;
4511 val
* var_120
/* var : HashSet[MMethodDef] */;
4512 val
* var121
/* : Iterator[Object] */;
4513 val
* var_122
/* var : Iterator[MMethodDef] */;
4514 short int var123
/* : Bool */;
4515 val
* var124
/* : nullable Object */;
4516 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
4517 val
* var125
/* : MClassDef */;
4518 val
* var127
/* : MClassDef */;
4519 val
* var128
/* : MClass */;
4520 val
* var130
/* : MClass */;
4521 val
* var_mclass131
/* var mclass: MClass */;
4522 val
* var132
/* : nullable Object */;
4523 val
* var133
/* : MModule */;
4524 val
* var135
/* : MModule */;
4525 val
* var136
/* : POSetElement[MClass] */;
4526 val
* var137
/* : Collection[Object] */;
4527 val
* var_138
/* var : Collection[MClass] */;
4528 val
* var139
/* : Iterator[nullable Object] */;
4529 val
* var_140
/* var : Iterator[MClass] */;
4530 short int var141
/* : Bool */;
4531 val
* var142
/* : nullable Object */;
4532 val
* var_descendant
/* var descendant: MClass */;
4533 val
* var143
/* : nullable Object */;
4534 val
* var148
/* : POSetBucketsColorer[MClass, PropertyLayoutElement] */;
4535 val
* var149
/* : Map[Object, Set[Object]] */;
4536 val
* var_meth_colorer
/* var meth_colorer: POSetBucketsColorer[MClass, PropertyLayoutElement] */;
4537 val
* var150
/* : Map[Object, Int] */;
4538 val
* var152
/* : Map[MClass, Array[nullable MPropDef]] */;
4539 val
* var154
/* : Map[PropertyLayoutElement, Int] */;
4540 val
* var156
/* : Map[PropertyLayoutElement, Int] */;
4541 val
* var_157
/* var : Array[MMethod] */;
4542 val
* var158
/* : ArrayIterator[nullable Object] */;
4543 val
* var_159
/* var : ArrayIterator[MMethod] */;
4544 short int var160
/* : Bool */;
4545 val
* var161
/* : nullable Object */;
4546 val
* var_mproperty
/* var mproperty: MMethod */;
4547 val
* var162
/* : AbstractCompilerVisitor */;
4548 long var163
/* : Int */;
4549 long var164
/* : Int */;
4550 long var166
/* : Int */;
4551 val
* var_169
/* var : HashSet[MMethodDef] */;
4552 val
* var170
/* : Iterator[Object] */;
4553 val
* var_171
/* var : Iterator[MMethodDef] */;
4554 short int var172
/* : Bool */;
4555 val
* var173
/* : nullable Object */;
4556 val
* var_mpropdef174
/* var mpropdef: MMethodDef */;
4557 short int var175
/* : Bool */;
4558 val
* var177
/* : AbstractCompilerVisitor */;
4559 long var178
/* : Int */;
4560 long var179
/* : Int */;
4561 long var181
/* : Int */;
4562 val
* var184
/* : POSetBucketsColorer[MClass, MAttribute] */;
4563 val
* var185
/* : Map[Object, Set[Object]] */;
4564 val
* var_attr_colorer
/* var attr_colorer: POSetBucketsColorer[MClass, MAttribute] */;
4565 val
* var186
/* : Map[Object, Int] */;
4566 val
* var188
/* : Map[MClass, Array[nullable MPropDef]] */;
4567 val
* var190
/* : Map[MAttribute, Int] */;
4568 val
* var192
/* : Map[MAttribute, Int] */;
4570 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
4571 var2
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
4578 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
4579 var5
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
4580 if (unlikely(var5
== NULL
)) {
4581 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4582 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
4590 var6
= model__MModule__flatten_mclass_hierarchy(var3
);
4593 var7
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass
);
4595 hash_collection__HashSet__from(var7
, var_poset
); /* Direct call hash_collection#HashSet#from on <var7:HashSet[MClass]>*/
4597 var_mclasses
= var7
;
4598 var8
= NEW_coloring__POSetColorer(&type_coloring__POSetColorermodel__MClass
);
4600 ((void (*)(val
*))(var8
->class->vft
[COLOR_kernel__Object__init
]))(var8
) /* init on <var8:POSetColorer[MClass]>*/;
4604 coloring__POSetColorer__colorize(var_colorer
, var_poset
); /* Direct call coloring#POSetColorer#colorize on <var_colorer:POSetColorer[MClass]>*/
4606 var9
= NEW_array__Array(&type_array__Arraymodel__MMethod
);
4608 ((void (*)(val
*))(var9
->class->vft
[COLOR_kernel__Object__init
]))(var9
) /* init on <var9:Array[MMethod]>*/;
4610 var_dead_methods
= var9
;
4611 var10
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement
);
4613 ((void (*)(val
*))(var10
->class->vft
[COLOR_kernel__Object__init
]))(var10
) /* init on <var10:HashMap[MClass, Set[PropertyLayoutElement]]>*/;
4615 var_mmethods
= var10
;
4616 var11
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute
);
4618 ((void (*)(val
*))(var11
->class->vft
[COLOR_kernel__Object__init
]))(var11
) /* init on <var11:HashMap[MClass, Set[MAttribute]]>*/;
4620 var_mattributes
= var11
;
4621 var_
= var_mclasses
;
4623 var12
= hash_collection__HashSet__iterator(var_
);
4628 var14
= ((short int (*)(val
*))(var_13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_13
) /* is_ok on <var_13:Iterator[MClass]>*/;
4632 var15
= ((val
* (*)(val
*))(var_13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_13
) /* item on <var_13:Iterator[MClass]>*/;
4635 var16
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetseparate_compiler__PropertyLayoutElement
);
4637 ((void (*)(val
*))(var16
->class->vft
[COLOR_kernel__Object__init
]))(var16
) /* init on <var16:HashSet[PropertyLayoutElement]>*/;
4640 hash_collection__HashMap___91d_93d_61d(var_mmethods
, var_mclass
, var16
); /* Direct call hash_collection#HashMap#[]= on <var_mmethods:HashMap[MClass, Set[PropertyLayoutElement]]>*/
4642 var17
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MAttribute
);
4644 ((void (*)(val
*))(var17
->class->vft
[COLOR_kernel__Object__init
]))(var17
) /* init on <var17:HashSet[MAttribute]>*/;
4647 hash_collection__HashMap___91d_93d_61d(var_mattributes
, var_mclass
, var17
); /* Direct call hash_collection#HashMap#[]= on <var_mattributes:HashMap[MClass, Set[MAttribute]]>*/
4650 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
4651 var20
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
4652 if (unlikely(var20
== NULL
)) {
4653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4654 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
4658 RET_LABEL19
:(void)0;
4662 var21
= abstract_compiler__MModule__properties(var18
, var_mclass
);
4666 var23
= ((val
* (*)(val
*))(var_22
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_22
) /* iterator on <var_22:Set[MProperty]>*/;
4671 var25
= ((short int (*)(val
*))(var_24
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_24
) /* is_ok on <var_24:Iterator[MProperty]>*/;
4675 var26
= ((val
* (*)(val
*))(var_24
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_24
) /* item on <var_24:Iterator[MProperty]>*/;
4678 /* <var_mprop:MProperty> isa MMethod */
4679 cltype
= type_model__MMethod
.color
;
4680 idtype
= type_model__MMethod
.id
;
4681 if(cltype
>= var_mprop
->type
->table_size
) {
4684 var27
= var_mprop
->type
->type_table
[cltype
] == idtype
;
4688 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
4689 var32
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
4690 if (unlikely(var32
== NULL
)) {
4691 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4692 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
4696 RET_LABEL31
:(void)0;
4700 { /* Inline modelbuilder#ModelBuilder#toolcontext (var30) on <var30:ModelBuilder> */
4701 var35
= var30
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var30:ModelBuilder> */
4702 if (unlikely(var35
== NULL
)) {
4703 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4704 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
4708 RET_LABEL34
:(void)0;
4712 { /* Inline separate_compiler#ToolContext#opt_colo_dead_methods (var33) on <var33:ToolContext> */
4713 var38
= var33
->attrs
[COLOR_separate_compiler__ToolContext___opt_colo_dead_methods
].val
; /* _opt_colo_dead_methods on <var33:ToolContext> */
4714 if (unlikely(var38
== NULL
)) {
4715 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colo_dead_methods");
4716 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 42);
4720 RET_LABEL37
:(void)0;
4724 { /* Inline opts#Option#value (var36) on <var36:OptionBool> */
4725 var41
= var36
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var36:OptionBool> */
4727 RET_LABEL40
:(void)0;
4730 var42
= ((struct instance_kernel__Bool
*)var39
)->value
; /* autounbox from nullable Object to Bool */;
4735 if (var_rta
== NULL
) {
4736 var46
= 0; /* is null */
4738 var46
= 1; /* arg is null and recv is not */
4741 { /* Inline kernel#Object#!= (var_rta,var45) on <var_rta:nullable RapidTypeAnalysis> */
4744 var50
= ((short int (*)(val
*, val
*))(var_rta
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_rta
, var_other
) /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/;
4750 RET_LABEL48
:(void)0;
4761 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4762 var55
= var_rta
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4763 if (unlikely(var55
== NULL
)) {
4764 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
4765 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 75);
4769 RET_LABEL54
:(void)0;
4773 var56
= hash_collection__HashSet__has(var53
, var_mprop
);
4782 array__Array__add(var_dead_methods
, var_mprop
); /* Direct call array#Array#add on <var_dead_methods:Array[MMethod]>*/
4788 var58
= hash_collection__HashMap___91d_93d(var_mmethods
, var_mclass
);
4791 ((void (*)(val
*, val
*))(var58
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var58
, var_mprop
) /* add on <var58:nullable Object(Set[PropertyLayoutElement])>*/;
4794 /* <var_mprop:MProperty> isa MAttribute */
4795 cltype60
= type_model__MAttribute
.color
;
4796 idtype61
= type_model__MAttribute
.id
;
4797 if(cltype60
>= var_mprop
->type
->table_size
) {
4800 var59
= var_mprop
->type
->type_table
[cltype60
] == idtype61
;
4804 var62
= hash_collection__HashMap___91d_93d(var_mattributes
, var_mclass
);
4807 ((void (*)(val
*, val
*))(var62
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var62
, var_mprop
) /* add on <var62:nullable Object(Set[MAttribute])>*/;
4812 BREAK_label
: (void)0;
4814 ((void (*)(val
*))(var_24
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_24
) /* next on <var_24:Iterator[MProperty]>*/;
4820 BREAK_label63
: (void)0;
4822 { /* Inline abstract_collection#Iterator#finish (var_24) on <var_24:Iterator[MProperty]> */
4823 RET_LABEL64
:(void)0;
4827 ((void (*)(val
*))(var_13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_13
) /* next on <var_13:Iterator[MClass]>*/;
4833 BREAK_label65
: (void)0;
4835 { /* Inline abstract_collection#Iterator#finish (var_13) on <var_13:Iterator[MClass]> */
4836 RET_LABEL66
:(void)0;
4839 var67
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MMethodDef
);
4841 ((void (*)(val
*))(var67
->class->vft
[COLOR_kernel__Object__init
]))(var67
) /* init on <var67:HashSet[MMethodDef]>*/;
4843 var_all_super_calls
= var67
;
4845 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
4846 var70
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
4847 if (unlikely(var70
== NULL
)) {
4848 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4849 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
4853 RET_LABEL69
:(void)0;
4857 { /* Inline mmodule#MModule#in_importation (var68) on <var68:MModule> */
4858 var73
= var68
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var68:MModule> */
4859 if (unlikely(var73
== NULL
)) {
4860 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
4861 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
4865 RET_LABEL72
:(void)0;
4869 var74
= poset__POSetElement__greaters(var71
);
4873 var76
= ((val
* (*)(val
*))(var_75
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_75
) /* iterator on <var_75:Collection[MModule]>*/;
4878 var78
= ((short int (*)(val
*))(var_77
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_77
) /* is_ok on <var_77:Iterator[MModule]>*/;
4882 var79
= ((val
* (*)(val
*))(var_77
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_77
) /* item on <var_77:Iterator[MModule]>*/;
4884 var_mmodule
= var79
;
4886 { /* Inline model#MModule#mclassdefs (var_mmodule) on <var_mmodule:MModule> */
4887 var82
= var_mmodule
->attrs
[COLOR_model__MModule___mclassdefs
].val
; /* _mclassdefs on <var_mmodule:MModule> */
4888 if (unlikely(var82
== NULL
)) {
4889 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
4890 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 139);
4894 RET_LABEL81
:(void)0;
4899 var84
= array__AbstractArrayRead__iterator(var_83
);
4904 var86
= array__ArrayIterator__is_ok(var_85
);
4908 var87
= array__ArrayIterator__item(var_85
);
4910 var_mclassdef
= var87
;
4912 { /* Inline model#MClassDef#mpropdefs (var_mclassdef) on <var_mclassdef:MClassDef> */
4913 var90
= var_mclassdef
->attrs
[COLOR_model__MClassDef___mpropdefs
].val
; /* _mpropdefs on <var_mclassdef:MClassDef> */
4914 if (unlikely(var90
== NULL
)) {
4915 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
4916 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 591);
4920 RET_LABEL89
:(void)0;
4925 var92
= array__AbstractArrayRead__iterator(var_91
);
4930 var94
= array__ArrayIterator__is_ok(var_93
);
4934 var95
= array__ArrayIterator__item(var_93
);
4936 var_mpropdef
= var95
;
4937 /* <var_mpropdef:MPropDef> isa MMethodDef */
4938 cltype97
= type_model__MMethodDef
.color
;
4939 idtype98
= type_model__MMethodDef
.id
;
4940 if(cltype97
>= var_mpropdef
->type
->table_size
) {
4943 var96
= var_mpropdef
->type
->type_table
[cltype97
] == idtype98
;
4947 goto BREAK_label100
;
4951 { /* Inline modelize_property#MPropDef#has_supercall (var_mpropdef) on <var_mpropdef:MPropDef(MMethodDef)> */
4952 var103
= var_mpropdef
->attrs
[COLOR_modelize_property__MPropDef___has_supercall
].s
; /* _has_supercall on <var_mpropdef:MPropDef(MMethodDef)> */
4954 RET_LABEL102
:(void)0;
4959 hash_collection__HashSet__add(var_all_super_calls
, var_mpropdef
); /* Direct call hash_collection#HashSet#add on <var_all_super_calls:HashSet[MMethodDef]>*/
4963 BREAK_label100
: (void)0;
4965 array__ArrayIterator__next(var_93
); /* Direct call array#ArrayIterator#next on <var_93:ArrayIterator[MPropDef]>*/
4968 goto BREAK_label104
;
4971 BREAK_label104
: (void)0;
4973 { /* Inline abstract_collection#Iterator#finish (var_93) on <var_93:ArrayIterator[MPropDef]> */
4974 RET_LABEL105
:(void)0;
4978 array__ArrayIterator__next(var_85
); /* Direct call array#ArrayIterator#next on <var_85:ArrayIterator[MClassDef]>*/
4981 goto BREAK_label106
;
4984 BREAK_label106
: (void)0;
4986 { /* Inline abstract_collection#Iterator#finish (var_85) on <var_85:ArrayIterator[MClassDef]> */
4987 RET_LABEL107
:(void)0;
4991 ((void (*)(val
*))(var_77
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_77
) /* next on <var_77:Iterator[MModule]>*/;
4994 goto BREAK_label108
;
4997 BREAK_label108
: (void)0;
4999 { /* Inline abstract_collection#Iterator#finish (var_77) on <var_77:Iterator[MModule]> */
5000 RET_LABEL109
:(void)0;
5004 if (var_rta
== NULL
) {
5005 var111
= 0; /* is null */
5007 var111
= 1; /* arg is null and recv is not */
5010 { /* Inline kernel#Object#!= (var_rta,var110) on <var_rta:nullable RapidTypeAnalysis> */
5013 var115
= ((short int (*)(val
*, val
*))(var_rta
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_rta
, var_other
) /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/;
5019 RET_LABEL113
:(void)0;
5025 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
5026 var119
= var_rta
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
5027 if (unlikely(var119
== NULL
)) {
5028 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
5029 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 108);
5033 RET_LABEL118
:(void)0;
5036 var_super_calls
= var117
;
5038 var_super_calls
= var_all_super_calls
;
5040 var_120
= var_super_calls
;
5042 var121
= hash_collection__HashSet__iterator(var_120
);
5047 var123
= ((short int (*)(val
*))(var_122
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_122
) /* is_ok on <var_122:Iterator[MMethodDef]>*/;
5051 var124
= ((val
* (*)(val
*))(var_122
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_122
) /* item on <var_122:Iterator[MMethodDef]>*/;
5053 var_mmethoddef
= var124
;
5055 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
5056 var127
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
5057 if (unlikely(var127
== NULL
)) {
5058 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5059 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
5063 RET_LABEL126
:(void)0;
5067 { /* Inline model#MClassDef#mclass (var125) on <var125:MClassDef> */
5068 var130
= var125
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var125:MClassDef> */
5069 if (unlikely(var130
== NULL
)) {
5070 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5071 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
5075 RET_LABEL129
:(void)0;
5078 var_mclass131
= var128
;
5080 var132
= hash_collection__HashMap___91d_93d(var_mmethods
, var_mclass131
);
5083 ((void (*)(val
*, val
*))(var132
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var132
, var_mmethoddef
) /* add on <var132:nullable Object(Set[PropertyLayoutElement])>*/;
5086 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
5087 var135
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
5088 if (unlikely(var135
== NULL
)) {
5089 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5090 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
5094 RET_LABEL134
:(void)0;
5098 var136
= model__MClass__in_hierarchy(var_mclass131
, var133
);
5101 var137
= poset__POSetElement__smallers(var136
);
5105 var139
= ((val
* (*)(val
*))(var_138
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_138
) /* iterator on <var_138:Collection[MClass]>*/;
5110 var141
= ((short int (*)(val
*))(var_140
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_140
) /* is_ok on <var_140:Iterator[MClass]>*/;
5114 var142
= ((val
* (*)(val
*))(var_140
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_140
) /* item on <var_140:Iterator[MClass]>*/;
5116 var_descendant
= var142
;
5118 var143
= hash_collection__HashMap___91d_93d(var_mmethods
, var_descendant
);
5121 ((void (*)(val
*, val
*))(var143
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var143
, var_mmethoddef
) /* add on <var143:nullable Object(Set[PropertyLayoutElement])>*/;
5124 ((void (*)(val
*))(var_140
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_140
) /* next on <var_140:Iterator[MClass]>*/;
5127 goto BREAK_label144
;
5130 BREAK_label144
: (void)0;
5132 { /* Inline abstract_collection#Iterator#finish (var_140) on <var_140:Iterator[MClass]> */
5133 RET_LABEL145
:(void)0;
5137 ((void (*)(val
*))(var_122
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_122
) /* next on <var_122:Iterator[MMethodDef]>*/;
5140 goto BREAK_label146
;
5143 BREAK_label146
: (void)0;
5145 { /* Inline abstract_collection#Iterator#finish (var_122) on <var_122:Iterator[MMethodDef]> */
5146 RET_LABEL147
:(void)0;
5149 var148
= NEW_coloring__POSetBucketsColorer(&type_coloring__POSetBucketsColorermodel__MClassseparate_compiler__PropertyLayoutElement
);
5151 var149
= coloring__POSetColorer__conflicts(var_colorer
);
5154 coloring__POSetBucketsColorer__init(var148
, var_poset
, var149
); /* Direct call coloring#POSetBucketsColorer#init on <var148:POSetBucketsColorer[MClass, PropertyLayoutElement]>*/
5156 var_meth_colorer
= var148
;
5158 var150
= coloring__POSetBucketsColorer__colorize(var_meth_colorer
, var_mmethods
);
5161 { /* Inline separate_compiler#SeparateCompiler#method_colors= (self,var150) on <self:SeparateCompiler> */
5162 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_colors
].val
= var150
; /* _method_colors on <self:SeparateCompiler> */
5163 RET_LABEL151
:(void)0;
5167 var152
= separate_compiler__SeparateCompiler__build_method_tables(self
, var_mclasses
, var_super_calls
);
5170 { /* Inline separate_compiler#SeparateCompiler#method_tables= (self,var152) on <self:SeparateCompiler> */
5171 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_tables
].val
= var152
; /* _method_tables on <self:SeparateCompiler> */
5172 RET_LABEL153
:(void)0;
5176 { /* Inline separate_compiler#SeparateCompiler#method_colors (self) on <self:SeparateCompiler> */
5177 var156
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_colors
].val
; /* _method_colors on <self:SeparateCompiler> */
5178 if (unlikely(var156
== NULL
)) {
5179 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_colors");
5180 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 162);
5184 RET_LABEL155
:(void)0;
5188 separate_compiler__SeparateCompiler__compile_color_consts(self
, var154
); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:SeparateCompiler>*/
5190 var_157
= var_dead_methods
;
5192 var158
= array__AbstractArrayRead__iterator(var_157
);
5197 var160
= array__ArrayIterator__is_ok(var_159
);
5201 var161
= array__ArrayIterator__item(var_159
);
5203 var_mproperty
= var161
;
5205 var162
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
5209 { /* Inline kernel#Int#unary - (var163) on <var163:Int> */
5213 RET_LABEL165
:(void)0;
5217 separate_compiler__SeparateCompiler__compile_color_const(self
, var162
, var_mproperty
, var164
); /* Direct call separate_compiler#SeparateCompiler#compile_color_const on <self:SeparateCompiler>*/
5220 array__ArrayIterator__next(var_159
); /* Direct call array#ArrayIterator#next on <var_159:ArrayIterator[MMethod]>*/
5223 goto BREAK_label167
;
5226 BREAK_label167
: (void)0;
5228 { /* Inline abstract_collection#Iterator#finish (var_159) on <var_159:ArrayIterator[MMethod]> */
5229 RET_LABEL168
:(void)0;
5232 var_169
= var_all_super_calls
;
5234 var170
= hash_collection__HashSet__iterator(var_169
);
5239 var172
= ((short int (*)(val
*))(var_171
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_171
) /* is_ok on <var_171:Iterator[MMethodDef]>*/;
5243 var173
= ((val
* (*)(val
*))(var_171
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_171
) /* item on <var_171:Iterator[MMethodDef]>*/;
5245 var_mpropdef174
= var173
;
5247 var175
= hash_collection__HashSet__has(var_super_calls
, var_mpropdef174
);
5250 goto BREAK_label176
;
5254 var177
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
5258 { /* Inline kernel#Int#unary - (var178) on <var178:Int> */
5262 RET_LABEL180
:(void)0;
5266 separate_compiler__SeparateCompiler__compile_color_const(self
, var177
, var_mpropdef174
, var179
); /* Direct call separate_compiler#SeparateCompiler#compile_color_const on <self:SeparateCompiler>*/
5268 BREAK_label176
: (void)0;
5270 ((void (*)(val
*))(var_171
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_171
) /* next on <var_171:Iterator[MMethodDef]>*/;
5273 goto BREAK_label182
;
5276 BREAK_label182
: (void)0;
5278 { /* Inline abstract_collection#Iterator#finish (var_171) on <var_171:Iterator[MMethodDef]> */
5279 RET_LABEL183
:(void)0;
5282 var184
= NEW_coloring__POSetBucketsColorer(&type_coloring__POSetBucketsColorermodel__MClassmodel__MAttribute
);
5284 var185
= coloring__POSetColorer__conflicts(var_colorer
);
5287 coloring__POSetBucketsColorer__init(var184
, var_poset
, var185
); /* Direct call coloring#POSetBucketsColorer#init on <var184:POSetBucketsColorer[MClass, MAttribute]>*/
5289 var_attr_colorer
= var184
;
5291 var186
= coloring__POSetBucketsColorer__colorize(var_attr_colorer
, var_mattributes
);
5294 { /* Inline separate_compiler#SeparateCompiler#attr_colors= (self,var186) on <self:SeparateCompiler> */
5295 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_colors
].val
= var186
; /* _attr_colors on <self:SeparateCompiler> */
5296 RET_LABEL187
:(void)0;
5300 var188
= separate_compiler__SeparateCompiler__build_attr_tables(self
, var_mclasses
);
5303 { /* Inline separate_compiler#SeparateCompiler#attr_tables= (self,var188) on <self:SeparateCompiler> */
5304 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_tables
].val
= var188
; /* _attr_tables on <self:SeparateCompiler> */
5305 RET_LABEL189
:(void)0;
5309 { /* Inline separate_compiler#SeparateCompiler#attr_colors (self) on <self:SeparateCompiler> */
5310 var192
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_colors
].val
; /* _attr_colors on <self:SeparateCompiler> */
5311 if (unlikely(var192
== NULL
)) {
5312 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_colors");
5313 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 163);
5317 RET_LABEL191
:(void)0;
5321 separate_compiler__SeparateCompiler__compile_color_consts(self
, var190
); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:SeparateCompiler>*/
5325 /* method separate_compiler#SeparateCompiler#do_property_coloring for (self: Object) */
5326 void VIRTUAL_separate_compiler__SeparateCompiler__do_property_coloring(val
* self
) {
5327 separate_compiler__SeparateCompiler__do_property_coloring(self
); /* Direct call separate_compiler#SeparateCompiler#do_property_coloring on <self:Object(SeparateCompiler)>*/
5330 /* method separate_compiler#SeparateCompiler#build_method_tables for (self: SeparateCompiler, Set[MClass], Set[MMethodDef]): Map[MClass, Array[nullable MPropDef]] */
5331 val
* separate_compiler__SeparateCompiler__build_method_tables(val
* self
, val
* p0
, val
* p1
) {
5332 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
5333 val
* var_mclasses
/* var mclasses: Set[MClass] */;
5334 val
* var_super_calls
/* var super_calls: Set[MMethodDef] */;
5335 val
* var1
/* : HashMap[MClass, Array[nullable MPropDef]] */;
5336 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MPropDef]] */;
5337 val
* var_
/* var : Set[MClass] */;
5338 val
* var2
/* : Iterator[nullable Object] */;
5339 val
* var_3
/* var : Iterator[MClass] */;
5340 short int var4
/* : Bool */;
5341 val
* var5
/* : nullable Object */;
5342 val
* var_mclass
/* var mclass: MClass */;
5343 val
* var6
/* : Array[nullable MPropDef] */;
5344 val
* var_table
/* var table: Array[nullable MPropDef] */;
5345 val
* var7
/* : MModule */;
5346 val
* var9
/* : MModule */;
5347 val
* var10
/* : Set[MProperty] */;
5348 val
* var_mproperties
/* var mproperties: Set[MProperty] */;
5349 val
* var11
/* : MClassDef */;
5350 val
* var13
/* : MClassDef */;
5351 val
* var14
/* : MClassType */;
5352 val
* var16
/* : MClassType */;
5353 val
* var_mtype
/* var mtype: MClassType */;
5354 val
* var_17
/* var : Set[MProperty] */;
5355 val
* var18
/* : Iterator[nullable Object] */;
5356 val
* var_19
/* var : Iterator[MProperty] */;
5357 short int var20
/* : Bool */;
5358 val
* var21
/* : nullable Object */;
5359 val
* var_mproperty
/* var mproperty: MProperty */;
5360 short int var22
/* : Bool */;
5363 short int var23
/* : Bool */;
5364 val
* var24
/* : Map[PropertyLayoutElement, Int] */;
5365 val
* var26
/* : Map[PropertyLayoutElement, Int] */;
5366 short int var27
/* : Bool */;
5367 short int var28
/* : Bool */;
5368 val
* var29
/* : Map[PropertyLayoutElement, Int] */;
5369 val
* var31
/* : Map[PropertyLayoutElement, Int] */;
5370 val
* var32
/* : nullable Object */;
5371 long var33
/* : Int */;
5372 long var_color
/* var color: Int */;
5373 long var34
/* : Int */;
5374 long var36
/* : Int */;
5375 short int var37
/* : Bool */;
5376 short int var39
/* : Bool */;
5379 const char* var_class_name
;
5380 short int var42
/* : Bool */;
5381 long var43
/* : Int */;
5382 long var45
/* : Int */;
5383 long var_i
/* var i: Int */;
5384 long var_46
/* var : Int */;
5385 short int var47
/* : Bool */;
5386 short int var49
/* : Bool */;
5389 const char* var_class_name52
;
5390 short int var53
/* : Bool */;
5391 val
* var54
/* : null */;
5392 long var55
/* : Int */;
5393 long var56
/* : Int */;
5394 val
* var58
/* : MModule */;
5395 val
* var60
/* : MModule */;
5396 val
* var61
/* : MPropDef */;
5397 val
* var_64
/* var : Set[MMethodDef] */;
5398 val
* var65
/* : Iterator[nullable Object] */;
5399 val
* var_66
/* var : Iterator[MMethodDef] */;
5400 short int var67
/* : Bool */;
5401 val
* var68
/* : nullable Object */;
5402 val
* var_supercall
/* var supercall: MMethodDef */;
5403 val
* var69
/* : MModule */;
5404 val
* var71
/* : MModule */;
5405 val
* var72
/* : Set[MClassDef] */;
5406 val
* var73
/* : MClassDef */;
5407 val
* var75
/* : MClassDef */;
5408 short int var76
/* : Bool */;
5409 short int var77
/* : Bool */;
5410 val
* var79
/* : Map[PropertyLayoutElement, Int] */;
5411 val
* var81
/* : Map[PropertyLayoutElement, Int] */;
5412 val
* var82
/* : nullable Object */;
5413 long var83
/* : Int */;
5414 long var_color84
/* var color: Int */;
5415 long var85
/* : Int */;
5416 long var87
/* : Int */;
5417 short int var88
/* : Bool */;
5418 short int var90
/* : Bool */;
5421 const char* var_class_name93
;
5422 short int var94
/* : Bool */;
5423 long var95
/* : Int */;
5424 long var97
/* : Int */;
5425 long var_i98
/* var i: Int */;
5426 long var_99
/* var : Int */;
5427 short int var100
/* : Bool */;
5428 short int var102
/* : Bool */;
5431 const char* var_class_name105
;
5432 short int var106
/* : Bool */;
5433 val
* var107
/* : null */;
5434 long var108
/* : Int */;
5435 long var109
/* : Int */;
5436 val
* var111
/* : MModule */;
5437 val
* var113
/* : MModule */;
5438 val
* var114
/* : MPropDef */;
5439 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
5441 var_super_calls
= p1
;
5442 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef
);
5444 ((void (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__init
]))(var1
) /* init on <var1:HashMap[MClass, Array[nullable MPropDef]]>*/;
5447 var_
= var_mclasses
;
5449 var2
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Set[MClass]>*/;
5454 var4
= ((short int (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_3
) /* is_ok on <var_3:Iterator[MClass]>*/;
5458 var5
= ((val
* (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_3
) /* item on <var_3:Iterator[MClass]>*/;
5461 var6
= NEW_array__Array(&type_array__Arraynullable_model__MPropDef
);
5463 ((void (*)(val
*))(var6
->class->vft
[COLOR_kernel__Object__init
]))(var6
) /* init on <var6:Array[nullable MPropDef]>*/;
5467 hash_collection__HashMap___91d_93d_61d(var_tables
, var_mclass
, var_table
); /* Direct call hash_collection#HashMap#[]= on <var_tables:HashMap[MClass, Array[nullable MPropDef]]>*/
5470 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
5471 var9
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
5472 if (unlikely(var9
== NULL
)) {
5473 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5474 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
5482 var10
= abstract_compiler__MModule__properties(var7
, var_mclass
);
5484 var_mproperties
= var10
;
5486 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:MClass> */
5487 var13
= var_mclass
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var_mclass:MClass> */
5488 if (unlikely(var13
== NULL
)) {
5489 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
5490 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
5494 RET_LABEL12
:(void)0;
5498 { /* Inline model#MClassDef#bound_mtype (var11) on <var11:MClassDef> */
5499 var16
= var11
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var11:MClassDef> */
5500 if (unlikely(var16
== NULL
)) {
5501 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5502 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
5506 RET_LABEL15
:(void)0;
5510 var_17
= var_mproperties
;
5512 var18
= ((val
* (*)(val
*))(var_17
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_17
) /* iterator on <var_17:Set[MProperty]>*/;
5517 var20
= ((short int (*)(val
*))(var_19
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_19
) /* is_ok on <var_19:Iterator[MProperty]>*/;
5521 var21
= ((val
* (*)(val
*))(var_19
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_19
) /* item on <var_19:Iterator[MProperty]>*/;
5523 var_mproperty
= var21
;
5524 /* <var_mproperty:MProperty> isa MMethod */
5525 cltype
= type_model__MMethod
.color
;
5526 idtype
= type_model__MMethod
.id
;
5527 if(cltype
>= var_mproperty
->type
->table_size
) {
5530 var22
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
5538 { /* Inline separate_compiler#SeparateCompiler#method_colors (self) on <self:SeparateCompiler> */
5539 var26
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_colors
].val
; /* _method_colors on <self:SeparateCompiler> */
5540 if (unlikely(var26
== NULL
)) {
5541 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_colors");
5542 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 162);
5546 RET_LABEL25
:(void)0;
5550 var27
= abstract_collection__MapRead__has_key(var24
, var_mproperty
);
5558 { /* Inline separate_compiler#SeparateCompiler#method_colors (self) on <self:SeparateCompiler> */
5559 var31
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_colors
].val
; /* _method_colors on <self:SeparateCompiler> */
5560 if (unlikely(var31
== NULL
)) {
5561 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_colors");
5562 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 162);
5566 RET_LABEL30
:(void)0;
5570 var32
= ((val
* (*)(val
*, val
*))(var29
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var29
, var_mproperty
) /* [] on <var29:Map[PropertyLayoutElement, Int]>*/;
5572 var33
= ((struct instance_kernel__Int
*)var32
)->value
; /* autounbox from nullable Object to Int */;
5575 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
5576 var36
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
5578 RET_LABEL35
:(void)0;
5582 { /* Inline kernel#Int#<= (var34,var_color) on <var34:Int> */
5583 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
5584 /* <var_color:Int> isa OTHER */
5585 var39
= 1; /* easy <var_color:Int> isa OTHER*/
5586 if (unlikely(!var39
)) {
5587 var_class_name
= type_kernel__Int
.name
;
5588 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
5589 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
5592 var42
= var34
<= var_color
;
5595 RET_LABEL38
:(void)0;
5600 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
5601 var45
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
5603 RET_LABEL44
:(void)0;
5610 { /* Inline kernel#Int#< (var_i,var_46) on <var_i:Int> */
5611 /* Covariant cast for argument 0 (i) <var_46:Int> isa OTHER */
5612 /* <var_46:Int> isa OTHER */
5613 var49
= 1; /* easy <var_46:Int> isa OTHER*/
5614 if (unlikely(!var49
)) {
5615 var_class_name52
= type_kernel__Int
.name
;
5616 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52
);
5617 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
5620 var53
= var_i
< var_46
;
5623 RET_LABEL48
:(void)0;
5629 array__Array___91d_93d_61d(var_table
, var_i
, var54
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
5633 var56
= kernel__Int__successor(var_i
, var55
);
5640 BREAK_label57
: (void)0;
5644 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
5645 var60
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
5646 if (unlikely(var60
== NULL
)) {
5647 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5648 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
5652 RET_LABEL59
:(void)0;
5656 var61
= model__MProperty__lookup_first_definition(var_mproperty
, var58
, var_mtype
);
5659 array__Array___91d_93d_61d(var_table
, var_color
, var61
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
5661 BREAK_label
: (void)0;
5663 ((void (*)(val
*))(var_19
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_19
) /* next on <var_19:Iterator[MProperty]>*/;
5669 BREAK_label62
: (void)0;
5671 { /* Inline abstract_collection#Iterator#finish (var_19) on <var_19:Iterator[MProperty]> */
5672 RET_LABEL63
:(void)0;
5675 var_64
= var_super_calls
;
5677 var65
= ((val
* (*)(val
*))(var_64
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_64
) /* iterator on <var_64:Set[MMethodDef]>*/;
5682 var67
= ((short int (*)(val
*))(var_66
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_66
) /* is_ok on <var_66:Iterator[MMethodDef]>*/;
5686 var68
= ((val
* (*)(val
*))(var_66
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_66
) /* item on <var_66:Iterator[MMethodDef]>*/;
5688 var_supercall
= var68
;
5690 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
5691 var71
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
5692 if (unlikely(var71
== NULL
)) {
5693 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5694 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
5698 RET_LABEL70
:(void)0;
5702 var72
= model__MClassType__collect_mclassdefs(var_mtype
, var69
);
5705 { /* Inline model#MPropDef#mclassdef (var_supercall) on <var_supercall:MMethodDef> */
5706 var75
= var_supercall
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_supercall:MMethodDef> */
5707 if (unlikely(var75
== NULL
)) {
5708 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5709 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
5713 RET_LABEL74
:(void)0;
5717 var76
= ((short int (*)(val
*, val
*))(var72
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var72
, var73
) /* has on <var72:Set[MClassDef]>*/;
5725 { /* Inline separate_compiler#SeparateCompiler#method_colors (self) on <self:SeparateCompiler> */
5726 var81
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_colors
].val
; /* _method_colors on <self:SeparateCompiler> */
5727 if (unlikely(var81
== NULL
)) {
5728 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_colors");
5729 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 162);
5733 RET_LABEL80
:(void)0;
5737 var82
= ((val
* (*)(val
*, val
*))(var79
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var79
, var_supercall
) /* [] on <var79:Map[PropertyLayoutElement, Int]>*/;
5739 var83
= ((struct instance_kernel__Int
*)var82
)->value
; /* autounbox from nullable Object to Int */;
5740 var_color84
= var83
;
5742 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
5743 var87
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
5745 RET_LABEL86
:(void)0;
5749 { /* Inline kernel#Int#<= (var85,var_color84) on <var85:Int> */
5750 /* Covariant cast for argument 0 (i) <var_color84:Int> isa OTHER */
5751 /* <var_color84:Int> isa OTHER */
5752 var90
= 1; /* easy <var_color84:Int> isa OTHER*/
5753 if (unlikely(!var90
)) {
5754 var_class_name93
= type_kernel__Int
.name
;
5755 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name93
);
5756 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
5759 var94
= var85
<= var_color84
;
5762 RET_LABEL89
:(void)0;
5767 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
5768 var97
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
5770 RET_LABEL96
:(void)0;
5774 var_99
= var_color84
;
5777 { /* Inline kernel#Int#< (var_i98,var_99) on <var_i98:Int> */
5778 /* Covariant cast for argument 0 (i) <var_99:Int> isa OTHER */
5779 /* <var_99:Int> isa OTHER */
5780 var102
= 1; /* easy <var_99:Int> isa OTHER*/
5781 if (unlikely(!var102
)) {
5782 var_class_name105
= type_kernel__Int
.name
;
5783 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name105
);
5784 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
5787 var106
= var_i98
< var_99
;
5790 RET_LABEL101
:(void)0;
5796 array__Array___91d_93d_61d(var_table
, var_i98
, var107
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
5800 var109
= kernel__Int__successor(var_i98
, var108
);
5804 goto BREAK_label110
;
5807 BREAK_label110
: (void)0;
5811 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
5812 var113
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
5813 if (unlikely(var113
== NULL
)) {
5814 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5815 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
5819 RET_LABEL112
:(void)0;
5823 var114
= model__MPropDef__lookup_next_definition(var_supercall
, var111
, var_mtype
);
5825 var_mmethoddef
= var114
;
5827 array__Array___91d_93d_61d(var_table
, var_color84
, var_mmethoddef
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
5829 BREAK_label78
: (void)0;
5831 ((void (*)(val
*))(var_66
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_66
) /* next on <var_66:Iterator[MMethodDef]>*/;
5834 goto BREAK_label115
;
5837 BREAK_label115
: (void)0;
5839 { /* Inline abstract_collection#Iterator#finish (var_66) on <var_66:Iterator[MMethodDef]> */
5840 RET_LABEL116
:(void)0;
5844 ((void (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_3
) /* next on <var_3:Iterator[MClass]>*/;
5847 goto BREAK_label117
;
5850 BREAK_label117
: (void)0;
5852 { /* Inline abstract_collection#Iterator#finish (var_3) on <var_3:Iterator[MClass]> */
5853 RET_LABEL118
:(void)0;
5861 /* method separate_compiler#SeparateCompiler#build_method_tables for (self: Object, Set[MClass], Set[MMethodDef]): Map[MClass, Array[nullable MPropDef]] */
5862 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_method_tables(val
* self
, val
* p0
, val
* p1
) {
5863 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
5864 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
5865 var1
= separate_compiler__SeparateCompiler__build_method_tables(self
, p0
, p1
);
5870 /* method separate_compiler#SeparateCompiler#build_attr_tables for (self: SeparateCompiler, Set[MClass]): Map[MClass, Array[nullable MPropDef]] */
5871 val
* separate_compiler__SeparateCompiler__build_attr_tables(val
* self
, val
* p0
) {
5872 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
5873 val
* var_mclasses
/* var mclasses: Set[MClass] */;
5874 val
* var1
/* : HashMap[MClass, Array[nullable MPropDef]] */;
5875 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MPropDef]] */;
5876 val
* var_
/* var : Set[MClass] */;
5877 val
* var2
/* : Iterator[nullable Object] */;
5878 val
* var_3
/* var : Iterator[MClass] */;
5879 short int var4
/* : Bool */;
5880 val
* var5
/* : nullable Object */;
5881 val
* var_mclass
/* var mclass: MClass */;
5882 val
* var6
/* : Array[nullable MPropDef] */;
5883 val
* var_table
/* var table: Array[nullable MPropDef] */;
5884 val
* var7
/* : MModule */;
5885 val
* var9
/* : MModule */;
5886 val
* var10
/* : Set[MProperty] */;
5887 val
* var_mproperties
/* var mproperties: Set[MProperty] */;
5888 val
* var11
/* : MClassDef */;
5889 val
* var13
/* : MClassDef */;
5890 val
* var14
/* : MClassType */;
5891 val
* var16
/* : MClassType */;
5892 val
* var_mtype
/* var mtype: MClassType */;
5893 val
* var_17
/* var : Set[MProperty] */;
5894 val
* var18
/* : Iterator[nullable Object] */;
5895 val
* var_19
/* var : Iterator[MProperty] */;
5896 short int var20
/* : Bool */;
5897 val
* var21
/* : nullable Object */;
5898 val
* var_mproperty
/* var mproperty: MProperty */;
5899 short int var22
/* : Bool */;
5902 short int var23
/* : Bool */;
5903 val
* var24
/* : Map[MAttribute, Int] */;
5904 val
* var26
/* : Map[MAttribute, Int] */;
5905 short int var27
/* : Bool */;
5906 short int var28
/* : Bool */;
5907 val
* var29
/* : Map[MAttribute, Int] */;
5908 val
* var31
/* : Map[MAttribute, Int] */;
5909 val
* var32
/* : nullable Object */;
5910 long var33
/* : Int */;
5911 long var_color
/* var color: Int */;
5912 long var34
/* : Int */;
5913 long var36
/* : Int */;
5914 short int var37
/* : Bool */;
5915 short int var39
/* : Bool */;
5918 const char* var_class_name
;
5919 short int var42
/* : Bool */;
5920 long var43
/* : Int */;
5921 long var45
/* : Int */;
5922 long var_i
/* var i: Int */;
5923 long var_46
/* var : Int */;
5924 short int var47
/* : Bool */;
5925 short int var49
/* : Bool */;
5928 const char* var_class_name52
;
5929 short int var53
/* : Bool */;
5930 val
* var54
/* : null */;
5931 long var55
/* : Int */;
5932 long var56
/* : Int */;
5933 val
* var58
/* : MModule */;
5934 val
* var60
/* : MModule */;
5935 val
* var61
/* : MPropDef */;
5937 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef
);
5939 ((void (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__init
]))(var1
) /* init on <var1:HashMap[MClass, Array[nullable MPropDef]]>*/;
5942 var_
= var_mclasses
;
5944 var2
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Set[MClass]>*/;
5949 var4
= ((short int (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_3
) /* is_ok on <var_3:Iterator[MClass]>*/;
5953 var5
= ((val
* (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_3
) /* item on <var_3:Iterator[MClass]>*/;
5956 var6
= NEW_array__Array(&type_array__Arraynullable_model__MPropDef
);
5958 ((void (*)(val
*))(var6
->class->vft
[COLOR_kernel__Object__init
]))(var6
) /* init on <var6:Array[nullable MPropDef]>*/;
5962 hash_collection__HashMap___91d_93d_61d(var_tables
, var_mclass
, var_table
); /* Direct call hash_collection#HashMap#[]= on <var_tables:HashMap[MClass, Array[nullable MPropDef]]>*/
5965 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
5966 var9
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
5967 if (unlikely(var9
== NULL
)) {
5968 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5969 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
5977 var10
= abstract_compiler__MModule__properties(var7
, var_mclass
);
5979 var_mproperties
= var10
;
5981 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:MClass> */
5982 var13
= var_mclass
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var_mclass:MClass> */
5983 if (unlikely(var13
== NULL
)) {
5984 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
5985 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
5989 RET_LABEL12
:(void)0;
5993 { /* Inline model#MClassDef#bound_mtype (var11) on <var11:MClassDef> */
5994 var16
= var11
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var11:MClassDef> */
5995 if (unlikely(var16
== NULL
)) {
5996 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5997 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
6001 RET_LABEL15
:(void)0;
6005 var_17
= var_mproperties
;
6007 var18
= ((val
* (*)(val
*))(var_17
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_17
) /* iterator on <var_17:Set[MProperty]>*/;
6012 var20
= ((short int (*)(val
*))(var_19
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_19
) /* is_ok on <var_19:Iterator[MProperty]>*/;
6016 var21
= ((val
* (*)(val
*))(var_19
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_19
) /* item on <var_19:Iterator[MProperty]>*/;
6018 var_mproperty
= var21
;
6019 /* <var_mproperty:MProperty> isa MAttribute */
6020 cltype
= type_model__MAttribute
.color
;
6021 idtype
= type_model__MAttribute
.id
;
6022 if(cltype
>= var_mproperty
->type
->table_size
) {
6025 var22
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
6033 { /* Inline separate_compiler#SeparateCompiler#attr_colors (self) on <self:SeparateCompiler> */
6034 var26
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_colors
].val
; /* _attr_colors on <self:SeparateCompiler> */
6035 if (unlikely(var26
== NULL
)) {
6036 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_colors");
6037 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 163);
6041 RET_LABEL25
:(void)0;
6045 var27
= abstract_collection__MapRead__has_key(var24
, var_mproperty
);
6053 { /* Inline separate_compiler#SeparateCompiler#attr_colors (self) on <self:SeparateCompiler> */
6054 var31
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_colors
].val
; /* _attr_colors on <self:SeparateCompiler> */
6055 if (unlikely(var31
== NULL
)) {
6056 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_colors");
6057 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 163);
6061 RET_LABEL30
:(void)0;
6065 var32
= ((val
* (*)(val
*, val
*))(var29
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var29
, var_mproperty
) /* [] on <var29:Map[MAttribute, Int]>*/;
6067 var33
= ((struct instance_kernel__Int
*)var32
)->value
; /* autounbox from nullable Object to Int */;
6070 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
6071 var36
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
6073 RET_LABEL35
:(void)0;
6077 { /* Inline kernel#Int#<= (var34,var_color) on <var34:Int> */
6078 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
6079 /* <var_color:Int> isa OTHER */
6080 var39
= 1; /* easy <var_color:Int> isa OTHER*/
6081 if (unlikely(!var39
)) {
6082 var_class_name
= type_kernel__Int
.name
;
6083 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
6084 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
6087 var42
= var34
<= var_color
;
6090 RET_LABEL38
:(void)0;
6095 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
6096 var45
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
6098 RET_LABEL44
:(void)0;
6105 { /* Inline kernel#Int#< (var_i,var_46) on <var_i:Int> */
6106 /* Covariant cast for argument 0 (i) <var_46:Int> isa OTHER */
6107 /* <var_46:Int> isa OTHER */
6108 var49
= 1; /* easy <var_46:Int> isa OTHER*/
6109 if (unlikely(!var49
)) {
6110 var_class_name52
= type_kernel__Int
.name
;
6111 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52
);
6112 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
6115 var53
= var_i
< var_46
;
6118 RET_LABEL48
:(void)0;
6124 array__Array___91d_93d_61d(var_table
, var_i
, var54
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
6128 var56
= kernel__Int__successor(var_i
, var55
);
6135 BREAK_label57
: (void)0;
6139 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
6140 var60
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
6141 if (unlikely(var60
== NULL
)) {
6142 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6143 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
6147 RET_LABEL59
:(void)0;
6151 var61
= model__MProperty__lookup_first_definition(var_mproperty
, var58
, var_mtype
);
6154 array__Array___91d_93d_61d(var_table
, var_color
, var61
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
6156 BREAK_label
: (void)0;
6158 ((void (*)(val
*))(var_19
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_19
) /* next on <var_19:Iterator[MProperty]>*/;
6164 BREAK_label62
: (void)0;
6166 { /* Inline abstract_collection#Iterator#finish (var_19) on <var_19:Iterator[MProperty]> */
6167 RET_LABEL63
:(void)0;
6171 ((void (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_3
) /* next on <var_3:Iterator[MClass]>*/;
6177 BREAK_label64
: (void)0;
6179 { /* Inline abstract_collection#Iterator#finish (var_3) on <var_3:Iterator[MClass]> */
6180 RET_LABEL65
:(void)0;
6188 /* method separate_compiler#SeparateCompiler#build_attr_tables for (self: Object, Set[MClass]): Map[MClass, Array[nullable MPropDef]] */
6189 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_attr_tables(val
* self
, val
* p0
) {
6190 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
6191 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
6192 var1
= separate_compiler__SeparateCompiler__build_attr_tables(self
, p0
);
6197 /* method separate_compiler#SeparateCompiler#do_type_coloring for (self: SeparateCompiler): POSet[MType] */
6198 val
* separate_compiler__SeparateCompiler__do_type_coloring(val
* self
) {
6199 val
* var
/* : POSet[MType] */;
6200 val
* var1
/* : nullable RapidTypeAnalysis */;
6201 val
* var3
/* : nullable RapidTypeAnalysis */;
6202 val
* var4
/* : HashSet[MClassType] */;
6203 val
* var6
/* : HashSet[MClassType] */;
6204 val
* var_live_types
/* var live_types: HashSet[MClassType] */;
6205 val
* var7
/* : nullable RapidTypeAnalysis */;
6206 val
* var9
/* : nullable RapidTypeAnalysis */;
6207 val
* var10
/* : HashSet[MType] */;
6208 val
* var12
/* : HashSet[MType] */;
6209 val
* var_live_cast_types
/* var live_cast_types: HashSet[MType] */;
6210 val
* var13
/* : HashSet[MType] */;
6211 val
* var_mtypes
/* var mtypes: HashSet[MType] */;
6212 val
* var14
/* : HashMap[MClass, Int] */;
6213 val
* var16
/* : HashMap[MClass, Int] */;
6214 val
* var17
/* : RemovableCollection[Object] */;
6215 val
* var19
/* : RemovableCollection[Object] */;
6216 val
* var_
/* var : RemovableCollection[MClass] */;
6217 val
* var20
/* : Iterator[nullable Object] */;
6218 val
* var_21
/* var : Iterator[MClass] */;
6219 short int var22
/* : Bool */;
6220 val
* var23
/* : nullable Object */;
6221 val
* var_c
/* var c: MClass */;
6222 val
* var24
/* : MClassType */;
6223 val
* var26
/* : MClassType */;
6224 val
* var28
/* : POSet[MType] */;
6225 val
* var_poset
/* var poset: POSet[MType] */;
6226 val
* var29
/* : POSetColorer[MType] */;
6227 val
* var_colorer
/* var colorer: POSetColorer[MType] */;
6228 val
* var30
/* : Map[Object, Int] */;
6229 val
* var32
/* : Map[Object, Int] */;
6230 val
* var34
/* : Map[MType, Array[nullable MType]] */;
6232 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
6233 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
6239 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6240 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 417);
6243 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var1) on <var1:nullable RapidTypeAnalysis> */
6244 if (unlikely(var1
== NULL
)) {
6245 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6246 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
6249 var6
= var1
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <var1:nullable RapidTypeAnalysis> */
6250 if (unlikely(var6
== NULL
)) {
6251 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
6252 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
6259 var_live_types
= var4
;
6261 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
6262 var9
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
6268 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6269 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 418);
6272 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (var7) on <var7:nullable RapidTypeAnalysis> */
6273 if (unlikely(var7
== NULL
)) {
6274 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6275 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 65);
6278 var12
= var7
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <var7:nullable RapidTypeAnalysis> */
6279 if (unlikely(var12
== NULL
)) {
6280 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
6281 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 65);
6285 RET_LABEL11
:(void)0;
6288 var_live_cast_types
= var10
;
6289 var13
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
6291 ((void (*)(val
*))(var13
->class->vft
[COLOR_kernel__Object__init
]))(var13
) /* init on <var13:HashSet[MType]>*/;
6295 abstract_collection__SimpleCollection__add_all(var_mtypes
, var_live_types
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_mtypes:HashSet[MType]>*/
6298 abstract_collection__SimpleCollection__add_all(var_mtypes
, var_live_cast_types
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_mtypes:HashSet[MType]>*/
6301 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
6302 var16
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
6303 if (unlikely(var16
== NULL
)) {
6304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
6305 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216);
6309 RET_LABEL15
:(void)0;
6313 { /* Inline hash_collection#HashMap#keys (var14) on <var14:HashMap[MClass, Int]> */
6314 var19
= var14
->attrs
[COLOR_hash_collection__HashMap___keys
].val
; /* _keys on <var14:HashMap[MClass, Int]> */
6315 if (unlikely(var19
== NULL
)) {
6316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _keys");
6317 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/hash_collection.nit", 249);
6321 RET_LABEL18
:(void)0;
6326 var20
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:RemovableCollection[MClass]>*/;
6331 var22
= ((short int (*)(val
*))(var_21
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_21
) /* is_ok on <var_21:Iterator[MClass]>*/;
6335 var23
= ((val
* (*)(val
*))(var_21
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_21
) /* item on <var_21:Iterator[MClass]>*/;
6339 { /* Inline model#MClass#mclass_type (var_c) on <var_c:MClass> */
6340 var26
= var_c
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_c:MClass> */
6341 if (unlikely(var26
== NULL
)) {
6342 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
6343 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
6347 RET_LABEL25
:(void)0;
6351 hash_collection__HashSet__add(var_mtypes
, var24
); /* Direct call hash_collection#HashSet#add on <var_mtypes:HashSet[MType]>*/
6354 ((void (*)(val
*))(var_21
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_21
) /* next on <var_21:Iterator[MClass]>*/;
6360 BREAK_label
: (void)0;
6362 { /* Inline abstract_collection#Iterator#finish (var_21) on <var_21:Iterator[MClass]> */
6363 RET_LABEL27
:(void)0;
6367 var28
= separate_compiler__SeparateCompiler__poset_from_mtypes(self
, var_mtypes
);
6370 var29
= NEW_coloring__POSetColorer(&type_coloring__POSetColorermodel__MType
);
6372 ((void (*)(val
*))(var29
->class->vft
[COLOR_kernel__Object__init
]))(var29
) /* init on <var29:POSetColorer[MType]>*/;
6374 var_colorer
= var29
;
6376 coloring__POSetColorer__colorize(var_colorer
, var_poset
); /* Direct call coloring#POSetColorer#colorize on <var_colorer:POSetColorer[MType]>*/
6379 var30
= coloring__POSetColorer__ids(var_colorer
);
6382 { /* Inline separate_compiler#SeparateCompiler#type_ids= (self,var30) on <self:SeparateCompiler> */
6383 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_ids
].val
= var30
; /* _type_ids on <self:SeparateCompiler> */
6384 RET_LABEL31
:(void)0;
6388 var32
= coloring__POSetColorer__colors(var_colorer
);
6391 { /* Inline separate_compiler#SeparateCompiler#type_colors= (self,var32) on <self:SeparateCompiler> */
6392 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_colors
].val
= var32
; /* _type_colors on <self:SeparateCompiler> */
6393 RET_LABEL33
:(void)0;
6397 var34
= separate_compiler__SeparateCompiler__build_type_tables(self
, var_poset
);
6400 { /* Inline separate_compiler#SeparateCompiler#type_tables= (self,var34) on <self:SeparateCompiler> */
6401 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_tables
].val
= var34
; /* _type_tables on <self:SeparateCompiler> */
6402 RET_LABEL35
:(void)0;
6406 separate_compiler__SeparateCompiler__compile_resolution_tables(self
, var_mtypes
); /* Direct call separate_compiler#SeparateCompiler#compile_resolution_tables on <self:SeparateCompiler>*/
6413 /* method separate_compiler#SeparateCompiler#do_type_coloring for (self: Object): POSet[MType] */
6414 val
* VIRTUAL_separate_compiler__SeparateCompiler__do_type_coloring(val
* self
) {
6415 val
* var
/* : POSet[MType] */;
6416 val
* var1
/* : POSet[MType] */;
6417 var1
= separate_compiler__SeparateCompiler__do_type_coloring(self
);
6422 /* method separate_compiler#SeparateCompiler#poset_from_mtypes for (self: SeparateCompiler, Set[MType]): POSet[MType] */
6423 val
* separate_compiler__SeparateCompiler__poset_from_mtypes(val
* self
, val
* p0
) {
6424 val
* var
/* : POSet[MType] */;
6425 val
* var_mtypes
/* var mtypes: Set[MType] */;
6426 val
* var1
/* : POSet[MType] */;
6427 val
* var_poset
/* var poset: POSet[MType] */;
6428 val
* var_
/* var : Set[MType] */;
6429 val
* var2
/* : Iterator[nullable Object] */;
6430 val
* var_3
/* var : Iterator[MType] */;
6431 short int var4
/* : Bool */;
6432 val
* var5
/* : nullable Object */;
6433 val
* var_e
/* var e: MType */;
6434 val
* var6
/* : POSetElement[Object] */;
6435 val
* var_7
/* var : Set[MType] */;
6436 val
* var8
/* : Iterator[nullable Object] */;
6437 val
* var_9
/* var : Iterator[MType] */;
6438 short int var10
/* : Bool */;
6439 val
* var11
/* : nullable Object */;
6440 val
* var_o
/* var o: MType */;
6441 short int var12
/* : Bool */;
6442 short int var13
/* : Bool */;
6443 val
* var_other
/* var other: nullable Object */;
6444 short int var15
/* : Bool */;
6445 short int var17
/* : Bool */;
6446 val
* var18
/* : MModule */;
6447 val
* var20
/* : MModule */;
6448 val
* var21
/* : null */;
6449 short int var22
/* : Bool */;
6451 var1
= NEW_poset__POSet(&type_poset__POSetmodel__MType
);
6453 ((void (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__init
]))(var1
) /* init on <var1:POSet[MType]>*/;
6458 var2
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Set[MType]>*/;
6463 var4
= ((short int (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_3
) /* is_ok on <var_3:Iterator[MType]>*/;
6467 var5
= ((val
* (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_3
) /* item on <var_3:Iterator[MType]>*/;
6471 var6
= poset__POSet__add_node(var_poset
, var_e
);
6475 var8
= ((val
* (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_7
) /* iterator on <var_7:Set[MType]>*/;
6480 var10
= ((short int (*)(val
*))(var_9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_9
) /* is_ok on <var_9:Iterator[MType]>*/;
6484 var11
= ((val
* (*)(val
*))(var_9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_9
) /* item on <var_9:Iterator[MType]>*/;
6488 { /* Inline kernel#Object#== (var_e,var_o) on <var_e:MType> */
6491 { /* Inline kernel#Object#is_same_instance (var_e,var_other) on <var_e:MType> */
6492 var17
= var_e
== var_other
;
6495 RET_LABEL16
:(void)0;
6500 RET_LABEL14
:(void)0;
6509 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
6510 var20
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
6511 if (unlikely(var20
== NULL
)) {
6512 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6513 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
6517 RET_LABEL19
:(void)0;
6522 var22
= model__MType__is_subtype(var_e
, var18
, var21
, var_o
);
6526 poset__POSet__add_edge(var_poset
, var_e
, var_o
); /* Direct call poset#POSet#add_edge on <var_poset:POSet[MType]>*/
6530 BREAK_label
: (void)0;
6532 ((void (*)(val
*))(var_9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_9
) /* next on <var_9:Iterator[MType]>*/;
6538 BREAK_label23
: (void)0;
6540 { /* Inline abstract_collection#Iterator#finish (var_9) on <var_9:Iterator[MType]> */
6541 RET_LABEL24
:(void)0;
6545 ((void (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_3
) /* next on <var_3:Iterator[MType]>*/;
6551 BREAK_label25
: (void)0;
6553 { /* Inline abstract_collection#Iterator#finish (var_3) on <var_3:Iterator[MType]> */
6554 RET_LABEL26
:(void)0;
6562 /* method separate_compiler#SeparateCompiler#poset_from_mtypes for (self: Object, Set[MType]): POSet[MType] */
6563 val
* VIRTUAL_separate_compiler__SeparateCompiler__poset_from_mtypes(val
* self
, val
* p0
) {
6564 val
* var
/* : POSet[MType] */;
6565 val
* var1
/* : POSet[MType] */;
6566 var1
= separate_compiler__SeparateCompiler__poset_from_mtypes(self
, p0
);
6571 /* method separate_compiler#SeparateCompiler#build_type_tables for (self: SeparateCompiler, POSet[MType]): Map[MType, Array[nullable MType]] */
6572 val
* separate_compiler__SeparateCompiler__build_type_tables(val
* self
, val
* p0
) {
6573 val
* var
/* : Map[MType, Array[nullable MType]] */;
6574 val
* var_mtypes
/* var mtypes: POSet[MType] */;
6575 val
* var1
/* : HashMap[MType, Array[nullable MType]] */;
6576 val
* var_tables
/* var tables: HashMap[MType, Array[nullable MType]] */;
6577 val
* var_
/* var : POSet[MType] */;
6578 val
* var2
/* : Iterator[Object] */;
6579 val
* var_3
/* var : Iterator[MType] */;
6580 short int var4
/* : Bool */;
6581 val
* var5
/* : nullable Object */;
6582 val
* var_mtype
/* var mtype: MType */;
6583 val
* var6
/* : Array[nullable MType] */;
6584 val
* var_table
/* var table: Array[nullable MType] */;
6585 val
* var7
/* : POSetElement[Object] */;
6586 val
* var8
/* : Collection[Object] */;
6587 val
* var_9
/* var : Collection[MType] */;
6588 val
* var10
/* : Iterator[nullable Object] */;
6589 val
* var_11
/* var : Iterator[MType] */;
6590 short int var12
/* : Bool */;
6591 val
* var13
/* : nullable Object */;
6592 val
* var_sup
/* var sup: MType */;
6593 val
* var14
/* : Map[MType, Int] */;
6594 val
* var16
/* : Map[MType, Int] */;
6595 val
* var17
/* : nullable Object */;
6596 long var18
/* : Int */;
6597 long var_color
/* var color: Int */;
6598 long var19
/* : Int */;
6599 long var21
/* : Int */;
6600 short int var22
/* : Bool */;
6601 short int var24
/* : Bool */;
6604 const char* var_class_name
;
6605 short int var25
/* : Bool */;
6606 long var26
/* : Int */;
6607 long var28
/* : Int */;
6608 long var_i
/* var i: Int */;
6609 long var_29
/* var : Int */;
6610 short int var30
/* : Bool */;
6611 short int var32
/* : Bool */;
6614 const char* var_class_name35
;
6615 short int var36
/* : Bool */;
6616 val
* var37
/* : null */;
6617 long var38
/* : Int */;
6618 long var39
/* : Int */;
6620 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType
);
6622 ((void (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__init
]))(var1
) /* init on <var1:HashMap[MType, Array[nullable MType]]>*/;
6627 var2
= poset__POSet__iterator(var_
);
6632 var4
= ((short int (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_3
) /* is_ok on <var_3:Iterator[MType]>*/;
6636 var5
= ((val
* (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_3
) /* item on <var_3:Iterator[MType]>*/;
6639 var6
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
6641 ((void (*)(val
*))(var6
->class->vft
[COLOR_kernel__Object__init
]))(var6
) /* init on <var6:Array[nullable MType]>*/;
6645 var7
= poset__POSet___91d_93d(var_mtypes
, var_mtype
);
6648 var8
= poset__POSetElement__greaters(var7
);
6652 var10
= ((val
* (*)(val
*))(var_9
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_9
) /* iterator on <var_9:Collection[MType]>*/;
6657 var12
= ((short int (*)(val
*))(var_11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_11
) /* is_ok on <var_11:Iterator[MType]>*/;
6661 var13
= ((val
* (*)(val
*))(var_11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_11
) /* item on <var_11:Iterator[MType]>*/;
6665 { /* Inline separate_compiler#SeparateCompiler#type_colors (self) on <self:SeparateCompiler> */
6666 var16
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_colors
].val
; /* _type_colors on <self:SeparateCompiler> */
6667 if (unlikely(var16
== NULL
)) {
6668 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors");
6669 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 160);
6673 RET_LABEL15
:(void)0;
6677 var17
= ((val
* (*)(val
*, val
*))(var14
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var14
, var_sup
) /* [] on <var14:Map[MType, Int]>*/;
6679 var18
= ((struct instance_kernel__Int
*)var17
)->value
; /* autounbox from nullable Object to Int */;
6682 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
6683 var21
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MType]> */
6685 RET_LABEL20
:(void)0;
6689 { /* Inline kernel#Int#<= (var19,var_color) on <var19:Int> */
6690 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
6691 /* <var_color:Int> isa OTHER */
6692 var24
= 1; /* easy <var_color:Int> isa OTHER*/
6693 if (unlikely(!var24
)) {
6694 var_class_name
= type_kernel__Int
.name
;
6695 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
6696 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
6699 var25
= var19
<= var_color
;
6702 RET_LABEL23
:(void)0;
6707 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
6708 var28
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MType]> */
6710 RET_LABEL27
:(void)0;
6717 { /* Inline kernel#Int#< (var_i,var_29) on <var_i:Int> */
6718 /* Covariant cast for argument 0 (i) <var_29:Int> isa OTHER */
6719 /* <var_29:Int> isa OTHER */
6720 var32
= 1; /* easy <var_29:Int> isa OTHER*/
6721 if (unlikely(!var32
)) {
6722 var_class_name35
= type_kernel__Int
.name
;
6723 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35
);
6724 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
6727 var36
= var_i
< var_29
;
6730 RET_LABEL31
:(void)0;
6736 array__Array___91d_93d_61d(var_table
, var_i
, var37
); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
6740 var39
= kernel__Int__successor(var_i
, var38
);
6747 BREAK_label
: (void)0;
6751 array__Array___91d_93d_61d(var_table
, var_color
, var_sup
); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
6754 ((void (*)(val
*))(var_11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_11
) /* next on <var_11:Iterator[MType]>*/;
6760 BREAK_label40
: (void)0;
6762 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:Iterator[MType]> */
6763 RET_LABEL41
:(void)0;
6767 hash_collection__HashMap___91d_93d_61d(var_tables
, var_mtype
, var_table
); /* Direct call hash_collection#HashMap#[]= on <var_tables:HashMap[MType, Array[nullable MType]]>*/
6770 ((void (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_3
) /* next on <var_3:Iterator[MType]>*/;
6776 BREAK_label42
: (void)0;
6778 { /* Inline abstract_collection#Iterator#finish (var_3) on <var_3:Iterator[MType]> */
6779 RET_LABEL43
:(void)0;
6787 /* method separate_compiler#SeparateCompiler#build_type_tables for (self: Object, POSet[MType]): Map[MType, Array[nullable MType]] */
6788 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_type_tables(val
* self
, val
* p0
) {
6789 val
* var
/* : Map[MType, Array[nullable MType]] */;
6790 val
* var1
/* : Map[MType, Array[nullable MType]] */;
6791 var1
= separate_compiler__SeparateCompiler__build_type_tables(self
, p0
);
6796 /* method separate_compiler#SeparateCompiler#compile_resolution_tables for (self: SeparateCompiler, Set[MType]) */
6797 void separate_compiler__SeparateCompiler__compile_resolution_tables(val
* self
, val
* p0
) {
6798 val
* var_mtypes
/* var mtypes: Set[MType] */;
6799 val
* var
/* : HashMap[MClassType, Set[MType]] */;
6800 val
* var_mtype2unresolved
/* var mtype2unresolved: HashMap[MClassType, Set[MType]] */;
6801 val
* var1
/* : nullable RapidTypeAnalysis */;
6802 val
* var3
/* : nullable RapidTypeAnalysis */;
6803 val
* var4
/* : HashSet[MClassType] */;
6804 val
* var6
/* : HashSet[MClassType] */;
6805 val
* var_
/* var : HashSet[MClassType] */;
6806 val
* var7
/* : Iterator[Object] */;
6807 val
* var_8
/* var : Iterator[MClassType] */;
6808 short int var9
/* : Bool */;
6809 val
* var10
/* : nullable Object */;
6810 val
* var_mtype
/* var mtype: MClassType */;
6811 val
* var11
/* : HashSet[MType] */;
6812 val
* var_set
/* var set: HashSet[MType] */;
6813 val
* var12
/* : MModule */;
6814 val
* var14
/* : MModule */;
6815 val
* var15
/* : Set[MClassDef] */;
6816 val
* var_16
/* var : Set[MClassDef] */;
6817 val
* var17
/* : Iterator[nullable Object] */;
6818 val
* var_18
/* var : Iterator[MClassDef] */;
6819 short int var19
/* : Bool */;
6820 val
* var20
/* : nullable Object */;
6821 val
* var_cd
/* var cd: MClassDef */;
6822 val
* var21
/* : Map[MClassDef, Set[MType]] */;
6823 val
* var23
/* : Map[MClassDef, Set[MType]] */;
6824 short int var24
/* : Bool */;
6825 val
* var25
/* : Map[MClassDef, Set[MType]] */;
6826 val
* var27
/* : Map[MClassDef, Set[MType]] */;
6827 val
* var28
/* : nullable Object */;
6828 val
* var32
/* : BucketsColorer[MType, MType] */;
6829 val
* var_colorer
/* var colorer: BucketsColorer[MType, MType] */;
6830 val
* var33
/* : Map[Object, Int] */;
6831 val
* var35
/* : Map[MClassType, Array[nullable MType]] */;
6832 val
* var37
/* : HashSet[MType] */;
6833 val
* var_all_unresolved
/* var all_unresolved: HashSet[MType] */;
6834 val
* var38
/* : Map[MClassDef, Set[MType]] */;
6835 val
* var40
/* : Map[MClassDef, Set[MType]] */;
6836 val
* var41
/* : Collection[nullable Object] */;
6837 val
* var_42
/* var : RemovableCollection[Set[MType]] */;
6838 val
* var43
/* : Iterator[nullable Object] */;
6839 val
* var_44
/* var : Iterator[Set[MType]] */;
6840 short int var45
/* : Bool */;
6841 val
* var46
/* : nullable Object */;
6842 val
* var_t
/* var t: Set[MType] */;
6843 val
* var49
/* : HashMap[MType, Int] */;
6844 val
* var_all_unresolved_types_colors
/* var all_unresolved_types_colors: HashMap[MType, Int] */;
6845 val
* var_50
/* var : HashSet[MType] */;
6846 val
* var51
/* : Iterator[Object] */;
6847 val
* var_52
/* var : Iterator[MType] */;
6848 short int var53
/* : Bool */;
6849 val
* var54
/* : nullable Object */;
6850 val
* var_t55
/* var t: MType */;
6851 val
* var56
/* : Map[MType, Int] */;
6852 val
* var58
/* : Map[MType, Int] */;
6853 short int var59
/* : Bool */;
6854 val
* var60
/* : Map[MType, Int] */;
6855 val
* var62
/* : Map[MType, Int] */;
6856 val
* var63
/* : nullable Object */;
6857 long var64
/* : Int */;
6858 long var65
/* : Int */;
6859 long var67
/* : Int */;
6860 val
* var68
/* : nullable Object */;
6862 var
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypeabstract_collection__Setmodel__MType
);
6864 ((void (*)(val
*))(var
->class->vft
[COLOR_kernel__Object__init
]))(var
) /* init on <var:HashMap[MClassType, Set[MType]]>*/;
6866 var_mtype2unresolved
= var
;
6868 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
6869 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
6875 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6876 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 482);
6879 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var1) on <var1:nullable RapidTypeAnalysis> */
6880 if (unlikely(var1
== NULL
)) {
6881 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6882 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
6885 var6
= var1
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <var1:nullable RapidTypeAnalysis> */
6886 if (unlikely(var6
== NULL
)) {
6887 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
6888 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
6897 var7
= hash_collection__HashSet__iterator(var_
);
6902 var9
= ((short int (*)(val
*))(var_8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_8
) /* is_ok on <var_8:Iterator[MClassType]>*/;
6906 var10
= ((val
* (*)(val
*))(var_8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_8
) /* item on <var_8:Iterator[MClassType]>*/;
6909 var11
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
6911 ((void (*)(val
*))(var11
->class->vft
[COLOR_kernel__Object__init
]))(var11
) /* init on <var11:HashSet[MType]>*/;
6915 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
6916 var14
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
6917 if (unlikely(var14
== NULL
)) {
6918 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6919 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
6923 RET_LABEL13
:(void)0;
6927 var15
= model__MClassType__collect_mclassdefs(var_mtype
, var12
);
6931 var17
= ((val
* (*)(val
*))(var_16
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_16
) /* iterator on <var_16:Set[MClassDef]>*/;
6936 var19
= ((short int (*)(val
*))(var_18
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_18
) /* is_ok on <var_18:Iterator[MClassDef]>*/;
6940 var20
= ((val
* (*)(val
*))(var_18
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_18
) /* item on <var_18:Iterator[MClassDef]>*/;
6944 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on <self:SeparateCompiler> */
6945 var23
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <self:SeparateCompiler> */
6946 if (unlikely(var23
== NULL
)) {
6947 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
6948 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 157);
6952 RET_LABEL22
:(void)0;
6956 var24
= abstract_collection__MapRead__has_key(var21
, var_cd
);
6960 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on <self:SeparateCompiler> */
6961 var27
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <self:SeparateCompiler> */
6962 if (unlikely(var27
== NULL
)) {
6963 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
6964 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 157);
6968 RET_LABEL26
:(void)0;
6972 var28
= ((val
* (*)(val
*, val
*))(var25
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var25
, var_cd
) /* [] on <var25:Map[MClassDef, Set[MType]]>*/;
6975 abstract_collection__SimpleCollection__add_all(var_set
, var28
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_set:HashSet[MType]>*/
6980 ((void (*)(val
*))(var_18
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_18
) /* next on <var_18:Iterator[MClassDef]>*/;
6986 BREAK_label
: (void)0;
6988 { /* Inline abstract_collection#Iterator#finish (var_18) on <var_18:Iterator[MClassDef]> */
6989 RET_LABEL29
:(void)0;
6993 hash_collection__HashMap___91d_93d_61d(var_mtype2unresolved
, var_mtype
, var_set
); /* Direct call hash_collection#HashMap#[]= on <var_mtype2unresolved:HashMap[MClassType, Set[MType]]>*/
6996 ((void (*)(val
*))(var_8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_8
) /* next on <var_8:Iterator[MClassType]>*/;
7002 BREAK_label30
: (void)0;
7004 { /* Inline abstract_collection#Iterator#finish (var_8) on <var_8:Iterator[MClassType]> */
7005 RET_LABEL31
:(void)0;
7008 var32
= NEW_coloring__BucketsColorer(&type_coloring__BucketsColorermodel__MTypemodel__MType
);
7010 ((void (*)(val
*))(var32
->class->vft
[COLOR_kernel__Object__init
]))(var32
) /* init on <var32:BucketsColorer[MType, MType]>*/;
7012 var_colorer
= var32
;
7014 var33
= coloring__BucketsColorer__colorize(var_colorer
, var_mtype2unresolved
);
7017 { /* Inline separate_compiler#SeparateCompiler#opentype_colors= (self,var33) on <self:SeparateCompiler> */
7018 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___opentype_colors
].val
= var33
; /* _opentype_colors on <self:SeparateCompiler> */
7019 RET_LABEL34
:(void)0;
7023 var35
= separate_compiler__SeparateCompiler__build_resolution_tables(self
, var_mtype2unresolved
);
7026 { /* Inline separate_compiler#SeparateCompiler#resolution_tables= (self,var35) on <self:SeparateCompiler> */
7027 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___resolution_tables
].val
= var35
; /* _resolution_tables on <self:SeparateCompiler> */
7028 RET_LABEL36
:(void)0;
7031 var37
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
7033 ((void (*)(val
*))(var37
->class->vft
[COLOR_kernel__Object__init
]))(var37
) /* init on <var37:HashSet[MType]>*/;
7035 var_all_unresolved
= var37
;
7037 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on <self:SeparateCompiler> */
7038 var40
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <self:SeparateCompiler> */
7039 if (unlikely(var40
== NULL
)) {
7040 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
7041 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 157);
7045 RET_LABEL39
:(void)0;
7049 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_abstract_collection__MapRead__values
]))(var38
) /* values on <var38:Map[MClassDef, Set[MType]]>*/;
7053 var43
= ((val
* (*)(val
*))(var_42
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_42
) /* iterator on <var_42:RemovableCollection[Set[MType]]>*/;
7058 var45
= ((short int (*)(val
*))(var_44
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_44
) /* is_ok on <var_44:Iterator[Set[MType]]>*/;
7062 var46
= ((val
* (*)(val
*))(var_44
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_44
) /* item on <var_44:Iterator[Set[MType]]>*/;
7066 abstract_collection__SimpleCollection__add_all(var_all_unresolved
, var_t
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_all_unresolved:HashSet[MType]>*/
7069 ((void (*)(val
*))(var_44
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_44
) /* next on <var_44:Iterator[Set[MType]]>*/;
7075 BREAK_label47
: (void)0;
7077 { /* Inline abstract_collection#Iterator#finish (var_44) on <var_44:Iterator[Set[MType]]> */
7078 RET_LABEL48
:(void)0;
7081 var49
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypekernel__Int
);
7083 ((void (*)(val
*))(var49
->class->vft
[COLOR_kernel__Object__init
]))(var49
) /* init on <var49:HashMap[MType, Int]>*/;
7085 var_all_unresolved_types_colors
= var49
;
7086 var_50
= var_all_unresolved
;
7088 var51
= hash_collection__HashSet__iterator(var_50
);
7093 var53
= ((short int (*)(val
*))(var_52
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_52
) /* is_ok on <var_52:Iterator[MType]>*/;
7097 var54
= ((val
* (*)(val
*))(var_52
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_52
) /* item on <var_52:Iterator[MType]>*/;
7101 { /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on <self:SeparateCompiler> */
7102 var58
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___opentype_colors
].val
; /* _opentype_colors on <self:SeparateCompiler> */
7103 if (unlikely(var58
== NULL
)) {
7104 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
7105 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 161);
7109 RET_LABEL57
:(void)0;
7113 var59
= abstract_collection__MapRead__has_key(var56
, var_t55
);
7117 { /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on <self:SeparateCompiler> */
7118 var62
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___opentype_colors
].val
; /* _opentype_colors on <self:SeparateCompiler> */
7119 if (unlikely(var62
== NULL
)) {
7120 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
7121 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 161);
7125 RET_LABEL61
:(void)0;
7129 var63
= ((val
* (*)(val
*, val
*))(var60
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var60
, var_t55
) /* [] on <var60:Map[MType, Int]>*/;
7132 hash_collection__HashMap___91d_93d_61d(var_all_unresolved_types_colors
, var_t55
, var63
); /* Direct call hash_collection#HashMap#[]= on <var_all_unresolved_types_colors:HashMap[MType, Int]>*/
7137 { /* Inline kernel#Int#unary - (var64) on <var64:Int> */
7141 RET_LABEL66
:(void)0;
7145 var68
= BOX_kernel__Int(var65
); /* autobox from Int to nullable Object */
7146 hash_collection__HashMap___91d_93d_61d(var_all_unresolved_types_colors
, var_t55
, var68
); /* Direct call hash_collection#HashMap#[]= on <var_all_unresolved_types_colors:HashMap[MType, Int]>*/
7150 ((void (*)(val
*))(var_52
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_52
) /* next on <var_52:Iterator[MType]>*/;
7156 BREAK_label69
: (void)0;
7158 { /* Inline abstract_collection#Iterator#finish (var_52) on <var_52:Iterator[MType]> */
7159 RET_LABEL70
:(void)0;
7163 separate_compiler__SeparateCompiler__compile_color_consts(self
, var_all_unresolved_types_colors
); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:SeparateCompiler>*/
7167 /* method separate_compiler#SeparateCompiler#compile_resolution_tables for (self: Object, Set[MType]) */
7168 void VIRTUAL_separate_compiler__SeparateCompiler__compile_resolution_tables(val
* self
, val
* p0
) {
7169 separate_compiler__SeparateCompiler__compile_resolution_tables(self
, p0
); /* Direct call separate_compiler#SeparateCompiler#compile_resolution_tables on <self:Object(SeparateCompiler)>*/
7172 /* method separate_compiler#SeparateCompiler#build_resolution_tables for (self: SeparateCompiler, Map[MClassType, Set[MType]]): Map[MClassType, Array[nullable MType]] */
7173 val
* separate_compiler__SeparateCompiler__build_resolution_tables(val
* self
, val
* p0
) {
7174 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
7175 val
* var_elements
/* var elements: Map[MClassType, Set[MType]] */;
7176 val
* var1
/* : HashMap[MClassType, Array[nullable MType]] */;
7177 val
* var_tables
/* var tables: HashMap[MClassType, Array[nullable MType]] */;
7178 val
* var_
/* var : Map[MClassType, Set[MType]] */;
7179 val
* var2
/* : MapIterator[Object, nullable Object] */;
7180 val
* var_3
/* var : MapIterator[MClassType, Set[MType]] */;
7181 short int var4
/* : Bool */;
7182 val
* var5
/* : Object */;
7183 val
* var_mclasstype
/* var mclasstype: MClassType */;
7184 val
* var6
/* : nullable Object */;
7185 val
* var_mtypes
/* var mtypes: Set[MType] */;
7186 val
* var7
/* : Array[nullable MType] */;
7187 val
* var_table
/* var table: Array[nullable MType] */;
7188 val
* var_8
/* var : Set[MType] */;
7189 val
* var9
/* : Iterator[nullable Object] */;
7190 val
* var_10
/* var : Iterator[MType] */;
7191 short int var11
/* : Bool */;
7192 val
* var12
/* : nullable Object */;
7193 val
* var_mtype
/* var mtype: MType */;
7194 val
* var13
/* : Map[MType, Int] */;
7195 val
* var15
/* : Map[MType, Int] */;
7196 val
* var16
/* : nullable Object */;
7197 long var17
/* : Int */;
7198 long var_color
/* var color: Int */;
7199 long var18
/* : Int */;
7200 long var20
/* : Int */;
7201 short int var21
/* : Bool */;
7202 short int var23
/* : Bool */;
7205 const char* var_class_name
;
7206 short int var24
/* : Bool */;
7207 long var25
/* : Int */;
7208 long var27
/* : Int */;
7209 long var_i
/* var i: Int */;
7210 long var_28
/* var : Int */;
7211 short int var29
/* : Bool */;
7212 short int var31
/* : Bool */;
7215 const char* var_class_name34
;
7216 short int var35
/* : Bool */;
7217 val
* var36
/* : null */;
7218 long var37
/* : Int */;
7219 long var38
/* : Int */;
7221 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType
);
7223 ((void (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__init
]))(var1
) /* init on <var1:HashMap[MClassType, Array[nullable MType]]>*/;
7226 var_
= var_elements
;
7228 var2
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_
) /* iterator on <var_:Map[MClassType, Set[MType]]>*/;
7233 var4
= ((short int (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var_3
) /* is_ok on <var_3:MapIterator[MClassType, Set[MType]]>*/;
7237 var5
= ((val
* (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var_3
) /* key on <var_3:MapIterator[MClassType, Set[MType]]>*/;
7239 var_mclasstype
= var5
;
7241 var6
= ((val
* (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var_3
) /* item on <var_3:MapIterator[MClassType, Set[MType]]>*/;
7244 var7
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
7246 ((void (*)(val
*))(var7
->class->vft
[COLOR_kernel__Object__init
]))(var7
) /* init on <var7:Array[nullable MType]>*/;
7251 var9
= ((val
* (*)(val
*))(var_8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_8
) /* iterator on <var_8:Set[MType]>*/;
7256 var11
= ((short int (*)(val
*))(var_10
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_10
) /* is_ok on <var_10:Iterator[MType]>*/;
7260 var12
= ((val
* (*)(val
*))(var_10
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_10
) /* item on <var_10:Iterator[MType]>*/;
7264 { /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on <self:SeparateCompiler> */
7265 var15
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___opentype_colors
].val
; /* _opentype_colors on <self:SeparateCompiler> */
7266 if (unlikely(var15
== NULL
)) {
7267 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
7268 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 161);
7272 RET_LABEL14
:(void)0;
7276 var16
= ((val
* (*)(val
*, val
*))(var13
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var13
, var_mtype
) /* [] on <var13:Map[MType, Int]>*/;
7278 var17
= ((struct instance_kernel__Int
*)var16
)->value
; /* autounbox from nullable Object to Int */;
7281 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
7282 var20
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MType]> */
7284 RET_LABEL19
:(void)0;
7288 { /* Inline kernel#Int#<= (var18,var_color) on <var18:Int> */
7289 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
7290 /* <var_color:Int> isa OTHER */
7291 var23
= 1; /* easy <var_color:Int> isa OTHER*/
7292 if (unlikely(!var23
)) {
7293 var_class_name
= type_kernel__Int
.name
;
7294 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
7295 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
7298 var24
= var18
<= var_color
;
7301 RET_LABEL22
:(void)0;
7306 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
7307 var27
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MType]> */
7309 RET_LABEL26
:(void)0;
7316 { /* Inline kernel#Int#< (var_i,var_28) on <var_i:Int> */
7317 /* Covariant cast for argument 0 (i) <var_28:Int> isa OTHER */
7318 /* <var_28:Int> isa OTHER */
7319 var31
= 1; /* easy <var_28:Int> isa OTHER*/
7320 if (unlikely(!var31
)) {
7321 var_class_name34
= type_kernel__Int
.name
;
7322 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34
);
7323 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
7326 var35
= var_i
< var_28
;
7329 RET_LABEL30
:(void)0;
7335 array__Array___91d_93d_61d(var_table
, var_i
, var36
); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
7339 var38
= kernel__Int__successor(var_i
, var37
);
7346 BREAK_label
: (void)0;
7350 array__Array___91d_93d_61d(var_table
, var_color
, var_mtype
); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
7353 ((void (*)(val
*))(var_10
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_10
) /* next on <var_10:Iterator[MType]>*/;
7359 BREAK_label39
: (void)0;
7361 { /* Inline abstract_collection#Iterator#finish (var_10) on <var_10:Iterator[MType]> */
7362 RET_LABEL40
:(void)0;
7366 hash_collection__HashMap___91d_93d_61d(var_tables
, var_mclasstype
, var_table
); /* Direct call hash_collection#HashMap#[]= on <var_tables:HashMap[MClassType, Array[nullable MType]]>*/
7369 ((void (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var_3
) /* next on <var_3:MapIterator[MClassType, Set[MType]]>*/;
7375 BREAK_label41
: (void)0;
7377 { /* Inline abstract_collection#MapIterator#finish (var_3) on <var_3:MapIterator[MClassType, Set[MType]]> */
7378 RET_LABEL42
:(void)0;
7386 /* method separate_compiler#SeparateCompiler#build_resolution_tables for (self: Object, Map[MClassType, Set[MType]]): Map[MClassType, Array[nullable MType]] */
7387 val
* VIRTUAL_separate_compiler__SeparateCompiler__build_resolution_tables(val
* self
, val
* p0
) {
7388 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
7389 val
* var1
/* : Map[MClassType, Array[nullable MType]] */;
7390 var1
= separate_compiler__SeparateCompiler__build_resolution_tables(self
, p0
);
7395 /* method separate_compiler#SeparateCompiler#compile_module_to_c for (self: SeparateCompiler, MModule) */
7396 void separate_compiler__SeparateCompiler__compile_module_to_c(val
* self
, val
* p0
) {
7397 val
* var_mmodule
/* var mmodule: MModule */;
7398 val
* var
/* : MModule */;
7399 val
* var2
/* : MModule */;
7400 val
* var_old_module
/* var old_module: MModule */;
7401 val
* var4
/* : Array[MClassDef] */;
7402 val
* var6
/* : Array[MClassDef] */;
7403 val
* var_
/* var : Array[MClassDef] */;
7404 val
* var7
/* : ArrayIterator[nullable Object] */;
7405 val
* var_8
/* var : ArrayIterator[MClassDef] */;
7406 short int var9
/* : Bool */;
7407 val
* var10
/* : nullable Object */;
7408 val
* var_cd
/* var cd: MClassDef */;
7409 val
* var11
/* : Array[MPropDef] */;
7410 val
* var13
/* : Array[MPropDef] */;
7411 val
* var_14
/* var : Array[MPropDef] */;
7412 val
* var15
/* : ArrayIterator[nullable Object] */;
7413 val
* var_16
/* var : ArrayIterator[MPropDef] */;
7414 short int var17
/* : Bool */;
7415 val
* var18
/* : nullable Object */;
7416 val
* var_pd
/* var pd: MPropDef */;
7417 short int var19
/* : Bool */;
7420 short int var20
/* : Bool */;
7421 val
* var21
/* : nullable RapidTypeAnalysis */;
7422 val
* var23
/* : nullable RapidTypeAnalysis */;
7423 val
* var_rta
/* var rta: nullable RapidTypeAnalysis */;
7424 short int var24
/* : Bool */;
7425 short int var25
/* : Bool */;
7426 val
* var26
/* : ModelBuilder */;
7427 val
* var28
/* : ModelBuilder */;
7428 val
* var29
/* : ToolContext */;
7429 val
* var31
/* : ToolContext */;
7430 val
* var32
/* : OptionBool */;
7431 val
* var34
/* : OptionBool */;
7432 val
* var35
/* : nullable Object */;
7433 val
* var37
/* : nullable Object */;
7434 short int var38
/* : Bool */;
7435 short int var_39
/* var : Bool */;
7436 val
* var40
/* : null */;
7437 short int var41
/* : Bool */;
7438 short int var42
/* : Bool */;
7439 val
* var_other
/* var other: nullable Object */;
7440 short int var44
/* : Bool */;
7441 short int var45
/* : Bool */;
7442 short int var46
/* : Bool */;
7443 short int var_47
/* var : Bool */;
7444 val
* var48
/* : HashSet[MMethodDef] */;
7445 val
* var50
/* : HashSet[MMethodDef] */;
7446 short int var51
/* : Bool */;
7447 short int var52
/* : Bool */;
7448 val
* var53
/* : AbstractRuntimeFunction */;
7449 val
* var_r
/* var r: AbstractRuntimeFunction */;
7450 val
* var54
/* : AbstractRuntimeFunction */;
7451 val
* var_r2
/* var r2: AbstractRuntimeFunction */;
7454 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
7455 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
7456 if (unlikely(var2
== NULL
)) {
7457 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7458 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
7465 var_old_module
= var
;
7467 { /* Inline abstract_compiler#AbstractCompiler#mainmodule= (self,var_mmodule) on <self:SeparateCompiler> */
7468 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
= var_mmodule
; /* _mainmodule on <self:SeparateCompiler> */
7473 { /* Inline model#MModule#mclassdefs (var_mmodule) on <var_mmodule:MModule> */
7474 var6
= var_mmodule
->attrs
[COLOR_model__MModule___mclassdefs
].val
; /* _mclassdefs on <var_mmodule:MModule> */
7475 if (unlikely(var6
== NULL
)) {
7476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
7477 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 139);
7486 var7
= array__AbstractArrayRead__iterator(var_
);
7491 var9
= array__ArrayIterator__is_ok(var_8
);
7495 var10
= array__ArrayIterator__item(var_8
);
7499 { /* Inline model#MClassDef#mpropdefs (var_cd) on <var_cd:MClassDef> */
7500 var13
= var_cd
->attrs
[COLOR_model__MClassDef___mpropdefs
].val
; /* _mpropdefs on <var_cd:MClassDef> */
7501 if (unlikely(var13
== NULL
)) {
7502 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
7503 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 591);
7507 RET_LABEL12
:(void)0;
7512 var15
= array__AbstractArrayRead__iterator(var_14
);
7517 var17
= array__ArrayIterator__is_ok(var_16
);
7521 var18
= array__ArrayIterator__item(var_16
);
7524 /* <var_pd:MPropDef> isa MMethodDef */
7525 cltype
= type_model__MMethodDef
.color
;
7526 idtype
= type_model__MMethodDef
.id
;
7527 if(cltype
>= var_pd
->type
->table_size
) {
7530 var19
= var_pd
->type
->type_table
[cltype
] == idtype
;
7538 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
7539 var23
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
7541 RET_LABEL22
:(void)0;
7546 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
7547 var28
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
7548 if (unlikely(var28
== NULL
)) {
7549 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7550 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
7554 RET_LABEL27
:(void)0;
7558 { /* Inline modelbuilder#ModelBuilder#toolcontext (var26) on <var26:ModelBuilder> */
7559 var31
= var26
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var26:ModelBuilder> */
7560 if (unlikely(var31
== NULL
)) {
7561 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7562 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
7566 RET_LABEL30
:(void)0;
7570 { /* Inline separate_compiler#ToolContext#opt_skip_dead_methods (var29) on <var29:ToolContext> */
7571 var34
= var29
->attrs
[COLOR_separate_compiler__ToolContext___opt_skip_dead_methods
].val
; /* _opt_skip_dead_methods on <var29:ToolContext> */
7572 if (unlikely(var34
== NULL
)) {
7573 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods");
7574 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 38);
7578 RET_LABEL33
:(void)0;
7582 { /* Inline opts#Option#value (var32) on <var32:OptionBool> */
7583 var37
= var32
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var32:OptionBool> */
7585 RET_LABEL36
:(void)0;
7588 var38
= ((struct instance_kernel__Bool
*)var35
)->value
; /* autounbox from nullable Object to Bool */;
7592 if (var_rta
== NULL
) {
7593 var41
= 0; /* is null */
7595 var41
= 1; /* arg is null and recv is not */
7598 { /* Inline kernel#Object#!= (var_rta,var40) on <var_rta:nullable RapidTypeAnalysis> */
7601 var45
= ((short int (*)(val
*, val
*))(var_rta
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_rta
, var_other
) /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/;
7607 RET_LABEL43
:(void)0;
7618 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
7619 var50
= var_rta
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
7620 if (unlikely(var50
== NULL
)) {
7621 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
7622 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 72);
7626 RET_LABEL49
:(void)0;
7630 var51
= hash_collection__HashSet__has(var48
, var_pd
);
7642 var53
= separate_compiler__MMethodDef__separate_runtime_function(var_pd
);
7646 ((void (*)(val
*, val
*))(var_r
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__compile_to_c
]))(var_r
, self
) /* compile_to_c on <var_r:AbstractRuntimeFunction>*/;
7649 var54
= separate_compiler__MMethodDef__virtual_runtime_function(var_pd
);
7653 ((void (*)(val
*, val
*))(var_r2
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__compile_to_c
]))(var_r2
, self
) /* compile_to_c on <var_r2:AbstractRuntimeFunction>*/;
7655 BREAK_label
: (void)0;
7657 array__ArrayIterator__next(var_16
); /* Direct call array#ArrayIterator#next on <var_16:ArrayIterator[MPropDef]>*/
7663 BREAK_label55
: (void)0;
7665 { /* Inline abstract_collection#Iterator#finish (var_16) on <var_16:ArrayIterator[MPropDef]> */
7666 RET_LABEL56
:(void)0;
7670 array__ArrayIterator__next(var_8
); /* Direct call array#ArrayIterator#next on <var_8:ArrayIterator[MClassDef]>*/
7676 BREAK_label57
: (void)0;
7678 { /* Inline abstract_collection#Iterator#finish (var_8) on <var_8:ArrayIterator[MClassDef]> */
7679 RET_LABEL58
:(void)0;
7683 { /* Inline abstract_compiler#AbstractCompiler#mainmodule= (self,var_old_module) on <self:SeparateCompiler> */
7684 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
= var_old_module
; /* _mainmodule on <self:SeparateCompiler> */
7685 RET_LABEL59
:(void)0;
7690 /* method separate_compiler#SeparateCompiler#compile_module_to_c for (self: Object, MModule) */
7691 void VIRTUAL_separate_compiler__SeparateCompiler__compile_module_to_c(val
* self
, val
* p0
) {
7692 separate_compiler__SeparateCompiler__compile_module_to_c(self
, p0
); /* Direct call separate_compiler#SeparateCompiler#compile_module_to_c on <self:Object(SeparateCompiler)>*/
7695 /* method separate_compiler#SeparateCompiler#compile_type_to_c for (self: SeparateCompiler, MType) */
7696 void separate_compiler__SeparateCompiler__compile_type_to_c(val
* self
, val
* p0
) {
7697 val
* var_mtype
/* var mtype: MType */;
7698 short int var
/* : Bool */;
7699 short int var1
/* : Bool */;
7700 short int var2
/* : Bool */;
7701 short int var3
/* : Bool */;
7704 short int var_
/* var : Bool */;
7705 val
* var4
/* : nullable RapidTypeAnalysis */;
7706 val
* var6
/* : nullable RapidTypeAnalysis */;
7707 val
* var7
/* : HashSet[MClassType] */;
7708 val
* var9
/* : HashSet[MClassType] */;
7709 short int var10
/* : Bool */;
7710 short int var_is_live
/* var is_live: Bool */;
7711 val
* var11
/* : nullable RapidTypeAnalysis */;
7712 val
* var13
/* : nullable RapidTypeAnalysis */;
7713 val
* var14
/* : HashSet[MType] */;
7714 val
* var16
/* : HashSet[MType] */;
7715 short int var17
/* : Bool */;
7716 short int var_is_cast_live
/* var is_cast_live: Bool */;
7717 val
* var18
/* : String */;
7718 val
* var_c_name
/* var c_name: String */;
7719 val
* var19
/* : SeparateCompilerVisitor */;
7720 val
* var_v
/* var v: SeparateCompilerVisitor */;
7721 static val
* varonce
;
7722 val
* var20
/* : String */;
7723 char* var21
/* : NativeString */;
7724 long var22
/* : Int */;
7725 val
* var23
/* : FlatString */;
7726 static val
* varonce24
;
7727 val
* var25
/* : String */;
7728 char* var26
/* : NativeString */;
7729 long var27
/* : Int */;
7730 val
* var28
/* : FlatString */;
7731 val
* var29
/* : Array[Object] */;
7732 long var30
/* : Int */;
7733 val
* var31
/* : NativeArray[Object] */;
7734 val
* var32
/* : String */;
7735 static val
* varonce33
;
7736 val
* var34
/* : String */;
7737 char* var35
/* : NativeString */;
7738 long var36
/* : Int */;
7739 val
* var37
/* : FlatString */;
7740 val
* var38
/* : Array[Object] */;
7741 long var39
/* : Int */;
7742 val
* var40
/* : NativeArray[Object] */;
7743 val
* var41
/* : String */;
7744 static val
* varonce42
;
7745 val
* var43
/* : String */;
7746 char* var44
/* : NativeString */;
7747 long var45
/* : Int */;
7748 val
* var46
/* : FlatString */;
7749 static val
* varonce47
;
7750 val
* var48
/* : String */;
7751 char* var49
/* : NativeString */;
7752 long var50
/* : Int */;
7753 val
* var51
/* : FlatString */;
7754 val
* var52
/* : Array[Object] */;
7755 long var53
/* : Int */;
7756 val
* var54
/* : NativeArray[Object] */;
7757 val
* var55
/* : String */;
7758 static val
* varonce56
;
7759 val
* var57
/* : String */;
7760 char* var58
/* : NativeString */;
7761 long var59
/* : Int */;
7762 val
* var60
/* : FlatString */;
7763 static val
* varonce61
;
7764 val
* var62
/* : String */;
7765 char* var63
/* : NativeString */;
7766 long var64
/* : Int */;
7767 val
* var65
/* : FlatString */;
7768 val
* var66
/* : Array[Object] */;
7769 long var67
/* : Int */;
7770 val
* var68
/* : NativeArray[Object] */;
7771 val
* var69
/* : String */;
7772 val
* var70
/* : Map[MType, Int] */;
7773 val
* var72
/* : Map[MType, Int] */;
7774 val
* var73
/* : nullable Object */;
7775 static val
* varonce74
;
7776 val
* var75
/* : String */;
7777 char* var76
/* : NativeString */;
7778 long var77
/* : Int */;
7779 val
* var78
/* : FlatString */;
7780 val
* var79
/* : Array[Object] */;
7781 long var80
/* : Int */;
7782 val
* var81
/* : NativeArray[Object] */;
7783 val
* var82
/* : String */;
7784 static val
* varonce83
;
7785 val
* var84
/* : String */;
7786 char* var85
/* : NativeString */;
7787 long var86
/* : Int */;
7788 val
* var87
/* : FlatString */;
7789 static val
* varonce88
;
7790 val
* var89
/* : String */;
7791 char* var90
/* : NativeString */;
7792 long var91
/* : Int */;
7793 val
* var92
/* : FlatString */;
7794 static val
* varonce93
;
7795 val
* var94
/* : String */;
7796 char* var95
/* : NativeString */;
7797 long var96
/* : Int */;
7798 val
* var97
/* : FlatString */;
7799 val
* var98
/* : Array[Object] */;
7800 long var99
/* : Int */;
7801 val
* var100
/* : NativeArray[Object] */;
7802 val
* var101
/* : String */;
7803 val
* var102
/* : Map[MType, Int] */;
7804 val
* var104
/* : Map[MType, Int] */;
7805 val
* var105
/* : nullable Object */;
7806 static val
* varonce106
;
7807 val
* var107
/* : String */;
7808 char* var108
/* : NativeString */;
7809 long var109
/* : Int */;
7810 val
* var110
/* : FlatString */;
7811 val
* var111
/* : Array[Object] */;
7812 long var112
/* : Int */;
7813 val
* var113
/* : NativeArray[Object] */;
7814 val
* var114
/* : String */;
7815 static val
* varonce115
;
7816 val
* var116
/* : String */;
7817 char* var117
/* : NativeString */;
7818 long var118
/* : Int */;
7819 val
* var119
/* : FlatString */;
7820 short int var120
/* : Bool */;
7823 static val
* varonce123
;
7824 val
* var124
/* : String */;
7825 char* var125
/* : NativeString */;
7826 long var126
/* : Int */;
7827 val
* var127
/* : FlatString */;
7828 static val
* varonce128
;
7829 val
* var129
/* : String */;
7830 char* var130
/* : NativeString */;
7831 long var131
/* : Int */;
7832 val
* var132
/* : FlatString */;
7833 val
* var133
/* : MType */;
7834 val
* var_mclass_type
/* var mclass_type: MType */;
7835 short int var134
/* : Bool */;
7838 val
* var137
/* : Map[MClassType, Array[nullable MType]] */;
7839 val
* var139
/* : Map[MClassType, Array[nullable MType]] */;
7840 val
* var140
/* : nullable Object */;
7841 short int var141
/* : Bool */;
7842 static val
* varonce142
;
7843 val
* var143
/* : String */;
7844 char* var144
/* : NativeString */;
7845 long var145
/* : Int */;
7846 val
* var146
/* : FlatString */;
7847 static val
* varonce147
;
7848 val
* var148
/* : String */;
7849 char* var149
/* : NativeString */;
7850 long var150
/* : Int */;
7851 val
* var151
/* : FlatString */;
7852 val
* var152
/* : Array[Object] */;
7853 long var153
/* : Int */;
7854 val
* var154
/* : NativeArray[Object] */;
7855 val
* var155
/* : String */;
7856 static val
* varonce156
;
7857 val
* var157
/* : String */;
7858 char* var158
/* : NativeString */;
7859 long var159
/* : Int */;
7860 val
* var160
/* : FlatString */;
7861 static val
* varonce161
;
7862 val
* var162
/* : String */;
7863 char* var163
/* : NativeString */;
7864 long var164
/* : Int */;
7865 val
* var165
/* : FlatString */;
7866 val
* var166
/* : Array[Object] */;
7867 long var167
/* : Int */;
7868 val
* var168
/* : NativeArray[Object] */;
7869 val
* var169
/* : String */;
7870 static val
* varonce170
;
7871 val
* var171
/* : String */;
7872 char* var172
/* : NativeString */;
7873 long var173
/* : Int */;
7874 val
* var174
/* : FlatString */;
7875 val
* var175
/* : Map[MType, Array[nullable MType]] */;
7876 val
* var177
/* : Map[MType, Array[nullable MType]] */;
7877 val
* var178
/* : nullable Object */;
7878 long var179
/* : Int */;
7879 long var181
/* : Int */;
7880 static val
* varonce182
;
7881 val
* var183
/* : String */;
7882 char* var184
/* : NativeString */;
7883 long var185
/* : Int */;
7884 val
* var186
/* : FlatString */;
7885 val
* var187
/* : Array[Object] */;
7886 long var188
/* : Int */;
7887 val
* var189
/* : NativeArray[Object] */;
7888 val
* var190
/* : Object */;
7889 val
* var191
/* : String */;
7890 static val
* varonce192
;
7891 val
* var193
/* : String */;
7892 char* var194
/* : NativeString */;
7893 long var195
/* : Int */;
7894 val
* var196
/* : FlatString */;
7895 val
* var197
/* : Map[MType, Array[nullable MType]] */;
7896 val
* var199
/* : Map[MType, Array[nullable MType]] */;
7897 val
* var200
/* : nullable Object */;
7898 val
* var_201
/* var : Array[nullable MType] */;
7899 val
* var202
/* : ArrayIterator[nullable Object] */;
7900 val
* var_203
/* var : ArrayIterator[nullable MType] */;
7901 short int var204
/* : Bool */;
7902 val
* var205
/* : nullable Object */;
7903 val
* var_stype
/* var stype: nullable MType */;
7904 val
* var206
/* : null */;
7905 short int var207
/* : Bool */;
7906 short int var208
/* : Bool */;
7907 val
* var_other
/* var other: nullable Object */;
7908 short int var210
/* : Bool */;
7909 short int var212
/* : Bool */;
7910 static val
* varonce213
;
7911 val
* var214
/* : String */;
7912 char* var215
/* : NativeString */;
7913 long var216
/* : Int */;
7914 val
* var217
/* : FlatString */;
7915 val
* var218
/* : Map[MType, Int] */;
7916 val
* var220
/* : Map[MType, Int] */;
7917 val
* var221
/* : nullable Object */;
7918 static val
* varonce222
;
7919 val
* var223
/* : String */;
7920 char* var224
/* : NativeString */;
7921 long var225
/* : Int */;
7922 val
* var226
/* : FlatString */;
7923 static val
* varonce227
;
7924 val
* var228
/* : String */;
7925 char* var229
/* : NativeString */;
7926 long var230
/* : Int */;
7927 val
* var231
/* : FlatString */;
7928 val
* var232
/* : Array[Object] */;
7929 long var233
/* : Int */;
7930 val
* var234
/* : NativeArray[Object] */;
7931 val
* var235
/* : String */;
7932 static val
* varonce237
;
7933 val
* var238
/* : String */;
7934 char* var239
/* : NativeString */;
7935 long var240
/* : Int */;
7936 val
* var241
/* : FlatString */;
7937 static val
* varonce242
;
7938 val
* var243
/* : String */;
7939 char* var244
/* : NativeString */;
7940 long var245
/* : Int */;
7941 val
* var246
/* : FlatString */;
7942 static val
* varonce247
;
7943 val
* var248
/* : String */;
7944 char* var249
/* : NativeString */;
7945 long var250
/* : Int */;
7946 val
* var251
/* : FlatString */;
7949 var
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
7952 if (unlikely(!var1
)) {
7953 PRINT_ERROR("Runtime error: %s", "Assert failed");
7954 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 561);
7957 /* <var_mtype:MType> isa MClassType */
7958 cltype
= type_model__MClassType
.color
;
7959 idtype
= type_model__MClassType
.id
;
7960 if(cltype
>= var_mtype
->type
->table_size
) {
7963 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7968 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
7969 var6
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
7975 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7976 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 562);
7979 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var4) on <var4:nullable RapidTypeAnalysis> */
7980 if (unlikely(var4
== NULL
)) {
7981 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7982 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
7985 var9
= var4
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <var4:nullable RapidTypeAnalysis> */
7986 if (unlikely(var9
== NULL
)) {
7987 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
7988 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
7996 var10
= hash_collection__HashSet__has(var7
, var_mtype
);
8004 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
8005 var13
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
8007 RET_LABEL12
:(void)0;
8010 if (var11
== NULL
) {
8011 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8012 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 563);
8015 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (var11) on <var11:nullable RapidTypeAnalysis> */
8016 if (unlikely(var11
== NULL
)) {
8017 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8018 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 65);
8021 var16
= var11
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <var11:nullable RapidTypeAnalysis> */
8022 if (unlikely(var16
== NULL
)) {
8023 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
8024 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 65);
8028 RET_LABEL15
:(void)0;
8032 var17
= hash_collection__HashSet__has(var14
, var_mtype
);
8034 var_is_cast_live
= var17
;
8036 var18
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
8039 var19
= NEW_separate_compiler__SeparateCompilerVisitor(&type_separate_compiler__SeparateCompilerVisitor
);
8041 abstract_compiler__AbstractCompilerVisitor__init(var19
, self
); /* Direct call abstract_compiler#AbstractCompilerVisitor#init on <var19:SeparateCompilerVisitor>*/
8047 var21
= "/* runtime type ";
8049 var23
= string__NativeString__to_s_with_length(var21
, var22
);
8058 var28
= string__NativeString__to_s_with_length(var26
, var27
);
8062 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
8063 { /* var29 = array_instance Array[Object] */
8065 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
8066 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var20
;
8067 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var_mtype
;
8068 ((struct instance_array__NativeArray
*)var31
)->values
[2] = (val
*) var25
;
8070 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
8074 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
8077 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var32
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8084 var37
= string__NativeString__to_s_with_length(var35
, var36
);
8088 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
8089 { /* var38 = array_instance Array[Object] */
8091 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
8092 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var34
;
8093 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var_c_name
;
8095 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
8099 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
8104 var44
= "extern const struct type type_";
8106 var46
= string__NativeString__to_s_with_length(var44
, var45
);
8115 var51
= string__NativeString__to_s_with_length(var49
, var50
);
8119 var52
= NEW_array__Array(&type_array__Arraykernel__Object
);
8120 { /* var52 = array_instance Array[Object] */
8122 var54
= NEW_array__NativeArray(var53
, &type_array__NativeArraykernel__Object
);
8123 ((struct instance_array__NativeArray
*)var54
)->values
[0] = (val
*) var43
;
8124 ((struct instance_array__NativeArray
*)var54
)->values
[1] = (val
*) var_c_name
;
8125 ((struct instance_array__NativeArray
*)var54
)->values
[2] = (val
*) var48
;
8127 ((void (*)(val
*, val
*, long))(var52
->class->vft
[COLOR_array__Array__with_native
]))(var52
, var54
, var53
) /* with_native on <var52:Array[Object]>*/;
8131 var55
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_string__Object__to_s
]))(var52
) /* to_s on <var52:Array[Object]>*/;
8134 abstract_compiler__AbstractCompiler__provide_declaration(self
, var41
, var55
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
8139 var58
= "const struct type type_";
8141 var60
= string__NativeString__to_s_with_length(var58
, var59
);
8150 var65
= string__NativeString__to_s_with_length(var63
, var64
);
8154 var66
= NEW_array__Array(&type_array__Arraykernel__Object
);
8155 { /* var66 = array_instance Array[Object] */
8157 var68
= NEW_array__NativeArray(var67
, &type_array__NativeArraykernel__Object
);
8158 ((struct instance_array__NativeArray
*)var68
)->values
[0] = (val
*) var57
;
8159 ((struct instance_array__NativeArray
*)var68
)->values
[1] = (val
*) var_c_name
;
8160 ((struct instance_array__NativeArray
*)var68
)->values
[2] = (val
*) var62
;
8162 ((void (*)(val
*, val
*, long))(var66
->class->vft
[COLOR_array__Array__with_native
]))(var66
, var68
, var67
) /* with_native on <var66:Array[Object]>*/;
8166 var69
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_string__Object__to_s
]))(var66
) /* to_s on <var66:Array[Object]>*/;
8169 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var69
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8171 if (var_is_cast_live
){
8173 { /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:SeparateCompiler> */
8174 var72
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_ids
].val
; /* _type_ids on <self:SeparateCompiler> */
8175 if (unlikely(var72
== NULL
)) {
8176 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
8177 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 159);
8181 RET_LABEL71
:(void)0;
8185 var73
= ((val
* (*)(val
*, val
*))(var70
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var70
, var_mtype
) /* [] on <var70:Map[MType, Int]>*/;
8192 var78
= string__NativeString__to_s_with_length(var76
, var77
);
8196 var79
= NEW_array__Array(&type_array__Arraykernel__Object
);
8197 { /* var79 = array_instance Array[Object] */
8199 var81
= NEW_array__NativeArray(var80
, &type_array__NativeArraykernel__Object
);
8200 ((struct instance_array__NativeArray
*)var81
)->values
[0] = (val
*) var73
;
8201 ((struct instance_array__NativeArray
*)var81
)->values
[1] = (val
*) var75
;
8203 ((void (*)(val
*, val
*, long))(var79
->class->vft
[COLOR_array__Array__with_native
]))(var79
, var81
, var80
) /* with_native on <var79:Array[Object]>*/;
8207 var82
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_string__Object__to_s
]))(var79
) /* to_s on <var79:Array[Object]>*/;
8210 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var82
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8216 var85
= "-1, /*CAST DEAD*/";
8218 var87
= string__NativeString__to_s_with_length(var85
, var86
);
8223 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var84
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8231 var92
= string__NativeString__to_s_with_length(var90
, var91
);
8238 var95
= "\", /* class_name_string */";
8240 var97
= string__NativeString__to_s_with_length(var95
, var96
);
8244 var98
= NEW_array__Array(&type_array__Arraykernel__Object
);
8245 { /* var98 = array_instance Array[Object] */
8247 var100
= NEW_array__NativeArray(var99
, &type_array__NativeArraykernel__Object
);
8248 ((struct instance_array__NativeArray
*)var100
)->values
[0] = (val
*) var89
;
8249 ((struct instance_array__NativeArray
*)var100
)->values
[1] = (val
*) var_mtype
;
8250 ((struct instance_array__NativeArray
*)var100
)->values
[2] = (val
*) var94
;
8252 ((void (*)(val
*, val
*, long))(var98
->class->vft
[COLOR_array__Array__with_native
]))(var98
, var100
, var99
) /* with_native on <var98:Array[Object]>*/;
8256 var101
= ((val
* (*)(val
*))(var98
->class->vft
[COLOR_string__Object__to_s
]))(var98
) /* to_s on <var98:Array[Object]>*/;
8259 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var101
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8261 if (var_is_cast_live
){
8263 { /* Inline separate_compiler#SeparateCompiler#type_colors (self) on <self:SeparateCompiler> */
8264 var104
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_colors
].val
; /* _type_colors on <self:SeparateCompiler> */
8265 if (unlikely(var104
== NULL
)) {
8266 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors");
8267 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 160);
8271 RET_LABEL103
:(void)0;
8275 var105
= ((val
* (*)(val
*, val
*))(var102
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var102
, var_mtype
) /* [] on <var102:Map[MType, Int]>*/;
8278 var107
= varonce106
;
8282 var110
= string__NativeString__to_s_with_length(var108
, var109
);
8284 varonce106
= var107
;
8286 var111
= NEW_array__Array(&type_array__Arraykernel__Object
);
8287 { /* var111 = array_instance Array[Object] */
8289 var113
= NEW_array__NativeArray(var112
, &type_array__NativeArraykernel__Object
);
8290 ((struct instance_array__NativeArray
*)var113
)->values
[0] = (val
*) var105
;
8291 ((struct instance_array__NativeArray
*)var113
)->values
[1] = (val
*) var107
;
8293 ((void (*)(val
*, val
*, long))(var111
->class->vft
[COLOR_array__Array__with_native
]))(var111
, var113
, var112
) /* with_native on <var111:Array[Object]>*/;
8297 var114
= ((val
* (*)(val
*))(var111
->class->vft
[COLOR_string__Object__to_s
]))(var111
) /* to_s on <var111:Array[Object]>*/;
8300 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var114
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8304 var116
= varonce115
;
8306 var117
= "-1, /*CAST DEAD*/";
8308 var119
= string__NativeString__to_s_with_length(var117
, var118
);
8310 varonce115
= var116
;
8313 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var116
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8316 /* <var_mtype:MType> isa MNullableType */
8317 cltype121
= type_model__MNullableType
.color
;
8318 idtype122
= type_model__MNullableType
.id
;
8319 if(cltype121
>= var_mtype
->type
->table_size
) {
8322 var120
= var_mtype
->type
->type_table
[cltype121
] == idtype122
;
8326 var124
= varonce123
;
8330 var127
= string__NativeString__to_s_with_length(var125
, var126
);
8332 varonce123
= var124
;
8335 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var124
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8339 var129
= varonce128
;
8343 var132
= string__NativeString__to_s_with_length(var130
, var131
);
8345 varonce128
= var129
;
8348 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var129
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8353 var133
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__as_notnullable
]))(var_mtype
) /* as_notnullable on <var_mtype:MType>*/;
8355 var_mclass_type
= var133
;
8356 /* <var_mclass_type:MType> isa MClassType */
8357 cltype135
= type_model__MClassType
.color
;
8358 idtype136
= type_model__MClassType
.id
;
8359 if(cltype135
>= var_mclass_type
->type
->table_size
) {
8362 var134
= var_mclass_type
->type
->type_table
[cltype135
] == idtype136
;
8364 if (unlikely(!var134
)) {
8365 PRINT_ERROR("Runtime error: %s", "Assert failed");
8366 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 601);
8370 { /* Inline separate_compiler#SeparateCompiler#resolution_tables (self) on <self:SeparateCompiler> */
8371 var139
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___resolution_tables
].val
; /* _resolution_tables on <self:SeparateCompiler> */
8372 if (unlikely(var139
== NULL
)) {
8373 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _resolution_tables");
8374 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 844);
8378 RET_LABEL138
:(void)0;
8382 var140
= ((val
* (*)(val
*, val
*))(var137
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var137
, var_mclass_type
) /* [] on <var137:Map[MClassType, Array[nullable MType]]>*/;
8385 var141
= array__AbstractArrayRead__is_empty(var140
);
8389 var143
= varonce142
;
8391 var144
= "NULL, /*NO RESOLUTIONS*/";
8393 var146
= string__NativeString__to_s_with_length(var144
, var145
);
8395 varonce142
= var143
;
8398 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var143
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8402 separate_compiler__SeparateCompiler__compile_type_resolution_table(self
, var_mtype
); /* Direct call separate_compiler#SeparateCompiler#compile_type_resolution_table on <self:SeparateCompiler>*/
8405 var148
= varonce147
;
8407 var149
= "resolution_table_";
8409 var151
= string__NativeString__to_s_with_length(var149
, var150
);
8411 varonce147
= var148
;
8413 var152
= NEW_array__Array(&type_array__Arraykernel__Object
);
8414 { /* var152 = array_instance Array[Object] */
8416 var154
= NEW_array__NativeArray(var153
, &type_array__NativeArraykernel__Object
);
8417 ((struct instance_array__NativeArray
*)var154
)->values
[0] = (val
*) var148
;
8418 ((struct instance_array__NativeArray
*)var154
)->values
[1] = (val
*) var_c_name
;
8420 ((void (*)(val
*, val
*, long))(var152
->class->vft
[COLOR_array__Array__with_native
]))(var152
, var154
, var153
) /* with_native on <var152:Array[Object]>*/;
8424 var155
= ((val
* (*)(val
*))(var152
->class->vft
[COLOR_string__Object__to_s
]))(var152
) /* to_s on <var152:Array[Object]>*/;
8427 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var155
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
8430 var157
= varonce156
;
8432 var158
= "&resolution_table_";
8434 var160
= string__NativeString__to_s_with_length(var158
, var159
);
8436 varonce156
= var157
;
8439 var162
= varonce161
;
8443 var165
= string__NativeString__to_s_with_length(var163
, var164
);
8445 varonce161
= var162
;
8447 var166
= NEW_array__Array(&type_array__Arraykernel__Object
);
8448 { /* var166 = array_instance Array[Object] */
8450 var168
= NEW_array__NativeArray(var167
, &type_array__NativeArraykernel__Object
);
8451 ((struct instance_array__NativeArray
*)var168
)->values
[0] = (val
*) var157
;
8452 ((struct instance_array__NativeArray
*)var168
)->values
[1] = (val
*) var_c_name
;
8453 ((struct instance_array__NativeArray
*)var168
)->values
[2] = (val
*) var162
;
8455 ((void (*)(val
*, val
*, long))(var166
->class->vft
[COLOR_array__Array__with_native
]))(var166
, var168
, var167
) /* with_native on <var166:Array[Object]>*/;
8459 var169
= ((val
* (*)(val
*))(var166
->class->vft
[COLOR_string__Object__to_s
]))(var166
) /* to_s on <var166:Array[Object]>*/;
8462 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var169
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8467 var171
= varonce170
;
8469 var172
= "NULL, /*DEAD*/";
8471 var174
= string__NativeString__to_s_with_length(var172
, var173
);
8473 varonce170
= var171
;
8476 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var171
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8481 { /* Inline separate_compiler#SeparateCompiler#type_tables (self) on <self:SeparateCompiler> */
8482 var177
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_tables
].val
; /* _type_tables on <self:SeparateCompiler> */
8483 if (unlikely(var177
== NULL
)) {
8484 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
8485 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 843);
8489 RET_LABEL176
:(void)0;
8493 var178
= ((val
* (*)(val
*, val
*))(var175
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var175
, var_mtype
) /* [] on <var175:Map[MType, Array[nullable MType]]>*/;
8496 { /* Inline array#AbstractArrayRead#length (var178) on <var178:nullable Object(Array[nullable MType])> */
8497 var181
= var178
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var178:nullable Object(Array[nullable MType])> */
8499 RET_LABEL180
:(void)0;
8503 var183
= varonce182
;
8507 var186
= string__NativeString__to_s_with_length(var184
, var185
);
8509 varonce182
= var183
;
8511 var187
= NEW_array__Array(&type_array__Arraykernel__Object
);
8512 { /* var187 = array_instance Array[Object] */
8514 var189
= NEW_array__NativeArray(var188
, &type_array__NativeArraykernel__Object
);
8515 var190
= BOX_kernel__Int(var179
); /* autobox from Int to Object */
8516 ((struct instance_array__NativeArray
*)var189
)->values
[0] = (val
*) var190
;
8517 ((struct instance_array__NativeArray
*)var189
)->values
[1] = (val
*) var183
;
8519 ((void (*)(val
*, val
*, long))(var187
->class->vft
[COLOR_array__Array__with_native
]))(var187
, var189
, var188
) /* with_native on <var187:Array[Object]>*/;
8523 var191
= ((val
* (*)(val
*))(var187
->class->vft
[COLOR_string__Object__to_s
]))(var187
) /* to_s on <var187:Array[Object]>*/;
8526 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var191
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8529 var193
= varonce192
;
8533 var196
= string__NativeString__to_s_with_length(var194
, var195
);
8535 varonce192
= var193
;
8538 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var193
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8541 { /* Inline separate_compiler#SeparateCompiler#type_tables (self) on <self:SeparateCompiler> */
8542 var199
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_tables
].val
; /* _type_tables on <self:SeparateCompiler> */
8543 if (unlikely(var199
== NULL
)) {
8544 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
8545 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 843);
8549 RET_LABEL198
:(void)0;
8553 var200
= ((val
* (*)(val
*, val
*))(var197
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var197
, var_mtype
) /* [] on <var197:Map[MType, Array[nullable MType]]>*/;
8557 var202
= array__AbstractArrayRead__iterator(var_201
);
8562 var204
= array__ArrayIterator__is_ok(var_203
);
8566 var205
= array__ArrayIterator__item(var_203
);
8570 if (var_stype
== NULL
) {
8571 var207
= 1; /* is null */
8573 var207
= 0; /* arg is null but recv is not */
8576 { /* Inline kernel#Object#== (var_stype,var206) on <var_stype:nullable MType> */
8579 { /* Inline kernel#Object#is_same_instance (var_stype,var_other) on <var_stype:nullable MType(MType)> */
8580 var212
= var_stype
== var_other
;
8583 RET_LABEL211
:(void)0;
8588 RET_LABEL209
:(void)0;
8594 var214
= varonce213
;
8596 var215
= "-1, /* empty */";
8598 var217
= string__NativeString__to_s_with_length(var215
, var216
);
8600 varonce213
= var214
;
8603 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var214
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8607 { /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:SeparateCompiler> */
8608 var220
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_ids
].val
; /* _type_ids on <self:SeparateCompiler> */
8609 if (unlikely(var220
== NULL
)) {
8610 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
8611 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 159);
8615 RET_LABEL219
:(void)0;
8619 var221
= ((val
* (*)(val
*, val
*))(var218
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var218
, var_stype
) /* [] on <var218:Map[MType, Int]>*/;
8622 var223
= varonce222
;
8626 var226
= string__NativeString__to_s_with_length(var224
, var225
);
8628 varonce222
= var223
;
8631 var228
= varonce227
;
8635 var231
= string__NativeString__to_s_with_length(var229
, var230
);
8637 varonce227
= var228
;
8639 var232
= NEW_array__Array(&type_array__Arraykernel__Object
);
8640 { /* var232 = array_instance Array[Object] */
8642 var234
= NEW_array__NativeArray(var233
, &type_array__NativeArraykernel__Object
);
8643 ((struct instance_array__NativeArray
*)var234
)->values
[0] = (val
*) var221
;
8644 ((struct instance_array__NativeArray
*)var234
)->values
[1] = (val
*) var223
;
8645 ((struct instance_array__NativeArray
*)var234
)->values
[2] = (val
*) var_stype
;
8646 ((struct instance_array__NativeArray
*)var234
)->values
[3] = (val
*) var228
;
8648 ((void (*)(val
*, val
*, long))(var232
->class->vft
[COLOR_array__Array__with_native
]))(var232
, var234
, var233
) /* with_native on <var232:Array[Object]>*/;
8652 var235
= ((val
* (*)(val
*))(var232
->class->vft
[COLOR_string__Object__to_s
]))(var232
) /* to_s on <var232:Array[Object]>*/;
8655 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var235
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8659 array__ArrayIterator__next(var_203
); /* Direct call array#ArrayIterator#next on <var_203:ArrayIterator[nullable MType]>*/
8665 BREAK_label
: (void)0;
8667 { /* Inline abstract_collection#Iterator#finish (var_203) on <var_203:ArrayIterator[nullable MType]> */
8668 RET_LABEL236
:(void)0;
8672 var238
= varonce237
;
8676 var241
= string__NativeString__to_s_with_length(var239
, var240
);
8678 varonce237
= var238
;
8681 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var238
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8685 var243
= varonce242
;
8687 var244
= "0, {}, /*DEAD TYPE*/";
8689 var246
= string__NativeString__to_s_with_length(var244
, var245
);
8691 varonce242
= var243
;
8694 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var243
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8698 var248
= varonce247
;
8702 var251
= string__NativeString__to_s_with_length(var249
, var250
);
8704 varonce247
= var248
;
8707 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var248
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8711 /* method separate_compiler#SeparateCompiler#compile_type_to_c for (self: Object, MType) */
8712 void VIRTUAL_separate_compiler__SeparateCompiler__compile_type_to_c(val
* self
, val
* p0
) {
8713 separate_compiler__SeparateCompiler__compile_type_to_c(self
, p0
); /* Direct call separate_compiler#SeparateCompiler#compile_type_to_c on <self:Object(SeparateCompiler)>*/
8716 /* method separate_compiler#SeparateCompiler#compile_type_resolution_table for (self: SeparateCompiler, MType) */
8717 void separate_compiler__SeparateCompiler__compile_type_resolution_table(val
* self
, val
* p0
) {
8718 val
* var_mtype
/* var mtype: MType */;
8719 val
* var
/* : MType */;
8720 short int var1
/* : Bool */;
8723 const char* var_class_name
;
8724 val
* var_mclass_type
/* var mclass_type: MClassType */;
8725 static val
* varonce
;
8726 val
* var2
/* : String */;
8727 char* var3
/* : NativeString */;
8728 long var4
/* : Int */;
8729 val
* var5
/* : FlatString */;
8730 val
* var6
/* : String */;
8731 val
* var7
/* : Array[Object] */;
8732 long var8
/* : Int */;
8733 val
* var9
/* : NativeArray[Object] */;
8734 val
* var10
/* : String */;
8735 static val
* varonce11
;
8736 val
* var12
/* : String */;
8737 char* var13
/* : NativeString */;
8738 long var14
/* : Int */;
8739 val
* var15
/* : FlatString */;
8740 val
* var16
/* : String */;
8741 static val
* varonce17
;
8742 val
* var18
/* : String */;
8743 char* var19
/* : NativeString */;
8744 long var20
/* : Int */;
8745 val
* var21
/* : FlatString */;
8746 val
* var22
/* : Array[Object] */;
8747 long var23
/* : Int */;
8748 val
* var24
/* : NativeArray[Object] */;
8749 val
* var25
/* : String */;
8750 val
* var26
/* : AbstractCompilerVisitor */;
8751 val
* var_v
/* var v: SeparateCompilerVisitor */;
8752 static val
* varonce27
;
8753 val
* var28
/* : String */;
8754 char* var29
/* : NativeString */;
8755 long var30
/* : Int */;
8756 val
* var31
/* : FlatString */;
8757 val
* var32
/* : String */;
8758 static val
* varonce33
;
8759 val
* var34
/* : String */;
8760 char* var35
/* : NativeString */;
8761 long var36
/* : Int */;
8762 val
* var37
/* : FlatString */;
8763 val
* var38
/* : Array[Object] */;
8764 long var39
/* : Int */;
8765 val
* var40
/* : NativeArray[Object] */;
8766 val
* var41
/* : String */;
8767 static val
* varonce42
;
8768 val
* var43
/* : String */;
8769 char* var44
/* : NativeString */;
8770 long var45
/* : Int */;
8771 val
* var46
/* : FlatString */;
8772 static val
* varonce47
;
8773 val
* var48
/* : String */;
8774 char* var49
/* : NativeString */;
8775 long var50
/* : Int */;
8776 val
* var51
/* : FlatString */;
8777 val
* var52
/* : Map[MClassType, Array[nullable MType]] */;
8778 val
* var54
/* : Map[MClassType, Array[nullable MType]] */;
8779 val
* var55
/* : nullable Object */;
8780 val
* var_
/* var : Array[nullable MType] */;
8781 val
* var56
/* : ArrayIterator[nullable Object] */;
8782 val
* var_57
/* var : ArrayIterator[nullable MType] */;
8783 short int var58
/* : Bool */;
8784 val
* var59
/* : nullable Object */;
8785 val
* var_t
/* var t: nullable MType */;
8786 val
* var60
/* : null */;
8787 short int var61
/* : Bool */;
8788 short int var62
/* : Bool */;
8789 val
* var_other
/* var other: nullable Object */;
8790 short int var64
/* : Bool */;
8791 short int var66
/* : Bool */;
8792 static val
* varonce67
;
8793 val
* var68
/* : String */;
8794 char* var69
/* : NativeString */;
8795 long var70
/* : Int */;
8796 val
* var71
/* : FlatString */;
8797 val
* var72
/* : MModule */;
8798 val
* var74
/* : MModule */;
8799 short int var75
/* : Bool */;
8800 val
* var76
/* : MType */;
8801 val
* var_tv
/* var tv: MType */;
8802 val
* var77
/* : Map[MType, Int] */;
8803 val
* var79
/* : Map[MType, Int] */;
8804 short int var80
/* : Bool */;
8805 static val
* varonce81
;
8806 val
* var82
/* : String */;
8807 char* var83
/* : NativeString */;
8808 long var84
/* : Int */;
8809 val
* var85
/* : FlatString */;
8810 val
* var86
/* : String */;
8811 val
* var87
/* : Array[Object] */;
8812 long var88
/* : Int */;
8813 val
* var89
/* : NativeArray[Object] */;
8814 val
* var90
/* : String */;
8815 static val
* varonce91
;
8816 val
* var92
/* : String */;
8817 char* var93
/* : NativeString */;
8818 long var94
/* : Int */;
8819 val
* var95
/* : FlatString */;
8820 val
* var96
/* : String */;
8821 static val
* varonce97
;
8822 val
* var98
/* : String */;
8823 char* var99
/* : NativeString */;
8824 long var100
/* : Int */;
8825 val
* var101
/* : FlatString */;
8826 static val
* varonce102
;
8827 val
* var103
/* : String */;
8828 char* var104
/* : NativeString */;
8829 long var105
/* : Int */;
8830 val
* var106
/* : FlatString */;
8831 static val
* varonce107
;
8832 val
* var108
/* : String */;
8833 char* var109
/* : NativeString */;
8834 long var110
/* : Int */;
8835 val
* var111
/* : FlatString */;
8836 val
* var112
/* : Array[Object] */;
8837 long var113
/* : Int */;
8838 val
* var114
/* : NativeArray[Object] */;
8839 val
* var115
/* : String */;
8840 static val
* varonce116
;
8841 val
* var117
/* : String */;
8842 char* var118
/* : NativeString */;
8843 long var119
/* : Int */;
8844 val
* var120
/* : FlatString */;
8845 static val
* varonce121
;
8846 val
* var122
/* : String */;
8847 char* var123
/* : NativeString */;
8848 long var124
/* : Int */;
8849 val
* var125
/* : FlatString */;
8850 static val
* varonce126
;
8851 val
* var127
/* : String */;
8852 char* var128
/* : NativeString */;
8853 long var129
/* : Int */;
8854 val
* var130
/* : FlatString */;
8855 val
* var131
/* : Array[Object] */;
8856 long var132
/* : Int */;
8857 val
* var133
/* : NativeArray[Object] */;
8858 val
* var134
/* : String */;
8859 static val
* varonce136
;
8860 val
* var137
/* : String */;
8861 char* var138
/* : NativeString */;
8862 long var139
/* : Int */;
8863 val
* var140
/* : FlatString */;
8864 static val
* varonce141
;
8865 val
* var142
/* : String */;
8866 char* var143
/* : NativeString */;
8867 long var144
/* : Int */;
8868 val
* var145
/* : FlatString */;
8871 var
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__as_notnullable
]))(var_mtype
) /* as_notnullable on <var_mtype:MType>*/;
8873 /* <var:MType> isa MClassType */
8874 cltype
= type_model__MClassType
.color
;
8875 idtype
= type_model__MClassType
.id
;
8876 if(cltype
>= var
->type
->table_size
) {
8879 var1
= var
->type
->type_table
[cltype
] == idtype
;
8881 if (unlikely(!var1
)) {
8882 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
8883 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
8884 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 633);
8887 var_mclass_type
= var
;
8891 var3
= "resolution_table_";
8893 var5
= string__NativeString__to_s_with_length(var3
, var4
);
8898 var6
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
8900 var7
= NEW_array__Array(&type_array__Arraykernel__Object
);
8901 { /* var7 = array_instance Array[Object] */
8903 var9
= NEW_array__NativeArray(var8
, &type_array__NativeArraykernel__Object
);
8904 ((struct instance_array__NativeArray
*)var9
)->values
[0] = (val
*) var2
;
8905 ((struct instance_array__NativeArray
*)var9
)->values
[1] = (val
*) var6
;
8907 ((void (*)(val
*, val
*, long))(var7
->class->vft
[COLOR_array__Array__with_native
]))(var7
, var9
, var8
) /* with_native on <var7:Array[Object]>*/;
8911 var10
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_string__Object__to_s
]))(var7
) /* to_s on <var7:Array[Object]>*/;
8916 var13
= "extern const struct types resolution_table_";
8918 var15
= string__NativeString__to_s_with_length(var13
, var14
);
8923 var16
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
8930 var21
= string__NativeString__to_s_with_length(var19
, var20
);
8934 var22
= NEW_array__Array(&type_array__Arraykernel__Object
);
8935 { /* var22 = array_instance Array[Object] */
8937 var24
= NEW_array__NativeArray(var23
, &type_array__NativeArraykernel__Object
);
8938 ((struct instance_array__NativeArray
*)var24
)->values
[0] = (val
*) var12
;
8939 ((struct instance_array__NativeArray
*)var24
)->values
[1] = (val
*) var16
;
8940 ((struct instance_array__NativeArray
*)var24
)->values
[2] = (val
*) var18
;
8942 ((void (*)(val
*, val
*, long))(var22
->class->vft
[COLOR_array__Array__with_native
]))(var22
, var24
, var23
) /* with_native on <var22:Array[Object]>*/;
8946 var25
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_string__Object__to_s
]))(var22
) /* to_s on <var22:Array[Object]>*/;
8949 abstract_compiler__AbstractCompiler__provide_declaration(self
, var10
, var25
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
8952 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
8958 var29
= "const struct types resolution_table_";
8960 var31
= string__NativeString__to_s_with_length(var29
, var30
);
8965 var32
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
8972 var37
= string__NativeString__to_s_with_length(var35
, var36
);
8976 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
8977 { /* var38 = array_instance Array[Object] */
8979 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
8980 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var28
;
8981 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var32
;
8982 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var34
;
8984 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
8988 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
8991 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var41
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8996 var44
= "0, /* dummy */";
8998 var46
= string__NativeString__to_s_with_length(var44
, var45
);
9003 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var43
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9010 var51
= string__NativeString__to_s_with_length(var49
, var50
);
9015 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var48
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9018 { /* Inline separate_compiler#SeparateCompiler#resolution_tables (self) on <self:SeparateCompiler> */
9019 var54
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___resolution_tables
].val
; /* _resolution_tables on <self:SeparateCompiler> */
9020 if (unlikely(var54
== NULL
)) {
9021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _resolution_tables");
9022 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 844);
9026 RET_LABEL53
:(void)0;
9030 var55
= ((val
* (*)(val
*, val
*))(var52
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var52
, var_mclass_type
) /* [] on <var52:Map[MClassType, Array[nullable MType]]>*/;
9034 var56
= array__AbstractArrayRead__iterator(var_
);
9039 var58
= array__ArrayIterator__is_ok(var_57
);
9043 var59
= array__ArrayIterator__item(var_57
);
9047 if (var_t
== NULL
) {
9048 var61
= 1; /* is null */
9050 var61
= 0; /* arg is null but recv is not */
9053 { /* Inline kernel#Object#== (var_t,var60) on <var_t:nullable MType> */
9056 { /* Inline kernel#Object#is_same_instance (var_t,var_other) on <var_t:nullable MType(MType)> */
9057 var66
= var_t
== var_other
;
9060 RET_LABEL65
:(void)0;
9065 RET_LABEL63
:(void)0;
9073 var69
= "NULL, /* empty */";
9075 var71
= string__NativeString__to_s_with_length(var69
, var70
);
9080 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var68
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9084 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
9085 var74
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
9086 if (unlikely(var74
== NULL
)) {
9087 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
9088 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
9092 RET_LABEL73
:(void)0;
9097 var76
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_t
->class->vft
[COLOR_model__MType__resolve_for
]))(var_t
, var_mclass_type
, var_mclass_type
, var72
, var75
) /* resolve_for on <var_t:nullable MType(MType)>*/;
9101 { /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:SeparateCompiler> */
9102 var79
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_ids
].val
; /* _type_ids on <self:SeparateCompiler> */
9103 if (unlikely(var79
== NULL
)) {
9104 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
9105 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 159);
9109 RET_LABEL78
:(void)0;
9113 var80
= abstract_collection__MapRead__has_key(var77
, var_tv
);
9121 var85
= string__NativeString__to_s_with_length(var83
, var84
);
9126 var86
= ((val
* (*)(val
*))(var_tv
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_tv
) /* c_name on <var_tv:MType>*/;
9128 var87
= NEW_array__Array(&type_array__Arraykernel__Object
);
9129 { /* var87 = array_instance Array[Object] */
9131 var89
= NEW_array__NativeArray(var88
, &type_array__NativeArraykernel__Object
);
9132 ((struct instance_array__NativeArray
*)var89
)->values
[0] = (val
*) var82
;
9133 ((struct instance_array__NativeArray
*)var89
)->values
[1] = (val
*) var86
;
9135 ((void (*)(val
*, val
*, long))(var87
->class->vft
[COLOR_array__Array__with_native
]))(var87
, var89
, var88
) /* with_native on <var87:Array[Object]>*/;
9139 var90
= ((val
* (*)(val
*))(var87
->class->vft
[COLOR_string__Object__to_s
]))(var87
) /* to_s on <var87:Array[Object]>*/;
9142 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var90
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
9149 var95
= string__NativeString__to_s_with_length(var93
, var94
);
9154 var96
= ((val
* (*)(val
*))(var_tv
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_tv
) /* c_name on <var_tv:MType>*/;
9161 var101
= string__NativeString__to_s_with_length(var99
, var100
);
9166 var103
= varonce102
;
9170 var106
= string__NativeString__to_s_with_length(var104
, var105
);
9172 varonce102
= var103
;
9175 var108
= varonce107
;
9179 var111
= string__NativeString__to_s_with_length(var109
, var110
);
9181 varonce107
= var108
;
9183 var112
= NEW_array__Array(&type_array__Arraykernel__Object
);
9184 { /* var112 = array_instance Array[Object] */
9186 var114
= NEW_array__NativeArray(var113
, &type_array__NativeArraykernel__Object
);
9187 ((struct instance_array__NativeArray
*)var114
)->values
[0] = (val
*) var92
;
9188 ((struct instance_array__NativeArray
*)var114
)->values
[1] = (val
*) var96
;
9189 ((struct instance_array__NativeArray
*)var114
)->values
[2] = (val
*) var98
;
9190 ((struct instance_array__NativeArray
*)var114
)->values
[3] = (val
*) var_t
;
9191 ((struct instance_array__NativeArray
*)var114
)->values
[4] = (val
*) var103
;
9192 ((struct instance_array__NativeArray
*)var114
)->values
[5] = (val
*) var_tv
;
9193 ((struct instance_array__NativeArray
*)var114
)->values
[6] = (val
*) var108
;
9195 ((void (*)(val
*, val
*, long))(var112
->class->vft
[COLOR_array__Array__with_native
]))(var112
, var114
, var113
) /* with_native on <var112:Array[Object]>*/;
9199 var115
= ((val
* (*)(val
*))(var112
->class->vft
[COLOR_string__Object__to_s
]))(var112
) /* to_s on <var112:Array[Object]>*/;
9202 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var115
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9206 var117
= varonce116
;
9208 var118
= "NULL, /* empty (";
9210 var120
= string__NativeString__to_s_with_length(var118
, var119
);
9212 varonce116
= var117
;
9215 var122
= varonce121
;
9219 var125
= string__NativeString__to_s_with_length(var123
, var124
);
9221 varonce121
= var122
;
9224 var127
= varonce126
;
9226 var128
= " not a live type) */";
9228 var130
= string__NativeString__to_s_with_length(var128
, var129
);
9230 varonce126
= var127
;
9232 var131
= NEW_array__Array(&type_array__Arraykernel__Object
);
9233 { /* var131 = array_instance Array[Object] */
9235 var133
= NEW_array__NativeArray(var132
, &type_array__NativeArraykernel__Object
);
9236 ((struct instance_array__NativeArray
*)var133
)->values
[0] = (val
*) var117
;
9237 ((struct instance_array__NativeArray
*)var133
)->values
[1] = (val
*) var_t
;
9238 ((struct instance_array__NativeArray
*)var133
)->values
[2] = (val
*) var122
;
9239 ((struct instance_array__NativeArray
*)var133
)->values
[3] = (val
*) var_tv
;
9240 ((struct instance_array__NativeArray
*)var133
)->values
[4] = (val
*) var127
;
9242 ((void (*)(val
*, val
*, long))(var131
->class->vft
[COLOR_array__Array__with_native
]))(var131
, var133
, var132
) /* with_native on <var131:Array[Object]>*/;
9246 var134
= ((val
* (*)(val
*))(var131
->class->vft
[COLOR_string__Object__to_s
]))(var131
) /* to_s on <var131:Array[Object]>*/;
9249 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var134
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9254 array__ArrayIterator__next(var_57
); /* Direct call array#ArrayIterator#next on <var_57:ArrayIterator[nullable MType]>*/
9260 BREAK_label
: (void)0;
9262 { /* Inline abstract_collection#Iterator#finish (var_57) on <var_57:ArrayIterator[nullable MType]> */
9263 RET_LABEL135
:(void)0;
9267 var137
= varonce136
;
9271 var140
= string__NativeString__to_s_with_length(var138
, var139
);
9273 varonce136
= var137
;
9276 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var137
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9279 var142
= varonce141
;
9283 var145
= string__NativeString__to_s_with_length(var143
, var144
);
9285 varonce141
= var142
;
9288 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var142
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9292 /* method separate_compiler#SeparateCompiler#compile_type_resolution_table for (self: Object, MType) */
9293 void VIRTUAL_separate_compiler__SeparateCompiler__compile_type_resolution_table(val
* self
, val
* p0
) {
9294 separate_compiler__SeparateCompiler__compile_type_resolution_table(self
, p0
); /* Direct call separate_compiler#SeparateCompiler#compile_type_resolution_table on <self:Object(SeparateCompiler)>*/