1 #include "nit__separate_compiler.sep.0.h"
2 /* method separate_compiler#ToolContext#opt_separate for (self: ToolContext): OptionBool */
3 val
* nit__separate_compiler___ToolContext___opt_separate(val
* self
) {
4 val
* var
/* : OptionBool */;
5 val
* var1
/* : OptionBool */;
6 var1
= self
->attrs
[COLOR_nit__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", FILE_nit__separate_compiler
, 24);
16 /* method separate_compiler#ToolContext#opt_no_inline_intern for (self: ToolContext): OptionBool */
17 val
* nit__separate_compiler___ToolContext___opt_no_inline_intern(val
* self
) {
18 val
* var
/* : OptionBool */;
19 val
* var1
/* : OptionBool */;
20 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_no_inline_intern
].val
; /* _opt_no_inline_intern on <self:ToolContext> */
21 if (unlikely(var1
== NULL
)) {
22 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_inline_intern");
23 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 26);
30 /* method separate_compiler#ToolContext#opt_no_union_attribute for (self: ToolContext): OptionBool */
31 val
* nit__separate_compiler___ToolContext___opt_no_union_attribute(val
* self
) {
32 val
* var
/* : OptionBool */;
33 val
* var1
/* : OptionBool */;
34 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_no_union_attribute
].val
; /* _opt_no_union_attribute on <self:ToolContext> */
35 if (unlikely(var1
== NULL
)) {
36 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute");
37 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 28);
44 /* method separate_compiler#ToolContext#opt_no_shortcut_equate for (self: ToolContext): OptionBool */
45 val
* nit__separate_compiler___ToolContext___opt_no_shortcut_equate(val
* self
) {
46 val
* var
/* : OptionBool */;
47 val
* var1
/* : OptionBool */;
48 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_no_shortcut_equate
].val
; /* _opt_no_shortcut_equate on <self:ToolContext> */
49 if (unlikely(var1
== NULL
)) {
50 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_equate");
51 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 30);
58 /* method separate_compiler#ToolContext#opt_no_tag_primitives for (self: ToolContext): OptionBool */
59 val
* nit__separate_compiler___ToolContext___opt_no_tag_primitives(val
* self
) {
60 val
* var
/* : OptionBool */;
61 val
* var1
/* : OptionBool */;
62 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_no_tag_primitives
].val
; /* _opt_no_tag_primitives on <self:ToolContext> */
63 if (unlikely(var1
== NULL
)) {
64 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_tag_primitives");
65 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 32);
72 /* method separate_compiler#ToolContext#opt_colors_are_symbols for (self: ToolContext): OptionBool */
73 val
* nit__separate_compiler___ToolContext___opt_colors_are_symbols(val
* self
) {
74 val
* var
/* : OptionBool */;
75 val
* var1
/* : OptionBool */;
76 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_colors_are_symbols
].val
; /* _opt_colors_are_symbols on <self:ToolContext> */
77 if (unlikely(var1
== NULL
)) {
78 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colors_are_symbols");
79 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 35);
86 /* method separate_compiler#ToolContext#opt_trampoline_call for (self: ToolContext): OptionBool */
87 val
* nit__separate_compiler___ToolContext___opt_trampoline_call(val
* self
) {
88 val
* var
/* : OptionBool */;
89 val
* var1
/* : OptionBool */;
90 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_trampoline_call
].val
; /* _opt_trampoline_call on <self:ToolContext> */
91 if (unlikely(var1
== NULL
)) {
92 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_trampoline_call");
93 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 37);
100 /* method separate_compiler#ToolContext#opt_guard_call for (self: ToolContext): OptionBool */
101 val
* nit__separate_compiler___ToolContext___opt_guard_call(val
* self
) {
102 val
* var
/* : OptionBool */;
103 val
* var1
/* : OptionBool */;
104 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_guard_call
].val
; /* _opt_guard_call on <self:ToolContext> */
105 if (unlikely(var1
== NULL
)) {
106 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_guard_call");
107 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 39);
114 /* method separate_compiler#ToolContext#opt_substitute_monomorph for (self: ToolContext): OptionBool */
115 val
* nit__separate_compiler___ToolContext___opt_substitute_monomorph(val
* self
) {
116 val
* var
/* : OptionBool */;
117 val
* var1
/* : OptionBool */;
118 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_substitute_monomorph
].val
; /* _opt_substitute_monomorph on <self:ToolContext> */
119 if (unlikely(var1
== NULL
)) {
120 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_substitute_monomorph");
121 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 41);
128 /* method separate_compiler#ToolContext#opt_link_boost for (self: ToolContext): OptionBool */
129 val
* nit__separate_compiler___ToolContext___opt_link_boost(val
* self
) {
130 val
* var
/* : OptionBool */;
131 val
* var1
/* : OptionBool */;
132 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_link_boost
].val
; /* _opt_link_boost on <self:ToolContext> */
133 if (unlikely(var1
== NULL
)) {
134 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_link_boost");
135 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 43);
142 /* method separate_compiler#ToolContext#opt_inline_coloring_numbers for (self: ToolContext): OptionBool */
143 val
* nit__separate_compiler___ToolContext___opt_inline_coloring_numbers(val
* self
) {
144 val
* var
/* : OptionBool */;
145 val
* var1
/* : OptionBool */;
146 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_inline_coloring_numbers
].val
; /* _opt_inline_coloring_numbers on <self:ToolContext> */
147 if (unlikely(var1
== NULL
)) {
148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
149 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 46);
156 /* method separate_compiler#ToolContext#opt_inline_some_methods for (self: ToolContext): OptionBool */
157 val
* nit__separate_compiler___ToolContext___opt_inline_some_methods(val
* self
) {
158 val
* var
/* : OptionBool */;
159 val
* var1
/* : OptionBool */;
160 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_inline_some_methods
].val
; /* _opt_inline_some_methods on <self:ToolContext> */
161 if (unlikely(var1
== NULL
)) {
162 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_some_methods");
163 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 48);
170 /* method separate_compiler#ToolContext#opt_direct_call_monomorph for (self: ToolContext): OptionBool */
171 val
* nit__separate_compiler___ToolContext___opt_direct_call_monomorph(val
* self
) {
172 val
* var
/* : OptionBool */;
173 val
* var1
/* : OptionBool */;
174 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_direct_call_monomorph
].val
; /* _opt_direct_call_monomorph on <self:ToolContext> */
175 if (unlikely(var1
== NULL
)) {
176 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph");
177 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 50);
184 /* method separate_compiler#ToolContext#opt_direct_call_monomorph0 for (self: ToolContext): OptionBool */
185 val
* nit__separate_compiler___ToolContext___opt_direct_call_monomorph0(val
* self
) {
186 val
* var
/* : OptionBool */;
187 val
* var1
/* : OptionBool */;
188 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_direct_call_monomorph0
].val
; /* _opt_direct_call_monomorph0 on <self:ToolContext> */
189 if (unlikely(var1
== NULL
)) {
190 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph0");
191 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 52);
198 /* method separate_compiler#ToolContext#opt_skip_dead_methods for (self: ToolContext): OptionBool */
199 val
* nit__separate_compiler___ToolContext___opt_skip_dead_methods(val
* self
) {
200 val
* var
/* : OptionBool */;
201 val
* var1
/* : OptionBool */;
202 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_skip_dead_methods
].val
; /* _opt_skip_dead_methods on <self:ToolContext> */
203 if (unlikely(var1
== NULL
)) {
204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods");
205 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 54);
212 /* method separate_compiler#ToolContext#opt_semi_global for (self: ToolContext): OptionBool */
213 val
* nit__separate_compiler___ToolContext___opt_semi_global(val
* self
) {
214 val
* var
/* : OptionBool */;
215 val
* var1
/* : OptionBool */;
216 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_semi_global
].val
; /* _opt_semi_global on <self:ToolContext> */
217 if (unlikely(var1
== NULL
)) {
218 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_semi_global");
219 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 56);
226 /* method separate_compiler#ToolContext#opt_colo_dead_methods for (self: ToolContext): OptionBool */
227 val
* nit__separate_compiler___ToolContext___opt_colo_dead_methods(val
* self
) {
228 val
* var
/* : OptionBool */;
229 val
* var1
/* : OptionBool */;
230 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_colo_dead_methods
].val
; /* _opt_colo_dead_methods on <self:ToolContext> */
231 if (unlikely(var1
== NULL
)) {
232 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colo_dead_methods");
233 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 58);
240 /* method separate_compiler#ToolContext#opt_tables_metrics for (self: ToolContext): OptionBool */
241 val
* nit__separate_compiler___ToolContext___opt_tables_metrics(val
* self
) {
242 val
* var
/* : OptionBool */;
243 val
* var1
/* : OptionBool */;
244 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_tables_metrics
].val
; /* _opt_tables_metrics on <self:ToolContext> */
245 if (unlikely(var1
== NULL
)) {
246 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_tables_metrics");
247 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 60);
254 /* method separate_compiler#ToolContext#opt_type_poset for (self: ToolContext): OptionBool */
255 val
* nit__separate_compiler___ToolContext___opt_type_poset(val
* self
) {
256 val
* var
/* : OptionBool */;
257 val
* var1
/* : OptionBool */;
258 var1
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_type_poset
].val
; /* _opt_type_poset on <self:ToolContext> */
259 if (unlikely(var1
== NULL
)) {
260 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_type_poset");
261 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 62);
268 /* method separate_compiler#ToolContext#init for (self: ToolContext) */
269 void nit__separate_compiler___ToolContext___standard__kernel__Object__init(val
* self
) {
270 val
* var
/* : OptionContext */;
271 val
* var2
/* : OptionContext */;
272 val
* var3
/* : OptionBool */;
273 val
* var5
/* : OptionBool */;
274 val
* var6
/* : Array[Option] */;
275 val
* var7
/* : NativeArray[Option] */;
276 val
* var8
/* : OptionContext */;
277 val
* var10
/* : OptionContext */;
278 val
* var11
/* : OptionBool */;
279 val
* var13
/* : OptionBool */;
280 val
* var14
/* : Array[Option] */;
281 val
* var15
/* : NativeArray[Option] */;
282 val
* var16
/* : OptionContext */;
283 val
* var18
/* : OptionContext */;
284 val
* var19
/* : OptionBool */;
285 val
* var21
/* : OptionBool */;
286 val
* var22
/* : Array[Option] */;
287 val
* var23
/* : NativeArray[Option] */;
288 val
* var24
/* : OptionContext */;
289 val
* var26
/* : OptionContext */;
290 val
* var27
/* : OptionBool */;
291 val
* var29
/* : OptionBool */;
292 val
* var30
/* : Array[Option] */;
293 val
* var31
/* : NativeArray[Option] */;
294 val
* var32
/* : OptionContext */;
295 val
* var34
/* : OptionContext */;
296 val
* var35
/* : OptionBool */;
297 val
* var37
/* : OptionBool */;
298 val
* var38
/* : Array[Option] */;
299 val
* var39
/* : NativeArray[Option] */;
300 val
* var40
/* : OptionContext */;
301 val
* var42
/* : OptionContext */;
302 val
* var43
/* : OptionBool */;
303 val
* var45
/* : OptionBool */;
304 val
* var46
/* : OptionBool */;
305 val
* var48
/* : OptionBool */;
306 val
* var49
/* : OptionBool */;
307 val
* var51
/* : OptionBool */;
308 val
* var52
/* : OptionBool */;
309 val
* var54
/* : OptionBool */;
310 val
* var55
/* : OptionBool */;
311 val
* var57
/* : OptionBool */;
312 val
* var58
/* : OptionBool */;
313 val
* var60
/* : OptionBool */;
314 val
* var61
/* : Array[Option] */;
315 val
* var62
/* : NativeArray[Option] */;
316 val
* var63
/* : OptionContext */;
317 val
* var65
/* : OptionContext */;
318 val
* var66
/* : OptionBool */;
319 val
* var68
/* : OptionBool */;
320 val
* var69
/* : OptionBool */;
321 val
* var71
/* : OptionBool */;
322 val
* var72
/* : OptionBool */;
323 val
* var74
/* : OptionBool */;
324 val
* var75
/* : OptionBool */;
325 val
* var77
/* : OptionBool */;
326 val
* var78
/* : OptionBool */;
327 val
* var80
/* : OptionBool */;
328 val
* var81
/* : Array[Option] */;
329 val
* var82
/* : NativeArray[Option] */;
330 val
* var83
/* : OptionContext */;
331 val
* var85
/* : OptionContext */;
332 val
* var86
/* : OptionBool */;
333 val
* var88
/* : OptionBool */;
334 val
* var89
/* : Array[Option] */;
335 val
* var90
/* : NativeArray[Option] */;
336 val
* var91
/* : OptionContext */;
337 val
* var93
/* : OptionContext */;
338 val
* var94
/* : OptionBool */;
339 val
* var96
/* : OptionBool */;
340 val
* var97
/* : Array[Option] */;
341 val
* var98
/* : NativeArray[Option] */;
342 val
* var99
/* : OptionContext */;
343 val
* var101
/* : OptionContext */;
344 val
* var102
/* : OptionBool */;
345 val
* var104
/* : OptionBool */;
346 val
* var105
/* : Array[Option] */;
347 val
* var106
/* : NativeArray[Option] */;
349 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nit__separate_compiler___ToolContext___standard__kernel__Object__init
]))(self
); /* init on <self:ToolContext>*/
352 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
353 var2
= self
->attrs
[COLOR_nit__toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
354 if (unlikely(var2
== NULL
)) {
355 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
356 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext
, 332);
364 { /* Inline separate_compiler#ToolContext#opt_separate (self) on <self:ToolContext> */
365 var5
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_separate
].val
; /* _opt_separate on <self:ToolContext> */
366 if (unlikely(var5
== NULL
)) {
367 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_separate");
368 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 24);
375 var6
= NEW_standard__Array(&type_standard__Array__opts__Option
);
376 { /* var6 = array_instance Array[Option] */
377 var7
= NEW_standard__NativeArray(1l, &type_standard__NativeArray__opts__Option
);
378 ((struct instance_standard__NativeArray
*)var7
)->values
[0] = (val
*) var3
;
380 ((void(*)(val
* self
, val
* p0
, long p1
))(var6
->class->vft
[COLOR_standard__array__Array__with_native
]))(var6
, var7
, 1l); /* with_native on <var6:Array[Option]>*/
384 opts___opts__OptionContext___add_option(var
, var6
); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
387 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
388 var10
= self
->attrs
[COLOR_nit__toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
389 if (unlikely(var10
== NULL
)) {
390 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
391 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext
, 332);
399 { /* Inline separate_compiler#ToolContext#opt_no_inline_intern (self) on <self:ToolContext> */
400 var13
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_no_inline_intern
].val
; /* _opt_no_inline_intern on <self:ToolContext> */
401 if (unlikely(var13
== NULL
)) {
402 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_inline_intern");
403 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 26);
410 var14
= NEW_standard__Array(&type_standard__Array__opts__Option
);
411 { /* var14 = array_instance Array[Option] */
412 var15
= NEW_standard__NativeArray(1l, &type_standard__NativeArray__opts__Option
);
413 ((struct instance_standard__NativeArray
*)var15
)->values
[0] = (val
*) var11
;
415 ((void(*)(val
* self
, val
* p0
, long p1
))(var14
->class->vft
[COLOR_standard__array__Array__with_native
]))(var14
, var15
, 1l); /* with_native on <var14:Array[Option]>*/
419 opts___opts__OptionContext___add_option(var8
, var14
); /* Direct call opts#OptionContext#add_option on <var8:OptionContext>*/
422 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
423 var18
= self
->attrs
[COLOR_nit__toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
424 if (unlikely(var18
== NULL
)) {
425 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
426 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext
, 332);
434 { /* Inline separate_compiler#ToolContext#opt_no_union_attribute (self) on <self:ToolContext> */
435 var21
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_no_union_attribute
].val
; /* _opt_no_union_attribute on <self:ToolContext> */
436 if (unlikely(var21
== NULL
)) {
437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute");
438 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 28);
445 var22
= NEW_standard__Array(&type_standard__Array__opts__Option
);
446 { /* var22 = array_instance Array[Option] */
447 var23
= NEW_standard__NativeArray(1l, &type_standard__NativeArray__opts__Option
);
448 ((struct instance_standard__NativeArray
*)var23
)->values
[0] = (val
*) var19
;
450 ((void(*)(val
* self
, val
* p0
, long p1
))(var22
->class->vft
[COLOR_standard__array__Array__with_native
]))(var22
, var23
, 1l); /* with_native on <var22:Array[Option]>*/
454 opts___opts__OptionContext___add_option(var16
, var22
); /* Direct call opts#OptionContext#add_option on <var16:OptionContext>*/
457 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
458 var26
= self
->attrs
[COLOR_nit__toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
459 if (unlikely(var26
== NULL
)) {
460 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
461 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext
, 332);
469 { /* Inline separate_compiler#ToolContext#opt_no_shortcut_equate (self) on <self:ToolContext> */
470 var29
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_no_shortcut_equate
].val
; /* _opt_no_shortcut_equate on <self:ToolContext> */
471 if (unlikely(var29
== NULL
)) {
472 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_equate");
473 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 30);
480 var30
= NEW_standard__Array(&type_standard__Array__opts__Option
);
481 { /* var30 = array_instance Array[Option] */
482 var31
= NEW_standard__NativeArray(1l, &type_standard__NativeArray__opts__Option
);
483 ((struct instance_standard__NativeArray
*)var31
)->values
[0] = (val
*) var27
;
485 ((void(*)(val
* self
, val
* p0
, long p1
))(var30
->class->vft
[COLOR_standard__array__Array__with_native
]))(var30
, var31
, 1l); /* with_native on <var30:Array[Option]>*/
489 opts___opts__OptionContext___add_option(var24
, var30
); /* Direct call opts#OptionContext#add_option on <var24:OptionContext>*/
492 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
493 var34
= self
->attrs
[COLOR_nit__toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
494 if (unlikely(var34
== NULL
)) {
495 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
496 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext
, 332);
504 { /* Inline separate_compiler#ToolContext#opt_no_tag_primitives (self) on <self:ToolContext> */
505 var37
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_no_tag_primitives
].val
; /* _opt_no_tag_primitives on <self:ToolContext> */
506 if (unlikely(var37
== NULL
)) {
507 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_tag_primitives");
508 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 32);
515 var38
= NEW_standard__Array(&type_standard__Array__opts__Option
);
516 { /* var38 = array_instance Array[Option] */
517 var39
= NEW_standard__NativeArray(1l, &type_standard__NativeArray__opts__Option
);
518 ((struct instance_standard__NativeArray
*)var39
)->values
[0] = (val
*) var35
;
520 ((void(*)(val
* self
, val
* p0
, long p1
))(var38
->class->vft
[COLOR_standard__array__Array__with_native
]))(var38
, var39
, 1l); /* with_native on <var38:Array[Option]>*/
524 opts___opts__OptionContext___add_option(var32
, var38
); /* Direct call opts#OptionContext#add_option on <var32:OptionContext>*/
527 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
528 var42
= self
->attrs
[COLOR_nit__toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
529 if (unlikely(var42
== NULL
)) {
530 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
531 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext
, 332);
539 { /* Inline separate_compiler#ToolContext#opt_colors_are_symbols (self) on <self:ToolContext> */
540 var45
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_colors_are_symbols
].val
; /* _opt_colors_are_symbols on <self:ToolContext> */
541 if (unlikely(var45
== NULL
)) {
542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colors_are_symbols");
543 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 35);
551 { /* Inline separate_compiler#ToolContext#opt_trampoline_call (self) on <self:ToolContext> */
552 var48
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_trampoline_call
].val
; /* _opt_trampoline_call on <self:ToolContext> */
553 if (unlikely(var48
== NULL
)) {
554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_trampoline_call");
555 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 37);
563 { /* Inline separate_compiler#ToolContext#opt_guard_call (self) on <self:ToolContext> */
564 var51
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_guard_call
].val
; /* _opt_guard_call on <self:ToolContext> */
565 if (unlikely(var51
== NULL
)) {
566 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_guard_call");
567 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 39);
575 { /* Inline separate_compiler#ToolContext#opt_direct_call_monomorph0 (self) on <self:ToolContext> */
576 var54
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_direct_call_monomorph0
].val
; /* _opt_direct_call_monomorph0 on <self:ToolContext> */
577 if (unlikely(var54
== NULL
)) {
578 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph0");
579 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 52);
587 { /* Inline separate_compiler#ToolContext#opt_substitute_monomorph (self) on <self:ToolContext> */
588 var57
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_substitute_monomorph
].val
; /* _opt_substitute_monomorph on <self:ToolContext> */
589 if (unlikely(var57
== NULL
)) {
590 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_substitute_monomorph");
591 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 41);
599 { /* Inline separate_compiler#ToolContext#opt_link_boost (self) on <self:ToolContext> */
600 var60
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_link_boost
].val
; /* _opt_link_boost on <self:ToolContext> */
601 if (unlikely(var60
== NULL
)) {
602 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_link_boost");
603 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 43);
610 var61
= NEW_standard__Array(&type_standard__Array__opts__Option
);
611 { /* var61 = array_instance Array[Option] */
612 var62
= NEW_standard__NativeArray(6l, &type_standard__NativeArray__opts__Option
);
613 ((struct instance_standard__NativeArray
*)var62
)->values
[0] = (val
*) var43
;
614 ((struct instance_standard__NativeArray
*)var62
)->values
[1] = (val
*) var46
;
615 ((struct instance_standard__NativeArray
*)var62
)->values
[2] = (val
*) var49
;
616 ((struct instance_standard__NativeArray
*)var62
)->values
[3] = (val
*) var52
;
617 ((struct instance_standard__NativeArray
*)var62
)->values
[4] = (val
*) var55
;
618 ((struct instance_standard__NativeArray
*)var62
)->values
[5] = (val
*) var58
;
620 ((void(*)(val
* self
, val
* p0
, long p1
))(var61
->class->vft
[COLOR_standard__array__Array__with_native
]))(var61
, var62
, 6l); /* with_native on <var61:Array[Option]>*/
624 opts___opts__OptionContext___add_option(var40
, var61
); /* Direct call opts#OptionContext#add_option on <var40:OptionContext>*/
627 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
628 var65
= self
->attrs
[COLOR_nit__toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
629 if (unlikely(var65
== NULL
)) {
630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
631 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext
, 332);
639 { /* Inline separate_compiler#ToolContext#opt_inline_coloring_numbers (self) on <self:ToolContext> */
640 var68
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_inline_coloring_numbers
].val
; /* _opt_inline_coloring_numbers on <self:ToolContext> */
641 if (unlikely(var68
== NULL
)) {
642 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
643 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 46);
651 { /* Inline separate_compiler#ToolContext#opt_inline_some_methods (self) on <self:ToolContext> */
652 var71
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_inline_some_methods
].val
; /* _opt_inline_some_methods on <self:ToolContext> */
653 if (unlikely(var71
== NULL
)) {
654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_some_methods");
655 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 48);
663 { /* Inline separate_compiler#ToolContext#opt_direct_call_monomorph (self) on <self:ToolContext> */
664 var74
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_direct_call_monomorph
].val
; /* _opt_direct_call_monomorph on <self:ToolContext> */
665 if (unlikely(var74
== NULL
)) {
666 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph");
667 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 50);
675 { /* Inline separate_compiler#ToolContext#opt_skip_dead_methods (self) on <self:ToolContext> */
676 var77
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_skip_dead_methods
].val
; /* _opt_skip_dead_methods on <self:ToolContext> */
677 if (unlikely(var77
== NULL
)) {
678 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods");
679 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 54);
687 { /* Inline separate_compiler#ToolContext#opt_semi_global (self) on <self:ToolContext> */
688 var80
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_semi_global
].val
; /* _opt_semi_global on <self:ToolContext> */
689 if (unlikely(var80
== NULL
)) {
690 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_semi_global");
691 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 56);
698 var81
= NEW_standard__Array(&type_standard__Array__opts__Option
);
699 { /* var81 = array_instance Array[Option] */
700 var82
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__opts__Option
);
701 ((struct instance_standard__NativeArray
*)var82
)->values
[0] = (val
*) var66
;
702 ((struct instance_standard__NativeArray
*)var82
)->values
[1] = (val
*) var69
;
703 ((struct instance_standard__NativeArray
*)var82
)->values
[2] = (val
*) var72
;
704 ((struct instance_standard__NativeArray
*)var82
)->values
[3] = (val
*) var75
;
705 ((struct instance_standard__NativeArray
*)var82
)->values
[4] = (val
*) var78
;
707 ((void(*)(val
* self
, val
* p0
, long p1
))(var81
->class->vft
[COLOR_standard__array__Array__with_native
]))(var81
, var82
, 5l); /* with_native on <var81:Array[Option]>*/
711 opts___opts__OptionContext___add_option(var63
, var81
); /* Direct call opts#OptionContext#add_option on <var63:OptionContext>*/
714 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
715 var85
= self
->attrs
[COLOR_nit__toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
716 if (unlikely(var85
== NULL
)) {
717 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
718 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext
, 332);
726 { /* Inline separate_compiler#ToolContext#opt_colo_dead_methods (self) on <self:ToolContext> */
727 var88
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_colo_dead_methods
].val
; /* _opt_colo_dead_methods on <self:ToolContext> */
728 if (unlikely(var88
== NULL
)) {
729 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colo_dead_methods");
730 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 58);
737 var89
= NEW_standard__Array(&type_standard__Array__opts__Option
);
738 { /* var89 = array_instance Array[Option] */
739 var90
= NEW_standard__NativeArray(1l, &type_standard__NativeArray__opts__Option
);
740 ((struct instance_standard__NativeArray
*)var90
)->values
[0] = (val
*) var86
;
742 ((void(*)(val
* self
, val
* p0
, long p1
))(var89
->class->vft
[COLOR_standard__array__Array__with_native
]))(var89
, var90
, 1l); /* with_native on <var89:Array[Option]>*/
746 opts___opts__OptionContext___add_option(var83
, var89
); /* Direct call opts#OptionContext#add_option on <var83:OptionContext>*/
749 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
750 var93
= self
->attrs
[COLOR_nit__toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
751 if (unlikely(var93
== NULL
)) {
752 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
753 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext
, 332);
761 { /* Inline separate_compiler#ToolContext#opt_tables_metrics (self) on <self:ToolContext> */
762 var96
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_tables_metrics
].val
; /* _opt_tables_metrics on <self:ToolContext> */
763 if (unlikely(var96
== NULL
)) {
764 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_tables_metrics");
765 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 60);
772 var97
= NEW_standard__Array(&type_standard__Array__opts__Option
);
773 { /* var97 = array_instance Array[Option] */
774 var98
= NEW_standard__NativeArray(1l, &type_standard__NativeArray__opts__Option
);
775 ((struct instance_standard__NativeArray
*)var98
)->values
[0] = (val
*) var94
;
777 ((void(*)(val
* self
, val
* p0
, long p1
))(var97
->class->vft
[COLOR_standard__array__Array__with_native
]))(var97
, var98
, 1l); /* with_native on <var97:Array[Option]>*/
781 opts___opts__OptionContext___add_option(var91
, var97
); /* Direct call opts#OptionContext#add_option on <var91:OptionContext>*/
784 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
785 var101
= self
->attrs
[COLOR_nit__toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
786 if (unlikely(var101
== NULL
)) {
787 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
788 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext
, 332);
792 RET_LABEL100
:(void)0;
796 { /* Inline separate_compiler#ToolContext#opt_type_poset (self) on <self:ToolContext> */
797 var104
= self
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_type_poset
].val
; /* _opt_type_poset on <self:ToolContext> */
798 if (unlikely(var104
== NULL
)) {
799 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_type_poset");
800 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 62);
804 RET_LABEL103
:(void)0;
807 var105
= NEW_standard__Array(&type_standard__Array__opts__Option
);
808 { /* var105 = array_instance Array[Option] */
809 var106
= NEW_standard__NativeArray(1l, &type_standard__NativeArray__opts__Option
);
810 ((struct instance_standard__NativeArray
*)var106
)->values
[0] = (val
*) var102
;
812 ((void(*)(val
* self
, val
* p0
, long p1
))(var105
->class->vft
[COLOR_standard__array__Array__with_native
]))(var105
, var106
, 1l); /* with_native on <var105:Array[Option]>*/
816 opts___opts__OptionContext___add_option(var99
, var105
); /* Direct call opts#OptionContext#add_option on <var99:OptionContext>*/
820 /* method separate_compiler#ToolContext#process_options for (self: ToolContext, Sequence[String]) */
821 void nit__separate_compiler___ToolContext___process_options(val
* self
, val
* p0
) {
822 val
* var_args
/* var args: Sequence[String] */;
823 val
* var_tc
/* var tc: ToolContext */;
824 val
* var
/* : OptionBool */;
825 val
* var2
/* : OptionBool */;
826 val
* var3
/* : nullable Object */;
827 val
* var5
/* : nullable Object */;
828 short int var6
/* : Bool */;
829 val
* var7
/* : OptionBool */;
830 val
* var9
/* : OptionBool */;
831 short int var11
/* : Bool */;
834 const struct type
* type_struct
;
835 const char* var_class_name
;
836 val
* var12
/* : nullable Object */;
837 val
* var13
/* : OptionBool */;
838 val
* var15
/* : OptionBool */;
839 short int var17
/* : Bool */;
842 const struct type
* type_struct20
;
843 const char* var_class_name21
;
844 val
* var22
/* : nullable Object */;
845 val
* var23
/* : OptionBool */;
846 val
* var25
/* : OptionBool */;
847 short int var27
/* : Bool */;
850 const struct type
* type_struct30
;
851 const char* var_class_name31
;
852 val
* var32
/* : nullable Object */;
853 val
* var33
/* : OptionBool */;
854 val
* var35
/* : OptionBool */;
855 short int var37
/* : Bool */;
858 const struct type
* type_struct40
;
859 const char* var_class_name41
;
860 val
* var42
/* : nullable Object */;
861 val
* var43
/* : OptionBool */;
862 val
* var45
/* : OptionBool */;
863 val
* var46
/* : nullable Object */;
864 val
* var48
/* : nullable Object */;
865 short int var49
/* : Bool */;
866 val
* var50
/* : OptionBool */;
867 val
* var52
/* : OptionBool */;
868 short int var54
/* : Bool */;
871 const struct type
* type_struct57
;
872 const char* var_class_name58
;
873 val
* var59
/* : nullable Object */;
874 val
* var60
/* : OptionBool */;
875 val
* var62
/* : OptionBool */;
876 short int var64
/* : Bool */;
879 const struct type
* type_struct67
;
880 const char* var_class_name68
;
881 val
* var69
/* : nullable Object */;
882 val
* var70
/* : OptionBool */;
883 val
* var72
/* : OptionBool */;
884 val
* var73
/* : nullable Object */;
885 val
* var75
/* : nullable Object */;
886 short int var76
/* : Bool */;
887 val
* var77
/* : OptionBool */;
888 val
* var79
/* : OptionBool */;
889 short int var81
/* : Bool */;
892 const struct type
* type_struct84
;
893 const char* var_class_name85
;
894 val
* var86
/* : nullable Object */;
897 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__separate_compiler___ToolContext___process_options
]))(self
, p0
); /* process_options on <self:ToolContext>*/
901 { /* Inline separate_compiler#ToolContext#opt_semi_global (var_tc) on <var_tc:ToolContext> */
902 var2
= var_tc
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_semi_global
].val
; /* _opt_semi_global on <var_tc:ToolContext> */
903 if (unlikely(var2
== NULL
)) {
904 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_semi_global");
905 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 56);
913 { /* Inline opts#Option#value (var) on <var:OptionBool> */
914 var5
= var
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var:OptionBool> */
919 var6
= (short int)((long)(var3
)>>2);
922 { /* Inline separate_compiler#ToolContext#opt_inline_coloring_numbers (var_tc) on <var_tc:ToolContext> */
923 var9
= var_tc
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_inline_coloring_numbers
].val
; /* _opt_inline_coloring_numbers on <var_tc:ToolContext> */
924 if (unlikely(var9
== NULL
)) {
925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
926 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 46);
934 { /* Inline opts#Option#value= (var7,1) on <var7:OptionBool> */
935 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
936 /* <1:Bool> isa VALUE */
937 type_struct
= var7
->type
->resolution_table
->types
[COLOR_opts__Option__VALUE
];
938 cltype
= type_struct
->color
;
939 idtype
= type_struct
->id
;
940 if(cltype
>= (&type_standard__Bool
)->table_size
) {
943 var11
= (&type_standard__Bool
)->type_table
[cltype
] == idtype
;
945 if (unlikely(!var11
)) {
946 var_class_name
= type_standard__Bool
.name
;
947 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name
);
948 PRINT_ERROR(" (%s:%d)\n", FILE_opts
, 40);
951 var12
= (val
*)((long)(1)<<2|3);
952 var7
->attrs
[COLOR_opts__Option___value
].val
= var12
; /* _value on <var7:OptionBool> */
957 { /* Inline separate_compiler#ToolContext#opt_inline_some_methods (var_tc) on <var_tc:ToolContext> */
958 var15
= var_tc
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_inline_some_methods
].val
; /* _opt_inline_some_methods on <var_tc:ToolContext> */
959 if (unlikely(var15
== NULL
)) {
960 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_some_methods");
961 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 48);
969 { /* Inline opts#Option#value= (var13,1) on <var13:OptionBool> */
970 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
971 /* <1:Bool> isa VALUE */
972 type_struct20
= var13
->type
->resolution_table
->types
[COLOR_opts__Option__VALUE
];
973 cltype18
= type_struct20
->color
;
974 idtype19
= type_struct20
->id
;
975 if(cltype18
>= (&type_standard__Bool
)->table_size
) {
978 var17
= (&type_standard__Bool
)->type_table
[cltype18
] == idtype19
;
980 if (unlikely(!var17
)) {
981 var_class_name21
= type_standard__Bool
.name
;
982 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name21
);
983 PRINT_ERROR(" (%s:%d)\n", FILE_opts
, 40);
986 var22
= (val
*)((long)(1)<<2|3);
987 var13
->attrs
[COLOR_opts__Option___value
].val
= var22
; /* _value on <var13:OptionBool> */
992 { /* Inline separate_compiler#ToolContext#opt_direct_call_monomorph (var_tc) on <var_tc:ToolContext> */
993 var25
= var_tc
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_direct_call_monomorph
].val
; /* _opt_direct_call_monomorph on <var_tc:ToolContext> */
994 if (unlikely(var25
== NULL
)) {
995 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph");
996 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 50);
1000 RET_LABEL24
:(void)0;
1004 { /* Inline opts#Option#value= (var23,1) on <var23:OptionBool> */
1005 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
1006 /* <1:Bool> isa VALUE */
1007 type_struct30
= var23
->type
->resolution_table
->types
[COLOR_opts__Option__VALUE
];
1008 cltype28
= type_struct30
->color
;
1009 idtype29
= type_struct30
->id
;
1010 if(cltype28
>= (&type_standard__Bool
)->table_size
) {
1013 var27
= (&type_standard__Bool
)->type_table
[cltype28
] == idtype29
;
1015 if (unlikely(!var27
)) {
1016 var_class_name31
= type_standard__Bool
.name
;
1017 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name31
);
1018 PRINT_ERROR(" (%s:%d)\n", FILE_opts
, 40);
1021 var32
= (val
*)((long)(1)<<2|3);
1022 var23
->attrs
[COLOR_opts__Option___value
].val
= var32
; /* _value on <var23:OptionBool> */
1023 RET_LABEL26
:(void)0;
1027 { /* Inline separate_compiler#ToolContext#opt_skip_dead_methods (var_tc) on <var_tc:ToolContext> */
1028 var35
= var_tc
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_skip_dead_methods
].val
; /* _opt_skip_dead_methods on <var_tc:ToolContext> */
1029 if (unlikely(var35
== NULL
)) {
1030 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods");
1031 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 54);
1035 RET_LABEL34
:(void)0;
1039 { /* Inline opts#Option#value= (var33,1) on <var33:OptionBool> */
1040 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
1041 /* <1:Bool> isa VALUE */
1042 type_struct40
= var33
->type
->resolution_table
->types
[COLOR_opts__Option__VALUE
];
1043 cltype38
= type_struct40
->color
;
1044 idtype39
= type_struct40
->id
;
1045 if(cltype38
>= (&type_standard__Bool
)->table_size
) {
1048 var37
= (&type_standard__Bool
)->type_table
[cltype38
] == idtype39
;
1050 if (unlikely(!var37
)) {
1051 var_class_name41
= type_standard__Bool
.name
;
1052 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name41
);
1053 PRINT_ERROR(" (%s:%d)\n", FILE_opts
, 40);
1056 var42
= (val
*)((long)(1)<<2|3);
1057 var33
->attrs
[COLOR_opts__Option___value
].val
= var42
; /* _value on <var33:OptionBool> */
1058 RET_LABEL36
:(void)0;
1064 { /* Inline separate_compiler#ToolContext#opt_link_boost (var_tc) on <var_tc:ToolContext> */
1065 var45
= var_tc
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_link_boost
].val
; /* _opt_link_boost on <var_tc:ToolContext> */
1066 if (unlikely(var45
== NULL
)) {
1067 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_link_boost");
1068 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 43);
1072 RET_LABEL44
:(void)0;
1076 { /* Inline opts#Option#value (var43) on <var43:OptionBool> */
1077 var48
= var43
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var43:OptionBool> */
1079 RET_LABEL47
:(void)0;
1082 var49
= (short int)((long)(var46
)>>2);
1085 { /* Inline separate_compiler#ToolContext#opt_colors_are_symbols (var_tc) on <var_tc:ToolContext> */
1086 var52
= var_tc
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_colors_are_symbols
].val
; /* _opt_colors_are_symbols on <var_tc:ToolContext> */
1087 if (unlikely(var52
== NULL
)) {
1088 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colors_are_symbols");
1089 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 35);
1093 RET_LABEL51
:(void)0;
1097 { /* Inline opts#Option#value= (var50,1) on <var50:OptionBool> */
1098 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
1099 /* <1:Bool> isa VALUE */
1100 type_struct57
= var50
->type
->resolution_table
->types
[COLOR_opts__Option__VALUE
];
1101 cltype55
= type_struct57
->color
;
1102 idtype56
= type_struct57
->id
;
1103 if(cltype55
>= (&type_standard__Bool
)->table_size
) {
1106 var54
= (&type_standard__Bool
)->type_table
[cltype55
] == idtype56
;
1108 if (unlikely(!var54
)) {
1109 var_class_name58
= type_standard__Bool
.name
;
1110 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name58
);
1111 PRINT_ERROR(" (%s:%d)\n", FILE_opts
, 40);
1114 var59
= (val
*)((long)(1)<<2|3);
1115 var50
->attrs
[COLOR_opts__Option___value
].val
= var59
; /* _value on <var50:OptionBool> */
1116 RET_LABEL53
:(void)0;
1120 { /* Inline separate_compiler#ToolContext#opt_substitute_monomorph (var_tc) on <var_tc:ToolContext> */
1121 var62
= var_tc
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_substitute_monomorph
].val
; /* _opt_substitute_monomorph on <var_tc:ToolContext> */
1122 if (unlikely(var62
== NULL
)) {
1123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_substitute_monomorph");
1124 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 41);
1128 RET_LABEL61
:(void)0;
1132 { /* Inline opts#Option#value= (var60,1) on <var60:OptionBool> */
1133 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
1134 /* <1:Bool> isa VALUE */
1135 type_struct67
= var60
->type
->resolution_table
->types
[COLOR_opts__Option__VALUE
];
1136 cltype65
= type_struct67
->color
;
1137 idtype66
= type_struct67
->id
;
1138 if(cltype65
>= (&type_standard__Bool
)->table_size
) {
1141 var64
= (&type_standard__Bool
)->type_table
[cltype65
] == idtype66
;
1143 if (unlikely(!var64
)) {
1144 var_class_name68
= type_standard__Bool
.name
;
1145 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name68
);
1146 PRINT_ERROR(" (%s:%d)\n", FILE_opts
, 40);
1149 var69
= (val
*)((long)(1)<<2|3);
1150 var60
->attrs
[COLOR_opts__Option___value
].val
= var69
; /* _value on <var60:OptionBool> */
1151 RET_LABEL63
:(void)0;
1157 { /* Inline separate_compiler#ToolContext#opt_substitute_monomorph (var_tc) on <var_tc:ToolContext> */
1158 var72
= var_tc
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_substitute_monomorph
].val
; /* _opt_substitute_monomorph on <var_tc:ToolContext> */
1159 if (unlikely(var72
== NULL
)) {
1160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_substitute_monomorph");
1161 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 41);
1165 RET_LABEL71
:(void)0;
1169 { /* Inline opts#Option#value (var70) on <var70:OptionBool> */
1170 var75
= var70
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var70:OptionBool> */
1172 RET_LABEL74
:(void)0;
1175 var76
= (short int)((long)(var73
)>>2);
1178 { /* Inline separate_compiler#ToolContext#opt_trampoline_call (var_tc) on <var_tc:ToolContext> */
1179 var79
= var_tc
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_trampoline_call
].val
; /* _opt_trampoline_call on <var_tc:ToolContext> */
1180 if (unlikely(var79
== NULL
)) {
1181 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_trampoline_call");
1182 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 37);
1186 RET_LABEL78
:(void)0;
1190 { /* Inline opts#Option#value= (var77,1) on <var77:OptionBool> */
1191 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
1192 /* <1:Bool> isa VALUE */
1193 type_struct84
= var77
->type
->resolution_table
->types
[COLOR_opts__Option__VALUE
];
1194 cltype82
= type_struct84
->color
;
1195 idtype83
= type_struct84
->id
;
1196 if(cltype82
>= (&type_standard__Bool
)->table_size
) {
1199 var81
= (&type_standard__Bool
)->type_table
[cltype82
] == idtype83
;
1201 if (unlikely(!var81
)) {
1202 var_class_name85
= type_standard__Bool
.name
;
1203 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name85
);
1204 PRINT_ERROR(" (%s:%d)\n", FILE_opts
, 40);
1207 var86
= (val
*)((long)(1)<<2|3);
1208 var77
->attrs
[COLOR_opts__Option___value
].val
= var86
; /* _value on <var77:OptionBool> */
1209 RET_LABEL80
:(void)0;
1216 /* method separate_compiler#SeparateCompilerPhase#process_mainmodule for (self: SeparateCompilerPhase, MModule, SequenceRead[MModule]) */
1217 void nit___nit__SeparateCompilerPhase___nit__modelbuilder__Phase__process_mainmodule(val
* self
, val
* p0
, val
* p1
) {
1218 val
* var_mainmodule
/* var mainmodule: MModule */;
1219 val
* var_given_mmodules
/* var given_mmodules: SequenceRead[MModule] */;
1220 val
* var
/* : ToolContext */;
1221 val
* var2
/* : ToolContext */;
1222 val
* var3
/* : OptionBool */;
1223 val
* var5
/* : OptionBool */;
1224 val
* var6
/* : nullable Object */;
1225 val
* var8
/* : nullable Object */;
1226 short int var9
/* : Bool */;
1227 short int var10
/* : Bool */;
1228 val
* var11
/* : ToolContext */;
1229 val
* var13
/* : ToolContext */;
1230 val
* var14
/* : ModelBuilder */;
1231 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
1232 val
* var15
/* : RapidTypeAnalysis */;
1233 val
* var_analysis
/* var analysis: RapidTypeAnalysis */;
1234 var_mainmodule
= p0
;
1235 var_given_mmodules
= p1
;
1237 { /* Inline phase#Phase#toolcontext (self) on <self:SeparateCompilerPhase> */
1238 var2
= self
->attrs
[COLOR_nit__phase__Phase___toolcontext
].val
; /* _toolcontext on <self:SeparateCompilerPhase> */
1239 if (unlikely(var2
== NULL
)) {
1240 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1241 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase
, 200);
1249 { /* Inline separate_compiler#ToolContext#opt_separate (var) on <var:ToolContext> */
1250 var5
= var
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_separate
].val
; /* _opt_separate on <var:ToolContext> */
1251 if (unlikely(var5
== NULL
)) {
1252 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_separate");
1253 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 24);
1261 { /* Inline opts#Option#value (var3) on <var3:OptionBool> */
1262 var8
= var3
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var3:OptionBool> */
1267 var9
= (short int)((long)(var6
)>>2);
1274 { /* Inline phase#Phase#toolcontext (self) on <self:SeparateCompilerPhase> */
1275 var13
= self
->attrs
[COLOR_nit__phase__Phase___toolcontext
].val
; /* _toolcontext on <self:SeparateCompilerPhase> */
1276 if (unlikely(var13
== NULL
)) {
1277 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1278 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase
, 200);
1282 RET_LABEL12
:(void)0;
1286 var14
= nit__modelbuilder_base___ToolContext___modelbuilder(var11
);
1288 var_modelbuilder
= var14
;
1290 var15
= nit__rapid_type_analysis___ModelBuilder___do_rapid_type_analysis(var_modelbuilder
, var_mainmodule
);
1292 var_analysis
= var15
;
1294 nit__separate_compiler___ModelBuilder___run_separate_compiler(var_modelbuilder
, var_mainmodule
, var_analysis
); /* Direct call separate_compiler#ModelBuilder#run_separate_compiler on <var_modelbuilder:ModelBuilder>*/
1298 /* method separate_compiler#ModelBuilder#run_separate_compiler for (self: ModelBuilder, MModule, nullable RapidTypeAnalysis) */
1299 void nit__separate_compiler___ModelBuilder___run_separate_compiler(val
* self
, val
* p0
, val
* p1
) {
1300 val
* var_mainmodule
/* var mainmodule: MModule */;
1301 val
* var_runtime_type_analysis
/* var runtime_type_analysis: nullable RapidTypeAnalysis */;
1302 long var
/* : Int */;
1303 long var2
/* : Int for extern */;
1304 long var_time0
/* var time0: Int */;
1305 val
* var3
/* : ToolContext */;
1306 val
* var5
/* : ToolContext */;
1307 static val
* varonce
;
1308 val
* var6
/* : String */;
1309 char* var7
/* : NativeString */;
1310 val
* var8
/* : FlatString */;
1311 val
* var9
/* : SeparateCompiler */;
1312 val
* var_compiler
/* var compiler: SeparateCompiler */;
1313 long var10
/* : Int */;
1314 long var12
/* : Int for extern */;
1315 long var_time1
/* var time1: Int */;
1316 val
* var13
/* : ToolContext */;
1317 val
* var15
/* : ToolContext */;
1318 val
* var17
/* : NativeArray[String] */;
1319 static val
* varonce16
;
1320 static val
* varonce18
;
1321 val
* var19
/* : String */;
1322 char* var20
/* : NativeString */;
1323 val
* var21
/* : FlatString */;
1324 static val
* varonce22
;
1325 val
* var23
/* : String */;
1326 char* var24
/* : NativeString */;
1327 val
* var25
/* : FlatString */;
1328 long var26
/* : Int */;
1329 short int var28
/* : Bool */;
1332 const char* var_class_name
;
1333 long var29
/* : Int */;
1334 val
* var30
/* : String */;
1335 val
* var31
/* : String */;
1336 var_mainmodule
= p0
;
1337 var_runtime_type_analysis
= p1
;
1339 { /* Inline time#Object#get_time (self) on <self:ModelBuilder> */
1340 var2
= kernel_Any_Any_get_time_0(self
);
1348 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1349 var5
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1350 if (unlikely(var5
== NULL
)) {
1351 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1352 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
1359 if (likely(varonce
!=NULL
)) {
1362 var7
= "*** GENERATING C ***";
1363 var8
= standard___standard__NativeString___to_s_with_length(var7
, 20l);
1368 nit___nit__ToolContext___info(var3
, var6
, 1l); /* Direct call toolcontext#ToolContext#info on <var3:ToolContext>*/
1370 var9
= NEW_nit__SeparateCompiler(&type_nit__SeparateCompiler
);
1372 ((void(*)(val
* self
, val
* p0
))(var9
->class->vft
[COLOR_nit__abstract_compiler__AbstractCompiler__mainmodule_61d
]))(var9
, var_mainmodule
); /* mainmodule= on <var9:SeparateCompiler>*/
1375 ((void(*)(val
* self
, val
* p0
))(var9
->class->vft
[COLOR_nit__abstract_compiler__AbstractCompiler__modelbuilder_61d
]))(var9
, self
); /* modelbuilder= on <var9:SeparateCompiler>*/
1378 ((void(*)(val
* self
, val
* p0
))(var9
->class->vft
[COLOR_nit__separate_compiler__SeparateCompiler__runtime_type_analysis_61d
]))(var9
, var_runtime_type_analysis
); /* runtime_type_analysis= on <var9:SeparateCompiler>*/
1381 ((void(*)(val
* self
))(var9
->class->vft
[COLOR_standard__kernel__Object__init
]))(var9
); /* init on <var9:SeparateCompiler>*/
1383 var_compiler
= var9
;
1385 nit___nit__SeparateCompiler___nit__abstract_compiler__AbstractCompiler__do_compilation(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#do_compilation on <var_compiler:SeparateCompiler>*/
1388 nit___nit__SeparateCompiler___nit__abstract_compiler__AbstractCompiler__display_stats(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#display_stats on <var_compiler:SeparateCompiler>*/
1391 { /* Inline time#Object#get_time (self) on <self:ModelBuilder> */
1392 var12
= kernel_Any_Any_get_time_0(self
);
1395 RET_LABEL11
:(void)0;
1400 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1401 var15
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1402 if (unlikely(var15
== NULL
)) {
1403 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1404 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
1408 RET_LABEL14
:(void)0;
1411 if (unlikely(varonce16
==NULL
)) {
1412 var17
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
1413 if (likely(varonce18
!=NULL
)) {
1416 var20
= "*** END GENERATING C: ";
1417 var21
= standard___standard__NativeString___to_s_with_length(var20
, 22l);
1421 ((struct instance_standard__NativeArray
*)var17
)->values
[0]=var19
;
1422 if (likely(varonce22
!=NULL
)) {
1426 var25
= standard___standard__NativeString___to_s_with_length(var24
, 4l);
1430 ((struct instance_standard__NativeArray
*)var17
)->values
[2]=var23
;
1436 { /* Inline kernel#Int#- (var_time1,var_time0) on <var_time1:Int> */
1437 /* Covariant cast for argument 0 (i) <var_time0:Int> isa OTHER */
1438 /* <var_time0:Int> isa OTHER */
1439 var28
= 1; /* easy <var_time0:Int> isa OTHER*/
1440 if (unlikely(!var28
)) {
1441 var_class_name
= type_standard__Int
.name
;
1442 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1443 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 540);
1446 var29
= var_time1
- var_time0
;
1449 RET_LABEL27
:(void)0;
1452 var30
= standard__string___Int___Object__to_s(var26
);
1453 ((struct instance_standard__NativeArray
*)var17
)->values
[1]=var30
;
1455 var31
= ((val
*(*)(val
* self
))(var17
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var17
); /* native_to_s on <var17:NativeArray[String]>*/
1459 nit___nit__ToolContext___info(var13
, var31
, 2l); /* Direct call toolcontext#ToolContext#info on <var13:ToolContext>*/
1462 nit__abstract_compiler___ModelBuilder___write_and_make(self
, var_compiler
); /* Direct call abstract_compiler#ModelBuilder#write_and_make on <self:ModelBuilder>*/
1466 /* method separate_compiler#ModelBuilder#nb_invok_by_tables for (self: ModelBuilder): Int */
1467 long nit__separate_compiler___ModelBuilder___nb_invok_by_tables(val
* self
) {
1468 long var
/* : Int */;
1469 long var1
/* : Int */;
1470 var1
= self
->attrs
[COLOR_nit__separate_compiler__ModelBuilder___nb_invok_by_tables
].l
; /* _nb_invok_by_tables on <self:ModelBuilder> */
1475 /* method separate_compiler#ModelBuilder#nb_invok_by_tables= for (self: ModelBuilder, Int) */
1476 void nit__separate_compiler___ModelBuilder___nb_invok_by_tables_61d(val
* self
, long p0
) {
1477 self
->attrs
[COLOR_nit__separate_compiler__ModelBuilder___nb_invok_by_tables
].l
= p0
; /* _nb_invok_by_tables on <self:ModelBuilder> */
1480 /* method separate_compiler#ModelBuilder#nb_invok_by_direct for (self: ModelBuilder): Int */
1481 long nit__separate_compiler___ModelBuilder___nb_invok_by_direct(val
* self
) {
1482 long var
/* : Int */;
1483 long var1
/* : Int */;
1484 var1
= self
->attrs
[COLOR_nit__separate_compiler__ModelBuilder___nb_invok_by_direct
].l
; /* _nb_invok_by_direct on <self:ModelBuilder> */
1489 /* method separate_compiler#ModelBuilder#nb_invok_by_direct= for (self: ModelBuilder, Int) */
1490 void nit__separate_compiler___ModelBuilder___nb_invok_by_direct_61d(val
* self
, long p0
) {
1491 self
->attrs
[COLOR_nit__separate_compiler__ModelBuilder___nb_invok_by_direct
].l
= p0
; /* _nb_invok_by_direct on <self:ModelBuilder> */
1494 /* method separate_compiler#ModelBuilder#nb_invok_by_inline for (self: ModelBuilder): Int */
1495 long nit__separate_compiler___ModelBuilder___nb_invok_by_inline(val
* self
) {
1496 long var
/* : Int */;
1497 long var1
/* : Int */;
1498 var1
= self
->attrs
[COLOR_nit__separate_compiler__ModelBuilder___nb_invok_by_inline
].l
; /* _nb_invok_by_inline on <self:ModelBuilder> */
1503 /* method separate_compiler#ModelBuilder#nb_invok_by_inline= for (self: ModelBuilder, Int) */
1504 void nit__separate_compiler___ModelBuilder___nb_invok_by_inline_61d(val
* self
, long p0
) {
1505 self
->attrs
[COLOR_nit__separate_compiler__ModelBuilder___nb_invok_by_inline
].l
= p0
; /* _nb_invok_by_inline on <self:ModelBuilder> */
1508 /* method separate_compiler#SeparateCompiler#runtime_type_analysis for (self: SeparateCompiler): nullable RapidTypeAnalysis */
1509 val
* nit___nit__SeparateCompiler___runtime_type_analysis(val
* self
) {
1510 val
* var
/* : nullable RapidTypeAnalysis */;
1511 val
* var1
/* : nullable RapidTypeAnalysis */;
1512 var1
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
1517 /* method separate_compiler#SeparateCompiler#runtime_type_analysis= for (self: SeparateCompiler, nullable RapidTypeAnalysis) */
1518 void nit___nit__SeparateCompiler___runtime_type_analysis_61d(val
* self
, val
* p0
) {
1519 self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
= p0
; /* _runtime_type_analysis on <self:SeparateCompiler> */
1522 /* method separate_compiler#SeparateCompiler#undead_types for (self: SeparateCompiler): Set[MType] */
1523 val
* nit___nit__SeparateCompiler___undead_types(val
* self
) {
1524 val
* var
/* : Set[MType] */;
1525 val
* var1
/* : Set[MType] */;
1526 var1
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___undead_types
].val
; /* _undead_types on <self:SeparateCompiler> */
1527 if (unlikely(var1
== NULL
)) {
1528 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
1529 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 146);
1536 /* method separate_compiler#SeparateCompiler#live_unresolved_types for (self: SeparateCompiler): Map[MClassDef, Set[MType]] */
1537 val
* nit___nit__SeparateCompiler___live_unresolved_types(val
* self
) {
1538 val
* var
/* : Map[MClassDef, Set[MType]] */;
1539 val
* var1
/* : Map[MClassDef, Set[MType]] */;
1540 var1
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <self:SeparateCompiler> */
1541 if (unlikely(var1
== NULL
)) {
1542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
1543 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 147);
1550 /* method separate_compiler#SeparateCompiler#type_ids for (self: SeparateCompiler): Map[MType, Int] */
1551 val
* nit___nit__SeparateCompiler___type_ids(val
* self
) {
1552 val
* var
/* : Map[MType, Int] */;
1553 val
* var1
/* : Map[MType, Int] */;
1554 var1
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_ids
].val
; /* _type_ids on <self:SeparateCompiler> */
1555 if (unlikely(var1
== NULL
)) {
1556 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
1557 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 149);
1564 /* method separate_compiler#SeparateCompiler#type_ids= for (self: SeparateCompiler, Map[MType, Int]) */
1565 void nit___nit__SeparateCompiler___type_ids_61d(val
* self
, val
* p0
) {
1566 self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_ids
].val
= p0
; /* _type_ids on <self:SeparateCompiler> */
1569 /* method separate_compiler#SeparateCompiler#type_colors for (self: SeparateCompiler): Map[MType, Int] */
1570 val
* nit___nit__SeparateCompiler___type_colors(val
* self
) {
1571 val
* var
/* : Map[MType, Int] */;
1572 val
* var1
/* : Map[MType, Int] */;
1573 var1
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_colors
].val
; /* _type_colors on <self:SeparateCompiler> */
1574 if (unlikely(var1
== NULL
)) {
1575 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors");
1576 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 150);
1583 /* method separate_compiler#SeparateCompiler#type_colors= for (self: SeparateCompiler, Map[MType, Int]) */
1584 void nit___nit__SeparateCompiler___type_colors_61d(val
* self
, val
* p0
) {
1585 self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_colors
].val
= p0
; /* _type_colors on <self:SeparateCompiler> */
1588 /* method separate_compiler#SeparateCompiler#opentype_colors for (self: SeparateCompiler): Map[MType, Int] */
1589 val
* nit___nit__SeparateCompiler___opentype_colors(val
* self
) {
1590 val
* var
/* : Map[MType, Int] */;
1591 val
* var1
/* : Map[MType, Int] */;
1592 var1
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___opentype_colors
].val
; /* _opentype_colors on <self:SeparateCompiler> */
1593 if (unlikely(var1
== NULL
)) {
1594 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
1595 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 151);
1602 /* method separate_compiler#SeparateCompiler#opentype_colors= for (self: SeparateCompiler, Map[MType, Int]) */
1603 void nit___nit__SeparateCompiler___opentype_colors_61d(val
* self
, val
* p0
) {
1604 self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___opentype_colors
].val
= p0
; /* _opentype_colors on <self:SeparateCompiler> */
1607 /* method separate_compiler#SeparateCompiler#init for (self: SeparateCompiler) */
1608 void nit___nit__SeparateCompiler___standard__kernel__Object__init(val
* self
) {
1609 static val
* varonce
;
1610 val
* var
/* : String */;
1611 char* var1
/* : NativeString */;
1612 val
* var2
/* : FlatString */;
1613 val
* var3
/* : CodeFile */;
1614 val
* var_file
/* var file: CodeFile */;
1615 val
* var4
/* : CodeWriter */;
1617 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nit___nit__SeparateCompiler___standard__kernel__Object__init
]))(self
); /* init on <self:SeparateCompiler>*/
1619 if (likely(varonce
!=NULL
)) {
1622 var1
= "nit.common";
1623 var2
= standard___standard__NativeString___to_s_with_length(var1
, 10l);
1628 var3
= nit___nit__AbstractCompiler___new_file(self
, var
);
1631 var4
= NEW_nit__CodeWriter(&type_nit__CodeWriter
);
1633 ((void(*)(val
* self
, val
* p0
))(var4
->class->vft
[COLOR_nit__abstract_compiler__CodeWriter__file_61d
]))(var4
, var_file
); /* file= on <var4:CodeWriter>*/
1636 ((void(*)(val
* self
))(var4
->class->vft
[COLOR_standard__kernel__Object__init
]))(var4
); /* init on <var4:CodeWriter>*/
1639 { /* Inline abstract_compiler#AbstractCompiler#header= (self,var4) on <self:SeparateCompiler> */
1640 self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
= var4
; /* _header on <self:SeparateCompiler> */
1645 nit___nit__SeparateCompiler___compile_box_kinds(self
); /* Direct call separate_compiler#SeparateCompiler#compile_box_kinds on <self:SeparateCompiler>*/
1649 /* method separate_compiler#SeparateCompiler#do_compilation for (self: SeparateCompiler) */
1650 void nit___nit__SeparateCompiler___nit__abstract_compiler__AbstractCompiler__do_compilation(val
* self
) {
1651 val
* var_compiler
/* var compiler: SeparateCompiler */;
1652 val
* var
/* : MModule */;
1653 val
* var2
/* : MModule */;
1654 val
* var3
/* : String */;
1655 val
* var_c_name
/* var c_name: String */;
1656 val
* var4
/* : ModelBuilder */;
1657 val
* var6
/* : ModelBuilder */;
1658 val
* var7
/* : ToolContext */;
1659 val
* var9
/* : ToolContext */;
1660 static val
* varonce
;
1661 val
* var10
/* : String */;
1662 char* var11
/* : NativeString */;
1663 val
* var12
/* : FlatString */;
1664 val
* var14
/* : NativeArray[String] */;
1665 static val
* varonce13
;
1666 static val
* varonce15
;
1667 val
* var16
/* : String */;
1668 char* var17
/* : NativeString */;
1669 val
* var18
/* : FlatString */;
1670 val
* var19
/* : String */;
1671 val
* var20
/* : CodeFile */;
1672 val
* var21
/* : MModule */;
1673 val
* var23
/* : MModule */;
1674 val
* var24
/* : POSetElement[MModule] */;
1675 val
* var26
/* : POSetElement[MModule] */;
1676 val
* var27
/* : Collection[nullable Object] */;
1677 val
* var_
/* var : Collection[MModule] */;
1678 val
* var28
/* : Iterator[nullable Object] */;
1679 val
* var_29
/* var : Iterator[MModule] */;
1680 short int var30
/* : Bool */;
1681 val
* var31
/* : nullable Object */;
1682 val
* var_m
/* var m: MModule */;
1683 val
* var32
/* : Array[MClass] */;
1684 val
* var34
/* : Array[MClass] */;
1685 val
* var_35
/* var : Array[MClass] */;
1686 val
* var36
/* : ArrayIterator[nullable Object] */;
1687 val
* var_37
/* var : ArrayIterator[MClass] */;
1688 short int var38
/* : Bool */;
1689 val
* var39
/* : nullable Object */;
1690 val
* var_mclass
/* var mclass: MClass */;
1691 val
* var42
/* : NativeArray[String] */;
1692 static val
* varonce41
;
1693 static val
* varonce43
;
1694 val
* var44
/* : String */;
1695 char* var45
/* : NativeString */;
1696 val
* var46
/* : FlatString */;
1697 val
* var47
/* : String */;
1698 val
* var48
/* : CodeFile */;
1699 val
* var49
/* : MModule */;
1700 val
* var51
/* : MModule */;
1701 val
* var52
/* : POSetElement[MModule] */;
1702 val
* var54
/* : POSetElement[MModule] */;
1703 val
* var55
/* : Collection[nullable Object] */;
1704 val
* var_56
/* var : Collection[MModule] */;
1705 val
* var57
/* : Iterator[nullable Object] */;
1706 val
* var_58
/* var : Iterator[MModule] */;
1707 short int var59
/* : Bool */;
1708 val
* var60
/* : nullable Object */;
1709 val
* var_m61
/* var m: MModule */;
1710 val
* var62
/* : ModelBuilder */;
1711 val
* var64
/* : ModelBuilder */;
1712 val
* var65
/* : ToolContext */;
1713 val
* var67
/* : ToolContext */;
1714 val
* var69
/* : NativeArray[String] */;
1715 static val
* varonce68
;
1716 static val
* varonce70
;
1717 val
* var71
/* : String */;
1718 char* var72
/* : NativeString */;
1719 val
* var73
/* : FlatString */;
1720 val
* var74
/* : String */;
1721 val
* var75
/* : String */;
1722 val
* var77
/* : NativeArray[String] */;
1723 static val
* varonce76
;
1724 static val
* varonce78
;
1725 val
* var79
/* : String */;
1726 char* var80
/* : NativeString */;
1727 val
* var81
/* : FlatString */;
1728 val
* var82
/* : String */;
1729 val
* var83
/* : String */;
1730 val
* var84
/* : CodeFile */;
1731 val
* var86
/* : ModelBuilder */;
1732 val
* var88
/* : ModelBuilder */;
1733 val
* var89
/* : ToolContext */;
1734 val
* var91
/* : ToolContext */;
1735 static val
* varonce92
;
1736 val
* var93
/* : String */;
1737 char* var94
/* : NativeString */;
1738 val
* var95
/* : FlatString */;
1739 val
* var97
/* : NativeArray[String] */;
1740 static val
* varonce96
;
1741 static val
* varonce98
;
1742 val
* var99
/* : String */;
1743 char* var100
/* : NativeString */;
1744 val
* var101
/* : FlatString */;
1745 val
* var102
/* : String */;
1746 val
* var103
/* : CodeFile */;
1747 var_compiler
= self
;
1749 nit___nit__AbstractCompiler___compile_header(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#compile_header on <var_compiler:SeparateCompiler>*/
1752 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
1753 var2
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
1754 if (unlikely(var2
== NULL
)) {
1755 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1756 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
1764 var3
= nit___nit__MModule___nit__model_base__MEntity__c_name(var
);
1768 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
1769 var6
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
1770 if (unlikely(var6
== NULL
)) {
1771 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1772 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 522);
1780 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var4) on <var4:ModelBuilder> */
1781 var9
= var4
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var4:ModelBuilder> */
1782 if (unlikely(var9
== NULL
)) {
1783 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1784 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
1791 if (likely(varonce
!=NULL
)) {
1794 var11
= "Property coloring";
1795 var12
= standard___standard__NativeString___to_s_with_length(var11
, 17l);
1800 nit___nit__ToolContext___info(var7
, var10
, 2l); /* Direct call toolcontext#ToolContext#info on <var7:ToolContext>*/
1802 if (unlikely(varonce13
==NULL
)) {
1803 var14
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
1804 if (likely(varonce15
!=NULL
)) {
1808 var18
= standard___standard__NativeString___to_s_with_length(var17
, 8l);
1812 ((struct instance_standard__NativeArray
*)var14
)->values
[1]=var16
;
1817 ((struct instance_standard__NativeArray
*)var14
)->values
[0]=var_c_name
;
1819 var19
= ((val
*(*)(val
* self
))(var14
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var14
); /* native_to_s on <var14:NativeArray[String]>*/
1823 var20
= nit___nit__AbstractCompiler___new_file(var_compiler
, var19
);
1826 nit___nit__SeparateCompiler___do_property_coloring(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#do_property_coloring on <var_compiler:SeparateCompiler>*/
1829 nit___nit__SeparateCompiler___compile_class_infos(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#compile_class_infos on <var_compiler:SeparateCompiler>*/
1832 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
1833 var23
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
1834 if (unlikely(var23
== NULL
)) {
1835 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1836 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
1840 RET_LABEL22
:(void)0;
1844 { /* Inline mmodule#MModule#in_importation (var21) on <var21:MModule> */
1845 var26
= var21
->attrs
[COLOR_nit__mmodule__MModule___in_importation
].val
; /* _in_importation on <var21:MModule> */
1846 if (unlikely(var26
== NULL
)) {
1847 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
1848 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 96);
1852 RET_LABEL25
:(void)0;
1856 var27
= poset___poset__POSetElement___greaters(var24
);
1860 var28
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[MModule]>*/
1865 var30
= ((short int(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_29
); /* is_ok on <var_29:Iterator[MModule]>*/
1869 var31
= ((val
*(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_29
); /* item on <var_29:Iterator[MModule]>*/
1873 { /* Inline model#MModule#intro_mclasses (var_m) on <var_m:MModule> */
1874 var34
= var_m
->attrs
[COLOR_nit__model__MModule___intro_mclasses
].val
; /* _intro_mclasses on <var_m:MModule> */
1875 if (unlikely(var34
== NULL
)) {
1876 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclasses");
1877 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 128);
1881 RET_LABEL33
:(void)0;
1886 var36
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_35
);
1891 var38
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_37
);
1895 var39
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_37
);
1899 ((void(*)(val
* self
, val
* p0
))(var_compiler
->class->vft
[COLOR_nit__separate_compiler__SeparateCompiler__compile_class_to_c
]))(var_compiler
, var_mclass
); /* compile_class_to_c on <var_compiler:SeparateCompiler>*/
1902 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_37
); /* Direct call array#ArrayIterator#next on <var_37:ArrayIterator[MClass]>*/
1908 BREAK_label
: (void)0;
1910 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_37
); /* Direct call array#ArrayIterator#finish on <var_37:ArrayIterator[MClass]>*/
1913 ((void(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_29
); /* next on <var_29:Iterator[MModule]>*/
1919 BREAK_label40
: (void)0;
1921 ((void(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_29
); /* finish on <var_29:Iterator[MModule]>*/
1923 if (unlikely(varonce41
==NULL
)) {
1924 var42
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
1925 if (likely(varonce43
!=NULL
)) {
1929 var46
= standard___standard__NativeString___to_s_with_length(var45
, 5l);
1933 ((struct instance_standard__NativeArray
*)var42
)->values
[1]=var44
;
1938 ((struct instance_standard__NativeArray
*)var42
)->values
[0]=var_c_name
;
1940 var47
= ((val
*(*)(val
* self
))(var42
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var42
); /* native_to_s on <var42:NativeArray[String]>*/
1944 var48
= nit___nit__AbstractCompiler___new_file(var_compiler
, var47
);
1947 nit___nit__AbstractCompiler___compile_nitni_global_ref_functions(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#compile_nitni_global_ref_functions on <var_compiler:SeparateCompiler>*/
1950 nit___nit__AbstractCompiler___compile_main_function(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#compile_main_function on <var_compiler:SeparateCompiler>*/
1953 nit___nit__AbstractCompiler___compile_finalizer_function(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#compile_finalizer_function on <var_compiler:SeparateCompiler>*/
1956 nit___nit__SeparateCompiler___link_mmethods(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#link_mmethods on <var_compiler:SeparateCompiler>*/
1959 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
1960 var51
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
1961 if (unlikely(var51
== NULL
)) {
1962 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1963 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
1967 RET_LABEL50
:(void)0;
1971 { /* Inline mmodule#MModule#in_importation (var49) on <var49:MModule> */
1972 var54
= var49
->attrs
[COLOR_nit__mmodule__MModule___in_importation
].val
; /* _in_importation on <var49:MModule> */
1973 if (unlikely(var54
== NULL
)) {
1974 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
1975 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 96);
1979 RET_LABEL53
:(void)0;
1983 var55
= poset___poset__POSetElement___greaters(var52
);
1987 var57
= ((val
*(*)(val
* self
))((((long)var_56
&3)?class_info
[((long)var_56
&3)]:var_56
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_56
); /* iterator on <var_56:Collection[MModule]>*/
1992 var59
= ((short int(*)(val
* self
))((((long)var_58
&3)?class_info
[((long)var_58
&3)]:var_58
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_58
); /* is_ok on <var_58:Iterator[MModule]>*/
1996 var60
= ((val
*(*)(val
* self
))((((long)var_58
&3)?class_info
[((long)var_58
&3)]:var_58
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_58
); /* item on <var_58:Iterator[MModule]>*/
2000 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
2001 var64
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
2002 if (unlikely(var64
== NULL
)) {
2003 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2004 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 522);
2008 RET_LABEL63
:(void)0;
2012 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var62) on <var62:ModelBuilder> */
2013 var67
= var62
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var62:ModelBuilder> */
2014 if (unlikely(var67
== NULL
)) {
2015 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2016 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
2020 RET_LABEL66
:(void)0;
2023 if (unlikely(varonce68
==NULL
)) {
2024 var69
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
2025 if (likely(varonce70
!=NULL
)) {
2028 var72
= "Generate C for module ";
2029 var73
= standard___standard__NativeString___to_s_with_length(var72
, 22l);
2033 ((struct instance_standard__NativeArray
*)var69
)->values
[0]=var71
;
2039 var74
= nit___nit__MModule___nit__model_base__MEntity__full_name(var_m61
);
2041 ((struct instance_standard__NativeArray
*)var69
)->values
[1]=var74
;
2043 var75
= ((val
*(*)(val
* self
))(var69
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var69
); /* native_to_s on <var69:NativeArray[String]>*/
2047 nit___nit__ToolContext___info(var65
, var75
, 2l); /* Direct call toolcontext#ToolContext#info on <var65:ToolContext>*/
2049 if (unlikely(varonce76
==NULL
)) {
2050 var77
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
2051 if (likely(varonce78
!=NULL
)) {
2055 var81
= standard___standard__NativeString___to_s_with_length(var80
, 4l);
2059 ((struct instance_standard__NativeArray
*)var77
)->values
[1]=var79
;
2065 var82
= nit___nit__MModule___nit__model_base__MEntity__c_name(var_m61
);
2067 ((struct instance_standard__NativeArray
*)var77
)->values
[0]=var82
;
2069 var83
= ((val
*(*)(val
* self
))(var77
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var77
); /* native_to_s on <var77:NativeArray[String]>*/
2073 var84
= nit___nit__AbstractCompiler___new_file(var_compiler
, var83
);
2076 nit___nit__SeparateCompiler___compile_module_to_c(var_compiler
, var_m61
); /* Direct call separate_compiler#SeparateCompiler#compile_module_to_c on <var_compiler:SeparateCompiler>*/
2079 ((void(*)(val
* self
))((((long)var_58
&3)?class_info
[((long)var_58
&3)]:var_58
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_58
); /* next on <var_58:Iterator[MModule]>*/
2085 BREAK_label85
: (void)0;
2087 ((void(*)(val
* self
))((((long)var_58
&3)?class_info
[((long)var_58
&3)]:var_58
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_58
); /* finish on <var_58:Iterator[MModule]>*/
2090 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
2091 var88
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
2092 if (unlikely(var88
== NULL
)) {
2093 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2094 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 522);
2098 RET_LABEL87
:(void)0;
2102 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var86) on <var86:ModelBuilder> */
2103 var91
= var86
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var86:ModelBuilder> */
2104 if (unlikely(var91
== NULL
)) {
2105 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2106 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
2110 RET_LABEL90
:(void)0;
2113 if (likely(varonce92
!=NULL
)) {
2116 var94
= "Type coloring";
2117 var95
= standard___standard__NativeString___to_s_with_length(var94
, 13l);
2122 nit___nit__ToolContext___info(var89
, var93
, 2l); /* Direct call toolcontext#ToolContext#info on <var89:ToolContext>*/
2124 if (unlikely(varonce96
==NULL
)) {
2125 var97
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
2126 if (likely(varonce98
!=NULL
)) {
2130 var101
= standard___standard__NativeString___to_s_with_length(var100
, 6l);
2134 ((struct instance_standard__NativeArray
*)var97
)->values
[1]=var99
;
2139 ((struct instance_standard__NativeArray
*)var97
)->values
[0]=var_c_name
;
2141 var102
= ((val
*(*)(val
* self
))(var97
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var97
); /* native_to_s on <var97:NativeArray[String]>*/
2145 var103
= nit___nit__AbstractCompiler___new_file(var_compiler
, var102
);
2148 ((void(*)(val
* self
))(var_compiler
->class->vft
[COLOR_nit__separate_compiler__SeparateCompiler__compile_types
]))(var_compiler
); /* compile_types on <var_compiler:SeparateCompiler>*/
2152 /* method separate_compiler#SeparateCompiler#compile_types for (self: SeparateCompiler) */
2153 void nit___nit__SeparateCompiler___compile_types(val
* self
) {
2154 val
* var_compiler
/* var compiler: SeparateCompiler */;
2155 val
* var
/* : Collection[MType] */;
2156 val
* var_mtypes
/* var mtypes: Collection[MType] */;
2157 val
* var_
/* var : Collection[MType] */;
2158 val
* var1
/* : Iterator[nullable Object] */;
2159 val
* var_2
/* var : Iterator[MType] */;
2160 short int var3
/* : Bool */;
2161 val
* var4
/* : nullable Object */;
2162 val
* var_t
/* var t: MType */;
2163 val
* var5
/* : Set[MType] */;
2164 val
* var7
/* : Set[MType] */;
2165 val
* var_8
/* var : Set[MType] */;
2166 val
* var9
/* : Iterator[nullable Object] */;
2167 val
* var_10
/* var : Iterator[MType] */;
2168 short int var11
/* : Bool */;
2169 val
* var12
/* : nullable Object */;
2170 val
* var_t13
/* var t: MType */;
2171 short int var14
/* : Bool */;
2172 var_compiler
= self
;
2174 var
= nit___nit__SeparateCompiler___do_type_coloring(var_compiler
);
2179 var1
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[MType]>*/
2184 var3
= ((short int(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_2
); /* is_ok on <var_2:Iterator[MType]>*/
2188 var4
= ((val
*(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_2
); /* item on <var_2:Iterator[MType]>*/
2192 nit___nit__SeparateCompiler___compile_type_to_c(var_compiler
, var_t
); /* Direct call separate_compiler#SeparateCompiler#compile_type_to_c on <var_compiler:SeparateCompiler>*/
2195 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_2
); /* next on <var_2:Iterator[MType]>*/
2201 BREAK_label
: (void)0;
2203 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_2
); /* finish on <var_2:Iterator[MType]>*/
2206 { /* Inline separate_compiler#SeparateCompiler#undead_types (var_compiler) on <var_compiler:SeparateCompiler> */
2207 var7
= var_compiler
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___undead_types
].val
; /* _undead_types on <var_compiler:SeparateCompiler> */
2208 if (unlikely(var7
== NULL
)) {
2209 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
2210 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 146);
2219 var9
= ((val
*(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_8
); /* iterator on <var_8:Set[MType]>*/
2224 var11
= ((short int(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_10
); /* is_ok on <var_10:Iterator[MType]>*/
2228 var12
= ((val
*(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_10
); /* item on <var_10:Iterator[MType]>*/
2232 var14
= ((short int(*)(val
* self
, val
* p0
))((((long)var_mtypes
&3)?class_info
[((long)var_mtypes
&3)]:var_mtypes
->class)->vft
[COLOR_standard__abstract_collection__Collection__has
]))(var_mtypes
, var_t13
); /* has on <var_mtypes:Collection[MType]>*/
2239 nit___nit__SeparateCompiler___compile_type_to_c(var_compiler
, var_t13
); /* Direct call separate_compiler#SeparateCompiler#compile_type_to_c on <var_compiler:SeparateCompiler>*/
2241 BREAK_label15
: (void)0;
2243 ((void(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_10
); /* next on <var_10:Iterator[MType]>*/
2249 BREAK_label16
: (void)0;
2251 ((void(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_10
); /* finish on <var_10:Iterator[MType]>*/
2255 /* method separate_compiler#SeparateCompiler#compile_header_structs for (self: SeparateCompiler) */
2256 void nit___nit__SeparateCompiler___nit__abstract_compiler__AbstractCompiler__compile_header_structs(val
* self
) {
2257 val
* var
/* : CodeWriter */;
2258 val
* var2
/* : CodeWriter */;
2259 static val
* varonce
;
2260 val
* var3
/* : String */;
2261 char* var4
/* : NativeString */;
2262 val
* var5
/* : FlatString */;
2263 val
* var6
/* : CodeWriter */;
2264 val
* var8
/* : CodeWriter */;
2265 static val
* varonce9
;
2266 val
* var10
/* : String */;
2267 char* var11
/* : NativeString */;
2268 val
* var12
/* : FlatString */;
2269 val
* var13
/* : CodeWriter */;
2270 val
* var15
/* : CodeWriter */;
2271 static val
* varonce16
;
2272 val
* var17
/* : String */;
2273 char* var18
/* : NativeString */;
2274 val
* var19
/* : FlatString */;
2275 val
* var20
/* : CodeWriter */;
2276 val
* var22
/* : CodeWriter */;
2277 static val
* varonce23
;
2278 val
* var24
/* : String */;
2279 char* var25
/* : NativeString */;
2280 val
* var26
/* : FlatString */;
2281 val
* var27
/* : CodeWriter */;
2282 val
* var29
/* : CodeWriter */;
2283 static val
* varonce30
;
2284 val
* var31
/* : String */;
2285 char* var32
/* : NativeString */;
2286 val
* var33
/* : FlatString */;
2287 val
* var34
/* : CodeWriter */;
2288 val
* var36
/* : CodeWriter */;
2289 static val
* varonce37
;
2290 val
* var38
/* : String */;
2291 char* var39
/* : NativeString */;
2292 val
* var40
/* : FlatString */;
2293 val
* var41
/* : ModelBuilder */;
2294 val
* var43
/* : ModelBuilder */;
2295 val
* var44
/* : ToolContext */;
2296 val
* var46
/* : ToolContext */;
2297 val
* var47
/* : OptionBool */;
2298 val
* var49
/* : OptionBool */;
2299 val
* var50
/* : nullable Object */;
2300 val
* var52
/* : nullable Object */;
2301 short int var53
/* : Bool */;
2302 short int var54
/* : Bool */;
2303 val
* var55
/* : CodeWriter */;
2304 val
* var57
/* : CodeWriter */;
2305 static val
* varonce58
;
2306 val
* var59
/* : String */;
2307 char* var60
/* : NativeString */;
2308 val
* var61
/* : FlatString */;
2309 val
* var62
/* : CodeWriter */;
2310 val
* var64
/* : CodeWriter */;
2311 static val
* varonce65
;
2312 val
* var66
/* : String */;
2313 char* var67
/* : NativeString */;
2314 val
* var68
/* : FlatString */;
2316 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2317 var2
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2318 if (unlikely(var2
== NULL
)) {
2319 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2320 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
2327 if (likely(varonce
!=NULL
)) {
2330 var4
= "typedef void(*nitmethod_t)(void); /* general C type representing a Nit method. */";
2331 var5
= standard___standard__NativeString___to_s_with_length(var4
, 81l);
2336 nit___nit__CodeWriter___add_decl(var
, var3
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var:CodeWriter>*/
2339 nit___nit__SeparateCompiler___compile_header_attribute_structs(self
); /* Direct call separate_compiler#SeparateCompiler#compile_header_attribute_structs on <self:SeparateCompiler>*/
2342 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2343 var8
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2344 if (unlikely(var8
== NULL
)) {
2345 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2346 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
2353 if (likely(varonce9
!=NULL
)) {
2356 var11
= "struct class { int box_kind; nitmethod_t vft[]; }; /* general C type representing a Nit class. */";
2357 var12
= standard___standard__NativeString___to_s_with_length(var11
, 97l);
2362 nit___nit__CodeWriter___add_decl(var6
, var10
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var6:CodeWriter>*/
2365 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2366 var15
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2367 if (unlikely(var15
== NULL
)) {
2368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2369 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
2373 RET_LABEL14
:(void)0;
2376 if (likely(varonce16
!=NULL
)) {
2379 var18
= "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. */";
2380 var19
= standard___standard__NativeString___to_s_with_length(var18
, 194l);
2385 nit___nit__CodeWriter___add_decl(var13
, var17
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var13:CodeWriter>*/
2388 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2389 var22
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2390 if (unlikely(var22
== NULL
)) {
2391 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2392 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
2396 RET_LABEL21
:(void)0;
2399 if (likely(varonce23
!=NULL
)) {
2402 var25
= "struct instance { const struct type *type; const struct class *class; nitattribute_t attrs[]; }; /* general C type representing a Nit instance. */";
2403 var26
= standard___standard__NativeString___to_s_with_length(var25
, 146l);
2408 nit___nit__CodeWriter___add_decl(var20
, var24
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var20:CodeWriter>*/
2411 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2412 var29
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2413 if (unlikely(var29
== NULL
)) {
2414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2415 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
2419 RET_LABEL28
:(void)0;
2422 if (likely(varonce30
!=NULL
)) {
2425 var32
= "struct types { int dummy; const struct type *types[]; }; /* a list types (used for vts, fts and unresolved lists). */";
2426 var33
= standard___standard__NativeString___to_s_with_length(var32
, 117l);
2431 nit___nit__CodeWriter___add_decl(var27
, var31
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var27:CodeWriter>*/
2434 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2435 var36
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2436 if (unlikely(var36
== NULL
)) {
2437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2438 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
2442 RET_LABEL35
:(void)0;
2445 if (likely(varonce37
!=NULL
)) {
2448 var39
= "typedef struct instance val; /* general C type representing a Nit instance. */";
2449 var40
= standard___standard__NativeString___to_s_with_length(var39
, 78l);
2454 nit___nit__CodeWriter___add_decl(var34
, var38
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var34:CodeWriter>*/
2457 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
2458 var43
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
2459 if (unlikely(var43
== NULL
)) {
2460 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2461 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 522);
2465 RET_LABEL42
:(void)0;
2469 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var41) on <var41:ModelBuilder> */
2470 var46
= var41
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var41:ModelBuilder> */
2471 if (unlikely(var46
== NULL
)) {
2472 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2473 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
2477 RET_LABEL45
:(void)0;
2481 { /* Inline separate_compiler#ToolContext#opt_no_tag_primitives (var44) on <var44:ToolContext> */
2482 var49
= var44
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_no_tag_primitives
].val
; /* _opt_no_tag_primitives on <var44:ToolContext> */
2483 if (unlikely(var49
== NULL
)) {
2484 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_tag_primitives");
2485 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 32);
2489 RET_LABEL48
:(void)0;
2493 { /* Inline opts#Option#value (var47) on <var47:OptionBool> */
2494 var52
= var47
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var47:OptionBool> */
2496 RET_LABEL51
:(void)0;
2499 var53
= (short int)((long)(var50
)>>2);
2503 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2504 var57
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2505 if (unlikely(var57
== NULL
)) {
2506 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2507 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
2511 RET_LABEL56
:(void)0;
2514 if (likely(varonce58
!=NULL
)) {
2517 var60
= "extern const struct class *class_info[];";
2518 var61
= standard___standard__NativeString___to_s_with_length(var60
, 40l);
2523 nit___nit__CodeWriter___add_decl(var55
, var59
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var55:CodeWriter>*/
2526 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2527 var64
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2528 if (unlikely(var64
== NULL
)) {
2529 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2530 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
2534 RET_LABEL63
:(void)0;
2537 if (likely(varonce65
!=NULL
)) {
2540 var67
= "extern const struct type *type_info[];";
2541 var68
= standard___standard__NativeString___to_s_with_length(var67
, 38l);
2546 nit___nit__CodeWriter___add_decl(var62
, var66
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var62:CodeWriter>*/
2552 /* method separate_compiler#SeparateCompiler#compile_header_attribute_structs for (self: SeparateCompiler) */
2553 void nit___nit__SeparateCompiler___compile_header_attribute_structs(val
* self
) {
2554 val
* var
/* : ModelBuilder */;
2555 val
* var2
/* : ModelBuilder */;
2556 val
* var3
/* : ToolContext */;
2557 val
* var5
/* : ToolContext */;
2558 val
* var6
/* : OptionBool */;
2559 val
* var8
/* : OptionBool */;
2560 val
* var9
/* : nullable Object */;
2561 val
* var11
/* : nullable Object */;
2562 short int var12
/* : Bool */;
2563 val
* var13
/* : CodeWriter */;
2564 val
* var15
/* : CodeWriter */;
2565 static val
* varonce
;
2566 val
* var16
/* : String */;
2567 char* var17
/* : NativeString */;
2568 val
* var18
/* : FlatString */;
2569 val
* var19
/* : CodeWriter */;
2570 val
* var21
/* : CodeWriter */;
2571 static val
* varonce22
;
2572 val
* var23
/* : String */;
2573 char* var24
/* : NativeString */;
2574 val
* var25
/* : FlatString */;
2575 val
* var26
/* : CodeWriter */;
2576 val
* var28
/* : CodeWriter */;
2577 static val
* varonce29
;
2578 val
* var30
/* : String */;
2579 char* var31
/* : NativeString */;
2580 val
* var32
/* : FlatString */;
2581 val
* var33
/* : HashMap[MClass, Int] */;
2582 val
* var35
/* : HashMap[MClass, Int] */;
2583 val
* var_
/* var : HashMap[MClass, Int] */;
2584 val
* var36
/* : HashMapIterator[nullable Object, nullable Object] */;
2585 val
* var_37
/* var : HashMapIterator[MClass, Int] */;
2586 short int var38
/* : Bool */;
2587 val
* var39
/* : nullable Object */;
2588 val
* var_c
/* var c: MClass */;
2589 val
* var40
/* : nullable Object */;
2590 long var41
/* : Int */;
2591 long var_v
/* var v: Int */;
2592 val
* var42
/* : MClassType */;
2593 val
* var44
/* : MClassType */;
2594 val
* var_t
/* var t: MClassType */;
2595 val
* var45
/* : MClass */;
2596 val
* var47
/* : MClass */;
2597 val
* var48
/* : String */;
2598 val
* var50
/* : String */;
2599 static val
* varonce51
;
2600 val
* var52
/* : String */;
2601 char* var53
/* : NativeString */;
2602 val
* var54
/* : FlatString */;
2603 short int var55
/* : Bool */;
2604 val
* var56
/* : CodeWriter */;
2605 val
* var58
/* : CodeWriter */;
2606 val
* var60
/* : NativeArray[String] */;
2607 static val
* varonce59
;
2608 static val
* varonce61
;
2609 val
* var62
/* : String */;
2610 char* var63
/* : NativeString */;
2611 val
* var64
/* : FlatString */;
2612 static val
* varonce65
;
2613 val
* var66
/* : String */;
2614 char* var67
/* : NativeString */;
2615 val
* var68
/* : FlatString */;
2616 val
* var69
/* : String */;
2617 val
* var70
/* : String */;
2618 val
* var71
/* : String */;
2619 val
* var74
/* : CodeWriter */;
2620 val
* var76
/* : CodeWriter */;
2621 static val
* varonce77
;
2622 val
* var78
/* : String */;
2623 char* var79
/* : NativeString */;
2624 val
* var80
/* : FlatString */;
2626 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
2627 var2
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
2628 if (unlikely(var2
== NULL
)) {
2629 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2630 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 522);
2638 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var) on <var:ModelBuilder> */
2639 var5
= var
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var:ModelBuilder> */
2640 if (unlikely(var5
== NULL
)) {
2641 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2642 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
2650 { /* Inline separate_compiler#ToolContext#opt_no_union_attribute (var3) on <var3:ToolContext> */
2651 var8
= var3
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_no_union_attribute
].val
; /* _opt_no_union_attribute on <var3:ToolContext> */
2652 if (unlikely(var8
== NULL
)) {
2653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute");
2654 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 28);
2662 { /* Inline opts#Option#value (var6) on <var6:OptionBool> */
2663 var11
= var6
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var6:OptionBool> */
2665 RET_LABEL10
:(void)0;
2668 var12
= (short int)((long)(var9
)>>2);
2671 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2672 var15
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2673 if (unlikely(var15
== NULL
)) {
2674 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2675 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
2679 RET_LABEL14
:(void)0;
2682 if (likely(varonce
!=NULL
)) {
2685 var17
= "typedef void* nitattribute_t; /* general C type representing a Nit attribute. */";
2686 var18
= standard___standard__NativeString___to_s_with_length(var17
, 80l);
2691 nit___nit__CodeWriter___add_decl(var13
, var16
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var13:CodeWriter>*/
2695 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2696 var21
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2697 if (unlikely(var21
== NULL
)) {
2698 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2699 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
2703 RET_LABEL20
:(void)0;
2706 if (likely(varonce22
!=NULL
)) {
2709 var24
= "typedef union {";
2710 var25
= standard___standard__NativeString___to_s_with_length(var24
, 15l);
2715 nit___nit__CodeWriter___add_decl(var19
, var23
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var19:CodeWriter>*/
2718 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2719 var28
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2720 if (unlikely(var28
== NULL
)) {
2721 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2722 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
2726 RET_LABEL27
:(void)0;
2729 if (likely(varonce29
!=NULL
)) {
2732 var31
= "void* val;";
2733 var32
= standard___standard__NativeString___to_s_with_length(var31
, 10l);
2738 nit___nit__CodeWriter___add_decl(var26
, var30
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var26:CodeWriter>*/
2741 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
2742 var35
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
2743 if (unlikely(var35
== NULL
)) {
2744 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
2745 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 263);
2749 RET_LABEL34
:(void)0;
2754 var36
= standard___standard__HashMap___standard__abstract_collection__MapRead__iterator(var_
);
2759 var38
= standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__is_ok(var_37
);
2763 var39
= standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__key(var_37
);
2767 var40
= standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__item(var_37
);
2769 var41
= (long)(var40
)>>2;
2772 { /* Inline model#MClass#mclass_type (var_c) on <var_c:MClass> */
2773 var44
= var_c
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_c:MClass> */
2774 if (unlikely(var44
== NULL
)) {
2775 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2776 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 484);
2780 RET_LABEL43
:(void)0;
2785 { /* Inline model#MClassType#mclass (var_t) on <var_t:MClassType> */
2786 var47
= var_t
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_t:MClassType> */
2787 if (unlikely(var47
== NULL
)) {
2788 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2789 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
2793 RET_LABEL46
:(void)0;
2797 { /* Inline model#MClass#name (var45) on <var45:MClass> */
2798 var50
= var45
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var45:MClass> */
2799 if (unlikely(var50
== NULL
)) {
2800 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2801 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 362);
2805 RET_LABEL49
:(void)0;
2808 if (likely(varonce51
!=NULL
)) {
2812 var54
= standard___standard__NativeString___to_s_with_length(var53
, 7l);
2817 var55
= ((short int(*)(val
* self
, val
* p0
))(var48
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var48
, var52
); /* == on <var48:String>*/
2824 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2825 var58
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2826 if (unlikely(var58
== NULL
)) {
2827 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2828 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
2832 RET_LABEL57
:(void)0;
2835 if (unlikely(varonce59
==NULL
)) {
2836 var60
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
2837 if (likely(varonce61
!=NULL
)) {
2841 var64
= standard___standard__NativeString___to_s_with_length(var63
, 1l);
2845 ((struct instance_standard__NativeArray
*)var60
)->values
[1]=var62
;
2846 if (likely(varonce65
!=NULL
)) {
2850 var68
= standard___standard__NativeString___to_s_with_length(var67
, 1l);
2854 ((struct instance_standard__NativeArray
*)var60
)->values
[3]=var66
;
2860 var69
= nit__abstract_compiler___MClassType___MType__ctype_extern(var_t
);
2862 ((struct instance_standard__NativeArray
*)var60
)->values
[0]=var69
;
2864 var70
= nit__abstract_compiler___MClassType___MType__ctypename(var_t
);
2866 ((struct instance_standard__NativeArray
*)var60
)->values
[2]=var70
;
2868 var71
= ((val
*(*)(val
* self
))(var60
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var60
); /* native_to_s on <var60:NativeArray[String]>*/
2872 nit___nit__CodeWriter___add_decl(var56
, var71
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var56:CodeWriter>*/
2874 BREAK_label
: (void)0;
2876 standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__next(var_37
); /* Direct call hash_collection#HashMapIterator#next on <var_37:HashMapIterator[MClass, Int]>*/
2882 BREAK_label72
: (void)0;
2884 { /* Inline abstract_collection#MapIterator#finish (var_37) on <var_37:HashMapIterator[MClass, Int]> */
2885 RET_LABEL73
:(void)0;
2889 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2890 var76
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2891 if (unlikely(var76
== NULL
)) {
2892 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2893 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
2897 RET_LABEL75
:(void)0;
2900 if (likely(varonce77
!=NULL
)) {
2903 var79
= "} nitattribute_t; /* general C type representing a Nit attribute. */";
2904 var80
= standard___standard__NativeString___to_s_with_length(var79
, 68l);
2909 nit___nit__CodeWriter___add_decl(var74
, var78
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var74:CodeWriter>*/
2914 /* method separate_compiler#SeparateCompiler#compile_box_kinds for (self: SeparateCompiler) */
2915 void nit___nit__SeparateCompiler___compile_box_kinds(val
* self
) {
2916 val
* var
/* : Array[String] */;
2917 val
* var_
/* var : Array[String] */;
2918 static val
* varonce
;
2919 val
* var1
/* : String */;
2920 char* var2
/* : NativeString */;
2921 val
* var3
/* : FlatString */;
2922 static val
* varonce4
;
2923 val
* var5
/* : String */;
2924 char* var6
/* : NativeString */;
2925 val
* var7
/* : FlatString */;
2926 static val
* varonce8
;
2927 val
* var9
/* : String */;
2928 char* var10
/* : NativeString */;
2929 val
* var11
/* : FlatString */;
2930 static val
* varonce12
;
2931 val
* var13
/* : String */;
2932 char* var14
/* : NativeString */;
2933 val
* var15
/* : FlatString */;
2934 static val
* varonce16
;
2935 val
* var17
/* : String */;
2936 char* var18
/* : NativeString */;
2937 val
* var19
/* : FlatString */;
2938 static val
* varonce20
;
2939 val
* var21
/* : String */;
2940 char* var22
/* : NativeString */;
2941 val
* var23
/* : FlatString */;
2942 static val
* varonce24
;
2943 val
* var25
/* : String */;
2944 char* var26
/* : NativeString */;
2945 val
* var27
/* : FlatString */;
2946 val
* var_28
/* var : Array[String] */;
2947 val
* var29
/* : ArrayIterator[nullable Object] */;
2948 val
* var_30
/* var : ArrayIterator[String] */;
2949 short int var31
/* : Bool */;
2950 val
* var32
/* : nullable Object */;
2951 val
* var_classname
/* var classname: String */;
2952 val
* var33
/* : MModule */;
2953 val
* var35
/* : MModule */;
2954 val
* var36
/* : Model */;
2955 val
* var38
/* : Model */;
2956 val
* var39
/* : nullable Array[MClass] */;
2957 val
* var_classes
/* var classes: nullable Array[MClass] */;
2958 short int var40
/* : Bool */;
2959 short int var41
/* : Bool */;
2960 long var42
/* : Int */;
2961 long var44
/* : Int */;
2962 short int var45
/* : Bool */;
2963 short int var47
/* : Bool */;
2964 val
* var48
/* : Sys */;
2965 static val
* varonce49
;
2966 val
* var50
/* : String */;
2967 char* var51
/* : NativeString */;
2968 val
* var52
/* : FlatString */;
2969 val
* var53
/* : String */;
2970 val
* var54
/* : HashMap[MClass, Int] */;
2971 val
* var56
/* : HashMap[MClass, Int] */;
2972 val
* var57
/* : nullable Object */;
2973 val
* var58
/* : HashMap[MClass, Int] */;
2974 val
* var60
/* : HashMap[MClass, Int] */;
2975 long var61
/* : Int */;
2976 long var62
/* : Int */;
2977 short int var64
/* : Bool */;
2980 const char* var_class_name
;
2981 long var65
/* : Int */;
2982 val
* var66
/* : nullable Object */;
2983 var
= NEW_standard__Array(&type_standard__Array__standard__String
);
2985 standard___standard__Array___with_capacity(var
, 7l); /* Direct call array#Array#with_capacity on <var:Array[String]>*/
2988 if (likely(varonce
!=NULL
)) {
2992 var3
= standard___standard__NativeString___to_s_with_length(var2
, 3l);
2997 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var1
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
2999 if (likely(varonce4
!=NULL
)) {
3003 var7
= standard___standard__NativeString___to_s_with_length(var6
, 4l);
3008 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var5
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3010 if (likely(varonce8
!=NULL
)) {
3014 var11
= standard___standard__NativeString___to_s_with_length(var10
, 4l);
3019 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var9
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3021 if (likely(varonce12
!=NULL
)) {
3025 var15
= standard___standard__NativeString___to_s_with_length(var14
, 4l);
3030 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var13
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3032 if (likely(varonce16
!=NULL
)) {
3036 var19
= standard___standard__NativeString___to_s_with_length(var18
, 5l);
3041 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var17
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3043 if (likely(varonce20
!=NULL
)) {
3046 var22
= "NativeString";
3047 var23
= standard___standard__NativeString___to_s_with_length(var22
, 12l);
3052 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var21
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3054 if (likely(varonce24
!=NULL
)) {
3058 var27
= standard___standard__NativeString___to_s_with_length(var26
, 7l);
3063 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var25
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3067 var29
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_28
);
3072 var31
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_30
);
3076 var32
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_30
);
3078 var_classname
= var32
;
3080 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
3081 var35
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
3082 if (unlikely(var35
== NULL
)) {
3083 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3084 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
3088 RET_LABEL34
:(void)0;
3092 { /* Inline mmodule#MModule#model (var33) on <var33:MModule> */
3093 var38
= var33
->attrs
[COLOR_nit__mmodule__MModule___model
].val
; /* _model on <var33:MModule> */
3094 if (unlikely(var38
== NULL
)) {
3095 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
3096 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 73);
3100 RET_LABEL37
:(void)0;
3104 var39
= nit__model___Model___get_mclasses_by_name(var36
, var_classname
);
3106 var_classes
= var39
;
3107 if (var_classes
== NULL
) {
3108 var40
= 1; /* is null */
3110 var40
= 0; /* arg is null but recv is not */
3113 var41
= standard___standard__Array___standard__kernel__Object___61d_61d(var_classes
, ((val
*)NULL
));
3121 { /* Inline array#AbstractArrayRead#length (var_classes) on <var_classes:nullable Array[MClass](Array[MClass])> */
3122 var44
= var_classes
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_classes:nullable Array[MClass](Array[MClass])> */
3124 RET_LABEL43
:(void)0;
3128 { /* Inline kernel#Int#== (var42,1l) on <var42:Int> */
3129 var47
= var42
== 1l;
3132 RET_LABEL46
:(void)0;
3135 if (unlikely(!var45
)) {
3137 if (likely(varonce49
!=NULL
)) {
3141 var52
= standard___standard__NativeString___to_s_with_length(var51
, 2l);
3146 var53
= standard__string___Collection___join(var_classes
, var50
);
3149 standard__file___Sys___print(var48
, var53
); /* Direct call file#Sys#print on <var48:Sys>*/
3151 PRINT_ERROR("Runtime error: %s", "Assert failed");
3152 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 258);
3156 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
3157 var56
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
3158 if (unlikely(var56
== NULL
)) {
3159 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3160 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 263);
3164 RET_LABEL55
:(void)0;
3168 var57
= standard___standard__SequenceRead___Collection__first(var_classes
);
3171 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
3172 var60
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
3173 if (unlikely(var60
== NULL
)) {
3174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3175 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 263);
3179 RET_LABEL59
:(void)0;
3183 var61
= standard___standard__HashMap___standard__abstract_collection__MapRead__length(var58
);
3186 { /* Inline kernel#Int#+ (var61,1l) on <var61:Int> */
3187 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3188 /* <1l:Int> isa OTHER */
3189 var64
= 1; /* easy <1l:Int> isa OTHER*/
3190 if (unlikely(!var64
)) {
3191 var_class_name
= type_standard__Int
.name
;
3192 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3193 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
3199 RET_LABEL63
:(void)0;
3203 var66
= (val
*)(var62
<<2|1);
3204 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var54
, var57
, var66
); /* Direct call hash_collection#HashMap#[]= on <var54:HashMap[MClass, Int]>*/
3206 BREAK_label
: (void)0;
3208 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_30
); /* Direct call array#ArrayIterator#next on <var_30:ArrayIterator[String]>*/
3214 BREAK_label67
: (void)0;
3216 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_30
); /* Direct call array#ArrayIterator#finish on <var_30:ArrayIterator[String]>*/
3220 /* method separate_compiler#SeparateCompiler#box_kinds for (self: SeparateCompiler): HashMap[MClass, Int] */
3221 val
* nit___nit__SeparateCompiler___box_kinds(val
* self
) {
3222 val
* var
/* : HashMap[MClass, Int] */;
3223 val
* var1
/* : HashMap[MClass, Int] */;
3224 var1
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
3225 if (unlikely(var1
== NULL
)) {
3226 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3227 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 263);
3234 /* method separate_compiler#SeparateCompiler#box_kind_of for (self: SeparateCompiler, MClass): Int */
3235 long nit___nit__SeparateCompiler___box_kind_of(val
* self
, val
* p0
) {
3236 long var
/* : Int */;
3237 val
* var_mclass
/* var mclass: MClass */;
3238 val
* var1
/* : MClassType */;
3239 val
* var3
/* : MClassType */;
3240 val
* var4
/* : String */;
3241 static val
* varonce
;
3242 val
* var5
/* : String */;
3243 char* var6
/* : NativeString */;
3244 val
* var7
/* : FlatString */;
3245 short int var8
/* : Bool */;
3246 short int var9
/* : Bool */;
3247 val
* var10
/* : MClassKind */;
3248 val
* var12
/* : MClassKind */;
3249 val
* var13
/* : Sys */;
3250 val
* var14
/* : MClassKind */;
3251 short int var15
/* : Bool */;
3252 val
* var_other
/* var other: nullable Object */;
3253 short int var17
/* : Bool */;
3254 short int var19
/* : Bool */;
3255 short int var_
/* var : Bool */;
3256 val
* var20
/* : String */;
3257 val
* var22
/* : String */;
3258 static val
* varonce23
;
3259 val
* var24
/* : String */;
3260 char* var25
/* : NativeString */;
3261 val
* var26
/* : FlatString */;
3262 short int var27
/* : Bool */;
3263 val
* var_other29
/* var other: nullable Object */;
3264 short int var30
/* : Bool */;
3265 short int var31
/* : Bool */;
3266 val
* var32
/* : HashMap[MClass, Int] */;
3267 val
* var34
/* : HashMap[MClass, Int] */;
3268 val
* var35
/* : MModule */;
3269 val
* var37
/* : MModule */;
3270 val
* var38
/* : MClassType */;
3271 val
* var39
/* : MClass */;
3272 val
* var41
/* : MClass */;
3273 val
* var42
/* : nullable Object */;
3274 long var43
/* : Int */;
3275 val
* var44
/* : HashMap[MClass, Int] */;
3276 val
* var46
/* : HashMap[MClass, Int] */;
3277 val
* var47
/* : nullable Object */;
3278 long var48
/* : Int */;
3281 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:MClass> */
3282 var3
= var_mclass
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:MClass> */
3283 if (unlikely(var3
== NULL
)) {
3284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3285 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 484);
3293 var4
= nit__abstract_compiler___MClassType___MType__ctype_extern(var1
);
3295 if (likely(varonce
!=NULL
)) {
3299 var7
= standard___standard__NativeString___to_s_with_length(var6
, 4l);
3304 var8
= ((short int(*)(val
* self
, val
* p0
))(var4
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var4
, var5
); /* == on <var4:String>*/
3311 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:MClass> */
3312 var12
= var_mclass
->attrs
[COLOR_nit__model__MClass___kind
].val
; /* _kind on <var_mclass:MClass> */
3313 if (unlikely(var12
== NULL
)) {
3314 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3315 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 436);
3319 RET_LABEL11
:(void)0;
3324 var14
= nit__model___standard__Sys___extern_kind(var13
);
3327 { /* Inline kernel#Object#== (var10,var14) on <var10:MClassKind> */
3330 { /* Inline kernel#Object#is_same_instance (var10,var_other) on <var10:MClassKind> */
3331 var19
= var10
== var_other
;
3334 RET_LABEL18
:(void)0;
3339 RET_LABEL16
:(void)0;
3345 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
3346 var22
= var_mclass
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
3347 if (unlikely(var22
== NULL
)) {
3348 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3349 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 362);
3353 RET_LABEL21
:(void)0;
3356 if (likely(varonce23
!=NULL
)) {
3359 var25
= "NativeString";
3360 var26
= standard___standard__NativeString___to_s_with_length(var25
, 12l);
3365 { /* Inline kernel#Object#!= (var20,var24) on <var20:String> */
3366 var_other29
= var24
;
3368 var30
= ((short int(*)(val
* self
, val
* p0
))(var20
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var20
, var_other29
); /* == on <var20:String>*/
3373 RET_LABEL28
:(void)0;
3382 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
3383 var34
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
3384 if (unlikely(var34
== NULL
)) {
3385 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3386 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 263);
3390 RET_LABEL33
:(void)0;
3394 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
3395 var37
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
3396 if (unlikely(var37
== NULL
)) {
3397 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3398 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
3402 RET_LABEL36
:(void)0;
3406 var38
= nit__model___MModule___pointer_type(var35
);
3409 { /* Inline model#MClassType#mclass (var38) on <var38:MClassType> */
3410 var41
= var38
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var38:MClassType> */
3411 if (unlikely(var41
== NULL
)) {
3412 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3413 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
3417 RET_LABEL40
:(void)0;
3421 var42
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var32
, var39
);
3423 var43
= (long)(var42
)>>2;
3428 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
3429 var46
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
3430 if (unlikely(var46
== NULL
)) {
3431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3432 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 263);
3436 RET_LABEL45
:(void)0;
3440 var47
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var44
, var_mclass
);
3442 var48
= (long)(var47
)>>2;
3450 /* method separate_compiler#SeparateCompiler#compile_color_consts for (self: SeparateCompiler, Map[Object, Int]) */
3451 void nit___nit__SeparateCompiler___compile_color_consts(val
* self
, val
* p0
) {
3452 val
* var_colors
/* var colors: Map[Object, Int] */;
3453 val
* var
/* : AbstractCompilerVisitor */;
3454 val
* var_v
/* var v: SeparateCompilerVisitor */;
3455 val
* var_
/* var : Map[Object, Int] */;
3456 val
* var1
/* : MapIterator[nullable Object, nullable Object] */;
3457 val
* var_2
/* var : MapIterator[Object, Int] */;
3458 short int var3
/* : Bool */;
3459 val
* var4
/* : nullable Object */;
3460 val
* var_m
/* var m: Object */;
3461 val
* var5
/* : nullable Object */;
3462 long var6
/* : Int */;
3463 long var_c
/* var c: Int */;
3466 var
= ((val
*(*)(val
* self
))(self
->class->vft
[COLOR_nit__abstract_compiler__AbstractCompiler__new_visitor
]))(self
); /* new_visitor on <self:SeparateCompiler>*/
3471 var1
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__MapRead__iterator
]))(var_
); /* iterator on <var_:Map[Object, Int]>*/
3476 var3
= ((short int(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__is_ok
]))(var_2
); /* is_ok on <var_2:MapIterator[Object, Int]>*/
3480 var4
= ((val
*(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__key
]))(var_2
); /* key on <var_2:MapIterator[Object, Int]>*/
3484 var5
= ((val
*(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__item
]))(var_2
); /* item on <var_2:MapIterator[Object, Int]>*/
3486 var6
= (long)(var5
)>>2;
3489 nit___nit__SeparateCompiler___compile_color_const(self
, var_v
, var_m
, var_c
); /* Direct call separate_compiler#SeparateCompiler#compile_color_const on <self:SeparateCompiler>*/
3492 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__next
]))(var_2
); /* next on <var_2:MapIterator[Object, Int]>*/
3498 BREAK_label
: (void)0;
3500 { /* Inline abstract_collection#MapIterator#finish (var_2) on <var_2:MapIterator[Object, Int]> */
3506 /* method separate_compiler#SeparateCompiler#compile_color_const for (self: SeparateCompiler, SeparateCompilerVisitor, Object, Int) */
3507 void nit___nit__SeparateCompiler___compile_color_const(val
* self
, val
* p0
, val
* p1
, long p2
) {
3508 val
* var_v
/* var v: SeparateCompilerVisitor */;
3509 val
* var_m
/* var m: Object */;
3510 long var_color
/* var color: Int */;
3511 val
* var
/* : HashSet[Object] */;
3512 val
* var2
/* : HashSet[Object] */;
3513 short int var3
/* : Bool */;
3514 short int var4
/* : Bool */;
3517 val
* var5
/* : ModelBuilder */;
3518 val
* var7
/* : ModelBuilder */;
3519 val
* var8
/* : ToolContext */;
3520 val
* var10
/* : ToolContext */;
3521 val
* var11
/* : OptionBool */;
3522 val
* var13
/* : OptionBool */;
3523 val
* var14
/* : nullable Object */;
3524 val
* var16
/* : nullable Object */;
3525 short int var17
/* : Bool */;
3526 val
* var18
/* : String */;
3527 val
* var19
/* : NativeArray[String] */;
3528 static val
* varonce
;
3529 static val
* varonce20
;
3530 val
* var21
/* : String */;
3531 char* var22
/* : NativeString */;
3532 val
* var23
/* : FlatString */;
3533 static val
* varonce24
;
3534 val
* var25
/* : String */;
3535 char* var26
/* : NativeString */;
3536 val
* var27
/* : FlatString */;
3537 val
* var28
/* : String */;
3538 val
* var29
/* : String */;
3539 val
* var30
/* : String */;
3540 short int var31
/* : Bool */;
3541 val
* var32
/* : ModelBuilder */;
3542 val
* var34
/* : ModelBuilder */;
3543 val
* var35
/* : ToolContext */;
3544 val
* var37
/* : ToolContext */;
3545 val
* var38
/* : OptionBool */;
3546 val
* var40
/* : OptionBool */;
3547 val
* var41
/* : nullable Object */;
3548 val
* var43
/* : nullable Object */;
3549 short int var44
/* : Bool */;
3550 short int var45
/* : Bool */;
3551 short int var_
/* var : Bool */;
3552 val
* var46
/* : AbstractCompiler */;
3553 val
* var48
/* : AbstractCompiler */;
3554 val
* var49
/* : Platform */;
3555 val
* var51
/* : Platform */;
3556 short int var52
/* : Bool */;
3557 short int var53
/* : Bool */;
3558 val
* var54
/* : String */;
3559 val
* var56
/* : NativeArray[String] */;
3560 static val
* varonce55
;
3561 static val
* varonce57
;
3562 val
* var58
/* : String */;
3563 char* var59
/* : NativeString */;
3564 val
* var60
/* : FlatString */;
3565 static val
* varonce61
;
3566 val
* var62
/* : String */;
3567 char* var63
/* : NativeString */;
3568 val
* var64
/* : FlatString */;
3569 val
* var65
/* : String */;
3570 val
* var66
/* : String */;
3571 val
* var68
/* : NativeArray[String] */;
3572 static val
* varonce67
;
3573 static val
* varonce69
;
3574 val
* var70
/* : String */;
3575 char* var71
/* : NativeString */;
3576 val
* var72
/* : FlatString */;
3577 static val
* varonce73
;
3578 val
* var74
/* : String */;
3579 char* var75
/* : NativeString */;
3580 val
* var76
/* : FlatString */;
3581 static val
* varonce77
;
3582 val
* var78
/* : String */;
3583 char* var79
/* : NativeString */;
3584 val
* var80
/* : FlatString */;
3585 val
* var81
/* : String */;
3586 val
* var82
/* : String */;
3587 val
* var83
/* : String */;
3588 val
* var84
/* : String */;
3589 val
* var86
/* : NativeArray[String] */;
3590 static val
* varonce85
;
3591 static val
* varonce87
;
3592 val
* var88
/* : String */;
3593 char* var89
/* : NativeString */;
3594 val
* var90
/* : FlatString */;
3595 static val
* varonce91
;
3596 val
* var92
/* : String */;
3597 char* var93
/* : NativeString */;
3598 val
* var94
/* : FlatString */;
3599 static val
* varonce95
;
3600 val
* var96
/* : String */;
3601 char* var97
/* : NativeString */;
3602 val
* var98
/* : FlatString */;
3603 static val
* varonce99
;
3604 val
* var100
/* : String */;
3605 char* var101
/* : NativeString */;
3606 val
* var102
/* : FlatString */;
3607 val
* var103
/* : String */;
3608 val
* var104
/* : String */;
3609 val
* var105
/* : String */;
3610 val
* var106
/* : String */;
3611 long var107
/* : Int */;
3612 long var109
/* : Int */;
3613 short int var110
/* : Bool */;
3614 short int var112
/* : Bool */;
3615 val
* var113
/* : Array[String] */;
3616 val
* var115
/* : Array[String] */;
3617 val
* var117
/* : NativeArray[String] */;
3618 static val
* varonce116
;
3619 static val
* varonce118
;
3620 val
* var119
/* : String */;
3621 char* var120
/* : NativeString */;
3622 val
* var121
/* : FlatString */;
3623 static val
* varonce122
;
3624 val
* var123
/* : String */;
3625 char* var124
/* : NativeString */;
3626 val
* var125
/* : FlatString */;
3627 static val
* varonce126
;
3628 val
* var127
/* : String */;
3629 char* var128
/* : NativeString */;
3630 val
* var129
/* : FlatString */;
3631 val
* var130
/* : String */;
3632 val
* var131
/* : String */;
3633 val
* var132
/* : String */;
3634 val
* var133
/* : HashSet[Object] */;
3635 val
* var135
/* : HashSet[Object] */;
3640 { /* Inline separate_compiler#SeparateCompiler#color_consts_done (self) on <self:SeparateCompiler> */
3641 var2
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___color_consts_done
].val
; /* _color_consts_done on <self:SeparateCompiler> */
3642 if (unlikely(var2
== NULL
)) {
3643 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done");
3644 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 307);
3652 var3
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var
, var_m
);
3658 /* <var_m:Object> isa MEntity */
3659 cltype
= type_nit__MEntity
.color
;
3660 idtype
= type_nit__MEntity
.id
;
3661 if(cltype
>= (((long)var_m
&3)?type_info
[((long)var_m
&3)]:var_m
->type
)->table_size
) {
3664 var4
= (((long)var_m
&3)?type_info
[((long)var_m
&3)]:var_m
->type
)->type_table
[cltype
] == idtype
;
3668 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
3669 var7
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
3670 if (unlikely(var7
== NULL
)) {
3671 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3672 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 522);
3680 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var5) on <var5:ModelBuilder> */
3681 var10
= var5
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var5:ModelBuilder> */
3682 if (unlikely(var10
== NULL
)) {
3683 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3684 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
3692 { /* Inline separate_compiler#ToolContext#opt_inline_coloring_numbers (var8) on <var8:ToolContext> */
3693 var13
= var8
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_inline_coloring_numbers
].val
; /* _opt_inline_coloring_numbers on <var8:ToolContext> */
3694 if (unlikely(var13
== NULL
)) {
3695 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
3696 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 46);
3700 RET_LABEL12
:(void)0;
3704 { /* Inline opts#Option#value (var11) on <var11:OptionBool> */
3705 var16
= var11
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var11:OptionBool> */
3707 RET_LABEL15
:(void)0;
3710 var17
= (short int)((long)(var14
)>>2);
3713 var18
= nit__separate_compiler___MEntity___const_color(var_m
);
3715 if (unlikely(varonce
==NULL
)) {
3716 var19
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
3717 if (likely(varonce20
!=NULL
)) {
3721 var23
= standard___standard__NativeString___to_s_with_length(var22
, 8l);
3725 ((struct instance_standard__NativeArray
*)var19
)->values
[0]=var21
;
3726 if (likely(varonce24
!=NULL
)) {
3730 var27
= standard___standard__NativeString___to_s_with_length(var26
, 1l);
3734 ((struct instance_standard__NativeArray
*)var19
)->values
[2]=var25
;
3740 var28
= nit__separate_compiler___MEntity___const_color(var_m
);
3742 ((struct instance_standard__NativeArray
*)var19
)->values
[1]=var28
;
3743 var29
= standard__string___Int___Object__to_s(var_color
);
3744 ((struct instance_standard__NativeArray
*)var19
)->values
[3]=var29
;
3746 var30
= ((val
*(*)(val
* self
))(var19
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var19
); /* native_to_s on <var19:NativeArray[String]>*/
3750 nit___nit__AbstractCompiler___provide_declaration(self
, var18
, var30
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
3754 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
3755 var34
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
3756 if (unlikely(var34
== NULL
)) {
3757 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3758 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 522);
3762 RET_LABEL33
:(void)0;
3766 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var32) on <var32:ModelBuilder> */
3767 var37
= var32
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var32:ModelBuilder> */
3768 if (unlikely(var37
== NULL
)) {
3769 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3770 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
3774 RET_LABEL36
:(void)0;
3778 { /* Inline separate_compiler#ToolContext#opt_colors_are_symbols (var35) on <var35:ToolContext> */
3779 var40
= var35
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_colors_are_symbols
].val
; /* _opt_colors_are_symbols on <var35:ToolContext> */
3780 if (unlikely(var40
== NULL
)) {
3781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colors_are_symbols");
3782 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 35);
3786 RET_LABEL39
:(void)0;
3790 { /* Inline opts#Option#value (var38) on <var38:OptionBool> */
3791 var43
= var38
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var38:OptionBool> */
3793 RET_LABEL42
:(void)0;
3796 var44
= (short int)((long)(var41
)>>2);
3803 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:SeparateCompilerVisitor> */
3804 var48
= var_v
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <var_v:SeparateCompilerVisitor> */
3805 if (unlikely(var48
== NULL
)) {
3806 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3807 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1102);
3811 RET_LABEL47
:(void)0;
3815 { /* Inline abstract_compiler#AbstractCompiler#target_platform (var46) on <var46:AbstractCompiler(SeparateCompiler)> */
3816 var51
= var46
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___target_platform
].val
; /* _target_platform on <var46:AbstractCompiler(SeparateCompiler)> */
3817 if (unlikely(var51
== NULL
)) {
3818 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target_platform");
3819 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 533);
3823 RET_LABEL50
:(void)0;
3827 var52
= nit___nit__Platform___supports_linker_script(var49
);
3834 var54
= nit__separate_compiler___MEntity___const_color(var_m
);
3836 if (unlikely(varonce55
==NULL
)) {
3837 var56
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
3838 if (likely(varonce57
!=NULL
)) {
3841 var59
= "extern const int ";
3842 var60
= standard___standard__NativeString___to_s_with_length(var59
, 17l);
3846 ((struct instance_standard__NativeArray
*)var56
)->values
[0]=var58
;
3847 if (likely(varonce61
!=NULL
)) {
3851 var64
= standard___standard__NativeString___to_s_with_length(var63
, 1l);
3855 ((struct instance_standard__NativeArray
*)var56
)->values
[2]=var62
;
3861 var65
= nit__separate_compiler___MEntity___const_color(var_m
);
3863 ((struct instance_standard__NativeArray
*)var56
)->values
[1]=var65
;
3865 var66
= ((val
*(*)(val
* self
))(var56
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var56
); /* native_to_s on <var56:NativeArray[String]>*/
3869 nit___nit__AbstractCompiler___provide_declaration(self
, var54
, var66
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
3871 if (unlikely(varonce67
==NULL
)) {
3872 var68
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
3873 if (likely(varonce69
!=NULL
)) {
3876 var71
= "const int ";
3877 var72
= standard___standard__NativeString___to_s_with_length(var71
, 10l);
3881 ((struct instance_standard__NativeArray
*)var68
)->values
[0]=var70
;
3882 if (likely(varonce73
!=NULL
)) {
3886 var76
= standard___standard__NativeString___to_s_with_length(var75
, 3l);
3890 ((struct instance_standard__NativeArray
*)var68
)->values
[2]=var74
;
3891 if (likely(varonce77
!=NULL
)) {
3895 var80
= standard___standard__NativeString___to_s_with_length(var79
, 1l);
3899 ((struct instance_standard__NativeArray
*)var68
)->values
[4]=var78
;
3905 var81
= nit__separate_compiler___MEntity___const_color(var_m
);
3907 ((struct instance_standard__NativeArray
*)var68
)->values
[1]=var81
;
3908 var82
= standard__string___Int___Object__to_s(var_color
);
3909 ((struct instance_standard__NativeArray
*)var68
)->values
[3]=var82
;
3911 var83
= ((val
*(*)(val
* self
))(var68
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var68
); /* native_to_s on <var68:NativeArray[String]>*/
3915 nit___nit__AbstractCompilerVisitor___add(var_v
, var83
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
3919 var84
= nit__separate_compiler___MEntity___const_color(var_m
);
3921 if (unlikely(varonce85
==NULL
)) {
3922 var86
= NEW_standard__NativeArray(7l, &type_standard__NativeArray__standard__String
);
3923 if (likely(varonce87
!=NULL
)) {
3927 var90
= standard___standard__NativeString___to_s_with_length(var89
, 8l);
3931 ((struct instance_standard__NativeArray
*)var86
)->values
[0]=var88
;
3932 if (likely(varonce91
!=NULL
)) {
3935 var93
= " ((long)&X";
3936 var94
= standard___standard__NativeString___to_s_with_length(var93
, 10l);
3940 ((struct instance_standard__NativeArray
*)var86
)->values
[2]=var92
;
3941 if (likely(varonce95
!=NULL
)) {
3944 var97
= ")\nextern const void X";
3945 var98
= standard___standard__NativeString___to_s_with_length(var97
, 21l);
3949 ((struct instance_standard__NativeArray
*)var86
)->values
[4]=var96
;
3950 if (likely(varonce99
!=NULL
)) {
3954 var102
= standard___standard__NativeString___to_s_with_length(var101
, 1l);
3958 ((struct instance_standard__NativeArray
*)var86
)->values
[6]=var100
;
3964 var103
= nit__separate_compiler___MEntity___const_color(var_m
);
3966 ((struct instance_standard__NativeArray
*)var86
)->values
[1]=var103
;
3968 var104
= nit__separate_compiler___MEntity___const_color(var_m
);
3970 ((struct instance_standard__NativeArray
*)var86
)->values
[3]=var104
;
3972 var105
= nit__separate_compiler___MEntity___const_color(var_m
);
3974 ((struct instance_standard__NativeArray
*)var86
)->values
[5]=var105
;
3976 var106
= ((val
*(*)(val
* self
))(var86
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var86
); /* native_to_s on <var86:NativeArray[String]>*/
3980 nit___nit__AbstractCompiler___provide_declaration(self
, var84
, var106
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
3983 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
3987 RET_LABEL108
:(void)0;
3991 { /* Inline kernel#Int#== (var_color,var107) on <var_color:Int> */
3992 var112
= var_color
== var107
;
3995 RET_LABEL111
:(void)0;
4003 { /* Inline abstract_compiler#AbstractCompiler#linker_script (self) on <self:SeparateCompiler> */
4004 var115
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___linker_script
].val
; /* _linker_script on <self:SeparateCompiler> */
4005 if (unlikely(var115
== NULL
)) {
4006 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _linker_script");
4007 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 572);
4011 RET_LABEL114
:(void)0;
4014 if (unlikely(varonce116
==NULL
)) {
4015 var117
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
4016 if (likely(varonce118
!=NULL
)) {
4017 var119
= varonce118
;
4020 var121
= standard___standard__NativeString___to_s_with_length(var120
, 1l);
4022 varonce118
= var119
;
4024 ((struct instance_standard__NativeArray
*)var117
)->values
[0]=var119
;
4025 if (likely(varonce122
!=NULL
)) {
4026 var123
= varonce122
;
4029 var125
= standard___standard__NativeString___to_s_with_length(var124
, 3l);
4031 varonce122
= var123
;
4033 ((struct instance_standard__NativeArray
*)var117
)->values
[2]=var123
;
4034 if (likely(varonce126
!=NULL
)) {
4035 var127
= varonce126
;
4038 var129
= standard___standard__NativeString___to_s_with_length(var128
, 1l);
4040 varonce126
= var127
;
4042 ((struct instance_standard__NativeArray
*)var117
)->values
[4]=var127
;
4044 var117
= varonce116
;
4048 var130
= nit__separate_compiler___MEntity___const_color(var_m
);
4050 ((struct instance_standard__NativeArray
*)var117
)->values
[1]=var130
;
4051 var131
= standard__string___Int___Object__to_s(var_color
);
4052 ((struct instance_standard__NativeArray
*)var117
)->values
[3]=var131
;
4054 var132
= ((val
*(*)(val
* self
))(var117
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var117
); /* native_to_s on <var117:NativeArray[String]>*/
4056 varonce116
= var117
;
4058 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var113
, var132
); /* Direct call array#Array#add on <var113:Array[String]>*/
4063 PRINT_ERROR("Runtime error: %s", "Aborted");
4064 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 302);
4068 { /* Inline separate_compiler#SeparateCompiler#color_consts_done (self) on <self:SeparateCompiler> */
4069 var135
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___color_consts_done
].val
; /* _color_consts_done on <self:SeparateCompiler> */
4070 if (unlikely(var135
== NULL
)) {
4071 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done");
4072 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 307);
4076 RET_LABEL134
:(void)0;
4080 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var133
, var_m
); /* Direct call hash_collection#HashSet#add on <var133:HashSet[Object]>*/
4084 /* method separate_compiler#SeparateCompiler#color_consts_done for (self: SeparateCompiler): HashSet[Object] */
4085 val
* nit___nit__SeparateCompiler___color_consts_done(val
* self
) {
4086 val
* var
/* : HashSet[Object] */;
4087 val
* var1
/* : HashSet[Object] */;
4088 var1
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___color_consts_done
].val
; /* _color_consts_done on <self:SeparateCompiler> */
4089 if (unlikely(var1
== NULL
)) {
4090 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done");
4091 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 307);
4098 /* method separate_compiler#SeparateCompiler#class_conflict_graph for (self: SeparateCompiler): POSetConflictGraph[MClass] */
4099 val
* nit___nit__SeparateCompiler___class_conflict_graph(val
* self
) {
4100 val
* var
/* : POSetConflictGraph[MClass] */;
4101 val
* var1
/* : POSetConflictGraph[MClass] */;
4102 var1
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___class_conflict_graph
].val
; /* _class_conflict_graph on <self:SeparateCompiler> */
4103 if (unlikely(var1
== NULL
)) {
4104 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_conflict_graph");
4105 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 309);
4112 /* method separate_compiler#SeparateCompiler#class_conflict_graph= for (self: SeparateCompiler, POSetConflictGraph[MClass]) */
4113 void nit___nit__SeparateCompiler___class_conflict_graph_61d(val
* self
, val
* p0
) {
4114 self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___class_conflict_graph
].val
= p0
; /* _class_conflict_graph on <self:SeparateCompiler> */
4117 /* method separate_compiler#SeparateCompiler#do_property_coloring for (self: SeparateCompiler) */
4118 void nit___nit__SeparateCompiler___do_property_coloring(val
* self
) {
4119 val
* var
/* : nullable RapidTypeAnalysis */;
4120 val
* var2
/* : nullable RapidTypeAnalysis */;
4121 val
* var_rta
/* var rta: nullable RapidTypeAnalysis */;
4122 val
* var3
/* : MModule */;
4123 val
* var5
/* : MModule */;
4124 val
* var6
/* : POSet[MClass] */;
4125 val
* var_mclasses
/* var mclasses: POSet[MClass] */;
4126 val
* var7
/* : POSetConflictGraph[nullable Object] */;
4127 val
* var9
/* : HashMap[MClass, Set[PropertyLayoutElement]] */;
4128 val
* var_mmethods
/* var mmethods: HashMap[MClass, Set[PropertyLayoutElement]] */;
4129 val
* var10
/* : HashMap[MClass, Set[MAttribute]] */;
4130 val
* var_mattributes
/* var mattributes: HashMap[MClass, Set[MAttribute]] */;
4131 val
* var11
/* : Array[PropertyLayoutElement] */;
4132 val
* var_dead_methods
/* var dead_methods: Array[PropertyLayoutElement] */;
4133 val
* var_
/* var : POSet[MClass] */;
4134 val
* var12
/* : Iterator[nullable Object] */;
4135 val
* var_13
/* var : Iterator[MClass] */;
4136 short int var14
/* : Bool */;
4137 val
* var15
/* : nullable Object */;
4138 val
* var_mclass
/* var mclass: MClass */;
4139 val
* var16
/* : HashSet[PropertyLayoutElement] */;
4140 val
* var17
/* : HashSet[MAttribute] */;
4141 short int var18
/* : Bool */;
4142 short int var19
/* : Bool */;
4143 val
* var_other
/* var other: nullable Object */;
4144 short int var21
/* : Bool */;
4145 short int var22
/* : Bool */;
4146 val
* var23
/* : HashSet[MMethod] */;
4147 val
* var25
/* : HashSet[MMethod] */;
4148 val
* var_26
/* var : HashSet[MMethod] */;
4149 val
* var27
/* : Iterator[nullable Object] */;
4150 val
* var_28
/* var : Iterator[MMethod] */;
4151 short int var29
/* : Bool */;
4152 val
* var30
/* : nullable Object */;
4153 val
* var_m
/* var m: MMethod */;
4154 val
* var31
/* : MClassDef */;
4155 val
* var33
/* : MClassDef */;
4156 val
* var34
/* : MClass */;
4157 val
* var36
/* : MClass */;
4158 val
* var37
/* : nullable Object */;
4159 val
* var39
/* : HashSet[MMethodDef] */;
4160 val
* var41
/* : HashSet[MMethodDef] */;
4161 val
* var_42
/* var : HashSet[MMethodDef] */;
4162 val
* var43
/* : Iterator[nullable Object] */;
4163 val
* var_44
/* var : Iterator[MMethodDef] */;
4164 short int var45
/* : Bool */;
4165 val
* var46
/* : nullable Object */;
4166 val
* var_m47
/* var m: MMethodDef */;
4167 val
* var48
/* : MClassDef */;
4168 val
* var50
/* : MClassDef */;
4169 val
* var51
/* : MClass */;
4170 val
* var53
/* : MClass */;
4171 val
* var_mclass54
/* var mclass: MClass */;
4172 val
* var55
/* : nullable Object */;
4173 val
* var57
/* : MModule */;
4174 val
* var59
/* : MModule */;
4175 val
* var60
/* : POSetElement[MModule] */;
4176 val
* var62
/* : POSetElement[MModule] */;
4177 val
* var63
/* : Collection[nullable Object] */;
4178 val
* var_64
/* var : Collection[MModule] */;
4179 val
* var65
/* : Iterator[nullable Object] */;
4180 val
* var_66
/* var : Iterator[MModule] */;
4181 short int var67
/* : Bool */;
4182 val
* var68
/* : nullable Object */;
4183 val
* var_m69
/* var m: MModule */;
4184 val
* var70
/* : Array[MClassDef] */;
4185 val
* var72
/* : Array[MClassDef] */;
4186 val
* var_73
/* var : Array[MClassDef] */;
4187 val
* var74
/* : ArrayIterator[nullable Object] */;
4188 val
* var_75
/* var : ArrayIterator[MClassDef] */;
4189 short int var76
/* : Bool */;
4190 val
* var77
/* : nullable Object */;
4191 val
* var_cd
/* var cd: MClassDef */;
4192 val
* var78
/* : MClass */;
4193 val
* var80
/* : MClass */;
4194 val
* var_mclass81
/* var mclass: MClass */;
4195 val
* var82
/* : Array[MProperty] */;
4196 val
* var84
/* : Array[MProperty] */;
4197 val
* var_85
/* var : Array[MProperty] */;
4198 val
* var86
/* : ArrayIterator[nullable Object] */;
4199 val
* var_87
/* var : ArrayIterator[MProperty] */;
4200 short int var88
/* : Bool */;
4201 val
* var89
/* : nullable Object */;
4202 val
* var_p
/* var p: MProperty */;
4203 short int var90
/* : Bool */;
4206 short int var91
/* : Bool */;
4207 short int var92
/* : Bool */;
4208 val
* var_other94
/* var other: nullable Object */;
4209 short int var95
/* : Bool */;
4210 short int var97
/* : Bool */;
4211 val
* var98
/* : nullable Object */;
4212 val
* var99
/* : HashSet[MMethod] */;
4213 val
* var101
/* : HashSet[MMethod] */;
4214 short int var102
/* : Bool */;
4215 short int var103
/* : Bool */;
4216 short int var104
/* : Bool */;
4219 val
* var107
/* : nullable Object */;
4220 val
* var109
/* : Array[MPropDef] */;
4221 val
* var111
/* : Array[MPropDef] */;
4222 val
* var_112
/* var : Array[MPropDef] */;
4223 val
* var113
/* : ArrayIterator[nullable Object] */;
4224 val
* var_114
/* var : ArrayIterator[MPropDef] */;
4225 short int var115
/* : Bool */;
4226 val
* var116
/* : nullable Object */;
4227 val
* var_mpropdef
/* var mpropdef: MPropDef */;
4228 short int var117
/* : Bool */;
4231 short int var120
/* : Bool */;
4232 short int var122
/* : Bool */;
4233 short int var124
/* : Bool */;
4234 short int var125
/* : Bool */;
4235 short int var126
/* : Bool */;
4236 short int var128
/* : Bool */;
4237 short int var130
/* : Bool */;
4238 val
* var131
/* : nullable Object */;
4239 val
* var132
/* : HashSet[MMethodDef] */;
4240 val
* var134
/* : HashSet[MMethodDef] */;
4241 short int var135
/* : Bool */;
4242 short int var136
/* : Bool */;
4243 val
* var140
/* : POSetGroupColorer[MClass, PropertyLayoutElement] */;
4244 val
* var141
/* : POSetConflictGraph[MClass] */;
4245 val
* var143
/* : POSetConflictGraph[MClass] */;
4246 val
* var_meth_colorer
/* var meth_colorer: POSetGroupColorer[MClass, PropertyLayoutElement] */;
4247 val
* var144
/* : Map[Object, Int] */;
4248 val
* var_method_colors
/* var method_colors: Map[PropertyLayoutElement, Int] */;
4249 val
* var_145
/* var : Array[PropertyLayoutElement] */;
4250 val
* var146
/* : ArrayIterator[nullable Object] */;
4251 val
* var_147
/* var : ArrayIterator[PropertyLayoutElement] */;
4252 short int var148
/* : Bool */;
4253 val
* var149
/* : nullable Object */;
4254 val
* var_mproperty
/* var mproperty: PropertyLayoutElement */;
4255 val
* var150
/* : AbstractCompilerVisitor */;
4256 long var151
/* : Int */;
4257 long var153
/* : Int */;
4258 val
* var155
/* : POSetGroupColorer[MClass, MAttribute] */;
4259 val
* var156
/* : POSetConflictGraph[MClass] */;
4260 val
* var158
/* : POSetConflictGraph[MClass] */;
4261 val
* var_attr_colorer
/* var attr_colorer: POSetGroupColorer[MClass, MAttribute] */;
4262 val
* var159
/* : Map[Object, Int] */;
4263 val
* var_attr_colors
/* var attr_colors: Map[MAttribute, Int] */;
4264 val
* var160
/* : HashMap[MClass, Array[nullable MPropDef]] */;
4265 val
* var162
/* : HashMap[MClass, Array[nullable MProperty]] */;
4266 val
* var_164
/* var : POSet[MClass] */;
4267 val
* var165
/* : Iterator[nullable Object] */;
4268 val
* var_166
/* var : Iterator[MClass] */;
4269 short int var167
/* : Bool */;
4270 val
* var168
/* : nullable Object */;
4271 val
* var_mclass169
/* var mclass: MClass */;
4272 short int var170
/* : Bool */;
4273 short int var171
/* : Bool */;
4274 short int var173
/* : Bool */;
4275 short int var174
/* : Bool */;
4276 short int var_175
/* var : Bool */;
4277 short int var176
/* : Bool */;
4278 val
* var177
/* : MClassKind */;
4279 val
* var179
/* : MClassKind */;
4280 val
* var180
/* : Sys */;
4281 val
* var181
/* : MClassKind */;
4282 short int var182
/* : Bool */;
4283 short int var184
/* : Bool */;
4284 short int var186
/* : Bool */;
4285 short int var_187
/* var : Bool */;
4286 val
* var188
/* : MClassKind */;
4287 val
* var190
/* : MClassKind */;
4288 val
* var191
/* : Sys */;
4289 val
* var192
/* : MClassKind */;
4290 short int var193
/* : Bool */;
4291 short int var195
/* : Bool */;
4292 short int var197
/* : Bool */;
4293 short int var199
/* : Bool */;
4294 short int var200
/* : Bool */;
4295 short int var201
/* : Bool */;
4296 short int var203
/* : Bool */;
4297 short int var204
/* : Bool */;
4298 short int var_205
/* var : Bool */;
4299 val
* var206
/* : HashSet[MClass] */;
4300 val
* var208
/* : HashSet[MClass] */;
4301 short int var209
/* : Bool */;
4302 short int var210
/* : Bool */;
4303 val
* var211
/* : MClassDef */;
4304 val
* var213
/* : MClassDef */;
4305 val
* var214
/* : MClassType */;
4306 val
* var216
/* : MClassType */;
4307 val
* var_mtype
/* var mtype: MClassType */;
4308 val
* var217
/* : Array[nullable Object] */;
4309 val
* var_meth_layout
/* var meth_layout: Array[nullable PropertyLayoutElement] */;
4310 val
* var218
/* : Array[nullable MPropDef] */;
4311 long var219
/* : Int */;
4312 long var221
/* : Int */;
4313 val
* var_meth_table
/* var meth_table: Array[nullable MPropDef] */;
4314 val
* var222
/* : Map[MClass, Array[nullable MPropDef]] */;
4315 val
* var224
/* : Map[MClass, Array[nullable MPropDef]] */;
4316 val
* var_225
/* var : Array[nullable PropertyLayoutElement] */;
4317 val
* var226
/* : ArrayIterator[nullable Object] */;
4318 val
* var_227
/* var : ArrayIterator[nullable PropertyLayoutElement] */;
4319 short int var228
/* : Bool */;
4320 val
* var229
/* : nullable Object */;
4321 val
* var_e
/* var e: nullable PropertyLayoutElement */;
4322 short int var230
/* : Bool */;
4323 short int var231
/* : Bool */;
4324 short int var233
/* : Bool */;
4325 short int var235
/* : Bool */;
4326 short int var236
/* : Bool */;
4329 val
* var239
/* : MModule */;
4330 val
* var241
/* : MModule */;
4331 val
* var242
/* : MPropDef */;
4332 short int var243
/* : Bool */;
4335 val
* var246
/* : MModule */;
4336 val
* var248
/* : MModule */;
4337 val
* var249
/* : MPropDef */;
4338 val
* var251
/* : Map[MClass, Array[nullable MProperty]] */;
4339 val
* var253
/* : Map[MClass, Array[nullable MProperty]] */;
4340 val
* var254
/* : Array[nullable Object] */;
4342 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
4343 var2
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
4350 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
4351 var5
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
4352 if (unlikely(var5
== NULL
)) {
4353 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4354 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
4362 var6
= nit__model___MModule___flatten_mclass_hierarchy(var3
);
4364 var_mclasses
= var6
;
4366 var7
= nit__coloring___poset__POSet___to_conflict_graph(var_mclasses
);
4369 { /* Inline separate_compiler#SeparateCompiler#class_conflict_graph= (self,var7) on <self:SeparateCompiler> */
4370 self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___class_conflict_graph
].val
= var7
; /* _class_conflict_graph on <self:SeparateCompiler> */
4374 var9
= NEW_standard__HashMap(&type_standard__HashMap__nit__MClass__standard__Set__nit__PropertyLayoutElement
);
4376 standard___standard__HashMap___standard__kernel__Object__init(var9
); /* Direct call hash_collection#HashMap#init on <var9:HashMap[MClass, Set[PropertyLayoutElement]]>*/
4378 var_mmethods
= var9
;
4379 var10
= NEW_standard__HashMap(&type_standard__HashMap__nit__MClass__standard__Set__nit__MAttribute
);
4381 standard___standard__HashMap___standard__kernel__Object__init(var10
); /* Direct call hash_collection#HashMap#init on <var10:HashMap[MClass, Set[MAttribute]]>*/
4383 var_mattributes
= var10
;
4384 var11
= NEW_standard__Array(&type_standard__Array__nit__PropertyLayoutElement
);
4386 standard___standard__Array___standard__kernel__Object__init(var11
); /* Direct call array#Array#init on <var11:Array[PropertyLayoutElement]>*/
4388 var_dead_methods
= var11
;
4389 var_
= var_mclasses
;
4391 var12
= poset___poset__POSet___standard__abstract_collection__Collection__iterator(var_
);
4396 var14
= ((short int(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_13
); /* is_ok on <var_13:Iterator[MClass]>*/
4400 var15
= ((val
*(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_13
); /* item on <var_13:Iterator[MClass]>*/
4403 var16
= NEW_standard__HashSet(&type_standard__HashSet__nit__PropertyLayoutElement
);
4405 standard___standard__HashSet___standard__kernel__Object__init(var16
); /* Direct call hash_collection#HashSet#init on <var16:HashSet[PropertyLayoutElement]>*/
4408 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_mmethods
, var_mclass
, var16
); /* Direct call hash_collection#HashMap#[]= on <var_mmethods:HashMap[MClass, Set[PropertyLayoutElement]]>*/
4410 var17
= NEW_standard__HashSet(&type_standard__HashSet__nit__MAttribute
);
4412 standard___standard__HashSet___standard__kernel__Object__init(var17
); /* Direct call hash_collection#HashSet#init on <var17:HashSet[MAttribute]>*/
4415 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_mattributes
, var_mclass
, var17
); /* Direct call hash_collection#HashMap#[]= on <var_mattributes:HashMap[MClass, Set[MAttribute]]>*/
4418 ((void(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_13
); /* next on <var_13:Iterator[MClass]>*/
4424 BREAK_label
: (void)0;
4426 ((void(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_13
); /* finish on <var_13:Iterator[MClass]>*/
4428 if (var_rta
== NULL
) {
4429 var18
= 0; /* is null */
4431 var18
= 1; /* arg is null and recv is not */
4434 { /* Inline kernel#Object#!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
4435 var_other
= ((val
*)NULL
);
4437 var21
= ((short int(*)(val
* self
, val
* p0
))(var_rta
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_rta
, var_other
); /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/
4442 RET_LABEL20
:(void)0;
4448 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4449 var25
= var_rta
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4450 if (unlikely(var25
== NULL
)) {
4451 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
4452 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 82);
4456 RET_LABEL24
:(void)0;
4461 var27
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_26
);
4466 var29
= ((short int(*)(val
* self
))((((long)var_28
&3)?class_info
[((long)var_28
&3)]:var_28
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_28
); /* is_ok on <var_28:Iterator[MMethod]>*/
4470 var30
= ((val
*(*)(val
* self
))((((long)var_28
&3)?class_info
[((long)var_28
&3)]:var_28
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_28
); /* item on <var_28:Iterator[MMethod]>*/
4474 { /* Inline model#MProperty#intro_mclassdef (var_m) on <var_m:MMethod> */
4475 var33
= var_m
->attrs
[COLOR_nit__model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var_m:MMethod> */
4476 if (unlikely(var33
== NULL
)) {
4477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
4478 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1928);
4482 RET_LABEL32
:(void)0;
4486 { /* Inline model#MClassDef#mclass (var31) on <var31:MClassDef> */
4487 var36
= var31
->attrs
[COLOR_nit__model__MClassDef___mclass
].val
; /* _mclass on <var31:MClassDef> */
4488 if (unlikely(var36
== NULL
)) {
4489 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4490 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 553);
4494 RET_LABEL35
:(void)0;
4498 var37
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_mmethods
, var34
);
4501 ((void(*)(val
* self
, val
* p0
))((((long)var37
&3)?class_info
[((long)var37
&3)]:var37
->class)->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var37
, var_m
); /* add on <var37:nullable Object(Set[PropertyLayoutElement])>*/
4504 ((void(*)(val
* self
))((((long)var_28
&3)?class_info
[((long)var_28
&3)]:var_28
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_28
); /* next on <var_28:Iterator[MMethod]>*/
4510 BREAK_label38
: (void)0;
4512 ((void(*)(val
* self
))((((long)var_28
&3)?class_info
[((long)var_28
&3)]:var_28
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_28
); /* finish on <var_28:Iterator[MMethod]>*/
4515 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4516 var41
= var_rta
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4517 if (unlikely(var41
== NULL
)) {
4518 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
4519 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 114);
4523 RET_LABEL40
:(void)0;
4528 var43
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_42
);
4533 var45
= ((short int(*)(val
* self
))((((long)var_44
&3)?class_info
[((long)var_44
&3)]:var_44
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_44
); /* is_ok on <var_44:Iterator[MMethodDef]>*/
4537 var46
= ((val
*(*)(val
* self
))((((long)var_44
&3)?class_info
[((long)var_44
&3)]:var_44
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_44
); /* item on <var_44:Iterator[MMethodDef]>*/
4541 { /* Inline model#MPropDef#mclassdef (var_m47) on <var_m47:MMethodDef> */
4542 var50
= var_m47
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_m47:MMethodDef> */
4543 if (unlikely(var50
== NULL
)) {
4544 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4545 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2209);
4549 RET_LABEL49
:(void)0;
4553 { /* Inline model#MClassDef#mclass (var48) on <var48:MClassDef> */
4554 var53
= var48
->attrs
[COLOR_nit__model__MClassDef___mclass
].val
; /* _mclass on <var48:MClassDef> */
4555 if (unlikely(var53
== NULL
)) {
4556 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4557 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 553);
4561 RET_LABEL52
:(void)0;
4564 var_mclass54
= var51
;
4566 var55
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_mmethods
, var_mclass54
);
4569 ((void(*)(val
* self
, val
* p0
))((((long)var55
&3)?class_info
[((long)var55
&3)]:var55
->class)->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var55
, var_m47
); /* add on <var55:nullable Object(Set[PropertyLayoutElement])>*/
4572 ((void(*)(val
* self
))((((long)var_44
&3)?class_info
[((long)var_44
&3)]:var_44
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_44
); /* next on <var_44:Iterator[MMethodDef]>*/
4578 BREAK_label56
: (void)0;
4580 ((void(*)(val
* self
))((((long)var_44
&3)?class_info
[((long)var_44
&3)]:var_44
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_44
); /* finish on <var_44:Iterator[MMethodDef]>*/
4585 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
4586 var59
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
4587 if (unlikely(var59
== NULL
)) {
4588 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4589 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
4593 RET_LABEL58
:(void)0;
4597 { /* Inline mmodule#MModule#in_importation (var57) on <var57:MModule> */
4598 var62
= var57
->attrs
[COLOR_nit__mmodule__MModule___in_importation
].val
; /* _in_importation on <var57:MModule> */
4599 if (unlikely(var62
== NULL
)) {
4600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
4601 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 96);
4605 RET_LABEL61
:(void)0;
4609 var63
= poset___poset__POSetElement___greaters(var60
);
4613 var65
= ((val
*(*)(val
* self
))((((long)var_64
&3)?class_info
[((long)var_64
&3)]:var_64
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_64
); /* iterator on <var_64:Collection[MModule]>*/
4618 var67
= ((short int(*)(val
* self
))((((long)var_66
&3)?class_info
[((long)var_66
&3)]:var_66
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_66
); /* is_ok on <var_66:Iterator[MModule]>*/
4622 var68
= ((val
*(*)(val
* self
))((((long)var_66
&3)?class_info
[((long)var_66
&3)]:var_66
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_66
); /* item on <var_66:Iterator[MModule]>*/
4626 { /* Inline model#MModule#mclassdefs (var_m69) on <var_m69:MModule> */
4627 var72
= var_m69
->attrs
[COLOR_nit__model__MModule___mclassdefs
].val
; /* _mclassdefs on <var_m69:MModule> */
4628 if (unlikely(var72
== NULL
)) {
4629 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
4630 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 131);
4634 RET_LABEL71
:(void)0;
4639 var74
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_73
);
4644 var76
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_75
);
4648 var77
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_75
);
4652 { /* Inline model#MClassDef#mclass (var_cd) on <var_cd:MClassDef> */
4653 var80
= var_cd
->attrs
[COLOR_nit__model__MClassDef___mclass
].val
; /* _mclass on <var_cd:MClassDef> */
4654 if (unlikely(var80
== NULL
)) {
4655 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4656 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 553);
4660 RET_LABEL79
:(void)0;
4663 var_mclass81
= var78
;
4665 { /* Inline model#MClassDef#intro_mproperties (var_cd) on <var_cd:MClassDef> */
4666 var84
= var_cd
->attrs
[COLOR_nit__model__MClassDef___intro_mproperties
].val
; /* _intro_mproperties on <var_cd:MClassDef> */
4667 if (unlikely(var84
== NULL
)) {
4668 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mproperties");
4669 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 681);
4673 RET_LABEL83
:(void)0;
4678 var86
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_85
);
4683 var88
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_87
);
4687 var89
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_87
);
4690 /* <var_p:MProperty> isa MMethod */
4691 cltype
= type_nit__MMethod
.color
;
4692 idtype
= type_nit__MMethod
.id
;
4693 if(cltype
>= var_p
->type
->table_size
) {
4696 var90
= var_p
->type
->type_table
[cltype
] == idtype
;
4699 if (var_rta
== NULL
) {
4700 var91
= 1; /* is null */
4702 var91
= 0; /* arg is null but recv is not */
4705 { /* Inline kernel#Object#== (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
4706 var_other94
= ((val
*)NULL
);
4708 { /* Inline kernel#Object#is_same_instance (var_rta,var_other94) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4709 var97
= var_rta
== var_other94
;
4712 RET_LABEL96
:(void)0;
4717 RET_LABEL93
:(void)0;
4723 var98
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_mmethods
, var_mclass81
);
4726 ((void(*)(val
* self
, val
* p0
))((((long)var98
&3)?class_info
[((long)var98
&3)]:var98
->class)->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var98
, var_p
); /* add on <var98:nullable Object(Set[PropertyLayoutElement])>*/
4730 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4731 var101
= var_rta
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4732 if (unlikely(var101
== NULL
)) {
4733 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
4734 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 82);
4738 RET_LABEL100
:(void)0;
4742 var102
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var99
, var_p
);
4747 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_dead_methods
, var_p
); /* Direct call array#Array#add on <var_dead_methods:Array[PropertyLayoutElement]>*/
4753 /* <var_p:MProperty> isa MAttribute */
4754 cltype105
= type_nit__MAttribute
.color
;
4755 idtype106
= type_nit__MAttribute
.id
;
4756 if(cltype105
>= var_p
->type
->table_size
) {
4759 var104
= var_p
->type
->type_table
[cltype105
] == idtype106
;
4763 var107
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_mattributes
, var_mclass81
);
4766 ((void(*)(val
* self
, val
* p0
))((((long)var107
&3)?class_info
[((long)var107
&3)]:var107
->class)->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var107
, var_p
); /* add on <var107:nullable Object(Set[MAttribute])>*/
4772 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_87
); /* Direct call array#ArrayIterator#next on <var_87:ArrayIterator[MProperty]>*/
4775 goto BREAK_label108
;
4778 BREAK_label108
: (void)0;
4780 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_87
); /* Direct call array#ArrayIterator#finish on <var_87:ArrayIterator[MProperty]>*/
4783 { /* Inline model#MClassDef#mpropdefs (var_cd) on <var_cd:MClassDef> */
4784 var111
= var_cd
->attrs
[COLOR_nit__model__MClassDef___mpropdefs
].val
; /* _mpropdefs on <var_cd:MClassDef> */
4785 if (unlikely(var111
== NULL
)) {
4786 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
4787 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 684);
4791 RET_LABEL110
:(void)0;
4796 var113
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_112
);
4801 var115
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_114
);
4805 var116
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_114
);
4807 var_mpropdef
= var116
;
4808 /* <var_mpropdef:MPropDef> isa MMethodDef */
4809 cltype118
= type_nit__MMethodDef
.color
;
4810 idtype119
= type_nit__MMethodDef
.id
;
4811 if(cltype118
>= var_mpropdef
->type
->table_size
) {
4814 var117
= var_mpropdef
->type
->type_table
[cltype118
] == idtype119
;
4818 goto BREAK_label121
;
4822 { /* Inline modelize_property#MPropDef#has_supercall (var_mpropdef) on <var_mpropdef:MPropDef(MMethodDef)> */
4823 var124
= var_mpropdef
->attrs
[COLOR_nit__modelize_property__MPropDef___has_supercall
].s
; /* _has_supercall on <var_mpropdef:MPropDef(MMethodDef)> */
4825 RET_LABEL123
:(void)0;
4829 if (var_rta
== NULL
) {
4830 var125
= 1; /* is null */
4832 var125
= 0; /* arg is null but recv is not */
4835 { /* Inline kernel#Object#== (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
4836 var_other94
= ((val
*)NULL
);
4838 { /* Inline kernel#Object#is_same_instance (var_rta,var_other94) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4839 var130
= var_rta
== var_other94
;
4842 RET_LABEL129
:(void)0;
4847 RET_LABEL127
:(void)0;
4853 var131
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_mmethods
, var_mclass81
);
4856 ((void(*)(val
* self
, val
* p0
))((((long)var131
&3)?class_info
[((long)var131
&3)]:var131
->class)->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var131
, var_mpropdef
); /* add on <var131:nullable Object(Set[PropertyLayoutElement])>*/
4860 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4861 var134
= var_rta
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4862 if (unlikely(var134
== NULL
)) {
4863 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
4864 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 114);
4868 RET_LABEL133
:(void)0;
4872 var135
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var132
, var_mpropdef
);
4877 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_dead_methods
, var_mpropdef
); /* Direct call array#Array#add on <var_dead_methods:Array[PropertyLayoutElement]>*/
4884 BREAK_label121
: (void)0;
4886 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_114
); /* Direct call array#ArrayIterator#next on <var_114:ArrayIterator[MPropDef]>*/
4889 goto BREAK_label137
;
4892 BREAK_label137
: (void)0;
4894 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_114
); /* Direct call array#ArrayIterator#finish on <var_114:ArrayIterator[MPropDef]>*/
4897 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_75
); /* Direct call array#ArrayIterator#next on <var_75:ArrayIterator[MClassDef]>*/
4900 goto BREAK_label138
;
4903 BREAK_label138
: (void)0;
4905 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_75
); /* Direct call array#ArrayIterator#finish on <var_75:ArrayIterator[MClassDef]>*/
4908 ((void(*)(val
* self
))((((long)var_66
&3)?class_info
[((long)var_66
&3)]:var_66
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_66
); /* next on <var_66:Iterator[MModule]>*/
4911 goto BREAK_label139
;
4914 BREAK_label139
: (void)0;
4916 ((void(*)(val
* self
))((((long)var_66
&3)?class_info
[((long)var_66
&3)]:var_66
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_66
); /* finish on <var_66:Iterator[MModule]>*/
4918 var140
= NEW_nit__POSetGroupColorer(&type_nit__POSetGroupColorer__nit__MClass__nit__PropertyLayoutElement
);
4920 { /* Inline separate_compiler#SeparateCompiler#class_conflict_graph (self) on <self:SeparateCompiler> */
4921 var143
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___class_conflict_graph
].val
; /* _class_conflict_graph on <self:SeparateCompiler> */
4922 if (unlikely(var143
== NULL
)) {
4923 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_conflict_graph");
4924 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 309);
4928 RET_LABEL142
:(void)0;
4932 ((void(*)(val
* self
, val
* p0
))(var140
->class->vft
[COLOR_nit__coloring__POSetGroupColorer__graph_61d
]))(var140
, var141
); /* graph= on <var140:POSetGroupColorer[MClass, PropertyLayoutElement]>*/
4935 ((void(*)(val
* self
, val
* p0
))(var140
->class->vft
[COLOR_nit__coloring__POSetGroupColorer__buckets_61d
]))(var140
, var_mmethods
); /* buckets= on <var140:POSetGroupColorer[MClass, PropertyLayoutElement]>*/
4938 ((void(*)(val
* self
))(var140
->class->vft
[COLOR_standard__kernel__Object__init
]))(var140
); /* init on <var140:POSetGroupColorer[MClass, PropertyLayoutElement]>*/
4940 var_meth_colorer
= var140
;
4942 var144
= nit___nit__POSetGroupColorer___colors(var_meth_colorer
);
4944 var_method_colors
= var144
;
4946 nit___nit__SeparateCompiler___compile_color_consts(self
, var_method_colors
); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:SeparateCompiler>*/
4948 var_145
= var_dead_methods
;
4950 var146
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_145
);
4955 var148
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_147
);
4959 var149
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_147
);
4961 var_mproperty
= var149
;
4963 var150
= ((val
*(*)(val
* self
))(self
->class->vft
[COLOR_nit__abstract_compiler__AbstractCompiler__new_visitor
]))(self
); /* new_visitor on <self:SeparateCompiler>*/
4966 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
4970 RET_LABEL152
:(void)0;
4974 nit___nit__SeparateCompiler___compile_color_const(self
, var150
, var_mproperty
, var151
); /* Direct call separate_compiler#SeparateCompiler#compile_color_const on <self:SeparateCompiler>*/
4977 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_147
); /* Direct call array#ArrayIterator#next on <var_147:ArrayIterator[PropertyLayoutElement]>*/
4980 goto BREAK_label154
;
4983 BREAK_label154
: (void)0;
4985 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_147
); /* Direct call array#ArrayIterator#finish on <var_147:ArrayIterator[PropertyLayoutElement]>*/
4987 var155
= NEW_nit__POSetGroupColorer(&type_nit__POSetGroupColorer__nit__MClass__nit__MAttribute
);
4989 { /* Inline separate_compiler#SeparateCompiler#class_conflict_graph (self) on <self:SeparateCompiler> */
4990 var158
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___class_conflict_graph
].val
; /* _class_conflict_graph on <self:SeparateCompiler> */
4991 if (unlikely(var158
== NULL
)) {
4992 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_conflict_graph");
4993 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 309);
4997 RET_LABEL157
:(void)0;
5001 ((void(*)(val
* self
, val
* p0
))(var155
->class->vft
[COLOR_nit__coloring__POSetGroupColorer__graph_61d
]))(var155
, var156
); /* graph= on <var155:POSetGroupColorer[MClass, MAttribute]>*/
5004 ((void(*)(val
* self
, val
* p0
))(var155
->class->vft
[COLOR_nit__coloring__POSetGroupColorer__buckets_61d
]))(var155
, var_mattributes
); /* buckets= on <var155:POSetGroupColorer[MClass, MAttribute]>*/
5007 ((void(*)(val
* self
))(var155
->class->vft
[COLOR_standard__kernel__Object__init
]))(var155
); /* init on <var155:POSetGroupColorer[MClass, MAttribute]>*/
5009 var_attr_colorer
= var155
;
5011 var159
= nit___nit__POSetGroupColorer___colors(var_attr_colorer
);
5013 var_attr_colors
= var159
;
5015 nit___nit__SeparateCompiler___compile_color_consts(self
, var_attr_colors
); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:SeparateCompiler>*/
5017 var160
= NEW_standard__HashMap(&type_standard__HashMap__nit__MClass__standard__Array__nullable__nit__MPropDef
);
5019 standard___standard__HashMap___standard__kernel__Object__init(var160
); /* Direct call hash_collection#HashMap#init on <var160:HashMap[MClass, Array[nullable MPropDef]]>*/
5022 { /* Inline separate_compiler#SeparateCompiler#method_tables= (self,var160) on <self:SeparateCompiler> */
5023 self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___method_tables
].val
= var160
; /* _method_tables on <self:SeparateCompiler> */
5024 RET_LABEL161
:(void)0;
5027 var162
= NEW_standard__HashMap(&type_standard__HashMap__nit__MClass__standard__Array__nullable__nit__MProperty
);
5029 standard___standard__HashMap___standard__kernel__Object__init(var162
); /* Direct call hash_collection#HashMap#init on <var162:HashMap[MClass, Array[nullable MProperty]]>*/
5032 { /* Inline separate_compiler#SeparateCompiler#attr_tables= (self,var162) on <self:SeparateCompiler> */
5033 self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___attr_tables
].val
= var162
; /* _attr_tables on <self:SeparateCompiler> */
5034 RET_LABEL163
:(void)0;
5037 var_164
= var_mclasses
;
5039 var165
= poset___poset__POSet___standard__abstract_collection__Collection__iterator(var_164
);
5044 var167
= ((short int(*)(val
* self
))((((long)var_166
&3)?class_info
[((long)var_166
&3)]:var_166
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_166
); /* is_ok on <var_166:Iterator[MClass]>*/
5048 var168
= ((val
*(*)(val
* self
))((((long)var_166
&3)?class_info
[((long)var_166
&3)]:var_166
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_166
); /* item on <var_166:Iterator[MClass]>*/
5050 var_mclass169
= var168
;
5052 { /* Inline model#MClass#has_new_factory (var_mclass169) on <var_mclass169:MClass> */
5053 var173
= var_mclass169
->attrs
[COLOR_nit__model__MClass___has_new_factory
].s
; /* _has_new_factory on <var_mclass169:MClass> */
5055 RET_LABEL172
:(void)0;
5062 { /* Inline model#MClass#kind (var_mclass169) on <var_mclass169:MClass> */
5063 var179
= var_mclass169
->attrs
[COLOR_nit__model__MClass___kind
].val
; /* _kind on <var_mclass169:MClass> */
5064 if (unlikely(var179
== NULL
)) {
5065 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
5066 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 436);
5070 RET_LABEL178
:(void)0;
5075 var181
= nit__model___standard__Sys___abstract_kind(var180
);
5078 { /* Inline kernel#Object#== (var177,var181) on <var177:MClassKind> */
5079 var_other94
= var181
;
5081 { /* Inline kernel#Object#is_same_instance (var177,var_other94) on <var177:MClassKind> */
5082 var186
= var177
== var_other94
;
5085 RET_LABEL185
:(void)0;
5090 RET_LABEL183
:(void)0;
5098 { /* Inline model#MClass#kind (var_mclass169) on <var_mclass169:MClass> */
5099 var190
= var_mclass169
->attrs
[COLOR_nit__model__MClass___kind
].val
; /* _kind on <var_mclass169:MClass> */
5100 if (unlikely(var190
== NULL
)) {
5101 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
5102 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 436);
5106 RET_LABEL189
:(void)0;
5111 var192
= nit__model___standard__Sys___interface_kind(var191
);
5114 { /* Inline kernel#Object#== (var188,var192) on <var188:MClassKind> */
5115 var_other94
= var192
;
5117 { /* Inline kernel#Object#is_same_instance (var188,var_other94) on <var188:MClassKind> */
5118 var197
= var188
== var_other94
;
5121 RET_LABEL196
:(void)0;
5126 RET_LABEL194
:(void)0;
5136 goto BREAK_label198
;
5139 if (var_rta
== NULL
) {
5140 var200
= 0; /* is null */
5142 var200
= 1; /* arg is null and recv is not */
5145 { /* Inline kernel#Object#!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
5146 var_other
= ((val
*)NULL
);
5148 var203
= ((short int(*)(val
* self
, val
* p0
))(var_rta
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_rta
, var_other
); /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/
5153 RET_LABEL202
:(void)0;
5160 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
5161 var208
= var_rta
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
5162 if (unlikely(var208
== NULL
)) {
5163 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
5164 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 69);
5168 RET_LABEL207
:(void)0;
5172 var209
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var206
, var_mclass169
);
5180 goto BREAK_label198
;
5184 { /* Inline model#MClass#intro (var_mclass169) on <var_mclass169:MClass> */
5185 var213
= var_mclass169
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var_mclass169:MClass> */
5186 if (unlikely(var213
== NULL
)) {
5187 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
5188 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 460);
5192 RET_LABEL212
:(void)0;
5196 { /* Inline model#MClassDef#bound_mtype (var211) on <var211:MClassDef> */
5197 var216
= var211
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var211:MClassDef> */
5198 if (unlikely(var216
== NULL
)) {
5199 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5200 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 556);
5204 RET_LABEL215
:(void)0;
5209 var217
= nit___nit__POSetGroupColorer___build_layout(var_meth_colorer
, var_mclass169
);
5211 var_meth_layout
= var217
;
5212 var218
= NEW_standard__Array(&type_standard__Array__nullable__nit__MPropDef
);
5214 { /* Inline array#AbstractArrayRead#length (var_meth_layout) on <var_meth_layout:Array[nullable PropertyLayoutElement]> */
5215 var221
= var_meth_layout
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_meth_layout:Array[nullable PropertyLayoutElement]> */
5217 RET_LABEL220
:(void)0;
5221 standard___standard__Array___with_capacity(var218
, var219
); /* Direct call array#Array#with_capacity on <var218:Array[nullable MPropDef]>*/
5223 var_meth_table
= var218
;
5225 { /* Inline separate_compiler#SeparateCompiler#method_tables (self) on <self:SeparateCompiler> */
5226 var224
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___method_tables
].val
; /* _method_tables on <self:SeparateCompiler> */
5227 if (unlikely(var224
== NULL
)) {
5228 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
5229 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 1053);
5233 RET_LABEL223
:(void)0;
5237 ((void(*)(val
* self
, val
* p0
, val
* p1
))((((long)var222
&3)?class_info
[((long)var222
&3)]:var222
->class)->vft
[COLOR_standard__abstract_collection__Map___91d_93d_61d
]))(var222
, var_mclass169
, var_meth_table
); /* []= on <var222:Map[MClass, Array[nullable MPropDef]]>*/
5239 var_225
= var_meth_layout
;
5241 var226
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_225
);
5246 var228
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_227
);
5250 var229
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_227
);
5253 if (var_e
== NULL
) {
5254 var230
= 1; /* is null */
5256 var230
= 0; /* arg is null but recv is not */
5259 { /* Inline kernel#Object#== (var_e,((val*)NULL)) on <var_e:nullable PropertyLayoutElement> */
5260 var_other94
= ((val
*)NULL
);
5262 { /* Inline kernel#Object#is_same_instance (var_e,var_other94) on <var_e:nullable PropertyLayoutElement(PropertyLayoutElement)> */
5263 var235
= var_e
== var_other94
|| (var_other94
!= NULL
&& (!((long)var_e
&3)) && (!((long)var_other94
&3)) && var_e
->class == var_other94
->class && ((var_e
->class->box_kind
== 3 && ((struct instance_standard__Byte
*)var_e
)->value
== ((struct instance_standard__Byte
*)var_other94
)->value
) || (var_e
->class->box_kind
== 5 && ((struct instance_standard__Float
*)var_e
)->value
== ((struct instance_standard__Float
*)var_other94
)->value
) || (var_e
->class->box_kind
== 6 && ((struct instance_standard__NativeString
*)var_e
)->value
== ((struct instance_standard__NativeString
*)var_other94
)->value
) || (var_e
->class->box_kind
== 7 && ((struct instance_standard__Pointer
*)var_e
)->value
== ((struct instance_standard__Pointer
*)var_other94
)->value
)));
5266 RET_LABEL234
:(void)0;
5271 RET_LABEL232
:(void)0;
5277 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_meth_table
, ((val
*)NULL
)); /* Direct call array#Array#add on <var_meth_table:Array[nullable MPropDef]>*/
5280 /* <var_e:nullable PropertyLayoutElement(PropertyLayoutElement)> isa MMethod */
5281 cltype237
= type_nit__MMethod
.color
;
5282 idtype238
= type_nit__MMethod
.id
;
5283 if(cltype237
>= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->table_size
) {
5286 var236
= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->type_table
[cltype237
] == idtype238
;
5290 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
5291 var241
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
5292 if (unlikely(var241
== NULL
)) {
5293 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5294 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
5298 RET_LABEL240
:(void)0;
5302 var242
= nit___nit__MProperty___lookup_first_definition(var_e
, var239
, var_mtype
);
5305 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_meth_table
, var242
); /* Direct call array#Array#add on <var_meth_table:Array[nullable MPropDef]>*/
5308 /* <var_e:nullable PropertyLayoutElement(PropertyLayoutElement)> isa MMethodDef */
5309 cltype244
= type_nit__MMethodDef
.color
;
5310 idtype245
= type_nit__MMethodDef
.id
;
5311 if(cltype244
>= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->table_size
) {
5314 var243
= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->type_table
[cltype244
] == idtype245
;
5318 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
5319 var248
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
5320 if (unlikely(var248
== NULL
)) {
5321 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5322 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
5326 RET_LABEL247
:(void)0;
5330 var249
= nit___nit__MPropDef___lookup_next_definition(var_e
, var246
, var_mtype
);
5333 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_meth_table
, var249
); /* Direct call array#Array#add on <var_meth_table:Array[nullable MPropDef]>*/
5336 PRINT_ERROR("Runtime error: %s", "Aborted");
5337 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 408);
5343 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_227
); /* Direct call array#ArrayIterator#next on <var_227:ArrayIterator[nullable PropertyLayoutElement]>*/
5346 goto BREAK_label250
;
5349 BREAK_label250
: (void)0;
5351 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_227
); /* Direct call array#ArrayIterator#finish on <var_227:ArrayIterator[nullable PropertyLayoutElement]>*/
5354 { /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on <self:SeparateCompiler> */
5355 var253
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___attr_tables
].val
; /* _attr_tables on <self:SeparateCompiler> */
5356 if (unlikely(var253
== NULL
)) {
5357 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
5358 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 1054);
5362 RET_LABEL252
:(void)0;
5366 var254
= nit___nit__POSetGroupColorer___build_layout(var_attr_colorer
, var_mclass169
);
5369 ((void(*)(val
* self
, val
* p0
, val
* p1
))((((long)var251
&3)?class_info
[((long)var251
&3)]:var251
->class)->vft
[COLOR_standard__abstract_collection__Map___91d_93d_61d
]))(var251
, var_mclass169
, var254
); /* []= on <var251:Map[MClass, Array[nullable MProperty]]>*/
5371 BREAK_label198
: (void)0;
5373 ((void(*)(val
* self
))((((long)var_166
&3)?class_info
[((long)var_166
&3)]:var_166
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_166
); /* next on <var_166:Iterator[MClass]>*/
5376 goto BREAK_label255
;
5379 BREAK_label255
: (void)0;
5381 ((void(*)(val
* self
))((((long)var_166
&3)?class_info
[((long)var_166
&3)]:var_166
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_166
); /* finish on <var_166:Iterator[MClass]>*/
5385 /* method separate_compiler#SeparateCompiler#do_type_coloring for (self: SeparateCompiler): Collection[MType] */
5386 val
* nit___nit__SeparateCompiler___do_type_coloring(val
* self
) {
5387 val
* var
/* : Collection[MType] */;
5388 val
* var1
/* : nullable RapidTypeAnalysis */;
5389 val
* var3
/* : nullable RapidTypeAnalysis */;
5390 val
* var4
/* : HashSet[MClassType] */;
5391 val
* var6
/* : HashSet[MClassType] */;
5392 val
* var_live_types
/* var live_types: HashSet[MClassType] */;
5393 val
* var7
/* : nullable RapidTypeAnalysis */;
5394 val
* var9
/* : nullable RapidTypeAnalysis */;
5395 val
* var10
/* : HashSet[MType] */;
5396 val
* var12
/* : HashSet[MType] */;
5397 val
* var_live_cast_types
/* var live_cast_types: HashSet[MType] */;
5398 val
* var13
/* : HashSet[MType] */;
5399 val
* var_res
/* var res: HashSet[MType] */;
5400 val
* var14
/* : ModelBuilder */;
5401 val
* var16
/* : ModelBuilder */;
5402 val
* var17
/* : ToolContext */;
5403 val
* var19
/* : ToolContext */;
5404 val
* var20
/* : OptionBool */;
5405 val
* var22
/* : OptionBool */;
5406 val
* var23
/* : nullable Object */;
5407 val
* var25
/* : nullable Object */;
5408 short int var26
/* : Bool */;
5409 val
* var27
/* : POSet[MType] */;
5410 val
* var_poset
/* var poset: POSet[MType] */;
5411 val
* var28
/* : POSetColorer[MType] */;
5412 val
* var_colorer
/* var colorer: POSetColorer[MType] */;
5413 val
* var30
/* : Map[Object, Int] */;
5414 val
* var32
/* : Map[Object, Int] */;
5415 val
* var34
/* : Map[MType, Array[nullable MType]] */;
5416 val
* var36
/* : HashMap[MType, Int] */;
5417 val
* var_
/* var : HashSet[MType] */;
5418 val
* var38
/* : Iterator[nullable Object] */;
5419 val
* var_39
/* var : Iterator[MType] */;
5420 short int var40
/* : Bool */;
5421 val
* var41
/* : nullable Object */;
5422 val
* var_x
/* var x: MType */;
5423 val
* var42
/* : Map[MType, Int] */;
5424 val
* var44
/* : Map[MType, Int] */;
5425 val
* var45
/* : Map[MType, Int] */;
5426 val
* var47
/* : Map[MType, Int] */;
5427 long var48
/* : Int */;
5428 long var49
/* : Int */;
5429 short int var51
/* : Bool */;
5432 const char* var_class_name
;
5433 long var52
/* : Int */;
5434 val
* var53
/* : nullable Object */;
5436 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
5437 var3
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
5443 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5444 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 422);
5447 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var1) on <var1:nullable RapidTypeAnalysis> */
5448 if (unlikely(var1
== NULL
)) {
5449 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5450 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
5453 var6
= var1
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <var1:nullable RapidTypeAnalysis> */
5454 if (unlikely(var6
== NULL
)) {
5455 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
5456 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
5463 var_live_types
= var4
;
5465 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
5466 var9
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
5472 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5473 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 423);
5476 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (var7) on <var7:nullable RapidTypeAnalysis> */
5477 if (unlikely(var7
== NULL
)) {
5478 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5479 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 72);
5482 var12
= var7
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <var7:nullable RapidTypeAnalysis> */
5483 if (unlikely(var12
== NULL
)) {
5484 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
5485 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 72);
5489 RET_LABEL11
:(void)0;
5492 var_live_cast_types
= var10
;
5493 var13
= NEW_standard__HashSet(&type_standard__HashSet__nit__MType
);
5495 standard___standard__HashSet___standard__kernel__Object__init(var13
); /* Direct call hash_collection#HashSet#init on <var13:HashSet[MType]>*/
5499 standard___standard__SimpleCollection___add_all(var_res
, var_live_types
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_res:HashSet[MType]>*/
5502 standard___standard__SimpleCollection___add_all(var_res
, var_live_cast_types
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_res:HashSet[MType]>*/
5505 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
5506 var16
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
5507 if (unlikely(var16
== NULL
)) {
5508 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5509 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 522);
5513 RET_LABEL15
:(void)0;
5517 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var14) on <var14:ModelBuilder> */
5518 var19
= var14
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var14:ModelBuilder> */
5519 if (unlikely(var19
== NULL
)) {
5520 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5521 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
5525 RET_LABEL18
:(void)0;
5529 { /* Inline separate_compiler#ToolContext#opt_type_poset (var17) on <var17:ToolContext> */
5530 var22
= var17
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_type_poset
].val
; /* _opt_type_poset on <var17:ToolContext> */
5531 if (unlikely(var22
== NULL
)) {
5532 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_type_poset");
5533 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 62);
5537 RET_LABEL21
:(void)0;
5541 { /* Inline opts#Option#value (var20) on <var20:OptionBool> */
5542 var25
= var20
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var20:OptionBool> */
5544 RET_LABEL24
:(void)0;
5547 var26
= (short int)((long)(var23
)>>2);
5550 var27
= nit___nit__SeparateCompiler___poset_from_mtypes(self
, var_live_types
, var_live_cast_types
);
5553 var28
= NEW_nit__POSetColorer(&type_nit__POSetColorer__nit__MType
);
5555 { /* Inline kernel#Object#init (var28) on <var28:POSetColorer[MType]> */
5556 RET_LABEL29
:(void)0;
5559 var_colorer
= var28
;
5561 nit___nit__POSetColorer___colorize(var_colorer
, var_poset
); /* Direct call coloring#POSetColorer#colorize on <var_colorer:POSetColorer[MType]>*/
5564 var30
= nit___nit__POSetColorer___ids(var_colorer
);
5567 { /* Inline separate_compiler#SeparateCompiler#type_ids= (self,var30) on <self:SeparateCompiler> */
5568 self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_ids
].val
= var30
; /* _type_ids on <self:SeparateCompiler> */
5569 RET_LABEL31
:(void)0;
5573 var32
= nit___nit__POSetColorer___colors(var_colorer
);
5576 { /* Inline separate_compiler#SeparateCompiler#type_colors= (self,var32) on <self:SeparateCompiler> */
5577 self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_colors
].val
= var32
; /* _type_colors on <self:SeparateCompiler> */
5578 RET_LABEL33
:(void)0;
5582 var34
= nit___nit__SeparateCompiler___build_type_tables(self
, var_poset
);
5585 { /* Inline separate_compiler#SeparateCompiler#type_tables= (self,var34) on <self:SeparateCompiler> */
5586 self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_tables
].val
= var34
; /* _type_tables on <self:SeparateCompiler> */
5587 RET_LABEL35
:(void)0;
5592 nit___nit__SeparateCompiler___compute_type_test_layouts(self
, var_live_types
, var_live_cast_types
); /* Direct call separate_compiler#SeparateCompiler#compute_type_test_layouts on <self:SeparateCompiler>*/
5594 var36
= NEW_standard__HashMap(&type_standard__HashMap__nit__MType__standard__Int
);
5596 standard___standard__HashMap___standard__kernel__Object__init(var36
); /* Direct call hash_collection#HashMap#init on <var36:HashMap[MType, Int]>*/
5599 { /* Inline separate_compiler#SeparateCompiler#type_ids= (self,var36) on <self:SeparateCompiler> */
5600 self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_ids
].val
= var36
; /* _type_ids on <self:SeparateCompiler> */
5601 RET_LABEL37
:(void)0;
5606 var38
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
5611 var40
= ((short int(*)(val
* self
))((((long)var_39
&3)?class_info
[((long)var_39
&3)]:var_39
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_39
); /* is_ok on <var_39:Iterator[MType]>*/
5615 var41
= ((val
*(*)(val
* self
))((((long)var_39
&3)?class_info
[((long)var_39
&3)]:var_39
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_39
); /* item on <var_39:Iterator[MType]>*/
5619 { /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:SeparateCompiler> */
5620 var44
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_ids
].val
; /* _type_ids on <self:SeparateCompiler> */
5621 if (unlikely(var44
== NULL
)) {
5622 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
5623 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 149);
5627 RET_LABEL43
:(void)0;
5631 { /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:SeparateCompiler> */
5632 var47
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_ids
].val
; /* _type_ids on <self:SeparateCompiler> */
5633 if (unlikely(var47
== NULL
)) {
5634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
5635 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 149);
5639 RET_LABEL46
:(void)0;
5643 var48
= ((long(*)(val
* self
))((((long)var45
&3)?class_info
[((long)var45
&3)]:var45
->class)->vft
[COLOR_standard__abstract_collection__MapRead__length
]))(var45
); /* length on <var45:Map[MType, Int]>*/
5646 { /* Inline kernel#Int#+ (var48,1l) on <var48:Int> */
5647 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5648 /* <1l:Int> isa OTHER */
5649 var51
= 1; /* easy <1l:Int> isa OTHER*/
5650 if (unlikely(!var51
)) {
5651 var_class_name
= type_standard__Int
.name
;
5652 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
5653 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
5659 RET_LABEL50
:(void)0;
5663 var53
= (val
*)(var49
<<2|1);
5664 ((void(*)(val
* self
, val
* p0
, val
* p1
))((((long)var42
&3)?class_info
[((long)var42
&3)]:var42
->class)->vft
[COLOR_standard__abstract_collection__Map___91d_93d_61d
]))(var42
, var_x
, var53
); /* []= on <var42:Map[MType, Int]>*/
5667 ((void(*)(val
* self
))((((long)var_39
&3)?class_info
[((long)var_39
&3)]:var_39
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_39
); /* next on <var_39:Iterator[MType]>*/
5673 BREAK_label
: (void)0;
5675 ((void(*)(val
* self
))((((long)var_39
&3)?class_info
[((long)var_39
&3)]:var_39
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_39
); /* finish on <var_39:Iterator[MType]>*/
5679 nit___nit__SeparateCompiler___compute_resolution_tables(self
, var_live_types
); /* Direct call separate_compiler#SeparateCompiler#compute_resolution_tables on <self:SeparateCompiler>*/
5686 /* method separate_compiler#SeparateCompiler#poset_from_mtypes for (self: SeparateCompiler, Set[MType], Set[MType]): POSet[MType] */
5687 val
* nit___nit__SeparateCompiler___poset_from_mtypes(val
* self
, val
* p0
, val
* p1
) {
5688 val
* var
/* : POSet[MType] */;
5689 val
* var_mtypes
/* var mtypes: Set[MType] */;
5690 val
* var_cast_types
/* var cast_types: Set[MType] */;
5691 val
* var1
/* : POSet[MType] */;
5692 val
* var_poset
/* var poset: POSet[MType] */;
5693 val
* var3
/* : MultiHashMap[MClass, MType] */;
5694 val
* var_mtypes_by_class
/* var mtypes_by_class: MultiHashMap[MClass, MType] */;
5695 val
* var_
/* var : Set[MType] */;
5696 val
* var4
/* : Iterator[nullable Object] */;
5697 val
* var_5
/* var : Iterator[MType] */;
5698 short int var6
/* : Bool */;
5699 val
* var7
/* : nullable Object */;
5700 val
* var_e
/* var e: MType */;
5701 val
* var8
/* : MType */;
5702 short int var9
/* : Bool */;
5705 const char* var_class_name
;
5706 val
* var10
/* : MClass */;
5707 val
* var12
/* : MClass */;
5708 val
* var_c
/* var c: MClass */;
5709 val
* var13
/* : nullable Object */;
5710 val
* var14
/* : POSetElement[nullable Object] */;
5711 val
* var15
/* : MultiHashMap[MClass, MType] */;
5712 val
* var_casttypes_by_class
/* var casttypes_by_class: MultiHashMap[MClass, MType] */;
5713 val
* var_16
/* var : Set[MType] */;
5714 val
* var17
/* : Iterator[nullable Object] */;
5715 val
* var_18
/* var : Iterator[MType] */;
5716 short int var19
/* : Bool */;
5717 val
* var20
/* : nullable Object */;
5718 val
* var_e21
/* var e: MType */;
5719 val
* var22
/* : MType */;
5720 short int var23
/* : Bool */;
5723 const char* var_class_name26
;
5724 val
* var27
/* : MClass */;
5725 val
* var29
/* : MClass */;
5726 val
* var_c30
/* var c: MClass */;
5727 val
* var31
/* : nullable Object */;
5728 val
* var32
/* : POSetElement[nullable Object] */;
5729 val
* var_34
/* var : MultiHashMap[MClass, MType] */;
5730 val
* var35
/* : HashMapIterator[nullable Object, nullable Object] */;
5731 val
* var_36
/* var : HashMapIterator[MClass, Array[MType]] */;
5732 short int var37
/* : Bool */;
5733 val
* var38
/* : nullable Object */;
5734 val
* var_c1
/* var c1: MClass */;
5735 val
* var39
/* : nullable Object */;
5736 val
* var_ts1
/* var ts1: Array[MType] */;
5737 val
* var40
/* : MModule */;
5738 val
* var42
/* : MModule */;
5739 val
* var43
/* : POSetElement[MClass] */;
5740 val
* var44
/* : Collection[nullable Object] */;
5741 val
* var_45
/* var : Collection[MClass] */;
5742 val
* var46
/* : Iterator[nullable Object] */;
5743 val
* var_47
/* var : Iterator[MClass] */;
5744 short int var48
/* : Bool */;
5745 val
* var49
/* : nullable Object */;
5746 val
* var_c2
/* var c2: MClass */;
5747 val
* var50
/* : nullable Object */;
5748 val
* var_ts2
/* var ts2: Array[MType] */;
5749 val
* var_51
/* var : Array[MType] */;
5750 val
* var52
/* : ArrayIterator[nullable Object] */;
5751 val
* var_53
/* var : ArrayIterator[MType] */;
5752 short int var54
/* : Bool */;
5753 val
* var55
/* : nullable Object */;
5754 val
* var_e56
/* var e: MType */;
5755 val
* var_57
/* var : Array[MType] */;
5756 val
* var58
/* : ArrayIterator[nullable Object] */;
5757 val
* var_59
/* var : ArrayIterator[MType] */;
5758 short int var60
/* : Bool */;
5759 val
* var61
/* : nullable Object */;
5760 val
* var_o
/* var o: MType */;
5761 short int var62
/* : Bool */;
5762 val
* var_other
/* var other: nullable Object */;
5763 short int var64
/* : Bool */;
5764 short int var66
/* : Bool */;
5765 val
* var68
/* : MModule */;
5766 val
* var70
/* : MModule */;
5767 short int var71
/* : Bool */;
5769 var_cast_types
= p1
;
5770 var1
= NEW_poset__POSet(&type_poset__POSet__nit__MType
);
5772 { /* Inline kernel#Object#init (var1) on <var1:POSet[MType]> */
5777 var3
= NEW_more_collections__MultiHashMap(&type_more_collections__MultiHashMap__nit__MClass__nit__MType
);
5779 standard___standard__HashMap___standard__kernel__Object__init(var3
); /* Direct call hash_collection#HashMap#init on <var3:MultiHashMap[MClass, MType]>*/
5781 var_mtypes_by_class
= var3
;
5784 var4
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Set[MType]>*/
5789 var6
= ((short int(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_5
); /* is_ok on <var_5:Iterator[MType]>*/
5793 var7
= ((val
*(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_5
); /* item on <var_5:Iterator[MType]>*/
5797 var8
= ((val
*(*)(val
* self
))(var_e
->class->vft
[COLOR_nit__model__MType__undecorate
]))(var_e
); /* undecorate on <var_e:MType>*/
5799 /* <var8:MType> isa MClassType */
5800 cltype
= type_nit__MClassType
.color
;
5801 idtype
= type_nit__MClassType
.id
;
5802 if(cltype
>= var8
->type
->table_size
) {
5805 var9
= var8
->type
->type_table
[cltype
] == idtype
;
5807 if (unlikely(!var9
)) {
5808 var_class_name
= var8
== NULL ?
"null" : var8
->type
->name
;
5809 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5810 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 461);
5814 { /* Inline model#MClassType#mclass (var8) on <var8:MType(MClassType)> */
5815 var12
= var8
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var8:MType(MClassType)> */
5816 if (unlikely(var12
== NULL
)) {
5817 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5818 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
5822 RET_LABEL11
:(void)0;
5827 var13
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_mtypes_by_class
, var_c
);
5830 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var13
, var_e
); /* Direct call array#Array#add on <var13:nullable Object(Array[MType])>*/
5833 var14
= poset___poset__POSet___add_node(var_poset
, var_e
);
5836 ((void(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_5
); /* next on <var_5:Iterator[MType]>*/
5842 BREAK_label
: (void)0;
5844 ((void(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_5
); /* finish on <var_5:Iterator[MType]>*/
5846 var15
= NEW_more_collections__MultiHashMap(&type_more_collections__MultiHashMap__nit__MClass__nit__MType
);
5848 standard___standard__HashMap___standard__kernel__Object__init(var15
); /* Direct call hash_collection#HashMap#init on <var15:MultiHashMap[MClass, MType]>*/
5850 var_casttypes_by_class
= var15
;
5851 var_16
= var_cast_types
;
5853 var17
= ((val
*(*)(val
* self
))((((long)var_16
&3)?class_info
[((long)var_16
&3)]:var_16
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_16
); /* iterator on <var_16:Set[MType]>*/
5858 var19
= ((short int(*)(val
* self
))((((long)var_18
&3)?class_info
[((long)var_18
&3)]:var_18
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_18
); /* is_ok on <var_18:Iterator[MType]>*/
5862 var20
= ((val
*(*)(val
* self
))((((long)var_18
&3)?class_info
[((long)var_18
&3)]:var_18
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_18
); /* item on <var_18:Iterator[MType]>*/
5866 var22
= ((val
*(*)(val
* self
))(var_e21
->class->vft
[COLOR_nit__model__MType__undecorate
]))(var_e21
); /* undecorate on <var_e21:MType>*/
5868 /* <var22:MType> isa MClassType */
5869 cltype24
= type_nit__MClassType
.color
;
5870 idtype25
= type_nit__MClassType
.id
;
5871 if(cltype24
>= var22
->type
->table_size
) {
5874 var23
= var22
->type
->type_table
[cltype24
] == idtype25
;
5876 if (unlikely(!var23
)) {
5877 var_class_name26
= var22
== NULL ?
"null" : var22
->type
->name
;
5878 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name26
);
5879 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 468);
5883 { /* Inline model#MClassType#mclass (var22) on <var22:MType(MClassType)> */
5884 var29
= var22
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var22:MType(MClassType)> */
5885 if (unlikely(var29
== NULL
)) {
5886 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5887 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
5891 RET_LABEL28
:(void)0;
5896 var31
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_casttypes_by_class
, var_c30
);
5899 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var31
, var_e21
); /* Direct call array#Array#add on <var31:nullable Object(Array[MType])>*/
5902 var32
= poset___poset__POSet___add_node(var_poset
, var_e21
);
5905 ((void(*)(val
* self
))((((long)var_18
&3)?class_info
[((long)var_18
&3)]:var_18
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_18
); /* next on <var_18:Iterator[MType]>*/
5911 BREAK_label33
: (void)0;
5913 ((void(*)(val
* self
))((((long)var_18
&3)?class_info
[((long)var_18
&3)]:var_18
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_18
); /* finish on <var_18:Iterator[MType]>*/
5915 var_34
= var_mtypes_by_class
;
5917 var35
= standard___standard__HashMap___standard__abstract_collection__MapRead__iterator(var_34
);
5922 var37
= standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__is_ok(var_36
);
5926 var38
= standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__key(var_36
);
5930 var39
= standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__item(var_36
);
5934 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
5935 var42
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
5936 if (unlikely(var42
== NULL
)) {
5937 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5938 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
5942 RET_LABEL41
:(void)0;
5946 var43
= nit___nit__MClass___in_hierarchy(var_c1
, var40
);
5949 var44
= poset___poset__POSetElement___greaters(var43
);
5953 var46
= ((val
*(*)(val
* self
))((((long)var_45
&3)?class_info
[((long)var_45
&3)]:var_45
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_45
); /* iterator on <var_45:Collection[MClass]>*/
5958 var48
= ((short int(*)(val
* self
))((((long)var_47
&3)?class_info
[((long)var_47
&3)]:var_47
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_47
); /* is_ok on <var_47:Iterator[MClass]>*/
5962 var49
= ((val
*(*)(val
* self
))((((long)var_47
&3)?class_info
[((long)var_47
&3)]:var_47
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_47
); /* item on <var_47:Iterator[MClass]>*/
5966 var50
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_casttypes_by_class
, var_c2
);
5971 var52
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_51
);
5976 var54
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_53
);
5980 var55
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_53
);
5985 var58
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_57
);
5990 var60
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_59
);
5994 var61
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_59
);
5998 { /* Inline kernel#Object#== (var_e56,var_o) on <var_e56:MType> */
6001 { /* Inline kernel#Object#is_same_instance (var_e56,var_other) on <var_e56:MType> */
6002 var66
= var_e56
== var_other
;
6005 RET_LABEL65
:(void)0;
6010 RET_LABEL63
:(void)0;
6018 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
6019 var70
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
6020 if (unlikely(var70
== NULL
)) {
6021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6022 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
6026 RET_LABEL69
:(void)0;
6030 var71
= nit___nit__MType___is_subtype(var_e56
, var68
, ((val
*)NULL
), var_o
);
6034 poset___poset__POSet___add_edge(var_poset
, var_e56
, var_o
); /* Direct call poset#POSet#add_edge on <var_poset:POSet[MType]>*/
6038 BREAK_label67
: (void)0;
6040 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_59
); /* Direct call array#ArrayIterator#next on <var_59:ArrayIterator[MType]>*/
6046 BREAK_label72
: (void)0;
6048 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_59
); /* Direct call array#ArrayIterator#finish on <var_59:ArrayIterator[MType]>*/
6051 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_53
); /* Direct call array#ArrayIterator#next on <var_53:ArrayIterator[MType]>*/
6057 BREAK_label73
: (void)0;
6059 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_53
); /* Direct call array#ArrayIterator#finish on <var_53:ArrayIterator[MType]>*/
6062 ((void(*)(val
* self
))((((long)var_47
&3)?class_info
[((long)var_47
&3)]:var_47
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_47
); /* next on <var_47:Iterator[MClass]>*/
6068 BREAK_label74
: (void)0;
6070 ((void(*)(val
* self
))((((long)var_47
&3)?class_info
[((long)var_47
&3)]:var_47
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_47
); /* finish on <var_47:Iterator[MClass]>*/
6073 standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__next(var_36
); /* Direct call hash_collection#HashMapIterator#next on <var_36:HashMapIterator[MClass, Array[MType]]>*/
6079 BREAK_label75
: (void)0;
6081 { /* Inline abstract_collection#MapIterator#finish (var_36) on <var_36:HashMapIterator[MClass, Array[MType]]> */
6082 RET_LABEL76
:(void)0;
6090 /* method separate_compiler#SeparateCompiler#build_type_tables for (self: SeparateCompiler, POSet[MType]): Map[MType, Array[nullable MType]] */
6091 val
* nit___nit__SeparateCompiler___build_type_tables(val
* self
, val
* p0
) {
6092 val
* var
/* : Map[MType, Array[nullable MType]] */;
6093 val
* var_mtypes
/* var mtypes: POSet[MType] */;
6094 val
* var1
/* : HashMap[MType, Array[nullable MType]] */;
6095 val
* var_tables
/* var tables: HashMap[MType, Array[nullable MType]] */;
6096 val
* var_
/* var : POSet[MType] */;
6097 val
* var2
/* : Iterator[nullable Object] */;
6098 val
* var_3
/* var : Iterator[MType] */;
6099 short int var4
/* : Bool */;
6100 val
* var5
/* : nullable Object */;
6101 val
* var_mtype
/* var mtype: MType */;
6102 val
* var6
/* : Array[nullable MType] */;
6103 val
* var_table
/* var table: Array[nullable MType] */;
6104 val
* var7
/* : POSetElement[nullable Object] */;
6105 val
* var8
/* : Collection[nullable Object] */;
6106 val
* var_9
/* var : Collection[MType] */;
6107 val
* var10
/* : Iterator[nullable Object] */;
6108 val
* var_11
/* var : Iterator[MType] */;
6109 short int var12
/* : Bool */;
6110 val
* var13
/* : nullable Object */;
6111 val
* var_sup
/* var sup: MType */;
6112 val
* var14
/* : Map[MType, Int] */;
6113 val
* var16
/* : Map[MType, Int] */;
6114 val
* var17
/* : nullable Object */;
6115 long var18
/* : Int */;
6116 long var_color
/* var color: Int */;
6117 long var19
/* : Int */;
6118 long var21
/* : Int */;
6119 short int var22
/* : Bool */;
6120 short int var24
/* : Bool */;
6123 const char* var_class_name
;
6124 short int var25
/* : Bool */;
6125 long var26
/* : Int */;
6126 long var28
/* : Int */;
6127 long var_i
/* var i: Int */;
6128 long var_29
/* var : Int */;
6129 short int var30
/* : Bool */;
6130 short int var32
/* : Bool */;
6133 const char* var_class_name35
;
6134 short int var36
/* : Bool */;
6135 long var37
/* : Int */;
6137 var1
= NEW_standard__HashMap(&type_standard__HashMap__nit__MType__standard__Array__nullable__nit__MType
);
6139 standard___standard__HashMap___standard__kernel__Object__init(var1
); /* Direct call hash_collection#HashMap#init on <var1:HashMap[MType, Array[nullable MType]]>*/
6144 var2
= poset___poset__POSet___standard__abstract_collection__Collection__iterator(var_
);
6149 var4
= ((short int(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_3
); /* is_ok on <var_3:Iterator[MType]>*/
6153 var5
= ((val
*(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_3
); /* item on <var_3:Iterator[MType]>*/
6156 var6
= NEW_standard__Array(&type_standard__Array__nullable__nit__MType
);
6158 standard___standard__Array___standard__kernel__Object__init(var6
); /* Direct call array#Array#init on <var6:Array[nullable MType]>*/
6162 var7
= poset___poset__POSet____91d_93d(var_mtypes
, var_mtype
);
6165 var8
= poset___poset__POSetElement___greaters(var7
);
6169 var10
= ((val
*(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_9
); /* iterator on <var_9:Collection[MType]>*/
6174 var12
= ((short int(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_11
); /* is_ok on <var_11:Iterator[MType]>*/
6178 var13
= ((val
*(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_11
); /* item on <var_11:Iterator[MType]>*/
6182 { /* Inline separate_compiler#SeparateCompiler#type_colors (self) on <self:SeparateCompiler> */
6183 var16
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_colors
].val
; /* _type_colors on <self:SeparateCompiler> */
6184 if (unlikely(var16
== NULL
)) {
6185 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors");
6186 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 150);
6190 RET_LABEL15
:(void)0;
6194 var17
= ((val
*(*)(val
* self
, val
* p0
))((((long)var14
&3)?class_info
[((long)var14
&3)]:var14
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var14
, var_sup
); /* [] on <var14:Map[MType, Int]>*/
6196 var18
= (long)(var17
)>>2;
6199 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
6200 var21
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MType]> */
6202 RET_LABEL20
:(void)0;
6206 { /* Inline kernel#Int#<= (var19,var_color) on <var19:Int> */
6207 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
6208 /* <var_color:Int> isa OTHER */
6209 var24
= 1; /* easy <var_color:Int> isa OTHER*/
6210 if (unlikely(!var24
)) {
6211 var_class_name
= type_standard__Int
.name
;
6212 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
6213 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 533);
6216 var25
= var19
<= var_color
;
6219 RET_LABEL23
:(void)0;
6224 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
6225 var28
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MType]> */
6227 RET_LABEL27
:(void)0;
6234 { /* Inline kernel#Int#< (var_i,var_29) on <var_i:Int> */
6235 /* Covariant cast for argument 0 (i) <var_29:Int> isa OTHER */
6236 /* <var_29:Int> isa OTHER */
6237 var32
= 1; /* easy <var_29:Int> isa OTHER*/
6238 if (unlikely(!var32
)) {
6239 var_class_name35
= type_standard__Int
.name
;
6240 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35
);
6241 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 534);
6244 var36
= var_i
< var_29
;
6247 RET_LABEL31
:(void)0;
6252 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_i
, ((val
*)NULL
)); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
6255 var37
= standard___standard__Int___Discrete__successor(var_i
, 1l);
6262 BREAK_label
: (void)0;
6266 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_color
, var_sup
); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
6269 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_11
); /* next on <var_11:Iterator[MType]>*/
6275 BREAK_label38
: (void)0;
6277 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_11
); /* finish on <var_11:Iterator[MType]>*/
6280 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_tables
, var_mtype
, var_table
); /* Direct call hash_collection#HashMap#[]= on <var_tables:HashMap[MType, Array[nullable MType]]>*/
6283 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_3
); /* next on <var_3:Iterator[MType]>*/
6289 BREAK_label39
: (void)0;
6291 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_3
); /* finish on <var_3:Iterator[MType]>*/
6298 /* method separate_compiler#SeparateCompiler#compute_type_test_layouts for (self: SeparateCompiler, Set[MClassType], Set[MType]) */
6299 void nit___nit__SeparateCompiler___compute_type_test_layouts(val
* self
, val
* p0
, val
* p1
) {
6300 val
* var_mtypes
/* var mtypes: Set[MClassType] */;
6301 val
* var_cast_types
/* var cast_types: Set[MType] */;
6302 val
* var
/* : HashMap[MClass, Set[MType]] */;
6303 val
* var_bucklets
/* var bucklets: HashMap[MClass, Set[MType]] */;
6304 val
* var_
/* var : Set[MType] */;
6305 val
* var1
/* : Iterator[nullable Object] */;
6306 val
* var_2
/* var : Iterator[MType] */;
6307 short int var3
/* : Bool */;
6308 val
* var4
/* : nullable Object */;
6309 val
* var_e
/* var e: MType */;
6310 val
* var5
/* : MType */;
6311 short int var6
/* : Bool */;
6314 const char* var_class_name
;
6315 val
* var7
/* : MClass */;
6316 val
* var9
/* : MClass */;
6317 val
* var_c
/* var c: MClass */;
6318 short int var10
/* : Bool */;
6319 short int var11
/* : Bool */;
6320 val
* var12
/* : HashSet[MType] */;
6321 val
* var13
/* : nullable Object */;
6322 val
* var14
/* : POSetGroupColorer[MClass, MType] */;
6323 val
* var15
/* : POSetConflictGraph[MClass] */;
6324 val
* var17
/* : POSetConflictGraph[MClass] */;
6325 val
* var_colorer
/* var colorer: POSetGroupColorer[MClass, MType] */;
6326 val
* var18
/* : Map[Object, Int] */;
6327 val
* var20
/* : HashMap[MClass, Array[nullable MType]] */;
6328 val
* var_layouts
/* var layouts: HashMap[MClass, Array[nullable MType]] */;
6329 val
* var21
/* : nullable RapidTypeAnalysis */;
6330 val
* var23
/* : nullable RapidTypeAnalysis */;
6331 val
* var24
/* : HashSet[MClass] */;
6332 val
* var26
/* : HashSet[MClass] */;
6333 val
* var_27
/* var : HashSet[MClass] */;
6334 val
* var28
/* : Iterator[nullable Object] */;
6335 val
* var_29
/* var : Iterator[MClass] */;
6336 short int var30
/* : Bool */;
6337 val
* var31
/* : nullable Object */;
6338 val
* var_c32
/* var c: MClass */;
6339 val
* var33
/* : Array[nullable Object] */;
6340 val
* var_35
/* var : Set[MClassType] */;
6341 val
* var36
/* : Iterator[nullable Object] */;
6342 val
* var_37
/* var : Iterator[MClassType] */;
6343 short int var38
/* : Bool */;
6344 val
* var39
/* : nullable Object */;
6345 val
* var_t
/* var t: MClassType */;
6346 val
* var40
/* : MClass */;
6347 val
* var42
/* : MClass */;
6348 val
* var_c43
/* var c: MClass */;
6349 val
* var44
/* : nullable Object */;
6350 val
* var_layout
/* var layout: Array[nullable MType] */;
6351 val
* var45
/* : Array[nullable MType] */;
6352 long var46
/* : Int */;
6353 long var48
/* : Int */;
6354 val
* var_table
/* var table: Array[nullable MType] */;
6355 val
* var49
/* : Map[MType, Array[nullable MType]] */;
6356 val
* var51
/* : Map[MType, Array[nullable MType]] */;
6357 val
* var_52
/* var : Array[nullable MType] */;
6358 val
* var53
/* : ArrayIterator[nullable Object] */;
6359 val
* var_54
/* var : ArrayIterator[nullable MType] */;
6360 short int var55
/* : Bool */;
6361 val
* var56
/* : nullable Object */;
6362 val
* var_sup
/* var sup: nullable MType */;
6363 short int var57
/* : Bool */;
6364 short int var58
/* : Bool */;
6365 val
* var_other
/* var other: nullable Object */;
6366 short int var60
/* : Bool */;
6367 short int var62
/* : Bool */;
6368 val
* var63
/* : MModule */;
6369 val
* var65
/* : MModule */;
6370 short int var66
/* : Bool */;
6372 var_cast_types
= p1
;
6373 var
= NEW_standard__HashMap(&type_standard__HashMap__nit__MClass__standard__Set__nit__MType
);
6375 standard___standard__HashMap___standard__kernel__Object__init(var
); /* Direct call hash_collection#HashMap#init on <var:HashMap[MClass, Set[MType]]>*/
6378 var_
= var_cast_types
;
6380 var1
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Set[MType]>*/
6385 var3
= ((short int(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_2
); /* is_ok on <var_2:Iterator[MType]>*/
6389 var4
= ((val
*(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_2
); /* item on <var_2:Iterator[MType]>*/
6393 var5
= ((val
*(*)(val
* self
))(var_e
->class->vft
[COLOR_nit__model__MType__undecorate
]))(var_e
); /* undecorate on <var_e:MType>*/
6395 /* <var5:MType> isa MClassType */
6396 cltype
= type_nit__MClassType
.color
;
6397 idtype
= type_nit__MClassType
.id
;
6398 if(cltype
>= var5
->type
->table_size
) {
6401 var6
= var5
->type
->type_table
[cltype
] == idtype
;
6403 if (unlikely(!var6
)) {
6404 var_class_name
= var5
== NULL ?
"null" : var5
->type
->name
;
6405 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6406 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 513);
6410 { /* Inline model#MClassType#mclass (var5) on <var5:MType(MClassType)> */
6411 var9
= var5
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var5:MType(MClassType)> */
6412 if (unlikely(var9
== NULL
)) {
6413 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6414 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
6423 var10
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var_bucklets
, var_c
);
6427 var12
= NEW_standard__HashSet(&type_standard__HashSet__nit__MType
);
6429 standard___standard__HashSet___standard__kernel__Object__init(var12
); /* Direct call hash_collection#HashSet#init on <var12:HashSet[MType]>*/
6432 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_bucklets
, var_c
, var12
); /* Direct call hash_collection#HashMap#[]= on <var_bucklets:HashMap[MClass, Set[MType]]>*/
6437 var13
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_bucklets
, var_c
);
6440 ((void(*)(val
* self
, val
* p0
))((((long)var13
&3)?class_info
[((long)var13
&3)]:var13
->class)->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var13
, var_e
); /* add on <var13:nullable Object(Set[MType])>*/
6443 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_2
); /* next on <var_2:Iterator[MType]>*/
6449 BREAK_label
: (void)0;
6451 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_2
); /* finish on <var_2:Iterator[MType]>*/
6453 var14
= NEW_nit__POSetGroupColorer(&type_nit__POSetGroupColorer__nit__MClass__nit__MType
);
6455 { /* Inline separate_compiler#SeparateCompiler#class_conflict_graph (self) on <self:SeparateCompiler> */
6456 var17
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___class_conflict_graph
].val
; /* _class_conflict_graph on <self:SeparateCompiler> */
6457 if (unlikely(var17
== NULL
)) {
6458 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_conflict_graph");
6459 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 309);
6463 RET_LABEL16
:(void)0;
6467 ((void(*)(val
* self
, val
* p0
))(var14
->class->vft
[COLOR_nit__coloring__POSetGroupColorer__graph_61d
]))(var14
, var15
); /* graph= on <var14:POSetGroupColorer[MClass, MType]>*/
6470 ((void(*)(val
* self
, val
* p0
))(var14
->class->vft
[COLOR_nit__coloring__POSetGroupColorer__buckets_61d
]))(var14
, var_bucklets
); /* buckets= on <var14:POSetGroupColorer[MClass, MType]>*/
6473 ((void(*)(val
* self
))(var14
->class->vft
[COLOR_standard__kernel__Object__init
]))(var14
); /* init on <var14:POSetGroupColorer[MClass, MType]>*/
6475 var_colorer
= var14
;
6477 var18
= nit___nit__POSetGroupColorer___colors(var_colorer
);
6480 { /* Inline separate_compiler#SeparateCompiler#type_colors= (self,var18) on <self:SeparateCompiler> */
6481 self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_colors
].val
= var18
; /* _type_colors on <self:SeparateCompiler> */
6482 RET_LABEL19
:(void)0;
6485 var20
= NEW_standard__HashMap(&type_standard__HashMap__nit__MClass__standard__Array__nullable__nit__MType
);
6487 standard___standard__HashMap___standard__kernel__Object__init(var20
); /* Direct call hash_collection#HashMap#init on <var20:HashMap[MClass, Array[nullable MType]]>*/
6489 var_layouts
= var20
;
6491 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
6492 var23
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
6494 RET_LABEL22
:(void)0;
6497 if (var21
== NULL
) {
6498 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6499 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 525);
6502 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (var21) on <var21:nullable RapidTypeAnalysis> */
6503 if (unlikely(var21
== NULL
)) {
6504 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6505 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 69);
6508 var26
= var21
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <var21:nullable RapidTypeAnalysis> */
6509 if (unlikely(var26
== NULL
)) {
6510 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
6511 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 69);
6515 RET_LABEL25
:(void)0;
6520 var28
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_27
);
6525 var30
= ((short int(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_29
); /* is_ok on <var_29:Iterator[MClass]>*/
6529 var31
= ((val
*(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_29
); /* item on <var_29:Iterator[MClass]>*/
6533 var33
= nit___nit__POSetGroupColorer___build_layout(var_colorer
, var_c32
);
6536 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_layouts
, var_c32
, var33
); /* Direct call hash_collection#HashMap#[]= on <var_layouts:HashMap[MClass, Array[nullable MType]]>*/
6539 ((void(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_29
); /* next on <var_29:Iterator[MClass]>*/
6545 BREAK_label34
: (void)0;
6547 ((void(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_29
); /* finish on <var_29:Iterator[MClass]>*/
6549 var_35
= var_mtypes
;
6551 var36
= ((val
*(*)(val
* self
))((((long)var_35
&3)?class_info
[((long)var_35
&3)]:var_35
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_35
); /* iterator on <var_35:Set[MClassType]>*/
6556 var38
= ((short int(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_37
); /* is_ok on <var_37:Iterator[MClassType]>*/
6560 var39
= ((val
*(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_37
); /* item on <var_37:Iterator[MClassType]>*/
6564 { /* Inline model#MClassType#mclass (var_t) on <var_t:MClassType> */
6565 var42
= var_t
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_t:MClassType> */
6566 if (unlikely(var42
== NULL
)) {
6567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6568 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
6572 RET_LABEL41
:(void)0;
6577 var44
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_layouts
, var_c43
);
6580 var45
= NEW_standard__Array(&type_standard__Array__nullable__nit__MType
);
6582 { /* Inline array#AbstractArrayRead#length (var_layout) on <var_layout:Array[nullable MType]> */
6583 var48
= var_layout
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_layout:Array[nullable MType]> */
6585 RET_LABEL47
:(void)0;
6589 standard___standard__Array___with_capacity(var45
, var46
); /* Direct call array#Array#with_capacity on <var45:Array[nullable MType]>*/
6593 { /* Inline separate_compiler#SeparateCompiler#type_tables (self) on <self:SeparateCompiler> */
6594 var51
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_tables
].val
; /* _type_tables on <self:SeparateCompiler> */
6595 if (unlikely(var51
== NULL
)) {
6596 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
6597 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 1051);
6601 RET_LABEL50
:(void)0;
6605 ((void(*)(val
* self
, val
* p0
, val
* p1
))((((long)var49
&3)?class_info
[((long)var49
&3)]:var49
->class)->vft
[COLOR_standard__abstract_collection__Map___91d_93d_61d
]))(var49
, var_t
, var_table
); /* []= on <var49:Map[MType, Array[nullable MType]]>*/
6607 var_52
= var_layout
;
6609 var53
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_52
);
6614 var55
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_54
);
6618 var56
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_54
);
6621 if (var_sup
== NULL
) {
6622 var57
= 1; /* is null */
6624 var57
= 0; /* arg is null but recv is not */
6627 { /* Inline kernel#Object#== (var_sup,((val*)NULL)) on <var_sup:nullable MType> */
6628 var_other
= ((val
*)NULL
);
6630 { /* Inline kernel#Object#is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
6631 var62
= var_sup
== var_other
;
6634 RET_LABEL61
:(void)0;
6639 RET_LABEL59
:(void)0;
6645 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_table
, ((val
*)NULL
)); /* Direct call array#Array#add on <var_table:Array[nullable MType]>*/
6649 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
6650 var65
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
6651 if (unlikely(var65
== NULL
)) {
6652 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6653 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
6657 RET_LABEL64
:(void)0;
6661 var66
= nit___nit__MType___is_subtype(var_t
, var63
, ((val
*)NULL
), var_sup
);
6665 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_table
, var_sup
); /* Direct call array#Array#add on <var_table:Array[nullable MType]>*/
6669 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_table
, ((val
*)NULL
)); /* Direct call array#Array#add on <var_table:Array[nullable MType]>*/
6674 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_54
); /* Direct call array#ArrayIterator#next on <var_54:ArrayIterator[nullable MType]>*/
6680 BREAK_label67
: (void)0;
6682 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_54
); /* Direct call array#ArrayIterator#finish on <var_54:ArrayIterator[nullable MType]>*/
6685 ((void(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_37
); /* next on <var_37:Iterator[MClassType]>*/
6691 BREAK_label68
: (void)0;
6693 ((void(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_37
); /* finish on <var_37:Iterator[MClassType]>*/
6697 /* method separate_compiler#SeparateCompiler#compute_resolution_tables for (self: SeparateCompiler, Set[MType]) */
6698 void nit___nit__SeparateCompiler___compute_resolution_tables(val
* self
, val
* p0
) {
6699 val
* var_mtypes
/* var mtypes: Set[MType] */;
6700 val
* var
/* : HashMap[MClass, Set[MType]] */;
6701 val
* var_mtype2unresolved
/* var mtype2unresolved: HashMap[MClass, Set[MType]] */;
6702 val
* var1
/* : nullable RapidTypeAnalysis */;
6703 val
* var3
/* : nullable RapidTypeAnalysis */;
6704 val
* var4
/* : HashSet[MClassType] */;
6705 val
* var6
/* : HashSet[MClassType] */;
6706 val
* var_
/* var : HashSet[MClassType] */;
6707 val
* var7
/* : Iterator[nullable Object] */;
6708 val
* var_8
/* var : Iterator[MClassType] */;
6709 short int var9
/* : Bool */;
6710 val
* var10
/* : nullable Object */;
6711 val
* var_mtype
/* var mtype: MClassType */;
6712 val
* var11
/* : MClass */;
6713 val
* var13
/* : MClass */;
6714 val
* var_mclass
/* var mclass: MClass */;
6715 val
* var14
/* : nullable Object */;
6716 val
* var_set
/* var set: nullable Set[MType] */;
6717 short int var15
/* : Bool */;
6718 short int var16
/* : Bool */;
6719 val
* var17
/* : HashSet[MType] */;
6720 val
* var18
/* : MModule */;
6721 val
* var20
/* : MModule */;
6722 val
* var21
/* : Set[MClassDef] */;
6723 val
* var_22
/* var : Set[MClassDef] */;
6724 val
* var23
/* : Iterator[nullable Object] */;
6725 val
* var_24
/* var : Iterator[MClassDef] */;
6726 short int var25
/* : Bool */;
6727 val
* var26
/* : nullable Object */;
6728 val
* var_cd
/* var cd: MClassDef */;
6729 val
* var27
/* : Map[MClassDef, Set[MType]] */;
6730 val
* var29
/* : Map[MClassDef, Set[MType]] */;
6731 short int var30
/* : Bool */;
6732 val
* var31
/* : Map[MClassDef, Set[MType]] */;
6733 val
* var33
/* : Map[MClassDef, Set[MType]] */;
6734 val
* var34
/* : nullable Object */;
6735 val
* var36
/* : BucketsColorer[MClass, MType] */;
6736 val
* var_colorer
/* var colorer: BucketsColorer[MClass, MType] */;
6737 val
* var38
/* : Map[Object, Int] */;
6738 val
* var40
/* : nullable RapidTypeAnalysis */;
6739 val
* var42
/* : nullable RapidTypeAnalysis */;
6740 val
* var43
/* : HashSet[MClassType] */;
6741 val
* var45
/* : HashSet[MClassType] */;
6742 val
* var46
/* : Map[MClassType, Array[nullable MType]] */;
6743 val
* var48
/* : HashSet[MType] */;
6744 val
* var_all_unresolved
/* var all_unresolved: HashSet[MType] */;
6745 val
* var49
/* : Map[MClassDef, Set[MType]] */;
6746 val
* var51
/* : Map[MClassDef, Set[MType]] */;
6747 val
* var52
/* : Collection[nullable Object] */;
6748 val
* var_53
/* var : RemovableCollection[Set[MType]] */;
6749 val
* var54
/* : Iterator[nullable Object] */;
6750 val
* var_55
/* var : Iterator[Set[MType]] */;
6751 short int var56
/* : Bool */;
6752 val
* var57
/* : nullable Object */;
6753 val
* var_t
/* var t: Set[MType] */;
6754 val
* var59
/* : HashMap[MType, Int] */;
6755 val
* var_all_unresolved_types_colors
/* var all_unresolved_types_colors: HashMap[MType, Int] */;
6756 val
* var_60
/* var : HashSet[MType] */;
6757 val
* var61
/* : Iterator[nullable Object] */;
6758 val
* var_62
/* var : Iterator[MType] */;
6759 short int var63
/* : Bool */;
6760 val
* var64
/* : nullable Object */;
6761 val
* var_t65
/* var t: MType */;
6762 val
* var66
/* : Map[MType, Int] */;
6763 val
* var68
/* : Map[MType, Int] */;
6764 short int var69
/* : Bool */;
6765 val
* var70
/* : Map[MType, Int] */;
6766 val
* var72
/* : Map[MType, Int] */;
6767 val
* var73
/* : nullable Object */;
6768 long var74
/* : Int */;
6769 long var76
/* : Int */;
6770 val
* var77
/* : nullable Object */;
6772 var
= NEW_standard__HashMap(&type_standard__HashMap__nit__MClass__standard__Set__nit__MType
);
6774 standard___standard__HashMap___standard__kernel__Object__init(var
); /* Direct call hash_collection#HashMap#init on <var:HashMap[MClass, Set[MType]]>*/
6776 var_mtype2unresolved
= var
;
6778 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
6779 var3
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
6785 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6786 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 558);
6789 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var1) on <var1:nullable RapidTypeAnalysis> */
6790 if (unlikely(var1
== NULL
)) {
6791 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6792 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
6795 var6
= var1
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <var1:nullable RapidTypeAnalysis> */
6796 if (unlikely(var6
== NULL
)) {
6797 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
6798 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
6807 var7
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
6812 var9
= ((short int(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_8
); /* is_ok on <var_8:Iterator[MClassType]>*/
6816 var10
= ((val
*(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_8
); /* item on <var_8:Iterator[MClassType]>*/
6820 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
6821 var13
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
6822 if (unlikely(var13
== NULL
)) {
6823 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6824 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
6828 RET_LABEL12
:(void)0;
6833 var14
= standard___standard__HashMap___standard__abstract_collection__MapRead__get_or_null(var_mtype2unresolved
, var_mclass
);
6836 if (var_set
== NULL
) {
6837 var15
= 1; /* is null */
6839 var15
= 0; /* arg is null but recv is not */
6842 var16
= standard___standard__Set___standard__kernel__Object___61d_61d(var_set
, ((val
*)NULL
));
6846 var17
= NEW_standard__HashSet(&type_standard__HashSet__nit__MType
);
6848 standard___standard__HashSet___standard__kernel__Object__init(var17
); /* Direct call hash_collection#HashSet#init on <var17:HashSet[MType]>*/
6852 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_mtype2unresolved
, var_mclass
, var_set
); /* Direct call hash_collection#HashMap#[]= on <var_mtype2unresolved:HashMap[MClass, Set[MType]]>*/
6857 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
6858 var20
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
6859 if (unlikely(var20
== NULL
)) {
6860 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6861 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
6865 RET_LABEL19
:(void)0;
6869 var21
= nit___nit__MClassType___MType__collect_mclassdefs(var_mtype
, var18
);
6873 var23
= ((val
*(*)(val
* self
))((((long)var_22
&3)?class_info
[((long)var_22
&3)]:var_22
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_22
); /* iterator on <var_22:Set[MClassDef]>*/
6878 var25
= ((short int(*)(val
* self
))((((long)var_24
&3)?class_info
[((long)var_24
&3)]:var_24
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_24
); /* is_ok on <var_24:Iterator[MClassDef]>*/
6882 var26
= ((val
*(*)(val
* self
))((((long)var_24
&3)?class_info
[((long)var_24
&3)]:var_24
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_24
); /* item on <var_24:Iterator[MClassDef]>*/
6886 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on <self:SeparateCompiler> */
6887 var29
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <self:SeparateCompiler> */
6888 if (unlikely(var29
== NULL
)) {
6889 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
6890 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 147);
6894 RET_LABEL28
:(void)0;
6898 var30
= ((short int(*)(val
* self
, val
* p0
))((((long)var27
&3)?class_info
[((long)var27
&3)]:var27
->class)->vft
[COLOR_standard__abstract_collection__MapRead__has_key
]))(var27
, var_cd
); /* has_key on <var27:Map[MClassDef, Set[MType]]>*/
6902 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on <self:SeparateCompiler> */
6903 var33
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <self:SeparateCompiler> */
6904 if (unlikely(var33
== NULL
)) {
6905 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
6906 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 147);
6910 RET_LABEL32
:(void)0;
6914 var34
= ((val
*(*)(val
* self
, val
* p0
))((((long)var31
&3)?class_info
[((long)var31
&3)]:var31
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var31
, var_cd
); /* [] on <var31:Map[MClassDef, Set[MType]]>*/
6917 standard___standard__SimpleCollection___add_all(var_set
, var34
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_set:nullable Set[MType](Set[MType])>*/
6922 ((void(*)(val
* self
))((((long)var_24
&3)?class_info
[((long)var_24
&3)]:var_24
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_24
); /* next on <var_24:Iterator[MClassDef]>*/
6928 BREAK_label
: (void)0;
6930 ((void(*)(val
* self
))((((long)var_24
&3)?class_info
[((long)var_24
&3)]:var_24
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_24
); /* finish on <var_24:Iterator[MClassDef]>*/
6933 ((void(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_8
); /* next on <var_8:Iterator[MClassType]>*/
6939 BREAK_label35
: (void)0;
6941 ((void(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_8
); /* finish on <var_8:Iterator[MClassType]>*/
6943 var36
= NEW_nit__BucketsColorer(&type_nit__BucketsColorer__nit__MClass__nit__MType
);
6945 { /* Inline kernel#Object#init (var36) on <var36:BucketsColorer[MClass, MType]> */
6946 RET_LABEL37
:(void)0;
6949 var_colorer
= var36
;
6951 var38
= nit___nit__BucketsColorer___colorize(var_colorer
, var_mtype2unresolved
);
6954 { /* Inline separate_compiler#SeparateCompiler#opentype_colors= (self,var38) on <self:SeparateCompiler> */
6955 self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___opentype_colors
].val
= var38
; /* _opentype_colors on <self:SeparateCompiler> */
6956 RET_LABEL39
:(void)0;
6960 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
6961 var42
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
6963 RET_LABEL41
:(void)0;
6966 if (var40
== NULL
) {
6967 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6968 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 576);
6971 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var40) on <var40:nullable RapidTypeAnalysis> */
6972 if (unlikely(var40
== NULL
)) {
6973 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6974 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
6977 var45
= var40
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <var40:nullable RapidTypeAnalysis> */
6978 if (unlikely(var45
== NULL
)) {
6979 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
6980 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
6984 RET_LABEL44
:(void)0;
6988 var46
= nit___nit__SeparateCompiler___build_resolution_tables(self
, var43
, var_mtype2unresolved
);
6991 { /* Inline separate_compiler#SeparateCompiler#resolution_tables= (self,var46) on <self:SeparateCompiler> */
6992 self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___resolution_tables
].val
= var46
; /* _resolution_tables on <self:SeparateCompiler> */
6993 RET_LABEL47
:(void)0;
6996 var48
= NEW_standard__HashSet(&type_standard__HashSet__nit__MType
);
6998 standard___standard__HashSet___standard__kernel__Object__init(var48
); /* Direct call hash_collection#HashSet#init on <var48:HashSet[MType]>*/
7000 var_all_unresolved
= var48
;
7002 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on <self:SeparateCompiler> */
7003 var51
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <self:SeparateCompiler> */
7004 if (unlikely(var51
== NULL
)) {
7005 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
7006 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 147);
7010 RET_LABEL50
:(void)0;
7014 var52
= ((val
*(*)(val
* self
))((((long)var49
&3)?class_info
[((long)var49
&3)]:var49
->class)->vft
[COLOR_standard__abstract_collection__MapRead__values
]))(var49
); /* values on <var49:Map[MClassDef, Set[MType]]>*/
7018 var54
= ((val
*(*)(val
* self
))((((long)var_53
&3)?class_info
[((long)var_53
&3)]:var_53
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_53
); /* iterator on <var_53:RemovableCollection[Set[MType]]>*/
7023 var56
= ((short int(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_55
); /* is_ok on <var_55:Iterator[Set[MType]]>*/
7027 var57
= ((val
*(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_55
); /* item on <var_55:Iterator[Set[MType]]>*/
7031 standard___standard__SimpleCollection___add_all(var_all_unresolved
, var_t
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_all_unresolved:HashSet[MType]>*/
7034 ((void(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_55
); /* next on <var_55:Iterator[Set[MType]]>*/
7040 BREAK_label58
: (void)0;
7042 ((void(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_55
); /* finish on <var_55:Iterator[Set[MType]]>*/
7044 var59
= NEW_standard__HashMap(&type_standard__HashMap__nit__MType__standard__Int
);
7046 standard___standard__HashMap___standard__kernel__Object__init(var59
); /* Direct call hash_collection#HashMap#init on <var59:HashMap[MType, Int]>*/
7048 var_all_unresolved_types_colors
= var59
;
7049 var_60
= var_all_unresolved
;
7051 var61
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_60
);
7056 var63
= ((short int(*)(val
* self
))((((long)var_62
&3)?class_info
[((long)var_62
&3)]:var_62
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_62
); /* is_ok on <var_62:Iterator[MType]>*/
7060 var64
= ((val
*(*)(val
* self
))((((long)var_62
&3)?class_info
[((long)var_62
&3)]:var_62
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_62
); /* item on <var_62:Iterator[MType]>*/
7064 { /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on <self:SeparateCompiler> */
7065 var68
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___opentype_colors
].val
; /* _opentype_colors on <self:SeparateCompiler> */
7066 if (unlikely(var68
== NULL
)) {
7067 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
7068 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 151);
7072 RET_LABEL67
:(void)0;
7076 var69
= ((short int(*)(val
* self
, val
* p0
))((((long)var66
&3)?class_info
[((long)var66
&3)]:var66
->class)->vft
[COLOR_standard__abstract_collection__MapRead__has_key
]))(var66
, var_t65
); /* has_key on <var66:Map[MType, Int]>*/
7080 { /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on <self:SeparateCompiler> */
7081 var72
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___opentype_colors
].val
; /* _opentype_colors on <self:SeparateCompiler> */
7082 if (unlikely(var72
== NULL
)) {
7083 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
7084 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 151);
7088 RET_LABEL71
:(void)0;
7092 var73
= ((val
*(*)(val
* self
, val
* p0
))((((long)var70
&3)?class_info
[((long)var70
&3)]:var70
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var70
, var_t65
); /* [] on <var70:Map[MType, Int]>*/
7095 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_all_unresolved_types_colors
, var_t65
, var73
); /* Direct call hash_collection#HashMap#[]= on <var_all_unresolved_types_colors:HashMap[MType, Int]>*/
7099 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
7103 RET_LABEL75
:(void)0;
7107 var77
= (val
*)(var74
<<2|1);
7108 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_all_unresolved_types_colors
, var_t65
, var77
); /* Direct call hash_collection#HashMap#[]= on <var_all_unresolved_types_colors:HashMap[MType, Int]>*/
7112 ((void(*)(val
* self
))((((long)var_62
&3)?class_info
[((long)var_62
&3)]:var_62
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_62
); /* next on <var_62:Iterator[MType]>*/
7118 BREAK_label78
: (void)0;
7120 ((void(*)(val
* self
))((((long)var_62
&3)?class_info
[((long)var_62
&3)]:var_62
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_62
); /* finish on <var_62:Iterator[MType]>*/
7123 nit___nit__SeparateCompiler___compile_color_consts(self
, var_all_unresolved_types_colors
); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:SeparateCompiler>*/
7127 /* method separate_compiler#SeparateCompiler#build_resolution_tables for (self: SeparateCompiler, Set[MClassType], Map[MClass, Set[MType]]): Map[MClassType, Array[nullable MType]] */
7128 val
* nit___nit__SeparateCompiler___build_resolution_tables(val
* self
, val
* p0
, val
* p1
) {
7129 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
7130 val
* var_elements
/* var elements: Set[MClassType] */;
7131 val
* var_map
/* var map: Map[MClass, Set[MType]] */;
7132 val
* var1
/* : HashMap[MClassType, Array[nullable MType]] */;
7133 val
* var_tables
/* var tables: HashMap[MClassType, Array[nullable MType]] */;
7134 val
* var_
/* var : Set[MClassType] */;
7135 val
* var2
/* : Iterator[nullable Object] */;
7136 val
* var_3
/* var : Iterator[MClassType] */;
7137 short int var4
/* : Bool */;
7138 val
* var5
/* : nullable Object */;
7139 val
* var_mclasstype
/* var mclasstype: MClassType */;
7140 val
* var6
/* : MClass */;
7141 val
* var8
/* : MClass */;
7142 val
* var9
/* : nullable Object */;
7143 val
* var_mtypes
/* var mtypes: Set[MType] */;
7144 val
* var10
/* : Array[nullable MType] */;
7145 val
* var_table
/* var table: Array[nullable MType] */;
7146 val
* var_11
/* var : Set[MType] */;
7147 val
* var12
/* : Iterator[nullable Object] */;
7148 val
* var_13
/* var : Iterator[MType] */;
7149 short int var14
/* : Bool */;
7150 val
* var15
/* : nullable Object */;
7151 val
* var_mtype
/* var mtype: MType */;
7152 val
* var16
/* : Map[MType, Int] */;
7153 val
* var18
/* : Map[MType, Int] */;
7154 val
* var19
/* : nullable Object */;
7155 long var20
/* : Int */;
7156 long var_color
/* var color: Int */;
7157 long var21
/* : Int */;
7158 long var23
/* : Int */;
7159 short int var24
/* : Bool */;
7160 short int var26
/* : Bool */;
7163 const char* var_class_name
;
7164 short int var27
/* : Bool */;
7165 long var28
/* : Int */;
7166 long var30
/* : Int */;
7167 long var_i
/* var i: Int */;
7168 long var_31
/* var : Int */;
7169 short int var32
/* : Bool */;
7170 short int var34
/* : Bool */;
7173 const char* var_class_name37
;
7174 short int var38
/* : Bool */;
7175 long var39
/* : Int */;
7178 var1
= NEW_standard__HashMap(&type_standard__HashMap__nit__MClassType__standard__Array__nullable__nit__MType
);
7180 standard___standard__HashMap___standard__kernel__Object__init(var1
); /* Direct call hash_collection#HashMap#init on <var1:HashMap[MClassType, Array[nullable MType]]>*/
7183 var_
= var_elements
;
7185 var2
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Set[MClassType]>*/
7190 var4
= ((short int(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_3
); /* is_ok on <var_3:Iterator[MClassType]>*/
7194 var5
= ((val
*(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_3
); /* item on <var_3:Iterator[MClassType]>*/
7196 var_mclasstype
= var5
;
7198 { /* Inline model#MClassType#mclass (var_mclasstype) on <var_mclasstype:MClassType> */
7199 var8
= var_mclasstype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mclasstype:MClassType> */
7200 if (unlikely(var8
== NULL
)) {
7201 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7202 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
7210 var9
= ((val
*(*)(val
* self
, val
* p0
))((((long)var_map
&3)?class_info
[((long)var_map
&3)]:var_map
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var_map
, var6
); /* [] on <var_map:Map[MClass, Set[MType]]>*/
7213 var10
= NEW_standard__Array(&type_standard__Array__nullable__nit__MType
);
7215 standard___standard__Array___standard__kernel__Object__init(var10
); /* Direct call array#Array#init on <var10:Array[nullable MType]>*/
7218 var_11
= var_mtypes
;
7220 var12
= ((val
*(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_11
); /* iterator on <var_11:Set[MType]>*/
7225 var14
= ((short int(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_13
); /* is_ok on <var_13:Iterator[MType]>*/
7229 var15
= ((val
*(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_13
); /* item on <var_13:Iterator[MType]>*/
7233 { /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on <self:SeparateCompiler> */
7234 var18
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___opentype_colors
].val
; /* _opentype_colors on <self:SeparateCompiler> */
7235 if (unlikely(var18
== NULL
)) {
7236 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
7237 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 151);
7241 RET_LABEL17
:(void)0;
7245 var19
= ((val
*(*)(val
* self
, val
* p0
))((((long)var16
&3)?class_info
[((long)var16
&3)]:var16
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var16
, var_mtype
); /* [] on <var16:Map[MType, Int]>*/
7247 var20
= (long)(var19
)>>2;
7250 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
7251 var23
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MType]> */
7253 RET_LABEL22
:(void)0;
7257 { /* Inline kernel#Int#<= (var21,var_color) on <var21:Int> */
7258 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
7259 /* <var_color:Int> isa OTHER */
7260 var26
= 1; /* easy <var_color:Int> isa OTHER*/
7261 if (unlikely(!var26
)) {
7262 var_class_name
= type_standard__Int
.name
;
7263 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
7264 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 533);
7267 var27
= var21
<= var_color
;
7270 RET_LABEL25
:(void)0;
7275 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
7276 var30
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MType]> */
7278 RET_LABEL29
:(void)0;
7285 { /* Inline kernel#Int#< (var_i,var_31) on <var_i:Int> */
7286 /* Covariant cast for argument 0 (i) <var_31:Int> isa OTHER */
7287 /* <var_31:Int> isa OTHER */
7288 var34
= 1; /* easy <var_31:Int> isa OTHER*/
7289 if (unlikely(!var34
)) {
7290 var_class_name37
= type_standard__Int
.name
;
7291 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37
);
7292 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 534);
7295 var38
= var_i
< var_31
;
7298 RET_LABEL33
:(void)0;
7303 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_i
, ((val
*)NULL
)); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
7306 var39
= standard___standard__Int___Discrete__successor(var_i
, 1l);
7313 BREAK_label
: (void)0;
7317 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_color
, var_mtype
); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
7320 ((void(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_13
); /* next on <var_13:Iterator[MType]>*/
7326 BREAK_label40
: (void)0;
7328 ((void(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_13
); /* finish on <var_13:Iterator[MType]>*/
7331 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_tables
, var_mclasstype
, var_table
); /* Direct call hash_collection#HashMap#[]= on <var_tables:HashMap[MClassType, Array[nullable MType]]>*/
7334 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_3
); /* next on <var_3:Iterator[MClassType]>*/
7340 BREAK_label41
: (void)0;
7342 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_3
); /* finish on <var_3:Iterator[MClassType]>*/
7349 /* method separate_compiler#SeparateCompiler#compile_module_to_c for (self: SeparateCompiler, MModule) */
7350 void nit___nit__SeparateCompiler___compile_module_to_c(val
* self
, val
* p0
) {
7351 val
* var_mmodule
/* var mmodule: MModule */;
7352 val
* var
/* : MModule */;
7353 val
* var2
/* : MModule */;
7354 val
* var_old_module
/* var old_module: MModule */;
7355 val
* var4
/* : Array[MClassDef] */;
7356 val
* var6
/* : Array[MClassDef] */;
7357 val
* var_
/* var : Array[MClassDef] */;
7358 val
* var7
/* : ArrayIterator[nullable Object] */;
7359 val
* var_8
/* var : ArrayIterator[MClassDef] */;
7360 short int var9
/* : Bool */;
7361 val
* var10
/* : nullable Object */;
7362 val
* var_cd
/* var cd: MClassDef */;
7363 val
* var11
/* : Array[MPropDef] */;
7364 val
* var13
/* : Array[MPropDef] */;
7365 val
* var_14
/* var : Array[MPropDef] */;
7366 val
* var15
/* : ArrayIterator[nullable Object] */;
7367 val
* var_16
/* var : ArrayIterator[MPropDef] */;
7368 short int var17
/* : Bool */;
7369 val
* var18
/* : nullable Object */;
7370 val
* var_pd
/* var pd: MPropDef */;
7371 short int var19
/* : Bool */;
7374 short int var20
/* : Bool */;
7375 val
* var21
/* : nullable MSignature */;
7376 val
* var23
/* : nullable MSignature */;
7377 short int var24
/* : Bool */;
7378 short int var25
/* : Bool */;
7379 val
* var_other
/* var other: nullable Object */;
7380 short int var27
/* : Bool */;
7381 short int var29
/* : Bool */;
7382 val
* var30
/* : nullable RapidTypeAnalysis */;
7383 val
* var32
/* : nullable RapidTypeAnalysis */;
7384 val
* var_rta
/* var rta: nullable RapidTypeAnalysis */;
7385 short int var33
/* : Bool */;
7386 short int var34
/* : Bool */;
7387 val
* var35
/* : ModelBuilder */;
7388 val
* var37
/* : ModelBuilder */;
7389 val
* var38
/* : ToolContext */;
7390 val
* var40
/* : ToolContext */;
7391 val
* var41
/* : OptionBool */;
7392 val
* var43
/* : OptionBool */;
7393 val
* var44
/* : nullable Object */;
7394 val
* var46
/* : nullable Object */;
7395 short int var47
/* : Bool */;
7396 short int var_48
/* var : Bool */;
7397 short int var49
/* : Bool */;
7398 short int var50
/* : Bool */;
7399 val
* var_other52
/* var other: nullable Object */;
7400 short int var53
/* : Bool */;
7401 short int var54
/* : Bool */;
7402 short int var_55
/* var : Bool */;
7403 val
* var56
/* : HashSet[MMethodDef] */;
7404 val
* var58
/* : HashSet[MMethodDef] */;
7405 short int var59
/* : Bool */;
7406 short int var60
/* : Bool */;
7407 val
* var61
/* : SeparateRuntimeFunction */;
7408 val
* var_r
/* var r: SeparateRuntimeFunction */;
7409 val
* var62
/* : SeparateRuntimeFunction */;
7410 val
* var_r2
/* var r2: SeparateRuntimeFunction */;
7411 short int var63
/* : Bool */;
7412 short int var65
/* : Bool */;
7413 short int var66
/* : Bool */;
7414 val
* var67
/* : ModelBuilder */;
7415 val
* var69
/* : ModelBuilder */;
7416 val
* var70
/* : ToolContext */;
7417 val
* var72
/* : ToolContext */;
7418 val
* var73
/* : OptionBool */;
7419 val
* var75
/* : OptionBool */;
7420 val
* var76
/* : nullable Object */;
7421 val
* var78
/* : nullable Object */;
7422 short int var79
/* : Bool */;
7425 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
7426 var2
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
7427 if (unlikely(var2
== NULL
)) {
7428 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7429 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
7436 var_old_module
= var
;
7438 { /* Inline abstract_compiler#AbstractCompiler#mainmodule= (self,var_mmodule) on <self:SeparateCompiler> */
7439 self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
= var_mmodule
; /* _mainmodule on <self:SeparateCompiler> */
7444 { /* Inline model#MModule#mclassdefs (var_mmodule) on <var_mmodule:MModule> */
7445 var6
= var_mmodule
->attrs
[COLOR_nit__model__MModule___mclassdefs
].val
; /* _mclassdefs on <var_mmodule:MModule> */
7446 if (unlikely(var6
== NULL
)) {
7447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
7448 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 131);
7457 var7
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
7462 var9
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_8
);
7466 var10
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_8
);
7470 { /* Inline model#MClassDef#mpropdefs (var_cd) on <var_cd:MClassDef> */
7471 var13
= var_cd
->attrs
[COLOR_nit__model__MClassDef___mpropdefs
].val
; /* _mpropdefs on <var_cd:MClassDef> */
7472 if (unlikely(var13
== NULL
)) {
7473 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
7474 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 684);
7478 RET_LABEL12
:(void)0;
7483 var15
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_14
);
7488 var17
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_16
);
7492 var18
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_16
);
7495 /* <var_pd:MPropDef> isa MMethodDef */
7496 cltype
= type_nit__MMethodDef
.color
;
7497 idtype
= type_nit__MMethodDef
.id
;
7498 if(cltype
>= var_pd
->type
->table_size
) {
7501 var19
= var_pd
->type
->type_table
[cltype
] == idtype
;
7509 { /* Inline model#MMethodDef#msignature (var_pd) on <var_pd:MPropDef(MMethodDef)> */
7510 var23
= var_pd
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_pd:MPropDef(MMethodDef)> */
7512 RET_LABEL22
:(void)0;
7515 if (var21
== NULL
) {
7516 var24
= 1; /* is null */
7518 var24
= 0; /* arg is null but recv is not */
7521 { /* Inline kernel#Object#== (var21,((val*)NULL)) on <var21:nullable MSignature> */
7522 var_other
= ((val
*)NULL
);
7524 { /* Inline kernel#Object#is_same_instance (var21,var_other) on <var21:nullable MSignature(MSignature)> */
7525 var29
= var21
== var_other
;
7528 RET_LABEL28
:(void)0;
7533 RET_LABEL26
:(void)0;
7542 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
7543 var32
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
7545 RET_LABEL31
:(void)0;
7550 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
7551 var37
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
7552 if (unlikely(var37
== NULL
)) {
7553 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7554 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 522);
7558 RET_LABEL36
:(void)0;
7562 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var35) on <var35:ModelBuilder> */
7563 var40
= var35
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var35:ModelBuilder> */
7564 if (unlikely(var40
== NULL
)) {
7565 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7566 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
7570 RET_LABEL39
:(void)0;
7574 { /* Inline separate_compiler#ToolContext#opt_skip_dead_methods (var38) on <var38:ToolContext> */
7575 var43
= var38
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_skip_dead_methods
].val
; /* _opt_skip_dead_methods on <var38:ToolContext> */
7576 if (unlikely(var43
== NULL
)) {
7577 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods");
7578 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 54);
7582 RET_LABEL42
:(void)0;
7586 { /* Inline opts#Option#value (var41) on <var41:OptionBool> */
7587 var46
= var41
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var41:OptionBool> */
7589 RET_LABEL45
:(void)0;
7592 var47
= (short int)((long)(var44
)>>2);
7595 if (var_rta
== NULL
) {
7596 var49
= 0; /* is null */
7598 var49
= 1; /* arg is null and recv is not */
7601 { /* Inline kernel#Object#!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
7602 var_other52
= ((val
*)NULL
);
7604 var53
= ((short int(*)(val
* self
, val
* p0
))(var_rta
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_rta
, var_other52
); /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/
7609 RET_LABEL51
:(void)0;
7620 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
7621 var58
= var_rta
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
7622 if (unlikely(var58
== NULL
)) {
7623 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
7624 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 79);
7628 RET_LABEL57
:(void)0;
7632 var59
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var56
, var_pd
);
7644 var61
= nit__separate_compiler___MMethodDef___separate_runtime_function(var_pd
);
7648 nit___nit__SeparateRuntimeFunction___nit__abstract_compiler__AbstractRuntimeFunction__compile_to_c(var_r
, self
); /* Direct call separate_compiler#SeparateRuntimeFunction#compile_to_c on <var_r:SeparateRuntimeFunction>*/
7651 var62
= nit__separate_compiler___MMethodDef___virtual_runtime_function(var_pd
);
7655 { /* Inline kernel#Object#!= (var_r2,var_r) on <var_r2:SeparateRuntimeFunction> */
7656 var_other52
= var_r
;
7658 var65
= ((short int(*)(val
* self
, val
* p0
))(var_r2
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_r2
, var_other52
); /* == on <var_r2:SeparateRuntimeFunction>*/
7663 RET_LABEL64
:(void)0;
7668 nit___nit__SeparateRuntimeFunction___nit__abstract_compiler__AbstractRuntimeFunction__compile_to_c(var_r2
, self
); /* Direct call separate_compiler#SeparateRuntimeFunction#compile_to_c on <var_r2:SeparateRuntimeFunction>*/
7673 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
7674 var69
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
7675 if (unlikely(var69
== NULL
)) {
7676 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7677 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 522);
7681 RET_LABEL68
:(void)0;
7685 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var67) on <var67:ModelBuilder> */
7686 var72
= var67
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var67:ModelBuilder> */
7687 if (unlikely(var72
== NULL
)) {
7688 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7689 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
7693 RET_LABEL71
:(void)0;
7697 { /* Inline separate_compiler#ToolContext#opt_trampoline_call (var70) on <var70:ToolContext> */
7698 var75
= var70
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_trampoline_call
].val
; /* _opt_trampoline_call on <var70:ToolContext> */
7699 if (unlikely(var75
== NULL
)) {
7700 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_trampoline_call");
7701 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 37);
7705 RET_LABEL74
:(void)0;
7709 { /* Inline opts#Option#value (var73) on <var73:OptionBool> */
7710 var78
= var73
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var73:OptionBool> */
7712 RET_LABEL77
:(void)0;
7715 var79
= (short int)((long)(var76
)>>2);
7718 nit___nit__SeparateRuntimeFunction___compile_trampolines(var_r2
, self
); /* Direct call separate_compiler#SeparateRuntimeFunction#compile_trampolines on <var_r2:SeparateRuntimeFunction>*/
7722 BREAK_label
: (void)0;
7724 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_16
); /* Direct call array#ArrayIterator#next on <var_16:ArrayIterator[MPropDef]>*/
7730 BREAK_label80
: (void)0;
7732 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_16
); /* Direct call array#ArrayIterator#finish on <var_16:ArrayIterator[MPropDef]>*/
7735 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_8
); /* Direct call array#ArrayIterator#next on <var_8:ArrayIterator[MClassDef]>*/
7741 BREAK_label81
: (void)0;
7743 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_8
); /* Direct call array#ArrayIterator#finish on <var_8:ArrayIterator[MClassDef]>*/
7746 { /* Inline abstract_compiler#AbstractCompiler#mainmodule= (self,var_old_module) on <self:SeparateCompiler> */
7747 self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
= var_old_module
; /* _mainmodule on <self:SeparateCompiler> */
7748 RET_LABEL82
:(void)0;
7753 /* method separate_compiler#SeparateCompiler#link_mmethods for (self: SeparateCompiler) */
7754 void nit___nit__SeparateCompiler___link_mmethods(val
* self
) {
7755 short int var
/* : Bool */;
7756 val
* var1
/* : ModelBuilder */;
7757 val
* var3
/* : ModelBuilder */;
7758 val
* var4
/* : ToolContext */;
7759 val
* var6
/* : ToolContext */;
7760 val
* var7
/* : OptionBool */;
7761 val
* var9
/* : OptionBool */;
7762 val
* var10
/* : nullable Object */;
7763 val
* var12
/* : nullable Object */;
7764 short int var13
/* : Bool */;
7765 short int var14
/* : Bool */;
7766 short int var_
/* var : Bool */;
7767 val
* var15
/* : ModelBuilder */;
7768 val
* var17
/* : ModelBuilder */;
7769 val
* var18
/* : ToolContext */;
7770 val
* var20
/* : ToolContext */;
7771 val
* var21
/* : OptionBool */;
7772 val
* var23
/* : OptionBool */;
7773 val
* var24
/* : nullable Object */;
7774 val
* var26
/* : nullable Object */;
7775 short int var27
/* : Bool */;
7776 short int var28
/* : Bool */;
7777 val
* var29
/* : MModule */;
7778 val
* var31
/* : MModule */;
7779 val
* var32
/* : POSetElement[MModule] */;
7780 val
* var34
/* : POSetElement[MModule] */;
7781 val
* var35
/* : Collection[nullable Object] */;
7782 val
* var_36
/* var : Collection[MModule] */;
7783 val
* var37
/* : Iterator[nullable Object] */;
7784 val
* var_38
/* var : Iterator[MModule] */;
7785 short int var39
/* : Bool */;
7786 val
* var40
/* : nullable Object */;
7787 val
* var_mmodule
/* var mmodule: MModule */;
7788 val
* var41
/* : Array[MClassDef] */;
7789 val
* var43
/* : Array[MClassDef] */;
7790 val
* var_44
/* var : Array[MClassDef] */;
7791 val
* var45
/* : ArrayIterator[nullable Object] */;
7792 val
* var_46
/* var : ArrayIterator[MClassDef] */;
7793 short int var47
/* : Bool */;
7794 val
* var48
/* : nullable Object */;
7795 val
* var_cd
/* var cd: MClassDef */;
7796 val
* var49
/* : Array[MProperty] */;
7797 val
* var51
/* : Array[MProperty] */;
7798 val
* var_52
/* var : Array[MProperty] */;
7799 val
* var53
/* : ArrayIterator[nullable Object] */;
7800 val
* var_54
/* var : ArrayIterator[MProperty] */;
7801 short int var55
/* : Bool */;
7802 val
* var56
/* : nullable Object */;
7803 val
* var_m
/* var m: MProperty */;
7804 short int var57
/* : Bool */;
7807 short int var58
/* : Bool */;
7809 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
7810 var3
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
7811 if (unlikely(var3
== NULL
)) {
7812 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7813 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 522);
7821 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var1) on <var1:ModelBuilder> */
7822 var6
= var1
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var1:ModelBuilder> */
7823 if (unlikely(var6
== NULL
)) {
7824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7825 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
7833 { /* Inline separate_compiler#ToolContext#opt_substitute_monomorph (var4) on <var4:ToolContext> */
7834 var9
= var4
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_substitute_monomorph
].val
; /* _opt_substitute_monomorph on <var4:ToolContext> */
7835 if (unlikely(var9
== NULL
)) {
7836 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_substitute_monomorph");
7837 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 41);
7845 { /* Inline opts#Option#value (var7) on <var7:OptionBool> */
7846 var12
= var7
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var7:OptionBool> */
7848 RET_LABEL11
:(void)0;
7851 var13
= (short int)((long)(var10
)>>2);
7856 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
7857 var17
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
7858 if (unlikely(var17
== NULL
)) {
7859 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7860 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 522);
7864 RET_LABEL16
:(void)0;
7868 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var15) on <var15:ModelBuilder> */
7869 var20
= var15
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var15:ModelBuilder> */
7870 if (unlikely(var20
== NULL
)) {
7871 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7872 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
7876 RET_LABEL19
:(void)0;
7880 { /* Inline separate_compiler#ToolContext#opt_guard_call (var18) on <var18:ToolContext> */
7881 var23
= var18
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_guard_call
].val
; /* _opt_guard_call on <var18:ToolContext> */
7882 if (unlikely(var23
== NULL
)) {
7883 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_guard_call");
7884 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 39);
7888 RET_LABEL22
:(void)0;
7892 { /* Inline opts#Option#value (var21) on <var21:OptionBool> */
7893 var26
= var21
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var21:OptionBool> */
7895 RET_LABEL25
:(void)0;
7898 var27
= (short int)((long)(var24
)>>2);
7909 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
7910 var31
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
7911 if (unlikely(var31
== NULL
)) {
7912 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7913 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
7917 RET_LABEL30
:(void)0;
7921 { /* Inline mmodule#MModule#in_importation (var29) on <var29:MModule> */
7922 var34
= var29
->attrs
[COLOR_nit__mmodule__MModule___in_importation
].val
; /* _in_importation on <var29:MModule> */
7923 if (unlikely(var34
== NULL
)) {
7924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
7925 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 96);
7929 RET_LABEL33
:(void)0;
7933 var35
= poset___poset__POSetElement___greaters(var32
);
7937 var37
= ((val
*(*)(val
* self
))((((long)var_36
&3)?class_info
[((long)var_36
&3)]:var_36
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_36
); /* iterator on <var_36:Collection[MModule]>*/
7942 var39
= ((short int(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_38
); /* is_ok on <var_38:Iterator[MModule]>*/
7946 var40
= ((val
*(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_38
); /* item on <var_38:Iterator[MModule]>*/
7948 var_mmodule
= var40
;
7950 { /* Inline model#MModule#mclassdefs (var_mmodule) on <var_mmodule:MModule> */
7951 var43
= var_mmodule
->attrs
[COLOR_nit__model__MModule___mclassdefs
].val
; /* _mclassdefs on <var_mmodule:MModule> */
7952 if (unlikely(var43
== NULL
)) {
7953 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
7954 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 131);
7958 RET_LABEL42
:(void)0;
7963 var45
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_44
);
7968 var47
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_46
);
7972 var48
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_46
);
7976 { /* Inline model#MClassDef#intro_mproperties (var_cd) on <var_cd:MClassDef> */
7977 var51
= var_cd
->attrs
[COLOR_nit__model__MClassDef___intro_mproperties
].val
; /* _intro_mproperties on <var_cd:MClassDef> */
7978 if (unlikely(var51
== NULL
)) {
7979 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mproperties");
7980 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 681);
7984 RET_LABEL50
:(void)0;
7989 var53
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_52
);
7994 var55
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_54
);
7998 var56
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_54
);
8001 /* <var_m:MProperty> isa MMethod */
8002 cltype
= type_nit__MMethod
.color
;
8003 idtype
= type_nit__MMethod
.id
;
8004 if(cltype
>= var_m
->type
->table_size
) {
8007 var57
= var_m
->type
->type_table
[cltype
] == idtype
;
8015 nit___nit__SeparateCompiler___link_mmethod(self
, var_m
); /* Direct call separate_compiler#SeparateCompiler#link_mmethod on <self:SeparateCompiler>*/
8017 BREAK_label
: (void)0;
8019 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_54
); /* Direct call array#ArrayIterator#next on <var_54:ArrayIterator[MProperty]>*/
8025 BREAK_label59
: (void)0;
8027 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_54
); /* Direct call array#ArrayIterator#finish on <var_54:ArrayIterator[MProperty]>*/
8030 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_46
); /* Direct call array#ArrayIterator#next on <var_46:ArrayIterator[MClassDef]>*/
8036 BREAK_label60
: (void)0;
8038 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_46
); /* Direct call array#ArrayIterator#finish on <var_46:ArrayIterator[MClassDef]>*/
8041 ((void(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_38
); /* next on <var_38:Iterator[MModule]>*/
8047 BREAK_label61
: (void)0;
8049 ((void(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_38
); /* finish on <var_38:Iterator[MModule]>*/
8053 /* method separate_compiler#SeparateCompiler#link_mmethod for (self: SeparateCompiler, MMethod) */
8054 void nit___nit__SeparateCompiler___link_mmethod(val
* self
, val
* p0
) {
8055 val
* var_m
/* var m: MMethod */;
8056 static val
* varonce
;
8057 val
* var
/* : String */;
8058 char* var1
/* : NativeString */;
8059 val
* var2
/* : FlatString */;
8060 val
* var3
/* : String */;
8061 val
* var4
/* : String */;
8062 val
* var_n2
/* var n2: String */;
8063 val
* var5
/* : nullable MMethodDef */;
8064 val
* var_md
/* var md: nullable MMethodDef */;
8065 short int var6
/* : Bool */;
8066 short int var7
/* : Bool */;
8067 val
* var_other
/* var other: nullable Object */;
8068 short int var9
/* : Bool */;
8069 short int var10
/* : Bool */;
8070 val
* var11
/* : Array[String] */;
8071 val
* var13
/* : Array[String] */;
8072 val
* var15
/* : NativeArray[String] */;
8073 static val
* varonce14
;
8074 static val
* varonce16
;
8075 val
* var17
/* : String */;
8076 char* var18
/* : NativeString */;
8077 val
* var19
/* : FlatString */;
8078 static val
* varonce20
;
8079 val
* var21
/* : String */;
8080 char* var22
/* : NativeString */;
8081 val
* var23
/* : FlatString */;
8082 val
* var24
/* : SeparateRuntimeFunction */;
8083 val
* var25
/* : String */;
8084 val
* var26
/* : String */;
8085 val
* var27
/* : ModelBuilder */;
8086 val
* var29
/* : ModelBuilder */;
8087 val
* var30
/* : ToolContext */;
8088 val
* var32
/* : ToolContext */;
8089 val
* var33
/* : OptionBool */;
8090 val
* var35
/* : OptionBool */;
8091 val
* var36
/* : nullable Object */;
8092 val
* var38
/* : nullable Object */;
8093 short int var39
/* : Bool */;
8094 val
* var40
/* : MPropDef */;
8095 val
* var42
/* : MPropDef */;
8096 val
* var43
/* : SeparateRuntimeFunction */;
8097 val
* var_r
/* var r: SeparateRuntimeFunction */;
8098 val
* var45
/* : NativeArray[String] */;
8099 static val
* varonce44
;
8100 static val
* varonce46
;
8101 val
* var47
/* : String */;
8102 char* var48
/* : NativeString */;
8103 val
* var49
/* : FlatString */;
8104 static val
* varonce50
;
8105 val
* var51
/* : String */;
8106 char* var52
/* : NativeString */;
8107 val
* var53
/* : FlatString */;
8108 val
* var54
/* : String */;
8109 val
* var55
/* : String */;
8110 val
* var56
/* : String */;
8112 if (likely(varonce
!=NULL
)) {
8116 var2
= standard___standard__NativeString___to_s_with_length(var1
, 5l);
8121 var3
= nit__separate_compiler___MEntity___const_color(var_m
);
8124 var4
= ((val
*(*)(val
* self
, val
* p0
))(var
->class->vft
[COLOR_standard__string__String___43d
]))(var
, var3
); /* + on <var:String>*/
8128 var5
= nit___nit__SeparateCompiler___is_monomorphic(self
, var_m
);
8131 if (var_md
== NULL
) {
8132 var6
= 0; /* is null */
8134 var6
= 1; /* arg is null and recv is not */
8137 { /* Inline kernel#Object#!= (var_md,((val*)NULL)) on <var_md:nullable MMethodDef> */
8138 var_other
= ((val
*)NULL
);
8140 var9
= ((short int(*)(val
* self
, val
* p0
))(var_md
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_md
, var_other
); /* == on <var_md:nullable MMethodDef(MMethodDef)>*/
8151 { /* Inline abstract_compiler#AbstractCompiler#linker_script (self) on <self:SeparateCompiler> */
8152 var13
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___linker_script
].val
; /* _linker_script on <self:SeparateCompiler> */
8153 if (unlikely(var13
== NULL
)) {
8154 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _linker_script");
8155 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 572);
8159 RET_LABEL12
:(void)0;
8162 if (unlikely(varonce14
==NULL
)) {
8163 var15
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
8164 if (likely(varonce16
!=NULL
)) {
8168 var19
= standard___standard__NativeString___to_s_with_length(var18
, 3l);
8172 ((struct instance_standard__NativeArray
*)var15
)->values
[1]=var17
;
8173 if (likely(varonce20
!=NULL
)) {
8177 var23
= standard___standard__NativeString___to_s_with_length(var22
, 1l);
8181 ((struct instance_standard__NativeArray
*)var15
)->values
[3]=var21
;
8186 ((struct instance_standard__NativeArray
*)var15
)->values
[0]=var_n2
;
8188 var24
= nit__separate_compiler___MMethodDef___virtual_runtime_function(var_md
);
8191 var25
= nit___nit__AbstractRuntimeFunction___c_name(var24
);
8193 ((struct instance_standard__NativeArray
*)var15
)->values
[2]=var25
;
8195 var26
= ((val
*(*)(val
* self
))(var15
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var15
); /* native_to_s on <var15:NativeArray[String]>*/
8199 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var11
, var26
); /* Direct call array#Array#add on <var11:Array[String]>*/
8204 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
8205 var29
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
8206 if (unlikely(var29
== NULL
)) {
8207 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
8208 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 522);
8212 RET_LABEL28
:(void)0;
8216 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var27) on <var27:ModelBuilder> */
8217 var32
= var27
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var27:ModelBuilder> */
8218 if (unlikely(var32
== NULL
)) {
8219 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
8220 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
8224 RET_LABEL31
:(void)0;
8228 { /* Inline separate_compiler#ToolContext#opt_guard_call (var30) on <var30:ToolContext> */
8229 var35
= var30
->attrs
[COLOR_nit__separate_compiler__ToolContext___opt_guard_call
].val
; /* _opt_guard_call on <var30:ToolContext> */
8230 if (unlikely(var35
== NULL
)) {
8231 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_guard_call");
8232 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 39);
8236 RET_LABEL34
:(void)0;
8240 { /* Inline opts#Option#value (var33) on <var33:OptionBool> */
8241 var38
= var33
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var33:OptionBool> */
8243 RET_LABEL37
:(void)0;
8246 var39
= (short int)((long)(var36
)>>2);
8249 { /* Inline model#MProperty#intro (var_m) on <var_m:MMethod> */
8250 var42
= var_m
->attrs
[COLOR_nit__model__MProperty___intro
].val
; /* _intro on <var_m:MMethod> */
8251 if (unlikely(var42
== NULL
)) {
8252 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
8253 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1968);
8257 RET_LABEL41
:(void)0;
8261 var43
= nit__separate_compiler___MMethodDef___virtual_runtime_function(var40
);
8264 if (unlikely(varonce44
==NULL
)) {
8265 var45
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
8266 if (likely(varonce46
!=NULL
)) {
8270 var49
= standard___standard__NativeString___to_s_with_length(var48
, 1l);
8274 ((struct instance_standard__NativeArray
*)var45
)->values
[1]=var47
;
8275 if (likely(varonce50
!=NULL
)) {
8278 var52
= " __attribute__((weak));";
8279 var53
= standard___standard__NativeString___to_s_with_length(var52
, 23l);
8283 ((struct instance_standard__NativeArray
*)var45
)->values
[4]=var51
;
8289 var54
= nit___nit__SeparateRuntimeFunction___c_ret(var_r
);
8291 ((struct instance_standard__NativeArray
*)var45
)->values
[0]=var54
;
8292 ((struct instance_standard__NativeArray
*)var45
)->values
[2]=var_n2
;
8294 var55
= nit___nit__SeparateRuntimeFunction___c_sig(var_r
);
8296 ((struct instance_standard__NativeArray
*)var45
)->values
[3]=var55
;
8298 var56
= ((val
*(*)(val
* self
))(var45
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var45
); /* native_to_s on <var45:NativeArray[String]>*/
8302 nit___nit__AbstractCompiler___provide_declaration(self
, var_n2
, var56
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
8308 /* method separate_compiler#SeparateCompiler#is_monomorphic for (self: SeparateCompiler, MMethod): nullable MMethodDef */
8309 val
* nit___nit__SeparateCompiler___is_monomorphic(val
* self
, val
* p0
) {
8310 val
* var
/* : nullable MMethodDef */;
8311 val
* var_m
/* var m: MMethod */;
8312 val
* var1
/* : nullable RapidTypeAnalysis */;
8313 val
* var3
/* : nullable RapidTypeAnalysis */;
8314 val
* var_rta
/* var rta: nullable RapidTypeAnalysis */;
8315 short int var4
/* : Bool */;
8316 short int var5
/* : Bool */;
8317 val
* var_other
/* var other: nullable Object */;
8318 short int var7
/* : Bool */;
8319 short int var9
/* : Bool */;
8320 val
* var10
/* : Array[MPropDef] */;
8321 val
* var12
/* : Array[MPropDef] */;
8322 long var13
/* : Int */;
8323 long var15
/* : Int */;
8324 short int var16
/* : Bool */;
8325 short int var18
/* : Bool */;
8326 val
* var19
/* : Array[MPropDef] */;
8327 val
* var21
/* : Array[MPropDef] */;
8328 val
* var22
/* : nullable Object */;
8329 val
* var_res
/* var res: nullable MMethodDef */;
8330 val
* var23
/* : Array[MPropDef] */;
8331 val
* var25
/* : Array[MPropDef] */;
8332 val
* var_
/* var : Array[MMethodDef] */;
8333 val
* var26
/* : ArrayIterator[nullable Object] */;
8334 val
* var_27
/* var : ArrayIterator[MMethodDef] */;
8335 short int var28
/* : Bool */;
8336 val
* var29
/* : nullable Object */;
8337 val
* var_md
/* var md: MMethodDef */;
8338 val
* var30
/* : HashSet[MMethodDef] */;
8339 val
* var32
/* : HashSet[MMethodDef] */;
8340 short int var33
/* : Bool */;
8341 short int var34
/* : Bool */;
8342 short int var35
/* : Bool */;
8343 val
* var_other37
/* var other: nullable Object */;
8344 short int var38
/* : Bool */;
8345 short int var39
/* : Bool */;
8348 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
8349 var3
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
8355 if (var_rta
== NULL
) {
8356 var4
= 1; /* is null */
8358 var4
= 0; /* arg is null but recv is not */
8361 { /* Inline kernel#Object#== (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
8362 var_other
= ((val
*)NULL
);
8364 { /* Inline kernel#Object#is_same_instance (var_rta,var_other) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
8365 var9
= var_rta
== var_other
;
8379 { /* Inline model#MProperty#mpropdefs (var_m) on <var_m:MMethod> */
8380 var12
= var_m
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_m:MMethod> */
8381 if (unlikely(var12
== NULL
)) {
8382 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
8383 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1963);
8387 RET_LABEL11
:(void)0;
8391 { /* Inline array#AbstractArrayRead#length (var10) on <var10:Array[MPropDef](Array[MMethodDef])> */
8392 var15
= var10
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var10:Array[MPropDef](Array[MMethodDef])> */
8394 RET_LABEL14
:(void)0;
8398 { /* Inline kernel#Int#== (var13,1l) on <var13:Int> */
8399 var18
= var13
== 1l;
8402 RET_LABEL17
:(void)0;
8407 { /* Inline model#MProperty#mpropdefs (var_m) on <var_m:MMethod> */
8408 var21
= var_m
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_m:MMethod> */
8409 if (unlikely(var21
== NULL
)) {
8410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
8411 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1963);
8415 RET_LABEL20
:(void)0;
8419 var22
= standard___standard__SequenceRead___Collection__first(var19
);
8428 var_res
= ((val
*)NULL
);
8430 { /* Inline model#MProperty#mpropdefs (var_m) on <var_m:MMethod> */
8431 var25
= var_m
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_m:MMethod> */
8432 if (unlikely(var25
== NULL
)) {
8433 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
8434 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1963);
8438 RET_LABEL24
:(void)0;
8443 var26
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
8448 var28
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_27
);
8452 var29
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_27
);
8456 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
8457 var32
= var_rta
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
8458 if (unlikely(var32
== NULL
)) {
8459 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
8460 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 79);
8464 RET_LABEL31
:(void)0;
8468 var33
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var30
, var_md
);
8471 if (var_res
== NULL
) {
8472 var34
= 0; /* is null */
8474 var34
= 1; /* arg is null and recv is not */
8477 { /* Inline kernel#Object#!= (var_res,((val*)NULL)) on <var_res:nullable MMethodDef> */
8478 var_other37
= ((val
*)NULL
);
8480 var38
= ((short int(*)(val
* self
, val
* p0
))(var_res
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_res
, var_other37
); /* == on <var_res:nullable MMethodDef(MMethodDef)>*/
8485 RET_LABEL36
:(void)0;
8498 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_27
); /* Direct call array#ArrayIterator#next on <var_27:ArrayIterator[MMethodDef]>*/
8504 BREAK_label
: (void)0;
8506 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_27
); /* Direct call array#ArrayIterator#finish on <var_27:ArrayIterator[MMethodDef]>*/
8514 /* method separate_compiler#SeparateCompiler#compile_type_to_c for (self: SeparateCompiler, MType) */
8515 void nit___nit__SeparateCompiler___compile_type_to_c(val
* self
, val
* p0
) {
8516 val
* var_mtype
/* var mtype: MType */;
8517 short int var
/* : Bool */;
8518 short int var1
/* : Bool */;
8519 short int var2
/* : Bool */;
8520 short int var3
/* : Bool */;
8523 short int var_
/* var : Bool */;
8524 val
* var4
/* : nullable RapidTypeAnalysis */;
8525 val
* var6
/* : nullable RapidTypeAnalysis */;
8526 val
* var7
/* : HashSet[MClassType] */;
8527 val
* var9
/* : HashSet[MClassType] */;
8528 short int var10
/* : Bool */;
8529 short int var_is_live
/* var is_live: Bool */;
8530 val
* var11
/* : nullable RapidTypeAnalysis */;
8531 val
* var13
/* : nullable RapidTypeAnalysis */;
8532 val
* var14
/* : HashSet[MType] */;
8533 val
* var16
/* : HashSet[MType] */;
8534 short int var17
/* : Bool */;
8535 short int var_is_cast_live
/* var is_cast_live: Bool */;
8536 val
* var18
/* : String */;
8537 val
* var_c_name
/* var c_name: String */;
8538 val
* var19
/* : SeparateCompilerVisitor */;
8539 val
* var_v
/* var v: SeparateCompilerVisitor */;
8540 val
* var20
/* : NativeArray[String] */;
8541 static val
* varonce
;
8542 static val
* varonce21
;
8543 val
* var22
/* : String */;
8544 char* var23
/* : NativeString */;
8545 val
* var24
/* : FlatString */;
8546 static val
* varonce25
;
8547 val
* var26
/* : String */;
8548 char* var27
/* : NativeString */;
8549 val
* var28
/* : FlatString */;
8550 val
* var29
/* : String */;
8551 val
* var30
/* : String */;
8552 val
* var32
/* : NativeArray[String] */;
8553 static val
* varonce31
;
8554 static val
* varonce33
;
8555 val
* var34
/* : String */;
8556 char* var35
/* : NativeString */;
8557 val
* var36
/* : FlatString */;
8558 val
* var37
/* : String */;
8559 val
* var39
/* : NativeArray[String] */;
8560 static val
* varonce38
;
8561 static val
* varonce40
;
8562 val
* var41
/* : String */;
8563 char* var42
/* : NativeString */;
8564 val
* var43
/* : FlatString */;
8565 static val
* varonce44
;
8566 val
* var45
/* : String */;
8567 char* var46
/* : NativeString */;
8568 val
* var47
/* : FlatString */;
8569 val
* var48
/* : String */;
8570 val
* var50
/* : NativeArray[String] */;
8571 static val
* varonce49
;
8572 static val
* varonce51
;
8573 val
* var52
/* : String */;
8574 char* var53
/* : NativeString */;
8575 val
* var54
/* : FlatString */;
8576 static val
* varonce55
;
8577 val
* var56
/* : String */;
8578 char* var57
/* : NativeString */;
8579 val
* var58
/* : FlatString */;
8580 val
* var59
/* : String */;
8581 val
* var61
/* : NativeArray[String] */;
8582 static val
* varonce60
;
8583 static val
* varonce62
;
8584 val
* var63
/* : String */;
8585 char* var64
/* : NativeString */;
8586 val
* var65
/* : FlatString */;
8587 val
* var66
/* : Map[MType, Int] */;
8588 val
* var68
/* : Map[MType, Int] */;
8589 val
* var69
/* : nullable Object */;
8590 val
* var70
/* : String */;
8591 long var71
/* : Int */;
8592 val
* var72
/* : String */;
8593 static val
* varonce73
;
8594 val
* var74
/* : String */;
8595 char* var75
/* : NativeString */;
8596 val
* var76
/* : FlatString */;
8597 val
* var78
/* : NativeArray[String] */;
8598 static val
* varonce77
;
8599 static val
* varonce79
;
8600 val
* var80
/* : String */;
8601 char* var81
/* : NativeString */;
8602 val
* var82
/* : FlatString */;
8603 static val
* varonce83
;
8604 val
* var84
/* : String */;
8605 char* var85
/* : NativeString */;
8606 val
* var86
/* : FlatString */;
8607 val
* var87
/* : String */;
8608 val
* var88
/* : String */;
8609 val
* var90
/* : NativeArray[String] */;
8610 static val
* varonce89
;
8611 static val
* varonce91
;
8612 val
* var92
/* : String */;
8613 char* var93
/* : NativeString */;
8614 val
* var94
/* : FlatString */;
8615 val
* var95
/* : Map[MType, Int] */;
8616 val
* var97
/* : Map[MType, Int] */;
8617 val
* var98
/* : nullable Object */;
8618 val
* var99
/* : String */;
8619 long var100
/* : Int */;
8620 val
* var101
/* : String */;
8621 static val
* varonce102
;
8622 val
* var103
/* : String */;
8623 char* var104
/* : NativeString */;
8624 val
* var105
/* : FlatString */;
8625 short int var106
/* : Bool */;
8628 static val
* varonce109
;
8629 val
* var110
/* : String */;
8630 char* var111
/* : NativeString */;
8631 val
* var112
/* : FlatString */;
8632 static val
* varonce113
;
8633 val
* var114
/* : String */;
8634 char* var115
/* : NativeString */;
8635 val
* var116
/* : FlatString */;
8636 val
* var117
/* : MType */;
8637 val
* var_mclass_type
/* var mclass_type: MType */;
8638 short int var118
/* : Bool */;
8641 val
* var121
/* : Map[MClassType, Array[nullable MType]] */;
8642 val
* var123
/* : Map[MClassType, Array[nullable MType]] */;
8643 val
* var124
/* : nullable Object */;
8644 short int var125
/* : Bool */;
8645 static val
* varonce126
;
8646 val
* var127
/* : String */;
8647 char* var128
/* : NativeString */;
8648 val
* var129
/* : FlatString */;
8649 val
* var131
/* : NativeArray[String] */;
8650 static val
* varonce130
;
8651 static val
* varonce132
;
8652 val
* var133
/* : String */;
8653 char* var134
/* : NativeString */;
8654 val
* var135
/* : FlatString */;
8655 val
* var136
/* : String */;
8656 val
* var138
/* : NativeArray[String] */;
8657 static val
* varonce137
;
8658 static val
* varonce139
;
8659 val
* var140
/* : String */;
8660 char* var141
/* : NativeString */;
8661 val
* var142
/* : FlatString */;
8662 static val
* varonce143
;
8663 val
* var144
/* : String */;
8664 char* var145
/* : NativeString */;
8665 val
* var146
/* : FlatString */;
8666 val
* var147
/* : String */;
8667 static val
* varonce148
;
8668 val
* var149
/* : String */;
8669 char* var150
/* : NativeString */;
8670 val
* var151
/* : FlatString */;
8671 val
* var153
/* : NativeArray[String] */;
8672 static val
* varonce152
;
8673 static val
* varonce154
;
8674 val
* var155
/* : String */;
8675 char* var156
/* : NativeString */;
8676 val
* var157
/* : FlatString */;
8677 val
* var158
/* : Map[MType, Array[nullable MType]] */;
8678 val
* var160
/* : Map[MType, Array[nullable MType]] */;
8679 val
* var161
/* : nullable Object */;
8680 long var162
/* : Int */;
8681 long var164
/* : Int */;
8682 val
* var165
/* : String */;
8683 val
* var166
/* : String */;
8684 static val
* varonce167
;
8685 val
* var168
/* : String */;
8686 char* var169
/* : NativeString */;
8687 val
* var170
/* : FlatString */;
8688 val
* var171
/* : Map[MType, Array[nullable MType]] */;
8689 val
* var173
/* : Map[MType, Array[nullable MType]] */;
8690 val
* var174
/* : nullable Object */;
8691 val
* var_175
/* var : Array[nullable MType] */;
8692 val
* var176
/* : ArrayIterator[nullable Object] */;
8693 val
* var_177
/* var : ArrayIterator[nullable MType] */;
8694 short int var178
/* : Bool */;
8695 val
* var179
/* : nullable Object */;
8696 val
* var_stype
/* var stype: nullable MType */;
8697 short int var180
/* : Bool */;
8698 short int var181
/* : Bool */;
8699 val
* var_other
/* var other: nullable Object */;
8700 short int var183
/* : Bool */;
8701 short int var185
/* : Bool */;
8702 static val
* varonce186
;
8703 val
* var187
/* : String */;
8704 char* var188
/* : NativeString */;
8705 val
* var189
/* : FlatString */;
8706 val
* var191
/* : NativeArray[String] */;
8707 static val
* varonce190
;
8708 static val
* varonce192
;
8709 val
* var193
/* : String */;
8710 char* var194
/* : NativeString */;
8711 val
* var195
/* : FlatString */;
8712 static val
* varonce196
;
8713 val
* var197
/* : String */;
8714 char* var198
/* : NativeString */;
8715 val
* var199
/* : FlatString */;
8716 val
* var200
/* : Map[MType, Int] */;
8717 val
* var202
/* : Map[MType, Int] */;
8718 val
* var203
/* : nullable Object */;
8719 val
* var204
/* : String */;
8720 long var205
/* : Int */;
8721 val
* var206
/* : String */;
8722 val
* var207
/* : String */;
8723 static val
* varonce208
;
8724 val
* var209
/* : String */;
8725 char* var210
/* : NativeString */;
8726 val
* var211
/* : FlatString */;
8727 static val
* varonce212
;
8728 val
* var213
/* : String */;
8729 char* var214
/* : NativeString */;
8730 val
* var215
/* : FlatString */;
8731 static val
* varonce216
;
8732 val
* var217
/* : String */;
8733 char* var218
/* : NativeString */;
8734 val
* var219
/* : FlatString */;
8737 var
= ((short int(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_mtype
); /* need_anchor on <var_mtype:MType>*/
8740 if (unlikely(!var1
)) {
8741 PRINT_ERROR("Runtime error: %s", "Assert failed");
8742 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 707);
8745 /* <var_mtype:MType> isa MClassType */
8746 cltype
= type_nit__MClassType
.color
;
8747 idtype
= type_nit__MClassType
.id
;
8748 if(cltype
>= var_mtype
->type
->table_size
) {
8751 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
8756 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
8757 var6
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
8763 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8764 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 708);
8767 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var4) on <var4:nullable RapidTypeAnalysis> */
8768 if (unlikely(var4
== NULL
)) {
8769 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8770 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
8773 var9
= var4
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <var4:nullable RapidTypeAnalysis> */
8774 if (unlikely(var9
== NULL
)) {
8775 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
8776 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
8784 var10
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var7
, var_mtype
);
8792 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
8793 var13
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
8795 RET_LABEL12
:(void)0;
8798 if (var11
== NULL
) {
8799 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8800 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 709);
8803 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (var11) on <var11:nullable RapidTypeAnalysis> */
8804 if (unlikely(var11
== NULL
)) {
8805 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8806 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 72);
8809 var16
= var11
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <var11:nullable RapidTypeAnalysis> */
8810 if (unlikely(var16
== NULL
)) {
8811 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
8812 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 72);
8816 RET_LABEL15
:(void)0;
8820 var17
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var14
, var_mtype
);
8822 var_is_cast_live
= var17
;
8824 var18
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model_base__MEntity__c_name
]))(var_mtype
); /* c_name on <var_mtype:MType>*/
8827 var19
= NEW_nit__SeparateCompilerVisitor(&type_nit__SeparateCompilerVisitor
);
8829 ((void(*)(val
* self
, val
* p0
))(var19
->class->vft
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compiler_61d
]))(var19
, self
); /* compiler= on <var19:SeparateCompilerVisitor>*/
8832 ((void(*)(val
* self
))(var19
->class->vft
[COLOR_standard__kernel__Object__init
]))(var19
); /* init on <var19:SeparateCompilerVisitor>*/
8835 if (unlikely(varonce
==NULL
)) {
8836 var20
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
8837 if (likely(varonce21
!=NULL
)) {
8840 var23
= "/* runtime type ";
8841 var24
= standard___standard__NativeString___to_s_with_length(var23
, 16l);
8845 ((struct instance_standard__NativeArray
*)var20
)->values
[0]=var22
;
8846 if (likely(varonce25
!=NULL
)) {
8850 var28
= standard___standard__NativeString___to_s_with_length(var27
, 3l);
8854 ((struct instance_standard__NativeArray
*)var20
)->values
[2]=var26
;
8860 var29
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MType>*/
8862 ((struct instance_standard__NativeArray
*)var20
)->values
[1]=var29
;
8864 var30
= ((val
*(*)(val
* self
))(var20
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var20
); /* native_to_s on <var20:NativeArray[String]>*/
8868 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var30
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8870 if (unlikely(varonce31
==NULL
)) {
8871 var32
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
8872 if (likely(varonce33
!=NULL
)) {
8876 var36
= standard___standard__NativeString___to_s_with_length(var35
, 5l);
8880 ((struct instance_standard__NativeArray
*)var32
)->values
[0]=var34
;
8885 ((struct instance_standard__NativeArray
*)var32
)->values
[1]=var_c_name
;
8887 var37
= ((val
*(*)(val
* self
))(var32
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var32
); /* native_to_s on <var32:NativeArray[String]>*/
8890 if (unlikely(varonce38
==NULL
)) {
8891 var39
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
8892 if (likely(varonce40
!=NULL
)) {
8895 var42
= "extern const struct type type_";
8896 var43
= standard___standard__NativeString___to_s_with_length(var42
, 30l);
8900 ((struct instance_standard__NativeArray
*)var39
)->values
[0]=var41
;
8901 if (likely(varonce44
!=NULL
)) {
8905 var47
= standard___standard__NativeString___to_s_with_length(var46
, 1l);
8909 ((struct instance_standard__NativeArray
*)var39
)->values
[2]=var45
;
8914 ((struct instance_standard__NativeArray
*)var39
)->values
[1]=var_c_name
;
8916 var48
= ((val
*(*)(val
* self
))(var39
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var39
); /* native_to_s on <var39:NativeArray[String]>*/
8920 nit___nit__AbstractCompiler___provide_declaration(self
, var37
, var48
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
8922 if (unlikely(varonce49
==NULL
)) {
8923 var50
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
8924 if (likely(varonce51
!=NULL
)) {
8927 var53
= "const struct type type_";
8928 var54
= standard___standard__NativeString___to_s_with_length(var53
, 23l);
8932 ((struct instance_standard__NativeArray
*)var50
)->values
[0]=var52
;
8933 if (likely(varonce55
!=NULL
)) {
8937 var58
= standard___standard__NativeString___to_s_with_length(var57
, 4l);
8941 ((struct instance_standard__NativeArray
*)var50
)->values
[2]=var56
;
8946 ((struct instance_standard__NativeArray
*)var50
)->values
[1]=var_c_name
;
8948 var59
= ((val
*(*)(val
* self
))(var50
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var50
); /* native_to_s on <var50:NativeArray[String]>*/
8952 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var59
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8954 if (var_is_cast_live
){
8955 if (unlikely(varonce60
==NULL
)) {
8956 var61
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
8957 if (likely(varonce62
!=NULL
)) {
8961 var65
= standard___standard__NativeString___to_s_with_length(var64
, 1l);
8965 ((struct instance_standard__NativeArray
*)var61
)->values
[1]=var63
;
8971 { /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:SeparateCompiler> */
8972 var68
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_ids
].val
; /* _type_ids on <self:SeparateCompiler> */
8973 if (unlikely(var68
== NULL
)) {
8974 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
8975 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 149);
8979 RET_LABEL67
:(void)0;
8983 var69
= ((val
*(*)(val
* self
, val
* p0
))((((long)var66
&3)?class_info
[((long)var66
&3)]:var66
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var66
, var_mtype
); /* [] on <var66:Map[MType, Int]>*/
8985 var71
= (long)(var69
)>>2;
8986 var70
= standard__string___Int___Object__to_s(var71
);
8987 ((struct instance_standard__NativeArray
*)var61
)->values
[0]=var70
;
8989 var72
= ((val
*(*)(val
* self
))(var61
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var61
); /* native_to_s on <var61:NativeArray[String]>*/
8993 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var72
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8996 if (likely(varonce73
!=NULL
)) {
8999 var75
= "-1, /*CAST DEAD*/";
9000 var76
= standard___standard__NativeString___to_s_with_length(var75
, 17l);
9005 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var74
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9008 if (unlikely(varonce77
==NULL
)) {
9009 var78
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
9010 if (likely(varonce79
!=NULL
)) {
9014 var82
= standard___standard__NativeString___to_s_with_length(var81
, 1l);
9018 ((struct instance_standard__NativeArray
*)var78
)->values
[0]=var80
;
9019 if (likely(varonce83
!=NULL
)) {
9022 var85
= "\", /* class_name_string */";
9023 var86
= standard___standard__NativeString___to_s_with_length(var85
, 26l);
9027 ((struct instance_standard__NativeArray
*)var78
)->values
[2]=var84
;
9033 var87
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MType>*/
9035 ((struct instance_standard__NativeArray
*)var78
)->values
[1]=var87
;
9037 var88
= ((val
*(*)(val
* self
))(var78
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var78
); /* native_to_s on <var78:NativeArray[String]>*/
9041 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var88
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9043 if (var_is_cast_live
){
9044 if (unlikely(varonce89
==NULL
)) {
9045 var90
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
9046 if (likely(varonce91
!=NULL
)) {
9050 var94
= standard___standard__NativeString___to_s_with_length(var93
, 1l);
9054 ((struct instance_standard__NativeArray
*)var90
)->values
[1]=var92
;
9060 { /* Inline separate_compiler#SeparateCompiler#type_colors (self) on <self:SeparateCompiler> */
9061 var97
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_colors
].val
; /* _type_colors on <self:SeparateCompiler> */
9062 if (unlikely(var97
== NULL
)) {
9063 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors");
9064 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 150);
9068 RET_LABEL96
:(void)0;
9072 var98
= ((val
*(*)(val
* self
, val
* p0
))((((long)var95
&3)?class_info
[((long)var95
&3)]:var95
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var95
, var_mtype
); /* [] on <var95:Map[MType, Int]>*/
9074 var100
= (long)(var98
)>>2;
9075 var99
= standard__string___Int___Object__to_s(var100
);
9076 ((struct instance_standard__NativeArray
*)var90
)->values
[0]=var99
;
9078 var101
= ((val
*(*)(val
* self
))(var90
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var90
); /* native_to_s on <var90:NativeArray[String]>*/
9082 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var101
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9085 if (likely(varonce102
!=NULL
)) {
9086 var103
= varonce102
;
9088 var104
= "-1, /*CAST DEAD*/";
9089 var105
= standard___standard__NativeString___to_s_with_length(var104
, 17l);
9091 varonce102
= var103
;
9094 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var103
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9097 /* <var_mtype:MType> isa MNullableType */
9098 cltype107
= type_nit__MNullableType
.color
;
9099 idtype108
= type_nit__MNullableType
.id
;
9100 if(cltype107
>= var_mtype
->type
->table_size
) {
9103 var106
= var_mtype
->type
->type_table
[cltype107
] == idtype108
;
9106 if (likely(varonce109
!=NULL
)) {
9107 var110
= varonce109
;
9110 var112
= standard___standard__NativeString___to_s_with_length(var111
, 2l);
9112 varonce109
= var110
;
9115 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var110
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9118 if (likely(varonce113
!=NULL
)) {
9119 var114
= varonce113
;
9122 var116
= standard___standard__NativeString___to_s_with_length(var115
, 2l);
9124 varonce113
= var114
;
9127 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var114
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9132 var117
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__undecorate
]))(var_mtype
); /* undecorate on <var_mtype:MType>*/
9134 var_mclass_type
= var117
;
9135 /* <var_mclass_type:MType> isa MClassType */
9136 cltype119
= type_nit__MClassType
.color
;
9137 idtype120
= type_nit__MClassType
.id
;
9138 if(cltype119
>= var_mclass_type
->type
->table_size
) {
9141 var118
= var_mclass_type
->type
->type_table
[cltype119
] == idtype120
;
9143 if (unlikely(!var118
)) {
9144 PRINT_ERROR("Runtime error: %s", "Assert failed");
9145 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 747);
9149 { /* Inline separate_compiler#SeparateCompiler#resolution_tables (self) on <self:SeparateCompiler> */
9150 var123
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___resolution_tables
].val
; /* _resolution_tables on <self:SeparateCompiler> */
9151 if (unlikely(var123
== NULL
)) {
9152 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _resolution_tables");
9153 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 1052);
9157 RET_LABEL122
:(void)0;
9161 var124
= ((val
*(*)(val
* self
, val
* p0
))((((long)var121
&3)?class_info
[((long)var121
&3)]:var121
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var121
, var_mclass_type
); /* [] on <var121:Map[MClassType, Array[nullable MType]]>*/
9164 var125
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var124
);
9167 if (likely(varonce126
!=NULL
)) {
9168 var127
= varonce126
;
9170 var128
= "NULL, /*NO RESOLUTIONS*/";
9171 var129
= standard___standard__NativeString___to_s_with_length(var128
, 24l);
9173 varonce126
= var127
;
9176 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var127
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9180 nit___nit__SeparateCompiler___compile_type_resolution_table(self
, var_mtype
); /* Direct call separate_compiler#SeparateCompiler#compile_type_resolution_table on <self:SeparateCompiler>*/
9182 if (unlikely(varonce130
==NULL
)) {
9183 var131
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
9184 if (likely(varonce132
!=NULL
)) {
9185 var133
= varonce132
;
9187 var134
= "resolution_table_";
9188 var135
= standard___standard__NativeString___to_s_with_length(var134
, 17l);
9190 varonce132
= var133
;
9192 ((struct instance_standard__NativeArray
*)var131
)->values
[0]=var133
;
9194 var131
= varonce130
;
9197 ((struct instance_standard__NativeArray
*)var131
)->values
[1]=var_c_name
;
9199 var136
= ((val
*(*)(val
* self
))(var131
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var131
); /* native_to_s on <var131:NativeArray[String]>*/
9201 varonce130
= var131
;
9203 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var136
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
9205 if (unlikely(varonce137
==NULL
)) {
9206 var138
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
9207 if (likely(varonce139
!=NULL
)) {
9208 var140
= varonce139
;
9210 var141
= "&resolution_table_";
9211 var142
= standard___standard__NativeString___to_s_with_length(var141
, 18l);
9213 varonce139
= var140
;
9215 ((struct instance_standard__NativeArray
*)var138
)->values
[0]=var140
;
9216 if (likely(varonce143
!=NULL
)) {
9217 var144
= varonce143
;
9220 var146
= standard___standard__NativeString___to_s_with_length(var145
, 1l);
9222 varonce143
= var144
;
9224 ((struct instance_standard__NativeArray
*)var138
)->values
[2]=var144
;
9226 var138
= varonce137
;
9229 ((struct instance_standard__NativeArray
*)var138
)->values
[1]=var_c_name
;
9231 var147
= ((val
*(*)(val
* self
))(var138
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var138
); /* native_to_s on <var138:NativeArray[String]>*/
9233 varonce137
= var138
;
9235 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var147
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9239 if (likely(varonce148
!=NULL
)) {
9240 var149
= varonce148
;
9242 var150
= "NULL, /*DEAD*/";
9243 var151
= standard___standard__NativeString___to_s_with_length(var150
, 14l);
9245 varonce148
= var149
;
9248 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var149
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9252 if (unlikely(varonce152
==NULL
)) {
9253 var153
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
9254 if (likely(varonce154
!=NULL
)) {
9255 var155
= varonce154
;
9258 var157
= standard___standard__NativeString___to_s_with_length(var156
, 1l);
9260 varonce154
= var155
;
9262 ((struct instance_standard__NativeArray
*)var153
)->values
[1]=var155
;
9264 var153
= varonce152
;
9268 { /* Inline separate_compiler#SeparateCompiler#type_tables (self) on <self:SeparateCompiler> */
9269 var160
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_tables
].val
; /* _type_tables on <self:SeparateCompiler> */
9270 if (unlikely(var160
== NULL
)) {
9271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
9272 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 1051);
9276 RET_LABEL159
:(void)0;
9280 var161
= ((val
*(*)(val
* self
, val
* p0
))((((long)var158
&3)?class_info
[((long)var158
&3)]:var158
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var158
, var_mtype
); /* [] on <var158:Map[MType, Array[nullable MType]]>*/
9283 { /* Inline array#AbstractArrayRead#length (var161) on <var161:nullable Object(Array[nullable MType])> */
9284 var164
= var161
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var161:nullable Object(Array[nullable MType])> */
9286 RET_LABEL163
:(void)0;
9289 var165
= standard__string___Int___Object__to_s(var162
);
9290 ((struct instance_standard__NativeArray
*)var153
)->values
[0]=var165
;
9292 var166
= ((val
*(*)(val
* self
))(var153
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var153
); /* native_to_s on <var153:NativeArray[String]>*/
9294 varonce152
= var153
;
9296 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var166
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9298 if (likely(varonce167
!=NULL
)) {
9299 var168
= varonce167
;
9302 var170
= standard___standard__NativeString___to_s_with_length(var169
, 1l);
9304 varonce167
= var168
;
9307 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var168
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9310 { /* Inline separate_compiler#SeparateCompiler#type_tables (self) on <self:SeparateCompiler> */
9311 var173
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_tables
].val
; /* _type_tables on <self:SeparateCompiler> */
9312 if (unlikely(var173
== NULL
)) {
9313 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
9314 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 1051);
9318 RET_LABEL172
:(void)0;
9322 var174
= ((val
*(*)(val
* self
, val
* p0
))((((long)var171
&3)?class_info
[((long)var171
&3)]:var171
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var171
, var_mtype
); /* [] on <var171:Map[MType, Array[nullable MType]]>*/
9326 var176
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_175
);
9331 var178
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_177
);
9335 var179
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_177
);
9338 if (var_stype
== NULL
) {
9339 var180
= 1; /* is null */
9341 var180
= 0; /* arg is null but recv is not */
9344 { /* Inline kernel#Object#== (var_stype,((val*)NULL)) on <var_stype:nullable MType> */
9345 var_other
= ((val
*)NULL
);
9347 { /* Inline kernel#Object#is_same_instance (var_stype,var_other) on <var_stype:nullable MType(MType)> */
9348 var185
= var_stype
== var_other
;
9351 RET_LABEL184
:(void)0;
9356 RET_LABEL182
:(void)0;
9361 if (likely(varonce186
!=NULL
)) {
9362 var187
= varonce186
;
9364 var188
= "-1, /* empty */";
9365 var189
= standard___standard__NativeString___to_s_with_length(var188
, 15l);
9367 varonce186
= var187
;
9370 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var187
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9373 if (unlikely(varonce190
==NULL
)) {
9374 var191
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
9375 if (likely(varonce192
!=NULL
)) {
9376 var193
= varonce192
;
9379 var195
= standard___standard__NativeString___to_s_with_length(var194
, 5l);
9381 varonce192
= var193
;
9383 ((struct instance_standard__NativeArray
*)var191
)->values
[1]=var193
;
9384 if (likely(varonce196
!=NULL
)) {
9385 var197
= varonce196
;
9388 var199
= standard___standard__NativeString___to_s_with_length(var198
, 3l);
9390 varonce196
= var197
;
9392 ((struct instance_standard__NativeArray
*)var191
)->values
[3]=var197
;
9394 var191
= varonce190
;
9398 { /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:SeparateCompiler> */
9399 var202
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___type_ids
].val
; /* _type_ids on <self:SeparateCompiler> */
9400 if (unlikely(var202
== NULL
)) {
9401 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
9402 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 149);
9406 RET_LABEL201
:(void)0;
9410 var203
= ((val
*(*)(val
* self
, val
* p0
))((((long)var200
&3)?class_info
[((long)var200
&3)]:var200
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var200
, var_stype
); /* [] on <var200:Map[MType, Int]>*/
9412 var205
= (long)(var203
)>>2;
9413 var204
= standard__string___Int___Object__to_s(var205
);
9414 ((struct instance_standard__NativeArray
*)var191
)->values
[0]=var204
;
9416 var206
= ((val
*(*)(val
* self
))(var_stype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_stype
); /* to_s on <var_stype:nullable MType(MType)>*/
9418 ((struct instance_standard__NativeArray
*)var191
)->values
[2]=var206
;
9420 var207
= ((val
*(*)(val
* self
))(var191
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var191
); /* native_to_s on <var191:NativeArray[String]>*/
9422 varonce190
= var191
;
9424 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var207
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9428 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_177
); /* Direct call array#ArrayIterator#next on <var_177:ArrayIterator[nullable MType]>*/
9434 BREAK_label
: (void)0;
9436 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_177
); /* Direct call array#ArrayIterator#finish on <var_177:ArrayIterator[nullable MType]>*/
9438 if (likely(varonce208
!=NULL
)) {
9439 var209
= varonce208
;
9442 var211
= standard___standard__NativeString___to_s_with_length(var210
, 2l);
9444 varonce208
= var209
;
9447 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var209
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9450 if (likely(varonce212
!=NULL
)) {
9451 var213
= varonce212
;
9453 var214
= "-1, {}, /*DEAD TYPE*/";
9454 var215
= standard___standard__NativeString___to_s_with_length(var214
, 21l);
9456 varonce212
= var213
;
9459 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var213
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9462 if (likely(varonce216
!=NULL
)) {
9463 var217
= varonce216
;
9466 var219
= standard___standard__NativeString___to_s_with_length(var218
, 2l);
9468 varonce216
= var217
;
9471 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var217
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/