1 #include "nitc__separate_compiler.sep.0.h"
2 /* method separate_compiler#ToolContext#opt_separate for (self: ToolContext): OptionBool */
3 val
* nitc__separate_compiler___ToolContext___opt_separate(val
* self
) {
4 val
* var
/* : OptionBool */;
5 val
* var1
/* : OptionBool */;
6 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 24);
16 /* method separate_compiler#ToolContext#opt_no_inline_intern for (self: ToolContext): OptionBool */
17 val
* nitc__separate_compiler___ToolContext___opt_no_inline_intern(val
* self
) {
18 val
* var
/* : OptionBool */;
19 val
* var1
/* : OptionBool */;
20 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 26);
30 /* method separate_compiler#ToolContext#opt_no_union_attribute for (self: ToolContext): OptionBool */
31 val
* nitc__separate_compiler___ToolContext___opt_no_union_attribute(val
* self
) {
32 val
* var
/* : OptionBool */;
33 val
* var1
/* : OptionBool */;
34 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 28);
44 /* method separate_compiler#ToolContext#opt_no_shortcut_equate for (self: ToolContext): OptionBool */
45 val
* nitc__separate_compiler___ToolContext___opt_no_shortcut_equate(val
* self
) {
46 val
* var
/* : OptionBool */;
47 val
* var1
/* : OptionBool */;
48 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 30);
58 /* method separate_compiler#ToolContext#opt_no_tag_primitives for (self: ToolContext): OptionBool */
59 val
* nitc__separate_compiler___ToolContext___opt_no_tag_primitives(val
* self
) {
60 val
* var
/* : OptionBool */;
61 val
* var1
/* : OptionBool */;
62 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 32);
72 /* method separate_compiler#ToolContext#opt_colors_are_symbols for (self: ToolContext): OptionBool */
73 val
* nitc__separate_compiler___ToolContext___opt_colors_are_symbols(val
* self
) {
74 val
* var
/* : OptionBool */;
75 val
* var1
/* : OptionBool */;
76 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 35);
86 /* method separate_compiler#ToolContext#opt_trampoline_call for (self: ToolContext): OptionBool */
87 val
* nitc__separate_compiler___ToolContext___opt_trampoline_call(val
* self
) {
88 val
* var
/* : OptionBool */;
89 val
* var1
/* : OptionBool */;
90 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 37);
100 /* method separate_compiler#ToolContext#opt_guard_call for (self: ToolContext): OptionBool */
101 val
* nitc__separate_compiler___ToolContext___opt_guard_call(val
* self
) {
102 val
* var
/* : OptionBool */;
103 val
* var1
/* : OptionBool */;
104 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 39);
114 /* method separate_compiler#ToolContext#opt_substitute_monomorph for (self: ToolContext): OptionBool */
115 val
* nitc__separate_compiler___ToolContext___opt_substitute_monomorph(val
* self
) {
116 val
* var
/* : OptionBool */;
117 val
* var1
/* : OptionBool */;
118 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 41);
128 /* method separate_compiler#ToolContext#opt_link_boost for (self: ToolContext): OptionBool */
129 val
* nitc__separate_compiler___ToolContext___opt_link_boost(val
* self
) {
130 val
* var
/* : OptionBool */;
131 val
* var1
/* : OptionBool */;
132 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 43);
142 /* method separate_compiler#ToolContext#opt_inline_coloring_numbers for (self: ToolContext): OptionBool */
143 val
* nitc__separate_compiler___ToolContext___opt_inline_coloring_numbers(val
* self
) {
144 val
* var
/* : OptionBool */;
145 val
* var1
/* : OptionBool */;
146 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 46);
156 /* method separate_compiler#ToolContext#opt_inline_some_methods for (self: ToolContext): OptionBool */
157 val
* nitc__separate_compiler___ToolContext___opt_inline_some_methods(val
* self
) {
158 val
* var
/* : OptionBool */;
159 val
* var1
/* : OptionBool */;
160 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 48);
170 /* method separate_compiler#ToolContext#opt_direct_call_monomorph for (self: ToolContext): OptionBool */
171 val
* nitc__separate_compiler___ToolContext___opt_direct_call_monomorph(val
* self
) {
172 val
* var
/* : OptionBool */;
173 val
* var1
/* : OptionBool */;
174 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 50);
184 /* method separate_compiler#ToolContext#opt_direct_call_monomorph0 for (self: ToolContext): OptionBool */
185 val
* nitc__separate_compiler___ToolContext___opt_direct_call_monomorph0(val
* self
) {
186 val
* var
/* : OptionBool */;
187 val
* var1
/* : OptionBool */;
188 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 52);
198 /* method separate_compiler#ToolContext#opt_skip_dead_methods for (self: ToolContext): OptionBool */
199 val
* nitc__separate_compiler___ToolContext___opt_skip_dead_methods(val
* self
) {
200 val
* var
/* : OptionBool */;
201 val
* var1
/* : OptionBool */;
202 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 54);
212 /* method separate_compiler#ToolContext#opt_semi_global for (self: ToolContext): OptionBool */
213 val
* nitc__separate_compiler___ToolContext___opt_semi_global(val
* self
) {
214 val
* var
/* : OptionBool */;
215 val
* var1
/* : OptionBool */;
216 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 56);
226 /* method separate_compiler#ToolContext#opt_colo_dead_methods for (self: ToolContext): OptionBool */
227 val
* nitc__separate_compiler___ToolContext___opt_colo_dead_methods(val
* self
) {
228 val
* var
/* : OptionBool */;
229 val
* var1
/* : OptionBool */;
230 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 58);
240 /* method separate_compiler#ToolContext#opt_tables_metrics for (self: ToolContext): OptionBool */
241 val
* nitc__separate_compiler___ToolContext___opt_tables_metrics(val
* self
) {
242 val
* var
/* : OptionBool */;
243 val
* var1
/* : OptionBool */;
244 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 60);
254 /* method separate_compiler#ToolContext#opt_type_poset for (self: ToolContext): OptionBool */
255 val
* nitc__separate_compiler___ToolContext___opt_type_poset(val
* self
) {
256 val
* var
/* : OptionBool */;
257 val
* var1
/* : OptionBool */;
258 var1
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 62);
268 /* method separate_compiler#ToolContext#init for (self: ToolContext) */
269 void nitc__separate_compiler___ToolContext___core__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_nitc__separate_compiler___ToolContext___core__kernel__Object__init
]))(self
); /* init on <self:ToolContext>*/
352 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
353 var2
= self
->attrs
[COLOR_nitc__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_nitc__toolcontext
, 342);
364 { /* Inline separate_compiler#ToolContext#opt_separate (self) on <self:ToolContext> */
365 var5
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 24);
375 var6
= NEW_core__Array(&type_core__Array__opts__Option
);
376 { /* var6 = array_instance Array[Option] */
377 var7
= NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option
);
378 ((struct instance_core__NativeArray
*)var7
)->values
[0] = (val
*) var3
;
380 ((void(*)(val
* self
, val
* p0
, long p1
))(var6
->class->vft
[COLOR_core__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_nitc__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_nitc__toolcontext
, 342);
399 { /* Inline separate_compiler#ToolContext#opt_no_inline_intern (self) on <self:ToolContext> */
400 var13
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 26);
410 var14
= NEW_core__Array(&type_core__Array__opts__Option
);
411 { /* var14 = array_instance Array[Option] */
412 var15
= NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option
);
413 ((struct instance_core__NativeArray
*)var15
)->values
[0] = (val
*) var11
;
415 ((void(*)(val
* self
, val
* p0
, long p1
))(var14
->class->vft
[COLOR_core__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_nitc__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_nitc__toolcontext
, 342);
434 { /* Inline separate_compiler#ToolContext#opt_no_union_attribute (self) on <self:ToolContext> */
435 var21
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 28);
445 var22
= NEW_core__Array(&type_core__Array__opts__Option
);
446 { /* var22 = array_instance Array[Option] */
447 var23
= NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option
);
448 ((struct instance_core__NativeArray
*)var23
)->values
[0] = (val
*) var19
;
450 ((void(*)(val
* self
, val
* p0
, long p1
))(var22
->class->vft
[COLOR_core__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_nitc__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_nitc__toolcontext
, 342);
469 { /* Inline separate_compiler#ToolContext#opt_no_shortcut_equate (self) on <self:ToolContext> */
470 var29
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 30);
480 var30
= NEW_core__Array(&type_core__Array__opts__Option
);
481 { /* var30 = array_instance Array[Option] */
482 var31
= NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option
);
483 ((struct instance_core__NativeArray
*)var31
)->values
[0] = (val
*) var27
;
485 ((void(*)(val
* self
, val
* p0
, long p1
))(var30
->class->vft
[COLOR_core__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_nitc__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_nitc__toolcontext
, 342);
504 { /* Inline separate_compiler#ToolContext#opt_no_tag_primitives (self) on <self:ToolContext> */
505 var37
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 32);
515 var38
= NEW_core__Array(&type_core__Array__opts__Option
);
516 { /* var38 = array_instance Array[Option] */
517 var39
= NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option
);
518 ((struct instance_core__NativeArray
*)var39
)->values
[0] = (val
*) var35
;
520 ((void(*)(val
* self
, val
* p0
, long p1
))(var38
->class->vft
[COLOR_core__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_nitc__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_nitc__toolcontext
, 342);
539 { /* Inline separate_compiler#ToolContext#opt_colors_are_symbols (self) on <self:ToolContext> */
540 var45
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 35);
551 { /* Inline separate_compiler#ToolContext#opt_trampoline_call (self) on <self:ToolContext> */
552 var48
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 37);
563 { /* Inline separate_compiler#ToolContext#opt_guard_call (self) on <self:ToolContext> */
564 var51
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 39);
575 { /* Inline separate_compiler#ToolContext#opt_direct_call_monomorph0 (self) on <self:ToolContext> */
576 var54
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 52);
587 { /* Inline separate_compiler#ToolContext#opt_substitute_monomorph (self) on <self:ToolContext> */
588 var57
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 41);
599 { /* Inline separate_compiler#ToolContext#opt_link_boost (self) on <self:ToolContext> */
600 var60
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 43);
610 var61
= NEW_core__Array(&type_core__Array__opts__Option
);
611 { /* var61 = array_instance Array[Option] */
612 var62
= NEW_core__NativeArray(6l, &type_core__NativeArray__opts__Option
);
613 ((struct instance_core__NativeArray
*)var62
)->values
[0] = (val
*) var43
;
614 ((struct instance_core__NativeArray
*)var62
)->values
[1] = (val
*) var46
;
615 ((struct instance_core__NativeArray
*)var62
)->values
[2] = (val
*) var49
;
616 ((struct instance_core__NativeArray
*)var62
)->values
[3] = (val
*) var52
;
617 ((struct instance_core__NativeArray
*)var62
)->values
[4] = (val
*) var55
;
618 ((struct instance_core__NativeArray
*)var62
)->values
[5] = (val
*) var58
;
620 ((void(*)(val
* self
, val
* p0
, long p1
))(var61
->class->vft
[COLOR_core__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_nitc__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_nitc__toolcontext
, 342);
639 { /* Inline separate_compiler#ToolContext#opt_inline_coloring_numbers (self) on <self:ToolContext> */
640 var68
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 46);
651 { /* Inline separate_compiler#ToolContext#opt_inline_some_methods (self) on <self:ToolContext> */
652 var71
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 48);
663 { /* Inline separate_compiler#ToolContext#opt_direct_call_monomorph (self) on <self:ToolContext> */
664 var74
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 50);
675 { /* Inline separate_compiler#ToolContext#opt_skip_dead_methods (self) on <self:ToolContext> */
676 var77
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 54);
687 { /* Inline separate_compiler#ToolContext#opt_semi_global (self) on <self:ToolContext> */
688 var80
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 56);
698 var81
= NEW_core__Array(&type_core__Array__opts__Option
);
699 { /* var81 = array_instance Array[Option] */
700 var82
= NEW_core__NativeArray(5l, &type_core__NativeArray__opts__Option
);
701 ((struct instance_core__NativeArray
*)var82
)->values
[0] = (val
*) var66
;
702 ((struct instance_core__NativeArray
*)var82
)->values
[1] = (val
*) var69
;
703 ((struct instance_core__NativeArray
*)var82
)->values
[2] = (val
*) var72
;
704 ((struct instance_core__NativeArray
*)var82
)->values
[3] = (val
*) var75
;
705 ((struct instance_core__NativeArray
*)var82
)->values
[4] = (val
*) var78
;
707 ((void(*)(val
* self
, val
* p0
, long p1
))(var81
->class->vft
[COLOR_core__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_nitc__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_nitc__toolcontext
, 342);
726 { /* Inline separate_compiler#ToolContext#opt_colo_dead_methods (self) on <self:ToolContext> */
727 var88
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 58);
737 var89
= NEW_core__Array(&type_core__Array__opts__Option
);
738 { /* var89 = array_instance Array[Option] */
739 var90
= NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option
);
740 ((struct instance_core__NativeArray
*)var90
)->values
[0] = (val
*) var86
;
742 ((void(*)(val
* self
, val
* p0
, long p1
))(var89
->class->vft
[COLOR_core__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_nitc__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_nitc__toolcontext
, 342);
761 { /* Inline separate_compiler#ToolContext#opt_tables_metrics (self) on <self:ToolContext> */
762 var96
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 60);
772 var97
= NEW_core__Array(&type_core__Array__opts__Option
);
773 { /* var97 = array_instance Array[Option] */
774 var98
= NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option
);
775 ((struct instance_core__NativeArray
*)var98
)->values
[0] = (val
*) var94
;
777 ((void(*)(val
* self
, val
* p0
, long p1
))(var97
->class->vft
[COLOR_core__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_nitc__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_nitc__toolcontext
, 342);
792 RET_LABEL100
:(void)0;
796 { /* Inline separate_compiler#ToolContext#opt_type_poset (self) on <self:ToolContext> */
797 var104
= self
->attrs
[COLOR_nitc__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_nitc__separate_compiler
, 62);
804 RET_LABEL103
:(void)0;
807 var105
= NEW_core__Array(&type_core__Array__opts__Option
);
808 { /* var105 = array_instance Array[Option] */
809 var106
= NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option
);
810 ((struct instance_core__NativeArray
*)var106
)->values
[0] = (val
*) var102
;
812 ((void(*)(val
* self
, val
* p0
, long p1
))(var105
->class->vft
[COLOR_core__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 nitc__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_nitc__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_nitc__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_nitc__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_nitc__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_nitc__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_core__Bool
)->table_size
) {
943 var11
= (&type_core__Bool
)->type_table
[cltype
] == idtype
;
945 if (unlikely(!var11
)) {
946 var_class_name
= type_core__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_nitc__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_nitc__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_core__Bool
)->table_size
) {
978 var17
= (&type_core__Bool
)->type_table
[cltype18
] == idtype19
;
980 if (unlikely(!var17
)) {
981 var_class_name21
= type_core__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_nitc__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_nitc__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_core__Bool
)->table_size
) {
1013 var27
= (&type_core__Bool
)->type_table
[cltype28
] == idtype29
;
1015 if (unlikely(!var27
)) {
1016 var_class_name31
= type_core__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_nitc__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_nitc__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_core__Bool
)->table_size
) {
1048 var37
= (&type_core__Bool
)->type_table
[cltype38
] == idtype39
;
1050 if (unlikely(!var37
)) {
1051 var_class_name41
= type_core__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_nitc__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_nitc__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_nitc__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_nitc__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_core__Bool
)->table_size
) {
1106 var54
= (&type_core__Bool
)->type_table
[cltype55
] == idtype56
;
1108 if (unlikely(!var54
)) {
1109 var_class_name58
= type_core__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_nitc__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_nitc__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_core__Bool
)->table_size
) {
1141 var64
= (&type_core__Bool
)->type_table
[cltype65
] == idtype66
;
1143 if (unlikely(!var64
)) {
1144 var_class_name68
= type_core__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_nitc__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_nitc__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_nitc__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_nitc__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_core__Bool
)->table_size
) {
1199 var81
= (&type_core__Bool
)->type_table
[cltype82
] == idtype83
;
1201 if (unlikely(!var81
)) {
1202 var_class_name85
= type_core__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 nitc___nitc__SeparateCompilerPhase___nitc__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_nitc__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_nitc__phase
, 200);
1249 { /* Inline separate_compiler#ToolContext#opt_separate (var) on <var:ToolContext> */
1250 var5
= var
->attrs
[COLOR_nitc__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_nitc__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_nitc__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_nitc__phase
, 200);
1282 RET_LABEL12
:(void)0;
1286 var14
= nitc__modelbuilder_base___ToolContext___modelbuilder(var11
);
1288 var_modelbuilder
= var14
;
1290 var15
= nitc__rapid_type_analysis___ModelBuilder___do_rapid_type_analysis(var_modelbuilder
, var_mainmodule
);
1292 var_analysis
= var15
;
1294 nitc__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 nitc__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 val
* var
/* : Sys */;
1303 long var1
/* : Int */;
1304 long var3
/* : Int */;
1305 long var_time0
/* var time0: Int */;
1306 val
* var4
/* : ToolContext */;
1307 val
* var6
/* : ToolContext */;
1308 static val
* varonce
;
1309 val
* var7
/* : String */;
1310 char* var8
/* : NativeString */;
1311 val
* var9
/* : String */;
1312 val
* var10
/* : SeparateCompiler */;
1313 val
* var_compiler
/* var compiler: SeparateCompiler */;
1314 val
* var11
/* : Sys */;
1315 long var12
/* : Int */;
1316 long var14
/* : Int */;
1317 long var_time1
/* var time1: Int */;
1318 val
* var15
/* : ToolContext */;
1319 val
* var17
/* : ToolContext */;
1320 val
* var19
/* : NativeArray[String] */;
1321 static val
* varonce18
;
1322 static val
* varonce20
;
1323 val
* var21
/* : String */;
1324 char* var22
/* : NativeString */;
1325 val
* var23
/* : String */;
1326 static val
* varonce24
;
1327 val
* var25
/* : String */;
1328 char* var26
/* : NativeString */;
1329 val
* var27
/* : String */;
1330 long var28
/* : Int */;
1331 short int var30
/* : Bool */;
1334 const char* var_class_name
;
1335 long var31
/* : Int */;
1336 val
* var32
/* : String */;
1337 val
* var33
/* : String */;
1338 var_mainmodule
= p0
;
1339 var_runtime_type_analysis
= p1
;
1342 { /* Inline time#Sys#get_time (var) on <var:Sys> */
1343 struct nitni_instance
* var_for_c_0
;
1344 var_for_c_0
= nit_alloc(sizeof(struct nitni_instance
));
1345 var_for_c_0
->value
= var
;
1346 var3
= time___Sys_get_time___impl(var_for_c_0
);
1354 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1355 var6
= self
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1356 if (unlikely(var6
== NULL
)) {
1357 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1358 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
1365 if (likely(varonce
!=NULL
)) {
1368 var8
= "*** GENERATING C ***";
1369 var9
= core__flat___NativeString___to_s_full(var8
, 20l, 20l);
1374 nitc___nitc__ToolContext___info(var4
, var7
, 1l); /* Direct call toolcontext#ToolContext#info on <var4:ToolContext>*/
1376 var10
= NEW_nitc__SeparateCompiler(&type_nitc__SeparateCompiler
);
1378 ((void(*)(val
* self
, val
* p0
))(var10
->class->vft
[COLOR_nitc__abstract_compiler__AbstractCompiler__mainmodule_61d
]))(var10
, var_mainmodule
); /* mainmodule= on <var10:SeparateCompiler>*/
1381 ((void(*)(val
* self
, val
* p0
))(var10
->class->vft
[COLOR_nitc__abstract_compiler__AbstractCompiler__modelbuilder_61d
]))(var10
, self
); /* modelbuilder= on <var10:SeparateCompiler>*/
1384 ((void(*)(val
* self
, val
* p0
))(var10
->class->vft
[COLOR_nitc__separate_compiler__SeparateCompiler__runtime_type_analysis_61d
]))(var10
, var_runtime_type_analysis
); /* runtime_type_analysis= on <var10:SeparateCompiler>*/
1387 ((void(*)(val
* self
))(var10
->class->vft
[COLOR_core__kernel__Object__init
]))(var10
); /* init on <var10:SeparateCompiler>*/
1389 var_compiler
= var10
;
1391 nitc___nitc__SeparateCompiler___nitc__abstract_compiler__AbstractCompiler__do_compilation(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#do_compilation on <var_compiler:SeparateCompiler>*/
1394 nitc___nitc__SeparateCompiler___nitc__abstract_compiler__AbstractCompiler__display_stats(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#display_stats on <var_compiler:SeparateCompiler>*/
1398 { /* Inline time#Sys#get_time (var11) on <var11:Sys> */
1399 struct nitni_instance
* var_for_c_0
;
1400 var_for_c_0
= nit_alloc(sizeof(struct nitni_instance
));
1401 var_for_c_0
->value
= var11
;
1402 var14
= time___Sys_get_time___impl(var_for_c_0
);
1405 RET_LABEL13
:(void)0;
1410 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1411 var17
= self
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
1412 if (unlikely(var17
== NULL
)) {
1413 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1414 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
1418 RET_LABEL16
:(void)0;
1421 if (unlikely(varonce18
==NULL
)) {
1422 var19
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
1423 if (likely(varonce20
!=NULL
)) {
1426 var22
= "*** END GENERATING C: ";
1427 var23
= core__flat___NativeString___to_s_full(var22
, 22l, 22l);
1431 ((struct instance_core__NativeArray
*)var19
)->values
[0]=var21
;
1432 if (likely(varonce24
!=NULL
)) {
1436 var27
= core__flat___NativeString___to_s_full(var26
, 4l, 4l);
1440 ((struct instance_core__NativeArray
*)var19
)->values
[2]=var25
;
1446 { /* Inline kernel#Int#- (var_time1,var_time0) on <var_time1:Int> */
1447 /* Covariant cast for argument 0 (i) <var_time0:Int> isa OTHER */
1448 /* <var_time0:Int> isa OTHER */
1449 var30
= 1; /* easy <var_time0:Int> isa OTHER*/
1450 if (unlikely(!var30
)) {
1451 var_class_name
= type_core__Int
.name
;
1452 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1453 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 734);
1456 var31
= var_time1
- var_time0
;
1459 RET_LABEL29
:(void)0;
1462 var32
= core__flat___Int___core__abstract_text__Object__to_s(var28
);
1463 ((struct instance_core__NativeArray
*)var19
)->values
[1]=var32
;
1465 var33
= ((val
*(*)(val
* self
))(var19
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var19
); /* native_to_s on <var19:NativeArray[String]>*/
1469 nitc___nitc__ToolContext___info(var15
, var33
, 2l); /* Direct call toolcontext#ToolContext#info on <var15:ToolContext>*/
1472 nitc__abstract_compiler___ModelBuilder___write_and_make(self
, var_compiler
); /* Direct call abstract_compiler#ModelBuilder#write_and_make on <self:ModelBuilder>*/
1476 /* method separate_compiler#ModelBuilder#nb_invok_by_tables for (self: ModelBuilder): Int */
1477 long nitc__separate_compiler___ModelBuilder___nb_invok_by_tables(val
* self
) {
1478 long var
/* : Int */;
1479 long var1
/* : Int */;
1480 var1
= self
->attrs
[COLOR_nitc__separate_compiler__ModelBuilder___nb_invok_by_tables
].l
; /* _nb_invok_by_tables on <self:ModelBuilder> */
1485 /* method separate_compiler#ModelBuilder#nb_invok_by_tables= for (self: ModelBuilder, Int) */
1486 void nitc__separate_compiler___ModelBuilder___nb_invok_by_tables_61d(val
* self
, long p0
) {
1487 self
->attrs
[COLOR_nitc__separate_compiler__ModelBuilder___nb_invok_by_tables
].l
= p0
; /* _nb_invok_by_tables on <self:ModelBuilder> */
1490 /* method separate_compiler#ModelBuilder#nb_invok_by_direct for (self: ModelBuilder): Int */
1491 long nitc__separate_compiler___ModelBuilder___nb_invok_by_direct(val
* self
) {
1492 long var
/* : Int */;
1493 long var1
/* : Int */;
1494 var1
= self
->attrs
[COLOR_nitc__separate_compiler__ModelBuilder___nb_invok_by_direct
].l
; /* _nb_invok_by_direct on <self:ModelBuilder> */
1499 /* method separate_compiler#ModelBuilder#nb_invok_by_direct= for (self: ModelBuilder, Int) */
1500 void nitc__separate_compiler___ModelBuilder___nb_invok_by_direct_61d(val
* self
, long p0
) {
1501 self
->attrs
[COLOR_nitc__separate_compiler__ModelBuilder___nb_invok_by_direct
].l
= p0
; /* _nb_invok_by_direct on <self:ModelBuilder> */
1504 /* method separate_compiler#ModelBuilder#nb_invok_by_inline for (self: ModelBuilder): Int */
1505 long nitc__separate_compiler___ModelBuilder___nb_invok_by_inline(val
* self
) {
1506 long var
/* : Int */;
1507 long var1
/* : Int */;
1508 var1
= self
->attrs
[COLOR_nitc__separate_compiler__ModelBuilder___nb_invok_by_inline
].l
; /* _nb_invok_by_inline on <self:ModelBuilder> */
1513 /* method separate_compiler#ModelBuilder#nb_invok_by_inline= for (self: ModelBuilder, Int) */
1514 void nitc__separate_compiler___ModelBuilder___nb_invok_by_inline_61d(val
* self
, long p0
) {
1515 self
->attrs
[COLOR_nitc__separate_compiler__ModelBuilder___nb_invok_by_inline
].l
= p0
; /* _nb_invok_by_inline on <self:ModelBuilder> */
1518 /* method separate_compiler#SeparateCompiler#runtime_type_analysis for (self: SeparateCompiler): nullable RapidTypeAnalysis */
1519 val
* nitc___nitc__SeparateCompiler___runtime_type_analysis(val
* self
) {
1520 val
* var
/* : nullable RapidTypeAnalysis */;
1521 val
* var1
/* : nullable RapidTypeAnalysis */;
1522 var1
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
1527 /* method separate_compiler#SeparateCompiler#runtime_type_analysis= for (self: SeparateCompiler, nullable RapidTypeAnalysis) */
1528 void nitc___nitc__SeparateCompiler___runtime_type_analysis_61d(val
* self
, val
* p0
) {
1529 self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
= p0
; /* _runtime_type_analysis on <self:SeparateCompiler> */
1532 /* method separate_compiler#SeparateCompiler#undead_types for (self: SeparateCompiler): Set[MType] */
1533 val
* nitc___nitc__SeparateCompiler___undead_types(val
* self
) {
1534 val
* var
/* : Set[MType] */;
1535 val
* var1
/* : Set[MType] */;
1536 var1
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___undead_types
].val
; /* _undead_types on <self:SeparateCompiler> */
1537 if (unlikely(var1
== NULL
)) {
1538 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
1539 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 146);
1546 /* method separate_compiler#SeparateCompiler#live_unresolved_types for (self: SeparateCompiler): Map[MClassDef, Set[MType]] */
1547 val
* nitc___nitc__SeparateCompiler___live_unresolved_types(val
* self
) {
1548 val
* var
/* : Map[MClassDef, Set[MType]] */;
1549 val
* var1
/* : Map[MClassDef, Set[MType]] */;
1550 var1
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <self:SeparateCompiler> */
1551 if (unlikely(var1
== NULL
)) {
1552 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
1553 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 147);
1560 /* method separate_compiler#SeparateCompiler#type_ids for (self: SeparateCompiler): Map[MType, Int] */
1561 val
* nitc___nitc__SeparateCompiler___type_ids(val
* self
) {
1562 val
* var
/* : Map[MType, Int] */;
1563 val
* var1
/* : Map[MType, Int] */;
1564 var1
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids
].val
; /* _type_ids on <self:SeparateCompiler> */
1565 if (unlikely(var1
== NULL
)) {
1566 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
1567 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 149);
1574 /* method separate_compiler#SeparateCompiler#type_ids= for (self: SeparateCompiler, Map[MType, Int]) */
1575 void nitc___nitc__SeparateCompiler___type_ids_61d(val
* self
, val
* p0
) {
1576 self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids
].val
= p0
; /* _type_ids on <self:SeparateCompiler> */
1579 /* method separate_compiler#SeparateCompiler#type_colors for (self: SeparateCompiler): Map[MType, Int] */
1580 val
* nitc___nitc__SeparateCompiler___type_colors(val
* self
) {
1581 val
* var
/* : Map[MType, Int] */;
1582 val
* var1
/* : Map[MType, Int] */;
1583 var1
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_colors
].val
; /* _type_colors on <self:SeparateCompiler> */
1584 if (unlikely(var1
== NULL
)) {
1585 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors");
1586 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 150);
1593 /* method separate_compiler#SeparateCompiler#type_colors= for (self: SeparateCompiler, Map[MType, Int]) */
1594 void nitc___nitc__SeparateCompiler___type_colors_61d(val
* self
, val
* p0
) {
1595 self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_colors
].val
= p0
; /* _type_colors on <self:SeparateCompiler> */
1598 /* method separate_compiler#SeparateCompiler#opentype_colors for (self: SeparateCompiler): Map[MType, Int] */
1599 val
* nitc___nitc__SeparateCompiler___opentype_colors(val
* self
) {
1600 val
* var
/* : Map[MType, Int] */;
1601 val
* var1
/* : Map[MType, Int] */;
1602 var1
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___opentype_colors
].val
; /* _opentype_colors on <self:SeparateCompiler> */
1603 if (unlikely(var1
== NULL
)) {
1604 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
1605 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 151);
1612 /* method separate_compiler#SeparateCompiler#opentype_colors= for (self: SeparateCompiler, Map[MType, Int]) */
1613 void nitc___nitc__SeparateCompiler___opentype_colors_61d(val
* self
, val
* p0
) {
1614 self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___opentype_colors
].val
= p0
; /* _opentype_colors on <self:SeparateCompiler> */
1617 /* method separate_compiler#SeparateCompiler#init for (self: SeparateCompiler) */
1618 void nitc___nitc__SeparateCompiler___core__kernel__Object__init(val
* self
) {
1619 static val
* varonce
;
1620 val
* var
/* : String */;
1621 char* var1
/* : NativeString */;
1622 val
* var2
/* : String */;
1623 val
* var3
/* : CodeFile */;
1624 val
* var_file
/* var file: CodeFile */;
1625 val
* var4
/* : CodeWriter */;
1627 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc___nitc__SeparateCompiler___core__kernel__Object__init
]))(self
); /* init on <self:SeparateCompiler>*/
1629 if (likely(varonce
!=NULL
)) {
1632 var1
= "nit.common";
1633 var2
= core__flat___NativeString___to_s_full(var1
, 10l, 10l);
1638 var3
= nitc___nitc__AbstractCompiler___new_file(self
, var
);
1641 var4
= NEW_nitc__CodeWriter(&type_nitc__CodeWriter
);
1643 ((void(*)(val
* self
, val
* p0
))(var4
->class->vft
[COLOR_nitc__abstract_compiler__CodeWriter__file_61d
]))(var4
, var_file
); /* file= on <var4:CodeWriter>*/
1646 ((void(*)(val
* self
))(var4
->class->vft
[COLOR_core__kernel__Object__init
]))(var4
); /* init on <var4:CodeWriter>*/
1649 { /* Inline abstract_compiler#AbstractCompiler#header= (self,var4) on <self:SeparateCompiler> */
1650 self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
= var4
; /* _header on <self:SeparateCompiler> */
1655 nitc___nitc__SeparateCompiler___compile_box_kinds(self
); /* Direct call separate_compiler#SeparateCompiler#compile_box_kinds on <self:SeparateCompiler>*/
1659 /* method separate_compiler#SeparateCompiler#do_compilation for (self: SeparateCompiler) */
1660 void nitc___nitc__SeparateCompiler___nitc__abstract_compiler__AbstractCompiler__do_compilation(val
* self
) {
1661 val
* var_compiler
/* var compiler: SeparateCompiler */;
1662 val
* var
/* : MModule */;
1663 val
* var2
/* : MModule */;
1664 val
* var3
/* : String */;
1665 val
* var_c_name
/* var c_name: String */;
1666 val
* var4
/* : ModelBuilder */;
1667 val
* var6
/* : ModelBuilder */;
1668 val
* var7
/* : ToolContext */;
1669 val
* var9
/* : ToolContext */;
1670 static val
* varonce
;
1671 val
* var10
/* : String */;
1672 char* var11
/* : NativeString */;
1673 val
* var12
/* : String */;
1674 val
* var14
/* : NativeArray[String] */;
1675 static val
* varonce13
;
1676 static val
* varonce15
;
1677 val
* var16
/* : String */;
1678 char* var17
/* : NativeString */;
1679 val
* var18
/* : String */;
1680 val
* var19
/* : String */;
1681 val
* var20
/* : CodeFile */;
1682 val
* var21
/* : MModule */;
1683 val
* var23
/* : MModule */;
1684 val
* var24
/* : POSetElement[MModule] */;
1685 val
* var26
/* : POSetElement[MModule] */;
1686 val
* var27
/* : Collection[nullable Object] */;
1687 val
* var_
/* var : Collection[MModule] */;
1688 val
* var28
/* : Iterator[nullable Object] */;
1689 val
* var_29
/* var : Iterator[MModule] */;
1690 short int var30
/* : Bool */;
1691 val
* var31
/* : nullable Object */;
1692 val
* var_m
/* var m: MModule */;
1693 val
* var32
/* : Array[MClass] */;
1694 val
* var34
/* : Array[MClass] */;
1695 val
* var_35
/* var : Array[MClass] */;
1696 val
* var36
/* : IndexedIterator[nullable Object] */;
1697 val
* var_37
/* var : IndexedIterator[MClass] */;
1698 short int var38
/* : Bool */;
1699 val
* var40
/* : nullable Object */;
1700 val
* var_mclass
/* var mclass: MClass */;
1701 val
* var42
/* : NativeArray[String] */;
1702 static val
* varonce41
;
1703 static val
* varonce43
;
1704 val
* var44
/* : String */;
1705 char* var45
/* : NativeString */;
1706 val
* var46
/* : String */;
1707 val
* var47
/* : String */;
1708 val
* var48
/* : CodeFile */;
1709 val
* var49
/* : MModule */;
1710 val
* var51
/* : MModule */;
1711 val
* var52
/* : POSetElement[MModule] */;
1712 val
* var54
/* : POSetElement[MModule] */;
1713 val
* var55
/* : Collection[nullable Object] */;
1714 val
* var_56
/* var : Collection[MModule] */;
1715 val
* var57
/* : Iterator[nullable Object] */;
1716 val
* var_58
/* var : Iterator[MModule] */;
1717 short int var59
/* : Bool */;
1718 val
* var61
/* : nullable Object */;
1719 val
* var_m62
/* var m: MModule */;
1720 val
* var63
/* : ModelBuilder */;
1721 val
* var65
/* : ModelBuilder */;
1722 val
* var66
/* : ToolContext */;
1723 val
* var68
/* : ToolContext */;
1724 val
* var70
/* : NativeArray[String] */;
1725 static val
* varonce69
;
1726 static val
* varonce71
;
1727 val
* var72
/* : String */;
1728 char* var73
/* : NativeString */;
1729 val
* var74
/* : String */;
1730 val
* var75
/* : String */;
1731 val
* var76
/* : String */;
1732 val
* var78
/* : NativeArray[String] */;
1733 static val
* varonce77
;
1734 static val
* varonce79
;
1735 val
* var80
/* : String */;
1736 char* var81
/* : NativeString */;
1737 val
* var82
/* : String */;
1738 val
* var83
/* : String */;
1739 val
* var84
/* : String */;
1740 val
* var85
/* : CodeFile */;
1741 val
* var86
/* : ModelBuilder */;
1742 val
* var88
/* : ModelBuilder */;
1743 val
* var89
/* : ToolContext */;
1744 val
* var91
/* : ToolContext */;
1745 static val
* varonce92
;
1746 val
* var93
/* : String */;
1747 char* var94
/* : NativeString */;
1748 val
* var95
/* : String */;
1749 val
* var97
/* : NativeArray[String] */;
1750 static val
* varonce96
;
1751 static val
* varonce98
;
1752 val
* var99
/* : String */;
1753 char* var100
/* : NativeString */;
1754 val
* var101
/* : String */;
1755 val
* var102
/* : String */;
1756 val
* var103
/* : CodeFile */;
1757 var_compiler
= self
;
1759 nitc___nitc__AbstractCompiler___compile_header(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#compile_header on <var_compiler:SeparateCompiler>*/
1762 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
1763 var2
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
1764 if (unlikely(var2
== NULL
)) {
1765 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1766 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
1774 var3
= nitc___nitc__MModule___nitc__model_base__MEntity__c_name(var
);
1778 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
1779 var6
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
1780 if (unlikely(var6
== NULL
)) {
1781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1782 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 538);
1790 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var4) on <var4:ModelBuilder> */
1791 var9
= var4
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var4:ModelBuilder> */
1792 if (unlikely(var9
== NULL
)) {
1793 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1794 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
1801 if (likely(varonce
!=NULL
)) {
1804 var11
= "Property coloring";
1805 var12
= core__flat___NativeString___to_s_full(var11
, 17l, 17l);
1810 nitc___nitc__ToolContext___info(var7
, var10
, 2l); /* Direct call toolcontext#ToolContext#info on <var7:ToolContext>*/
1812 if (unlikely(varonce13
==NULL
)) {
1813 var14
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
1814 if (likely(varonce15
!=NULL
)) {
1818 var18
= core__flat___NativeString___to_s_full(var17
, 8l, 8l);
1822 ((struct instance_core__NativeArray
*)var14
)->values
[1]=var16
;
1827 ((struct instance_core__NativeArray
*)var14
)->values
[0]=var_c_name
;
1829 var19
= ((val
*(*)(val
* self
))(var14
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var14
); /* native_to_s on <var14:NativeArray[String]>*/
1833 var20
= nitc___nitc__AbstractCompiler___new_file(var_compiler
, var19
);
1836 nitc___nitc__SeparateCompiler___do_property_coloring(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#do_property_coloring on <var_compiler:SeparateCompiler>*/
1839 nitc___nitc__SeparateCompiler___compile_class_infos(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#compile_class_infos on <var_compiler:SeparateCompiler>*/
1842 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
1843 var23
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
1844 if (unlikely(var23
== NULL
)) {
1845 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1846 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
1850 RET_LABEL22
:(void)0;
1854 { /* Inline mmodule#MModule#in_importation (var21) on <var21:MModule> */
1855 var26
= var21
->attrs
[COLOR_nitc__mmodule__MModule___in_importation
].val
; /* _in_importation on <var21:MModule> */
1856 if (unlikely(var26
== NULL
)) {
1857 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
1858 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule
, 104);
1862 RET_LABEL25
:(void)0;
1866 var27
= poset___poset__POSetElement___greaters(var24
);
1870 var28
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[MModule]>*/
1875 var30
= ((short int(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_29
); /* is_ok on <var_29:Iterator[MModule]>*/
1882 var31
= ((val
*(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_29
); /* item on <var_29:Iterator[MModule]>*/
1886 { /* Inline model#MModule#intro_mclasses (var_m) on <var_m:MModule> */
1887 var34
= var_m
->attrs
[COLOR_nitc__model__MModule___intro_mclasses
].val
; /* _intro_mclasses on <var_m:MModule> */
1888 if (unlikely(var34
== NULL
)) {
1889 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclasses");
1890 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 138);
1894 RET_LABEL33
:(void)0;
1899 var36
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_35
);
1904 var38
= ((short int(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_37
); /* is_ok on <var_37:IndexedIterator[MClass]>*/
1911 var40
= ((val
*(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_37
); /* item on <var_37:IndexedIterator[MClass]>*/
1915 ((void(*)(val
* self
, val
* p0
))(var_compiler
->class->vft
[COLOR_nitc__separate_compiler__SeparateCompiler__compile_class_to_c
]))(var_compiler
, var_mclass
); /* compile_class_to_c on <var_compiler:SeparateCompiler>*/
1918 ((void(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_37
); /* next on <var_37:IndexedIterator[MClass]>*/
1921 BREAK_label39
: (void)0;
1923 ((void(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_37
); /* finish on <var_37:IndexedIterator[MClass]>*/
1926 ((void(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_29
); /* next on <var_29:Iterator[MModule]>*/
1929 BREAK_label
: (void)0;
1931 ((void(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_29
); /* finish on <var_29:Iterator[MModule]>*/
1933 if (unlikely(varonce41
==NULL
)) {
1934 var42
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
1935 if (likely(varonce43
!=NULL
)) {
1939 var46
= core__flat___NativeString___to_s_full(var45
, 5l, 5l);
1943 ((struct instance_core__NativeArray
*)var42
)->values
[1]=var44
;
1948 ((struct instance_core__NativeArray
*)var42
)->values
[0]=var_c_name
;
1950 var47
= ((val
*(*)(val
* self
))(var42
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var42
); /* native_to_s on <var42:NativeArray[String]>*/
1954 var48
= nitc___nitc__AbstractCompiler___new_file(var_compiler
, var47
);
1957 nitc___nitc__AbstractCompiler___compile_nitni_global_ref_functions(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#compile_nitni_global_ref_functions on <var_compiler:SeparateCompiler>*/
1960 nitc___nitc__AbstractCompiler___compile_main_function(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#compile_main_function on <var_compiler:SeparateCompiler>*/
1963 nitc___nitc__AbstractCompiler___compile_finalizer_function(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#compile_finalizer_function on <var_compiler:SeparateCompiler>*/
1966 nitc___nitc__SeparateCompiler___link_mmethods(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#link_mmethods on <var_compiler:SeparateCompiler>*/
1969 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
1970 var51
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
1971 if (unlikely(var51
== NULL
)) {
1972 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1973 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
1977 RET_LABEL50
:(void)0;
1981 { /* Inline mmodule#MModule#in_importation (var49) on <var49:MModule> */
1982 var54
= var49
->attrs
[COLOR_nitc__mmodule__MModule___in_importation
].val
; /* _in_importation on <var49:MModule> */
1983 if (unlikely(var54
== NULL
)) {
1984 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
1985 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule
, 104);
1989 RET_LABEL53
:(void)0;
1993 var55
= poset___poset__POSetElement___greaters(var52
);
1997 var57
= ((val
*(*)(val
* self
))((((long)var_56
&3)?class_info
[((long)var_56
&3)]:var_56
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_56
); /* iterator on <var_56:Collection[MModule]>*/
2002 var59
= ((short int(*)(val
* self
))((((long)var_58
&3)?class_info
[((long)var_58
&3)]:var_58
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_58
); /* is_ok on <var_58:Iterator[MModule]>*/
2009 var61
= ((val
*(*)(val
* self
))((((long)var_58
&3)?class_info
[((long)var_58
&3)]:var_58
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_58
); /* item on <var_58:Iterator[MModule]>*/
2013 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
2014 var65
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
2015 if (unlikely(var65
== NULL
)) {
2016 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2017 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 538);
2021 RET_LABEL64
:(void)0;
2025 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var63) on <var63:ModelBuilder> */
2026 var68
= var63
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var63:ModelBuilder> */
2027 if (unlikely(var68
== NULL
)) {
2028 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2029 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
2033 RET_LABEL67
:(void)0;
2036 if (unlikely(varonce69
==NULL
)) {
2037 var70
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
2038 if (likely(varonce71
!=NULL
)) {
2041 var73
= "Generate C for module ";
2042 var74
= core__flat___NativeString___to_s_full(var73
, 22l, 22l);
2046 ((struct instance_core__NativeArray
*)var70
)->values
[0]=var72
;
2052 var75
= nitc___nitc__MModule___nitc__model_base__MEntity__full_name(var_m62
);
2054 ((struct instance_core__NativeArray
*)var70
)->values
[1]=var75
;
2056 var76
= ((val
*(*)(val
* self
))(var70
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var70
); /* native_to_s on <var70:NativeArray[String]>*/
2060 nitc___nitc__ToolContext___info(var66
, var76
, 2l); /* Direct call toolcontext#ToolContext#info on <var66:ToolContext>*/
2062 if (unlikely(varonce77
==NULL
)) {
2063 var78
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
2064 if (likely(varonce79
!=NULL
)) {
2068 var82
= core__flat___NativeString___to_s_full(var81
, 4l, 4l);
2072 ((struct instance_core__NativeArray
*)var78
)->values
[1]=var80
;
2078 var83
= nitc___nitc__MModule___nitc__model_base__MEntity__c_name(var_m62
);
2080 ((struct instance_core__NativeArray
*)var78
)->values
[0]=var83
;
2082 var84
= ((val
*(*)(val
* self
))(var78
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var78
); /* native_to_s on <var78:NativeArray[String]>*/
2086 var85
= nitc___nitc__AbstractCompiler___new_file(var_compiler
, var84
);
2089 nitc___nitc__SeparateCompiler___compile_module_to_c(var_compiler
, var_m62
); /* Direct call separate_compiler#SeparateCompiler#compile_module_to_c on <var_compiler:SeparateCompiler>*/
2092 ((void(*)(val
* self
))((((long)var_58
&3)?class_info
[((long)var_58
&3)]:var_58
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_58
); /* next on <var_58:Iterator[MModule]>*/
2095 BREAK_label60
: (void)0;
2097 ((void(*)(val
* self
))((((long)var_58
&3)?class_info
[((long)var_58
&3)]:var_58
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_58
); /* finish on <var_58:Iterator[MModule]>*/
2100 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
2101 var88
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
2102 if (unlikely(var88
== NULL
)) {
2103 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2104 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 538);
2108 RET_LABEL87
:(void)0;
2112 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var86) on <var86:ModelBuilder> */
2113 var91
= var86
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var86:ModelBuilder> */
2114 if (unlikely(var91
== NULL
)) {
2115 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2116 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
2120 RET_LABEL90
:(void)0;
2123 if (likely(varonce92
!=NULL
)) {
2126 var94
= "Type coloring";
2127 var95
= core__flat___NativeString___to_s_full(var94
, 13l, 13l);
2132 nitc___nitc__ToolContext___info(var89
, var93
, 2l); /* Direct call toolcontext#ToolContext#info on <var89:ToolContext>*/
2134 if (unlikely(varonce96
==NULL
)) {
2135 var97
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
2136 if (likely(varonce98
!=NULL
)) {
2140 var101
= core__flat___NativeString___to_s_full(var100
, 6l, 6l);
2144 ((struct instance_core__NativeArray
*)var97
)->values
[1]=var99
;
2149 ((struct instance_core__NativeArray
*)var97
)->values
[0]=var_c_name
;
2151 var102
= ((val
*(*)(val
* self
))(var97
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var97
); /* native_to_s on <var97:NativeArray[String]>*/
2155 var103
= nitc___nitc__AbstractCompiler___new_file(var_compiler
, var102
);
2158 ((void(*)(val
* self
))(var_compiler
->class->vft
[COLOR_nitc__separate_compiler__SeparateCompiler__compile_types
]))(var_compiler
); /* compile_types on <var_compiler:SeparateCompiler>*/
2162 /* method separate_compiler#SeparateCompiler#compile_types for (self: SeparateCompiler) */
2163 void nitc___nitc__SeparateCompiler___compile_types(val
* self
) {
2164 val
* var_compiler
/* var compiler: SeparateCompiler */;
2165 val
* var
/* : Collection[MType] */;
2166 val
* var_mtypes
/* var mtypes: Collection[MType] */;
2167 val
* var_
/* var : Collection[MType] */;
2168 val
* var1
/* : Iterator[nullable Object] */;
2169 val
* var_2
/* var : Iterator[MType] */;
2170 short int var3
/* : Bool */;
2171 val
* var4
/* : nullable Object */;
2172 val
* var_t
/* var t: MType */;
2173 val
* var5
/* : Set[MType] */;
2174 val
* var7
/* : Set[MType] */;
2175 val
* var_8
/* var : Set[MType] */;
2176 val
* var9
/* : Iterator[nullable Object] */;
2177 val
* var_10
/* var : Iterator[MType] */;
2178 short int var11
/* : Bool */;
2179 val
* var13
/* : nullable Object */;
2180 val
* var_t14
/* var t: MType */;
2181 short int var15
/* : Bool */;
2182 var_compiler
= self
;
2184 var
= nitc___nitc__SeparateCompiler___do_type_coloring(var_compiler
);
2189 var1
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[MType]>*/
2194 var3
= ((short int(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_2
); /* is_ok on <var_2:Iterator[MType]>*/
2201 var4
= ((val
*(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_2
); /* item on <var_2:Iterator[MType]>*/
2205 nitc___nitc__SeparateCompiler___compile_type_to_c(var_compiler
, var_t
); /* Direct call separate_compiler#SeparateCompiler#compile_type_to_c on <var_compiler:SeparateCompiler>*/
2208 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_2
); /* next on <var_2:Iterator[MType]>*/
2211 BREAK_label
: (void)0;
2213 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_2
); /* finish on <var_2:Iterator[MType]>*/
2216 { /* Inline separate_compiler#SeparateCompiler#undead_types (var_compiler) on <var_compiler:SeparateCompiler> */
2217 var7
= var_compiler
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___undead_types
].val
; /* _undead_types on <var_compiler:SeparateCompiler> */
2218 if (unlikely(var7
== NULL
)) {
2219 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
2220 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 146);
2229 var9
= ((val
*(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_8
); /* iterator on <var_8:Set[MType]>*/
2234 var11
= ((short int(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_10
); /* is_ok on <var_10:Iterator[MType]>*/
2241 var13
= ((val
*(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_10
); /* item on <var_10:Iterator[MType]>*/
2245 var15
= ((short int(*)(val
* self
, val
* p0
))((((long)var_mtypes
&3)?class_info
[((long)var_mtypes
&3)]:var_mtypes
->class)->vft
[COLOR_core__abstract_collection__Collection__has
]))(var_mtypes
, var_t14
); /* has on <var_mtypes:Collection[MType]>*/
2252 nitc___nitc__SeparateCompiler___compile_type_to_c(var_compiler
, var_t14
); /* Direct call separate_compiler#SeparateCompiler#compile_type_to_c on <var_compiler:SeparateCompiler>*/
2254 BREAK_label16
: (void)0;
2256 ((void(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_10
); /* next on <var_10:Iterator[MType]>*/
2259 BREAK_label12
: (void)0;
2261 ((void(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_10
); /* finish on <var_10:Iterator[MType]>*/
2265 /* method separate_compiler#SeparateCompiler#compile_header_structs for (self: SeparateCompiler) */
2266 void nitc___nitc__SeparateCompiler___nitc__abstract_compiler__AbstractCompiler__compile_header_structs(val
* self
) {
2267 val
* var
/* : CodeWriter */;
2268 val
* var2
/* : CodeWriter */;
2269 static val
* varonce
;
2270 val
* var3
/* : String */;
2271 char* var4
/* : NativeString */;
2272 val
* var5
/* : String */;
2273 val
* var6
/* : CodeWriter */;
2274 val
* var8
/* : CodeWriter */;
2275 static val
* varonce9
;
2276 val
* var10
/* : String */;
2277 char* var11
/* : NativeString */;
2278 val
* var12
/* : String */;
2279 val
* var13
/* : CodeWriter */;
2280 val
* var15
/* : CodeWriter */;
2281 static val
* varonce16
;
2282 val
* var17
/* : String */;
2283 char* var18
/* : NativeString */;
2284 val
* var19
/* : String */;
2285 val
* var20
/* : CodeWriter */;
2286 val
* var22
/* : CodeWriter */;
2287 static val
* varonce23
;
2288 val
* var24
/* : String */;
2289 char* var25
/* : NativeString */;
2290 val
* var26
/* : String */;
2291 val
* var27
/* : CodeWriter */;
2292 val
* var29
/* : CodeWriter */;
2293 static val
* varonce30
;
2294 val
* var31
/* : String */;
2295 char* var32
/* : NativeString */;
2296 val
* var33
/* : String */;
2297 val
* var34
/* : CodeWriter */;
2298 val
* var36
/* : CodeWriter */;
2299 static val
* varonce37
;
2300 val
* var38
/* : String */;
2301 char* var39
/* : NativeString */;
2302 val
* var40
/* : String */;
2303 val
* var41
/* : ModelBuilder */;
2304 val
* var43
/* : ModelBuilder */;
2305 val
* var44
/* : ToolContext */;
2306 val
* var46
/* : ToolContext */;
2307 val
* var47
/* : OptionBool */;
2308 val
* var49
/* : OptionBool */;
2309 val
* var50
/* : nullable Object */;
2310 val
* var52
/* : nullable Object */;
2311 short int var53
/* : Bool */;
2312 short int var54
/* : Bool */;
2313 val
* var55
/* : CodeWriter */;
2314 val
* var57
/* : CodeWriter */;
2315 static val
* varonce58
;
2316 val
* var59
/* : String */;
2317 char* var60
/* : NativeString */;
2318 val
* var61
/* : String */;
2319 val
* var62
/* : CodeWriter */;
2320 val
* var64
/* : CodeWriter */;
2321 static val
* varonce65
;
2322 val
* var66
/* : String */;
2323 char* var67
/* : NativeString */;
2324 val
* var68
/* : String */;
2326 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2327 var2
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2328 if (unlikely(var2
== NULL
)) {
2329 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2330 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
2337 if (likely(varonce
!=NULL
)) {
2340 var4
= "typedef void(*nitmethod_t)(void); /* general C type representing a Nit method. */";
2341 var5
= core__flat___NativeString___to_s_full(var4
, 81l, 81l);
2346 nitc___nitc__CodeWriter___add_decl(var
, var3
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var:CodeWriter>*/
2349 nitc___nitc__SeparateCompiler___compile_header_attribute_structs(self
); /* Direct call separate_compiler#SeparateCompiler#compile_header_attribute_structs on <self:SeparateCompiler>*/
2352 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2353 var8
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2354 if (unlikely(var8
== NULL
)) {
2355 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2356 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
2363 if (likely(varonce9
!=NULL
)) {
2366 var11
= "struct class { int box_kind; nitmethod_t vft[]; }; /* general C type representing a Nit class. */";
2367 var12
= core__flat___NativeString___to_s_full(var11
, 97l, 97l);
2372 nitc___nitc__CodeWriter___add_decl(var6
, var10
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var6:CodeWriter>*/
2375 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2376 var15
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2377 if (unlikely(var15
== NULL
)) {
2378 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2379 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
2383 RET_LABEL14
:(void)0;
2386 if (likely(varonce16
!=NULL
)) {
2389 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. */";
2390 var19
= core__flat___NativeString___to_s_full(var18
, 194l, 194l);
2395 nitc___nitc__CodeWriter___add_decl(var13
, var17
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var13:CodeWriter>*/
2398 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2399 var22
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2400 if (unlikely(var22
== NULL
)) {
2401 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2402 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
2406 RET_LABEL21
:(void)0;
2409 if (likely(varonce23
!=NULL
)) {
2412 var25
= "struct instance { const struct type *type; const struct class *class; nitattribute_t attrs[]; }; /* general C type representing a Nit instance. */";
2413 var26
= core__flat___NativeString___to_s_full(var25
, 146l, 146l);
2418 nitc___nitc__CodeWriter___add_decl(var20
, var24
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var20:CodeWriter>*/
2421 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2422 var29
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2423 if (unlikely(var29
== NULL
)) {
2424 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2425 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
2429 RET_LABEL28
:(void)0;
2432 if (likely(varonce30
!=NULL
)) {
2435 var32
= "struct types { int dummy; const struct type *types[]; }; /* a list types (used for vts, fts and unresolved lists). */";
2436 var33
= core__flat___NativeString___to_s_full(var32
, 117l, 117l);
2441 nitc___nitc__CodeWriter___add_decl(var27
, var31
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var27:CodeWriter>*/
2444 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2445 var36
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2446 if (unlikely(var36
== NULL
)) {
2447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2448 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
2452 RET_LABEL35
:(void)0;
2455 if (likely(varonce37
!=NULL
)) {
2458 var39
= "typedef struct instance val; /* general C type representing a Nit instance. */";
2459 var40
= core__flat___NativeString___to_s_full(var39
, 78l, 78l);
2464 nitc___nitc__CodeWriter___add_decl(var34
, var38
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var34:CodeWriter>*/
2467 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
2468 var43
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
2469 if (unlikely(var43
== NULL
)) {
2470 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2471 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 538);
2475 RET_LABEL42
:(void)0;
2479 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var41) on <var41:ModelBuilder> */
2480 var46
= var41
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var41:ModelBuilder> */
2481 if (unlikely(var46
== NULL
)) {
2482 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2483 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
2487 RET_LABEL45
:(void)0;
2491 { /* Inline separate_compiler#ToolContext#opt_no_tag_primitives (var44) on <var44:ToolContext> */
2492 var49
= var44
->attrs
[COLOR_nitc__separate_compiler__ToolContext___opt_no_tag_primitives
].val
; /* _opt_no_tag_primitives on <var44:ToolContext> */
2493 if (unlikely(var49
== NULL
)) {
2494 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_tag_primitives");
2495 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 32);
2499 RET_LABEL48
:(void)0;
2503 { /* Inline opts#Option#value (var47) on <var47:OptionBool> */
2504 var52
= var47
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var47:OptionBool> */
2506 RET_LABEL51
:(void)0;
2509 var53
= (short int)((long)(var50
)>>2);
2513 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2514 var57
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2515 if (unlikely(var57
== NULL
)) {
2516 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2517 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
2521 RET_LABEL56
:(void)0;
2524 if (likely(varonce58
!=NULL
)) {
2527 var60
= "extern const struct class *class_info[];";
2528 var61
= core__flat___NativeString___to_s_full(var60
, 40l, 40l);
2533 nitc___nitc__CodeWriter___add_decl(var55
, var59
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var55:CodeWriter>*/
2536 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2537 var64
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2538 if (unlikely(var64
== NULL
)) {
2539 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2540 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
2544 RET_LABEL63
:(void)0;
2547 if (likely(varonce65
!=NULL
)) {
2550 var67
= "extern const struct type *type_info[];";
2551 var68
= core__flat___NativeString___to_s_full(var67
, 38l, 38l);
2556 nitc___nitc__CodeWriter___add_decl(var62
, var66
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var62:CodeWriter>*/
2562 /* method separate_compiler#SeparateCompiler#compile_header_attribute_structs for (self: SeparateCompiler) */
2563 void nitc___nitc__SeparateCompiler___compile_header_attribute_structs(val
* self
) {
2564 val
* var
/* : ModelBuilder */;
2565 val
* var2
/* : ModelBuilder */;
2566 val
* var3
/* : ToolContext */;
2567 val
* var5
/* : ToolContext */;
2568 val
* var6
/* : OptionBool */;
2569 val
* var8
/* : OptionBool */;
2570 val
* var9
/* : nullable Object */;
2571 val
* var11
/* : nullable Object */;
2572 short int var12
/* : Bool */;
2573 val
* var13
/* : CodeWriter */;
2574 val
* var15
/* : CodeWriter */;
2575 static val
* varonce
;
2576 val
* var16
/* : String */;
2577 char* var17
/* : NativeString */;
2578 val
* var18
/* : String */;
2579 val
* var19
/* : CodeWriter */;
2580 val
* var21
/* : CodeWriter */;
2581 static val
* varonce22
;
2582 val
* var23
/* : String */;
2583 char* var24
/* : NativeString */;
2584 val
* var25
/* : String */;
2585 val
* var26
/* : CodeWriter */;
2586 val
* var28
/* : CodeWriter */;
2587 static val
* varonce29
;
2588 val
* var30
/* : String */;
2589 char* var31
/* : NativeString */;
2590 val
* var32
/* : String */;
2591 val
* var33
/* : HashMap[MClass, Int] */;
2592 val
* var35
/* : HashMap[MClass, Int] */;
2593 val
* var_
/* var : HashMap[MClass, Int] */;
2594 val
* var36
/* : MapIterator[nullable Object, nullable Object] */;
2595 val
* var_37
/* var : MapIterator[MClass, Int] */;
2596 short int var38
/* : Bool */;
2597 val
* var39
/* : nullable Object */;
2598 val
* var_c
/* var c: MClass */;
2599 val
* var40
/* : nullable Object */;
2600 long var41
/* : Int */;
2601 long var_v
/* var v: Int */;
2602 val
* var42
/* : MClassType */;
2603 val
* var44
/* : MClassType */;
2604 val
* var_t
/* var t: MClassType */;
2605 val
* var45
/* : MClass */;
2606 val
* var47
/* : MClass */;
2607 val
* var48
/* : String */;
2608 val
* var50
/* : String */;
2609 static val
* varonce51
;
2610 val
* var52
/* : String */;
2611 char* var53
/* : NativeString */;
2612 val
* var54
/* : String */;
2613 short int var55
/* : Bool */;
2614 val
* var57
/* : CodeWriter */;
2615 val
* var59
/* : CodeWriter */;
2616 val
* var61
/* : NativeArray[String] */;
2617 static val
* varonce60
;
2618 static val
* varonce62
;
2619 val
* var63
/* : String */;
2620 char* var64
/* : NativeString */;
2621 val
* var65
/* : String */;
2622 static val
* varonce66
;
2623 val
* var67
/* : String */;
2624 char* var68
/* : NativeString */;
2625 val
* var69
/* : String */;
2626 val
* var70
/* : String */;
2627 val
* var71
/* : String */;
2628 val
* var72
/* : String */;
2629 val
* var74
/* : CodeWriter */;
2630 val
* var76
/* : CodeWriter */;
2631 static val
* varonce77
;
2632 val
* var78
/* : String */;
2633 char* var79
/* : NativeString */;
2634 val
* var80
/* : String */;
2636 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
2637 var2
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
2638 if (unlikely(var2
== NULL
)) {
2639 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2640 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 538);
2648 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var) on <var:ModelBuilder> */
2649 var5
= var
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var:ModelBuilder> */
2650 if (unlikely(var5
== NULL
)) {
2651 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2652 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
2660 { /* Inline separate_compiler#ToolContext#opt_no_union_attribute (var3) on <var3:ToolContext> */
2661 var8
= var3
->attrs
[COLOR_nitc__separate_compiler__ToolContext___opt_no_union_attribute
].val
; /* _opt_no_union_attribute on <var3:ToolContext> */
2662 if (unlikely(var8
== NULL
)) {
2663 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute");
2664 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 28);
2672 { /* Inline opts#Option#value (var6) on <var6:OptionBool> */
2673 var11
= var6
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var6:OptionBool> */
2675 RET_LABEL10
:(void)0;
2678 var12
= (short int)((long)(var9
)>>2);
2681 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2682 var15
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2683 if (unlikely(var15
== NULL
)) {
2684 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2685 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
2689 RET_LABEL14
:(void)0;
2692 if (likely(varonce
!=NULL
)) {
2695 var17
= "typedef void* nitattribute_t; /* general C type representing a Nit attribute. */";
2696 var18
= core__flat___NativeString___to_s_full(var17
, 80l, 80l);
2701 nitc___nitc__CodeWriter___add_decl(var13
, var16
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var13:CodeWriter>*/
2705 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2706 var21
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2707 if (unlikely(var21
== NULL
)) {
2708 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2709 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
2713 RET_LABEL20
:(void)0;
2716 if (likely(varonce22
!=NULL
)) {
2719 var24
= "typedef union {";
2720 var25
= core__flat___NativeString___to_s_full(var24
, 15l, 15l);
2725 nitc___nitc__CodeWriter___add_decl(var19
, var23
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var19:CodeWriter>*/
2728 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2729 var28
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2730 if (unlikely(var28
== NULL
)) {
2731 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2732 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
2736 RET_LABEL27
:(void)0;
2739 if (likely(varonce29
!=NULL
)) {
2742 var31
= "void* val;";
2743 var32
= core__flat___NativeString___to_s_full(var31
, 10l, 10l);
2748 nitc___nitc__CodeWriter___add_decl(var26
, var30
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var26:CodeWriter>*/
2751 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
2752 var35
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
2753 if (unlikely(var35
== NULL
)) {
2754 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
2755 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 264);
2759 RET_LABEL34
:(void)0;
2764 var36
= core___core__HashMap___core__abstract_collection__MapRead__iterator(var_
);
2769 var38
= ((short int(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__MapIterator__is_ok
]))(var_37
); /* is_ok on <var_37:MapIterator[MClass, Int]>*/
2776 var39
= ((val
*(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__MapIterator__key
]))(var_37
); /* key on <var_37:MapIterator[MClass, Int]>*/
2780 var40
= ((val
*(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__MapIterator__item
]))(var_37
); /* item on <var_37:MapIterator[MClass, Int]>*/
2782 var41
= (long)(var40
)>>2;
2785 { /* Inline model#MClass#mclass_type (var_c) on <var_c:MClass> */
2786 var44
= var_c
->attrs
[COLOR_nitc__model__MClass___mclass_type
].val
; /* _mclass_type on <var_c:MClass> */
2787 if (unlikely(var44
== NULL
)) {
2788 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2789 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 507);
2793 RET_LABEL43
:(void)0;
2798 { /* Inline model#MClassType#mclass (var_t) on <var_t:MClassType> */
2799 var47
= var_t
->attrs
[COLOR_nitc__model__MClassType___mclass
].val
; /* _mclass on <var_t:MClassType> */
2800 if (unlikely(var47
== NULL
)) {
2801 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2802 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1163);
2806 RET_LABEL46
:(void)0;
2810 { /* Inline model#MClass#name (var45) on <var45:MClass> */
2811 var50
= var45
->attrs
[COLOR_nitc__model__MClass___name
].val
; /* _name on <var45:MClass> */
2812 if (unlikely(var50
== NULL
)) {
2813 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2814 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 385);
2818 RET_LABEL49
:(void)0;
2821 if (likely(varonce51
!=NULL
)) {
2825 var54
= core__flat___NativeString___to_s_full(var53
, 7l, 7l);
2830 var55
= ((short int(*)(val
* self
, val
* p0
))(var48
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var48
, var52
); /* == on <var48:String>*/
2837 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2838 var59
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2839 if (unlikely(var59
== NULL
)) {
2840 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2841 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
2845 RET_LABEL58
:(void)0;
2848 if (unlikely(varonce60
==NULL
)) {
2849 var61
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
2850 if (likely(varonce62
!=NULL
)) {
2854 var65
= core__flat___NativeString___to_s_full(var64
, 1l, 1l);
2858 ((struct instance_core__NativeArray
*)var61
)->values
[1]=var63
;
2859 if (likely(varonce66
!=NULL
)) {
2863 var69
= core__flat___NativeString___to_s_full(var68
, 1l, 1l);
2867 ((struct instance_core__NativeArray
*)var61
)->values
[3]=var67
;
2873 var70
= nitc__abstract_compiler___MClassType___MType__ctype_extern(var_t
);
2875 ((struct instance_core__NativeArray
*)var61
)->values
[0]=var70
;
2877 var71
= nitc__abstract_compiler___MClassType___MType__ctypename(var_t
);
2879 ((struct instance_core__NativeArray
*)var61
)->values
[2]=var71
;
2881 var72
= ((val
*(*)(val
* self
))(var61
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var61
); /* native_to_s on <var61:NativeArray[String]>*/
2885 nitc___nitc__CodeWriter___add_decl(var57
, var72
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var57:CodeWriter>*/
2887 BREAK_label56
: (void)0;
2889 ((void(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__MapIterator__next
]))(var_37
); /* next on <var_37:MapIterator[MClass, Int]>*/
2892 BREAK_label
: (void)0;
2894 { /* Inline abstract_collection#MapIterator#finish (var_37) on <var_37:MapIterator[MClass, Int]> */
2895 RET_LABEL73
:(void)0;
2899 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2900 var76
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2901 if (unlikely(var76
== NULL
)) {
2902 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2903 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
2907 RET_LABEL75
:(void)0;
2910 if (likely(varonce77
!=NULL
)) {
2913 var79
= "} nitattribute_t; /* general C type representing a Nit attribute. */";
2914 var80
= core__flat___NativeString___to_s_full(var79
, 68l, 68l);
2919 nitc___nitc__CodeWriter___add_decl(var74
, var78
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var74:CodeWriter>*/
2924 /* method separate_compiler#SeparateCompiler#compile_box_kinds for (self: SeparateCompiler) */
2925 void nitc___nitc__SeparateCompiler___compile_box_kinds(val
* self
) {
2926 val
* var
/* : Array[String] */;
2927 val
* var_
/* var : Array[String] */;
2928 static val
* varonce
;
2929 val
* var1
/* : String */;
2930 char* var2
/* : NativeString */;
2931 val
* var3
/* : String */;
2932 static val
* varonce4
;
2933 val
* var5
/* : String */;
2934 char* var6
/* : NativeString */;
2935 val
* var7
/* : String */;
2936 static val
* varonce8
;
2937 val
* var9
/* : String */;
2938 char* var10
/* : NativeString */;
2939 val
* var11
/* : String */;
2940 static val
* varonce12
;
2941 val
* var13
/* : String */;
2942 char* var14
/* : NativeString */;
2943 val
* var15
/* : String */;
2944 static val
* varonce16
;
2945 val
* var17
/* : String */;
2946 char* var18
/* : NativeString */;
2947 val
* var19
/* : String */;
2948 static val
* varonce20
;
2949 val
* var21
/* : String */;
2950 char* var22
/* : NativeString */;
2951 val
* var23
/* : String */;
2952 static val
* varonce24
;
2953 val
* var25
/* : String */;
2954 char* var26
/* : NativeString */;
2955 val
* var27
/* : String */;
2956 static val
* varonce28
;
2957 val
* var29
/* : String */;
2958 char* var30
/* : NativeString */;
2959 val
* var31
/* : String */;
2960 static val
* varonce32
;
2961 val
* var33
/* : String */;
2962 char* var34
/* : NativeString */;
2963 val
* var35
/* : String */;
2964 static val
* varonce36
;
2965 val
* var37
/* : String */;
2966 char* var38
/* : NativeString */;
2967 val
* var39
/* : String */;
2968 static val
* varonce40
;
2969 val
* var41
/* : String */;
2970 char* var42
/* : NativeString */;
2971 val
* var43
/* : String */;
2972 static val
* varonce44
;
2973 val
* var45
/* : String */;
2974 char* var46
/* : NativeString */;
2975 val
* var47
/* : String */;
2976 val
* var_48
/* var : Array[String] */;
2977 val
* var49
/* : IndexedIterator[nullable Object] */;
2978 val
* var_50
/* var : IndexedIterator[String] */;
2979 short int var51
/* : Bool */;
2980 val
* var52
/* : nullable Object */;
2981 val
* var_classname
/* var classname: String */;
2982 val
* var53
/* : MModule */;
2983 val
* var55
/* : MModule */;
2984 val
* var56
/* : Model */;
2985 val
* var58
/* : Model */;
2986 val
* var59
/* : nullable Array[MClass] */;
2987 val
* var_classes
/* var classes: nullable Array[MClass] */;
2988 short int var60
/* : Bool */;
2989 short int var61
/* : Bool */;
2990 long var63
/* : Int */;
2991 long var65
/* : Int */;
2992 short int var66
/* : Bool */;
2993 short int var68
/* : Bool */;
2994 val
* var69
/* : Sys */;
2995 static val
* varonce70
;
2996 val
* var71
/* : String */;
2997 char* var72
/* : NativeString */;
2998 val
* var73
/* : String */;
2999 val
* var74
/* : String */;
3000 val
* var75
/* : HashMap[MClass, Int] */;
3001 val
* var77
/* : HashMap[MClass, Int] */;
3002 val
* var78
/* : nullable Object */;
3003 val
* var79
/* : HashMap[MClass, Int] */;
3004 val
* var81
/* : HashMap[MClass, Int] */;
3005 long var82
/* : Int */;
3006 long var83
/* : Int */;
3007 short int var85
/* : Bool */;
3010 const char* var_class_name
;
3011 long var86
/* : Int */;
3012 val
* var87
/* : nullable Object */;
3013 var
= NEW_core__Array(&type_core__Array__core__String
);
3015 core___core__Array___with_capacity(var
, 12l); /* Direct call array#Array#with_capacity on <var:Array[String]>*/
3018 if (likely(varonce
!=NULL
)) {
3022 var3
= core__flat___NativeString___to_s_full(var2
, 3l, 3l);
3027 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, var1
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3029 if (likely(varonce4
!=NULL
)) {
3033 var7
= core__flat___NativeString___to_s_full(var6
, 4l, 4l);
3038 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, var5
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3040 if (likely(varonce8
!=NULL
)) {
3044 var11
= core__flat___NativeString___to_s_full(var10
, 4l, 4l);
3049 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, var9
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3051 if (likely(varonce12
!=NULL
)) {
3055 var15
= core__flat___NativeString___to_s_full(var14
, 4l, 4l);
3060 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, var13
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3062 if (likely(varonce16
!=NULL
)) {
3066 var19
= core__flat___NativeString___to_s_full(var18
, 5l, 5l);
3071 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, var17
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3073 if (likely(varonce20
!=NULL
)) {
3076 var22
= "NativeString";
3077 var23
= core__flat___NativeString___to_s_full(var22
, 12l, 12l);
3082 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, var21
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3084 if (likely(varonce24
!=NULL
)) {
3088 var27
= core__flat___NativeString___to_s_full(var26
, 7l, 7l);
3093 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, var25
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3095 if (likely(varonce28
!=NULL
)) {
3099 var31
= core__flat___NativeString___to_s_full(var30
, 4l, 4l);
3104 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, var29
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3106 if (likely(varonce32
!=NULL
)) {
3110 var35
= core__flat___NativeString___to_s_full(var34
, 5l, 5l);
3115 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, var33
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3117 if (likely(varonce36
!=NULL
)) {
3121 var39
= core__flat___NativeString___to_s_full(var38
, 6l, 6l);
3126 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, var37
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3128 if (likely(varonce40
!=NULL
)) {
3132 var43
= core__flat___NativeString___to_s_full(var42
, 5l, 5l);
3137 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, var41
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3139 if (likely(varonce44
!=NULL
)) {
3143 var47
= core__flat___NativeString___to_s_full(var46
, 6l, 6l);
3148 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, var45
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
3152 var49
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_48
);
3157 var51
= ((short int(*)(val
* self
))((((long)var_50
&3)?class_info
[((long)var_50
&3)]:var_50
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_50
); /* is_ok on <var_50:IndexedIterator[String]>*/
3164 var52
= ((val
*(*)(val
* self
))((((long)var_50
&3)?class_info
[((long)var_50
&3)]:var_50
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_50
); /* item on <var_50:IndexedIterator[String]>*/
3166 var_classname
= var52
;
3168 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
3169 var55
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
3170 if (unlikely(var55
== NULL
)) {
3171 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3172 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
3176 RET_LABEL54
:(void)0;
3180 { /* Inline mmodule#MModule#model (var53) on <var53:MModule> */
3181 var58
= var53
->attrs
[COLOR_nitc__mmodule__MModule___model
].val
; /* _model on <var53:MModule> */
3182 if (unlikely(var58
== NULL
)) {
3183 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
3184 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule
, 78);
3188 RET_LABEL57
:(void)0;
3192 var59
= nitc__model___Model___get_mclasses_by_name(var56
, var_classname
);
3194 var_classes
= var59
;
3195 if (var_classes
== NULL
) {
3196 var60
= 1; /* is null */
3198 var60
= 0; /* arg is null but recv is not */
3201 var61
= core___core__Array___core__kernel__Object___61d_61d(var_classes
, ((val
*)NULL
));
3209 { /* Inline array#AbstractArrayRead#length (var_classes) on <var_classes:nullable Array[MClass](Array[MClass])> */
3210 var65
= var_classes
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_classes:nullable Array[MClass](Array[MClass])> */
3212 RET_LABEL64
:(void)0;
3216 { /* Inline kernel#Int#== (var63,1l) on <var63:Int> */
3217 var68
= var63
== 1l;
3220 RET_LABEL67
:(void)0;
3223 if (unlikely(!var66
)) {
3225 if (likely(varonce70
!=NULL
)) {
3229 var73
= core__flat___NativeString___to_s_full(var72
, 2l, 2l);
3234 var74
= core__abstract_text___Collection___join(var_classes
, var71
);
3237 core__file___Sys___print(var69
, var74
); /* Direct call file#Sys#print on <var69:Sys>*/
3239 PRINT_ERROR("Runtime error: %s", "Assert failed");
3240 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 259);
3244 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
3245 var77
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
3246 if (unlikely(var77
== NULL
)) {
3247 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3248 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 264);
3252 RET_LABEL76
:(void)0;
3256 var78
= core___core__SequenceRead___Collection__first(var_classes
);
3259 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
3260 var81
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
3261 if (unlikely(var81
== NULL
)) {
3262 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3263 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 264);
3267 RET_LABEL80
:(void)0;
3271 var82
= core___core__HashMap___core__abstract_collection__MapRead__length(var79
);
3274 { /* Inline kernel#Int#+ (var82,1l) on <var82:Int> */
3275 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3276 /* <1l:Int> isa OTHER */
3277 var85
= 1; /* easy <1l:Int> isa OTHER*/
3278 if (unlikely(!var85
)) {
3279 var_class_name
= type_core__Int
.name
;
3280 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3281 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
3287 RET_LABEL84
:(void)0;
3291 var87
= (val
*)(var83
<<2|1);
3292 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var75
, var78
, var87
); /* Direct call hash_collection#HashMap#[]= on <var75:HashMap[MClass, Int]>*/
3294 BREAK_label62
: (void)0;
3296 ((void(*)(val
* self
))((((long)var_50
&3)?class_info
[((long)var_50
&3)]:var_50
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_50
); /* next on <var_50:IndexedIterator[String]>*/
3299 BREAK_label
: (void)0;
3301 ((void(*)(val
* self
))((((long)var_50
&3)?class_info
[((long)var_50
&3)]:var_50
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_50
); /* finish on <var_50:IndexedIterator[String]>*/
3305 /* method separate_compiler#SeparateCompiler#box_kinds for (self: SeparateCompiler): HashMap[MClass, Int] */
3306 val
* nitc___nitc__SeparateCompiler___box_kinds(val
* self
) {
3307 val
* var
/* : HashMap[MClass, Int] */;
3308 val
* var1
/* : HashMap[MClass, Int] */;
3309 var1
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
3310 if (unlikely(var1
== NULL
)) {
3311 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3312 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 264);
3319 /* method separate_compiler#SeparateCompiler#box_kind_of for (self: SeparateCompiler, MClass): Int */
3320 long nitc___nitc__SeparateCompiler___box_kind_of(val
* self
, val
* p0
) {
3321 long var
/* : Int */;
3322 val
* var_mclass
/* var mclass: MClass */;
3323 val
* var1
/* : MClassType */;
3324 val
* var3
/* : MClassType */;
3325 val
* var4
/* : String */;
3326 static val
* varonce
;
3327 val
* var5
/* : String */;
3328 char* var6
/* : NativeString */;
3329 val
* var7
/* : String */;
3330 short int var8
/* : Bool */;
3331 short int var9
/* : Bool */;
3332 val
* var10
/* : MClassKind */;
3333 val
* var12
/* : MClassKind */;
3334 val
* var13
/* : Sys */;
3335 val
* var14
/* : MClassKind */;
3336 short int var15
/* : Bool */;
3337 val
* var_other
/* var other: nullable Object */;
3338 short int var17
/* : Bool */;
3339 short int var19
/* : Bool */;
3340 short int var_
/* var : Bool */;
3341 val
* var20
/* : String */;
3342 val
* var22
/* : String */;
3343 static val
* varonce23
;
3344 val
* var24
/* : String */;
3345 char* var25
/* : NativeString */;
3346 val
* var26
/* : String */;
3347 short int var27
/* : Bool */;
3348 val
* var_other29
/* var other: nullable Object */;
3349 short int var30
/* : Bool */;
3350 short int var31
/* : Bool */;
3351 val
* var32
/* : HashMap[MClass, Int] */;
3352 val
* var34
/* : HashMap[MClass, Int] */;
3353 val
* var35
/* : MModule */;
3354 val
* var37
/* : MModule */;
3355 val
* var38
/* : MClassType */;
3356 val
* var39
/* : MClass */;
3357 val
* var41
/* : MClass */;
3358 val
* var42
/* : nullable Object */;
3359 long var43
/* : Int */;
3360 val
* var44
/* : HashMap[MClass, Int] */;
3361 val
* var46
/* : HashMap[MClass, Int] */;
3362 val
* var47
/* : nullable Object */;
3363 long var48
/* : Int */;
3366 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:MClass> */
3367 var3
= var_mclass
->attrs
[COLOR_nitc__model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:MClass> */
3368 if (unlikely(var3
== NULL
)) {
3369 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3370 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 507);
3378 var4
= nitc__abstract_compiler___MClassType___MType__ctype_extern(var1
);
3380 if (likely(varonce
!=NULL
)) {
3384 var7
= core__flat___NativeString___to_s_full(var6
, 4l, 4l);
3389 var8
= ((short int(*)(val
* self
, val
* p0
))(var4
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var4
, var5
); /* == on <var4:String>*/
3396 { /* Inline model#MClass#kind (var_mclass) on <var_mclass:MClass> */
3397 var12
= var_mclass
->attrs
[COLOR_nitc__model__MClass___kind
].val
; /* _kind on <var_mclass:MClass> */
3398 if (unlikely(var12
== NULL
)) {
3399 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3400 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 459);
3404 RET_LABEL11
:(void)0;
3409 var14
= nitc__model___core__Sys___extern_kind(var13
);
3412 { /* Inline kernel#Object#== (var10,var14) on <var10:MClassKind> */
3415 { /* Inline kernel#Object#is_same_instance (var10,var_other) on <var10:MClassKind> */
3416 var19
= var10
== var_other
;
3419 RET_LABEL18
:(void)0;
3424 RET_LABEL16
:(void)0;
3430 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
3431 var22
= var_mclass
->attrs
[COLOR_nitc__model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
3432 if (unlikely(var22
== NULL
)) {
3433 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3434 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 385);
3438 RET_LABEL21
:(void)0;
3441 if (likely(varonce23
!=NULL
)) {
3444 var25
= "NativeString";
3445 var26
= core__flat___NativeString___to_s_full(var25
, 12l, 12l);
3450 { /* Inline kernel#Object#!= (var20,var24) on <var20:String> */
3451 var_other29
= var24
;
3453 var30
= ((short int(*)(val
* self
, val
* p0
))(var20
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var20
, var_other29
); /* == on <var20:String>*/
3458 RET_LABEL28
:(void)0;
3467 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
3468 var34
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
3469 if (unlikely(var34
== NULL
)) {
3470 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3471 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 264);
3475 RET_LABEL33
:(void)0;
3479 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
3480 var37
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
3481 if (unlikely(var37
== NULL
)) {
3482 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3483 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
3487 RET_LABEL36
:(void)0;
3491 var38
= nitc__model___MModule___pointer_type(var35
);
3494 { /* Inline model#MClassType#mclass (var38) on <var38:MClassType> */
3495 var41
= var38
->attrs
[COLOR_nitc__model__MClassType___mclass
].val
; /* _mclass on <var38:MClassType> */
3496 if (unlikely(var41
== NULL
)) {
3497 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3498 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1163);
3502 RET_LABEL40
:(void)0;
3506 var42
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var32
, var39
);
3508 var43
= (long)(var42
)>>2;
3513 { /* Inline separate_compiler#SeparateCompiler#box_kinds (self) on <self:SeparateCompiler> */
3514 var46
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <self:SeparateCompiler> */
3515 if (unlikely(var46
== NULL
)) {
3516 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
3517 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 264);
3521 RET_LABEL45
:(void)0;
3525 var47
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var44
, var_mclass
);
3527 var48
= (long)(var47
)>>2;
3535 /* method separate_compiler#SeparateCompiler#compile_color_consts for (self: SeparateCompiler, Map[Object, Int]) */
3536 void nitc___nitc__SeparateCompiler___compile_color_consts(val
* self
, val
* p0
) {
3537 val
* var_colors
/* var colors: Map[Object, Int] */;
3538 val
* var
/* : AbstractCompilerVisitor */;
3539 val
* var_v
/* var v: SeparateCompilerVisitor */;
3540 val
* var_
/* var : Map[Object, Int] */;
3541 val
* var1
/* : MapIterator[nullable Object, nullable Object] */;
3542 val
* var_2
/* var : MapIterator[Object, Int] */;
3543 short int var3
/* : Bool */;
3544 val
* var4
/* : nullable Object */;
3545 val
* var_m
/* var m: Object */;
3546 val
* var5
/* : nullable Object */;
3547 long var6
/* : Int */;
3548 long var_c
/* var c: Int */;
3551 var
= ((val
*(*)(val
* self
))(self
->class->vft
[COLOR_nitc__abstract_compiler__AbstractCompiler__new_visitor
]))(self
); /* new_visitor on <self:SeparateCompiler>*/
3556 var1
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__MapRead__iterator
]))(var_
); /* iterator on <var_:Map[Object, Int]>*/
3561 var3
= ((short int(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__MapIterator__is_ok
]))(var_2
); /* is_ok on <var_2:MapIterator[Object, Int]>*/
3568 var4
= ((val
*(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__MapIterator__key
]))(var_2
); /* key on <var_2:MapIterator[Object, Int]>*/
3572 var5
= ((val
*(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__MapIterator__item
]))(var_2
); /* item on <var_2:MapIterator[Object, Int]>*/
3574 var6
= (long)(var5
)>>2;
3577 nitc___nitc__SeparateCompiler___compile_color_const(self
, var_v
, var_m
, var_c
); /* Direct call separate_compiler#SeparateCompiler#compile_color_const on <self:SeparateCompiler>*/
3580 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__MapIterator__next
]))(var_2
); /* next on <var_2:MapIterator[Object, Int]>*/
3583 BREAK_label
: (void)0;
3585 { /* Inline abstract_collection#MapIterator#finish (var_2) on <var_2:MapIterator[Object, Int]> */
3591 /* method separate_compiler#SeparateCompiler#compile_color_const for (self: SeparateCompiler, SeparateCompilerVisitor, Object, Int) */
3592 void nitc___nitc__SeparateCompiler___compile_color_const(val
* self
, val
* p0
, val
* p1
, long p2
) {
3593 val
* var_v
/* var v: SeparateCompilerVisitor */;
3594 val
* var_m
/* var m: Object */;
3595 long var_color
/* var color: Int */;
3596 val
* var
/* : HashSet[Object] */;
3597 val
* var2
/* : HashSet[Object] */;
3598 short int var3
/* : Bool */;
3599 short int var4
/* : Bool */;
3602 val
* var5
/* : ModelBuilder */;
3603 val
* var7
/* : ModelBuilder */;
3604 val
* var8
/* : ToolContext */;
3605 val
* var10
/* : ToolContext */;
3606 val
* var11
/* : OptionBool */;
3607 val
* var13
/* : OptionBool */;
3608 val
* var14
/* : nullable Object */;
3609 val
* var16
/* : nullable Object */;
3610 short int var17
/* : Bool */;
3611 val
* var18
/* : String */;
3612 val
* var19
/* : NativeArray[String] */;
3613 static val
* varonce
;
3614 static val
* varonce20
;
3615 val
* var21
/* : String */;
3616 char* var22
/* : NativeString */;
3617 val
* var23
/* : String */;
3618 static val
* varonce24
;
3619 val
* var25
/* : String */;
3620 char* var26
/* : NativeString */;
3621 val
* var27
/* : String */;
3622 val
* var28
/* : String */;
3623 val
* var29
/* : String */;
3624 val
* var30
/* : String */;
3625 short int var31
/* : Bool */;
3626 val
* var32
/* : ModelBuilder */;
3627 val
* var34
/* : ModelBuilder */;
3628 val
* var35
/* : ToolContext */;
3629 val
* var37
/* : ToolContext */;
3630 val
* var38
/* : OptionBool */;
3631 val
* var40
/* : OptionBool */;
3632 val
* var41
/* : nullable Object */;
3633 val
* var43
/* : nullable Object */;
3634 short int var44
/* : Bool */;
3635 short int var45
/* : Bool */;
3636 short int var_
/* var : Bool */;
3637 val
* var46
/* : AbstractCompiler */;
3638 val
* var48
/* : AbstractCompiler */;
3639 val
* var49
/* : Platform */;
3640 val
* var51
/* : Platform */;
3641 short int var52
/* : Bool */;
3642 short int var53
/* : Bool */;
3643 val
* var54
/* : String */;
3644 val
* var56
/* : NativeArray[String] */;
3645 static val
* varonce55
;
3646 static val
* varonce57
;
3647 val
* var58
/* : String */;
3648 char* var59
/* : NativeString */;
3649 val
* var60
/* : String */;
3650 static val
* varonce61
;
3651 val
* var62
/* : String */;
3652 char* var63
/* : NativeString */;
3653 val
* var64
/* : String */;
3654 val
* var65
/* : String */;
3655 val
* var66
/* : String */;
3656 val
* var68
/* : NativeArray[String] */;
3657 static val
* varonce67
;
3658 static val
* varonce69
;
3659 val
* var70
/* : String */;
3660 char* var71
/* : NativeString */;
3661 val
* var72
/* : String */;
3662 static val
* varonce73
;
3663 val
* var74
/* : String */;
3664 char* var75
/* : NativeString */;
3665 val
* var76
/* : String */;
3666 static val
* varonce77
;
3667 val
* var78
/* : String */;
3668 char* var79
/* : NativeString */;
3669 val
* var80
/* : String */;
3670 val
* var81
/* : String */;
3671 val
* var82
/* : String */;
3672 val
* var83
/* : String */;
3673 val
* var84
/* : String */;
3674 val
* var86
/* : NativeArray[String] */;
3675 static val
* varonce85
;
3676 static val
* varonce87
;
3677 val
* var88
/* : String */;
3678 char* var89
/* : NativeString */;
3679 val
* var90
/* : String */;
3680 static val
* varonce91
;
3681 val
* var92
/* : String */;
3682 char* var93
/* : NativeString */;
3683 val
* var94
/* : String */;
3684 static val
* varonce95
;
3685 val
* var96
/* : String */;
3686 char* var97
/* : NativeString */;
3687 val
* var98
/* : String */;
3688 static val
* varonce99
;
3689 val
* var100
/* : String */;
3690 char* var101
/* : NativeString */;
3691 val
* var102
/* : String */;
3692 val
* var103
/* : String */;
3693 val
* var104
/* : String */;
3694 val
* var105
/* : String */;
3695 val
* var106
/* : String */;
3696 long var107
/* : Int */;
3697 long var109
/* : Int */;
3698 short int var110
/* : Bool */;
3699 short int var112
/* : Bool */;
3700 val
* var113
/* : Array[String] */;
3701 val
* var115
/* : Array[String] */;
3702 val
* var117
/* : NativeArray[String] */;
3703 static val
* varonce116
;
3704 static val
* varonce118
;
3705 val
* var119
/* : String */;
3706 char* var120
/* : NativeString */;
3707 val
* var121
/* : String */;
3708 static val
* varonce122
;
3709 val
* var123
/* : String */;
3710 char* var124
/* : NativeString */;
3711 val
* var125
/* : String */;
3712 static val
* varonce126
;
3713 val
* var127
/* : String */;
3714 char* var128
/* : NativeString */;
3715 val
* var129
/* : String */;
3716 val
* var130
/* : String */;
3717 val
* var131
/* : String */;
3718 val
* var132
/* : String */;
3719 val
* var133
/* : HashSet[Object] */;
3720 val
* var135
/* : HashSet[Object] */;
3725 { /* Inline separate_compiler#SeparateCompiler#color_consts_done (self) on <self:SeparateCompiler> */
3726 var2
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___color_consts_done
].val
; /* _color_consts_done on <self:SeparateCompiler> */
3727 if (unlikely(var2
== NULL
)) {
3728 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done");
3729 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 308);
3737 var3
= core___core__HashSet___core__abstract_collection__Collection__has(var
, var_m
);
3743 /* <var_m:Object> isa MEntity */
3744 cltype
= type_nitc__MEntity
.color
;
3745 idtype
= type_nitc__MEntity
.id
;
3746 if(cltype
>= (((long)var_m
&3)?type_info
[((long)var_m
&3)]:var_m
->type
)->table_size
) {
3749 var4
= (((long)var_m
&3)?type_info
[((long)var_m
&3)]:var_m
->type
)->type_table
[cltype
] == idtype
;
3753 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
3754 var7
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
3755 if (unlikely(var7
== NULL
)) {
3756 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3757 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 538);
3765 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var5) on <var5:ModelBuilder> */
3766 var10
= var5
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var5:ModelBuilder> */
3767 if (unlikely(var10
== NULL
)) {
3768 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3769 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
3777 { /* Inline separate_compiler#ToolContext#opt_inline_coloring_numbers (var8) on <var8:ToolContext> */
3778 var13
= var8
->attrs
[COLOR_nitc__separate_compiler__ToolContext___opt_inline_coloring_numbers
].val
; /* _opt_inline_coloring_numbers on <var8:ToolContext> */
3779 if (unlikely(var13
== NULL
)) {
3780 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_coloring_numbers");
3781 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 46);
3785 RET_LABEL12
:(void)0;
3789 { /* Inline opts#Option#value (var11) on <var11:OptionBool> */
3790 var16
= var11
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var11:OptionBool> */
3792 RET_LABEL15
:(void)0;
3795 var17
= (short int)((long)(var14
)>>2);
3798 var18
= nitc__separate_compiler___MEntity___const_color(var_m
);
3800 if (unlikely(varonce
==NULL
)) {
3801 var19
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
3802 if (likely(varonce20
!=NULL
)) {
3806 var23
= core__flat___NativeString___to_s_full(var22
, 8l, 8l);
3810 ((struct instance_core__NativeArray
*)var19
)->values
[0]=var21
;
3811 if (likely(varonce24
!=NULL
)) {
3815 var27
= core__flat___NativeString___to_s_full(var26
, 1l, 1l);
3819 ((struct instance_core__NativeArray
*)var19
)->values
[2]=var25
;
3825 var28
= nitc__separate_compiler___MEntity___const_color(var_m
);
3827 ((struct instance_core__NativeArray
*)var19
)->values
[1]=var28
;
3828 var29
= core__flat___Int___core__abstract_text__Object__to_s(var_color
);
3829 ((struct instance_core__NativeArray
*)var19
)->values
[3]=var29
;
3831 var30
= ((val
*(*)(val
* self
))(var19
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var19
); /* native_to_s on <var19:NativeArray[String]>*/
3835 nitc___nitc__AbstractCompiler___provide_declaration(self
, var18
, var30
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
3839 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
3840 var34
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
3841 if (unlikely(var34
== NULL
)) {
3842 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3843 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 538);
3847 RET_LABEL33
:(void)0;
3851 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var32) on <var32:ModelBuilder> */
3852 var37
= var32
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var32:ModelBuilder> */
3853 if (unlikely(var37
== NULL
)) {
3854 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3855 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
3859 RET_LABEL36
:(void)0;
3863 { /* Inline separate_compiler#ToolContext#opt_colors_are_symbols (var35) on <var35:ToolContext> */
3864 var40
= var35
->attrs
[COLOR_nitc__separate_compiler__ToolContext___opt_colors_are_symbols
].val
; /* _opt_colors_are_symbols on <var35:ToolContext> */
3865 if (unlikely(var40
== NULL
)) {
3866 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_colors_are_symbols");
3867 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 35);
3871 RET_LABEL39
:(void)0;
3875 { /* Inline opts#Option#value (var38) on <var38:OptionBool> */
3876 var43
= var38
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var38:OptionBool> */
3878 RET_LABEL42
:(void)0;
3881 var44
= (short int)((long)(var41
)>>2);
3888 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:SeparateCompilerVisitor> */
3889 var48
= var_v
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <var_v:SeparateCompilerVisitor> */
3890 if (unlikely(var48
== NULL
)) {
3891 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3892 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 1133);
3896 RET_LABEL47
:(void)0;
3900 { /* Inline abstract_compiler#AbstractCompiler#target_platform (var46) on <var46:AbstractCompiler(SeparateCompiler)> */
3901 var51
= var46
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___target_platform
].val
; /* _target_platform on <var46:AbstractCompiler(SeparateCompiler)> */
3902 if (unlikely(var51
== NULL
)) {
3903 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target_platform");
3904 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 549);
3908 RET_LABEL50
:(void)0;
3912 var52
= nitc___nitc__Platform___supports_linker_script(var49
);
3919 var54
= nitc__separate_compiler___MEntity___const_color(var_m
);
3921 if (unlikely(varonce55
==NULL
)) {
3922 var56
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
3923 if (likely(varonce57
!=NULL
)) {
3926 var59
= "extern const int ";
3927 var60
= core__flat___NativeString___to_s_full(var59
, 17l, 17l);
3931 ((struct instance_core__NativeArray
*)var56
)->values
[0]=var58
;
3932 if (likely(varonce61
!=NULL
)) {
3936 var64
= core__flat___NativeString___to_s_full(var63
, 1l, 1l);
3940 ((struct instance_core__NativeArray
*)var56
)->values
[2]=var62
;
3946 var65
= nitc__separate_compiler___MEntity___const_color(var_m
);
3948 ((struct instance_core__NativeArray
*)var56
)->values
[1]=var65
;
3950 var66
= ((val
*(*)(val
* self
))(var56
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var56
); /* native_to_s on <var56:NativeArray[String]>*/
3954 nitc___nitc__AbstractCompiler___provide_declaration(self
, var54
, var66
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
3956 if (unlikely(varonce67
==NULL
)) {
3957 var68
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
3958 if (likely(varonce69
!=NULL
)) {
3961 var71
= "const int ";
3962 var72
= core__flat___NativeString___to_s_full(var71
, 10l, 10l);
3966 ((struct instance_core__NativeArray
*)var68
)->values
[0]=var70
;
3967 if (likely(varonce73
!=NULL
)) {
3971 var76
= core__flat___NativeString___to_s_full(var75
, 3l, 3l);
3975 ((struct instance_core__NativeArray
*)var68
)->values
[2]=var74
;
3976 if (likely(varonce77
!=NULL
)) {
3980 var80
= core__flat___NativeString___to_s_full(var79
, 1l, 1l);
3984 ((struct instance_core__NativeArray
*)var68
)->values
[4]=var78
;
3990 var81
= nitc__separate_compiler___MEntity___const_color(var_m
);
3992 ((struct instance_core__NativeArray
*)var68
)->values
[1]=var81
;
3993 var82
= core__flat___Int___core__abstract_text__Object__to_s(var_color
);
3994 ((struct instance_core__NativeArray
*)var68
)->values
[3]=var82
;
3996 var83
= ((val
*(*)(val
* self
))(var68
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var68
); /* native_to_s on <var68:NativeArray[String]>*/
4000 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var83
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4004 var84
= nitc__separate_compiler___MEntity___const_color(var_m
);
4006 if (unlikely(varonce85
==NULL
)) {
4007 var86
= NEW_core__NativeArray(7l, &type_core__NativeArray__core__String
);
4008 if (likely(varonce87
!=NULL
)) {
4012 var90
= core__flat___NativeString___to_s_full(var89
, 8l, 8l);
4016 ((struct instance_core__NativeArray
*)var86
)->values
[0]=var88
;
4017 if (likely(varonce91
!=NULL
)) {
4020 var93
= " ((long)&X";
4021 var94
= core__flat___NativeString___to_s_full(var93
, 10l, 10l);
4025 ((struct instance_core__NativeArray
*)var86
)->values
[2]=var92
;
4026 if (likely(varonce95
!=NULL
)) {
4029 var97
= ")\nextern const void X";
4030 var98
= core__flat___NativeString___to_s_full(var97
, 21l, 21l);
4034 ((struct instance_core__NativeArray
*)var86
)->values
[4]=var96
;
4035 if (likely(varonce99
!=NULL
)) {
4039 var102
= core__flat___NativeString___to_s_full(var101
, 1l, 1l);
4043 ((struct instance_core__NativeArray
*)var86
)->values
[6]=var100
;
4049 var103
= nitc__separate_compiler___MEntity___const_color(var_m
);
4051 ((struct instance_core__NativeArray
*)var86
)->values
[1]=var103
;
4053 var104
= nitc__separate_compiler___MEntity___const_color(var_m
);
4055 ((struct instance_core__NativeArray
*)var86
)->values
[3]=var104
;
4057 var105
= nitc__separate_compiler___MEntity___const_color(var_m
);
4059 ((struct instance_core__NativeArray
*)var86
)->values
[5]=var105
;
4061 var106
= ((val
*(*)(val
* self
))(var86
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var86
); /* native_to_s on <var86:NativeArray[String]>*/
4065 nitc___nitc__AbstractCompiler___provide_declaration(self
, var84
, var106
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
4068 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
4072 RET_LABEL108
:(void)0;
4076 { /* Inline kernel#Int#== (var_color,var107) on <var_color:Int> */
4077 var112
= var_color
== var107
;
4080 RET_LABEL111
:(void)0;
4088 { /* Inline abstract_compiler#AbstractCompiler#linker_script (self) on <self:SeparateCompiler> */
4089 var115
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___linker_script
].val
; /* _linker_script on <self:SeparateCompiler> */
4090 if (unlikely(var115
== NULL
)) {
4091 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _linker_script");
4092 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 588);
4096 RET_LABEL114
:(void)0;
4099 if (unlikely(varonce116
==NULL
)) {
4100 var117
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
4101 if (likely(varonce118
!=NULL
)) {
4102 var119
= varonce118
;
4105 var121
= core__flat___NativeString___to_s_full(var120
, 1l, 1l);
4107 varonce118
= var119
;
4109 ((struct instance_core__NativeArray
*)var117
)->values
[0]=var119
;
4110 if (likely(varonce122
!=NULL
)) {
4111 var123
= varonce122
;
4114 var125
= core__flat___NativeString___to_s_full(var124
, 3l, 3l);
4116 varonce122
= var123
;
4118 ((struct instance_core__NativeArray
*)var117
)->values
[2]=var123
;
4119 if (likely(varonce126
!=NULL
)) {
4120 var127
= varonce126
;
4123 var129
= core__flat___NativeString___to_s_full(var128
, 1l, 1l);
4125 varonce126
= var127
;
4127 ((struct instance_core__NativeArray
*)var117
)->values
[4]=var127
;
4129 var117
= varonce116
;
4133 var130
= nitc__separate_compiler___MEntity___const_color(var_m
);
4135 ((struct instance_core__NativeArray
*)var117
)->values
[1]=var130
;
4136 var131
= core__flat___Int___core__abstract_text__Object__to_s(var_color
);
4137 ((struct instance_core__NativeArray
*)var117
)->values
[3]=var131
;
4139 var132
= ((val
*(*)(val
* self
))(var117
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var117
); /* native_to_s on <var117:NativeArray[String]>*/
4141 varonce116
= var117
;
4143 core___core__Array___core__abstract_collection__SimpleCollection__add(var113
, var132
); /* Direct call array#Array#add on <var113:Array[String]>*/
4148 PRINT_ERROR("Runtime error: %s", "Aborted");
4149 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 303);
4153 { /* Inline separate_compiler#SeparateCompiler#color_consts_done (self) on <self:SeparateCompiler> */
4154 var135
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___color_consts_done
].val
; /* _color_consts_done on <self:SeparateCompiler> */
4155 if (unlikely(var135
== NULL
)) {
4156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done");
4157 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 308);
4161 RET_LABEL134
:(void)0;
4165 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var133
, var_m
); /* Direct call hash_collection#HashSet#add on <var133:HashSet[Object]>*/
4169 /* method separate_compiler#SeparateCompiler#color_consts_done for (self: SeparateCompiler): HashSet[Object] */
4170 val
* nitc___nitc__SeparateCompiler___color_consts_done(val
* self
) {
4171 val
* var
/* : HashSet[Object] */;
4172 val
* var1
/* : HashSet[Object] */;
4173 var1
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___color_consts_done
].val
; /* _color_consts_done on <self:SeparateCompiler> */
4174 if (unlikely(var1
== NULL
)) {
4175 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _color_consts_done");
4176 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 308);
4183 /* method separate_compiler#SeparateCompiler#class_conflict_graph for (self: SeparateCompiler): POSetConflictGraph[MClass] */
4184 val
* nitc___nitc__SeparateCompiler___class_conflict_graph(val
* self
) {
4185 val
* var
/* : POSetConflictGraph[MClass] */;
4186 val
* var1
/* : POSetConflictGraph[MClass] */;
4187 var1
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___class_conflict_graph
].val
; /* _class_conflict_graph on <self:SeparateCompiler> */
4188 if (unlikely(var1
== NULL
)) {
4189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_conflict_graph");
4190 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 310);
4197 /* method separate_compiler#SeparateCompiler#class_conflict_graph= for (self: SeparateCompiler, POSetConflictGraph[MClass]) */
4198 void nitc___nitc__SeparateCompiler___class_conflict_graph_61d(val
* self
, val
* p0
) {
4199 self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___class_conflict_graph
].val
= p0
; /* _class_conflict_graph on <self:SeparateCompiler> */
4202 /* method separate_compiler#SeparateCompiler#do_property_coloring for (self: SeparateCompiler) */
4203 void nitc___nitc__SeparateCompiler___do_property_coloring(val
* self
) {
4204 val
* var
/* : nullable RapidTypeAnalysis */;
4205 val
* var2
/* : nullable RapidTypeAnalysis */;
4206 val
* var_rta
/* var rta: nullable RapidTypeAnalysis */;
4207 val
* var3
/* : MModule */;
4208 val
* var5
/* : MModule */;
4209 val
* var6
/* : POSet[MClass] */;
4210 val
* var_mclasses
/* var mclasses: POSet[MClass] */;
4211 val
* var7
/* : POSetConflictGraph[nullable Object] */;
4212 val
* var9
/* : HashMap[MClass, Set[PropertyLayoutElement]] */;
4213 val
* var_mmethods
/* var mmethods: HashMap[MClass, Set[PropertyLayoutElement]] */;
4214 val
* var10
/* : HashMap[MClass, Set[MAttribute]] */;
4215 val
* var_mattributes
/* var mattributes: HashMap[MClass, Set[MAttribute]] */;
4216 val
* var11
/* : Array[PropertyLayoutElement] */;
4217 val
* var_dead_methods
/* var dead_methods: Array[PropertyLayoutElement] */;
4218 val
* var_
/* var : POSet[MClass] */;
4219 val
* var12
/* : Iterator[nullable Object] */;
4220 val
* var_13
/* var : Iterator[MClass] */;
4221 short int var14
/* : Bool */;
4222 val
* var15
/* : nullable Object */;
4223 val
* var_mclass
/* var mclass: MClass */;
4224 val
* var16
/* : HashSet[PropertyLayoutElement] */;
4225 val
* var17
/* : HashSet[MAttribute] */;
4226 short int var18
/* : Bool */;
4227 short int var19
/* : Bool */;
4228 val
* var_other
/* var other: nullable Object */;
4229 short int var21
/* : Bool */;
4230 short int var22
/* : Bool */;
4231 val
* var23
/* : HashSet[MMethod] */;
4232 val
* var25
/* : HashSet[MMethod] */;
4233 val
* var_26
/* var : HashSet[MMethod] */;
4234 val
* var27
/* : Iterator[nullable Object] */;
4235 val
* var_28
/* var : Iterator[MMethod] */;
4236 short int var29
/* : Bool */;
4237 val
* var31
/* : nullable Object */;
4238 val
* var_m
/* var m: MMethod */;
4239 val
* var32
/* : MClassDef */;
4240 val
* var34
/* : MClassDef */;
4241 val
* var35
/* : MClass */;
4242 val
* var37
/* : MClass */;
4243 val
* var38
/* : nullable Object */;
4244 val
* var39
/* : HashSet[MMethodDef] */;
4245 val
* var41
/* : HashSet[MMethodDef] */;
4246 val
* var_42
/* var : HashSet[MMethodDef] */;
4247 val
* var43
/* : Iterator[nullable Object] */;
4248 val
* var_44
/* var : Iterator[MMethodDef] */;
4249 short int var45
/* : Bool */;
4250 val
* var47
/* : nullable Object */;
4251 val
* var_m48
/* var m: MMethodDef */;
4252 val
* var49
/* : MClassDef */;
4253 val
* var51
/* : MClassDef */;
4254 val
* var52
/* : MClass */;
4255 val
* var54
/* : MClass */;
4256 val
* var_mclass55
/* var mclass: MClass */;
4257 val
* var56
/* : nullable Object */;
4258 val
* var57
/* : MModule */;
4259 val
* var59
/* : MModule */;
4260 val
* var60
/* : POSetElement[MModule] */;
4261 val
* var62
/* : POSetElement[MModule] */;
4262 val
* var63
/* : Collection[nullable Object] */;
4263 val
* var_64
/* var : Collection[MModule] */;
4264 val
* var65
/* : Iterator[nullable Object] */;
4265 val
* var_66
/* var : Iterator[MModule] */;
4266 short int var67
/* : Bool */;
4267 val
* var69
/* : nullable Object */;
4268 val
* var_m70
/* var m: MModule */;
4269 val
* var71
/* : Array[MClassDef] */;
4270 val
* var73
/* : Array[MClassDef] */;
4271 val
* var_74
/* var : Array[MClassDef] */;
4272 val
* var75
/* : IndexedIterator[nullable Object] */;
4273 val
* var_76
/* var : IndexedIterator[MClassDef] */;
4274 short int var77
/* : Bool */;
4275 val
* var79
/* : nullable Object */;
4276 val
* var_cd
/* var cd: MClassDef */;
4277 val
* var80
/* : MClass */;
4278 val
* var82
/* : MClass */;
4279 val
* var_mclass83
/* var mclass: MClass */;
4280 val
* var84
/* : Array[MProperty] */;
4281 val
* var86
/* : Array[MProperty] */;
4282 val
* var_87
/* var : Array[MProperty] */;
4283 val
* var88
/* : IndexedIterator[nullable Object] */;
4284 val
* var_89
/* var : IndexedIterator[MProperty] */;
4285 short int var90
/* : Bool */;
4286 val
* var92
/* : nullable Object */;
4287 val
* var_p
/* var p: MProperty */;
4288 short int var93
/* : Bool */;
4291 short int var94
/* : Bool */;
4292 short int var95
/* : Bool */;
4293 val
* var_other97
/* var other: nullable Object */;
4294 short int var98
/* : Bool */;
4295 short int var100
/* : Bool */;
4296 val
* var101
/* : nullable Object */;
4297 val
* var102
/* : HashSet[MMethod] */;
4298 val
* var104
/* : HashSet[MMethod] */;
4299 short int var105
/* : Bool */;
4300 short int var106
/* : Bool */;
4301 short int var107
/* : Bool */;
4304 val
* var110
/* : nullable Object */;
4305 val
* var111
/* : Array[MPropDef] */;
4306 val
* var113
/* : Array[MPropDef] */;
4307 val
* var_114
/* var : Array[MPropDef] */;
4308 val
* var115
/* : IndexedIterator[nullable Object] */;
4309 val
* var_116
/* var : IndexedIterator[MPropDef] */;
4310 short int var117
/* : Bool */;
4311 val
* var119
/* : nullable Object */;
4312 val
* var_mpropdef
/* var mpropdef: MPropDef */;
4313 short int var120
/* : Bool */;
4316 short int var123
/* : Bool */;
4317 short int var125
/* : Bool */;
4318 short int var127
/* : Bool */;
4319 short int var128
/* : Bool */;
4320 short int var129
/* : Bool */;
4321 short int var131
/* : Bool */;
4322 short int var133
/* : Bool */;
4323 val
* var134
/* : nullable Object */;
4324 val
* var135
/* : HashSet[MMethodDef] */;
4325 val
* var137
/* : HashSet[MMethodDef] */;
4326 short int var138
/* : Bool */;
4327 short int var139
/* : Bool */;
4328 val
* var140
/* : POSetGroupColorer[MClass, PropertyLayoutElement] */;
4329 val
* var141
/* : POSetConflictGraph[MClass] */;
4330 val
* var143
/* : POSetConflictGraph[MClass] */;
4331 val
* var_meth_colorer
/* var meth_colorer: POSetGroupColorer[MClass, PropertyLayoutElement] */;
4332 val
* var144
/* : Map[Object, Int] */;
4333 val
* var_method_colors
/* var method_colors: Map[PropertyLayoutElement, Int] */;
4334 val
* var_145
/* var : Array[PropertyLayoutElement] */;
4335 val
* var146
/* : IndexedIterator[nullable Object] */;
4336 val
* var_147
/* var : IndexedIterator[PropertyLayoutElement] */;
4337 short int var148
/* : Bool */;
4338 val
* var150
/* : nullable Object */;
4339 val
* var_mproperty
/* var mproperty: PropertyLayoutElement */;
4340 val
* var151
/* : AbstractCompilerVisitor */;
4341 long var152
/* : Int */;
4342 long var154
/* : Int */;
4343 val
* var155
/* : POSetGroupColorer[MClass, MAttribute] */;
4344 val
* var156
/* : POSetConflictGraph[MClass] */;
4345 val
* var158
/* : POSetConflictGraph[MClass] */;
4346 val
* var_attr_colorer
/* var attr_colorer: POSetGroupColorer[MClass, MAttribute] */;
4347 val
* var159
/* : Map[Object, Int] */;
4348 val
* var_attr_colors
/* var attr_colors: Map[MAttribute, Int] */;
4349 val
* var160
/* : HashMap[MClass, Array[nullable MPropDef]] */;
4350 val
* var162
/* : HashMap[MClass, Array[nullable MProperty]] */;
4351 val
* var_164
/* var : POSet[MClass] */;
4352 val
* var165
/* : Iterator[nullable Object] */;
4353 val
* var_166
/* var : Iterator[MClass] */;
4354 short int var167
/* : Bool */;
4355 val
* var169
/* : nullable Object */;
4356 val
* var_mclass170
/* var mclass: MClass */;
4357 short int var171
/* : Bool */;
4358 short int var172
/* : Bool */;
4359 short int var174
/* : Bool */;
4360 short int var175
/* : Bool */;
4361 short int var_176
/* var : Bool */;
4362 short int var177
/* : Bool */;
4363 val
* var178
/* : MClassKind */;
4364 val
* var180
/* : MClassKind */;
4365 val
* var181
/* : Sys */;
4366 val
* var182
/* : MClassKind */;
4367 short int var183
/* : Bool */;
4368 short int var185
/* : Bool */;
4369 short int var187
/* : Bool */;
4370 short int var_188
/* var : Bool */;
4371 val
* var189
/* : MClassKind */;
4372 val
* var191
/* : MClassKind */;
4373 val
* var192
/* : Sys */;
4374 val
* var193
/* : MClassKind */;
4375 short int var194
/* : Bool */;
4376 short int var196
/* : Bool */;
4377 short int var198
/* : Bool */;
4378 short int var200
/* : Bool */;
4379 short int var201
/* : Bool */;
4380 short int var202
/* : Bool */;
4381 short int var204
/* : Bool */;
4382 short int var205
/* : Bool */;
4383 short int var_206
/* var : Bool */;
4384 val
* var207
/* : HashSet[MClass] */;
4385 val
* var209
/* : HashSet[MClass] */;
4386 short int var210
/* : Bool */;
4387 short int var211
/* : Bool */;
4388 val
* var212
/* : MClassDef */;
4389 val
* var214
/* : MClassDef */;
4390 val
* var215
/* : MClassType */;
4391 val
* var217
/* : MClassType */;
4392 val
* var_mtype
/* var mtype: MClassType */;
4393 val
* var218
/* : Array[nullable Object] */;
4394 val
* var_meth_layout
/* var meth_layout: Array[nullable PropertyLayoutElement] */;
4395 val
* var219
/* : Array[nullable MPropDef] */;
4396 long var220
/* : Int */;
4397 long var222
/* : Int */;
4398 val
* var_meth_table
/* var meth_table: Array[nullable MPropDef] */;
4399 val
* var223
/* : Map[MClass, Array[nullable MPropDef]] */;
4400 val
* var225
/* : Map[MClass, Array[nullable MPropDef]] */;
4401 val
* var_226
/* var : Array[nullable PropertyLayoutElement] */;
4402 val
* var227
/* : IndexedIterator[nullable Object] */;
4403 val
* var_228
/* var : IndexedIterator[nullable PropertyLayoutElement] */;
4404 short int var229
/* : Bool */;
4405 val
* var231
/* : nullable Object */;
4406 val
* var_e
/* var e: nullable PropertyLayoutElement */;
4407 short int var232
/* : Bool */;
4408 short int var233
/* : Bool */;
4409 short int var235
/* : Bool */;
4410 short int var237
/* : Bool */;
4411 short int var238
/* : Bool */;
4414 val
* var241
/* : MModule */;
4415 val
* var243
/* : MModule */;
4416 val
* var244
/* : MPropDef */;
4417 short int var245
/* : Bool */;
4420 val
* var248
/* : MModule */;
4421 val
* var250
/* : MModule */;
4422 val
* var251
/* : MPropDef */;
4423 val
* var252
/* : Map[MClass, Array[nullable MProperty]] */;
4424 val
* var254
/* : Map[MClass, Array[nullable MProperty]] */;
4425 val
* var255
/* : Array[nullable Object] */;
4427 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
4428 var2
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
4435 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
4436 var5
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
4437 if (unlikely(var5
== NULL
)) {
4438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4439 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
4447 var6
= nitc__model___MModule___flatten_mclass_hierarchy(var3
);
4449 var_mclasses
= var6
;
4451 var7
= nitc__coloring___poset__POSet___to_conflict_graph(var_mclasses
);
4454 { /* Inline separate_compiler#SeparateCompiler#class_conflict_graph= (self,var7) on <self:SeparateCompiler> */
4455 self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___class_conflict_graph
].val
= var7
; /* _class_conflict_graph on <self:SeparateCompiler> */
4459 var9
= NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Set__nitc__PropertyLayoutElement
);
4461 core___core__HashMap___core__kernel__Object__init(var9
); /* Direct call hash_collection#HashMap#init on <var9:HashMap[MClass, Set[PropertyLayoutElement]]>*/
4463 var_mmethods
= var9
;
4464 var10
= NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Set__nitc__MAttribute
);
4466 core___core__HashMap___core__kernel__Object__init(var10
); /* Direct call hash_collection#HashMap#init on <var10:HashMap[MClass, Set[MAttribute]]>*/
4468 var_mattributes
= var10
;
4469 var11
= NEW_core__Array(&type_core__Array__nitc__PropertyLayoutElement
);
4471 core___core__Array___core__kernel__Object__init(var11
); /* Direct call array#Array#init on <var11:Array[PropertyLayoutElement]>*/
4473 var_dead_methods
= var11
;
4474 var_
= var_mclasses
;
4476 var12
= poset___poset__POSet___core__abstract_collection__Collection__iterator(var_
);
4481 var14
= ((short int(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_13
); /* is_ok on <var_13:Iterator[MClass]>*/
4488 var15
= ((val
*(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_13
); /* item on <var_13:Iterator[MClass]>*/
4491 var16
= NEW_core__HashSet(&type_core__HashSet__nitc__PropertyLayoutElement
);
4493 core___core__HashSet___core__kernel__Object__init(var16
); /* Direct call hash_collection#HashSet#init on <var16:HashSet[PropertyLayoutElement]>*/
4496 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_mmethods
, var_mclass
, var16
); /* Direct call hash_collection#HashMap#[]= on <var_mmethods:HashMap[MClass, Set[PropertyLayoutElement]]>*/
4498 var17
= NEW_core__HashSet(&type_core__HashSet__nitc__MAttribute
);
4500 core___core__HashSet___core__kernel__Object__init(var17
); /* Direct call hash_collection#HashSet#init on <var17:HashSet[MAttribute]>*/
4503 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_mattributes
, var_mclass
, var17
); /* Direct call hash_collection#HashMap#[]= on <var_mattributes:HashMap[MClass, Set[MAttribute]]>*/
4506 ((void(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_13
); /* next on <var_13:Iterator[MClass]>*/
4509 BREAK_label
: (void)0;
4511 ((void(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_13
); /* finish on <var_13:Iterator[MClass]>*/
4513 if (var_rta
== NULL
) {
4514 var18
= 0; /* is null */
4516 var18
= 1; /* arg is null and recv is not */
4519 { /* Inline kernel#Object#!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
4520 var_other
= ((val
*)NULL
);
4522 var21
= ((short int(*)(val
* self
, val
* p0
))(var_rta
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_rta
, var_other
); /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/
4527 RET_LABEL20
:(void)0;
4533 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4534 var25
= var_rta
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4535 if (unlikely(var25
== NULL
)) {
4536 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
4537 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 82);
4541 RET_LABEL24
:(void)0;
4546 var27
= core___core__HashSet___core__abstract_collection__Collection__iterator(var_26
);
4551 var29
= ((short int(*)(val
* self
))((((long)var_28
&3)?class_info
[((long)var_28
&3)]:var_28
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_28
); /* is_ok on <var_28:Iterator[MMethod]>*/
4558 var31
= ((val
*(*)(val
* self
))((((long)var_28
&3)?class_info
[((long)var_28
&3)]:var_28
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_28
); /* item on <var_28:Iterator[MMethod]>*/
4562 { /* Inline model#MProperty#intro_mclassdef (var_m) on <var_m:MMethod> */
4563 var34
= var_m
->attrs
[COLOR_nitc__model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var_m:MMethod> */
4564 if (unlikely(var34
== NULL
)) {
4565 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
4566 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1946);
4570 RET_LABEL33
:(void)0;
4574 { /* Inline model#MClassDef#mclass (var32) on <var32:MClassDef> */
4575 var37
= var32
->attrs
[COLOR_nitc__model__MClassDef___mclass
].val
; /* _mclass on <var32:MClassDef> */
4576 if (unlikely(var37
== NULL
)) {
4577 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4578 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 576);
4582 RET_LABEL36
:(void)0;
4586 var38
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var_mmethods
, var35
);
4589 ((void(*)(val
* self
, val
* p0
))((((long)var38
&3)?class_info
[((long)var38
&3)]:var38
->class)->vft
[COLOR_core__abstract_collection__SimpleCollection__add
]))(var38
, var_m
); /* add on <var38:nullable Object(Set[PropertyLayoutElement])>*/
4592 ((void(*)(val
* self
))((((long)var_28
&3)?class_info
[((long)var_28
&3)]:var_28
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_28
); /* next on <var_28:Iterator[MMethod]>*/
4595 BREAK_label30
: (void)0;
4597 ((void(*)(val
* self
))((((long)var_28
&3)?class_info
[((long)var_28
&3)]:var_28
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_28
); /* finish on <var_28:Iterator[MMethod]>*/
4600 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4601 var41
= var_rta
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4602 if (unlikely(var41
== NULL
)) {
4603 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
4604 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 118);
4608 RET_LABEL40
:(void)0;
4613 var43
= core___core__HashSet___core__abstract_collection__Collection__iterator(var_42
);
4618 var45
= ((short int(*)(val
* self
))((((long)var_44
&3)?class_info
[((long)var_44
&3)]:var_44
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_44
); /* is_ok on <var_44:Iterator[MMethodDef]>*/
4625 var47
= ((val
*(*)(val
* self
))((((long)var_44
&3)?class_info
[((long)var_44
&3)]:var_44
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_44
); /* item on <var_44:Iterator[MMethodDef]>*/
4629 { /* Inline model#MPropDef#mclassdef (var_m48) on <var_m48:MMethodDef> */
4630 var51
= var_m48
->attrs
[COLOR_nitc__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_m48:MMethodDef> */
4631 if (unlikely(var51
== NULL
)) {
4632 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4633 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 2227);
4637 RET_LABEL50
:(void)0;
4641 { /* Inline model#MClassDef#mclass (var49) on <var49:MClassDef> */
4642 var54
= var49
->attrs
[COLOR_nitc__model__MClassDef___mclass
].val
; /* _mclass on <var49:MClassDef> */
4643 if (unlikely(var54
== NULL
)) {
4644 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4645 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 576);
4649 RET_LABEL53
:(void)0;
4652 var_mclass55
= var52
;
4654 var56
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var_mmethods
, var_mclass55
);
4657 ((void(*)(val
* self
, val
* p0
))((((long)var56
&3)?class_info
[((long)var56
&3)]:var56
->class)->vft
[COLOR_core__abstract_collection__SimpleCollection__add
]))(var56
, var_m48
); /* add on <var56:nullable Object(Set[PropertyLayoutElement])>*/
4660 ((void(*)(val
* self
))((((long)var_44
&3)?class_info
[((long)var_44
&3)]:var_44
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_44
); /* next on <var_44:Iterator[MMethodDef]>*/
4663 BREAK_label46
: (void)0;
4665 ((void(*)(val
* self
))((((long)var_44
&3)?class_info
[((long)var_44
&3)]:var_44
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_44
); /* finish on <var_44:Iterator[MMethodDef]>*/
4670 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
4671 var59
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
4672 if (unlikely(var59
== NULL
)) {
4673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4674 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
4678 RET_LABEL58
:(void)0;
4682 { /* Inline mmodule#MModule#in_importation (var57) on <var57:MModule> */
4683 var62
= var57
->attrs
[COLOR_nitc__mmodule__MModule___in_importation
].val
; /* _in_importation on <var57:MModule> */
4684 if (unlikely(var62
== NULL
)) {
4685 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
4686 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule
, 104);
4690 RET_LABEL61
:(void)0;
4694 var63
= poset___poset__POSetElement___greaters(var60
);
4698 var65
= ((val
*(*)(val
* self
))((((long)var_64
&3)?class_info
[((long)var_64
&3)]:var_64
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_64
); /* iterator on <var_64:Collection[MModule]>*/
4703 var67
= ((short int(*)(val
* self
))((((long)var_66
&3)?class_info
[((long)var_66
&3)]:var_66
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_66
); /* is_ok on <var_66:Iterator[MModule]>*/
4710 var69
= ((val
*(*)(val
* self
))((((long)var_66
&3)?class_info
[((long)var_66
&3)]:var_66
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_66
); /* item on <var_66:Iterator[MModule]>*/
4714 { /* Inline model#MModule#mclassdefs (var_m70) on <var_m70:MModule> */
4715 var73
= var_m70
->attrs
[COLOR_nitc__model__MModule___mclassdefs
].val
; /* _mclassdefs on <var_m70:MModule> */
4716 if (unlikely(var73
== NULL
)) {
4717 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
4718 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 141);
4722 RET_LABEL72
:(void)0;
4727 var75
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_74
);
4732 var77
= ((short int(*)(val
* self
))((((long)var_76
&3)?class_info
[((long)var_76
&3)]:var_76
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_76
); /* is_ok on <var_76:IndexedIterator[MClassDef]>*/
4739 var79
= ((val
*(*)(val
* self
))((((long)var_76
&3)?class_info
[((long)var_76
&3)]:var_76
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_76
); /* item on <var_76:IndexedIterator[MClassDef]>*/
4743 { /* Inline model#MClassDef#mclass (var_cd) on <var_cd:MClassDef> */
4744 var82
= var_cd
->attrs
[COLOR_nitc__model__MClassDef___mclass
].val
; /* _mclass on <var_cd:MClassDef> */
4745 if (unlikely(var82
== NULL
)) {
4746 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4747 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 576);
4751 RET_LABEL81
:(void)0;
4754 var_mclass83
= var80
;
4756 { /* Inline model#MClassDef#intro_mproperties (var_cd) on <var_cd:MClassDef> */
4757 var86
= var_cd
->attrs
[COLOR_nitc__model__MClassDef___intro_mproperties
].val
; /* _intro_mproperties on <var_cd:MClassDef> */
4758 if (unlikely(var86
== NULL
)) {
4759 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mproperties");
4760 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 704);
4764 RET_LABEL85
:(void)0;
4769 var88
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_87
);
4774 var90
= ((short int(*)(val
* self
))((((long)var_89
&3)?class_info
[((long)var_89
&3)]:var_89
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_89
); /* is_ok on <var_89:IndexedIterator[MProperty]>*/
4781 var92
= ((val
*(*)(val
* self
))((((long)var_89
&3)?class_info
[((long)var_89
&3)]:var_89
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_89
); /* item on <var_89:IndexedIterator[MProperty]>*/
4784 /* <var_p:MProperty> isa MMethod */
4785 cltype
= type_nitc__MMethod
.color
;
4786 idtype
= type_nitc__MMethod
.id
;
4787 if(cltype
>= var_p
->type
->table_size
) {
4790 var93
= var_p
->type
->type_table
[cltype
] == idtype
;
4793 if (var_rta
== NULL
) {
4794 var94
= 1; /* is null */
4796 var94
= 0; /* arg is null but recv is not */
4799 { /* Inline kernel#Object#== (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
4800 var_other97
= ((val
*)NULL
);
4802 { /* Inline kernel#Object#is_same_instance (var_rta,var_other97) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4803 var100
= var_rta
== var_other97
;
4806 RET_LABEL99
:(void)0;
4811 RET_LABEL96
:(void)0;
4817 var101
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var_mmethods
, var_mclass83
);
4820 ((void(*)(val
* self
, val
* p0
))((((long)var101
&3)?class_info
[((long)var101
&3)]:var101
->class)->vft
[COLOR_core__abstract_collection__SimpleCollection__add
]))(var101
, var_p
); /* add on <var101:nullable Object(Set[PropertyLayoutElement])>*/
4824 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4825 var104
= var_rta
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4826 if (unlikely(var104
== NULL
)) {
4827 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
4828 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 82);
4832 RET_LABEL103
:(void)0;
4836 var105
= core___core__HashSet___core__abstract_collection__Collection__has(var102
, var_p
);
4841 core___core__Array___core__abstract_collection__SimpleCollection__add(var_dead_methods
, var_p
); /* Direct call array#Array#add on <var_dead_methods:Array[PropertyLayoutElement]>*/
4847 /* <var_p:MProperty> isa MAttribute */
4848 cltype108
= type_nitc__MAttribute
.color
;
4849 idtype109
= type_nitc__MAttribute
.id
;
4850 if(cltype108
>= var_p
->type
->table_size
) {
4853 var107
= var_p
->type
->type_table
[cltype108
] == idtype109
;
4857 var110
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var_mattributes
, var_mclass83
);
4860 ((void(*)(val
* self
, val
* p0
))((((long)var110
&3)?class_info
[((long)var110
&3)]:var110
->class)->vft
[COLOR_core__abstract_collection__SimpleCollection__add
]))(var110
, var_p
); /* add on <var110:nullable Object(Set[MAttribute])>*/
4866 ((void(*)(val
* self
))((((long)var_89
&3)?class_info
[((long)var_89
&3)]:var_89
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_89
); /* next on <var_89:IndexedIterator[MProperty]>*/
4869 BREAK_label91
: (void)0;
4871 ((void(*)(val
* self
))((((long)var_89
&3)?class_info
[((long)var_89
&3)]:var_89
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_89
); /* finish on <var_89:IndexedIterator[MProperty]>*/
4874 { /* Inline model#MClassDef#mpropdefs (var_cd) on <var_cd:MClassDef> */
4875 var113
= var_cd
->attrs
[COLOR_nitc__model__MClassDef___mpropdefs
].val
; /* _mpropdefs on <var_cd:MClassDef> */
4876 if (unlikely(var113
== NULL
)) {
4877 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
4878 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 707);
4882 RET_LABEL112
:(void)0;
4887 var115
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_114
);
4892 var117
= ((short int(*)(val
* self
))((((long)var_116
&3)?class_info
[((long)var_116
&3)]:var_116
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_116
); /* is_ok on <var_116:IndexedIterator[MPropDef]>*/
4896 goto BREAK_label118
;
4899 var119
= ((val
*(*)(val
* self
))((((long)var_116
&3)?class_info
[((long)var_116
&3)]:var_116
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_116
); /* item on <var_116:IndexedIterator[MPropDef]>*/
4901 var_mpropdef
= var119
;
4902 /* <var_mpropdef:MPropDef> isa MMethodDef */
4903 cltype121
= type_nitc__MMethodDef
.color
;
4904 idtype122
= type_nitc__MMethodDef
.id
;
4905 if(cltype121
>= var_mpropdef
->type
->table_size
) {
4908 var120
= var_mpropdef
->type
->type_table
[cltype121
] == idtype122
;
4912 goto BREAK_label124
;
4916 { /* Inline modelize_property#MPropDef#has_supercall (var_mpropdef) on <var_mpropdef:MPropDef(MMethodDef)> */
4917 var127
= var_mpropdef
->attrs
[COLOR_nitc__modelize_property__MPropDef___has_supercall
].s
; /* _has_supercall on <var_mpropdef:MPropDef(MMethodDef)> */
4919 RET_LABEL126
:(void)0;
4923 if (var_rta
== NULL
) {
4924 var128
= 1; /* is null */
4926 var128
= 0; /* arg is null but recv is not */
4929 { /* Inline kernel#Object#== (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
4930 var_other97
= ((val
*)NULL
);
4932 { /* Inline kernel#Object#is_same_instance (var_rta,var_other97) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4933 var133
= var_rta
== var_other97
;
4936 RET_LABEL132
:(void)0;
4941 RET_LABEL130
:(void)0;
4947 var134
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var_mmethods
, var_mclass83
);
4950 ((void(*)(val
* self
, val
* p0
))((((long)var134
&3)?class_info
[((long)var134
&3)]:var134
->class)->vft
[COLOR_core__abstract_collection__SimpleCollection__add
]))(var134
, var_mpropdef
); /* add on <var134:nullable Object(Set[PropertyLayoutElement])>*/
4954 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4955 var137
= var_rta
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4956 if (unlikely(var137
== NULL
)) {
4957 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
4958 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 118);
4962 RET_LABEL136
:(void)0;
4966 var138
= core___core__HashSet___core__abstract_collection__Collection__has(var135
, var_mpropdef
);
4971 core___core__Array___core__abstract_collection__SimpleCollection__add(var_dead_methods
, var_mpropdef
); /* Direct call array#Array#add on <var_dead_methods:Array[PropertyLayoutElement]>*/
4978 BREAK_label124
: (void)0;
4980 ((void(*)(val
* self
))((((long)var_116
&3)?class_info
[((long)var_116
&3)]:var_116
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_116
); /* next on <var_116:IndexedIterator[MPropDef]>*/
4983 BREAK_label118
: (void)0;
4985 ((void(*)(val
* self
))((((long)var_116
&3)?class_info
[((long)var_116
&3)]:var_116
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_116
); /* finish on <var_116:IndexedIterator[MPropDef]>*/
4988 ((void(*)(val
* self
))((((long)var_76
&3)?class_info
[((long)var_76
&3)]:var_76
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_76
); /* next on <var_76:IndexedIterator[MClassDef]>*/
4991 BREAK_label78
: (void)0;
4993 ((void(*)(val
* self
))((((long)var_76
&3)?class_info
[((long)var_76
&3)]:var_76
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_76
); /* finish on <var_76:IndexedIterator[MClassDef]>*/
4996 ((void(*)(val
* self
))((((long)var_66
&3)?class_info
[((long)var_66
&3)]:var_66
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_66
); /* next on <var_66:Iterator[MModule]>*/
4999 BREAK_label68
: (void)0;
5001 ((void(*)(val
* self
))((((long)var_66
&3)?class_info
[((long)var_66
&3)]:var_66
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_66
); /* finish on <var_66:Iterator[MModule]>*/
5003 var140
= NEW_nitc__POSetGroupColorer(&type_nitc__POSetGroupColorer__nitc__MClass__nitc__PropertyLayoutElement
);
5005 { /* Inline separate_compiler#SeparateCompiler#class_conflict_graph (self) on <self:SeparateCompiler> */
5006 var143
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___class_conflict_graph
].val
; /* _class_conflict_graph on <self:SeparateCompiler> */
5007 if (unlikely(var143
== NULL
)) {
5008 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_conflict_graph");
5009 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 310);
5013 RET_LABEL142
:(void)0;
5017 ((void(*)(val
* self
, val
* p0
))(var140
->class->vft
[COLOR_nitc__coloring__POSetGroupColorer__graph_61d
]))(var140
, var141
); /* graph= on <var140:POSetGroupColorer[MClass, PropertyLayoutElement]>*/
5020 ((void(*)(val
* self
, val
* p0
))(var140
->class->vft
[COLOR_nitc__coloring__POSetGroupColorer__buckets_61d
]))(var140
, var_mmethods
); /* buckets= on <var140:POSetGroupColorer[MClass, PropertyLayoutElement]>*/
5023 ((void(*)(val
* self
))(var140
->class->vft
[COLOR_core__kernel__Object__init
]))(var140
); /* init on <var140:POSetGroupColorer[MClass, PropertyLayoutElement]>*/
5025 var_meth_colorer
= var140
;
5027 var144
= nitc___nitc__POSetGroupColorer___colors(var_meth_colorer
);
5029 var_method_colors
= var144
;
5031 nitc___nitc__SeparateCompiler___compile_color_consts(self
, var_method_colors
); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:SeparateCompiler>*/
5033 var_145
= var_dead_methods
;
5035 var146
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_145
);
5040 var148
= ((short int(*)(val
* self
))((((long)var_147
&3)?class_info
[((long)var_147
&3)]:var_147
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_147
); /* is_ok on <var_147:IndexedIterator[PropertyLayoutElement]>*/
5044 goto BREAK_label149
;
5047 var150
= ((val
*(*)(val
* self
))((((long)var_147
&3)?class_info
[((long)var_147
&3)]:var_147
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_147
); /* item on <var_147:IndexedIterator[PropertyLayoutElement]>*/
5049 var_mproperty
= var150
;
5051 var151
= ((val
*(*)(val
* self
))(self
->class->vft
[COLOR_nitc__abstract_compiler__AbstractCompiler__new_visitor
]))(self
); /* new_visitor on <self:SeparateCompiler>*/
5054 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
5058 RET_LABEL153
:(void)0;
5062 nitc___nitc__SeparateCompiler___compile_color_const(self
, var151
, var_mproperty
, var152
); /* Direct call separate_compiler#SeparateCompiler#compile_color_const on <self:SeparateCompiler>*/
5065 ((void(*)(val
* self
))((((long)var_147
&3)?class_info
[((long)var_147
&3)]:var_147
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_147
); /* next on <var_147:IndexedIterator[PropertyLayoutElement]>*/
5068 BREAK_label149
: (void)0;
5070 ((void(*)(val
* self
))((((long)var_147
&3)?class_info
[((long)var_147
&3)]:var_147
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_147
); /* finish on <var_147:IndexedIterator[PropertyLayoutElement]>*/
5072 var155
= NEW_nitc__POSetGroupColorer(&type_nitc__POSetGroupColorer__nitc__MClass__nitc__MAttribute
);
5074 { /* Inline separate_compiler#SeparateCompiler#class_conflict_graph (self) on <self:SeparateCompiler> */
5075 var158
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___class_conflict_graph
].val
; /* _class_conflict_graph on <self:SeparateCompiler> */
5076 if (unlikely(var158
== NULL
)) {
5077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_conflict_graph");
5078 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 310);
5082 RET_LABEL157
:(void)0;
5086 ((void(*)(val
* self
, val
* p0
))(var155
->class->vft
[COLOR_nitc__coloring__POSetGroupColorer__graph_61d
]))(var155
, var156
); /* graph= on <var155:POSetGroupColorer[MClass, MAttribute]>*/
5089 ((void(*)(val
* self
, val
* p0
))(var155
->class->vft
[COLOR_nitc__coloring__POSetGroupColorer__buckets_61d
]))(var155
, var_mattributes
); /* buckets= on <var155:POSetGroupColorer[MClass, MAttribute]>*/
5092 ((void(*)(val
* self
))(var155
->class->vft
[COLOR_core__kernel__Object__init
]))(var155
); /* init on <var155:POSetGroupColorer[MClass, MAttribute]>*/
5094 var_attr_colorer
= var155
;
5096 var159
= nitc___nitc__POSetGroupColorer___colors(var_attr_colorer
);
5098 var_attr_colors
= var159
;
5100 nitc___nitc__SeparateCompiler___compile_color_consts(self
, var_attr_colors
); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:SeparateCompiler>*/
5102 var160
= NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Array__nullable__nitc__MPropDef
);
5104 core___core__HashMap___core__kernel__Object__init(var160
); /* Direct call hash_collection#HashMap#init on <var160:HashMap[MClass, Array[nullable MPropDef]]>*/
5107 { /* Inline separate_compiler#SeparateCompiler#method_tables= (self,var160) on <self:SeparateCompiler> */
5108 self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___method_tables
].val
= var160
; /* _method_tables on <self:SeparateCompiler> */
5109 RET_LABEL161
:(void)0;
5112 var162
= NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Array__nullable__nitc__MProperty
);
5114 core___core__HashMap___core__kernel__Object__init(var162
); /* Direct call hash_collection#HashMap#init on <var162:HashMap[MClass, Array[nullable MProperty]]>*/
5117 { /* Inline separate_compiler#SeparateCompiler#attr_tables= (self,var162) on <self:SeparateCompiler> */
5118 self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___attr_tables
].val
= var162
; /* _attr_tables on <self:SeparateCompiler> */
5119 RET_LABEL163
:(void)0;
5122 var_164
= var_mclasses
;
5124 var165
= poset___poset__POSet___core__abstract_collection__Collection__iterator(var_164
);
5129 var167
= ((short int(*)(val
* self
))((((long)var_166
&3)?class_info
[((long)var_166
&3)]:var_166
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_166
); /* is_ok on <var_166:Iterator[MClass]>*/
5133 goto BREAK_label168
;
5136 var169
= ((val
*(*)(val
* self
))((((long)var_166
&3)?class_info
[((long)var_166
&3)]:var_166
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_166
); /* item on <var_166:Iterator[MClass]>*/
5138 var_mclass170
= var169
;
5140 { /* Inline model#MClass#has_new_factory (var_mclass170) on <var_mclass170:MClass> */
5141 var174
= var_mclass170
->attrs
[COLOR_nitc__model__MClass___has_new_factory
].s
; /* _has_new_factory on <var_mclass170:MClass> */
5143 RET_LABEL173
:(void)0;
5150 { /* Inline model#MClass#kind (var_mclass170) on <var_mclass170:MClass> */
5151 var180
= var_mclass170
->attrs
[COLOR_nitc__model__MClass___kind
].val
; /* _kind on <var_mclass170:MClass> */
5152 if (unlikely(var180
== NULL
)) {
5153 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
5154 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 459);
5158 RET_LABEL179
:(void)0;
5163 var182
= nitc__model___core__Sys___abstract_kind(var181
);
5166 { /* Inline kernel#Object#== (var178,var182) on <var178:MClassKind> */
5167 var_other97
= var182
;
5169 { /* Inline kernel#Object#is_same_instance (var178,var_other97) on <var178:MClassKind> */
5170 var187
= var178
== var_other97
;
5173 RET_LABEL186
:(void)0;
5178 RET_LABEL184
:(void)0;
5186 { /* Inline model#MClass#kind (var_mclass170) on <var_mclass170:MClass> */
5187 var191
= var_mclass170
->attrs
[COLOR_nitc__model__MClass___kind
].val
; /* _kind on <var_mclass170:MClass> */
5188 if (unlikely(var191
== NULL
)) {
5189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
5190 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 459);
5194 RET_LABEL190
:(void)0;
5199 var193
= nitc__model___core__Sys___interface_kind(var192
);
5202 { /* Inline kernel#Object#== (var189,var193) on <var189:MClassKind> */
5203 var_other97
= var193
;
5205 { /* Inline kernel#Object#is_same_instance (var189,var_other97) on <var189:MClassKind> */
5206 var198
= var189
== var_other97
;
5209 RET_LABEL197
:(void)0;
5214 RET_LABEL195
:(void)0;
5224 goto BREAK_label199
;
5227 if (var_rta
== NULL
) {
5228 var201
= 0; /* is null */
5230 var201
= 1; /* arg is null and recv is not */
5233 { /* Inline kernel#Object#!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
5234 var_other
= ((val
*)NULL
);
5236 var204
= ((short int(*)(val
* self
, val
* p0
))(var_rta
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_rta
, var_other
); /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/
5241 RET_LABEL203
:(void)0;
5248 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
5249 var209
= var_rta
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
5250 if (unlikely(var209
== NULL
)) {
5251 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
5252 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 69);
5256 RET_LABEL208
:(void)0;
5260 var210
= core___core__HashSet___core__abstract_collection__Collection__has(var207
, var_mclass170
);
5268 goto BREAK_label199
;
5272 { /* Inline model#MClass#intro (var_mclass170) on <var_mclass170:MClass> */
5273 var214
= var_mclass170
->attrs
[COLOR_nitc__model__MClass___intro
].val
; /* _intro on <var_mclass170:MClass> */
5274 if (unlikely(var214
== NULL
)) {
5275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
5276 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 483);
5280 RET_LABEL213
:(void)0;
5284 { /* Inline model#MClassDef#bound_mtype (var212) on <var212:MClassDef> */
5285 var217
= var212
->attrs
[COLOR_nitc__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var212:MClassDef> */
5286 if (unlikely(var217
== NULL
)) {
5287 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5288 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 579);
5292 RET_LABEL216
:(void)0;
5297 var218
= nitc___nitc__POSetGroupColorer___build_layout(var_meth_colorer
, var_mclass170
);
5299 var_meth_layout
= var218
;
5300 var219
= NEW_core__Array(&type_core__Array__nullable__nitc__MPropDef
);
5302 { /* Inline array#AbstractArrayRead#length (var_meth_layout) on <var_meth_layout:Array[nullable PropertyLayoutElement]> */
5303 var222
= var_meth_layout
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_meth_layout:Array[nullable PropertyLayoutElement]> */
5305 RET_LABEL221
:(void)0;
5309 core___core__Array___with_capacity(var219
, var220
); /* Direct call array#Array#with_capacity on <var219:Array[nullable MPropDef]>*/
5311 var_meth_table
= var219
;
5313 { /* Inline separate_compiler#SeparateCompiler#method_tables (self) on <self:SeparateCompiler> */
5314 var225
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___method_tables
].val
; /* _method_tables on <self:SeparateCompiler> */
5315 if (unlikely(var225
== NULL
)) {
5316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
5317 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 1067);
5321 RET_LABEL224
:(void)0;
5325 ((void(*)(val
* self
, val
* p0
, val
* p1
))((((long)var223
&3)?class_info
[((long)var223
&3)]:var223
->class)->vft
[COLOR_core__abstract_collection__Map___91d_93d_61d
]))(var223
, var_mclass170
, var_meth_table
); /* []= on <var223:Map[MClass, Array[nullable MPropDef]]>*/
5327 var_226
= var_meth_layout
;
5329 var227
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_226
);
5334 var229
= ((short int(*)(val
* self
))((((long)var_228
&3)?class_info
[((long)var_228
&3)]:var_228
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_228
); /* is_ok on <var_228:IndexedIterator[nullable PropertyLayoutElement]>*/
5338 goto BREAK_label230
;
5341 var231
= ((val
*(*)(val
* self
))((((long)var_228
&3)?class_info
[((long)var_228
&3)]:var_228
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_228
); /* item on <var_228:IndexedIterator[nullable PropertyLayoutElement]>*/
5344 if (var_e
== NULL
) {
5345 var232
= 1; /* is null */
5347 var232
= 0; /* arg is null but recv is not */
5350 { /* Inline kernel#Object#== (var_e,((val*)NULL)) on <var_e:nullable PropertyLayoutElement> */
5351 var_other97
= ((val
*)NULL
);
5353 { /* Inline kernel#Object#is_same_instance (var_e,var_other97) on <var_e:nullable PropertyLayoutElement(PropertyLayoutElement)> */
5354 var237
= var_e
== var_other97
|| (var_other97
!= NULL
&& (!((long)var_e
&3)) && (!((long)var_other97
&3)) && var_e
->class == var_other97
->class && ((var_e
->class->box_kind
== 3 && ((struct instance_core__Byte
*)var_e
)->value
== ((struct instance_core__Byte
*)var_other97
)->value
) || (var_e
->class->box_kind
== 5 && ((struct instance_core__Float
*)var_e
)->value
== ((struct instance_core__Float
*)var_other97
)->value
) || (var_e
->class->box_kind
== 6 && ((struct instance_core__NativeString
*)var_e
)->value
== ((struct instance_core__NativeString
*)var_other97
)->value
) || (var_e
->class->box_kind
== 7 && ((struct instance_core__Pointer
*)var_e
)->value
== ((struct instance_core__Pointer
*)var_other97
)->value
) || (var_e
->class->box_kind
== 8 && ((struct instance_core__Int8
*)var_e
)->value
== ((struct instance_core__Int8
*)var_other97
)->value
) || (var_e
->class->box_kind
== 9 && ((struct instance_core__Int16
*)var_e
)->value
== ((struct instance_core__Int16
*)var_other97
)->value
) || (var_e
->class->box_kind
== 10 && ((struct instance_core__UInt16
*)var_e
)->value
== ((struct instance_core__UInt16
*)var_other97
)->value
) || (var_e
->class->box_kind
== 11 && ((struct instance_core__Int32
*)var_e
)->value
== ((struct instance_core__Int32
*)var_other97
)->value
) || (var_e
->class->box_kind
== 12 && ((struct instance_core__UInt32
*)var_e
)->value
== ((struct instance_core__UInt32
*)var_other97
)->value
)));
5357 RET_LABEL236
:(void)0;
5362 RET_LABEL234
:(void)0;
5368 core___core__Array___core__abstract_collection__SimpleCollection__add(var_meth_table
, ((val
*)NULL
)); /* Direct call array#Array#add on <var_meth_table:Array[nullable MPropDef]>*/
5371 /* <var_e:nullable PropertyLayoutElement(PropertyLayoutElement)> isa MMethod */
5372 cltype239
= type_nitc__MMethod
.color
;
5373 idtype240
= type_nitc__MMethod
.id
;
5374 if(cltype239
>= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->table_size
) {
5377 var238
= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->type_table
[cltype239
] == idtype240
;
5381 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
5382 var243
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
5383 if (unlikely(var243
== NULL
)) {
5384 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5385 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
5389 RET_LABEL242
:(void)0;
5393 var244
= nitc___nitc__MProperty___lookup_first_definition(var_e
, var241
, var_mtype
);
5396 core___core__Array___core__abstract_collection__SimpleCollection__add(var_meth_table
, var244
); /* Direct call array#Array#add on <var_meth_table:Array[nullable MPropDef]>*/
5399 /* <var_e:nullable PropertyLayoutElement(PropertyLayoutElement)> isa MMethodDef */
5400 cltype246
= type_nitc__MMethodDef
.color
;
5401 idtype247
= type_nitc__MMethodDef
.id
;
5402 if(cltype246
>= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->table_size
) {
5405 var245
= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->type_table
[cltype246
] == idtype247
;
5409 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
5410 var250
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
5411 if (unlikely(var250
== NULL
)) {
5412 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5413 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
5417 RET_LABEL249
:(void)0;
5421 var251
= nitc___nitc__MPropDef___lookup_next_definition(var_e
, var248
, var_mtype
);
5424 core___core__Array___core__abstract_collection__SimpleCollection__add(var_meth_table
, var251
); /* Direct call array#Array#add on <var_meth_table:Array[nullable MPropDef]>*/
5427 PRINT_ERROR("Runtime error: %s", "Aborted");
5428 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 409);
5434 ((void(*)(val
* self
))((((long)var_228
&3)?class_info
[((long)var_228
&3)]:var_228
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_228
); /* next on <var_228:IndexedIterator[nullable PropertyLayoutElement]>*/
5437 BREAK_label230
: (void)0;
5439 ((void(*)(val
* self
))((((long)var_228
&3)?class_info
[((long)var_228
&3)]:var_228
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_228
); /* finish on <var_228:IndexedIterator[nullable PropertyLayoutElement]>*/
5442 { /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on <self:SeparateCompiler> */
5443 var254
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___attr_tables
].val
; /* _attr_tables on <self:SeparateCompiler> */
5444 if (unlikely(var254
== NULL
)) {
5445 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
5446 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 1068);
5450 RET_LABEL253
:(void)0;
5454 var255
= nitc___nitc__POSetGroupColorer___build_layout(var_attr_colorer
, var_mclass170
);
5457 ((void(*)(val
* self
, val
* p0
, val
* p1
))((((long)var252
&3)?class_info
[((long)var252
&3)]:var252
->class)->vft
[COLOR_core__abstract_collection__Map___91d_93d_61d
]))(var252
, var_mclass170
, var255
); /* []= on <var252:Map[MClass, Array[nullable MProperty]]>*/
5459 BREAK_label199
: (void)0;
5461 ((void(*)(val
* self
))((((long)var_166
&3)?class_info
[((long)var_166
&3)]:var_166
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_166
); /* next on <var_166:Iterator[MClass]>*/
5464 BREAK_label168
: (void)0;
5466 ((void(*)(val
* self
))((((long)var_166
&3)?class_info
[((long)var_166
&3)]:var_166
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_166
); /* finish on <var_166:Iterator[MClass]>*/
5470 /* method separate_compiler#SeparateCompiler#do_type_coloring for (self: SeparateCompiler): Collection[MType] */
5471 val
* nitc___nitc__SeparateCompiler___do_type_coloring(val
* self
) {
5472 val
* var
/* : Collection[MType] */;
5473 val
* var1
/* : nullable RapidTypeAnalysis */;
5474 val
* var3
/* : nullable RapidTypeAnalysis */;
5475 val
* var4
/* : HashSet[MClassType] */;
5476 val
* var6
/* : HashSet[MClassType] */;
5477 val
* var_live_types
/* var live_types: HashSet[MClassType] */;
5478 val
* var7
/* : nullable RapidTypeAnalysis */;
5479 val
* var9
/* : nullable RapidTypeAnalysis */;
5480 val
* var10
/* : HashSet[MType] */;
5481 val
* var12
/* : HashSet[MType] */;
5482 val
* var_live_cast_types
/* var live_cast_types: HashSet[MType] */;
5483 val
* var13
/* : HashSet[MType] */;
5484 val
* var_res
/* var res: HashSet[MType] */;
5485 val
* var14
/* : ModelBuilder */;
5486 val
* var16
/* : ModelBuilder */;
5487 val
* var17
/* : ToolContext */;
5488 val
* var19
/* : ToolContext */;
5489 val
* var20
/* : OptionBool */;
5490 val
* var22
/* : OptionBool */;
5491 val
* var23
/* : nullable Object */;
5492 val
* var25
/* : nullable Object */;
5493 short int var26
/* : Bool */;
5494 val
* var27
/* : POSet[MType] */;
5495 val
* var_poset
/* var poset: POSet[MType] */;
5496 val
* var28
/* : POSetColorer[MType] */;
5497 val
* var_colorer
/* var colorer: POSetColorer[MType] */;
5498 val
* var30
/* : Map[Object, Int] */;
5499 val
* var32
/* : Map[Object, Int] */;
5500 val
* var34
/* : Map[MType, Array[nullable MType]] */;
5501 val
* var36
/* : HashMap[MType, Int] */;
5502 val
* var_
/* var : HashSet[MType] */;
5503 val
* var38
/* : Iterator[nullable Object] */;
5504 val
* var_39
/* var : Iterator[MType] */;
5505 short int var40
/* : Bool */;
5506 val
* var41
/* : nullable Object */;
5507 val
* var_x
/* var x: MType */;
5508 val
* var42
/* : Map[MType, Int] */;
5509 val
* var44
/* : Map[MType, Int] */;
5510 val
* var45
/* : Map[MType, Int] */;
5511 val
* var47
/* : Map[MType, Int] */;
5512 long var48
/* : Int */;
5513 long var49
/* : Int */;
5514 short int var51
/* : Bool */;
5517 const char* var_class_name
;
5518 long var52
/* : Int */;
5519 val
* var53
/* : nullable Object */;
5521 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
5522 var3
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
5528 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5529 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 423);
5532 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var1) on <var1:nullable RapidTypeAnalysis> */
5533 if (unlikely(var1
== NULL
)) {
5534 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5535 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 60);
5538 var6
= var1
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <var1:nullable RapidTypeAnalysis> */
5539 if (unlikely(var6
== NULL
)) {
5540 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
5541 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 60);
5548 var_live_types
= var4
;
5550 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
5551 var9
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
5557 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5558 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 424);
5561 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (var7) on <var7:nullable RapidTypeAnalysis> */
5562 if (unlikely(var7
== NULL
)) {
5563 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5564 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 72);
5567 var12
= var7
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <var7:nullable RapidTypeAnalysis> */
5568 if (unlikely(var12
== NULL
)) {
5569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
5570 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 72);
5574 RET_LABEL11
:(void)0;
5577 var_live_cast_types
= var10
;
5578 var13
= NEW_core__HashSet(&type_core__HashSet__nitc__MType
);
5580 core___core__HashSet___core__kernel__Object__init(var13
); /* Direct call hash_collection#HashSet#init on <var13:HashSet[MType]>*/
5584 core___core__SimpleCollection___add_all(var_res
, var_live_types
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_res:HashSet[MType]>*/
5587 core___core__SimpleCollection___add_all(var_res
, var_live_cast_types
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_res:HashSet[MType]>*/
5590 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
5591 var16
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
5592 if (unlikely(var16
== NULL
)) {
5593 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5594 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 538);
5598 RET_LABEL15
:(void)0;
5602 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var14) on <var14:ModelBuilder> */
5603 var19
= var14
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var14:ModelBuilder> */
5604 if (unlikely(var19
== NULL
)) {
5605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5606 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
5610 RET_LABEL18
:(void)0;
5614 { /* Inline separate_compiler#ToolContext#opt_type_poset (var17) on <var17:ToolContext> */
5615 var22
= var17
->attrs
[COLOR_nitc__separate_compiler__ToolContext___opt_type_poset
].val
; /* _opt_type_poset on <var17:ToolContext> */
5616 if (unlikely(var22
== NULL
)) {
5617 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_type_poset");
5618 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 62);
5622 RET_LABEL21
:(void)0;
5626 { /* Inline opts#Option#value (var20) on <var20:OptionBool> */
5627 var25
= var20
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var20:OptionBool> */
5629 RET_LABEL24
:(void)0;
5632 var26
= (short int)((long)(var23
)>>2);
5635 var27
= nitc___nitc__SeparateCompiler___poset_from_mtypes(self
, var_live_types
, var_live_cast_types
);
5638 var28
= NEW_nitc__POSetColorer(&type_nitc__POSetColorer__nitc__MType
);
5640 { /* Inline kernel#Object#init (var28) on <var28:POSetColorer[MType]> */
5641 RET_LABEL29
:(void)0;
5644 var_colorer
= var28
;
5646 nitc___nitc__POSetColorer___colorize(var_colorer
, var_poset
); /* Direct call coloring#POSetColorer#colorize on <var_colorer:POSetColorer[MType]>*/
5649 var30
= nitc___nitc__POSetColorer___ids(var_colorer
);
5652 { /* Inline separate_compiler#SeparateCompiler#type_ids= (self,var30) on <self:SeparateCompiler> */
5653 self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids
].val
= var30
; /* _type_ids on <self:SeparateCompiler> */
5654 RET_LABEL31
:(void)0;
5658 var32
= nitc___nitc__POSetColorer___colors(var_colorer
);
5661 { /* Inline separate_compiler#SeparateCompiler#type_colors= (self,var32) on <self:SeparateCompiler> */
5662 self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_colors
].val
= var32
; /* _type_colors on <self:SeparateCompiler> */
5663 RET_LABEL33
:(void)0;
5667 var34
= nitc___nitc__SeparateCompiler___build_type_tables(self
, var_poset
);
5670 { /* Inline separate_compiler#SeparateCompiler#type_tables= (self,var34) on <self:SeparateCompiler> */
5671 self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_tables
].val
= var34
; /* _type_tables on <self:SeparateCompiler> */
5672 RET_LABEL35
:(void)0;
5677 nitc___nitc__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>*/
5679 var36
= NEW_core__HashMap(&type_core__HashMap__nitc__MType__core__Int
);
5681 core___core__HashMap___core__kernel__Object__init(var36
); /* Direct call hash_collection#HashMap#init on <var36:HashMap[MType, Int]>*/
5684 { /* Inline separate_compiler#SeparateCompiler#type_ids= (self,var36) on <self:SeparateCompiler> */
5685 self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids
].val
= var36
; /* _type_ids on <self:SeparateCompiler> */
5686 RET_LABEL37
:(void)0;
5691 var38
= core___core__HashSet___core__abstract_collection__Collection__iterator(var_
);
5696 var40
= ((short int(*)(val
* self
))((((long)var_39
&3)?class_info
[((long)var_39
&3)]:var_39
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_39
); /* is_ok on <var_39:Iterator[MType]>*/
5703 var41
= ((val
*(*)(val
* self
))((((long)var_39
&3)?class_info
[((long)var_39
&3)]:var_39
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_39
); /* item on <var_39:Iterator[MType]>*/
5707 { /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:SeparateCompiler> */
5708 var44
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids
].val
; /* _type_ids on <self:SeparateCompiler> */
5709 if (unlikely(var44
== NULL
)) {
5710 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
5711 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 149);
5715 RET_LABEL43
:(void)0;
5719 { /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:SeparateCompiler> */
5720 var47
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids
].val
; /* _type_ids on <self:SeparateCompiler> */
5721 if (unlikely(var47
== NULL
)) {
5722 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
5723 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 149);
5727 RET_LABEL46
:(void)0;
5731 var48
= ((long(*)(val
* self
))((((long)var45
&3)?class_info
[((long)var45
&3)]:var45
->class)->vft
[COLOR_core__abstract_collection__MapRead__length
]))(var45
); /* length on <var45:Map[MType, Int]>*/
5734 { /* Inline kernel#Int#+ (var48,1l) on <var48:Int> */
5735 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5736 /* <1l:Int> isa OTHER */
5737 var51
= 1; /* easy <1l:Int> isa OTHER*/
5738 if (unlikely(!var51
)) {
5739 var_class_name
= type_core__Int
.name
;
5740 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
5741 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
5747 RET_LABEL50
:(void)0;
5751 var53
= (val
*)(var49
<<2|1);
5752 ((void(*)(val
* self
, val
* p0
, val
* p1
))((((long)var42
&3)?class_info
[((long)var42
&3)]:var42
->class)->vft
[COLOR_core__abstract_collection__Map___91d_93d_61d
]))(var42
, var_x
, var53
); /* []= on <var42:Map[MType, Int]>*/
5755 ((void(*)(val
* self
))((((long)var_39
&3)?class_info
[((long)var_39
&3)]:var_39
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_39
); /* next on <var_39:Iterator[MType]>*/
5758 BREAK_label
: (void)0;
5760 ((void(*)(val
* self
))((((long)var_39
&3)?class_info
[((long)var_39
&3)]:var_39
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_39
); /* finish on <var_39:Iterator[MType]>*/
5764 nitc___nitc__SeparateCompiler___compute_resolution_tables(self
, var_live_types
); /* Direct call separate_compiler#SeparateCompiler#compute_resolution_tables on <self:SeparateCompiler>*/
5771 /* method separate_compiler#SeparateCompiler#poset_from_mtypes for (self: SeparateCompiler, Set[MType], Set[MType]): POSet[MType] */
5772 val
* nitc___nitc__SeparateCompiler___poset_from_mtypes(val
* self
, val
* p0
, val
* p1
) {
5773 val
* var
/* : POSet[MType] */;
5774 val
* var_mtypes
/* var mtypes: Set[MType] */;
5775 val
* var_cast_types
/* var cast_types: Set[MType] */;
5776 val
* var1
/* : POSet[MType] */;
5777 val
* var_poset
/* var poset: POSet[MType] */;
5778 val
* var3
/* : MultiHashMap[MClass, MType] */;
5779 val
* var_mtypes_by_class
/* var mtypes_by_class: MultiHashMap[MClass, MType] */;
5780 val
* var_
/* var : Set[MType] */;
5781 val
* var4
/* : Iterator[nullable Object] */;
5782 val
* var_5
/* var : Iterator[MType] */;
5783 short int var6
/* : Bool */;
5784 val
* var7
/* : nullable Object */;
5785 val
* var_e
/* var e: MType */;
5786 val
* var8
/* : MType */;
5787 short int var9
/* : Bool */;
5790 const char* var_class_name
;
5791 val
* var10
/* : MClass */;
5792 val
* var12
/* : MClass */;
5793 val
* var_c
/* var c: MClass */;
5794 val
* var13
/* : nullable Object */;
5795 val
* var14
/* : POSetElement[nullable Object] */;
5796 val
* var15
/* : MultiHashMap[MClass, MType] */;
5797 val
* var_casttypes_by_class
/* var casttypes_by_class: MultiHashMap[MClass, MType] */;
5798 val
* var_16
/* var : Set[MType] */;
5799 val
* var17
/* : Iterator[nullable Object] */;
5800 val
* var_18
/* var : Iterator[MType] */;
5801 short int var19
/* : Bool */;
5802 val
* var21
/* : nullable Object */;
5803 val
* var_e22
/* var e: MType */;
5804 val
* var23
/* : MType */;
5805 short int var24
/* : Bool */;
5808 const char* var_class_name27
;
5809 val
* var28
/* : MClass */;
5810 val
* var30
/* : MClass */;
5811 val
* var_c31
/* var c: MClass */;
5812 val
* var32
/* : nullable Object */;
5813 val
* var33
/* : POSetElement[nullable Object] */;
5814 val
* var_34
/* var : MultiHashMap[MClass, MType] */;
5815 val
* var35
/* : MapIterator[nullable Object, nullable Object] */;
5816 val
* var_36
/* var : MapIterator[MClass, Array[MType]] */;
5817 short int var37
/* : Bool */;
5818 val
* var39
/* : nullable Object */;
5819 val
* var_c1
/* var c1: MClass */;
5820 val
* var40
/* : nullable Object */;
5821 val
* var_ts1
/* var ts1: Array[MType] */;
5822 val
* var41
/* : MModule */;
5823 val
* var43
/* : MModule */;
5824 val
* var44
/* : POSetElement[MClass] */;
5825 val
* var45
/* : Collection[nullable Object] */;
5826 val
* var_46
/* var : Collection[MClass] */;
5827 val
* var47
/* : Iterator[nullable Object] */;
5828 val
* var_48
/* var : Iterator[MClass] */;
5829 short int var49
/* : Bool */;
5830 val
* var51
/* : nullable Object */;
5831 val
* var_c2
/* var c2: MClass */;
5832 val
* var52
/* : nullable Object */;
5833 val
* var_ts2
/* var ts2: Array[MType] */;
5834 val
* var_53
/* var : Array[MType] */;
5835 val
* var54
/* : IndexedIterator[nullable Object] */;
5836 val
* var_55
/* var : IndexedIterator[MType] */;
5837 short int var56
/* : Bool */;
5838 val
* var58
/* : nullable Object */;
5839 val
* var_e59
/* var e: MType */;
5840 val
* var_60
/* var : Array[MType] */;
5841 val
* var61
/* : IndexedIterator[nullable Object] */;
5842 val
* var_62
/* var : IndexedIterator[MType] */;
5843 short int var63
/* : Bool */;
5844 val
* var65
/* : nullable Object */;
5845 val
* var_o
/* var o: MType */;
5846 short int var66
/* : Bool */;
5847 val
* var_other
/* var other: nullable Object */;
5848 short int var68
/* : Bool */;
5849 short int var70
/* : Bool */;
5850 val
* var72
/* : MModule */;
5851 val
* var74
/* : MModule */;
5852 short int var75
/* : Bool */;
5854 var_cast_types
= p1
;
5855 var1
= NEW_poset__POSet(&type_poset__POSet__nitc__MType
);
5857 { /* Inline kernel#Object#init (var1) on <var1:POSet[MType]> */
5862 var3
= NEW_more_collections__MultiHashMap(&type_more_collections__MultiHashMap__nitc__MClass__nitc__MType
);
5864 core___core__HashMap___core__kernel__Object__init(var3
); /* Direct call hash_collection#HashMap#init on <var3:MultiHashMap[MClass, MType]>*/
5866 var_mtypes_by_class
= var3
;
5869 var4
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Set[MType]>*/
5874 var6
= ((short int(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_5
); /* is_ok on <var_5:Iterator[MType]>*/
5881 var7
= ((val
*(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_5
); /* item on <var_5:Iterator[MType]>*/
5885 var8
= ((val
*(*)(val
* self
))(var_e
->class->vft
[COLOR_nitc__model__MType__undecorate
]))(var_e
); /* undecorate on <var_e:MType>*/
5887 /* <var8:MType> isa MClassType */
5888 cltype
= type_nitc__MClassType
.color
;
5889 idtype
= type_nitc__MClassType
.id
;
5890 if(cltype
>= var8
->type
->table_size
) {
5893 var9
= var8
->type
->type_table
[cltype
] == idtype
;
5895 if (unlikely(!var9
)) {
5896 var_class_name
= var8
== NULL ?
"null" : var8
->type
->name
;
5897 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5898 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 462);
5902 { /* Inline model#MClassType#mclass (var8) on <var8:MType(MClassType)> */
5903 var12
= var8
->attrs
[COLOR_nitc__model__MClassType___mclass
].val
; /* _mclass on <var8:MType(MClassType)> */
5904 if (unlikely(var12
== NULL
)) {
5905 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5906 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1163);
5910 RET_LABEL11
:(void)0;
5915 var13
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var_mtypes_by_class
, var_c
);
5918 core___core__Array___core__abstract_collection__SimpleCollection__add(var13
, var_e
); /* Direct call array#Array#add on <var13:nullable Object(Array[MType])>*/
5921 var14
= poset___poset__POSet___add_node(var_poset
, var_e
);
5924 ((void(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_5
); /* next on <var_5:Iterator[MType]>*/
5927 BREAK_label
: (void)0;
5929 ((void(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_5
); /* finish on <var_5:Iterator[MType]>*/
5931 var15
= NEW_more_collections__MultiHashMap(&type_more_collections__MultiHashMap__nitc__MClass__nitc__MType
);
5933 core___core__HashMap___core__kernel__Object__init(var15
); /* Direct call hash_collection#HashMap#init on <var15:MultiHashMap[MClass, MType]>*/
5935 var_casttypes_by_class
= var15
;
5936 var_16
= var_cast_types
;
5938 var17
= ((val
*(*)(val
* self
))((((long)var_16
&3)?class_info
[((long)var_16
&3)]:var_16
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_16
); /* iterator on <var_16:Set[MType]>*/
5943 var19
= ((short int(*)(val
* self
))((((long)var_18
&3)?class_info
[((long)var_18
&3)]:var_18
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_18
); /* is_ok on <var_18:Iterator[MType]>*/
5950 var21
= ((val
*(*)(val
* self
))((((long)var_18
&3)?class_info
[((long)var_18
&3)]:var_18
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_18
); /* item on <var_18:Iterator[MType]>*/
5954 var23
= ((val
*(*)(val
* self
))(var_e22
->class->vft
[COLOR_nitc__model__MType__undecorate
]))(var_e22
); /* undecorate on <var_e22:MType>*/
5956 /* <var23:MType> isa MClassType */
5957 cltype25
= type_nitc__MClassType
.color
;
5958 idtype26
= type_nitc__MClassType
.id
;
5959 if(cltype25
>= var23
->type
->table_size
) {
5962 var24
= var23
->type
->type_table
[cltype25
] == idtype26
;
5964 if (unlikely(!var24
)) {
5965 var_class_name27
= var23
== NULL ?
"null" : var23
->type
->name
;
5966 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name27
);
5967 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 469);
5971 { /* Inline model#MClassType#mclass (var23) on <var23:MType(MClassType)> */
5972 var30
= var23
->attrs
[COLOR_nitc__model__MClassType___mclass
].val
; /* _mclass on <var23:MType(MClassType)> */
5973 if (unlikely(var30
== NULL
)) {
5974 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5975 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1163);
5979 RET_LABEL29
:(void)0;
5984 var32
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var_casttypes_by_class
, var_c31
);
5987 core___core__Array___core__abstract_collection__SimpleCollection__add(var32
, var_e22
); /* Direct call array#Array#add on <var32:nullable Object(Array[MType])>*/
5990 var33
= poset___poset__POSet___add_node(var_poset
, var_e22
);
5993 ((void(*)(val
* self
))((((long)var_18
&3)?class_info
[((long)var_18
&3)]:var_18
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_18
); /* next on <var_18:Iterator[MType]>*/
5996 BREAK_label20
: (void)0;
5998 ((void(*)(val
* self
))((((long)var_18
&3)?class_info
[((long)var_18
&3)]:var_18
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_18
); /* finish on <var_18:Iterator[MType]>*/
6000 var_34
= var_mtypes_by_class
;
6002 var35
= core___core__HashMap___core__abstract_collection__MapRead__iterator(var_34
);
6007 var37
= ((short int(*)(val
* self
))((((long)var_36
&3)?class_info
[((long)var_36
&3)]:var_36
->class)->vft
[COLOR_core__abstract_collection__MapIterator__is_ok
]))(var_36
); /* is_ok on <var_36:MapIterator[MClass, Array[MType]]>*/
6014 var39
= ((val
*(*)(val
* self
))((((long)var_36
&3)?class_info
[((long)var_36
&3)]:var_36
->class)->vft
[COLOR_core__abstract_collection__MapIterator__key
]))(var_36
); /* key on <var_36:MapIterator[MClass, Array[MType]]>*/
6018 var40
= ((val
*(*)(val
* self
))((((long)var_36
&3)?class_info
[((long)var_36
&3)]:var_36
->class)->vft
[COLOR_core__abstract_collection__MapIterator__item
]))(var_36
); /* item on <var_36:MapIterator[MClass, Array[MType]]>*/
6022 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
6023 var43
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
6024 if (unlikely(var43
== NULL
)) {
6025 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6026 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
6030 RET_LABEL42
:(void)0;
6034 var44
= nitc___nitc__MClass___in_hierarchy(var_c1
, var41
);
6037 var45
= poset___poset__POSetElement___greaters(var44
);
6041 var47
= ((val
*(*)(val
* self
))((((long)var_46
&3)?class_info
[((long)var_46
&3)]:var_46
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_46
); /* iterator on <var_46:Collection[MClass]>*/
6046 var49
= ((short int(*)(val
* self
))((((long)var_48
&3)?class_info
[((long)var_48
&3)]:var_48
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_48
); /* is_ok on <var_48:Iterator[MClass]>*/
6053 var51
= ((val
*(*)(val
* self
))((((long)var_48
&3)?class_info
[((long)var_48
&3)]:var_48
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_48
); /* item on <var_48:Iterator[MClass]>*/
6057 var52
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var_casttypes_by_class
, var_c2
);
6062 var54
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_53
);
6067 var56
= ((short int(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_55
); /* is_ok on <var_55:IndexedIterator[MType]>*/
6074 var58
= ((val
*(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_55
); /* item on <var_55:IndexedIterator[MType]>*/
6079 var61
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_60
);
6084 var63
= ((short int(*)(val
* self
))((((long)var_62
&3)?class_info
[((long)var_62
&3)]:var_62
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_62
); /* is_ok on <var_62:IndexedIterator[MType]>*/
6091 var65
= ((val
*(*)(val
* self
))((((long)var_62
&3)?class_info
[((long)var_62
&3)]:var_62
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_62
); /* item on <var_62:IndexedIterator[MType]>*/
6095 { /* Inline kernel#Object#== (var_e59,var_o) on <var_e59:MType> */
6098 { /* Inline kernel#Object#is_same_instance (var_e59,var_other) on <var_e59:MType> */
6099 var70
= var_e59
== var_other
;
6102 RET_LABEL69
:(void)0;
6107 RET_LABEL67
:(void)0;
6115 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
6116 var74
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
6117 if (unlikely(var74
== NULL
)) {
6118 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6119 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
6123 RET_LABEL73
:(void)0;
6127 var75
= nitc___nitc__MType___is_subtype(var_e59
, var72
, ((val
*)NULL
), var_o
);
6131 poset___poset__POSet___add_edge(var_poset
, var_e59
, var_o
); /* Direct call poset#POSet#add_edge on <var_poset:POSet[MType]>*/
6135 BREAK_label71
: (void)0;
6137 ((void(*)(val
* self
))((((long)var_62
&3)?class_info
[((long)var_62
&3)]:var_62
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_62
); /* next on <var_62:IndexedIterator[MType]>*/
6140 BREAK_label64
: (void)0;
6142 ((void(*)(val
* self
))((((long)var_62
&3)?class_info
[((long)var_62
&3)]:var_62
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_62
); /* finish on <var_62:IndexedIterator[MType]>*/
6145 ((void(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_55
); /* next on <var_55:IndexedIterator[MType]>*/
6148 BREAK_label57
: (void)0;
6150 ((void(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_55
); /* finish on <var_55:IndexedIterator[MType]>*/
6153 ((void(*)(val
* self
))((((long)var_48
&3)?class_info
[((long)var_48
&3)]:var_48
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_48
); /* next on <var_48:Iterator[MClass]>*/
6156 BREAK_label50
: (void)0;
6158 ((void(*)(val
* self
))((((long)var_48
&3)?class_info
[((long)var_48
&3)]:var_48
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_48
); /* finish on <var_48:Iterator[MClass]>*/
6161 ((void(*)(val
* self
))((((long)var_36
&3)?class_info
[((long)var_36
&3)]:var_36
->class)->vft
[COLOR_core__abstract_collection__MapIterator__next
]))(var_36
); /* next on <var_36:MapIterator[MClass, Array[MType]]>*/
6164 BREAK_label38
: (void)0;
6166 { /* Inline abstract_collection#MapIterator#finish (var_36) on <var_36:MapIterator[MClass, Array[MType]]> */
6167 RET_LABEL76
:(void)0;
6175 /* method separate_compiler#SeparateCompiler#build_type_tables for (self: SeparateCompiler, POSet[MType]): Map[MType, Array[nullable MType]] */
6176 val
* nitc___nitc__SeparateCompiler___build_type_tables(val
* self
, val
* p0
) {
6177 val
* var
/* : Map[MType, Array[nullable MType]] */;
6178 val
* var_mtypes
/* var mtypes: POSet[MType] */;
6179 val
* var1
/* : HashMap[MType, Array[nullable MType]] */;
6180 val
* var_tables
/* var tables: HashMap[MType, Array[nullable MType]] */;
6181 val
* var_
/* var : POSet[MType] */;
6182 val
* var2
/* : Iterator[nullable Object] */;
6183 val
* var_3
/* var : Iterator[MType] */;
6184 short int var4
/* : Bool */;
6185 val
* var5
/* : nullable Object */;
6186 val
* var_mtype
/* var mtype: MType */;
6187 val
* var6
/* : Array[nullable MType] */;
6188 val
* var_table
/* var table: Array[nullable MType] */;
6189 val
* var7
/* : POSetElement[nullable Object] */;
6190 val
* var8
/* : Collection[nullable Object] */;
6191 val
* var_9
/* var : Collection[MType] */;
6192 val
* var10
/* : Iterator[nullable Object] */;
6193 val
* var_11
/* var : Iterator[MType] */;
6194 short int var12
/* : Bool */;
6195 val
* var14
/* : nullable Object */;
6196 val
* var_sup
/* var sup: MType */;
6197 val
* var15
/* : Map[MType, Int] */;
6198 val
* var17
/* : Map[MType, Int] */;
6199 val
* var18
/* : nullable Object */;
6200 long var19
/* : Int */;
6201 long var_color
/* var color: Int */;
6202 long var20
/* : Int */;
6203 long var22
/* : Int */;
6204 short int var23
/* : Bool */;
6205 short int var25
/* : Bool */;
6208 const char* var_class_name
;
6209 short int var26
/* : Bool */;
6210 long var27
/* : Int */;
6211 long var29
/* : Int */;
6212 long var_i
/* var i: Int */;
6213 long var_30
/* var : Int */;
6214 short int var31
/* : Bool */;
6215 short int var33
/* : Bool */;
6218 const char* var_class_name36
;
6219 short int var37
/* : Bool */;
6220 long var39
/* : Int */;
6222 var1
= NEW_core__HashMap(&type_core__HashMap__nitc__MType__core__Array__nullable__nitc__MType
);
6224 core___core__HashMap___core__kernel__Object__init(var1
); /* Direct call hash_collection#HashMap#init on <var1:HashMap[MType, Array[nullable MType]]>*/
6229 var2
= poset___poset__POSet___core__abstract_collection__Collection__iterator(var_
);
6234 var4
= ((short int(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_3
); /* is_ok on <var_3:Iterator[MType]>*/
6241 var5
= ((val
*(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_3
); /* item on <var_3:Iterator[MType]>*/
6244 var6
= NEW_core__Array(&type_core__Array__nullable__nitc__MType
);
6246 core___core__Array___core__kernel__Object__init(var6
); /* Direct call array#Array#init on <var6:Array[nullable MType]>*/
6250 var7
= poset___poset__POSet____91d_93d(var_mtypes
, var_mtype
);
6253 var8
= poset___poset__POSetElement___greaters(var7
);
6257 var10
= ((val
*(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_9
); /* iterator on <var_9:Collection[MType]>*/
6262 var12
= ((short int(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_11
); /* is_ok on <var_11:Iterator[MType]>*/
6269 var14
= ((val
*(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_11
); /* item on <var_11:Iterator[MType]>*/
6273 { /* Inline separate_compiler#SeparateCompiler#type_colors (self) on <self:SeparateCompiler> */
6274 var17
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_colors
].val
; /* _type_colors on <self:SeparateCompiler> */
6275 if (unlikely(var17
== NULL
)) {
6276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors");
6277 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 150);
6281 RET_LABEL16
:(void)0;
6285 var18
= ((val
*(*)(val
* self
, val
* p0
))((((long)var15
&3)?class_info
[((long)var15
&3)]:var15
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var15
, var_sup
); /* [] on <var15:Map[MType, Int]>*/
6287 var19
= (long)(var18
)>>2;
6290 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
6291 var22
= var_table
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MType]> */
6293 RET_LABEL21
:(void)0;
6297 { /* Inline kernel#Int#<= (var20,var_color) on <var20:Int> */
6298 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
6299 /* <var_color:Int> isa OTHER */
6300 var25
= 1; /* easy <var_color:Int> isa OTHER*/
6301 if (unlikely(!var25
)) {
6302 var_class_name
= type_core__Int
.name
;
6303 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
6304 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
6307 var26
= var20
<= var_color
;
6310 RET_LABEL24
:(void)0;
6315 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
6316 var29
= var_table
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MType]> */
6318 RET_LABEL28
:(void)0;
6325 { /* Inline kernel#Int#< (var_i,var_30) on <var_i:Int> */
6326 /* Covariant cast for argument 0 (i) <var_30:Int> isa OTHER */
6327 /* <var_30:Int> isa OTHER */
6328 var33
= 1; /* easy <var_30:Int> isa OTHER*/
6329 if (unlikely(!var33
)) {
6330 var_class_name36
= type_core__Int
.name
;
6331 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36
);
6332 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
6335 var37
= var_i
< var_30
;
6338 RET_LABEL32
:(void)0;
6346 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table
, var_i
, ((val
*)NULL
)); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
6349 var39
= core___core__Int___Discrete__successor(var_i
, 1l);
6353 BREAK_label38
: (void)0;
6357 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table
, var_color
, var_sup
); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
6360 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_11
); /* next on <var_11:Iterator[MType]>*/
6363 BREAK_label13
: (void)0;
6365 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_11
); /* finish on <var_11:Iterator[MType]>*/
6368 core___core__HashMap___core__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]]>*/
6371 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_3
); /* next on <var_3:Iterator[MType]>*/
6374 BREAK_label
: (void)0;
6376 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_3
); /* finish on <var_3:Iterator[MType]>*/
6383 /* method separate_compiler#SeparateCompiler#compute_type_test_layouts for (self: SeparateCompiler, Set[MClassType], Set[MType]) */
6384 void nitc___nitc__SeparateCompiler___compute_type_test_layouts(val
* self
, val
* p0
, val
* p1
) {
6385 val
* var_mtypes
/* var mtypes: Set[MClassType] */;
6386 val
* var_cast_types
/* var cast_types: Set[MType] */;
6387 val
* var
/* : HashMap[MClass, Set[MType]] */;
6388 val
* var_bucklets
/* var bucklets: HashMap[MClass, Set[MType]] */;
6389 val
* var_
/* var : Set[MType] */;
6390 val
* var1
/* : Iterator[nullable Object] */;
6391 val
* var_2
/* var : Iterator[MType] */;
6392 short int var3
/* : Bool */;
6393 val
* var4
/* : nullable Object */;
6394 val
* var_e
/* var e: MType */;
6395 val
* var5
/* : MType */;
6396 short int var6
/* : Bool */;
6399 const char* var_class_name
;
6400 val
* var7
/* : MClass */;
6401 val
* var9
/* : MClass */;
6402 val
* var_c
/* var c: MClass */;
6403 short int var10
/* : Bool */;
6404 short int var11
/* : Bool */;
6405 val
* var12
/* : HashSet[MType] */;
6406 val
* var13
/* : nullable Object */;
6407 val
* var14
/* : POSetGroupColorer[MClass, MType] */;
6408 val
* var15
/* : POSetConflictGraph[MClass] */;
6409 val
* var17
/* : POSetConflictGraph[MClass] */;
6410 val
* var_colorer
/* var colorer: POSetGroupColorer[MClass, MType] */;
6411 val
* var18
/* : Map[Object, Int] */;
6412 val
* var20
/* : HashMap[MClass, Array[nullable MType]] */;
6413 val
* var_layouts
/* var layouts: HashMap[MClass, Array[nullable MType]] */;
6414 val
* var21
/* : nullable RapidTypeAnalysis */;
6415 val
* var23
/* : nullable RapidTypeAnalysis */;
6416 val
* var24
/* : HashSet[MClass] */;
6417 val
* var26
/* : HashSet[MClass] */;
6418 val
* var_27
/* var : HashSet[MClass] */;
6419 val
* var28
/* : Iterator[nullable Object] */;
6420 val
* var_29
/* var : Iterator[MClass] */;
6421 short int var30
/* : Bool */;
6422 val
* var32
/* : nullable Object */;
6423 val
* var_c33
/* var c: MClass */;
6424 val
* var34
/* : Array[nullable Object] */;
6425 val
* var_35
/* var : Set[MClassType] */;
6426 val
* var36
/* : Iterator[nullable Object] */;
6427 val
* var_37
/* var : Iterator[MClassType] */;
6428 short int var38
/* : Bool */;
6429 val
* var40
/* : nullable Object */;
6430 val
* var_t
/* var t: MClassType */;
6431 val
* var41
/* : MClass */;
6432 val
* var43
/* : MClass */;
6433 val
* var_c44
/* var c: MClass */;
6434 val
* var45
/* : nullable Object */;
6435 val
* var_layout
/* var layout: Array[nullable MType] */;
6436 val
* var46
/* : Array[nullable MType] */;
6437 long var47
/* : Int */;
6438 long var49
/* : Int */;
6439 val
* var_table
/* var table: Array[nullable MType] */;
6440 val
* var50
/* : Map[MType, Array[nullable MType]] */;
6441 val
* var52
/* : Map[MType, Array[nullable MType]] */;
6442 val
* var_53
/* var : Array[nullable MType] */;
6443 val
* var54
/* : IndexedIterator[nullable Object] */;
6444 val
* var_55
/* var : IndexedIterator[nullable MType] */;
6445 short int var56
/* : Bool */;
6446 val
* var58
/* : nullable Object */;
6447 val
* var_sup
/* var sup: nullable MType */;
6448 short int var59
/* : Bool */;
6449 short int var60
/* : Bool */;
6450 val
* var_other
/* var other: nullable Object */;
6451 short int var62
/* : Bool */;
6452 short int var64
/* : Bool */;
6453 val
* var65
/* : MModule */;
6454 val
* var67
/* : MModule */;
6455 short int var68
/* : Bool */;
6457 var_cast_types
= p1
;
6458 var
= NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Set__nitc__MType
);
6460 core___core__HashMap___core__kernel__Object__init(var
); /* Direct call hash_collection#HashMap#init on <var:HashMap[MClass, Set[MType]]>*/
6463 var_
= var_cast_types
;
6465 var1
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Set[MType]>*/
6470 var3
= ((short int(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_2
); /* is_ok on <var_2:Iterator[MType]>*/
6477 var4
= ((val
*(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_2
); /* item on <var_2:Iterator[MType]>*/
6481 var5
= ((val
*(*)(val
* self
))(var_e
->class->vft
[COLOR_nitc__model__MType__undecorate
]))(var_e
); /* undecorate on <var_e:MType>*/
6483 /* <var5:MType> isa MClassType */
6484 cltype
= type_nitc__MClassType
.color
;
6485 idtype
= type_nitc__MClassType
.id
;
6486 if(cltype
>= var5
->type
->table_size
) {
6489 var6
= var5
->type
->type_table
[cltype
] == idtype
;
6491 if (unlikely(!var6
)) {
6492 var_class_name
= var5
== NULL ?
"null" : var5
->type
->name
;
6493 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6494 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 514);
6498 { /* Inline model#MClassType#mclass (var5) on <var5:MType(MClassType)> */
6499 var9
= var5
->attrs
[COLOR_nitc__model__MClassType___mclass
].val
; /* _mclass on <var5:MType(MClassType)> */
6500 if (unlikely(var9
== NULL
)) {
6501 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6502 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1163);
6511 var10
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var_bucklets
, var_c
);
6515 var12
= NEW_core__HashSet(&type_core__HashSet__nitc__MType
);
6517 core___core__HashSet___core__kernel__Object__init(var12
); /* Direct call hash_collection#HashSet#init on <var12:HashSet[MType]>*/
6520 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_bucklets
, var_c
, var12
); /* Direct call hash_collection#HashMap#[]= on <var_bucklets:HashMap[MClass, Set[MType]]>*/
6525 var13
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var_bucklets
, var_c
);
6528 ((void(*)(val
* self
, val
* p0
))((((long)var13
&3)?class_info
[((long)var13
&3)]:var13
->class)->vft
[COLOR_core__abstract_collection__SimpleCollection__add
]))(var13
, var_e
); /* add on <var13:nullable Object(Set[MType])>*/
6531 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_2
); /* next on <var_2:Iterator[MType]>*/
6534 BREAK_label
: (void)0;
6536 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_2
); /* finish on <var_2:Iterator[MType]>*/
6538 var14
= NEW_nitc__POSetGroupColorer(&type_nitc__POSetGroupColorer__nitc__MClass__nitc__MType
);
6540 { /* Inline separate_compiler#SeparateCompiler#class_conflict_graph (self) on <self:SeparateCompiler> */
6541 var17
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___class_conflict_graph
].val
; /* _class_conflict_graph on <self:SeparateCompiler> */
6542 if (unlikely(var17
== NULL
)) {
6543 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_conflict_graph");
6544 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 310);
6548 RET_LABEL16
:(void)0;
6552 ((void(*)(val
* self
, val
* p0
))(var14
->class->vft
[COLOR_nitc__coloring__POSetGroupColorer__graph_61d
]))(var14
, var15
); /* graph= on <var14:POSetGroupColorer[MClass, MType]>*/
6555 ((void(*)(val
* self
, val
* p0
))(var14
->class->vft
[COLOR_nitc__coloring__POSetGroupColorer__buckets_61d
]))(var14
, var_bucklets
); /* buckets= on <var14:POSetGroupColorer[MClass, MType]>*/
6558 ((void(*)(val
* self
))(var14
->class->vft
[COLOR_core__kernel__Object__init
]))(var14
); /* init on <var14:POSetGroupColorer[MClass, MType]>*/
6560 var_colorer
= var14
;
6562 var18
= nitc___nitc__POSetGroupColorer___colors(var_colorer
);
6565 { /* Inline separate_compiler#SeparateCompiler#type_colors= (self,var18) on <self:SeparateCompiler> */
6566 self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_colors
].val
= var18
; /* _type_colors on <self:SeparateCompiler> */
6567 RET_LABEL19
:(void)0;
6570 var20
= NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Array__nullable__nitc__MType
);
6572 core___core__HashMap___core__kernel__Object__init(var20
); /* Direct call hash_collection#HashMap#init on <var20:HashMap[MClass, Array[nullable MType]]>*/
6574 var_layouts
= var20
;
6576 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
6577 var23
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
6579 RET_LABEL22
:(void)0;
6582 if (var21
== NULL
) {
6583 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6584 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 526);
6587 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (var21) on <var21:nullable RapidTypeAnalysis> */
6588 if (unlikely(var21
== NULL
)) {
6589 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6590 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 69);
6593 var26
= var21
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <var21:nullable RapidTypeAnalysis> */
6594 if (unlikely(var26
== NULL
)) {
6595 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
6596 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 69);
6600 RET_LABEL25
:(void)0;
6605 var28
= core___core__HashSet___core__abstract_collection__Collection__iterator(var_27
);
6610 var30
= ((short int(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_29
); /* is_ok on <var_29:Iterator[MClass]>*/
6617 var32
= ((val
*(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_29
); /* item on <var_29:Iterator[MClass]>*/
6621 var34
= nitc___nitc__POSetGroupColorer___build_layout(var_colorer
, var_c33
);
6624 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_layouts
, var_c33
, var34
); /* Direct call hash_collection#HashMap#[]= on <var_layouts:HashMap[MClass, Array[nullable MType]]>*/
6627 ((void(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_29
); /* next on <var_29:Iterator[MClass]>*/
6630 BREAK_label31
: (void)0;
6632 ((void(*)(val
* self
))((((long)var_29
&3)?class_info
[((long)var_29
&3)]:var_29
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_29
); /* finish on <var_29:Iterator[MClass]>*/
6634 var_35
= var_mtypes
;
6636 var36
= ((val
*(*)(val
* self
))((((long)var_35
&3)?class_info
[((long)var_35
&3)]:var_35
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_35
); /* iterator on <var_35:Set[MClassType]>*/
6641 var38
= ((short int(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_37
); /* is_ok on <var_37:Iterator[MClassType]>*/
6648 var40
= ((val
*(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_37
); /* item on <var_37:Iterator[MClassType]>*/
6652 { /* Inline model#MClassType#mclass (var_t) on <var_t:MClassType> */
6653 var43
= var_t
->attrs
[COLOR_nitc__model__MClassType___mclass
].val
; /* _mclass on <var_t:MClassType> */
6654 if (unlikely(var43
== NULL
)) {
6655 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6656 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1163);
6660 RET_LABEL42
:(void)0;
6665 var45
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var_layouts
, var_c44
);
6668 var46
= NEW_core__Array(&type_core__Array__nullable__nitc__MType
);
6670 { /* Inline array#AbstractArrayRead#length (var_layout) on <var_layout:Array[nullable MType]> */
6671 var49
= var_layout
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_layout:Array[nullable MType]> */
6673 RET_LABEL48
:(void)0;
6677 core___core__Array___with_capacity(var46
, var47
); /* Direct call array#Array#with_capacity on <var46:Array[nullable MType]>*/
6681 { /* Inline separate_compiler#SeparateCompiler#type_tables (self) on <self:SeparateCompiler> */
6682 var52
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_tables
].val
; /* _type_tables on <self:SeparateCompiler> */
6683 if (unlikely(var52
== NULL
)) {
6684 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
6685 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 1065);
6689 RET_LABEL51
:(void)0;
6693 ((void(*)(val
* self
, val
* p0
, val
* p1
))((((long)var50
&3)?class_info
[((long)var50
&3)]:var50
->class)->vft
[COLOR_core__abstract_collection__Map___91d_93d_61d
]))(var50
, var_t
, var_table
); /* []= on <var50:Map[MType, Array[nullable MType]]>*/
6695 var_53
= var_layout
;
6697 var54
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_53
);
6702 var56
= ((short int(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_55
); /* is_ok on <var_55:IndexedIterator[nullable MType]>*/
6709 var58
= ((val
*(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_55
); /* item on <var_55:IndexedIterator[nullable MType]>*/
6712 if (var_sup
== NULL
) {
6713 var59
= 1; /* is null */
6715 var59
= 0; /* arg is null but recv is not */
6718 { /* Inline kernel#Object#== (var_sup,((val*)NULL)) on <var_sup:nullable MType> */
6719 var_other
= ((val
*)NULL
);
6721 { /* Inline kernel#Object#is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
6722 var64
= var_sup
== var_other
;
6725 RET_LABEL63
:(void)0;
6730 RET_LABEL61
:(void)0;
6736 core___core__Array___core__abstract_collection__SimpleCollection__add(var_table
, ((val
*)NULL
)); /* Direct call array#Array#add on <var_table:Array[nullable MType]>*/
6740 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
6741 var67
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
6742 if (unlikely(var67
== NULL
)) {
6743 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6744 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
6748 RET_LABEL66
:(void)0;
6752 var68
= nitc___nitc__MType___is_subtype(var_t
, var65
, ((val
*)NULL
), var_sup
);
6756 core___core__Array___core__abstract_collection__SimpleCollection__add(var_table
, var_sup
); /* Direct call array#Array#add on <var_table:Array[nullable MType]>*/
6760 core___core__Array___core__abstract_collection__SimpleCollection__add(var_table
, ((val
*)NULL
)); /* Direct call array#Array#add on <var_table:Array[nullable MType]>*/
6765 ((void(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_55
); /* next on <var_55:IndexedIterator[nullable MType]>*/
6768 BREAK_label57
: (void)0;
6770 ((void(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_55
); /* finish on <var_55:IndexedIterator[nullable MType]>*/
6773 ((void(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_37
); /* next on <var_37:Iterator[MClassType]>*/
6776 BREAK_label39
: (void)0;
6778 ((void(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_37
); /* finish on <var_37:Iterator[MClassType]>*/
6782 /* method separate_compiler#SeparateCompiler#compute_resolution_tables for (self: SeparateCompiler, Set[MType]) */
6783 void nitc___nitc__SeparateCompiler___compute_resolution_tables(val
* self
, val
* p0
) {
6784 val
* var_mtypes
/* var mtypes: Set[MType] */;
6785 val
* var
/* : HashMap[MClass, Set[MType]] */;
6786 val
* var_mtype2unresolved
/* var mtype2unresolved: HashMap[MClass, Set[MType]] */;
6787 val
* var1
/* : nullable RapidTypeAnalysis */;
6788 val
* var3
/* : nullable RapidTypeAnalysis */;
6789 val
* var4
/* : HashSet[MClassType] */;
6790 val
* var6
/* : HashSet[MClassType] */;
6791 val
* var_
/* var : HashSet[MClassType] */;
6792 val
* var7
/* : Iterator[nullable Object] */;
6793 val
* var_8
/* var : Iterator[MClassType] */;
6794 short int var9
/* : Bool */;
6795 val
* var10
/* : nullable Object */;
6796 val
* var_mtype
/* var mtype: MClassType */;
6797 val
* var11
/* : MClass */;
6798 val
* var13
/* : MClass */;
6799 val
* var_mclass
/* var mclass: MClass */;
6800 val
* var14
/* : nullable Object */;
6801 val
* var_set
/* var set: nullable Set[MType] */;
6802 short int var15
/* : Bool */;
6803 short int var16
/* : Bool */;
6804 val
* var17
/* : HashSet[MType] */;
6805 val
* var18
/* : MModule */;
6806 val
* var20
/* : MModule */;
6807 val
* var21
/* : Set[MClassDef] */;
6808 val
* var_22
/* var : Set[MClassDef] */;
6809 val
* var23
/* : Iterator[nullable Object] */;
6810 val
* var_24
/* var : Iterator[MClassDef] */;
6811 short int var25
/* : Bool */;
6812 val
* var27
/* : nullable Object */;
6813 val
* var_cd
/* var cd: MClassDef */;
6814 val
* var28
/* : Map[MClassDef, Set[MType]] */;
6815 val
* var30
/* : Map[MClassDef, Set[MType]] */;
6816 short int var31
/* : Bool */;
6817 val
* var32
/* : Map[MClassDef, Set[MType]] */;
6818 val
* var34
/* : Map[MClassDef, Set[MType]] */;
6819 val
* var35
/* : nullable Object */;
6820 val
* var36
/* : BucketsColorer[MClass, MType] */;
6821 val
* var_colorer
/* var colorer: BucketsColorer[MClass, MType] */;
6822 val
* var38
/* : Map[Object, Int] */;
6823 val
* var40
/* : nullable RapidTypeAnalysis */;
6824 val
* var42
/* : nullable RapidTypeAnalysis */;
6825 val
* var43
/* : HashSet[MClassType] */;
6826 val
* var45
/* : HashSet[MClassType] */;
6827 val
* var46
/* : Map[MClassType, Array[nullable MType]] */;
6828 val
* var48
/* : HashSet[MType] */;
6829 val
* var_all_unresolved
/* var all_unresolved: HashSet[MType] */;
6830 val
* var49
/* : Map[MClassDef, Set[MType]] */;
6831 val
* var51
/* : Map[MClassDef, Set[MType]] */;
6832 val
* var52
/* : Collection[nullable Object] */;
6833 val
* var_53
/* var : RemovableCollection[Set[MType]] */;
6834 val
* var54
/* : Iterator[nullable Object] */;
6835 val
* var_55
/* var : Iterator[Set[MType]] */;
6836 short int var56
/* : Bool */;
6837 val
* var58
/* : nullable Object */;
6838 val
* var_t
/* var t: Set[MType] */;
6839 val
* var59
/* : HashMap[MType, Int] */;
6840 val
* var_all_unresolved_types_colors
/* var all_unresolved_types_colors: HashMap[MType, Int] */;
6841 val
* var_60
/* var : HashSet[MType] */;
6842 val
* var61
/* : Iterator[nullable Object] */;
6843 val
* var_62
/* var : Iterator[MType] */;
6844 short int var63
/* : Bool */;
6845 val
* var65
/* : nullable Object */;
6846 val
* var_t66
/* var t: MType */;
6847 val
* var67
/* : Map[MType, Int] */;
6848 val
* var69
/* : Map[MType, Int] */;
6849 short int var70
/* : Bool */;
6850 val
* var71
/* : Map[MType, Int] */;
6851 val
* var73
/* : Map[MType, Int] */;
6852 val
* var74
/* : nullable Object */;
6853 long var75
/* : Int */;
6854 long var77
/* : Int */;
6855 val
* var78
/* : nullable Object */;
6857 var
= NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Set__nitc__MType
);
6859 core___core__HashMap___core__kernel__Object__init(var
); /* Direct call hash_collection#HashMap#init on <var:HashMap[MClass, Set[MType]]>*/
6861 var_mtype2unresolved
= var
;
6863 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
6864 var3
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
6870 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6871 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 559);
6874 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var1) on <var1:nullable RapidTypeAnalysis> */
6875 if (unlikely(var1
== NULL
)) {
6876 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6877 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 60);
6880 var6
= var1
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <var1:nullable RapidTypeAnalysis> */
6881 if (unlikely(var6
== NULL
)) {
6882 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
6883 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 60);
6892 var7
= core___core__HashSet___core__abstract_collection__Collection__iterator(var_
);
6897 var9
= ((short int(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_8
); /* is_ok on <var_8:Iterator[MClassType]>*/
6904 var10
= ((val
*(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_8
); /* item on <var_8:Iterator[MClassType]>*/
6908 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
6909 var13
= var_mtype
->attrs
[COLOR_nitc__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
6910 if (unlikely(var13
== NULL
)) {
6911 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6912 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1163);
6916 RET_LABEL12
:(void)0;
6921 var14
= core___core__HashMap___core__abstract_collection__MapRead__get_or_null(var_mtype2unresolved
, var_mclass
);
6924 if (var_set
== NULL
) {
6925 var15
= 1; /* is null */
6927 var15
= 0; /* arg is null but recv is not */
6930 var16
= core___core__Set___core__kernel__Object___61d_61d(var_set
, ((val
*)NULL
));
6934 var17
= NEW_core__HashSet(&type_core__HashSet__nitc__MType
);
6936 core___core__HashSet___core__kernel__Object__init(var17
); /* Direct call hash_collection#HashSet#init on <var17:HashSet[MType]>*/
6940 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_mtype2unresolved
, var_mclass
, var_set
); /* Direct call hash_collection#HashMap#[]= on <var_mtype2unresolved:HashMap[MClass, Set[MType]]>*/
6945 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
6946 var20
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
6947 if (unlikely(var20
== NULL
)) {
6948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6949 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
6953 RET_LABEL19
:(void)0;
6957 var21
= nitc___nitc__MClassType___MType__collect_mclassdefs(var_mtype
, var18
);
6961 var23
= ((val
*(*)(val
* self
))((((long)var_22
&3)?class_info
[((long)var_22
&3)]:var_22
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_22
); /* iterator on <var_22:Set[MClassDef]>*/
6966 var25
= ((short int(*)(val
* self
))((((long)var_24
&3)?class_info
[((long)var_24
&3)]:var_24
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_24
); /* is_ok on <var_24:Iterator[MClassDef]>*/
6973 var27
= ((val
*(*)(val
* self
))((((long)var_24
&3)?class_info
[((long)var_24
&3)]:var_24
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_24
); /* item on <var_24:Iterator[MClassDef]>*/
6977 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on <self:SeparateCompiler> */
6978 var30
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <self:SeparateCompiler> */
6979 if (unlikely(var30
== NULL
)) {
6980 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
6981 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 147);
6985 RET_LABEL29
:(void)0;
6989 var31
= ((short int(*)(val
* self
, val
* p0
))((((long)var28
&3)?class_info
[((long)var28
&3)]:var28
->class)->vft
[COLOR_core__abstract_collection__MapRead__has_key
]))(var28
, var_cd
); /* has_key on <var28:Map[MClassDef, Set[MType]]>*/
6993 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on <self:SeparateCompiler> */
6994 var34
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <self:SeparateCompiler> */
6995 if (unlikely(var34
== NULL
)) {
6996 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
6997 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 147);
7001 RET_LABEL33
:(void)0;
7005 var35
= ((val
*(*)(val
* self
, val
* p0
))((((long)var32
&3)?class_info
[((long)var32
&3)]:var32
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var32
, var_cd
); /* [] on <var32:Map[MClassDef, Set[MType]]>*/
7008 core___core__SimpleCollection___add_all(var_set
, var35
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_set:nullable Set[MType](Set[MType])>*/
7013 ((void(*)(val
* self
))((((long)var_24
&3)?class_info
[((long)var_24
&3)]:var_24
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_24
); /* next on <var_24:Iterator[MClassDef]>*/
7016 BREAK_label26
: (void)0;
7018 ((void(*)(val
* self
))((((long)var_24
&3)?class_info
[((long)var_24
&3)]:var_24
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_24
); /* finish on <var_24:Iterator[MClassDef]>*/
7021 ((void(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_8
); /* next on <var_8:Iterator[MClassType]>*/
7024 BREAK_label
: (void)0;
7026 ((void(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_8
); /* finish on <var_8:Iterator[MClassType]>*/
7028 var36
= NEW_nitc__BucketsColorer(&type_nitc__BucketsColorer__nitc__MClass__nitc__MType
);
7030 { /* Inline kernel#Object#init (var36) on <var36:BucketsColorer[MClass, MType]> */
7031 RET_LABEL37
:(void)0;
7034 var_colorer
= var36
;
7036 var38
= nitc___nitc__BucketsColorer___colorize(var_colorer
, var_mtype2unresolved
);
7039 { /* Inline separate_compiler#SeparateCompiler#opentype_colors= (self,var38) on <self:SeparateCompiler> */
7040 self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___opentype_colors
].val
= var38
; /* _opentype_colors on <self:SeparateCompiler> */
7041 RET_LABEL39
:(void)0;
7045 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
7046 var42
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
7048 RET_LABEL41
:(void)0;
7051 if (var40
== NULL
) {
7052 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7053 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 577);
7056 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var40) on <var40:nullable RapidTypeAnalysis> */
7057 if (unlikely(var40
== NULL
)) {
7058 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7059 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 60);
7062 var45
= var40
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <var40:nullable RapidTypeAnalysis> */
7063 if (unlikely(var45
== NULL
)) {
7064 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
7065 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 60);
7069 RET_LABEL44
:(void)0;
7073 var46
= nitc___nitc__SeparateCompiler___build_resolution_tables(self
, var43
, var_mtype2unresolved
);
7076 { /* Inline separate_compiler#SeparateCompiler#resolution_tables= (self,var46) on <self:SeparateCompiler> */
7077 self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___resolution_tables
].val
= var46
; /* _resolution_tables on <self:SeparateCompiler> */
7078 RET_LABEL47
:(void)0;
7081 var48
= NEW_core__HashSet(&type_core__HashSet__nitc__MType
);
7083 core___core__HashSet___core__kernel__Object__init(var48
); /* Direct call hash_collection#HashSet#init on <var48:HashSet[MType]>*/
7085 var_all_unresolved
= var48
;
7087 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (self) on <self:SeparateCompiler> */
7088 var51
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <self:SeparateCompiler> */
7089 if (unlikely(var51
== NULL
)) {
7090 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
7091 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 147);
7095 RET_LABEL50
:(void)0;
7099 var52
= ((val
*(*)(val
* self
))((((long)var49
&3)?class_info
[((long)var49
&3)]:var49
->class)->vft
[COLOR_core__abstract_collection__MapRead__values
]))(var49
); /* values on <var49:Map[MClassDef, Set[MType]]>*/
7103 var54
= ((val
*(*)(val
* self
))((((long)var_53
&3)?class_info
[((long)var_53
&3)]:var_53
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_53
); /* iterator on <var_53:RemovableCollection[Set[MType]]>*/
7108 var56
= ((short int(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_55
); /* is_ok on <var_55:Iterator[Set[MType]]>*/
7115 var58
= ((val
*(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_55
); /* item on <var_55:Iterator[Set[MType]]>*/
7119 core___core__SimpleCollection___add_all(var_all_unresolved
, var_t
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_all_unresolved:HashSet[MType]>*/
7122 ((void(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_55
); /* next on <var_55:Iterator[Set[MType]]>*/
7125 BREAK_label57
: (void)0;
7127 ((void(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_55
); /* finish on <var_55:Iterator[Set[MType]]>*/
7129 var59
= NEW_core__HashMap(&type_core__HashMap__nitc__MType__core__Int
);
7131 core___core__HashMap___core__kernel__Object__init(var59
); /* Direct call hash_collection#HashMap#init on <var59:HashMap[MType, Int]>*/
7133 var_all_unresolved_types_colors
= var59
;
7134 var_60
= var_all_unresolved
;
7136 var61
= core___core__HashSet___core__abstract_collection__Collection__iterator(var_60
);
7141 var63
= ((short int(*)(val
* self
))((((long)var_62
&3)?class_info
[((long)var_62
&3)]:var_62
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_62
); /* is_ok on <var_62:Iterator[MType]>*/
7148 var65
= ((val
*(*)(val
* self
))((((long)var_62
&3)?class_info
[((long)var_62
&3)]:var_62
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_62
); /* item on <var_62:Iterator[MType]>*/
7152 { /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on <self:SeparateCompiler> */
7153 var69
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___opentype_colors
].val
; /* _opentype_colors on <self:SeparateCompiler> */
7154 if (unlikely(var69
== NULL
)) {
7155 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
7156 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 151);
7160 RET_LABEL68
:(void)0;
7164 var70
= ((short int(*)(val
* self
, val
* p0
))((((long)var67
&3)?class_info
[((long)var67
&3)]:var67
->class)->vft
[COLOR_core__abstract_collection__MapRead__has_key
]))(var67
, var_t66
); /* has_key on <var67:Map[MType, Int]>*/
7168 { /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on <self:SeparateCompiler> */
7169 var73
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___opentype_colors
].val
; /* _opentype_colors on <self:SeparateCompiler> */
7170 if (unlikely(var73
== NULL
)) {
7171 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
7172 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 151);
7176 RET_LABEL72
:(void)0;
7180 var74
= ((val
*(*)(val
* self
, val
* p0
))((((long)var71
&3)?class_info
[((long)var71
&3)]:var71
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var71
, var_t66
); /* [] on <var71:Map[MType, Int]>*/
7183 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_all_unresolved_types_colors
, var_t66
, var74
); /* Direct call hash_collection#HashMap#[]= on <var_all_unresolved_types_colors:HashMap[MType, Int]>*/
7187 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
7191 RET_LABEL76
:(void)0;
7195 var78
= (val
*)(var75
<<2|1);
7196 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_all_unresolved_types_colors
, var_t66
, var78
); /* Direct call hash_collection#HashMap#[]= on <var_all_unresolved_types_colors:HashMap[MType, Int]>*/
7200 ((void(*)(val
* self
))((((long)var_62
&3)?class_info
[((long)var_62
&3)]:var_62
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_62
); /* next on <var_62:Iterator[MType]>*/
7203 BREAK_label64
: (void)0;
7205 ((void(*)(val
* self
))((((long)var_62
&3)?class_info
[((long)var_62
&3)]:var_62
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_62
); /* finish on <var_62:Iterator[MType]>*/
7208 nitc___nitc__SeparateCompiler___compile_color_consts(self
, var_all_unresolved_types_colors
); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:SeparateCompiler>*/
7212 /* method separate_compiler#SeparateCompiler#build_resolution_tables for (self: SeparateCompiler, Set[MClassType], Map[MClass, Set[MType]]): Map[MClassType, Array[nullable MType]] */
7213 val
* nitc___nitc__SeparateCompiler___build_resolution_tables(val
* self
, val
* p0
, val
* p1
) {
7214 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
7215 val
* var_elements
/* var elements: Set[MClassType] */;
7216 val
* var_map
/* var map: Map[MClass, Set[MType]] */;
7217 val
* var1
/* : HashMap[MClassType, Array[nullable MType]] */;
7218 val
* var_tables
/* var tables: HashMap[MClassType, Array[nullable MType]] */;
7219 val
* var_
/* var : Set[MClassType] */;
7220 val
* var2
/* : Iterator[nullable Object] */;
7221 val
* var_3
/* var : Iterator[MClassType] */;
7222 short int var4
/* : Bool */;
7223 val
* var5
/* : nullable Object */;
7224 val
* var_mclasstype
/* var mclasstype: MClassType */;
7225 val
* var6
/* : MClass */;
7226 val
* var8
/* : MClass */;
7227 val
* var9
/* : nullable Object */;
7228 val
* var_mtypes
/* var mtypes: Set[MType] */;
7229 val
* var10
/* : Array[nullable MType] */;
7230 val
* var_table
/* var table: Array[nullable MType] */;
7231 val
* var_11
/* var : Set[MType] */;
7232 val
* var12
/* : Iterator[nullable Object] */;
7233 val
* var_13
/* var : Iterator[MType] */;
7234 short int var14
/* : Bool */;
7235 val
* var16
/* : nullable Object */;
7236 val
* var_mtype
/* var mtype: MType */;
7237 val
* var17
/* : Map[MType, Int] */;
7238 val
* var19
/* : Map[MType, Int] */;
7239 val
* var20
/* : nullable Object */;
7240 long var21
/* : Int */;
7241 long var_color
/* var color: Int */;
7242 long var22
/* : Int */;
7243 long var24
/* : Int */;
7244 short int var25
/* : Bool */;
7245 short int var27
/* : Bool */;
7248 const char* var_class_name
;
7249 short int var28
/* : Bool */;
7250 long var29
/* : Int */;
7251 long var31
/* : Int */;
7252 long var_i
/* var i: Int */;
7253 long var_32
/* var : Int */;
7254 short int var33
/* : Bool */;
7255 short int var35
/* : Bool */;
7258 const char* var_class_name38
;
7259 short int var39
/* : Bool */;
7260 long var41
/* : Int */;
7263 var1
= NEW_core__HashMap(&type_core__HashMap__nitc__MClassType__core__Array__nullable__nitc__MType
);
7265 core___core__HashMap___core__kernel__Object__init(var1
); /* Direct call hash_collection#HashMap#init on <var1:HashMap[MClassType, Array[nullable MType]]>*/
7268 var_
= var_elements
;
7270 var2
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Set[MClassType]>*/
7275 var4
= ((short int(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_3
); /* is_ok on <var_3:Iterator[MClassType]>*/
7282 var5
= ((val
*(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_3
); /* item on <var_3:Iterator[MClassType]>*/
7284 var_mclasstype
= var5
;
7286 { /* Inline model#MClassType#mclass (var_mclasstype) on <var_mclasstype:MClassType> */
7287 var8
= var_mclasstype
->attrs
[COLOR_nitc__model__MClassType___mclass
].val
; /* _mclass on <var_mclasstype:MClassType> */
7288 if (unlikely(var8
== NULL
)) {
7289 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7290 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1163);
7298 var9
= ((val
*(*)(val
* self
, val
* p0
))((((long)var_map
&3)?class_info
[((long)var_map
&3)]:var_map
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var_map
, var6
); /* [] on <var_map:Map[MClass, Set[MType]]>*/
7301 var10
= NEW_core__Array(&type_core__Array__nullable__nitc__MType
);
7303 core___core__Array___core__kernel__Object__init(var10
); /* Direct call array#Array#init on <var10:Array[nullable MType]>*/
7306 var_11
= var_mtypes
;
7308 var12
= ((val
*(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_11
); /* iterator on <var_11:Set[MType]>*/
7313 var14
= ((short int(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_13
); /* is_ok on <var_13:Iterator[MType]>*/
7320 var16
= ((val
*(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_13
); /* item on <var_13:Iterator[MType]>*/
7324 { /* Inline separate_compiler#SeparateCompiler#opentype_colors (self) on <self:SeparateCompiler> */
7325 var19
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___opentype_colors
].val
; /* _opentype_colors on <self:SeparateCompiler> */
7326 if (unlikely(var19
== NULL
)) {
7327 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opentype_colors");
7328 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 151);
7332 RET_LABEL18
:(void)0;
7336 var20
= ((val
*(*)(val
* self
, val
* p0
))((((long)var17
&3)?class_info
[((long)var17
&3)]:var17
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var17
, var_mtype
); /* [] on <var17:Map[MType, Int]>*/
7338 var21
= (long)(var20
)>>2;
7341 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
7342 var24
= var_table
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MType]> */
7344 RET_LABEL23
:(void)0;
7348 { /* Inline kernel#Int#<= (var22,var_color) on <var22:Int> */
7349 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
7350 /* <var_color:Int> isa OTHER */
7351 var27
= 1; /* easy <var_color:Int> isa OTHER*/
7352 if (unlikely(!var27
)) {
7353 var_class_name
= type_core__Int
.name
;
7354 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
7355 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
7358 var28
= var22
<= var_color
;
7361 RET_LABEL26
:(void)0;
7366 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MType]> */
7367 var31
= var_table
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MType]> */
7369 RET_LABEL30
:(void)0;
7376 { /* Inline kernel#Int#< (var_i,var_32) on <var_i:Int> */
7377 /* Covariant cast for argument 0 (i) <var_32:Int> isa OTHER */
7378 /* <var_32:Int> isa OTHER */
7379 var35
= 1; /* easy <var_32:Int> isa OTHER*/
7380 if (unlikely(!var35
)) {
7381 var_class_name38
= type_core__Int
.name
;
7382 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38
);
7383 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
7386 var39
= var_i
< var_32
;
7389 RET_LABEL34
:(void)0;
7397 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table
, var_i
, ((val
*)NULL
)); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
7400 var41
= core___core__Int___Discrete__successor(var_i
, 1l);
7404 BREAK_label40
: (void)0;
7408 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table
, var_color
, var_mtype
); /* Direct call array#Array#[]= on <var_table:Array[nullable MType]>*/
7411 ((void(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_13
); /* next on <var_13:Iterator[MType]>*/
7414 BREAK_label15
: (void)0;
7416 ((void(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_13
); /* finish on <var_13:Iterator[MType]>*/
7419 core___core__HashMap___core__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]]>*/
7422 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_3
); /* next on <var_3:Iterator[MClassType]>*/
7425 BREAK_label
: (void)0;
7427 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_3
); /* finish on <var_3:Iterator[MClassType]>*/
7434 /* method separate_compiler#SeparateCompiler#compile_module_to_c for (self: SeparateCompiler, MModule) */
7435 void nitc___nitc__SeparateCompiler___compile_module_to_c(val
* self
, val
* p0
) {
7436 val
* var_mmodule
/* var mmodule: MModule */;
7437 val
* var
/* : MModule */;
7438 val
* var2
/* : MModule */;
7439 val
* var_old_module
/* var old_module: MModule */;
7440 val
* var4
/* : Array[MClassDef] */;
7441 val
* var6
/* : Array[MClassDef] */;
7442 val
* var_
/* var : Array[MClassDef] */;
7443 val
* var7
/* : IndexedIterator[nullable Object] */;
7444 val
* var_8
/* var : IndexedIterator[MClassDef] */;
7445 short int var9
/* : Bool */;
7446 val
* var10
/* : nullable Object */;
7447 val
* var_cd
/* var cd: MClassDef */;
7448 val
* var11
/* : Array[MPropDef] */;
7449 val
* var13
/* : Array[MPropDef] */;
7450 val
* var_14
/* var : Array[MPropDef] */;
7451 val
* var15
/* : IndexedIterator[nullable Object] */;
7452 val
* var_16
/* var : IndexedIterator[MPropDef] */;
7453 short int var17
/* : Bool */;
7454 val
* var19
/* : nullable Object */;
7455 val
* var_pd
/* var pd: MPropDef */;
7456 short int var20
/* : Bool */;
7459 short int var21
/* : Bool */;
7460 short int var23
/* : Bool */;
7461 short int var24
/* : Bool */;
7462 val
* var25
/* : MProperty */;
7463 val
* var27
/* : MProperty */;
7464 short int var28
/* : Bool */;
7465 short int var30
/* : Bool */;
7466 short int var_31
/* var : Bool */;
7467 short int var32
/* : Bool */;
7468 short int var34
/* : Bool */;
7469 short int var_35
/* var : Bool */;
7470 val
* var36
/* : nullable MSignature */;
7471 val
* var38
/* : nullable MSignature */;
7472 short int var39
/* : Bool */;
7473 short int var40
/* : Bool */;
7474 val
* var_other
/* var other: nullable Object */;
7475 short int var42
/* : Bool */;
7476 short int var44
/* : Bool */;
7477 val
* var45
/* : nullable RapidTypeAnalysis */;
7478 val
* var47
/* : nullable RapidTypeAnalysis */;
7479 val
* var_rta
/* var rta: nullable RapidTypeAnalysis */;
7480 short int var48
/* : Bool */;
7481 short int var49
/* : Bool */;
7482 val
* var50
/* : ModelBuilder */;
7483 val
* var52
/* : ModelBuilder */;
7484 val
* var53
/* : ToolContext */;
7485 val
* var55
/* : ToolContext */;
7486 val
* var56
/* : OptionBool */;
7487 val
* var58
/* : OptionBool */;
7488 val
* var59
/* : nullable Object */;
7489 val
* var61
/* : nullable Object */;
7490 short int var62
/* : Bool */;
7491 short int var_63
/* var : Bool */;
7492 short int var64
/* : Bool */;
7493 short int var65
/* : Bool */;
7494 val
* var_other67
/* var other: nullable Object */;
7495 short int var68
/* : Bool */;
7496 short int var69
/* : Bool */;
7497 short int var_70
/* var : Bool */;
7498 val
* var71
/* : HashSet[MMethodDef] */;
7499 val
* var73
/* : HashSet[MMethodDef] */;
7500 short int var74
/* : Bool */;
7501 short int var75
/* : Bool */;
7502 val
* var76
/* : SeparateRuntimeFunction */;
7503 val
* var_r
/* var r: SeparateRuntimeFunction */;
7504 val
* var77
/* : SeparateRuntimeFunction */;
7505 val
* var_r2
/* var r2: SeparateRuntimeFunction */;
7506 short int var78
/* : Bool */;
7507 short int var80
/* : Bool */;
7508 short int var81
/* : Bool */;
7509 val
* var82
/* : ModelBuilder */;
7510 val
* var84
/* : ModelBuilder */;
7511 val
* var85
/* : ToolContext */;
7512 val
* var87
/* : ToolContext */;
7513 val
* var88
/* : OptionBool */;
7514 val
* var90
/* : OptionBool */;
7515 val
* var91
/* : nullable Object */;
7516 val
* var93
/* : nullable Object */;
7517 short int var94
/* : Bool */;
7520 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
7521 var2
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
7522 if (unlikely(var2
== NULL
)) {
7523 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7524 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
7531 var_old_module
= var
;
7533 { /* Inline abstract_compiler#AbstractCompiler#mainmodule= (self,var_mmodule) on <self:SeparateCompiler> */
7534 self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
= var_mmodule
; /* _mainmodule on <self:SeparateCompiler> */
7539 { /* Inline model#MModule#mclassdefs (var_mmodule) on <var_mmodule:MModule> */
7540 var6
= var_mmodule
->attrs
[COLOR_nitc__model__MModule___mclassdefs
].val
; /* _mclassdefs on <var_mmodule:MModule> */
7541 if (unlikely(var6
== NULL
)) {
7542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
7543 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 141);
7552 var7
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
7557 var9
= ((short int(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_8
); /* is_ok on <var_8:IndexedIterator[MClassDef]>*/
7564 var10
= ((val
*(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_8
); /* item on <var_8:IndexedIterator[MClassDef]>*/
7568 { /* Inline model#MClassDef#mpropdefs (var_cd) on <var_cd:MClassDef> */
7569 var13
= var_cd
->attrs
[COLOR_nitc__model__MClassDef___mpropdefs
].val
; /* _mpropdefs on <var_cd:MClassDef> */
7570 if (unlikely(var13
== NULL
)) {
7571 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
7572 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 707);
7576 RET_LABEL12
:(void)0;
7581 var15
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_14
);
7586 var17
= ((short int(*)(val
* self
))((((long)var_16
&3)?class_info
[((long)var_16
&3)]:var_16
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_16
); /* is_ok on <var_16:IndexedIterator[MPropDef]>*/
7593 var19
= ((val
*(*)(val
* self
))((((long)var_16
&3)?class_info
[((long)var_16
&3)]:var_16
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_16
); /* item on <var_16:IndexedIterator[MPropDef]>*/
7596 /* <var_pd:MPropDef> isa MMethodDef */
7597 cltype
= type_nitc__MMethodDef
.color
;
7598 idtype
= type_nitc__MMethodDef
.id
;
7599 if(cltype
>= var_pd
->type
->table_size
) {
7602 var20
= var_pd
->type
->type_table
[cltype
] == idtype
;
7610 { /* Inline model#MPropDef#mproperty (var_pd) on <var_pd:MPropDef(MMethodDef)> */
7611 var27
= var_pd
->attrs
[COLOR_nitc__model__MPropDef___mproperty
].val
; /* _mproperty on <var_pd:MPropDef(MMethodDef)> */
7612 if (unlikely(var27
== NULL
)) {
7613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7614 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 2230);
7618 RET_LABEL26
:(void)0;
7622 { /* Inline model_base#MEntity#is_broken (var25) on <var25:MProperty(MMethod)> */
7623 var30
= var25
->attrs
[COLOR_nitc__model_base__MEntity___is_broken
].s
; /* _is_broken on <var25:MProperty(MMethod)> */
7625 RET_LABEL29
:(void)0;
7633 { /* Inline model_base#MEntity#is_broken (var_pd) on <var_pd:MPropDef(MMethodDef)> */
7634 var34
= var_pd
->attrs
[COLOR_nitc__model_base__MEntity___is_broken
].s
; /* _is_broken on <var_pd:MPropDef(MMethodDef)> */
7636 RET_LABEL33
:(void)0;
7646 { /* Inline model#MMethodDef#msignature (var_pd) on <var_pd:MPropDef(MMethodDef)> */
7647 var38
= var_pd
->attrs
[COLOR_nitc__model__MMethodDef___msignature
].val
; /* _msignature on <var_pd:MPropDef(MMethodDef)> */
7649 RET_LABEL37
:(void)0;
7652 if (var36
== NULL
) {
7653 var39
= 1; /* is null */
7655 var39
= 0; /* arg is null but recv is not */
7658 { /* Inline kernel#Object#== (var36,((val*)NULL)) on <var36:nullable MSignature> */
7659 var_other
= ((val
*)NULL
);
7661 { /* Inline kernel#Object#is_same_instance (var36,var_other) on <var36:nullable MSignature(MSignature)> */
7662 var44
= var36
== var_other
;
7665 RET_LABEL43
:(void)0;
7670 RET_LABEL41
:(void)0;
7681 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
7682 var47
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
7684 RET_LABEL46
:(void)0;
7689 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
7690 var52
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
7691 if (unlikely(var52
== NULL
)) {
7692 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7693 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 538);
7697 RET_LABEL51
:(void)0;
7701 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var50) on <var50:ModelBuilder> */
7702 var55
= var50
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var50:ModelBuilder> */
7703 if (unlikely(var55
== NULL
)) {
7704 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7705 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
7709 RET_LABEL54
:(void)0;
7713 { /* Inline separate_compiler#ToolContext#opt_skip_dead_methods (var53) on <var53:ToolContext> */
7714 var58
= var53
->attrs
[COLOR_nitc__separate_compiler__ToolContext___opt_skip_dead_methods
].val
; /* _opt_skip_dead_methods on <var53:ToolContext> */
7715 if (unlikely(var58
== NULL
)) {
7716 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_skip_dead_methods");
7717 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 54);
7721 RET_LABEL57
:(void)0;
7725 { /* Inline opts#Option#value (var56) on <var56:OptionBool> */
7726 var61
= var56
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var56:OptionBool> */
7728 RET_LABEL60
:(void)0;
7731 var62
= (short int)((long)(var59
)>>2);
7734 if (var_rta
== NULL
) {
7735 var64
= 0; /* is null */
7737 var64
= 1; /* arg is null and recv is not */
7740 { /* Inline kernel#Object#!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
7741 var_other67
= ((val
*)NULL
);
7743 var68
= ((short int(*)(val
* self
, val
* p0
))(var_rta
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_rta
, var_other67
); /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/
7748 RET_LABEL66
:(void)0;
7759 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
7760 var73
= var_rta
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
7761 if (unlikely(var73
== NULL
)) {
7762 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
7763 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 79);
7767 RET_LABEL72
:(void)0;
7771 var74
= core___core__HashSet___core__abstract_collection__Collection__has(var71
, var_pd
);
7783 var76
= nitc__separate_compiler___MMethodDef___separate_runtime_function(var_pd
);
7787 nitc___nitc__SeparateRuntimeFunction___nitc__abstract_compiler__AbstractRuntimeFunction__compile_to_c(var_r
, self
); /* Direct call separate_compiler#SeparateRuntimeFunction#compile_to_c on <var_r:SeparateRuntimeFunction>*/
7790 var77
= nitc__separate_compiler___MMethodDef___virtual_runtime_function(var_pd
);
7794 { /* Inline kernel#Object#!= (var_r2,var_r) on <var_r2:SeparateRuntimeFunction> */
7795 var_other67
= var_r
;
7797 var80
= ((short int(*)(val
* self
, val
* p0
))(var_r2
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_r2
, var_other67
); /* == on <var_r2:SeparateRuntimeFunction>*/
7802 RET_LABEL79
:(void)0;
7807 nitc___nitc__SeparateRuntimeFunction___nitc__abstract_compiler__AbstractRuntimeFunction__compile_to_c(var_r2
, self
); /* Direct call separate_compiler#SeparateRuntimeFunction#compile_to_c on <var_r2:SeparateRuntimeFunction>*/
7812 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
7813 var84
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
7814 if (unlikely(var84
== NULL
)) {
7815 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7816 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 538);
7820 RET_LABEL83
:(void)0;
7824 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var82) on <var82:ModelBuilder> */
7825 var87
= var82
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var82:ModelBuilder> */
7826 if (unlikely(var87
== NULL
)) {
7827 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7828 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
7832 RET_LABEL86
:(void)0;
7836 { /* Inline separate_compiler#ToolContext#opt_trampoline_call (var85) on <var85:ToolContext> */
7837 var90
= var85
->attrs
[COLOR_nitc__separate_compiler__ToolContext___opt_trampoline_call
].val
; /* _opt_trampoline_call on <var85:ToolContext> */
7838 if (unlikely(var90
== NULL
)) {
7839 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_trampoline_call");
7840 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 37);
7844 RET_LABEL89
:(void)0;
7848 { /* Inline opts#Option#value (var88) on <var88:OptionBool> */
7849 var93
= var88
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var88:OptionBool> */
7851 RET_LABEL92
:(void)0;
7854 var94
= (short int)((long)(var91
)>>2);
7857 nitc___nitc__SeparateRuntimeFunction___compile_trampolines(var_r2
, self
); /* Direct call separate_compiler#SeparateRuntimeFunction#compile_trampolines on <var_r2:SeparateRuntimeFunction>*/
7861 BREAK_label22
: (void)0;
7863 ((void(*)(val
* self
))((((long)var_16
&3)?class_info
[((long)var_16
&3)]:var_16
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_16
); /* next on <var_16:IndexedIterator[MPropDef]>*/
7866 BREAK_label18
: (void)0;
7868 ((void(*)(val
* self
))((((long)var_16
&3)?class_info
[((long)var_16
&3)]:var_16
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_16
); /* finish on <var_16:IndexedIterator[MPropDef]>*/
7871 ((void(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_8
); /* next on <var_8:IndexedIterator[MClassDef]>*/
7874 BREAK_label
: (void)0;
7876 ((void(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_8
); /* finish on <var_8:IndexedIterator[MClassDef]>*/
7879 { /* Inline abstract_compiler#AbstractCompiler#mainmodule= (self,var_old_module) on <self:SeparateCompiler> */
7880 self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
= var_old_module
; /* _mainmodule on <self:SeparateCompiler> */
7881 RET_LABEL95
:(void)0;
7886 /* method separate_compiler#SeparateCompiler#link_mmethods for (self: SeparateCompiler) */
7887 void nitc___nitc__SeparateCompiler___link_mmethods(val
* self
) {
7888 short int var
/* : Bool */;
7889 val
* var1
/* : ModelBuilder */;
7890 val
* var3
/* : ModelBuilder */;
7891 val
* var4
/* : ToolContext */;
7892 val
* var6
/* : ToolContext */;
7893 val
* var7
/* : OptionBool */;
7894 val
* var9
/* : OptionBool */;
7895 val
* var10
/* : nullable Object */;
7896 val
* var12
/* : nullable Object */;
7897 short int var13
/* : Bool */;
7898 short int var14
/* : Bool */;
7899 short int var_
/* var : Bool */;
7900 val
* var15
/* : ModelBuilder */;
7901 val
* var17
/* : ModelBuilder */;
7902 val
* var18
/* : ToolContext */;
7903 val
* var20
/* : ToolContext */;
7904 val
* var21
/* : OptionBool */;
7905 val
* var23
/* : OptionBool */;
7906 val
* var24
/* : nullable Object */;
7907 val
* var26
/* : nullable Object */;
7908 short int var27
/* : Bool */;
7909 short int var28
/* : Bool */;
7910 val
* var29
/* : MModule */;
7911 val
* var31
/* : MModule */;
7912 val
* var32
/* : POSetElement[MModule] */;
7913 val
* var34
/* : POSetElement[MModule] */;
7914 val
* var35
/* : Collection[nullable Object] */;
7915 val
* var_36
/* var : Collection[MModule] */;
7916 val
* var37
/* : Iterator[nullable Object] */;
7917 val
* var_38
/* var : Iterator[MModule] */;
7918 short int var39
/* : Bool */;
7919 val
* var40
/* : nullable Object */;
7920 val
* var_mmodule
/* var mmodule: MModule */;
7921 val
* var41
/* : Array[MClassDef] */;
7922 val
* var43
/* : Array[MClassDef] */;
7923 val
* var_44
/* var : Array[MClassDef] */;
7924 val
* var45
/* : IndexedIterator[nullable Object] */;
7925 val
* var_46
/* var : IndexedIterator[MClassDef] */;
7926 short int var47
/* : Bool */;
7927 val
* var49
/* : nullable Object */;
7928 val
* var_cd
/* var cd: MClassDef */;
7929 val
* var50
/* : Array[MProperty] */;
7930 val
* var52
/* : Array[MProperty] */;
7931 val
* var_53
/* var : Array[MProperty] */;
7932 val
* var54
/* : IndexedIterator[nullable Object] */;
7933 val
* var_55
/* var : IndexedIterator[MProperty] */;
7934 short int var56
/* : Bool */;
7935 val
* var58
/* : nullable Object */;
7936 val
* var_m
/* var m: MProperty */;
7937 short int var59
/* : Bool */;
7940 short int var60
/* : Bool */;
7942 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
7943 var3
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
7944 if (unlikely(var3
== NULL
)) {
7945 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7946 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 538);
7954 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var1) on <var1:ModelBuilder> */
7955 var6
= var1
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var1:ModelBuilder> */
7956 if (unlikely(var6
== NULL
)) {
7957 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7958 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
7966 { /* Inline separate_compiler#ToolContext#opt_substitute_monomorph (var4) on <var4:ToolContext> */
7967 var9
= var4
->attrs
[COLOR_nitc__separate_compiler__ToolContext___opt_substitute_monomorph
].val
; /* _opt_substitute_monomorph on <var4:ToolContext> */
7968 if (unlikely(var9
== NULL
)) {
7969 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_substitute_monomorph");
7970 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 41);
7978 { /* Inline opts#Option#value (var7) on <var7:OptionBool> */
7979 var12
= var7
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var7:OptionBool> */
7981 RET_LABEL11
:(void)0;
7984 var13
= (short int)((long)(var10
)>>2);
7989 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
7990 var17
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
7991 if (unlikely(var17
== NULL
)) {
7992 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7993 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 538);
7997 RET_LABEL16
:(void)0;
8001 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var15) on <var15:ModelBuilder> */
8002 var20
= var15
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var15:ModelBuilder> */
8003 if (unlikely(var20
== NULL
)) {
8004 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
8005 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
8009 RET_LABEL19
:(void)0;
8013 { /* Inline separate_compiler#ToolContext#opt_guard_call (var18) on <var18:ToolContext> */
8014 var23
= var18
->attrs
[COLOR_nitc__separate_compiler__ToolContext___opt_guard_call
].val
; /* _opt_guard_call on <var18:ToolContext> */
8015 if (unlikely(var23
== NULL
)) {
8016 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_guard_call");
8017 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 39);
8021 RET_LABEL22
:(void)0;
8025 { /* Inline opts#Option#value (var21) on <var21:OptionBool> */
8026 var26
= var21
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var21:OptionBool> */
8028 RET_LABEL25
:(void)0;
8031 var27
= (short int)((long)(var24
)>>2);
8042 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
8043 var31
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
8044 if (unlikely(var31
== NULL
)) {
8045 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
8046 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
8050 RET_LABEL30
:(void)0;
8054 { /* Inline mmodule#MModule#in_importation (var29) on <var29:MModule> */
8055 var34
= var29
->attrs
[COLOR_nitc__mmodule__MModule___in_importation
].val
; /* _in_importation on <var29:MModule> */
8056 if (unlikely(var34
== NULL
)) {
8057 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
8058 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule
, 104);
8062 RET_LABEL33
:(void)0;
8066 var35
= poset___poset__POSetElement___greaters(var32
);
8070 var37
= ((val
*(*)(val
* self
))((((long)var_36
&3)?class_info
[((long)var_36
&3)]:var_36
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_36
); /* iterator on <var_36:Collection[MModule]>*/
8075 var39
= ((short int(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_38
); /* is_ok on <var_38:Iterator[MModule]>*/
8082 var40
= ((val
*(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_38
); /* item on <var_38:Iterator[MModule]>*/
8084 var_mmodule
= var40
;
8086 { /* Inline model#MModule#mclassdefs (var_mmodule) on <var_mmodule:MModule> */
8087 var43
= var_mmodule
->attrs
[COLOR_nitc__model__MModule___mclassdefs
].val
; /* _mclassdefs on <var_mmodule:MModule> */
8088 if (unlikely(var43
== NULL
)) {
8089 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
8090 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 141);
8094 RET_LABEL42
:(void)0;
8099 var45
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_44
);
8104 var47
= ((short int(*)(val
* self
))((((long)var_46
&3)?class_info
[((long)var_46
&3)]:var_46
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_46
); /* is_ok on <var_46:IndexedIterator[MClassDef]>*/
8111 var49
= ((val
*(*)(val
* self
))((((long)var_46
&3)?class_info
[((long)var_46
&3)]:var_46
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_46
); /* item on <var_46:IndexedIterator[MClassDef]>*/
8115 { /* Inline model#MClassDef#intro_mproperties (var_cd) on <var_cd:MClassDef> */
8116 var52
= var_cd
->attrs
[COLOR_nitc__model__MClassDef___intro_mproperties
].val
; /* _intro_mproperties on <var_cd:MClassDef> */
8117 if (unlikely(var52
== NULL
)) {
8118 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mproperties");
8119 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 704);
8123 RET_LABEL51
:(void)0;
8128 var54
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_53
);
8133 var56
= ((short int(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_55
); /* is_ok on <var_55:IndexedIterator[MProperty]>*/
8140 var58
= ((val
*(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_55
); /* item on <var_55:IndexedIterator[MProperty]>*/
8143 /* <var_m:MProperty> isa MMethod */
8144 cltype
= type_nitc__MMethod
.color
;
8145 idtype
= type_nitc__MMethod
.id
;
8146 if(cltype
>= var_m
->type
->table_size
) {
8149 var59
= var_m
->type
->type_table
[cltype
] == idtype
;
8157 nitc___nitc__SeparateCompiler___link_mmethod(self
, var_m
); /* Direct call separate_compiler#SeparateCompiler#link_mmethod on <self:SeparateCompiler>*/
8159 BREAK_label61
: (void)0;
8161 ((void(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_55
); /* next on <var_55:IndexedIterator[MProperty]>*/
8164 BREAK_label57
: (void)0;
8166 ((void(*)(val
* self
))((((long)var_55
&3)?class_info
[((long)var_55
&3)]:var_55
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_55
); /* finish on <var_55:IndexedIterator[MProperty]>*/
8169 ((void(*)(val
* self
))((((long)var_46
&3)?class_info
[((long)var_46
&3)]:var_46
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_46
); /* next on <var_46:IndexedIterator[MClassDef]>*/
8172 BREAK_label48
: (void)0;
8174 ((void(*)(val
* self
))((((long)var_46
&3)?class_info
[((long)var_46
&3)]:var_46
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_46
); /* finish on <var_46:IndexedIterator[MClassDef]>*/
8177 ((void(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_38
); /* next on <var_38:Iterator[MModule]>*/
8180 BREAK_label
: (void)0;
8182 ((void(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_38
); /* finish on <var_38:Iterator[MModule]>*/
8186 /* method separate_compiler#SeparateCompiler#link_mmethod for (self: SeparateCompiler, MMethod) */
8187 void nitc___nitc__SeparateCompiler___link_mmethod(val
* self
, val
* p0
) {
8188 val
* var_m
/* var m: MMethod */;
8189 static val
* varonce
;
8190 val
* var
/* : String */;
8191 char* var1
/* : NativeString */;
8192 val
* var2
/* : String */;
8193 val
* var3
/* : String */;
8194 val
* var4
/* : String */;
8195 val
* var_n2
/* var n2: String */;
8196 val
* var5
/* : nullable MMethodDef */;
8197 val
* var_md
/* var md: nullable MMethodDef */;
8198 short int var6
/* : Bool */;
8199 short int var7
/* : Bool */;
8200 val
* var_other
/* var other: nullable Object */;
8201 short int var9
/* : Bool */;
8202 short int var10
/* : Bool */;
8203 val
* var11
/* : Array[String] */;
8204 val
* var13
/* : Array[String] */;
8205 val
* var15
/* : NativeArray[String] */;
8206 static val
* varonce14
;
8207 static val
* varonce16
;
8208 val
* var17
/* : String */;
8209 char* var18
/* : NativeString */;
8210 val
* var19
/* : String */;
8211 static val
* varonce20
;
8212 val
* var21
/* : String */;
8213 char* var22
/* : NativeString */;
8214 val
* var23
/* : String */;
8215 val
* var24
/* : SeparateRuntimeFunction */;
8216 val
* var25
/* : String */;
8217 val
* var26
/* : String */;
8218 val
* var27
/* : ModelBuilder */;
8219 val
* var29
/* : ModelBuilder */;
8220 val
* var30
/* : ToolContext */;
8221 val
* var32
/* : ToolContext */;
8222 val
* var33
/* : OptionBool */;
8223 val
* var35
/* : OptionBool */;
8224 val
* var36
/* : nullable Object */;
8225 val
* var38
/* : nullable Object */;
8226 short int var39
/* : Bool */;
8227 val
* var40
/* : MPropDef */;
8228 val
* var42
/* : MPropDef */;
8229 val
* var43
/* : SeparateRuntimeFunction */;
8230 val
* var_r
/* var r: SeparateRuntimeFunction */;
8231 val
* var45
/* : NativeArray[String] */;
8232 static val
* varonce44
;
8233 static val
* varonce46
;
8234 val
* var47
/* : String */;
8235 char* var48
/* : NativeString */;
8236 val
* var49
/* : String */;
8237 static val
* varonce50
;
8238 val
* var51
/* : String */;
8239 char* var52
/* : NativeString */;
8240 val
* var53
/* : String */;
8241 val
* var54
/* : String */;
8242 val
* var55
/* : String */;
8243 val
* var56
/* : String */;
8245 if (likely(varonce
!=NULL
)) {
8249 var2
= core__flat___NativeString___to_s_full(var1
, 5l, 5l);
8254 var3
= nitc__separate_compiler___MEntity___const_color(var_m
);
8257 var4
= ((val
*(*)(val
* self
, val
* p0
))(var
->class->vft
[COLOR_core__abstract_text__String___43d
]))(var
, var3
); /* + on <var:String>*/
8261 var5
= nitc___nitc__SeparateCompiler___is_monomorphic(self
, var_m
);
8264 if (var_md
== NULL
) {
8265 var6
= 0; /* is null */
8267 var6
= 1; /* arg is null and recv is not */
8270 { /* Inline kernel#Object#!= (var_md,((val*)NULL)) on <var_md:nullable MMethodDef> */
8271 var_other
= ((val
*)NULL
);
8273 var9
= ((short int(*)(val
* self
, val
* p0
))(var_md
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_md
, var_other
); /* == on <var_md:nullable MMethodDef(MMethodDef)>*/
8284 { /* Inline abstract_compiler#AbstractCompiler#linker_script (self) on <self:SeparateCompiler> */
8285 var13
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___linker_script
].val
; /* _linker_script on <self:SeparateCompiler> */
8286 if (unlikely(var13
== NULL
)) {
8287 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _linker_script");
8288 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 588);
8292 RET_LABEL12
:(void)0;
8295 if (unlikely(varonce14
==NULL
)) {
8296 var15
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
8297 if (likely(varonce16
!=NULL
)) {
8301 var19
= core__flat___NativeString___to_s_full(var18
, 3l, 3l);
8305 ((struct instance_core__NativeArray
*)var15
)->values
[1]=var17
;
8306 if (likely(varonce20
!=NULL
)) {
8310 var23
= core__flat___NativeString___to_s_full(var22
, 1l, 1l);
8314 ((struct instance_core__NativeArray
*)var15
)->values
[3]=var21
;
8319 ((struct instance_core__NativeArray
*)var15
)->values
[0]=var_n2
;
8321 var24
= nitc__separate_compiler___MMethodDef___virtual_runtime_function(var_md
);
8324 var25
= nitc___nitc__AbstractRuntimeFunction___c_name(var24
);
8326 ((struct instance_core__NativeArray
*)var15
)->values
[2]=var25
;
8328 var26
= ((val
*(*)(val
* self
))(var15
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var15
); /* native_to_s on <var15:NativeArray[String]>*/
8332 core___core__Array___core__abstract_collection__SimpleCollection__add(var11
, var26
); /* Direct call array#Array#add on <var11:Array[String]>*/
8337 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
8338 var29
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
8339 if (unlikely(var29
== NULL
)) {
8340 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
8341 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 538);
8345 RET_LABEL28
:(void)0;
8349 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var27) on <var27:ModelBuilder> */
8350 var32
= var27
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var27:ModelBuilder> */
8351 if (unlikely(var32
== NULL
)) {
8352 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
8353 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
8357 RET_LABEL31
:(void)0;
8361 { /* Inline separate_compiler#ToolContext#opt_guard_call (var30) on <var30:ToolContext> */
8362 var35
= var30
->attrs
[COLOR_nitc__separate_compiler__ToolContext___opt_guard_call
].val
; /* _opt_guard_call on <var30:ToolContext> */
8363 if (unlikely(var35
== NULL
)) {
8364 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_guard_call");
8365 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 39);
8369 RET_LABEL34
:(void)0;
8373 { /* Inline opts#Option#value (var33) on <var33:OptionBool> */
8374 var38
= var33
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var33:OptionBool> */
8376 RET_LABEL37
:(void)0;
8379 var39
= (short int)((long)(var36
)>>2);
8382 { /* Inline model#MProperty#intro (var_m) on <var_m:MMethod> */
8383 var42
= var_m
->attrs
[COLOR_nitc__model__MProperty___intro
].val
; /* _intro on <var_m:MMethod> */
8384 if (unlikely(var42
== NULL
)) {
8385 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
8386 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1986);
8390 RET_LABEL41
:(void)0;
8394 var43
= nitc__separate_compiler___MMethodDef___virtual_runtime_function(var40
);
8397 if (unlikely(varonce44
==NULL
)) {
8398 var45
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
8399 if (likely(varonce46
!=NULL
)) {
8403 var49
= core__flat___NativeString___to_s_full(var48
, 1l, 1l);
8407 ((struct instance_core__NativeArray
*)var45
)->values
[1]=var47
;
8408 if (likely(varonce50
!=NULL
)) {
8411 var52
= " __attribute__((weak));";
8412 var53
= core__flat___NativeString___to_s_full(var52
, 23l, 23l);
8416 ((struct instance_core__NativeArray
*)var45
)->values
[4]=var51
;
8422 var54
= nitc___nitc__SeparateRuntimeFunction___c_ret(var_r
);
8424 ((struct instance_core__NativeArray
*)var45
)->values
[0]=var54
;
8425 ((struct instance_core__NativeArray
*)var45
)->values
[2]=var_n2
;
8427 var55
= nitc___nitc__SeparateRuntimeFunction___c_sig(var_r
);
8429 ((struct instance_core__NativeArray
*)var45
)->values
[3]=var55
;
8431 var56
= ((val
*(*)(val
* self
))(var45
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var45
); /* native_to_s on <var45:NativeArray[String]>*/
8435 nitc___nitc__AbstractCompiler___provide_declaration(self
, var_n2
, var56
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
8441 /* method separate_compiler#SeparateCompiler#is_monomorphic for (self: SeparateCompiler, MMethod): nullable MMethodDef */
8442 val
* nitc___nitc__SeparateCompiler___is_monomorphic(val
* self
, val
* p0
) {
8443 val
* var
/* : nullable MMethodDef */;
8444 val
* var_m
/* var m: MMethod */;
8445 val
* var1
/* : nullable RapidTypeAnalysis */;
8446 val
* var3
/* : nullable RapidTypeAnalysis */;
8447 val
* var_rta
/* var rta: nullable RapidTypeAnalysis */;
8448 short int var4
/* : Bool */;
8449 short int var5
/* : Bool */;
8450 val
* var_other
/* var other: nullable Object */;
8451 short int var7
/* : Bool */;
8452 short int var9
/* : Bool */;
8453 val
* var10
/* : Array[MPropDef] */;
8454 val
* var12
/* : Array[MPropDef] */;
8455 long var13
/* : Int */;
8456 long var15
/* : Int */;
8457 short int var16
/* : Bool */;
8458 short int var18
/* : Bool */;
8459 val
* var19
/* : Array[MPropDef] */;
8460 val
* var21
/* : Array[MPropDef] */;
8461 val
* var22
/* : nullable Object */;
8462 val
* var_res
/* var res: nullable MMethodDef */;
8463 val
* var23
/* : Array[MPropDef] */;
8464 val
* var25
/* : Array[MPropDef] */;
8465 val
* var_
/* var : Array[MMethodDef] */;
8466 val
* var26
/* : IndexedIterator[nullable Object] */;
8467 val
* var_27
/* var : IndexedIterator[MMethodDef] */;
8468 short int var28
/* : Bool */;
8469 val
* var29
/* : nullable Object */;
8470 val
* var_md
/* var md: MMethodDef */;
8471 val
* var30
/* : HashSet[MMethodDef] */;
8472 val
* var32
/* : HashSet[MMethodDef] */;
8473 short int var33
/* : Bool */;
8474 short int var34
/* : Bool */;
8475 short int var35
/* : Bool */;
8476 val
* var_other37
/* var other: nullable Object */;
8477 short int var38
/* : Bool */;
8478 short int var39
/* : Bool */;
8481 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
8482 var3
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
8488 if (var_rta
== NULL
) {
8489 var4
= 1; /* is null */
8491 var4
= 0; /* arg is null but recv is not */
8494 { /* Inline kernel#Object#== (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
8495 var_other
= ((val
*)NULL
);
8497 { /* Inline kernel#Object#is_same_instance (var_rta,var_other) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
8498 var9
= var_rta
== var_other
;
8512 { /* Inline model#MProperty#mpropdefs (var_m) on <var_m:MMethod> */
8513 var12
= var_m
->attrs
[COLOR_nitc__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_m:MMethod> */
8514 if (unlikely(var12
== NULL
)) {
8515 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
8516 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1981);
8520 RET_LABEL11
:(void)0;
8524 { /* Inline array#AbstractArrayRead#length (var10) on <var10:Array[MPropDef](Array[MMethodDef])> */
8525 var15
= var10
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var10:Array[MPropDef](Array[MMethodDef])> */
8527 RET_LABEL14
:(void)0;
8531 { /* Inline kernel#Int#== (var13,1l) on <var13:Int> */
8532 var18
= var13
== 1l;
8535 RET_LABEL17
:(void)0;
8540 { /* Inline model#MProperty#mpropdefs (var_m) on <var_m:MMethod> */
8541 var21
= var_m
->attrs
[COLOR_nitc__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_m:MMethod> */
8542 if (unlikely(var21
== NULL
)) {
8543 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
8544 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1981);
8548 RET_LABEL20
:(void)0;
8552 var22
= core___core__SequenceRead___Collection__first(var19
);
8561 var_res
= ((val
*)NULL
);
8563 { /* Inline model#MProperty#mpropdefs (var_m) on <var_m:MMethod> */
8564 var25
= var_m
->attrs
[COLOR_nitc__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_m:MMethod> */
8565 if (unlikely(var25
== NULL
)) {
8566 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
8567 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1981);
8571 RET_LABEL24
:(void)0;
8576 var26
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
8581 var28
= ((short int(*)(val
* self
))((((long)var_27
&3)?class_info
[((long)var_27
&3)]:var_27
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_27
); /* is_ok on <var_27:IndexedIterator[MMethodDef]>*/
8588 var29
= ((val
*(*)(val
* self
))((((long)var_27
&3)?class_info
[((long)var_27
&3)]:var_27
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_27
); /* item on <var_27:IndexedIterator[MMethodDef]>*/
8592 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
8593 var32
= var_rta
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
8594 if (unlikely(var32
== NULL
)) {
8595 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
8596 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 79);
8600 RET_LABEL31
:(void)0;
8604 var33
= core___core__HashSet___core__abstract_collection__Collection__has(var30
, var_md
);
8607 if (var_res
== NULL
) {
8608 var34
= 0; /* is null */
8610 var34
= 1; /* arg is null and recv is not */
8613 { /* Inline kernel#Object#!= (var_res,((val*)NULL)) on <var_res:nullable MMethodDef> */
8614 var_other37
= ((val
*)NULL
);
8616 var38
= ((short int(*)(val
* self
, val
* p0
))(var_res
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_res
, var_other37
); /* == on <var_res:nullable MMethodDef(MMethodDef)>*/
8621 RET_LABEL36
:(void)0;
8634 ((void(*)(val
* self
))((((long)var_27
&3)?class_info
[((long)var_27
&3)]:var_27
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_27
); /* next on <var_27:IndexedIterator[MMethodDef]>*/
8637 BREAK_label
: (void)0;
8639 ((void(*)(val
* self
))((((long)var_27
&3)?class_info
[((long)var_27
&3)]:var_27
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_27
); /* finish on <var_27:IndexedIterator[MMethodDef]>*/
8647 /* method separate_compiler#SeparateCompiler#compile_type_to_c for (self: SeparateCompiler, MType) */
8648 void nitc___nitc__SeparateCompiler___compile_type_to_c(val
* self
, val
* p0
) {
8649 val
* var_mtype
/* var mtype: MType */;
8650 short int var
/* : Bool */;
8651 short int var1
/* : Bool */;
8652 short int var2
/* : Bool */;
8653 short int var3
/* : Bool */;
8656 short int var_
/* var : Bool */;
8657 val
* var4
/* : nullable RapidTypeAnalysis */;
8658 val
* var6
/* : nullable RapidTypeAnalysis */;
8659 val
* var7
/* : HashSet[MClassType] */;
8660 val
* var9
/* : HashSet[MClassType] */;
8661 short int var10
/* : Bool */;
8662 short int var_is_live
/* var is_live: Bool */;
8663 val
* var11
/* : nullable RapidTypeAnalysis */;
8664 val
* var13
/* : nullable RapidTypeAnalysis */;
8665 val
* var14
/* : HashSet[MType] */;
8666 val
* var16
/* : HashSet[MType] */;
8667 short int var17
/* : Bool */;
8668 short int var_is_cast_live
/* var is_cast_live: Bool */;
8669 val
* var18
/* : String */;
8670 val
* var_c_name
/* var c_name: String */;
8671 val
* var19
/* : SeparateCompilerVisitor */;
8672 val
* var_v
/* var v: SeparateCompilerVisitor */;
8673 val
* var20
/* : NativeArray[String] */;
8674 static val
* varonce
;
8675 static val
* varonce21
;
8676 val
* var22
/* : String */;
8677 char* var23
/* : NativeString */;
8678 val
* var24
/* : String */;
8679 static val
* varonce25
;
8680 val
* var26
/* : String */;
8681 char* var27
/* : NativeString */;
8682 val
* var28
/* : String */;
8683 val
* var29
/* : String */;
8684 val
* var30
/* : String */;
8685 val
* var32
/* : NativeArray[String] */;
8686 static val
* varonce31
;
8687 static val
* varonce33
;
8688 val
* var34
/* : String */;
8689 char* var35
/* : NativeString */;
8690 val
* var36
/* : String */;
8691 val
* var37
/* : String */;
8692 val
* var39
/* : NativeArray[String] */;
8693 static val
* varonce38
;
8694 static val
* varonce40
;
8695 val
* var41
/* : String */;
8696 char* var42
/* : NativeString */;
8697 val
* var43
/* : String */;
8698 static val
* varonce44
;
8699 val
* var45
/* : String */;
8700 char* var46
/* : NativeString */;
8701 val
* var47
/* : String */;
8702 val
* var48
/* : String */;
8703 val
* var50
/* : NativeArray[String] */;
8704 static val
* varonce49
;
8705 static val
* varonce51
;
8706 val
* var52
/* : String */;
8707 char* var53
/* : NativeString */;
8708 val
* var54
/* : String */;
8709 static val
* varonce55
;
8710 val
* var56
/* : String */;
8711 char* var57
/* : NativeString */;
8712 val
* var58
/* : String */;
8713 val
* var59
/* : String */;
8714 val
* var61
/* : NativeArray[String] */;
8715 static val
* varonce60
;
8716 static val
* varonce62
;
8717 val
* var63
/* : String */;
8718 char* var64
/* : NativeString */;
8719 val
* var65
/* : String */;
8720 val
* var66
/* : Map[MType, Int] */;
8721 val
* var68
/* : Map[MType, Int] */;
8722 val
* var69
/* : nullable Object */;
8723 val
* var70
/* : String */;
8724 long var71
/* : Int */;
8725 val
* var72
/* : String */;
8726 static val
* varonce73
;
8727 val
* var74
/* : String */;
8728 char* var75
/* : NativeString */;
8729 val
* var76
/* : String */;
8730 val
* var78
/* : NativeArray[String] */;
8731 static val
* varonce77
;
8732 static val
* varonce79
;
8733 val
* var80
/* : String */;
8734 char* var81
/* : NativeString */;
8735 val
* var82
/* : String */;
8736 static val
* varonce83
;
8737 val
* var84
/* : String */;
8738 char* var85
/* : NativeString */;
8739 val
* var86
/* : String */;
8740 val
* var87
/* : String */;
8741 val
* var88
/* : String */;
8742 val
* var90
/* : NativeArray[String] */;
8743 static val
* varonce89
;
8744 static val
* varonce91
;
8745 val
* var92
/* : String */;
8746 char* var93
/* : NativeString */;
8747 val
* var94
/* : String */;
8748 val
* var95
/* : Map[MType, Int] */;
8749 val
* var97
/* : Map[MType, Int] */;
8750 val
* var98
/* : nullable Object */;
8751 val
* var99
/* : String */;
8752 long var100
/* : Int */;
8753 val
* var101
/* : String */;
8754 static val
* varonce102
;
8755 val
* var103
/* : String */;
8756 char* var104
/* : NativeString */;
8757 val
* var105
/* : String */;
8758 short int var106
/* : Bool */;
8761 static val
* varonce109
;
8762 val
* var110
/* : String */;
8763 char* var111
/* : NativeString */;
8764 val
* var112
/* : String */;
8765 static val
* varonce113
;
8766 val
* var114
/* : String */;
8767 char* var115
/* : NativeString */;
8768 val
* var116
/* : String */;
8769 val
* var117
/* : MType */;
8770 val
* var_mclass_type
/* var mclass_type: MType */;
8771 short int var118
/* : Bool */;
8774 val
* var121
/* : Map[MClassType, Array[nullable MType]] */;
8775 val
* var123
/* : Map[MClassType, Array[nullable MType]] */;
8776 val
* var124
/* : nullable Object */;
8777 short int var125
/* : Bool */;
8778 static val
* varonce126
;
8779 val
* var127
/* : String */;
8780 char* var128
/* : NativeString */;
8781 val
* var129
/* : String */;
8782 val
* var131
/* : NativeArray[String] */;
8783 static val
* varonce130
;
8784 static val
* varonce132
;
8785 val
* var133
/* : String */;
8786 char* var134
/* : NativeString */;
8787 val
* var135
/* : String */;
8788 val
* var136
/* : String */;
8789 val
* var138
/* : NativeArray[String] */;
8790 static val
* varonce137
;
8791 static val
* varonce139
;
8792 val
* var140
/* : String */;
8793 char* var141
/* : NativeString */;
8794 val
* var142
/* : String */;
8795 static val
* varonce143
;
8796 val
* var144
/* : String */;
8797 char* var145
/* : NativeString */;
8798 val
* var146
/* : String */;
8799 val
* var147
/* : String */;
8800 static val
* varonce148
;
8801 val
* var149
/* : String */;
8802 char* var150
/* : NativeString */;
8803 val
* var151
/* : String */;
8804 val
* var153
/* : NativeArray[String] */;
8805 static val
* varonce152
;
8806 static val
* varonce154
;
8807 val
* var155
/* : String */;
8808 char* var156
/* : NativeString */;
8809 val
* var157
/* : String */;
8810 val
* var158
/* : Map[MType, Array[nullable MType]] */;
8811 val
* var160
/* : Map[MType, Array[nullable MType]] */;
8812 val
* var161
/* : nullable Object */;
8813 long var162
/* : Int */;
8814 long var164
/* : Int */;
8815 val
* var165
/* : String */;
8816 val
* var166
/* : String */;
8817 static val
* varonce167
;
8818 val
* var168
/* : String */;
8819 char* var169
/* : NativeString */;
8820 val
* var170
/* : String */;
8821 val
* var171
/* : Map[MType, Array[nullable MType]] */;
8822 val
* var173
/* : Map[MType, Array[nullable MType]] */;
8823 val
* var174
/* : nullable Object */;
8824 val
* var_175
/* var : Array[nullable MType] */;
8825 val
* var176
/* : IndexedIterator[nullable Object] */;
8826 val
* var_177
/* var : IndexedIterator[nullable MType] */;
8827 short int var178
/* : Bool */;
8828 val
* var179
/* : nullable Object */;
8829 val
* var_stype
/* var stype: nullable MType */;
8830 short int var180
/* : Bool */;
8831 short int var181
/* : Bool */;
8832 val
* var_other
/* var other: nullable Object */;
8833 short int var183
/* : Bool */;
8834 short int var185
/* : Bool */;
8835 static val
* varonce186
;
8836 val
* var187
/* : String */;
8837 char* var188
/* : NativeString */;
8838 val
* var189
/* : String */;
8839 val
* var191
/* : NativeArray[String] */;
8840 static val
* varonce190
;
8841 static val
* varonce192
;
8842 val
* var193
/* : String */;
8843 char* var194
/* : NativeString */;
8844 val
* var195
/* : String */;
8845 static val
* varonce196
;
8846 val
* var197
/* : String */;
8847 char* var198
/* : NativeString */;
8848 val
* var199
/* : String */;
8849 val
* var200
/* : Map[MType, Int] */;
8850 val
* var202
/* : Map[MType, Int] */;
8851 val
* var203
/* : nullable Object */;
8852 val
* var204
/* : String */;
8853 long var205
/* : Int */;
8854 val
* var206
/* : String */;
8855 val
* var207
/* : String */;
8856 static val
* varonce208
;
8857 val
* var209
/* : String */;
8858 char* var210
/* : NativeString */;
8859 val
* var211
/* : String */;
8860 static val
* varonce212
;
8861 val
* var213
/* : String */;
8862 char* var214
/* : NativeString */;
8863 val
* var215
/* : String */;
8864 static val
* varonce216
;
8865 val
* var217
/* : String */;
8866 char* var218
/* : NativeString */;
8867 val
* var219
/* : String */;
8870 var
= ((short int(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nitc__model__MType__need_anchor
]))(var_mtype
); /* need_anchor on <var_mtype:MType>*/
8873 if (unlikely(!var1
)) {
8874 PRINT_ERROR("Runtime error: %s", "Assert failed");
8875 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 708);
8878 /* <var_mtype:MType> isa MClassType */
8879 cltype
= type_nitc__MClassType
.color
;
8880 idtype
= type_nitc__MClassType
.id
;
8881 if(cltype
>= var_mtype
->type
->table_size
) {
8884 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
8889 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
8890 var6
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
8896 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8897 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 709);
8900 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var4) on <var4:nullable RapidTypeAnalysis> */
8901 if (unlikely(var4
== NULL
)) {
8902 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8903 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 60);
8906 var9
= var4
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <var4:nullable RapidTypeAnalysis> */
8907 if (unlikely(var9
== NULL
)) {
8908 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
8909 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 60);
8917 var10
= core___core__HashSet___core__abstract_collection__Collection__has(var7
, var_mtype
);
8925 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
8926 var13
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
8928 RET_LABEL12
:(void)0;
8931 if (var11
== NULL
) {
8932 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8933 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 710);
8936 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (var11) on <var11:nullable RapidTypeAnalysis> */
8937 if (unlikely(var11
== NULL
)) {
8938 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8939 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 72);
8942 var16
= var11
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <var11:nullable RapidTypeAnalysis> */
8943 if (unlikely(var16
== NULL
)) {
8944 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
8945 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 72);
8949 RET_LABEL15
:(void)0;
8953 var17
= core___core__HashSet___core__abstract_collection__Collection__has(var14
, var_mtype
);
8955 var_is_cast_live
= var17
;
8957 var18
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nitc__model_base__MEntity__c_name
]))(var_mtype
); /* c_name on <var_mtype:MType>*/
8960 var19
= NEW_nitc__SeparateCompilerVisitor(&type_nitc__SeparateCompilerVisitor
);
8962 ((void(*)(val
* self
, val
* p0
))(var19
->class->vft
[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compiler_61d
]))(var19
, self
); /* compiler= on <var19:SeparateCompilerVisitor>*/
8965 ((void(*)(val
* self
))(var19
->class->vft
[COLOR_core__kernel__Object__init
]))(var19
); /* init on <var19:SeparateCompilerVisitor>*/
8968 if (unlikely(varonce
==NULL
)) {
8969 var20
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
8970 if (likely(varonce21
!=NULL
)) {
8973 var23
= "/* runtime type ";
8974 var24
= core__flat___NativeString___to_s_full(var23
, 16l, 16l);
8978 ((struct instance_core__NativeArray
*)var20
)->values
[0]=var22
;
8979 if (likely(varonce25
!=NULL
)) {
8983 var28
= core__flat___NativeString___to_s_full(var27
, 3l, 3l);
8987 ((struct instance_core__NativeArray
*)var20
)->values
[2]=var26
;
8993 var29
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MType>*/
8995 ((struct instance_core__NativeArray
*)var20
)->values
[1]=var29
;
8997 var30
= ((val
*(*)(val
* self
))(var20
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var20
); /* native_to_s on <var20:NativeArray[String]>*/
9001 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var30
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9003 if (unlikely(varonce31
==NULL
)) {
9004 var32
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
9005 if (likely(varonce33
!=NULL
)) {
9009 var36
= core__flat___NativeString___to_s_full(var35
, 5l, 5l);
9013 ((struct instance_core__NativeArray
*)var32
)->values
[0]=var34
;
9018 ((struct instance_core__NativeArray
*)var32
)->values
[1]=var_c_name
;
9020 var37
= ((val
*(*)(val
* self
))(var32
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var32
); /* native_to_s on <var32:NativeArray[String]>*/
9023 if (unlikely(varonce38
==NULL
)) {
9024 var39
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
9025 if (likely(varonce40
!=NULL
)) {
9028 var42
= "extern const struct type type_";
9029 var43
= core__flat___NativeString___to_s_full(var42
, 30l, 30l);
9033 ((struct instance_core__NativeArray
*)var39
)->values
[0]=var41
;
9034 if (likely(varonce44
!=NULL
)) {
9038 var47
= core__flat___NativeString___to_s_full(var46
, 1l, 1l);
9042 ((struct instance_core__NativeArray
*)var39
)->values
[2]=var45
;
9047 ((struct instance_core__NativeArray
*)var39
)->values
[1]=var_c_name
;
9049 var48
= ((val
*(*)(val
* self
))(var39
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var39
); /* native_to_s on <var39:NativeArray[String]>*/
9053 nitc___nitc__AbstractCompiler___provide_declaration(self
, var37
, var48
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
9055 if (unlikely(varonce49
==NULL
)) {
9056 var50
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
9057 if (likely(varonce51
!=NULL
)) {
9060 var53
= "const struct type type_";
9061 var54
= core__flat___NativeString___to_s_full(var53
, 23l, 23l);
9065 ((struct instance_core__NativeArray
*)var50
)->values
[0]=var52
;
9066 if (likely(varonce55
!=NULL
)) {
9070 var58
= core__flat___NativeString___to_s_full(var57
, 4l, 4l);
9074 ((struct instance_core__NativeArray
*)var50
)->values
[2]=var56
;
9079 ((struct instance_core__NativeArray
*)var50
)->values
[1]=var_c_name
;
9081 var59
= ((val
*(*)(val
* self
))(var50
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var50
); /* native_to_s on <var50:NativeArray[String]>*/
9085 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var59
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9087 if (var_is_cast_live
){
9088 if (unlikely(varonce60
==NULL
)) {
9089 var61
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
9090 if (likely(varonce62
!=NULL
)) {
9094 var65
= core__flat___NativeString___to_s_full(var64
, 1l, 1l);
9098 ((struct instance_core__NativeArray
*)var61
)->values
[1]=var63
;
9104 { /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:SeparateCompiler> */
9105 var68
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids
].val
; /* _type_ids on <self:SeparateCompiler> */
9106 if (unlikely(var68
== NULL
)) {
9107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
9108 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 149);
9112 RET_LABEL67
:(void)0;
9116 var69
= ((val
*(*)(val
* self
, val
* p0
))((((long)var66
&3)?class_info
[((long)var66
&3)]:var66
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var66
, var_mtype
); /* [] on <var66:Map[MType, Int]>*/
9118 var71
= (long)(var69
)>>2;
9119 var70
= core__flat___Int___core__abstract_text__Object__to_s(var71
);
9120 ((struct instance_core__NativeArray
*)var61
)->values
[0]=var70
;
9122 var72
= ((val
*(*)(val
* self
))(var61
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var61
); /* native_to_s on <var61:NativeArray[String]>*/
9126 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var72
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9129 if (likely(varonce73
!=NULL
)) {
9132 var75
= "-1, /*CAST DEAD*/";
9133 var76
= core__flat___NativeString___to_s_full(var75
, 17l, 17l);
9138 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var74
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9141 if (unlikely(varonce77
==NULL
)) {
9142 var78
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
9143 if (likely(varonce79
!=NULL
)) {
9147 var82
= core__flat___NativeString___to_s_full(var81
, 1l, 1l);
9151 ((struct instance_core__NativeArray
*)var78
)->values
[0]=var80
;
9152 if (likely(varonce83
!=NULL
)) {
9155 var85
= "\", /* class_name_string */";
9156 var86
= core__flat___NativeString___to_s_full(var85
, 26l, 26l);
9160 ((struct instance_core__NativeArray
*)var78
)->values
[2]=var84
;
9166 var87
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MType>*/
9168 ((struct instance_core__NativeArray
*)var78
)->values
[1]=var87
;
9170 var88
= ((val
*(*)(val
* self
))(var78
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var78
); /* native_to_s on <var78:NativeArray[String]>*/
9174 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var88
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9176 if (var_is_cast_live
){
9177 if (unlikely(varonce89
==NULL
)) {
9178 var90
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
9179 if (likely(varonce91
!=NULL
)) {
9183 var94
= core__flat___NativeString___to_s_full(var93
, 1l, 1l);
9187 ((struct instance_core__NativeArray
*)var90
)->values
[1]=var92
;
9193 { /* Inline separate_compiler#SeparateCompiler#type_colors (self) on <self:SeparateCompiler> */
9194 var97
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_colors
].val
; /* _type_colors on <self:SeparateCompiler> */
9195 if (unlikely(var97
== NULL
)) {
9196 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors");
9197 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 150);
9201 RET_LABEL96
:(void)0;
9205 var98
= ((val
*(*)(val
* self
, val
* p0
))((((long)var95
&3)?class_info
[((long)var95
&3)]:var95
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var95
, var_mtype
); /* [] on <var95:Map[MType, Int]>*/
9207 var100
= (long)(var98
)>>2;
9208 var99
= core__flat___Int___core__abstract_text__Object__to_s(var100
);
9209 ((struct instance_core__NativeArray
*)var90
)->values
[0]=var99
;
9211 var101
= ((val
*(*)(val
* self
))(var90
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var90
); /* native_to_s on <var90:NativeArray[String]>*/
9215 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var101
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9218 if (likely(varonce102
!=NULL
)) {
9219 var103
= varonce102
;
9221 var104
= "-1, /*CAST DEAD*/";
9222 var105
= core__flat___NativeString___to_s_full(var104
, 17l, 17l);
9224 varonce102
= var103
;
9227 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var103
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9230 /* <var_mtype:MType> isa MNullableType */
9231 cltype107
= type_nitc__MNullableType
.color
;
9232 idtype108
= type_nitc__MNullableType
.id
;
9233 if(cltype107
>= var_mtype
->type
->table_size
) {
9236 var106
= var_mtype
->type
->type_table
[cltype107
] == idtype108
;
9239 if (likely(varonce109
!=NULL
)) {
9240 var110
= varonce109
;
9243 var112
= core__flat___NativeString___to_s_full(var111
, 2l, 2l);
9245 varonce109
= var110
;
9248 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var110
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9251 if (likely(varonce113
!=NULL
)) {
9252 var114
= varonce113
;
9255 var116
= core__flat___NativeString___to_s_full(var115
, 2l, 2l);
9257 varonce113
= var114
;
9260 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var114
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9265 var117
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nitc__model__MType__undecorate
]))(var_mtype
); /* undecorate on <var_mtype:MType>*/
9267 var_mclass_type
= var117
;
9268 /* <var_mclass_type:MType> isa MClassType */
9269 cltype119
= type_nitc__MClassType
.color
;
9270 idtype120
= type_nitc__MClassType
.id
;
9271 if(cltype119
>= var_mclass_type
->type
->table_size
) {
9274 var118
= var_mclass_type
->type
->type_table
[cltype119
] == idtype120
;
9276 if (unlikely(!var118
)) {
9277 PRINT_ERROR("Runtime error: %s", "Assert failed");
9278 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 748);
9282 { /* Inline separate_compiler#SeparateCompiler#resolution_tables (self) on <self:SeparateCompiler> */
9283 var123
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___resolution_tables
].val
; /* _resolution_tables on <self:SeparateCompiler> */
9284 if (unlikely(var123
== NULL
)) {
9285 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _resolution_tables");
9286 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 1066);
9290 RET_LABEL122
:(void)0;
9294 var124
= ((val
*(*)(val
* self
, val
* p0
))((((long)var121
&3)?class_info
[((long)var121
&3)]:var121
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var121
, var_mclass_type
); /* [] on <var121:Map[MClassType, Array[nullable MType]]>*/
9297 var125
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var124
);
9300 if (likely(varonce126
!=NULL
)) {
9301 var127
= varonce126
;
9303 var128
= "NULL, /*NO RESOLUTIONS*/";
9304 var129
= core__flat___NativeString___to_s_full(var128
, 24l, 24l);
9306 varonce126
= var127
;
9309 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var127
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9313 nitc___nitc__SeparateCompiler___compile_type_resolution_table(self
, var_mtype
); /* Direct call separate_compiler#SeparateCompiler#compile_type_resolution_table on <self:SeparateCompiler>*/
9315 if (unlikely(varonce130
==NULL
)) {
9316 var131
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
9317 if (likely(varonce132
!=NULL
)) {
9318 var133
= varonce132
;
9320 var134
= "resolution_table_";
9321 var135
= core__flat___NativeString___to_s_full(var134
, 17l, 17l);
9323 varonce132
= var133
;
9325 ((struct instance_core__NativeArray
*)var131
)->values
[0]=var133
;
9327 var131
= varonce130
;
9330 ((struct instance_core__NativeArray
*)var131
)->values
[1]=var_c_name
;
9332 var136
= ((val
*(*)(val
* self
))(var131
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var131
); /* native_to_s on <var131:NativeArray[String]>*/
9334 varonce130
= var131
;
9336 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v
, var136
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
9338 if (unlikely(varonce137
==NULL
)) {
9339 var138
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
9340 if (likely(varonce139
!=NULL
)) {
9341 var140
= varonce139
;
9343 var141
= "&resolution_table_";
9344 var142
= core__flat___NativeString___to_s_full(var141
, 18l, 18l);
9346 varonce139
= var140
;
9348 ((struct instance_core__NativeArray
*)var138
)->values
[0]=var140
;
9349 if (likely(varonce143
!=NULL
)) {
9350 var144
= varonce143
;
9353 var146
= core__flat___NativeString___to_s_full(var145
, 1l, 1l);
9355 varonce143
= var144
;
9357 ((struct instance_core__NativeArray
*)var138
)->values
[2]=var144
;
9359 var138
= varonce137
;
9362 ((struct instance_core__NativeArray
*)var138
)->values
[1]=var_c_name
;
9364 var147
= ((val
*(*)(val
* self
))(var138
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var138
); /* native_to_s on <var138:NativeArray[String]>*/
9366 varonce137
= var138
;
9368 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var147
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9372 if (likely(varonce148
!=NULL
)) {
9373 var149
= varonce148
;
9375 var150
= "NULL, /*DEAD*/";
9376 var151
= core__flat___NativeString___to_s_full(var150
, 14l, 14l);
9378 varonce148
= var149
;
9381 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var149
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9385 if (unlikely(varonce152
==NULL
)) {
9386 var153
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
9387 if (likely(varonce154
!=NULL
)) {
9388 var155
= varonce154
;
9391 var157
= core__flat___NativeString___to_s_full(var156
, 1l, 1l);
9393 varonce154
= var155
;
9395 ((struct instance_core__NativeArray
*)var153
)->values
[1]=var155
;
9397 var153
= varonce152
;
9401 { /* Inline separate_compiler#SeparateCompiler#type_tables (self) on <self:SeparateCompiler> */
9402 var160
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_tables
].val
; /* _type_tables on <self:SeparateCompiler> */
9403 if (unlikely(var160
== NULL
)) {
9404 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
9405 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 1065);
9409 RET_LABEL159
:(void)0;
9413 var161
= ((val
*(*)(val
* self
, val
* p0
))((((long)var158
&3)?class_info
[((long)var158
&3)]:var158
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var158
, var_mtype
); /* [] on <var158:Map[MType, Array[nullable MType]]>*/
9416 { /* Inline array#AbstractArrayRead#length (var161) on <var161:nullable Object(Array[nullable MType])> */
9417 var164
= var161
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var161:nullable Object(Array[nullable MType])> */
9419 RET_LABEL163
:(void)0;
9422 var165
= core__flat___Int___core__abstract_text__Object__to_s(var162
);
9423 ((struct instance_core__NativeArray
*)var153
)->values
[0]=var165
;
9425 var166
= ((val
*(*)(val
* self
))(var153
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var153
); /* native_to_s on <var153:NativeArray[String]>*/
9427 varonce152
= var153
;
9429 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var166
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9431 if (likely(varonce167
!=NULL
)) {
9432 var168
= varonce167
;
9435 var170
= core__flat___NativeString___to_s_full(var169
, 1l, 1l);
9437 varonce167
= var168
;
9440 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var168
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9443 { /* Inline separate_compiler#SeparateCompiler#type_tables (self) on <self:SeparateCompiler> */
9444 var173
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_tables
].val
; /* _type_tables on <self:SeparateCompiler> */
9445 if (unlikely(var173
== NULL
)) {
9446 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
9447 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 1065);
9451 RET_LABEL172
:(void)0;
9455 var174
= ((val
*(*)(val
* self
, val
* p0
))((((long)var171
&3)?class_info
[((long)var171
&3)]:var171
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var171
, var_mtype
); /* [] on <var171:Map[MType, Array[nullable MType]]>*/
9459 var176
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_175
);
9464 var178
= ((short int(*)(val
* self
))((((long)var_177
&3)?class_info
[((long)var_177
&3)]:var_177
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_177
); /* is_ok on <var_177:IndexedIterator[nullable MType]>*/
9471 var179
= ((val
*(*)(val
* self
))((((long)var_177
&3)?class_info
[((long)var_177
&3)]:var_177
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_177
); /* item on <var_177:IndexedIterator[nullable MType]>*/
9474 if (var_stype
== NULL
) {
9475 var180
= 1; /* is null */
9477 var180
= 0; /* arg is null but recv is not */
9480 { /* Inline kernel#Object#== (var_stype,((val*)NULL)) on <var_stype:nullable MType> */
9481 var_other
= ((val
*)NULL
);
9483 { /* Inline kernel#Object#is_same_instance (var_stype,var_other) on <var_stype:nullable MType(MType)> */
9484 var185
= var_stype
== var_other
;
9487 RET_LABEL184
:(void)0;
9492 RET_LABEL182
:(void)0;
9497 if (likely(varonce186
!=NULL
)) {
9498 var187
= varonce186
;
9500 var188
= "-1, /* empty */";
9501 var189
= core__flat___NativeString___to_s_full(var188
, 15l, 15l);
9503 varonce186
= var187
;
9506 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var187
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9509 if (unlikely(varonce190
==NULL
)) {
9510 var191
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
9511 if (likely(varonce192
!=NULL
)) {
9512 var193
= varonce192
;
9515 var195
= core__flat___NativeString___to_s_full(var194
, 5l, 5l);
9517 varonce192
= var193
;
9519 ((struct instance_core__NativeArray
*)var191
)->values
[1]=var193
;
9520 if (likely(varonce196
!=NULL
)) {
9521 var197
= varonce196
;
9524 var199
= core__flat___NativeString___to_s_full(var198
, 3l, 3l);
9526 varonce196
= var197
;
9528 ((struct instance_core__NativeArray
*)var191
)->values
[3]=var197
;
9530 var191
= varonce190
;
9534 { /* Inline separate_compiler#SeparateCompiler#type_ids (self) on <self:SeparateCompiler> */
9535 var202
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids
].val
; /* _type_ids on <self:SeparateCompiler> */
9536 if (unlikely(var202
== NULL
)) {
9537 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
9538 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 149);
9542 RET_LABEL201
:(void)0;
9546 var203
= ((val
*(*)(val
* self
, val
* p0
))((((long)var200
&3)?class_info
[((long)var200
&3)]:var200
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var200
, var_stype
); /* [] on <var200:Map[MType, Int]>*/
9548 var205
= (long)(var203
)>>2;
9549 var204
= core__flat___Int___core__abstract_text__Object__to_s(var205
);
9550 ((struct instance_core__NativeArray
*)var191
)->values
[0]=var204
;
9552 var206
= ((val
*(*)(val
* self
))(var_stype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_stype
); /* to_s on <var_stype:nullable MType(MType)>*/
9554 ((struct instance_core__NativeArray
*)var191
)->values
[2]=var206
;
9556 var207
= ((val
*(*)(val
* self
))(var191
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var191
); /* native_to_s on <var191:NativeArray[String]>*/
9558 varonce190
= var191
;
9560 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var207
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9564 ((void(*)(val
* self
))((((long)var_177
&3)?class_info
[((long)var_177
&3)]:var_177
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_177
); /* next on <var_177:IndexedIterator[nullable MType]>*/
9567 BREAK_label
: (void)0;
9569 ((void(*)(val
* self
))((((long)var_177
&3)?class_info
[((long)var_177
&3)]:var_177
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_177
); /* finish on <var_177:IndexedIterator[nullable MType]>*/
9571 if (likely(varonce208
!=NULL
)) {
9572 var209
= varonce208
;
9575 var211
= core__flat___NativeString___to_s_full(var210
, 2l, 2l);
9577 varonce208
= var209
;
9580 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var209
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9583 if (likely(varonce212
!=NULL
)) {
9584 var213
= varonce212
;
9586 var214
= "-1, {}, /*DEAD TYPE*/";
9587 var215
= core__flat___NativeString___to_s_full(var214
, 21l, 21l);
9589 varonce212
= var213
;
9592 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var213
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
9595 if (likely(varonce216
!=NULL
)) {
9596 var217
= varonce216
;
9599 var219
= core__flat___NativeString___to_s_full(var218
, 2l, 2l);
9601 varonce216
= var217
;
9604 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var217
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/