1 #include "nitc__separate_erasure_compiler.sep.0.h"
2 /* method separate_erasure_compiler#ToolContext#opt_erasure for (self: ToolContext): OptionBool */
3 val
* nitc__separate_erasure_compiler___ToolContext___opt_erasure(val
* self
) {
4 val
* var
/* : OptionBool */;
5 val
* var1
/* : OptionBool */;
6 var1
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__ToolContext___opt_erasure
].val
; /* _opt_erasure on <self:ToolContext> */
7 if (unlikely(var1
== NULL
)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_erasure");
9 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 22);
16 /* method separate_erasure_compiler#ToolContext#opt_rta for (self: ToolContext): OptionBool */
17 val
* nitc__separate_erasure_compiler___ToolContext___opt_rta(val
* self
) {
18 val
* var
/* : OptionBool */;
19 val
* var1
/* : OptionBool */;
20 var1
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__ToolContext___opt_rta
].val
; /* _opt_rta on <self:ToolContext> */
21 if (unlikely(var1
== NULL
)) {
22 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_rta");
23 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 24);
30 /* method separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast for (self: ToolContext): OptionBool */
31 val
* nitc__separate_erasure_compiler___ToolContext___opt_no_check_erasure_cast(val
* self
) {
32 val
* var
/* : OptionBool */;
33 val
* var1
/* : OptionBool */;
34 var1
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__ToolContext___opt_no_check_erasure_cast
].val
; /* _opt_no_check_erasure_cast on <self:ToolContext> */
35 if (unlikely(var1
== NULL
)) {
36 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast");
37 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 26);
44 /* method separate_erasure_compiler#ToolContext#init for (self: ToolContext) */
45 void nitc__separate_erasure_compiler___ToolContext___core__kernel__Object__init(val
* self
) {
46 val
* var
/* : OptionContext */;
47 val
* var2
/* : OptionContext */;
48 val
* var3
/* : OptionBool */;
49 val
* var5
/* : OptionBool */;
50 val
* var6
/* : OptionBool */;
51 val
* var8
/* : OptionBool */;
52 val
* var9
/* : OptionBool */;
53 val
* var11
/* : OptionBool */;
54 val
* var12
/* : Array[Option] */;
55 val
* var13
/* : NativeArray[Option] */;
57 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc__separate_erasure_compiler___ToolContext___core__kernel__Object__init
]))(self
); /* init on <self:ToolContext>*/
60 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
61 var2
= self
->attrs
[COLOR_nitc__toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
62 if (unlikely(var2
== NULL
)) {
63 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
64 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext
, 342);
72 { /* Inline separate_erasure_compiler#ToolContext#opt_erasure (self) on <self:ToolContext> */
73 var5
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__ToolContext___opt_erasure
].val
; /* _opt_erasure on <self:ToolContext> */
74 if (unlikely(var5
== NULL
)) {
75 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_erasure");
76 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 22);
84 { /* Inline separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast (self) on <self:ToolContext> */
85 var8
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__ToolContext___opt_no_check_erasure_cast
].val
; /* _opt_no_check_erasure_cast on <self:ToolContext> */
86 if (unlikely(var8
== NULL
)) {
87 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast");
88 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 26);
96 { /* Inline separate_erasure_compiler#ToolContext#opt_rta (self) on <self:ToolContext> */
97 var11
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__ToolContext___opt_rta
].val
; /* _opt_rta on <self:ToolContext> */
98 if (unlikely(var11
== NULL
)) {
99 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_rta");
100 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 24);
107 var12
= NEW_core__Array(&type_core__Array__opts__Option
);
108 { /* var12 = array_instance Array[Option] */
109 var13
= NEW_core__NativeArray(3l, &type_core__NativeArray__opts__Option
);
110 ((struct instance_core__NativeArray
*)var13
)->values
[0] = (val
*) var3
;
111 ((struct instance_core__NativeArray
*)var13
)->values
[1] = (val
*) var6
;
112 ((struct instance_core__NativeArray
*)var13
)->values
[2] = (val
*) var9
;
114 ((void(*)(val
* self
, val
* p0
, long p1
))(var12
->class->vft
[COLOR_core__array__Array__with_native
]))(var12
, var13
, 3l); /* with_native on <var12:Array[Option]>*/
118 opts___opts__OptionContext___add_option(var
, var12
); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
122 /* method separate_erasure_compiler#ToolContext#process_options for (self: ToolContext, Sequence[String]) */
123 void nitc__separate_erasure_compiler___ToolContext___process_options(val
* self
, val
* p0
) {
124 val
* var_args
/* var args: Sequence[String] */;
125 val
* var
/* : OptionBool */;
126 val
* var2
/* : OptionBool */;
127 val
* var3
/* : nullable Object */;
128 val
* var5
/* : nullable Object */;
129 short int var6
/* : Bool */;
130 val
* var7
/* : OptionBool */;
131 val
* var9
/* : OptionBool */;
132 short int var11
/* : Bool */;
135 const struct type
* type_struct
;
136 const char* var_class_name
;
137 val
* var12
/* : nullable Object */;
138 val
* var13
/* : OptionBool */;
139 val
* var15
/* : OptionBool */;
140 val
* var16
/* : nullable Object */;
141 val
* var18
/* : nullable Object */;
142 short int var19
/* : Bool */;
143 val
* var20
/* : OptionBool */;
144 val
* var22
/* : OptionBool */;
145 short int var24
/* : Bool */;
148 const struct type
* type_struct27
;
149 const char* var_class_name28
;
150 val
* var29
/* : nullable Object */;
153 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__separate_erasure_compiler___ToolContext___process_options
]))(self
, p0
); /* process_options on <self:ToolContext>*/
156 { /* Inline abstract_compiler#ToolContext#opt_no_check_all (self) on <self:ToolContext> */
157 var2
= self
->attrs
[COLOR_nitc__abstract_compiler__ToolContext___opt_no_check_all
].val
; /* _opt_no_check_all on <self:ToolContext> */
158 if (unlikely(var2
== NULL
)) {
159 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_all");
160 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 58);
168 { /* Inline opts#Option#value (var) on <var:OptionBool> */
169 var5
= var
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var:OptionBool> */
174 var6
= (short int)((long)(var3
)>>2);
177 { /* Inline separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast (self) on <self:ToolContext> */
178 var9
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__ToolContext___opt_no_check_erasure_cast
].val
; /* _opt_no_check_erasure_cast on <self:ToolContext> */
179 if (unlikely(var9
== NULL
)) {
180 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast");
181 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 26);
189 { /* Inline opts#Option#value= (var7,1) on <var7:OptionBool> */
190 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
191 /* <1:Bool> isa VALUE */
192 type_struct
= var7
->type
->resolution_table
->types
[COLOR_opts__Option__VALUE
];
193 cltype
= type_struct
->color
;
194 idtype
= type_struct
->id
;
195 if(cltype
>= (&type_core__Bool
)->table_size
) {
198 var11
= (&type_core__Bool
)->type_table
[cltype
] == idtype
;
200 if (unlikely(!var11
)) {
201 var_class_name
= type_core__Bool
.name
;
202 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name
);
203 PRINT_ERROR(" (%s:%d)\n", FILE_opts
, 40);
206 var12
= (val
*)((long)(1)<<2|3);
207 var7
->attrs
[COLOR_opts__Option___value
].val
= var12
; /* _value on <var7:OptionBool> */
214 { /* Inline separate_erasure_compiler#ToolContext#opt_erasure (self) on <self:ToolContext> */
215 var15
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__ToolContext___opt_erasure
].val
; /* _opt_erasure on <self:ToolContext> */
216 if (unlikely(var15
== NULL
)) {
217 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_erasure");
218 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 22);
226 { /* Inline opts#Option#value (var13) on <var13:OptionBool> */
227 var18
= var13
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var13:OptionBool> */
232 var19
= (short int)((long)(var16
)>>2);
235 { /* Inline separate_compiler#ToolContext#opt_no_tag_primitives (self) on <self:ToolContext> */
236 var22
= self
->attrs
[COLOR_nitc__separate_compiler__ToolContext___opt_no_tag_primitives
].val
; /* _opt_no_tag_primitives on <self:ToolContext> */
237 if (unlikely(var22
== NULL
)) {
238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_tag_primitives");
239 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 32);
247 { /* Inline opts#Option#value= (var20,1) on <var20:OptionBool> */
248 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
249 /* <1:Bool> isa VALUE */
250 type_struct27
= var20
->type
->resolution_table
->types
[COLOR_opts__Option__VALUE
];
251 cltype25
= type_struct27
->color
;
252 idtype26
= type_struct27
->id
;
253 if(cltype25
>= (&type_core__Bool
)->table_size
) {
256 var24
= (&type_core__Bool
)->type_table
[cltype25
] == idtype26
;
258 if (unlikely(!var24
)) {
259 var_class_name28
= type_core__Bool
.name
;
260 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name28
);
261 PRINT_ERROR(" (%s:%d)\n", FILE_opts
, 40);
264 var29
= (val
*)((long)(1)<<2|3);
265 var20
->attrs
[COLOR_opts__Option___value
].val
= var29
; /* _value on <var20:OptionBool> */
273 /* method separate_erasure_compiler#ErasureCompilerPhase#process_mainmodule for (self: ErasureCompilerPhase, MModule, SequenceRead[MModule]) */
274 void nitc___nitc__ErasureCompilerPhase___nitc__modelbuilder__Phase__process_mainmodule(val
* self
, val
* p0
, val
* p1
) {
275 val
* var_mainmodule
/* var mainmodule: MModule */;
276 val
* var_given_mmodules
/* var given_mmodules: SequenceRead[MModule] */;
277 val
* var
/* : ToolContext */;
278 val
* var2
/* : ToolContext */;
279 val
* var3
/* : OptionBool */;
280 val
* var5
/* : OptionBool */;
281 val
* var6
/* : nullable Object */;
282 val
* var8
/* : nullable Object */;
283 short int var9
/* : Bool */;
284 short int var10
/* : Bool */;
285 val
* var11
/* : ToolContext */;
286 val
* var13
/* : ToolContext */;
287 val
* var14
/* : ModelBuilder */;
288 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
289 val
* var_analysis
/* var analysis: nullable Object */;
290 val
* var15
/* : ToolContext */;
291 val
* var17
/* : ToolContext */;
292 val
* var18
/* : OptionBool */;
293 val
* var20
/* : OptionBool */;
294 val
* var21
/* : nullable Object */;
295 val
* var23
/* : nullable Object */;
296 short int var24
/* : Bool */;
297 val
* var25
/* : RapidTypeAnalysis */;
299 var_given_mmodules
= p1
;
301 { /* Inline phase#Phase#toolcontext (self) on <self:ErasureCompilerPhase> */
302 var2
= self
->attrs
[COLOR_nitc__phase__Phase___toolcontext
].val
; /* _toolcontext on <self:ErasureCompilerPhase> */
303 if (unlikely(var2
== NULL
)) {
304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
305 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase
, 200);
313 { /* Inline separate_erasure_compiler#ToolContext#opt_erasure (var) on <var:ToolContext> */
314 var5
= var
->attrs
[COLOR_nitc__separate_erasure_compiler__ToolContext___opt_erasure
].val
; /* _opt_erasure on <var:ToolContext> */
315 if (unlikely(var5
== NULL
)) {
316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_erasure");
317 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 22);
325 { /* Inline opts#Option#value (var3) on <var3:OptionBool> */
326 var8
= var3
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var3:OptionBool> */
331 var9
= (short int)((long)(var6
)>>2);
338 { /* Inline phase#Phase#toolcontext (self) on <self:ErasureCompilerPhase> */
339 var13
= self
->attrs
[COLOR_nitc__phase__Phase___toolcontext
].val
; /* _toolcontext on <self:ErasureCompilerPhase> */
340 if (unlikely(var13
== NULL
)) {
341 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
342 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase
, 200);
350 var14
= nitc__modelbuilder_base___ToolContext___modelbuilder(var11
);
352 var_modelbuilder
= var14
;
353 var_analysis
= ((val
*)NULL
);
355 { /* Inline phase#Phase#toolcontext (self) on <self:ErasureCompilerPhase> */
356 var17
= self
->attrs
[COLOR_nitc__phase__Phase___toolcontext
].val
; /* _toolcontext on <self:ErasureCompilerPhase> */
357 if (unlikely(var17
== NULL
)) {
358 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
359 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase
, 200);
367 { /* Inline separate_erasure_compiler#ToolContext#opt_rta (var15) on <var15:ToolContext> */
368 var20
= var15
->attrs
[COLOR_nitc__separate_erasure_compiler__ToolContext___opt_rta
].val
; /* _opt_rta on <var15:ToolContext> */
369 if (unlikely(var20
== NULL
)) {
370 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_rta");
371 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 24);
379 { /* Inline opts#Option#value (var18) on <var18:OptionBool> */
380 var23
= var18
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var18:OptionBool> */
385 var24
= (short int)((long)(var21
)>>2);
388 var25
= nitc__rapid_type_analysis___ModelBuilder___do_rapid_type_analysis(var_modelbuilder
, var_mainmodule
);
390 var_analysis
= var25
;
394 nitc__separate_erasure_compiler___ModelBuilder___run_separate_erasure_compiler(var_modelbuilder
, var_mainmodule
, var_analysis
); /* Direct call separate_erasure_compiler#ModelBuilder#run_separate_erasure_compiler on <var_modelbuilder:ModelBuilder>*/
398 /* method separate_erasure_compiler#ModelBuilder#run_separate_erasure_compiler for (self: ModelBuilder, MModule, nullable RapidTypeAnalysis) */
399 void nitc__separate_erasure_compiler___ModelBuilder___run_separate_erasure_compiler(val
* self
, val
* p0
, val
* p1
) {
400 val
* var_mainmodule
/* var mainmodule: MModule */;
401 val
* var_runtime_type_analysis
/* var runtime_type_analysis: nullable RapidTypeAnalysis */;
402 val
* var
/* : Sys */;
403 long var1
/* : Int */;
404 long var3
/* : Int */;
405 long var_time0
/* var time0: Int */;
406 val
* var4
/* : ToolContext */;
407 val
* var6
/* : ToolContext */;
409 val
* var7
/* : String */;
410 char* var8
/* : NativeString */;
411 val
* var9
/* : String */;
412 val
* var10
/* : SeparateErasureCompiler */;
413 val
* var_compiler
/* var compiler: SeparateErasureCompiler */;
414 val
* var11
/* : Sys */;
415 long var12
/* : Int */;
416 long var14
/* : Int */;
417 long var_time1
/* var time1: Int */;
418 val
* var15
/* : ToolContext */;
419 val
* var17
/* : ToolContext */;
420 val
* var19
/* : NativeArray[String] */;
421 static val
* varonce18
;
422 static val
* varonce20
;
423 val
* var21
/* : String */;
424 char* var22
/* : NativeString */;
425 val
* var23
/* : String */;
426 static val
* varonce24
;
427 val
* var25
/* : String */;
428 char* var26
/* : NativeString */;
429 val
* var27
/* : String */;
430 long var28
/* : Int */;
431 short int var30
/* : Bool */;
434 const char* var_class_name
;
435 long var31
/* : Int */;
436 val
* var32
/* : String */;
437 val
* var33
/* : String */;
439 var_runtime_type_analysis
= p1
;
442 { /* Inline time#Sys#get_time (var) on <var:Sys> */
443 struct nitni_instance
* var_for_c_0
;
444 var_for_c_0
= nit_alloc(sizeof(struct nitni_instance
));
445 var_for_c_0
->value
= var
;
446 var3
= time___Sys_get_time___impl(var_for_c_0
);
454 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
455 var6
= self
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
456 if (unlikely(var6
== NULL
)) {
457 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
458 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
465 if (likely(varonce
!=NULL
)) {
468 var8
= "*** GENERATING C ***";
469 var9
= core__flat___NativeString___to_s_full(var8
, 20l, 20l);
474 nitc___nitc__ToolContext___info(var4
, var7
, 1l); /* Direct call toolcontext#ToolContext#info on <var4:ToolContext>*/
476 var10
= NEW_nitc__SeparateErasureCompiler(&type_nitc__SeparateErasureCompiler
);
478 ((void(*)(val
* self
, val
* p0
))(var10
->class->vft
[COLOR_nitc__abstract_compiler__AbstractCompiler__mainmodule_61d
]))(var10
, var_mainmodule
); /* mainmodule= on <var10:SeparateErasureCompiler>*/
481 ((void(*)(val
* self
, val
* p0
))(var10
->class->vft
[COLOR_nitc__abstract_compiler__AbstractCompiler__modelbuilder_61d
]))(var10
, self
); /* modelbuilder= on <var10:SeparateErasureCompiler>*/
484 ((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:SeparateErasureCompiler>*/
487 ((void(*)(val
* self
))(var10
->class->vft
[COLOR_core__kernel__Object__init
]))(var10
); /* init on <var10:SeparateErasureCompiler>*/
489 var_compiler
= var10
;
491 nitc___nitc__SeparateCompiler___nitc__abstract_compiler__AbstractCompiler__do_compilation(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#do_compilation on <var_compiler:SeparateErasureCompiler>*/
494 nitc___nitc__SeparateCompiler___nitc__abstract_compiler__AbstractCompiler__display_stats(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#display_stats on <var_compiler:SeparateErasureCompiler>*/
498 { /* Inline time#Sys#get_time (var11) on <var11:Sys> */
499 struct nitni_instance
* var_for_c_0
;
500 var_for_c_0
= nit_alloc(sizeof(struct nitni_instance
));
501 var_for_c_0
->value
= var11
;
502 var14
= time___Sys_get_time___impl(var_for_c_0
);
510 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
511 var17
= self
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
512 if (unlikely(var17
== NULL
)) {
513 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
514 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
521 if (unlikely(varonce18
==NULL
)) {
522 var19
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
523 if (likely(varonce20
!=NULL
)) {
526 var22
= "*** END GENERATING C: ";
527 var23
= core__flat___NativeString___to_s_full(var22
, 22l, 22l);
531 ((struct instance_core__NativeArray
*)var19
)->values
[0]=var21
;
532 if (likely(varonce24
!=NULL
)) {
536 var27
= core__flat___NativeString___to_s_full(var26
, 4l, 4l);
540 ((struct instance_core__NativeArray
*)var19
)->values
[2]=var25
;
546 { /* Inline kernel#Int#- (var_time1,var_time0) on <var_time1:Int> */
547 /* Covariant cast for argument 0 (i) <var_time0:Int> isa OTHER */
548 /* <var_time0:Int> isa OTHER */
549 var30
= 1; /* easy <var_time0:Int> isa OTHER*/
550 if (unlikely(!var30
)) {
551 var_class_name
= type_core__Int
.name
;
552 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
553 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 734);
556 var31
= var_time1
- var_time0
;
562 var32
= core__flat___Int___core__abstract_text__Object__to_s(var28
);
563 ((struct instance_core__NativeArray
*)var19
)->values
[1]=var32
;
565 var33
= ((val
*(*)(val
* self
))(var19
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var19
); /* native_to_s on <var19:NativeArray[String]>*/
569 nitc___nitc__ToolContext___info(var15
, var33
, 2l); /* Direct call toolcontext#ToolContext#info on <var15:ToolContext>*/
572 nitc__abstract_compiler___ModelBuilder___write_and_make(self
, var_compiler
); /* Direct call abstract_compiler#ModelBuilder#write_and_make on <self:ModelBuilder>*/
576 /* method separate_erasure_compiler#SeparateErasureCompiler#class_ids for (self: SeparateErasureCompiler): Map[MClass, Int] */
577 val
* nitc___nitc__SeparateErasureCompiler___class_ids(val
* self
) {
578 val
* var
/* : Map[MClass, Int] */;
579 val
* var1
/* : Map[MClass, Int] */;
580 var1
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
; /* _class_ids on <self:SeparateErasureCompiler> */
581 if (unlikely(var1
== NULL
)) {
582 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids");
583 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 84);
590 /* method separate_erasure_compiler#SeparateErasureCompiler#class_ids= for (self: SeparateErasureCompiler, Map[MClass, Int]) */
591 void nitc___nitc__SeparateErasureCompiler___class_ids_61d(val
* self
, val
* p0
) {
592 self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
= p0
; /* _class_ids on <self:SeparateErasureCompiler> */
595 /* method separate_erasure_compiler#SeparateErasureCompiler#class_colors for (self: SeparateErasureCompiler): Map[MClass, Int] */
596 val
* nitc___nitc__SeparateErasureCompiler___class_colors(val
* self
) {
597 val
* var
/* : Map[MClass, Int] */;
598 val
* var1
/* : Map[MClass, Int] */;
599 var1
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
; /* _class_colors on <self:SeparateErasureCompiler> */
600 if (unlikely(var1
== NULL
)) {
601 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors");
602 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 85);
609 /* method separate_erasure_compiler#SeparateErasureCompiler#class_colors= for (self: SeparateErasureCompiler, Map[MClass, Int]) */
610 void nitc___nitc__SeparateErasureCompiler___class_colors_61d(val
* self
, val
* p0
) {
611 self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
= p0
; /* _class_colors on <self:SeparateErasureCompiler> */
614 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_colors for (self: SeparateErasureCompiler): Map[MVirtualTypeProp, Int] */
615 val
* nitc___nitc__SeparateErasureCompiler___vt_colors(val
* self
) {
616 val
* var
/* : Map[MVirtualTypeProp, Int] */;
617 val
* var1
/* : Map[MVirtualTypeProp, Int] */;
618 var1
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:SeparateErasureCompiler> */
619 if (unlikely(var1
== NULL
)) {
620 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
621 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 86);
628 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_colors= for (self: SeparateErasureCompiler, Map[MVirtualTypeProp, Int]) */
629 void nitc___nitc__SeparateErasureCompiler___vt_colors_61d(val
* self
, val
* p0
) {
630 self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
= p0
; /* _vt_colors on <self:SeparateErasureCompiler> */
633 /* method separate_erasure_compiler#SeparateErasureCompiler#init for (self: SeparateErasureCompiler) */
634 void nitc___nitc__SeparateErasureCompiler___core__kernel__Object__init(val
* self
) {
635 val
* var
/* : MModule */;
636 val
* var2
/* : MModule */;
637 val
* var3
/* : POSet[MClass] */;
638 val
* var_poset
/* var poset: POSet[MClass] */;
639 val
* var4
/* : HashSet[MClass] */;
640 val
* var_mclasses
/* var mclasses: HashSet[MClass] */;
641 val
* var5
/* : POSetColorer[MClass] */;
642 val
* var_colorer
/* var colorer: POSetColorer[MClass] */;
643 val
* var7
/* : Map[Object, Int] */;
644 val
* var9
/* : Map[Object, Int] */;
645 val
* var11
/* : Map[MClass, Array[nullable MClass]] */;
646 val
* var13
/* : HashMap[MClass, Set[MVirtualTypeProp]] */;
647 val
* var_vts
/* var vts: HashMap[MClass, Set[MVirtualTypeProp]] */;
648 val
* var_
/* var : HashSet[MClass] */;
649 val
* var14
/* : Iterator[nullable Object] */;
650 val
* var_15
/* var : Iterator[MClass] */;
651 short int var16
/* : Bool */;
652 val
* var17
/* : nullable Object */;
653 val
* var_mclass
/* var mclass: MClass */;
654 val
* var18
/* : HashSet[MVirtualTypeProp] */;
655 val
* var19
/* : MModule */;
656 val
* var21
/* : MModule */;
657 val
* var22
/* : Set[MProperty] */;
658 val
* var_23
/* var : Set[MProperty] */;
659 val
* var24
/* : Iterator[nullable Object] */;
660 val
* var_25
/* var : Iterator[MProperty] */;
661 short int var26
/* : Bool */;
662 val
* var28
/* : nullable Object */;
663 val
* var_mprop
/* var mprop: MProperty */;
664 short int var29
/* : Bool */;
667 val
* var30
/* : nullable Object */;
668 val
* var31
/* : POSetBucketsColorer[MClass, MVirtualTypeProp] */;
669 val
* var32
/* : Map[Object, Set[Object]] */;
670 val
* var_vt_colorer
/* var vt_colorer: POSetBucketsColorer[MClass, MVirtualTypeProp] */;
671 val
* var33
/* : Map[Object, Int] */;
672 val
* var35
/* : Map[MClass, Array[nullable MPropDef]] */;
674 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc___nitc__SeparateErasureCompiler___core__kernel__Object__init
]))(self
); /* init on <self:SeparateErasureCompiler>*/
677 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
678 var2
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
679 if (unlikely(var2
== NULL
)) {
680 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
681 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
689 var3
= nitc__model___MModule___flatten_mclass_hierarchy(var
);
692 var4
= NEW_core__HashSet(&type_core__HashSet__nitc__MClass
);
694 core___core__HashSet___from(var4
, var_poset
); /* Direct call hash_collection#HashSet#from on <var4:HashSet[MClass]>*/
697 var5
= NEW_nitc__POSetColorer(&type_nitc__POSetColorer__nitc__MClass
);
699 { /* Inline kernel#Object#init (var5) on <var5:POSetColorer[MClass]> */
705 nitc___nitc__POSetColorer___colorize(var_colorer
, var_poset
); /* Direct call coloring#POSetColorer#colorize on <var_colorer:POSetColorer[MClass]>*/
708 var7
= nitc___nitc__POSetColorer___ids(var_colorer
);
711 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids= (self,var7) on <self:SeparateErasureCompiler> */
712 self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
= var7
; /* _class_ids on <self:SeparateErasureCompiler> */
717 var9
= nitc___nitc__POSetColorer___colors(var_colorer
);
720 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_colors= (self,var9) on <self:SeparateErasureCompiler> */
721 self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
= var9
; /* _class_colors on <self:SeparateErasureCompiler> */
726 var11
= nitc___nitc__SeparateErasureCompiler___build_class_typing_tables(self
, var_mclasses
);
729 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables= (self,var11) on <self:SeparateErasureCompiler> */
730 self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
= var11
; /* _class_tables on <self:SeparateErasureCompiler> */
734 var13
= NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Set__nitc__MVirtualTypeProp
);
736 core___core__HashMap___core__kernel__Object__init(var13
); /* Direct call hash_collection#HashMap#init on <var13:HashMap[MClass, Set[MVirtualTypeProp]]>*/
741 var14
= core___core__HashSet___core__abstract_collection__Collection__iterator(var_
);
746 var16
= ((short int(*)(val
* self
))((((long)var_15
&3)?class_info
[((long)var_15
&3)]:var_15
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_15
); /* is_ok on <var_15:Iterator[MClass]>*/
753 var17
= ((val
*(*)(val
* self
))((((long)var_15
&3)?class_info
[((long)var_15
&3)]:var_15
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_15
); /* item on <var_15:Iterator[MClass]>*/
756 var18
= NEW_core__HashSet(&type_core__HashSet__nitc__MVirtualTypeProp
);
758 core___core__HashSet___core__kernel__Object__init(var18
); /* Direct call hash_collection#HashSet#init on <var18:HashSet[MVirtualTypeProp]>*/
761 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_vts
, var_mclass
, var18
); /* Direct call hash_collection#HashMap#[]= on <var_vts:HashMap[MClass, Set[MVirtualTypeProp]]>*/
764 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
765 var21
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
766 if (unlikely(var21
== NULL
)) {
767 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
768 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
776 var22
= nitc__abstract_compiler___MModule___properties(var19
, var_mclass
);
780 var24
= ((val
*(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_23
); /* iterator on <var_23:Set[MProperty]>*/
785 var26
= ((short int(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_25
); /* is_ok on <var_25:Iterator[MProperty]>*/
792 var28
= ((val
*(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_25
); /* item on <var_25:Iterator[MProperty]>*/
795 /* <var_mprop:MProperty> isa MVirtualTypeProp */
796 cltype
= type_nitc__MVirtualTypeProp
.color
;
797 idtype
= type_nitc__MVirtualTypeProp
.id
;
798 if(cltype
>= var_mprop
->type
->table_size
) {
801 var29
= var_mprop
->type
->type_table
[cltype
] == idtype
;
805 var30
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var_vts
, var_mclass
);
808 ((void(*)(val
* self
, val
* p0
))((((long)var30
&3)?class_info
[((long)var30
&3)]:var30
->class)->vft
[COLOR_core__abstract_collection__SimpleCollection__add
]))(var30
, var_mprop
); /* add on <var30:nullable Object(Set[MVirtualTypeProp])>*/
813 ((void(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_25
); /* next on <var_25:Iterator[MProperty]>*/
816 BREAK_label27
: (void)0;
818 ((void(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_25
); /* finish on <var_25:Iterator[MProperty]>*/
821 ((void(*)(val
* self
))((((long)var_15
&3)?class_info
[((long)var_15
&3)]:var_15
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_15
); /* next on <var_15:Iterator[MClass]>*/
824 BREAK_label
: (void)0;
826 ((void(*)(val
* self
))((((long)var_15
&3)?class_info
[((long)var_15
&3)]:var_15
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_15
); /* finish on <var_15:Iterator[MClass]>*/
828 var31
= NEW_nitc__POSetBucketsColorer(&type_nitc__POSetBucketsColorer__nitc__MClass__nitc__MVirtualTypeProp
);
830 var32
= nitc___nitc__POSetColorer___conflicts(var_colorer
);
833 ((void(*)(val
* self
, val
* p0
))(var31
->class->vft
[COLOR_nitc__coloring__POSetBucketsColorer__poset_61d
]))(var31
, var_poset
); /* poset= on <var31:POSetBucketsColorer[MClass, MVirtualTypeProp]>*/
836 ((void(*)(val
* self
, val
* p0
))(var31
->class->vft
[COLOR_nitc__coloring__POSetBucketsColorer__conflicts_61d
]))(var31
, var32
); /* conflicts= on <var31:POSetBucketsColorer[MClass, MVirtualTypeProp]>*/
839 ((void(*)(val
* self
))(var31
->class->vft
[COLOR_core__kernel__Object__init
]))(var31
); /* init on <var31:POSetBucketsColorer[MClass, MVirtualTypeProp]>*/
841 var_vt_colorer
= var31
;
843 var33
= nitc___nitc__POSetBucketsColorer___colorize(var_vt_colorer
, var_vts
);
846 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors= (self,var33) on <self:SeparateErasureCompiler> */
847 self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
= var33
; /* _vt_colors on <self:SeparateErasureCompiler> */
852 var35
= nitc___nitc__SeparateErasureCompiler___build_vt_tables(self
, var_mclasses
);
855 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables= (self,var35) on <self:SeparateErasureCompiler> */
856 self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
= var35
; /* _vt_tables on <self:SeparateErasureCompiler> */
862 /* method separate_erasure_compiler#SeparateErasureCompiler#build_vt_tables for (self: SeparateErasureCompiler, Set[MClass]): Map[MClass, Array[nullable MPropDef]] */
863 val
* nitc___nitc__SeparateErasureCompiler___build_vt_tables(val
* self
, val
* p0
) {
864 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
865 val
* var_mclasses
/* var mclasses: Set[MClass] */;
866 val
* var1
/* : HashMap[MClass, Array[nullable MPropDef]] */;
867 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MPropDef]] */;
868 val
* var_
/* var : Set[MClass] */;
869 val
* var2
/* : Iterator[nullable Object] */;
870 val
* var_3
/* var : Iterator[MClass] */;
871 short int var4
/* : Bool */;
872 val
* var5
/* : nullable Object */;
873 val
* var_mclass
/* var mclass: MClass */;
874 val
* var6
/* : Array[nullable MPropDef] */;
875 val
* var_table
/* var table: Array[nullable MPropDef] */;
876 val
* var7
/* : Array[MClass] */;
877 val
* var_parents
/* var parents: Array[MClass] */;
878 val
* var8
/* : MModule */;
879 val
* var10
/* : MModule */;
880 val
* var11
/* : POSet[MClass] */;
881 short int var12
/* : Bool */;
882 val
* var13
/* : MModule */;
883 val
* var15
/* : MModule */;
884 val
* var16
/* : POSetElement[MClass] */;
885 val
* var17
/* : Collection[nullable Object] */;
886 val
* var18
/* : Array[nullable Object] */;
887 val
* var19
/* : MModule */;
888 val
* var21
/* : MModule */;
889 val
* var_22
/* var : Array[MClass] */;
890 val
* var23
/* : IndexedIterator[nullable Object] */;
891 val
* var_24
/* var : IndexedIterator[MClass] */;
892 short int var25
/* : Bool */;
893 val
* var27
/* : nullable Object */;
894 val
* var_parent
/* var parent: MClass */;
895 short int var28
/* : Bool */;
896 val
* var_other
/* var other: nullable Object */;
897 short int var30
/* : Bool */;
898 short int var32
/* : Bool */;
899 val
* var34
/* : MModule */;
900 val
* var36
/* : MModule */;
901 val
* var37
/* : Set[MProperty] */;
902 val
* var_38
/* var : Set[MProperty] */;
903 val
* var39
/* : Iterator[nullable Object] */;
904 val
* var_40
/* var : Iterator[MProperty] */;
905 short int var41
/* : Bool */;
906 val
* var43
/* : nullable Object */;
907 val
* var_mproperty
/* var mproperty: MProperty */;
908 short int var44
/* : Bool */;
911 short int var45
/* : Bool */;
912 val
* var47
/* : Map[MVirtualTypeProp, Int] */;
913 val
* var49
/* : Map[MVirtualTypeProp, Int] */;
914 val
* var50
/* : nullable Object */;
915 long var51
/* : Int */;
916 long var_color
/* var color: Int */;
917 long var52
/* : Int */;
918 long var54
/* : Int */;
919 short int var55
/* : Bool */;
920 short int var57
/* : Bool */;
923 const char* var_class_name
;
924 short int var60
/* : Bool */;
925 long var61
/* : Int */;
926 long var63
/* : Int */;
927 long var_i
/* var i: Int */;
928 long var_64
/* var : Int */;
929 short int var65
/* : Bool */;
930 short int var67
/* : Bool */;
933 const char* var_class_name70
;
934 short int var71
/* : Bool */;
935 long var73
/* : Int */;
936 val
* var74
/* : Array[MPropDef] */;
937 val
* var76
/* : Array[MPropDef] */;
938 val
* var_77
/* var : Array[MVirtualTypeDef] */;
939 val
* var78
/* : IndexedIterator[nullable Object] */;
940 val
* var_79
/* var : IndexedIterator[MVirtualTypeDef] */;
941 short int var80
/* : Bool */;
942 val
* var82
/* : nullable Object */;
943 val
* var_mpropdef
/* var mpropdef: MVirtualTypeDef */;
944 val
* var83
/* : MClassDef */;
945 val
* var85
/* : MClassDef */;
946 val
* var86
/* : MClass */;
947 val
* var88
/* : MClass */;
948 short int var89
/* : Bool */;
949 short int var91
/* : Bool */;
950 short int var93
/* : Bool */;
951 val
* var94
/* : MModule */;
952 val
* var96
/* : MModule */;
953 val
* var97
/* : Set[MProperty] */;
954 val
* var_98
/* var : Set[MProperty] */;
955 val
* var99
/* : Iterator[nullable Object] */;
956 val
* var_100
/* var : Iterator[MProperty] */;
957 short int var101
/* : Bool */;
958 val
* var103
/* : nullable Object */;
959 val
* var_mproperty104
/* var mproperty: MProperty */;
960 short int var105
/* : Bool */;
963 short int var108
/* : Bool */;
964 val
* var110
/* : Map[MVirtualTypeProp, Int] */;
965 val
* var112
/* : Map[MVirtualTypeProp, Int] */;
966 val
* var113
/* : nullable Object */;
967 long var114
/* : Int */;
968 long var_color115
/* var color: Int */;
969 long var116
/* : Int */;
970 long var118
/* : Int */;
971 short int var119
/* : Bool */;
972 short int var121
/* : Bool */;
975 const char* var_class_name124
;
976 short int var125
/* : Bool */;
977 long var126
/* : Int */;
978 long var128
/* : Int */;
979 long var_i129
/* var i: Int */;
980 long var_130
/* var : Int */;
981 short int var131
/* : Bool */;
982 short int var133
/* : Bool */;
985 const char* var_class_name136
;
986 short int var137
/* : Bool */;
987 long var139
/* : Int */;
988 val
* var140
/* : Array[MPropDef] */;
989 val
* var142
/* : Array[MPropDef] */;
990 val
* var_143
/* var : Array[MVirtualTypeDef] */;
991 val
* var144
/* : IndexedIterator[nullable Object] */;
992 val
* var_145
/* var : IndexedIterator[MVirtualTypeDef] */;
993 short int var146
/* : Bool */;
994 val
* var148
/* : nullable Object */;
995 val
* var_mpropdef149
/* var mpropdef: MVirtualTypeDef */;
996 val
* var150
/* : MClassDef */;
997 val
* var152
/* : MClassDef */;
998 val
* var153
/* : MClass */;
999 val
* var155
/* : MClass */;
1000 short int var156
/* : Bool */;
1001 short int var158
/* : Bool */;
1002 short int var160
/* : Bool */;
1004 var1
= NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Array__nullable__nitc__MPropDef
);
1006 core___core__HashMap___core__kernel__Object__init(var1
); /* Direct call hash_collection#HashMap#init on <var1:HashMap[MClass, Array[nullable MPropDef]]>*/
1009 var_
= var_mclasses
;
1011 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[MClass]>*/
1016 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[MClass]>*/
1023 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[MClass]>*/
1026 var6
= NEW_core__Array(&type_core__Array__nullable__nitc__MPropDef
);
1028 core___core__Array___core__kernel__Object__init(var6
); /* Direct call array#Array#init on <var6:Array[nullable MPropDef]>*/
1031 var7
= NEW_core__Array(&type_core__Array__nitc__MClass
);
1033 core___core__Array___core__kernel__Object__init(var7
); /* Direct call array#Array#init on <var7:Array[MClass]>*/
1037 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1038 var10
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1039 if (unlikely(var10
== NULL
)) {
1040 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1041 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
1049 var11
= nitc__model___MModule___flatten_mclass_hierarchy(var8
);
1052 var12
= poset___poset__POSet___core__abstract_collection__Collection__has(var11
, var_mclass
);
1056 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1057 var15
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1058 if (unlikely(var15
== NULL
)) {
1059 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1060 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
1064 RET_LABEL14
:(void)0;
1068 var16
= nitc___nitc__MClass___in_hierarchy(var_mclass
, var13
);
1071 var17
= poset___poset__POSetElement___greaters(var16
);
1074 var18
= ((val
*(*)(val
* self
))((((long)var17
&3)?class_info
[((long)var17
&3)]:var17
->class)->vft
[COLOR_core__array__Collection__to_a
]))(var17
); /* to_a on <var17:Collection[nullable Object](Collection[MClass])>*/
1076 var_parents
= var18
;
1078 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1079 var21
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1080 if (unlikely(var21
== NULL
)) {
1081 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1082 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
1086 RET_LABEL20
:(void)0;
1090 nitc__model___MModule___linearize_mclasses(var19
, var_parents
); /* Direct call model#MModule#linearize_mclasses on <var19:MModule>*/
1094 var_22
= var_parents
;
1096 var23
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_22
);
1101 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:IndexedIterator[MClass]>*/
1108 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:IndexedIterator[MClass]>*/
1112 { /* Inline kernel#Object#== (var_parent,var_mclass) on <var_parent:MClass> */
1113 var_other
= var_mclass
;
1115 { /* Inline kernel#Object#is_same_instance (var_parent,var_other) on <var_parent:MClass> */
1116 var32
= var_parent
== var_other
;
1119 RET_LABEL31
:(void)0;
1124 RET_LABEL29
:(void)0;
1132 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1133 var36
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1134 if (unlikely(var36
== NULL
)) {
1135 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1136 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
1140 RET_LABEL35
:(void)0;
1144 var37
= nitc__abstract_compiler___MModule___properties(var34
, var_parent
);
1148 var39
= ((val
*(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_38
); /* iterator on <var_38:Set[MProperty]>*/
1153 var41
= ((short int(*)(val
* self
))((((long)var_40
&3)?class_info
[((long)var_40
&3)]:var_40
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_40
); /* is_ok on <var_40:Iterator[MProperty]>*/
1160 var43
= ((val
*(*)(val
* self
))((((long)var_40
&3)?class_info
[((long)var_40
&3)]:var_40
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_40
); /* item on <var_40:Iterator[MProperty]>*/
1162 var_mproperty
= var43
;
1163 /* <var_mproperty:MProperty> isa MVirtualTypeProp */
1164 cltype
= type_nitc__MVirtualTypeProp
.color
;
1165 idtype
= type_nitc__MVirtualTypeProp
.id
;
1166 if(cltype
>= var_mproperty
->type
->table_size
) {
1169 var44
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
1177 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors (self) on <self:SeparateErasureCompiler> */
1178 var49
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:SeparateErasureCompiler> */
1179 if (unlikely(var49
== NULL
)) {
1180 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
1181 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 86);
1185 RET_LABEL48
:(void)0;
1189 var50
= ((val
*(*)(val
* self
, val
* p0
))((((long)var47
&3)?class_info
[((long)var47
&3)]:var47
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var47
, var_mproperty
); /* [] on <var47:Map[MVirtualTypeProp, Int]>*/
1191 var51
= (long)(var50
)>>2;
1194 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1195 var54
= var_table
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1197 RET_LABEL53
:(void)0;
1201 { /* Inline kernel#Int#<= (var52,var_color) on <var52:Int> */
1202 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
1203 /* <var_color:Int> isa OTHER */
1204 var57
= 1; /* easy <var_color:Int> isa OTHER*/
1205 if (unlikely(!var57
)) {
1206 var_class_name
= type_core__Int
.name
;
1207 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1208 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
1211 var60
= var52
<= var_color
;
1214 RET_LABEL56
:(void)0;
1219 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1220 var63
= var_table
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1222 RET_LABEL62
:(void)0;
1229 { /* Inline kernel#Int#< (var_i,var_64) on <var_i:Int> */
1230 /* Covariant cast for argument 0 (i) <var_64:Int> isa OTHER */
1231 /* <var_64:Int> isa OTHER */
1232 var67
= 1; /* easy <var_64:Int> isa OTHER*/
1233 if (unlikely(!var67
)) {
1234 var_class_name70
= type_core__Int
.name
;
1235 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name70
);
1236 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
1239 var71
= var_i
< var_64
;
1242 RET_LABEL66
:(void)0;
1250 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 MPropDef]>*/
1253 var73
= core___core__Int___Discrete__successor(var_i
, 1l);
1257 BREAK_label72
: (void)0;
1261 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MProperty(MVirtualTypeProp)> */
1262 var76
= var_mproperty
->attrs
[COLOR_nitc__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MProperty(MVirtualTypeProp)> */
1263 if (unlikely(var76
== NULL
)) {
1264 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
1265 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1981);
1269 RET_LABEL75
:(void)0;
1274 var78
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_77
);
1279 var80
= ((short int(*)(val
* self
))((((long)var_79
&3)?class_info
[((long)var_79
&3)]:var_79
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_79
); /* is_ok on <var_79:IndexedIterator[MVirtualTypeDef]>*/
1286 var82
= ((val
*(*)(val
* self
))((((long)var_79
&3)?class_info
[((long)var_79
&3)]:var_79
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_79
); /* item on <var_79:IndexedIterator[MVirtualTypeDef]>*/
1288 var_mpropdef
= var82
;
1290 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MVirtualTypeDef> */
1291 var85
= var_mpropdef
->attrs
[COLOR_nitc__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:MVirtualTypeDef> */
1292 if (unlikely(var85
== NULL
)) {
1293 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1294 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 2227);
1298 RET_LABEL84
:(void)0;
1302 { /* Inline model#MClassDef#mclass (var83) on <var83:MClassDef> */
1303 var88
= var83
->attrs
[COLOR_nitc__model__MClassDef___mclass
].val
; /* _mclass on <var83:MClassDef> */
1304 if (unlikely(var88
== NULL
)) {
1305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1306 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 576);
1310 RET_LABEL87
:(void)0;
1314 { /* Inline kernel#Object#== (var86,var_parent) on <var86:MClass> */
1315 var_other
= var_parent
;
1317 { /* Inline kernel#Object#is_same_instance (var86,var_other) on <var86:MClass> */
1318 var93
= var86
== var_other
;
1321 RET_LABEL92
:(void)0;
1326 RET_LABEL90
:(void)0;
1331 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table
, var_color
, var_mpropdef
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
1336 ((void(*)(val
* self
))((((long)var_79
&3)?class_info
[((long)var_79
&3)]:var_79
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_79
); /* next on <var_79:IndexedIterator[MVirtualTypeDef]>*/
1339 BREAK_label81
: (void)0;
1341 ((void(*)(val
* self
))((((long)var_79
&3)?class_info
[((long)var_79
&3)]:var_79
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_79
); /* finish on <var_79:IndexedIterator[MVirtualTypeDef]>*/
1343 BREAK_label46
: (void)0;
1345 ((void(*)(val
* self
))((((long)var_40
&3)?class_info
[((long)var_40
&3)]:var_40
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_40
); /* next on <var_40:Iterator[MProperty]>*/
1348 BREAK_label42
: (void)0;
1350 ((void(*)(val
* self
))((((long)var_40
&3)?class_info
[((long)var_40
&3)]:var_40
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_40
); /* finish on <var_40:Iterator[MProperty]>*/
1352 BREAK_label33
: (void)0;
1354 ((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:IndexedIterator[MClass]>*/
1357 BREAK_label26
: (void)0;
1359 ((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:IndexedIterator[MClass]>*/
1362 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1363 var96
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1364 if (unlikely(var96
== NULL
)) {
1365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1366 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
1370 RET_LABEL95
:(void)0;
1374 var97
= nitc__abstract_compiler___MModule___properties(var94
, var_mclass
);
1378 var99
= ((val
*(*)(val
* self
))((((long)var_98
&3)?class_info
[((long)var_98
&3)]:var_98
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_98
); /* iterator on <var_98:Set[MProperty]>*/
1383 var101
= ((short int(*)(val
* self
))((((long)var_100
&3)?class_info
[((long)var_100
&3)]:var_100
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_100
); /* is_ok on <var_100:Iterator[MProperty]>*/
1387 goto BREAK_label102
;
1390 var103
= ((val
*(*)(val
* self
))((((long)var_100
&3)?class_info
[((long)var_100
&3)]:var_100
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_100
); /* item on <var_100:Iterator[MProperty]>*/
1392 var_mproperty104
= var103
;
1393 /* <var_mproperty104:MProperty> isa MVirtualTypeProp */
1394 cltype106
= type_nitc__MVirtualTypeProp
.color
;
1395 idtype107
= type_nitc__MVirtualTypeProp
.id
;
1396 if(cltype106
>= var_mproperty104
->type
->table_size
) {
1399 var105
= var_mproperty104
->type
->type_table
[cltype106
] == idtype107
;
1403 goto BREAK_label109
;
1407 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors (self) on <self:SeparateErasureCompiler> */
1408 var112
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:SeparateErasureCompiler> */
1409 if (unlikely(var112
== NULL
)) {
1410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
1411 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 86);
1415 RET_LABEL111
:(void)0;
1419 var113
= ((val
*(*)(val
* self
, val
* p0
))((((long)var110
&3)?class_info
[((long)var110
&3)]:var110
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var110
, var_mproperty104
); /* [] on <var110:Map[MVirtualTypeProp, Int]>*/
1421 var114
= (long)(var113
)>>2;
1422 var_color115
= var114
;
1424 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1425 var118
= var_table
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1427 RET_LABEL117
:(void)0;
1431 { /* Inline kernel#Int#<= (var116,var_color115) on <var116:Int> */
1432 /* Covariant cast for argument 0 (i) <var_color115:Int> isa OTHER */
1433 /* <var_color115:Int> isa OTHER */
1434 var121
= 1; /* easy <var_color115:Int> isa OTHER*/
1435 if (unlikely(!var121
)) {
1436 var_class_name124
= type_core__Int
.name
;
1437 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name124
);
1438 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
1441 var125
= var116
<= var_color115
;
1444 RET_LABEL120
:(void)0;
1449 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1450 var128
= var_table
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1452 RET_LABEL127
:(void)0;
1456 var_130
= var_color115
;
1459 { /* Inline kernel#Int#< (var_i129,var_130) on <var_i129:Int> */
1460 /* Covariant cast for argument 0 (i) <var_130:Int> isa OTHER */
1461 /* <var_130:Int> isa OTHER */
1462 var133
= 1; /* easy <var_130:Int> isa OTHER*/
1463 if (unlikely(!var133
)) {
1464 var_class_name136
= type_core__Int
.name
;
1465 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name136
);
1466 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
1469 var137
= var_i129
< var_130
;
1472 RET_LABEL132
:(void)0;
1477 goto BREAK_label138
;
1480 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table
, var_i129
, ((val
*)NULL
)); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
1483 var139
= core___core__Int___Discrete__successor(var_i129
, 1l);
1487 BREAK_label138
: (void)0;
1491 { /* Inline model#MProperty#mpropdefs (var_mproperty104) on <var_mproperty104:MProperty(MVirtualTypeProp)> */
1492 var142
= var_mproperty104
->attrs
[COLOR_nitc__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty104:MProperty(MVirtualTypeProp)> */
1493 if (unlikely(var142
== NULL
)) {
1494 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
1495 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1981);
1499 RET_LABEL141
:(void)0;
1504 var144
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_143
);
1509 var146
= ((short int(*)(val
* self
))((((long)var_145
&3)?class_info
[((long)var_145
&3)]:var_145
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_145
); /* is_ok on <var_145:IndexedIterator[MVirtualTypeDef]>*/
1513 goto BREAK_label147
;
1516 var148
= ((val
*(*)(val
* self
))((((long)var_145
&3)?class_info
[((long)var_145
&3)]:var_145
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_145
); /* item on <var_145:IndexedIterator[MVirtualTypeDef]>*/
1518 var_mpropdef149
= var148
;
1520 { /* Inline model#MPropDef#mclassdef (var_mpropdef149) on <var_mpropdef149:MVirtualTypeDef> */
1521 var152
= var_mpropdef149
->attrs
[COLOR_nitc__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef149:MVirtualTypeDef> */
1522 if (unlikely(var152
== NULL
)) {
1523 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1524 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 2227);
1528 RET_LABEL151
:(void)0;
1532 { /* Inline model#MClassDef#mclass (var150) on <var150:MClassDef> */
1533 var155
= var150
->attrs
[COLOR_nitc__model__MClassDef___mclass
].val
; /* _mclass on <var150:MClassDef> */
1534 if (unlikely(var155
== NULL
)) {
1535 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1536 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 576);
1540 RET_LABEL154
:(void)0;
1544 { /* Inline kernel#Object#== (var153,var_mclass) on <var153:MClass> */
1545 var_other
= var_mclass
;
1547 { /* Inline kernel#Object#is_same_instance (var153,var_other) on <var153:MClass> */
1548 var160
= var153
== var_other
;
1551 RET_LABEL159
:(void)0;
1556 RET_LABEL157
:(void)0;
1561 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table
, var_color115
, var_mpropdef149
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
1566 ((void(*)(val
* self
))((((long)var_145
&3)?class_info
[((long)var_145
&3)]:var_145
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_145
); /* next on <var_145:IndexedIterator[MVirtualTypeDef]>*/
1569 BREAK_label147
: (void)0;
1571 ((void(*)(val
* self
))((((long)var_145
&3)?class_info
[((long)var_145
&3)]:var_145
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_145
); /* finish on <var_145:IndexedIterator[MVirtualTypeDef]>*/
1573 BREAK_label109
: (void)0;
1575 ((void(*)(val
* self
))((((long)var_100
&3)?class_info
[((long)var_100
&3)]:var_100
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_100
); /* next on <var_100:Iterator[MProperty]>*/
1578 BREAK_label102
: (void)0;
1580 ((void(*)(val
* self
))((((long)var_100
&3)?class_info
[((long)var_100
&3)]:var_100
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_100
); /* finish on <var_100:Iterator[MProperty]>*/
1583 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_tables
, var_mclass
, var_table
); /* Direct call hash_collection#HashMap#[]= on <var_tables:HashMap[MClass, Array[nullable MPropDef]]>*/
1586 ((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[MClass]>*/
1589 BREAK_label
: (void)0;
1591 ((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[MClass]>*/
1598 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_typing_tables for (self: SeparateErasureCompiler, Set[MClass]): Map[MClass, Array[nullable MClass]] */
1599 val
* nitc___nitc__SeparateErasureCompiler___build_class_typing_tables(val
* self
, val
* p0
) {
1600 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
1601 val
* var_mclasses
/* var mclasses: Set[MClass] */;
1602 val
* var1
/* : HashMap[MClass, Array[nullable MClass]] */;
1603 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MClass]] */;
1604 val
* var_
/* var : Set[MClass] */;
1605 val
* var2
/* : Iterator[nullable Object] */;
1606 val
* var_3
/* var : Iterator[MClass] */;
1607 short int var4
/* : Bool */;
1608 val
* var5
/* : nullable Object */;
1609 val
* var_mclass
/* var mclass: MClass */;
1610 val
* var6
/* : Array[nullable MClass] */;
1611 val
* var_table
/* var table: Array[nullable MClass] */;
1612 val
* var7
/* : Array[MClass] */;
1613 val
* var_supers
/* var supers: Array[MClass] */;
1614 val
* var8
/* : MModule */;
1615 val
* var10
/* : MModule */;
1616 val
* var11
/* : POSet[MClass] */;
1617 short int var12
/* : Bool */;
1618 val
* var13
/* : MModule */;
1619 val
* var15
/* : MModule */;
1620 val
* var16
/* : POSetElement[MClass] */;
1621 val
* var17
/* : Collection[nullable Object] */;
1622 val
* var18
/* : Array[nullable Object] */;
1623 val
* var_19
/* var : Array[MClass] */;
1624 val
* var20
/* : IndexedIterator[nullable Object] */;
1625 val
* var_21
/* var : IndexedIterator[MClass] */;
1626 short int var22
/* : Bool */;
1627 val
* var24
/* : nullable Object */;
1628 val
* var_sup
/* var sup: MClass */;
1629 val
* var25
/* : Map[MClass, Int] */;
1630 val
* var27
/* : Map[MClass, Int] */;
1631 val
* var28
/* : nullable Object */;
1632 long var29
/* : Int */;
1633 long var_color
/* var color: Int */;
1634 long var30
/* : Int */;
1635 long var32
/* : Int */;
1636 short int var33
/* : Bool */;
1637 short int var35
/* : Bool */;
1640 const char* var_class_name
;
1641 short int var36
/* : Bool */;
1642 long var37
/* : Int */;
1643 long var39
/* : Int */;
1644 long var_i
/* var i: Int */;
1645 long var_40
/* var : Int */;
1646 short int var41
/* : Bool */;
1647 short int var43
/* : Bool */;
1650 const char* var_class_name46
;
1651 short int var47
/* : Bool */;
1652 long var49
/* : Int */;
1654 var1
= NEW_core__HashMap(&type_core__HashMap__nitc__MClass__core__Array__nullable__nitc__MClass
);
1656 core___core__HashMap___core__kernel__Object__init(var1
); /* Direct call hash_collection#HashMap#init on <var1:HashMap[MClass, Array[nullable MClass]]>*/
1659 var_
= var_mclasses
;
1661 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[MClass]>*/
1666 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[MClass]>*/
1673 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[MClass]>*/
1676 var6
= NEW_core__Array(&type_core__Array__nullable__nitc__MClass
);
1678 core___core__Array___core__kernel__Object__init(var6
); /* Direct call array#Array#init on <var6:Array[nullable MClass]>*/
1681 var7
= NEW_core__Array(&type_core__Array__nitc__MClass
);
1683 core___core__Array___core__kernel__Object__init(var7
); /* Direct call array#Array#init on <var7:Array[MClass]>*/
1687 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1688 var10
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1689 if (unlikely(var10
== NULL
)) {
1690 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1691 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
1699 var11
= nitc__model___MModule___flatten_mclass_hierarchy(var8
);
1702 var12
= poset___poset__POSet___core__abstract_collection__Collection__has(var11
, var_mclass
);
1706 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1707 var15
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1708 if (unlikely(var15
== NULL
)) {
1709 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1710 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
1714 RET_LABEL14
:(void)0;
1718 var16
= nitc___nitc__MClass___in_hierarchy(var_mclass
, var13
);
1721 var17
= poset___poset__POSetElement___greaters(var16
);
1724 var18
= ((val
*(*)(val
* self
))((((long)var17
&3)?class_info
[((long)var17
&3)]:var17
->class)->vft
[COLOR_core__array__Collection__to_a
]))(var17
); /* to_a on <var17:Collection[nullable Object](Collection[MClass])>*/
1729 var_19
= var_supers
;
1731 var20
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_19
);
1736 var22
= ((short int(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_21
); /* is_ok on <var_21:IndexedIterator[MClass]>*/
1743 var24
= ((val
*(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_21
); /* item on <var_21:IndexedIterator[MClass]>*/
1747 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_colors (self) on <self:SeparateErasureCompiler> */
1748 var27
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
; /* _class_colors on <self:SeparateErasureCompiler> */
1749 if (unlikely(var27
== NULL
)) {
1750 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors");
1751 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 85);
1755 RET_LABEL26
:(void)0;
1759 var28
= ((val
*(*)(val
* self
, val
* p0
))((((long)var25
&3)?class_info
[((long)var25
&3)]:var25
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var25
, var_sup
); /* [] on <var25:Map[MClass, Int]>*/
1761 var29
= (long)(var28
)>>2;
1764 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MClass]> */
1765 var32
= var_table
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MClass]> */
1767 RET_LABEL31
:(void)0;
1771 { /* Inline kernel#Int#<= (var30,var_color) on <var30:Int> */
1772 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
1773 /* <var_color:Int> isa OTHER */
1774 var35
= 1; /* easy <var_color:Int> isa OTHER*/
1775 if (unlikely(!var35
)) {
1776 var_class_name
= type_core__Int
.name
;
1777 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1778 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
1781 var36
= var30
<= var_color
;
1784 RET_LABEL34
:(void)0;
1789 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MClass]> */
1790 var39
= var_table
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MClass]> */
1792 RET_LABEL38
:(void)0;
1799 { /* Inline kernel#Int#< (var_i,var_40) on <var_i:Int> */
1800 /* Covariant cast for argument 0 (i) <var_40:Int> isa OTHER */
1801 /* <var_40:Int> isa OTHER */
1802 var43
= 1; /* easy <var_40:Int> isa OTHER*/
1803 if (unlikely(!var43
)) {
1804 var_class_name46
= type_core__Int
.name
;
1805 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46
);
1806 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
1809 var47
= var_i
< var_40
;
1812 RET_LABEL42
:(void)0;
1820 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 MClass]>*/
1823 var49
= core___core__Int___Discrete__successor(var_i
, 1l);
1827 BREAK_label48
: (void)0;
1831 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 MClass]>*/
1834 ((void(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_21
); /* next on <var_21:IndexedIterator[MClass]>*/
1837 BREAK_label23
: (void)0;
1839 ((void(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_21
); /* finish on <var_21:IndexedIterator[MClass]>*/
1842 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_tables
, var_mclass
, var_table
); /* Direct call hash_collection#HashMap#[]= on <var_tables:HashMap[MClass, Array[nullable MClass]]>*/
1845 ((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[MClass]>*/
1848 BREAK_label
: (void)0;
1850 ((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[MClass]>*/
1857 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_header_structs for (self: SeparateErasureCompiler) */
1858 void nitc___nitc__SeparateErasureCompiler___nitc__abstract_compiler__AbstractCompiler__compile_header_structs(val
* self
) {
1859 val
* var
/* : CodeWriter */;
1860 val
* var2
/* : CodeWriter */;
1861 static val
* varonce
;
1862 val
* var3
/* : String */;
1863 char* var4
/* : NativeString */;
1864 val
* var5
/* : String */;
1865 val
* var6
/* : CodeWriter */;
1866 val
* var8
/* : CodeWriter */;
1867 static val
* varonce9
;
1868 val
* var10
/* : String */;
1869 char* var11
/* : NativeString */;
1870 val
* var12
/* : String */;
1871 val
* var13
/* : CodeWriter */;
1872 val
* var15
/* : CodeWriter */;
1873 static val
* varonce16
;
1874 val
* var17
/* : String */;
1875 char* var18
/* : NativeString */;
1876 val
* var19
/* : String */;
1877 val
* var20
/* : CodeWriter */;
1878 val
* var22
/* : CodeWriter */;
1879 static val
* varonce23
;
1880 val
* var24
/* : String */;
1881 char* var25
/* : NativeString */;
1882 val
* var26
/* : String */;
1883 val
* var27
/* : CodeWriter */;
1884 val
* var29
/* : CodeWriter */;
1885 static val
* varonce30
;
1886 val
* var31
/* : String */;
1887 char* var32
/* : NativeString */;
1888 val
* var33
/* : String */;
1889 val
* var34
/* : CodeWriter */;
1890 val
* var36
/* : CodeWriter */;
1891 static val
* varonce37
;
1892 val
* var38
/* : String */;
1893 char* var39
/* : NativeString */;
1894 val
* var40
/* : String */;
1896 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1897 var2
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1898 if (unlikely(var2
== NULL
)) {
1899 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1900 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
1907 if (likely(varonce
!=NULL
)) {
1910 var4
= "typedef void(*nitmethod_t)(void); /* general C type representing a Nit method. */";
1911 var5
= core__flat___NativeString___to_s_full(var4
, 81l, 81l);
1916 nitc___nitc__CodeWriter___add_decl(var
, var3
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var:CodeWriter>*/
1919 nitc___nitc__SeparateCompiler___compile_header_attribute_structs(self
); /* Direct call separate_compiler#SeparateCompiler#compile_header_attribute_structs on <self:SeparateErasureCompiler>*/
1922 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1923 var8
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1924 if (unlikely(var8
== NULL
)) {
1925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1926 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
1933 if (likely(varonce9
!=NULL
)) {
1936 var11
= "struct class { int id; const char *name; int box_kind; int color; const struct vts_table *vts_table; const struct type_table *type_table; nitmethod_t vft[]; }; /* general C type representing a Nit class. */";
1937 var12
= core__flat___NativeString___to_s_full(var11
, 206l, 206l);
1942 nitc___nitc__CodeWriter___add_decl(var6
, var10
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var6:CodeWriter>*/
1945 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1946 var15
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1947 if (unlikely(var15
== NULL
)) {
1948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1949 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
1953 RET_LABEL14
:(void)0;
1956 if (likely(varonce16
!=NULL
)) {
1959 var18
= "struct type_table { int size; int table[]; }; /* colorized type table. */";
1960 var19
= core__flat___NativeString___to_s_full(var18
, 73l, 73l);
1965 nitc___nitc__CodeWriter___add_decl(var13
, var17
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var13:CodeWriter>*/
1968 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1969 var22
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1970 if (unlikely(var22
== NULL
)) {
1971 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1972 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
1976 RET_LABEL21
:(void)0;
1979 if (likely(varonce23
!=NULL
)) {
1982 var25
= "struct vts_entry { short int is_nullable; const struct class *class; }; /* link (nullable or not) between the vts and is bound. */";
1983 var26
= core__flat___NativeString___to_s_full(var25
, 130l, 130l);
1988 nitc___nitc__CodeWriter___add_decl(var20
, var24
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var20:CodeWriter>*/
1991 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1992 var29
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1993 if (unlikely(var29
== NULL
)) {
1994 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1995 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
1999 RET_LABEL28
:(void)0;
2002 if (likely(varonce30
!=NULL
)) {
2005 var32
= "struct vts_table { int dummy; const struct vts_entry vts[]; }; /* vts list of a C type representation. */";
2006 var33
= core__flat___NativeString___to_s_full(var32
, 105l, 105l);
2011 nitc___nitc__CodeWriter___add_decl(var27
, var31
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var27:CodeWriter>*/
2014 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
2015 var36
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
2016 if (unlikely(var36
== NULL
)) {
2017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2018 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
2022 RET_LABEL35
:(void)0;
2025 if (likely(varonce37
!=NULL
)) {
2028 var39
= "typedef struct instance { const struct class *class; nitattribute_t attrs[1]; } val; /* general C type representing a Nit instance. */";
2029 var40
= core__flat___NativeString___to_s_full(var39
, 134l, 134l);
2034 nitc___nitc__CodeWriter___add_decl(var34
, var38
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var34:CodeWriter>*/
2038 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_class_to_c for (self: SeparateErasureCompiler, MClass) */
2039 void nitc___nitc__SeparateErasureCompiler___nitc__separate_compiler__SeparateCompiler__compile_class_to_c(val
* self
, val
* p0
) {
2040 val
* var_mclass
/* var mclass: MClass */;
2041 val
* var
/* : MClassDef */;
2042 val
* var2
/* : MClassDef */;
2043 val
* var3
/* : MClassType */;
2044 val
* var5
/* : MClassType */;
2045 val
* var_mtype
/* var mtype: MClassType */;
2046 val
* var6
/* : String */;
2047 val
* var_c_name
/* var c_name: String */;
2048 val
* var7
/* : Map[MClass, Array[nullable MClass]] */;
2049 val
* var9
/* : Map[MClass, Array[nullable MClass]] */;
2050 val
* var10
/* : nullable Object */;
2051 val
* var_class_table
/* var class_table: Array[nullable MClass] */;
2052 val
* var11
/* : SeparateCompilerVisitor */;
2053 val
* var_v
/* var v: SeparateCompilerVisitor */;
2054 val
* var12
/* : nullable RapidTypeAnalysis */;
2055 val
* var14
/* : nullable RapidTypeAnalysis */;
2056 val
* var_rta
/* var rta: nullable RapidTypeAnalysis */;
2057 short int var_is_dead
/* var is_dead: Bool */;
2058 short int var15
/* : Bool */;
2059 short int var16
/* : Bool */;
2060 short int var17
/* : Bool */;
2061 short int var18
/* : Bool */;
2062 short int var19
/* : Bool */;
2063 short int var_
/* var : Bool */;
2064 short int var20
/* : Bool */;
2065 short int var21
/* : Bool */;
2066 val
* var_other
/* var other: nullable Object */;
2067 short int var23
/* : Bool */;
2068 short int var24
/* : Bool */;
2069 short int var_25
/* var : Bool */;
2070 val
* var26
/* : HashSet[MClass] */;
2071 val
* var28
/* : HashSet[MClass] */;
2072 short int var29
/* : Bool */;
2073 short int var30
/* : Bool */;
2074 short int var_31
/* var : Bool */;
2075 short int var32
/* : Bool */;
2076 short int var33
/* : Bool */;
2077 short int var_34
/* var : Bool */;
2078 val
* var35
/* : String */;
2079 val
* var37
/* : String */;
2080 static val
* varonce
;
2081 val
* var38
/* : String */;
2082 char* var39
/* : NativeString */;
2083 val
* var40
/* : String */;
2084 short int var41
/* : Bool */;
2085 short int var43
/* : Bool */;
2086 short int var44
/* : Bool */;
2087 val
* var46
/* : NativeArray[String] */;
2088 static val
* varonce45
;
2089 static val
* varonce47
;
2090 val
* var48
/* : String */;
2091 char* var49
/* : NativeString */;
2092 val
* var50
/* : String */;
2093 static val
* varonce51
;
2094 val
* var52
/* : String */;
2095 char* var53
/* : NativeString */;
2096 val
* var54
/* : String */;
2097 val
* var55
/* : String */;
2098 val
* var57
/* : NativeArray[String] */;
2099 static val
* varonce56
;
2100 static val
* varonce58
;
2101 val
* var59
/* : String */;
2102 char* var60
/* : NativeString */;
2103 val
* var61
/* : String */;
2104 val
* var62
/* : String */;
2105 val
* var64
/* : NativeArray[String] */;
2106 static val
* varonce63
;
2107 static val
* varonce65
;
2108 val
* var66
/* : String */;
2109 char* var67
/* : NativeString */;
2110 val
* var68
/* : String */;
2111 static val
* varonce69
;
2112 val
* var70
/* : String */;
2113 char* var71
/* : NativeString */;
2114 val
* var72
/* : String */;
2115 val
* var73
/* : String */;
2116 val
* var75
/* : NativeArray[String] */;
2117 static val
* varonce74
;
2118 static val
* varonce76
;
2119 val
* var77
/* : String */;
2120 char* var78
/* : NativeString */;
2121 val
* var79
/* : String */;
2122 static val
* varonce80
;
2123 val
* var81
/* : String */;
2124 char* var82
/* : NativeString */;
2125 val
* var83
/* : String */;
2126 val
* var84
/* : String */;
2127 val
* var86
/* : NativeArray[String] */;
2128 static val
* varonce85
;
2129 static val
* varonce87
;
2130 val
* var88
/* : String */;
2131 char* var89
/* : NativeString */;
2132 val
* var90
/* : String */;
2133 static val
* varonce91
;
2134 val
* var92
/* : String */;
2135 char* var93
/* : NativeString */;
2136 val
* var94
/* : String */;
2137 val
* var95
/* : String */;
2138 val
* var97
/* : NativeArray[String] */;
2139 static val
* varonce96
;
2140 static val
* varonce98
;
2141 val
* var99
/* : String */;
2142 char* var100
/* : NativeString */;
2143 val
* var101
/* : String */;
2144 val
* var102
/* : Map[MClass, Int] */;
2145 val
* var104
/* : Map[MClass, Int] */;
2146 val
* var105
/* : nullable Object */;
2147 val
* var106
/* : String */;
2148 long var107
/* : Int */;
2149 val
* var108
/* : String */;
2150 val
* var110
/* : NativeArray[String] */;
2151 static val
* varonce109
;
2152 static val
* varonce111
;
2153 val
* var112
/* : String */;
2154 char* var113
/* : NativeString */;
2155 val
* var114
/* : String */;
2156 static val
* varonce115
;
2157 val
* var116
/* : String */;
2158 char* var117
/* : NativeString */;
2159 val
* var118
/* : String */;
2160 val
* var119
/* : String */;
2161 val
* var121
/* : String */;
2162 val
* var122
/* : String */;
2163 val
* var124
/* : NativeArray[String] */;
2164 static val
* varonce123
;
2165 static val
* varonce125
;
2166 val
* var126
/* : String */;
2167 char* var127
/* : NativeString */;
2168 val
* var128
/* : String */;
2169 long var129
/* : Int */;
2170 val
* var130
/* : String */;
2171 val
* var131
/* : String */;
2172 val
* var133
/* : NativeArray[String] */;
2173 static val
* varonce132
;
2174 static val
* varonce134
;
2175 val
* var135
/* : String */;
2176 char* var136
/* : NativeString */;
2177 val
* var137
/* : String */;
2178 val
* var138
/* : Map[MClass, Int] */;
2179 val
* var140
/* : Map[MClass, Int] */;
2180 val
* var141
/* : nullable Object */;
2181 val
* var142
/* : String */;
2182 long var143
/* : Int */;
2183 val
* var144
/* : String */;
2184 short int var145
/* : Bool */;
2185 short int var146
/* : Bool */;
2186 val
* var148
/* : NativeArray[String] */;
2187 static val
* varonce147
;
2188 static val
* varonce149
;
2189 val
* var150
/* : String */;
2190 char* var151
/* : NativeString */;
2191 val
* var152
/* : String */;
2192 val
* var153
/* : String */;
2193 val
* var155
/* : NativeArray[String] */;
2194 static val
* varonce154
;
2195 static val
* varonce156
;
2196 val
* var157
/* : String */;
2197 char* var158
/* : NativeString */;
2198 val
* var159
/* : String */;
2199 static val
* varonce160
;
2200 val
* var161
/* : String */;
2201 char* var162
/* : NativeString */;
2202 val
* var163
/* : String */;
2203 val
* var164
/* : String */;
2204 static val
* varonce165
;
2205 val
* var166
/* : String */;
2206 char* var167
/* : NativeString */;
2207 val
* var168
/* : String */;
2208 val
* var170
/* : NativeArray[String] */;
2209 static val
* varonce169
;
2210 static val
* varonce171
;
2211 val
* var172
/* : String */;
2212 char* var173
/* : NativeString */;
2213 val
* var174
/* : String */;
2214 static val
* varonce175
;
2215 val
* var176
/* : String */;
2216 char* var177
/* : NativeString */;
2217 val
* var178
/* : String */;
2218 val
* var179
/* : String */;
2219 static val
* varonce180
;
2220 val
* var181
/* : String */;
2221 char* var182
/* : NativeString */;
2222 val
* var183
/* : String */;
2223 val
* var184
/* : Map[MClass, Array[nullable MPropDef]] */;
2224 val
* var186
/* : Map[MClass, Array[nullable MPropDef]] */;
2225 val
* var187
/* : nullable Object */;
2226 val
* var_vft
/* var vft: nullable Array[nullable MPropDef] */;
2227 short int var188
/* : Bool */;
2228 short int var189
/* : Bool */;
2229 short int var191
/* : Bool */;
2230 short int var192
/* : Bool */;
2231 long var_i
/* var i: Int */;
2232 long var193
/* : Int */;
2233 long var195
/* : Int */;
2234 long var_196
/* var : Int */;
2235 short int var197
/* : Bool */;
2236 short int var199
/* : Bool */;
2239 const char* var_class_name
;
2240 short int var200
/* : Bool */;
2241 val
* var201
/* : nullable Object */;
2242 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
2243 short int var202
/* : Bool */;
2244 short int var203
/* : Bool */;
2245 val
* var_other205
/* var other: nullable Object */;
2246 short int var206
/* : Bool */;
2247 short int var208
/* : Bool */;
2248 static val
* varonce209
;
2249 val
* var210
/* : String */;
2250 char* var211
/* : NativeString */;
2251 val
* var212
/* : String */;
2252 short int var213
/* : Bool */;
2255 short int var216
/* : Bool */;
2256 short int var217
/* : Bool */;
2257 short int var218
/* : Bool */;
2258 short int var220
/* : Bool */;
2259 short int var221
/* : Bool */;
2260 short int var_222
/* var : Bool */;
2261 val
* var223
/* : HashSet[MMethodDef] */;
2262 val
* var225
/* : HashSet[MMethodDef] */;
2263 short int var226
/* : Bool */;
2264 short int var227
/* : Bool */;
2265 val
* var229
/* : NativeArray[String] */;
2266 static val
* varonce228
;
2267 static val
* varonce230
;
2268 val
* var231
/* : String */;
2269 char* var232
/* : NativeString */;
2270 val
* var233
/* : String */;
2271 static val
* varonce234
;
2272 val
* var235
/* : String */;
2273 char* var236
/* : NativeString */;
2274 val
* var237
/* : String */;
2275 static val
* varonce238
;
2276 val
* var239
/* : String */;
2277 char* var240
/* : NativeString */;
2278 val
* var241
/* : String */;
2279 static val
* varonce242
;
2280 val
* var243
/* : String */;
2281 char* var244
/* : NativeString */;
2282 val
* var245
/* : String */;
2283 val
* var246
/* : MModule */;
2284 val
* var248
/* : MModule */;
2285 val
* var249
/* : String */;
2286 val
* var250
/* : String */;
2287 val
* var251
/* : String */;
2288 val
* var252
/* : String */;
2289 val
* var254
/* : SeparateRuntimeFunction */;
2290 val
* var_rf
/* var rf: SeparateRuntimeFunction */;
2291 val
* var255
/* : String */;
2292 val
* var257
/* : NativeArray[String] */;
2293 static val
* varonce256
;
2294 static val
* varonce258
;
2295 val
* var259
/* : String */;
2296 char* var260
/* : NativeString */;
2297 val
* var261
/* : String */;
2298 static val
* varonce262
;
2299 val
* var263
/* : String */;
2300 char* var264
/* : NativeString */;
2301 val
* var265
/* : String */;
2302 static val
* varonce266
;
2303 val
* var267
/* : String */;
2304 char* var268
/* : NativeString */;
2305 val
* var269
/* : String */;
2306 val
* var270
/* : String */;
2307 val
* var271
/* : String */;
2308 val
* var272
/* : String */;
2309 long var273
/* : Int */;
2310 static val
* varonce274
;
2311 val
* var275
/* : String */;
2312 char* var276
/* : NativeString */;
2313 val
* var277
/* : String */;
2314 static val
* varonce278
;
2315 val
* var279
/* : String */;
2316 char* var280
/* : NativeString */;
2317 val
* var281
/* : String */;
2318 val
* var283
/* : NativeArray[String] */;
2319 static val
* varonce282
;
2320 static val
* varonce284
;
2321 val
* var285
/* : String */;
2322 char* var286
/* : NativeString */;
2323 val
* var287
/* : String */;
2324 static val
* varonce288
;
2325 val
* var289
/* : String */;
2326 char* var290
/* : NativeString */;
2327 val
* var291
/* : String */;
2328 val
* var292
/* : String */;
2329 val
* var294
/* : NativeArray[String] */;
2330 static val
* varonce293
;
2331 static val
* varonce295
;
2332 val
* var296
/* : String */;
2333 char* var297
/* : NativeString */;
2334 val
* var298
/* : String */;
2335 long var299
/* : Int */;
2336 long var301
/* : Int */;
2337 val
* var302
/* : String */;
2338 val
* var303
/* : String */;
2339 static val
* varonce304
;
2340 val
* var305
/* : String */;
2341 char* var306
/* : NativeString */;
2342 val
* var307
/* : String */;
2343 val
* var_308
/* var : Array[nullable MClass] */;
2344 val
* var309
/* : IndexedIterator[nullable Object] */;
2345 val
* var_310
/* var : IndexedIterator[nullable MClass] */;
2346 short int var311
/* : Bool */;
2347 val
* var313
/* : nullable Object */;
2348 val
* var_msuper
/* var msuper: nullable MClass */;
2349 short int var314
/* : Bool */;
2350 short int var315
/* : Bool */;
2351 short int var317
/* : Bool */;
2352 short int var319
/* : Bool */;
2353 static val
* varonce320
;
2354 val
* var321
/* : String */;
2355 char* var322
/* : NativeString */;
2356 val
* var323
/* : String */;
2357 val
* var325
/* : NativeArray[String] */;
2358 static val
* varonce324
;
2359 static val
* varonce326
;
2360 val
* var327
/* : String */;
2361 char* var328
/* : NativeString */;
2362 val
* var329
/* : String */;
2363 static val
* varonce330
;
2364 val
* var331
/* : String */;
2365 char* var332
/* : NativeString */;
2366 val
* var333
/* : String */;
2367 val
* var334
/* : Map[MClass, Int] */;
2368 val
* var336
/* : Map[MClass, Int] */;
2369 val
* var337
/* : nullable Object */;
2370 val
* var338
/* : String */;
2371 long var339
/* : Int */;
2372 val
* var340
/* : String */;
2373 val
* var341
/* : String */;
2374 static val
* varonce342
;
2375 val
* var343
/* : String */;
2376 char* var344
/* : NativeString */;
2377 val
* var345
/* : String */;
2378 static val
* varonce346
;
2379 val
* var347
/* : String */;
2380 char* var348
/* : NativeString */;
2381 val
* var349
/* : String */;
2382 short int var350
/* : Bool */;
2383 short int var351
/* : Bool */;
2384 short int var_352
/* var : Bool */;
2385 val
* var353
/* : MClass */;
2386 val
* var355
/* : MClass */;
2387 val
* var356
/* : String */;
2388 val
* var358
/* : String */;
2389 static val
* varonce359
;
2390 val
* var360
/* : String */;
2391 char* var361
/* : NativeString */;
2392 val
* var362
/* : String */;
2393 short int var363
/* : Bool */;
2394 val
* var364
/* : CodeWriter */;
2395 val
* var366
/* : CodeWriter */;
2396 val
* var368
/* : NativeArray[String] */;
2397 static val
* varonce367
;
2398 static val
* varonce369
;
2399 val
* var370
/* : String */;
2400 char* var371
/* : NativeString */;
2401 val
* var372
/* : String */;
2402 static val
* varonce373
;
2403 val
* var374
/* : String */;
2404 char* var375
/* : NativeString */;
2405 val
* var376
/* : String */;
2406 val
* var377
/* : String */;
2407 val
* var378
/* : CodeWriter */;
2408 val
* var380
/* : CodeWriter */;
2409 static val
* varonce381
;
2410 val
* var382
/* : String */;
2411 char* var383
/* : NativeString */;
2412 val
* var384
/* : String */;
2413 val
* var385
/* : CodeWriter */;
2414 val
* var387
/* : CodeWriter */;
2415 val
* var389
/* : NativeArray[String] */;
2416 static val
* varonce388
;
2417 static val
* varonce390
;
2418 val
* var391
/* : String */;
2419 char* var392
/* : NativeString */;
2420 val
* var393
/* : String */;
2421 val
* var394
/* : String */;
2422 val
* var395
/* : String */;
2423 val
* var396
/* : CodeWriter */;
2424 val
* var398
/* : CodeWriter */;
2425 static val
* varonce399
;
2426 val
* var400
/* : String */;
2427 char* var401
/* : NativeString */;
2428 val
* var402
/* : String */;
2429 val
* var404
/* : NativeArray[String] */;
2430 static val
* varonce403
;
2431 static val
* varonce405
;
2432 val
* var406
/* : String */;
2433 char* var407
/* : NativeString */;
2434 val
* var408
/* : String */;
2435 val
* var409
/* : String */;
2436 val
* var411
/* : NativeArray[String] */;
2437 static val
* varonce410
;
2438 static val
* varonce412
;
2439 val
* var413
/* : String */;
2440 char* var414
/* : NativeString */;
2441 val
* var415
/* : String */;
2442 static val
* varonce416
;
2443 val
* var417
/* : String */;
2444 char* var418
/* : NativeString */;
2445 val
* var419
/* : String */;
2446 static val
* varonce420
;
2447 val
* var421
/* : String */;
2448 char* var422
/* : NativeString */;
2449 val
* var423
/* : String */;
2450 val
* var424
/* : String */;
2451 val
* var425
/* : String */;
2452 val
* var427
/* : NativeArray[String] */;
2453 static val
* varonce426
;
2454 static val
* varonce428
;
2455 val
* var429
/* : String */;
2456 char* var430
/* : NativeString */;
2457 val
* var431
/* : String */;
2458 static val
* varonce432
;
2459 val
* var433
/* : String */;
2460 char* var434
/* : NativeString */;
2461 val
* var435
/* : String */;
2462 val
* var436
/* : String */;
2463 val
* var437
/* : String */;
2464 val
* var439
/* : NativeArray[String] */;
2465 static val
* varonce438
;
2466 static val
* varonce440
;
2467 val
* var441
/* : String */;
2468 char* var442
/* : NativeString */;
2469 val
* var443
/* : String */;
2470 static val
* varonce444
;
2471 val
* var445
/* : String */;
2472 char* var446
/* : NativeString */;
2473 val
* var447
/* : String */;
2474 static val
* varonce448
;
2475 val
* var449
/* : String */;
2476 char* var450
/* : NativeString */;
2477 val
* var451
/* : String */;
2478 val
* var452
/* : String */;
2479 val
* var453
/* : String */;
2480 val
* var454
/* : String */;
2481 val
* var456
/* : NativeArray[String] */;
2482 static val
* varonce455
;
2483 static val
* varonce457
;
2484 val
* var458
/* : String */;
2485 char* var459
/* : NativeString */;
2486 val
* var460
/* : String */;
2487 static val
* varonce461
;
2488 val
* var462
/* : String */;
2489 char* var463
/* : NativeString */;
2490 val
* var464
/* : String */;
2491 static val
* varonce465
;
2492 val
* var466
/* : String */;
2493 char* var467
/* : NativeString */;
2494 val
* var468
/* : String */;
2495 val
* var469
/* : String */;
2496 val
* var471
/* : NativeArray[String] */;
2497 static val
* varonce470
;
2498 static val
* varonce472
;
2499 val
* var473
/* : String */;
2500 char* var474
/* : NativeString */;
2501 val
* var475
/* : String */;
2502 val
* var476
/* : String */;
2503 val
* var478
/* : NativeArray[String] */;
2504 static val
* varonce477
;
2505 static val
* varonce479
;
2506 val
* var480
/* : String */;
2507 char* var481
/* : NativeString */;
2508 val
* var482
/* : String */;
2509 static val
* varonce483
;
2510 val
* var484
/* : String */;
2511 char* var485
/* : NativeString */;
2512 val
* var486
/* : String */;
2513 val
* var487
/* : String */;
2514 static val
* varonce488
;
2515 val
* var489
/* : String */;
2516 char* var490
/* : NativeString */;
2517 val
* var491
/* : String */;
2518 static val
* varonce492
;
2519 val
* var493
/* : String */;
2520 char* var494
/* : NativeString */;
2521 val
* var495
/* : String */;
2522 static val
* varonce496
;
2523 val
* var497
/* : String */;
2524 char* var498
/* : NativeString */;
2525 val
* var499
/* : String */;
2526 val
* var500
/* : MClass */;
2527 val
* var502
/* : MClass */;
2528 val
* var503
/* : String */;
2529 val
* var505
/* : String */;
2530 static val
* varonce506
;
2531 val
* var507
/* : String */;
2532 char* var508
/* : NativeString */;
2533 val
* var509
/* : String */;
2534 short int var510
/* : Bool */;
2535 short int var512
/* : Bool */;
2536 short int var513
/* : Bool */;
2537 val
* var514
/* : SeparateCompilerVisitor */;
2538 val
* var516
/* : NativeArray[String] */;
2539 static val
* varonce515
;
2540 static val
* varonce517
;
2541 val
* var518
/* : String */;
2542 char* var519
/* : NativeString */;
2543 val
* var520
/* : String */;
2544 val
* var521
/* : String */;
2545 val
* var523
/* : NativeArray[String] */;
2546 static val
* varonce522
;
2547 static val
* varonce524
;
2548 val
* var525
/* : String */;
2549 char* var526
/* : NativeString */;
2550 val
* var527
/* : String */;
2551 static val
* varonce528
;
2552 val
* var529
/* : String */;
2553 char* var530
/* : NativeString */;
2554 val
* var531
/* : String */;
2555 val
* var532
/* : String */;
2556 val
* var533
/* : String */;
2557 val
* var535
/* : NativeArray[String] */;
2558 static val
* varonce534
;
2559 static val
* varonce536
;
2560 val
* var537
/* : String */;
2561 char* var538
/* : NativeString */;
2562 val
* var539
/* : String */;
2563 static val
* varonce540
;
2564 val
* var541
/* : String */;
2565 char* var542
/* : NativeString */;
2566 val
* var543
/* : String */;
2567 val
* var544
/* : String */;
2568 val
* var545
/* : String */;
2569 val
* var547
/* : NativeArray[String] */;
2570 static val
* varonce546
;
2571 static val
* varonce548
;
2572 val
* var549
/* : String */;
2573 char* var550
/* : NativeString */;
2574 val
* var551
/* : String */;
2575 static val
* varonce552
;
2576 val
* var553
/* : String */;
2577 char* var554
/* : NativeString */;
2578 val
* var555
/* : String */;
2579 val
* var556
/* : String */;
2580 val
* var557
/* : String */;
2581 val
* var559
/* : NativeArray[String] */;
2582 static val
* varonce558
;
2583 static val
* varonce560
;
2584 val
* var561
/* : String */;
2585 char* var562
/* : NativeString */;
2586 val
* var563
/* : String */;
2587 val
* var564
/* : String */;
2588 val
* var565
/* : String */;
2589 static val
* varonce566
;
2590 val
* var567
/* : String */;
2591 char* var568
/* : NativeString */;
2592 val
* var569
/* : String */;
2593 val
* var570
/* : RuntimeVariable */;
2594 val
* var_res
/* var res: RuntimeVariable */;
2595 val
* var573
/* : NativeArray[String] */;
2596 static val
* varonce572
;
2597 static val
* varonce574
;
2598 val
* var575
/* : String */;
2599 char* var576
/* : NativeString */;
2600 val
* var577
/* : String */;
2601 static val
* varonce578
;
2602 val
* var579
/* : String */;
2603 char* var580
/* : NativeString */;
2604 val
* var581
/* : String */;
2605 val
* var582
/* : String */;
2606 val
* var583
/* : String */;
2607 val
* var584
/* : String */;
2608 val
* var586
/* : NativeArray[String] */;
2609 static val
* varonce585
;
2610 static val
* varonce587
;
2611 val
* var588
/* : String */;
2612 char* var589
/* : NativeString */;
2613 val
* var590
/* : String */;
2614 val
* var591
/* : String */;
2615 val
* var593
/* : NativeArray[String] */;
2616 static val
* varonce592
;
2617 static val
* varonce594
;
2618 val
* var595
/* : String */;
2619 char* var596
/* : NativeString */;
2620 val
* var597
/* : String */;
2621 static val
* varonce598
;
2622 val
* var599
/* : String */;
2623 char* var600
/* : NativeString */;
2624 val
* var601
/* : String */;
2625 val
* var602
/* : String */;
2626 val
* var603
/* : String */;
2627 val
* var605
/* : NativeArray[String] */;
2628 static val
* varonce604
;
2629 static val
* varonce606
;
2630 val
* var607
/* : String */;
2631 char* var608
/* : NativeString */;
2632 val
* var609
/* : String */;
2633 static val
* varonce610
;
2634 val
* var611
/* : String */;
2635 char* var612
/* : NativeString */;
2636 val
* var613
/* : String */;
2637 static val
* varonce614
;
2638 val
* var615
/* : String */;
2639 char* var616
/* : NativeString */;
2640 val
* var617
/* : String */;
2641 val
* var618
/* : String */;
2642 val
* var619
/* : String */;
2643 val
* var620
/* : String */;
2644 val
* var622
/* : NativeArray[String] */;
2645 static val
* varonce621
;
2646 static val
* varonce623
;
2647 val
* var624
/* : String */;
2648 char* var625
/* : NativeString */;
2649 val
* var626
/* : String */;
2650 static val
* varonce627
;
2651 val
* var628
/* : String */;
2652 char* var629
/* : NativeString */;
2653 val
* var630
/* : String */;
2654 val
* var631
/* : String */;
2655 val
* var632
/* : String */;
2656 static val
* varonce633
;
2657 val
* var634
/* : String */;
2658 char* var635
/* : NativeString */;
2659 val
* var636
/* : String */;
2660 val
* var637
/* : String */;
2661 val
* var639
/* : String */;
2662 static val
* varonce640
;
2663 val
* var641
/* : String */;
2664 char* var642
/* : NativeString */;
2665 val
* var643
/* : String */;
2666 short int var644
/* : Bool */;
2667 val
* var645
/* : CodeWriter */;
2668 val
* var647
/* : CodeWriter */;
2669 val
* var649
/* : NativeArray[String] */;
2670 static val
* varonce648
;
2671 static val
* varonce650
;
2672 val
* var651
/* : String */;
2673 char* var652
/* : NativeString */;
2674 val
* var653
/* : String */;
2675 static val
* varonce654
;
2676 val
* var655
/* : String */;
2677 char* var656
/* : NativeString */;
2678 val
* var657
/* : String */;
2679 val
* var658
/* : String */;
2680 val
* var659
/* : CodeWriter */;
2681 val
* var661
/* : CodeWriter */;
2682 static val
* varonce662
;
2683 val
* var663
/* : String */;
2684 char* var664
/* : NativeString */;
2685 val
* var665
/* : String */;
2686 val
* var666
/* : CodeWriter */;
2687 val
* var668
/* : CodeWriter */;
2688 static val
* varonce669
;
2689 val
* var670
/* : String */;
2690 char* var671
/* : NativeString */;
2691 val
* var672
/* : String */;
2692 val
* var673
/* : CodeWriter */;
2693 val
* var675
/* : CodeWriter */;
2694 static val
* varonce676
;
2695 val
* var677
/* : String */;
2696 char* var678
/* : NativeString */;
2697 val
* var679
/* : String */;
2698 val
* var680
/* : CodeWriter */;
2699 val
* var682
/* : CodeWriter */;
2700 static val
* varonce683
;
2701 val
* var684
/* : String */;
2702 char* var685
/* : NativeString */;
2703 val
* var686
/* : String */;
2704 val
* var688
/* : NativeArray[String] */;
2705 static val
* varonce687
;
2706 static val
* varonce689
;
2707 val
* var690
/* : String */;
2708 char* var691
/* : NativeString */;
2709 val
* var692
/* : String */;
2710 val
* var693
/* : String */;
2711 val
* var695
/* : NativeArray[String] */;
2712 static val
* varonce694
;
2713 static val
* varonce696
;
2714 val
* var697
/* : String */;
2715 char* var698
/* : NativeString */;
2716 val
* var699
/* : String */;
2717 static val
* varonce700
;
2718 val
* var701
/* : String */;
2719 char* var702
/* : NativeString */;
2720 val
* var703
/* : String */;
2721 val
* var704
/* : String */;
2722 val
* var705
/* : String */;
2723 val
* var707
/* : NativeArray[String] */;
2724 static val
* varonce706
;
2725 static val
* varonce708
;
2726 val
* var709
/* : String */;
2727 char* var710
/* : NativeString */;
2728 val
* var711
/* : String */;
2729 static val
* varonce712
;
2730 val
* var713
/* : String */;
2731 char* var714
/* : NativeString */;
2732 val
* var715
/* : String */;
2733 val
* var716
/* : String */;
2734 val
* var717
/* : String */;
2735 val
* var719
/* : NativeArray[String] */;
2736 static val
* varonce718
;
2737 static val
* varonce720
;
2738 val
* var721
/* : String */;
2739 char* var722
/* : NativeString */;
2740 val
* var723
/* : String */;
2741 static val
* varonce724
;
2742 val
* var725
/* : String */;
2743 char* var726
/* : NativeString */;
2744 val
* var727
/* : String */;
2745 val
* var728
/* : String */;
2746 val
* var729
/* : String */;
2747 static val
* varonce730
;
2748 val
* var731
/* : String */;
2749 char* var732
/* : NativeString */;
2750 val
* var733
/* : String */;
2751 val
* var734
/* : String */;
2752 val
* var_res735
/* var res: String */;
2753 val
* var737
/* : NativeArray[String] */;
2754 static val
* varonce736
;
2755 static val
* varonce738
;
2756 val
* var739
/* : String */;
2757 char* var740
/* : NativeString */;
2758 val
* var741
/* : String */;
2759 static val
* varonce742
;
2760 val
* var743
/* : String */;
2761 char* var744
/* : NativeString */;
2762 val
* var745
/* : String */;
2763 static val
* varonce746
;
2764 val
* var747
/* : String */;
2765 char* var748
/* : NativeString */;
2766 val
* var749
/* : String */;
2767 val
* var750
/* : String */;
2768 val
* var751
/* : Array[MType] */;
2769 val
* var752
/* : nullable Object */;
2770 val
* var_mtype_elt
/* var mtype_elt: MType */;
2771 val
* var754
/* : NativeArray[String] */;
2772 static val
* varonce753
;
2773 static val
* varonce755
;
2774 val
* var756
/* : String */;
2775 char* var757
/* : NativeString */;
2776 val
* var758
/* : String */;
2777 static val
* varonce759
;
2778 val
* var760
/* : String */;
2779 char* var761
/* : NativeString */;
2780 val
* var762
/* : String */;
2781 static val
* varonce763
;
2782 val
* var764
/* : String */;
2783 char* var765
/* : NativeString */;
2784 val
* var766
/* : String */;
2785 val
* var767
/* : String */;
2786 val
* var768
/* : String */;
2787 val
* var770
/* : NativeArray[String] */;
2788 static val
* varonce769
;
2789 static val
* varonce771
;
2790 val
* var772
/* : String */;
2791 char* var773
/* : NativeString */;
2792 val
* var774
/* : String */;
2793 val
* var775
/* : String */;
2794 val
* var777
/* : NativeArray[String] */;
2795 static val
* varonce776
;
2796 static val
* varonce778
;
2797 val
* var779
/* : String */;
2798 char* var780
/* : NativeString */;
2799 val
* var781
/* : String */;
2800 static val
* varonce782
;
2801 val
* var783
/* : String */;
2802 char* var784
/* : NativeString */;
2803 val
* var785
/* : String */;
2804 val
* var786
/* : String */;
2805 val
* var788
/* : NativeArray[String] */;
2806 static val
* varonce787
;
2807 static val
* varonce789
;
2808 val
* var790
/* : String */;
2809 char* var791
/* : NativeString */;
2810 val
* var792
/* : String */;
2811 val
* var793
/* : String */;
2812 val
* var795
/* : NativeArray[String] */;
2813 static val
* varonce794
;
2814 static val
* varonce796
;
2815 val
* var797
/* : String */;
2816 char* var798
/* : NativeString */;
2817 val
* var799
/* : String */;
2818 static val
* varonce800
;
2819 val
* var801
/* : String */;
2820 char* var802
/* : NativeString */;
2821 val
* var803
/* : String */;
2822 val
* var804
/* : String */;
2823 static val
* varonce805
;
2824 val
* var806
/* : String */;
2825 char* var807
/* : NativeString */;
2826 val
* var808
/* : String */;
2827 short int var809
/* : Bool */;
2828 val
* var810
/* : MClass */;
2829 val
* var812
/* : MClass */;
2830 val
* var813
/* : MClassKind */;
2831 val
* var815
/* : MClassKind */;
2832 val
* var816
/* : Sys */;
2833 val
* var817
/* : MClassKind */;
2834 short int var818
/* : Bool */;
2835 short int var820
/* : Bool */;
2836 short int var822
/* : Bool */;
2837 short int var_823
/* var : Bool */;
2838 val
* var824
/* : MClass */;
2839 val
* var826
/* : MClass */;
2840 val
* var827
/* : String */;
2841 val
* var829
/* : String */;
2842 static val
* varonce830
;
2843 val
* var831
/* : String */;
2844 char* var832
/* : NativeString */;
2845 val
* var833
/* : String */;
2846 short int var834
/* : Bool */;
2847 short int var836
/* : Bool */;
2848 short int var837
/* : Bool */;
2849 val
* var838
/* : MModule */;
2850 val
* var840
/* : MModule */;
2851 val
* var841
/* : MClassType */;
2852 val
* var_pointer_type
/* var pointer_type: MClassType */;
2853 val
* var843
/* : NativeArray[String] */;
2854 static val
* varonce842
;
2855 static val
* varonce844
;
2856 val
* var845
/* : String */;
2857 char* var846
/* : NativeString */;
2858 val
* var847
/* : String */;
2859 val
* var848
/* : String */;
2860 val
* var850
/* : NativeArray[String] */;
2861 static val
* varonce849
;
2862 static val
* varonce851
;
2863 val
* var852
/* : String */;
2864 char* var853
/* : NativeString */;
2865 val
* var854
/* : String */;
2866 static val
* varonce855
;
2867 val
* var856
/* : String */;
2868 char* var857
/* : NativeString */;
2869 val
* var858
/* : String */;
2870 val
* var859
/* : String */;
2871 val
* var860
/* : String */;
2872 val
* var862
/* : NativeArray[String] */;
2873 static val
* varonce861
;
2874 static val
* varonce863
;
2875 val
* var864
/* : String */;
2876 char* var865
/* : NativeString */;
2877 val
* var866
/* : String */;
2878 static val
* varonce867
;
2879 val
* var868
/* : String */;
2880 char* var869
/* : NativeString */;
2881 val
* var870
/* : String */;
2882 val
* var871
/* : String */;
2883 val
* var872
/* : String */;
2884 val
* var874
/* : NativeArray[String] */;
2885 static val
* varonce873
;
2886 static val
* varonce875
;
2887 val
* var876
/* : String */;
2888 char* var877
/* : NativeString */;
2889 val
* var878
/* : String */;
2890 static val
* varonce879
;
2891 val
* var880
/* : String */;
2892 char* var881
/* : NativeString */;
2893 val
* var882
/* : String */;
2894 val
* var883
/* : String */;
2895 val
* var884
/* : String */;
2896 val
* var886
/* : NativeArray[String] */;
2897 static val
* varonce885
;
2898 static val
* varonce887
;
2899 val
* var888
/* : String */;
2900 char* var889
/* : NativeString */;
2901 val
* var890
/* : String */;
2902 val
* var891
/* : String */;
2903 val
* var892
/* : String */;
2904 static val
* varonce893
;
2905 val
* var894
/* : String */;
2906 char* var895
/* : NativeString */;
2907 val
* var896
/* : String */;
2908 val
* var897
/* : RuntimeVariable */;
2909 val
* var_res898
/* var res: RuntimeVariable */;
2910 val
* var901
/* : NativeArray[String] */;
2911 static val
* varonce900
;
2912 static val
* varonce902
;
2913 val
* var903
/* : String */;
2914 char* var904
/* : NativeString */;
2915 val
* var905
/* : String */;
2916 static val
* varonce906
;
2917 val
* var907
/* : String */;
2918 char* var908
/* : NativeString */;
2919 val
* var909
/* : String */;
2920 val
* var910
/* : String */;
2921 val
* var911
/* : String */;
2922 val
* var912
/* : String */;
2923 val
* var914
/* : NativeArray[String] */;
2924 static val
* varonce913
;
2925 static val
* varonce915
;
2926 val
* var916
/* : String */;
2927 char* var917
/* : NativeString */;
2928 val
* var918
/* : String */;
2929 val
* var919
/* : String */;
2930 val
* var921
/* : NativeArray[String] */;
2931 static val
* varonce920
;
2932 static val
* varonce922
;
2933 val
* var923
/* : String */;
2934 char* var924
/* : NativeString */;
2935 val
* var925
/* : String */;
2936 static val
* varonce926
;
2937 val
* var927
/* : String */;
2938 char* var928
/* : NativeString */;
2939 val
* var929
/* : String */;
2940 val
* var930
/* : String */;
2941 val
* var931
/* : String */;
2942 val
* var933
/* : NativeArray[String] */;
2943 static val
* varonce932
;
2944 static val
* varonce934
;
2945 val
* var935
/* : String */;
2946 char* var936
/* : NativeString */;
2947 val
* var937
/* : String */;
2948 static val
* varonce938
;
2949 val
* var939
/* : String */;
2950 char* var940
/* : NativeString */;
2951 val
* var941
/* : String */;
2952 static val
* varonce942
;
2953 val
* var943
/* : String */;
2954 char* var944
/* : NativeString */;
2955 val
* var945
/* : String */;
2956 val
* var946
/* : String */;
2957 val
* var947
/* : String */;
2958 val
* var948
/* : String */;
2959 val
* var950
/* : NativeArray[String] */;
2960 static val
* varonce949
;
2961 static val
* varonce951
;
2962 val
* var952
/* : String */;
2963 char* var953
/* : NativeString */;
2964 val
* var954
/* : String */;
2965 static val
* varonce955
;
2966 val
* var956
/* : String */;
2967 char* var957
/* : NativeString */;
2968 val
* var958
/* : String */;
2969 val
* var959
/* : String */;
2970 val
* var960
/* : String */;
2971 static val
* varonce961
;
2972 val
* var962
/* : String */;
2973 char* var963
/* : NativeString */;
2974 val
* var964
/* : String */;
2975 val
* var966
/* : NativeArray[String] */;
2976 static val
* varonce965
;
2977 static val
* varonce967
;
2978 val
* var968
/* : String */;
2979 char* var969
/* : NativeString */;
2980 val
* var970
/* : String */;
2981 val
* var971
/* : String */;
2982 val
* var973
/* : NativeArray[String] */;
2983 static val
* varonce972
;
2984 static val
* varonce974
;
2985 val
* var975
/* : String */;
2986 char* var976
/* : NativeString */;
2987 val
* var977
/* : String */;
2988 static val
* varonce978
;
2989 val
* var979
/* : String */;
2990 char* var980
/* : NativeString */;
2991 val
* var981
/* : String */;
2992 val
* var982
/* : String */;
2993 val
* var983
/* : String */;
2994 val
* var985
/* : NativeArray[String] */;
2995 static val
* varonce984
;
2996 static val
* varonce986
;
2997 val
* var987
/* : String */;
2998 char* var988
/* : NativeString */;
2999 val
* var989
/* : String */;
3000 static val
* varonce990
;
3001 val
* var991
/* : String */;
3002 char* var992
/* : NativeString */;
3003 val
* var993
/* : String */;
3004 val
* var994
/* : String */;
3005 val
* var995
/* : String */;
3006 val
* var997
/* : NativeArray[String] */;
3007 static val
* varonce996
;
3008 static val
* varonce998
;
3009 val
* var999
/* : String */;
3010 char* var1000
/* : NativeString */;
3011 val
* var1001
/* : String */;
3012 static val
* varonce1002
;
3013 val
* var1003
/* : String */;
3014 char* var1004
/* : NativeString */;
3015 val
* var1005
/* : String */;
3016 val
* var1006
/* : String */;
3017 val
* var1007
/* : String */;
3018 val
* var1009
/* : NativeArray[String] */;
3019 static val
* varonce1008
;
3020 static val
* varonce1010
;
3021 val
* var1011
/* : String */;
3022 char* var1012
/* : NativeString */;
3023 val
* var1013
/* : String */;
3024 val
* var1014
/* : String */;
3025 val
* var1015
/* : String */;
3026 static val
* varonce1016
;
3027 val
* var1017
/* : String */;
3028 char* var1018
/* : NativeString */;
3029 val
* var1019
/* : String */;
3030 val
* var1020
/* : RuntimeVariable */;
3031 val
* var_res1021
/* var res: RuntimeVariable */;
3032 val
* var1023
/* : Map[MClass, Array[nullable MProperty]] */;
3033 val
* var1025
/* : Map[MClass, Array[nullable MProperty]] */;
3034 val
* var1026
/* : nullable Object */;
3035 val
* var_attrs
/* var attrs: nullable Array[nullable MProperty] */;
3036 short int var1027
/* : Bool */;
3037 short int var1028
/* : Bool */;
3038 val
* var1030
/* : NativeArray[String] */;
3039 static val
* varonce1029
;
3040 static val
* varonce1031
;
3041 val
* var1032
/* : String */;
3042 char* var1033
/* : NativeString */;
3043 val
* var1034
/* : String */;
3044 val
* var1035
/* : String */;
3045 val
* var1036
/* : String */;
3046 val
* var1038
/* : NativeArray[String] */;
3047 static val
* varonce1037
;
3048 static val
* varonce1039
;
3049 val
* var1040
/* : String */;
3050 char* var1041
/* : NativeString */;
3051 val
* var1042
/* : String */;
3052 static val
* varonce1043
;
3053 val
* var1044
/* : String */;
3054 char* var1045
/* : NativeString */;
3055 val
* var1046
/* : String */;
3056 val
* var1047
/* : String */;
3057 long var1048
/* : Int */;
3058 long var1050
/* : Int */;
3059 val
* var1051
/* : String */;
3060 val
* var1052
/* : String */;
3061 val
* var1054
/* : NativeArray[String] */;
3062 static val
* varonce1053
;
3063 static val
* varonce1055
;
3064 val
* var1056
/* : String */;
3065 char* var1057
/* : NativeString */;
3066 val
* var1058
/* : String */;
3067 val
* var1059
/* : String */;
3068 val
* var1061
/* : NativeArray[String] */;
3069 static val
* varonce1060
;
3070 static val
* varonce1062
;
3071 val
* var1063
/* : String */;
3072 char* var1064
/* : NativeString */;
3073 val
* var1065
/* : String */;
3074 static val
* varonce1066
;
3075 val
* var1067
/* : String */;
3076 char* var1068
/* : NativeString */;
3077 val
* var1069
/* : String */;
3078 val
* var1070
/* : String */;
3079 val
* var1071
/* : String */;
3080 short int var1072
/* : Bool */;
3081 short int var1073
/* : Bool */;
3082 short int var1075
/* : Bool */;
3083 short int var1076
/* : Bool */;
3084 val
* var1078
/* : NativeArray[String] */;
3085 static val
* varonce1077
;
3086 static val
* varonce1079
;
3087 val
* var1080
/* : String */;
3088 char* var1081
/* : NativeString */;
3089 val
* var1082
/* : String */;
3090 static val
* varonce1083
;
3091 val
* var1084
/* : String */;
3092 char* var1085
/* : NativeString */;
3093 val
* var1086
/* : String */;
3094 val
* var1087
/* : String */;
3095 val
* var1088
/* : String */;
3096 static val
* varonce1089
;
3097 val
* var1090
/* : String */;
3098 char* var1091
/* : NativeString */;
3099 val
* var1092
/* : String */;
3102 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:MClass> */
3103 var2
= var_mclass
->attrs
[COLOR_nitc__model__MClass___intro
].val
; /* _intro on <var_mclass:MClass> */
3104 if (unlikely(var2
== NULL
)) {
3105 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
3106 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 483);
3114 { /* Inline model#MClassDef#bound_mtype (var) on <var:MClassDef> */
3115 var5
= var
->attrs
[COLOR_nitc__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var:MClassDef> */
3116 if (unlikely(var5
== NULL
)) {
3117 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3118 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 579);
3127 var6
= nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var_mclass
);
3131 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables (self) on <self:SeparateErasureCompiler> */
3132 var9
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
; /* _class_tables on <self:SeparateErasureCompiler> */
3133 if (unlikely(var9
== NULL
)) {
3134 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables");
3135 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 427);
3143 var10
= ((val
*(*)(val
* self
, val
* p0
))((((long)var7
&3)?class_info
[((long)var7
&3)]:var7
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var7
, var_mclass
); /* [] on <var7:Map[MClass, Array[nullable MClass]]>*/
3145 var_class_table
= var10
;
3147 var11
= nitc___nitc__SeparateErasureCompiler___nitc__abstract_compiler__AbstractCompiler__new_visitor(self
);
3151 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateErasureCompiler> */
3152 var14
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateErasureCompiler> */
3154 RET_LABEL13
:(void)0;
3159 var19
= !var_is_dead
;
3162 if (var_rta
== NULL
) {
3163 var20
= 0; /* is null */
3165 var20
= 1; /* arg is null and recv is not */
3168 { /* Inline kernel#Object#!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
3169 var_other
= ((val
*)NULL
);
3171 var23
= ((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)>*/
3176 RET_LABEL22
:(void)0;
3187 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
3188 var28
= var_rta
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
3189 if (unlikely(var28
== NULL
)) {
3190 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
3191 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 69);
3195 RET_LABEL27
:(void)0;
3199 var29
= core___core__HashSet___core__abstract_collection__Collection__has(var26
, var_mclass
);
3209 var32
= nitc__abstract_compiler___MClassType___MType__is_c_primitive(var_mtype
);
3219 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
3220 var37
= var_mclass
->attrs
[COLOR_nitc__model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
3221 if (unlikely(var37
== NULL
)) {
3222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3223 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 385);
3227 RET_LABEL36
:(void)0;
3230 if (likely(varonce
!=NULL
)) {
3233 var39
= "NativeArray";
3234 var40
= core__flat___NativeString___to_s_full(var39
, 11l, 11l);
3239 { /* Inline kernel#Object#!= (var35,var38) on <var35:String> */
3242 var43
= ((short int(*)(val
* self
, val
* p0
))(var35
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var35
, var_other
); /* == on <var35:String>*/
3247 RET_LABEL42
:(void)0;
3258 if (unlikely(varonce45
==NULL
)) {
3259 var46
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
3260 if (likely(varonce47
!=NULL
)) {
3263 var49
= "/* runtime class ";
3264 var50
= core__flat___NativeString___to_s_full(var49
, 17l, 17l);
3268 ((struct instance_core__NativeArray
*)var46
)->values
[0]=var48
;
3269 if (likely(varonce51
!=NULL
)) {
3273 var54
= core__flat___NativeString___to_s_full(var53
, 3l, 3l);
3277 ((struct instance_core__NativeArray
*)var46
)->values
[2]=var52
;
3282 ((struct instance_core__NativeArray
*)var46
)->values
[1]=var_c_name
;
3284 var55
= ((val
*(*)(val
* self
))(var46
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var46
); /* native_to_s on <var46:NativeArray[String]>*/
3288 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var55
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3290 if (unlikely(varonce56
==NULL
)) {
3291 var57
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
3292 if (likely(varonce58
!=NULL
)) {
3296 var61
= core__flat___NativeString___to_s_full(var60
, 6l, 6l);
3300 ((struct instance_core__NativeArray
*)var57
)->values
[0]=var59
;
3305 ((struct instance_core__NativeArray
*)var57
)->values
[1]=var_c_name
;
3307 var62
= ((val
*(*)(val
* self
))(var57
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var57
); /* native_to_s on <var57:NativeArray[String]>*/
3310 if (unlikely(varonce63
==NULL
)) {
3311 var64
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
3312 if (likely(varonce65
!=NULL
)) {
3315 var67
= "extern const struct class class_";
3316 var68
= core__flat___NativeString___to_s_full(var67
, 32l, 32l);
3320 ((struct instance_core__NativeArray
*)var64
)->values
[0]=var66
;
3321 if (likely(varonce69
!=NULL
)) {
3325 var72
= core__flat___NativeString___to_s_full(var71
, 1l, 1l);
3329 ((struct instance_core__NativeArray
*)var64
)->values
[2]=var70
;
3334 ((struct instance_core__NativeArray
*)var64
)->values
[1]=var_c_name
;
3336 var73
= ((val
*(*)(val
* self
))(var64
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var64
); /* native_to_s on <var64:NativeArray[String]>*/
3340 nitc___nitc__AbstractCompiler___provide_declaration(self
, var62
, var73
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
3342 if (unlikely(varonce74
==NULL
)) {
3343 var75
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
3344 if (likely(varonce76
!=NULL
)) {
3347 var78
= "extern const struct type_table type_table_";
3348 var79
= core__flat___NativeString___to_s_full(var78
, 42l, 42l);
3352 ((struct instance_core__NativeArray
*)var75
)->values
[0]=var77
;
3353 if (likely(varonce80
!=NULL
)) {
3357 var83
= core__flat___NativeString___to_s_full(var82
, 1l, 1l);
3361 ((struct instance_core__NativeArray
*)var75
)->values
[2]=var81
;
3366 ((struct instance_core__NativeArray
*)var75
)->values
[1]=var_c_name
;
3368 var84
= ((val
*(*)(val
* self
))(var75
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var75
); /* native_to_s on <var75:NativeArray[String]>*/
3372 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var84
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3374 if (unlikely(varonce85
==NULL
)) {
3375 var86
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
3376 if (likely(varonce87
!=NULL
)) {
3379 var89
= "const struct class class_";
3380 var90
= core__flat___NativeString___to_s_full(var89
, 25l, 25l);
3384 ((struct instance_core__NativeArray
*)var86
)->values
[0]=var88
;
3385 if (likely(varonce91
!=NULL
)) {
3389 var94
= core__flat___NativeString___to_s_full(var93
, 4l, 4l);
3393 ((struct instance_core__NativeArray
*)var86
)->values
[2]=var92
;
3398 ((struct instance_core__NativeArray
*)var86
)->values
[1]=var_c_name
;
3400 var95
= ((val
*(*)(val
* self
))(var86
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var86
); /* native_to_s on <var86:NativeArray[String]>*/
3404 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var95
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3406 if (unlikely(varonce96
==NULL
)) {
3407 var97
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
3408 if (likely(varonce98
!=NULL
)) {
3412 var101
= core__flat___NativeString___to_s_full(var100
, 1l, 1l);
3416 ((struct instance_core__NativeArray
*)var97
)->values
[1]=var99
;
3422 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids (self) on <self:SeparateErasureCompiler> */
3423 var104
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
; /* _class_ids on <self:SeparateErasureCompiler> */
3424 if (unlikely(var104
== NULL
)) {
3425 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids");
3426 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 84);
3430 RET_LABEL103
:(void)0;
3434 var105
= ((val
*(*)(val
* self
, val
* p0
))((((long)var102
&3)?class_info
[((long)var102
&3)]:var102
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var102
, var_mclass
); /* [] on <var102:Map[MClass, Int]>*/
3436 var107
= (long)(var105
)>>2;
3437 var106
= core__flat___Int___core__abstract_text__Object__to_s(var107
);
3438 ((struct instance_core__NativeArray
*)var97
)->values
[0]=var106
;
3440 var108
= ((val
*(*)(val
* self
))(var97
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var97
); /* native_to_s on <var97:NativeArray[String]>*/
3444 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var108
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3446 if (unlikely(varonce109
==NULL
)) {
3447 var110
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
3448 if (likely(varonce111
!=NULL
)) {
3449 var112
= varonce111
;
3452 var114
= core__flat___NativeString___to_s_full(var113
, 1l, 1l);
3454 varonce111
= var112
;
3456 ((struct instance_core__NativeArray
*)var110
)->values
[0]=var112
;
3457 if (likely(varonce115
!=NULL
)) {
3458 var116
= varonce115
;
3460 var117
= "\", /* class_name_string */";
3461 var118
= core__flat___NativeString___to_s_full(var117
, 26l, 26l);
3463 varonce115
= var116
;
3465 ((struct instance_core__NativeArray
*)var110
)->values
[2]=var116
;
3467 var110
= varonce109
;
3471 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
3472 var121
= var_mclass
->attrs
[COLOR_nitc__model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
3473 if (unlikely(var121
== NULL
)) {
3474 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3475 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 385);
3479 RET_LABEL120
:(void)0;
3482 ((struct instance_core__NativeArray
*)var110
)->values
[1]=var119
;
3484 var122
= ((val
*(*)(val
* self
))(var110
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var110
); /* native_to_s on <var110:NativeArray[String]>*/
3486 varonce109
= var110
;
3488 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var122
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3490 if (unlikely(varonce123
==NULL
)) {
3491 var124
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
3492 if (likely(varonce125
!=NULL
)) {
3493 var126
= varonce125
;
3495 var127
= ", /* box_kind */";
3496 var128
= core__flat___NativeString___to_s_full(var127
, 16l, 16l);
3498 varonce125
= var126
;
3500 ((struct instance_core__NativeArray
*)var124
)->values
[1]=var126
;
3502 var124
= varonce123
;
3506 var129
= nitc___nitc__SeparateCompiler___box_kind_of(self
, var_mclass
);
3508 var130
= core__flat___Int___core__abstract_text__Object__to_s(var129
);
3509 ((struct instance_core__NativeArray
*)var124
)->values
[0]=var130
;
3511 var131
= ((val
*(*)(val
* self
))(var124
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var124
); /* native_to_s on <var124:NativeArray[String]>*/
3513 varonce123
= var124
;
3515 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var131
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3517 if (unlikely(varonce132
==NULL
)) {
3518 var133
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
3519 if (likely(varonce134
!=NULL
)) {
3520 var135
= varonce134
;
3523 var137
= core__flat___NativeString___to_s_full(var136
, 1l, 1l);
3525 varonce134
= var135
;
3527 ((struct instance_core__NativeArray
*)var133
)->values
[1]=var135
;
3529 var133
= varonce132
;
3533 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_colors (self) on <self:SeparateErasureCompiler> */
3534 var140
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
; /* _class_colors on <self:SeparateErasureCompiler> */
3535 if (unlikely(var140
== NULL
)) {
3536 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors");
3537 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 85);
3541 RET_LABEL139
:(void)0;
3545 var141
= ((val
*(*)(val
* self
, val
* p0
))((((long)var138
&3)?class_info
[((long)var138
&3)]:var138
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var138
, var_mclass
); /* [] on <var138:Map[MClass, Int]>*/
3547 var143
= (long)(var141
)>>2;
3548 var142
= core__flat___Int___core__abstract_text__Object__to_s(var143
);
3549 ((struct instance_core__NativeArray
*)var133
)->values
[0]=var142
;
3551 var144
= ((val
*(*)(val
* self
))(var133
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var133
); /* native_to_s on <var133:NativeArray[String]>*/
3553 varonce132
= var133
;
3555 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var144
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3557 var145
= !var_is_dead
;
3560 var146
= nitc___nitc__SeparateErasureCompiler___build_class_vts_table(self
, var_mclass
);
3563 if (unlikely(varonce147
==NULL
)) {
3564 var148
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
3565 if (likely(varonce149
!=NULL
)) {
3566 var150
= varonce149
;
3568 var151
= "vts_table_";
3569 var152
= core__flat___NativeString___to_s_full(var151
, 10l, 10l);
3571 varonce149
= var150
;
3573 ((struct instance_core__NativeArray
*)var148
)->values
[0]=var150
;
3575 var148
= varonce147
;
3578 ((struct instance_core__NativeArray
*)var148
)->values
[1]=var_c_name
;
3580 var153
= ((val
*(*)(val
* self
))(var148
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var148
); /* native_to_s on <var148:NativeArray[String]>*/
3582 varonce147
= var148
;
3584 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v
, var153
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
3586 if (unlikely(varonce154
==NULL
)) {
3587 var155
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
3588 if (likely(varonce156
!=NULL
)) {
3589 var157
= varonce156
;
3591 var158
= "&vts_table_";
3592 var159
= core__flat___NativeString___to_s_full(var158
, 11l, 11l);
3594 varonce156
= var157
;
3596 ((struct instance_core__NativeArray
*)var155
)->values
[0]=var157
;
3597 if (likely(varonce160
!=NULL
)) {
3598 var161
= varonce160
;
3601 var163
= core__flat___NativeString___to_s_full(var162
, 1l, 1l);
3603 varonce160
= var161
;
3605 ((struct instance_core__NativeArray
*)var155
)->values
[2]=var161
;
3607 var155
= varonce154
;
3610 ((struct instance_core__NativeArray
*)var155
)->values
[1]=var_c_name
;
3612 var164
= ((val
*(*)(val
* self
))(var155
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var155
); /* native_to_s on <var155:NativeArray[String]>*/
3614 varonce154
= var155
;
3616 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var164
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3619 if (likely(varonce165
!=NULL
)) {
3620 var166
= varonce165
;
3623 var168
= core__flat___NativeString___to_s_full(var167
, 5l, 5l);
3625 varonce165
= var166
;
3628 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var166
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3631 if (unlikely(varonce169
==NULL
)) {
3632 var170
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
3633 if (likely(varonce171
!=NULL
)) {
3634 var172
= varonce171
;
3636 var173
= "&type_table_";
3637 var174
= core__flat___NativeString___to_s_full(var173
, 12l, 12l);
3639 varonce171
= var172
;
3641 ((struct instance_core__NativeArray
*)var170
)->values
[0]=var172
;
3642 if (likely(varonce175
!=NULL
)) {
3643 var176
= varonce175
;
3646 var178
= core__flat___NativeString___to_s_full(var177
, 1l, 1l);
3648 varonce175
= var176
;
3650 ((struct instance_core__NativeArray
*)var170
)->values
[2]=var176
;
3652 var170
= varonce169
;
3655 ((struct instance_core__NativeArray
*)var170
)->values
[1]=var_c_name
;
3657 var179
= ((val
*(*)(val
* self
))(var170
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var170
); /* native_to_s on <var170:NativeArray[String]>*/
3659 varonce169
= var170
;
3661 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var179
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3663 if (likely(varonce180
!=NULL
)) {
3664 var181
= varonce180
;
3667 var183
= core__flat___NativeString___to_s_full(var182
, 1l, 1l);
3669 varonce180
= var181
;
3672 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var181
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3675 { /* Inline separate_compiler#SeparateCompiler#method_tables (self) on <self:SeparateErasureCompiler> */
3676 var186
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___method_tables
].val
; /* _method_tables on <self:SeparateErasureCompiler> */
3677 if (unlikely(var186
== NULL
)) {
3678 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
3679 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 1067);
3683 RET_LABEL185
:(void)0;
3687 var187
= ((val
*(*)(val
* self
, val
* p0
))((((long)var184
&3)?class_info
[((long)var184
&3)]:var184
->class)->vft
[COLOR_core__abstract_collection__MapRead__get_or_null
]))(var184
, var_mclass
); /* get_or_null on <var184:Map[MClass, Array[nullable MPropDef]]>*/
3690 if (var_vft
== NULL
) {
3691 var188
= 0; /* is null */
3693 var188
= 1; /* arg is null and recv is not */
3696 { /* Inline kernel#Object#!= (var_vft,((val*)NULL)) on <var_vft:nullable Array[nullable MPropDef]> */
3697 var_other
= ((val
*)NULL
);
3699 var191
= ((short int(*)(val
* self
, val
* p0
))(var_vft
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_vft
, var_other
); /* == on <var_vft:nullable Array[nullable MPropDef](Array[nullable MPropDef])>*/
3704 RET_LABEL190
:(void)0;
3711 { /* Inline array#AbstractArrayRead#length (var_vft) on <var_vft:nullable Array[nullable MPropDef](Array[nullable MPropDef])> */
3712 var195
= var_vft
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_vft:nullable Array[nullable MPropDef](Array[nullable MPropDef])> */
3714 RET_LABEL194
:(void)0;
3720 { /* Inline kernel#Int#< (var_i,var_196) on <var_i:Int> */
3721 /* Covariant cast for argument 0 (i) <var_196:Int> isa OTHER */
3722 /* <var_196:Int> isa OTHER */
3723 var199
= 1; /* easy <var_196:Int> isa OTHER*/
3724 if (unlikely(!var199
)) {
3725 var_class_name
= type_core__Int
.name
;
3726 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3727 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
3730 var200
= var_i
< var_196
;
3733 RET_LABEL198
:(void)0;
3741 var201
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_vft
, var_i
);
3743 var_mpropdef
= var201
;
3744 if (var_mpropdef
== NULL
) {
3745 var202
= 1; /* is null */
3747 var202
= 0; /* arg is null but recv is not */
3750 { /* Inline kernel#Object#== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MPropDef> */
3751 var_other205
= ((val
*)NULL
);
3753 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other205) on <var_mpropdef:nullable MPropDef(MPropDef)> */
3754 var208
= var_mpropdef
== var_other205
;
3757 RET_LABEL207
:(void)0;
3762 RET_LABEL204
:(void)0;
3767 if (likely(varonce209
!=NULL
)) {
3768 var210
= varonce209
;
3770 var211
= "NULL, /* empty */";
3771 var212
= core__flat___NativeString___to_s_full(var211
, 17l, 17l);
3773 varonce209
= var210
;
3776 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var210
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3779 /* <var_mpropdef:nullable MPropDef(MPropDef)> isa MMethodDef */
3780 cltype214
= type_nitc__MMethodDef
.color
;
3781 idtype215
= type_nitc__MMethodDef
.id
;
3782 if(cltype214
>= var_mpropdef
->type
->table_size
) {
3785 var213
= var_mpropdef
->type
->type_table
[cltype214
] == idtype215
;
3787 if (unlikely(!var213
)) {
3788 PRINT_ERROR("Runtime error: %s", "Assert failed");
3789 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 237);
3792 if (var_rta
== NULL
) {
3793 var217
= 0; /* is null */
3795 var217
= 1; /* arg is null and recv is not */
3798 { /* Inline kernel#Object#!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
3799 var_other
= ((val
*)NULL
);
3801 var220
= ((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)>*/
3806 RET_LABEL219
:(void)0;
3813 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
3814 var225
= var_rta
->attrs
[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
3815 if (unlikely(var225
== NULL
)) {
3816 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
3817 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis
, 79);
3821 RET_LABEL224
:(void)0;
3825 var226
= core___core__HashSet___core__abstract_collection__Collection__has(var223
, var_mpropdef
);
3833 if (unlikely(varonce228
==NULL
)) {
3834 var229
= NEW_core__NativeArray(7l, &type_core__NativeArray__core__String
);
3835 if (likely(varonce230
!=NULL
)) {
3836 var231
= varonce230
;
3838 var232
= "NULL, /* DEAD ";
3839 var233
= core__flat___NativeString___to_s_full(var232
, 14l, 14l);
3841 varonce230
= var231
;
3843 ((struct instance_core__NativeArray
*)var229
)->values
[0]=var231
;
3844 if (likely(varonce234
!=NULL
)) {
3845 var235
= varonce234
;
3848 var237
= core__flat___NativeString___to_s_full(var236
, 1l, 1l);
3850 varonce234
= var235
;
3852 ((struct instance_core__NativeArray
*)var229
)->values
[2]=var235
;
3853 if (likely(varonce238
!=NULL
)) {
3854 var239
= varonce238
;
3857 var241
= core__flat___NativeString___to_s_full(var240
, 1l, 1l);
3859 varonce238
= var239
;
3861 ((struct instance_core__NativeArray
*)var229
)->values
[4]=var239
;
3862 if (likely(varonce242
!=NULL
)) {
3863 var243
= varonce242
;
3866 var245
= core__flat___NativeString___to_s_full(var244
, 3l, 3l);
3868 varonce242
= var243
;
3870 ((struct instance_core__NativeArray
*)var229
)->values
[6]=var243
;
3872 var229
= varonce228
;
3876 { /* Inline model#MClass#intro_mmodule (var_mclass) on <var_mclass:MClass> */
3877 var248
= var_mclass
->attrs
[COLOR_nitc__model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var_mclass:MClass> */
3878 if (unlikely(var248
== NULL
)) {
3879 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
3880 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 380);
3884 RET_LABEL247
:(void)0;
3888 var249
= ((val
*(*)(val
* self
))(var246
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var246
); /* to_s on <var246:MModule>*/
3890 ((struct instance_core__NativeArray
*)var229
)->values
[1]=var249
;
3892 var250
= ((val
*(*)(val
* self
))(var_mclass
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mclass
); /* to_s on <var_mclass:MClass>*/
3894 ((struct instance_core__NativeArray
*)var229
)->values
[3]=var250
;
3896 var251
= ((val
*(*)(val
* self
))(var_mpropdef
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mpropdef
); /* to_s on <var_mpropdef:nullable MPropDef(MMethodDef)>*/
3898 ((struct instance_core__NativeArray
*)var229
)->values
[5]=var251
;
3900 var252
= ((val
*(*)(val
* self
))(var229
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var229
); /* native_to_s on <var229:NativeArray[String]>*/
3902 varonce228
= var229
;
3904 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var252
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3906 goto BREAK_label253
;
3910 var254
= nitc__separate_compiler___MMethodDef___virtual_runtime_function(var_mpropdef
);
3914 var255
= nitc___nitc__AbstractRuntimeFunction___c_name(var_rf
);
3917 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v
, var255
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
3919 if (unlikely(varonce256
==NULL
)) {
3920 var257
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
3921 if (likely(varonce258
!=NULL
)) {
3922 var259
= varonce258
;
3924 var260
= "(nitmethod_t)";
3925 var261
= core__flat___NativeString___to_s_full(var260
, 13l, 13l);
3927 varonce258
= var259
;
3929 ((struct instance_core__NativeArray
*)var257
)->values
[0]=var259
;
3930 if (likely(varonce262
!=NULL
)) {
3931 var263
= varonce262
;
3933 var264
= ", /* pointer to ";
3934 var265
= core__flat___NativeString___to_s_full(var264
, 16l, 16l);
3936 varonce262
= var263
;
3938 ((struct instance_core__NativeArray
*)var257
)->values
[2]=var263
;
3939 if (likely(varonce266
!=NULL
)) {
3940 var267
= varonce266
;
3943 var269
= core__flat___NativeString___to_s_full(var268
, 3l, 3l);
3945 varonce266
= var267
;
3947 ((struct instance_core__NativeArray
*)var257
)->values
[4]=var267
;
3949 var257
= varonce256
;
3953 var270
= nitc___nitc__AbstractRuntimeFunction___c_name(var_rf
);
3955 ((struct instance_core__NativeArray
*)var257
)->values
[1]=var270
;
3957 var271
= nitc___nitc__MPropDef___nitc__model_base__MEntity__full_name(var_mpropdef
);
3959 ((struct instance_core__NativeArray
*)var257
)->values
[3]=var271
;
3961 var272
= ((val
*(*)(val
* self
))(var257
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var257
); /* native_to_s on <var257:NativeArray[String]>*/
3963 varonce256
= var257
;
3965 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var272
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3968 BREAK_label253
: (void)0;
3970 var273
= core___core__Int___Discrete__successor(var_i
, 1l);
3974 BREAK_label
: (void)0;
3977 if (likely(varonce274
!=NULL
)) {
3978 var275
= varonce274
;
3981 var277
= core__flat___NativeString___to_s_full(var276
, 1l, 1l);
3983 varonce274
= var275
;
3986 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var275
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3990 if (likely(varonce278
!=NULL
)) {
3991 var279
= varonce278
;
3994 var281
= core__flat___NativeString___to_s_full(var280
, 2l, 2l);
3996 varonce278
= var279
;
3999 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var279
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4001 if (unlikely(varonce282
==NULL
)) {
4002 var283
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
4003 if (likely(varonce284
!=NULL
)) {
4004 var285
= varonce284
;
4006 var286
= "const struct type_table type_table_";
4007 var287
= core__flat___NativeString___to_s_full(var286
, 35l, 35l);
4009 varonce284
= var285
;
4011 ((struct instance_core__NativeArray
*)var283
)->values
[0]=var285
;
4012 if (likely(varonce288
!=NULL
)) {
4013 var289
= varonce288
;
4016 var291
= core__flat___NativeString___to_s_full(var290
, 4l, 4l);
4018 varonce288
= var289
;
4020 ((struct instance_core__NativeArray
*)var283
)->values
[2]=var289
;
4022 var283
= varonce282
;
4025 ((struct instance_core__NativeArray
*)var283
)->values
[1]=var_c_name
;
4027 var292
= ((val
*(*)(val
* self
))(var283
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var283
); /* native_to_s on <var283:NativeArray[String]>*/
4029 varonce282
= var283
;
4031 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var292
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4033 if (unlikely(varonce293
==NULL
)) {
4034 var294
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
4035 if (likely(varonce295
!=NULL
)) {
4036 var296
= varonce295
;
4039 var298
= core__flat___NativeString___to_s_full(var297
, 1l, 1l);
4041 varonce295
= var296
;
4043 ((struct instance_core__NativeArray
*)var294
)->values
[1]=var296
;
4045 var294
= varonce293
;
4049 { /* Inline array#AbstractArrayRead#length (var_class_table) on <var_class_table:Array[nullable MClass]> */
4050 var301
= var_class_table
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_class_table:Array[nullable MClass]> */
4052 RET_LABEL300
:(void)0;
4055 var302
= core__flat___Int___core__abstract_text__Object__to_s(var299
);
4056 ((struct instance_core__NativeArray
*)var294
)->values
[0]=var302
;
4058 var303
= ((val
*(*)(val
* self
))(var294
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var294
); /* native_to_s on <var294:NativeArray[String]>*/
4060 varonce293
= var294
;
4062 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var303
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4064 if (likely(varonce304
!=NULL
)) {
4065 var305
= varonce304
;
4068 var307
= core__flat___NativeString___to_s_full(var306
, 1l, 1l);
4070 varonce304
= var305
;
4073 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var305
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4075 var_308
= var_class_table
;
4077 var309
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_308
);
4082 var311
= ((short int(*)(val
* self
))((((long)var_310
&3)?class_info
[((long)var_310
&3)]:var_310
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_310
); /* is_ok on <var_310:IndexedIterator[nullable MClass]>*/
4086 goto BREAK_label312
;
4089 var313
= ((val
*(*)(val
* self
))((((long)var_310
&3)?class_info
[((long)var_310
&3)]:var_310
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_310
); /* item on <var_310:IndexedIterator[nullable MClass]>*/
4091 var_msuper
= var313
;
4092 if (var_msuper
== NULL
) {
4093 var314
= 1; /* is null */
4095 var314
= 0; /* arg is null but recv is not */
4098 { /* Inline kernel#Object#== (var_msuper,((val*)NULL)) on <var_msuper:nullable MClass> */
4099 var_other205
= ((val
*)NULL
);
4101 { /* Inline kernel#Object#is_same_instance (var_msuper,var_other205) on <var_msuper:nullable MClass(MClass)> */
4102 var319
= var_msuper
== var_other205
;
4105 RET_LABEL318
:(void)0;
4110 RET_LABEL316
:(void)0;
4115 if (likely(varonce320
!=NULL
)) {
4116 var321
= varonce320
;
4118 var322
= "-1, /* empty */";
4119 var323
= core__flat___NativeString___to_s_full(var322
, 15l, 15l);
4121 varonce320
= var321
;
4124 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var321
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4127 if (unlikely(varonce324
==NULL
)) {
4128 var325
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
4129 if (likely(varonce326
!=NULL
)) {
4130 var327
= varonce326
;
4133 var329
= core__flat___NativeString___to_s_full(var328
, 5l, 5l);
4135 varonce326
= var327
;
4137 ((struct instance_core__NativeArray
*)var325
)->values
[1]=var327
;
4138 if (likely(varonce330
!=NULL
)) {
4139 var331
= varonce330
;
4142 var333
= core__flat___NativeString___to_s_full(var332
, 3l, 3l);
4144 varonce330
= var331
;
4146 ((struct instance_core__NativeArray
*)var325
)->values
[3]=var331
;
4148 var325
= varonce324
;
4152 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids (self) on <self:SeparateErasureCompiler> */
4153 var336
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
; /* _class_ids on <self:SeparateErasureCompiler> */
4154 if (unlikely(var336
== NULL
)) {
4155 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids");
4156 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 84);
4160 RET_LABEL335
:(void)0;
4164 var337
= ((val
*(*)(val
* self
, val
* p0
))((((long)var334
&3)?class_info
[((long)var334
&3)]:var334
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var334
, var_msuper
); /* [] on <var334:Map[MClass, Int]>*/
4166 var339
= (long)(var337
)>>2;
4167 var338
= core__flat___Int___core__abstract_text__Object__to_s(var339
);
4168 ((struct instance_core__NativeArray
*)var325
)->values
[0]=var338
;
4170 var340
= ((val
*(*)(val
* self
))(var_msuper
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_msuper
); /* to_s on <var_msuper:nullable MClass(MClass)>*/
4172 ((struct instance_core__NativeArray
*)var325
)->values
[2]=var340
;
4174 var341
= ((val
*(*)(val
* self
))(var325
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var325
); /* native_to_s on <var325:NativeArray[String]>*/
4176 varonce324
= var325
;
4178 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var341
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4182 ((void(*)(val
* self
))((((long)var_310
&3)?class_info
[((long)var_310
&3)]:var_310
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_310
); /* next on <var_310:IndexedIterator[nullable MClass]>*/
4185 BREAK_label312
: (void)0;
4187 ((void(*)(val
* self
))((((long)var_310
&3)?class_info
[((long)var_310
&3)]:var_310
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_310
); /* finish on <var_310:IndexedIterator[nullable MClass]>*/
4189 if (likely(varonce342
!=NULL
)) {
4190 var343
= varonce342
;
4193 var345
= core__flat___NativeString___to_s_full(var344
, 1l, 1l);
4195 varonce342
= var343
;
4198 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var343
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4200 if (likely(varonce346
!=NULL
)) {
4201 var347
= varonce346
;
4204 var349
= core__flat___NativeString___to_s_full(var348
, 2l, 2l);
4206 varonce346
= var347
;
4209 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var347
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4212 var351
= nitc__abstract_compiler___MClassType___MType__is_c_primitive(var_mtype
);
4219 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
4220 var355
= var_mtype
->attrs
[COLOR_nitc__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
4221 if (unlikely(var355
== NULL
)) {
4222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4223 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1163);
4227 RET_LABEL354
:(void)0;
4231 { /* Inline model#MClass#name (var353) on <var353:MClass> */
4232 var358
= var353
->attrs
[COLOR_nitc__model__MClass___name
].val
; /* _name on <var353:MClass> */
4233 if (unlikely(var358
== NULL
)) {
4234 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4235 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 385);
4239 RET_LABEL357
:(void)0;
4242 if (likely(varonce359
!=NULL
)) {
4243 var360
= varonce359
;
4246 var362
= core__flat___NativeString___to_s_full(var361
, 7l, 7l);
4248 varonce359
= var360
;
4251 var363
= ((short int(*)(val
* self
, val
* p0
))(var356
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var356
, var360
); /* == on <var356:String>*/
4257 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
4258 var366
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
4259 if (unlikely(var366
== NULL
)) {
4260 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4261 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
4265 RET_LABEL365
:(void)0;
4268 if (unlikely(varonce367
==NULL
)) {
4269 var368
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
4270 if (likely(varonce369
!=NULL
)) {
4271 var370
= varonce369
;
4273 var371
= "struct instance_";
4274 var372
= core__flat___NativeString___to_s_full(var371
, 16l, 16l);
4276 varonce369
= var370
;
4278 ((struct instance_core__NativeArray
*)var368
)->values
[0]=var370
;
4279 if (likely(varonce373
!=NULL
)) {
4280 var374
= varonce373
;
4283 var376
= core__flat___NativeString___to_s_full(var375
, 2l, 2l);
4285 varonce373
= var374
;
4287 ((struct instance_core__NativeArray
*)var368
)->values
[2]=var374
;
4289 var368
= varonce367
;
4292 ((struct instance_core__NativeArray
*)var368
)->values
[1]=var_c_name
;
4294 var377
= ((val
*(*)(val
* self
))(var368
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var368
); /* native_to_s on <var368:NativeArray[String]>*/
4296 varonce367
= var368
;
4298 nitc___nitc__CodeWriter___add_decl(var364
, var377
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var364:CodeWriter>*/
4301 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
4302 var380
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
4303 if (unlikely(var380
== NULL
)) {
4304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4305 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
4309 RET_LABEL379
:(void)0;
4312 if (likely(varonce381
!=NULL
)) {
4313 var382
= varonce381
;
4315 var383
= "const struct class *class;";
4316 var384
= core__flat___NativeString___to_s_full(var383
, 26l, 26l);
4318 varonce381
= var382
;
4321 nitc___nitc__CodeWriter___add_decl(var378
, var382
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var378:CodeWriter>*/
4324 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
4325 var387
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
4326 if (unlikely(var387
== NULL
)) {
4327 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4328 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
4332 RET_LABEL386
:(void)0;
4335 if (unlikely(varonce388
==NULL
)) {
4336 var389
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
4337 if (likely(varonce390
!=NULL
)) {
4338 var391
= varonce390
;
4341 var393
= core__flat___NativeString___to_s_full(var392
, 7l, 7l);
4343 varonce390
= var391
;
4345 ((struct instance_core__NativeArray
*)var389
)->values
[1]=var391
;
4347 var389
= varonce388
;
4351 var394
= nitc__abstract_compiler___MClassType___MType__ctype(var_mtype
);
4353 ((struct instance_core__NativeArray
*)var389
)->values
[0]=var394
;
4355 var395
= ((val
*(*)(val
* self
))(var389
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var389
); /* native_to_s on <var389:NativeArray[String]>*/
4357 varonce388
= var389
;
4359 nitc___nitc__CodeWriter___add_decl(var385
, var395
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var385:CodeWriter>*/
4362 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
4363 var398
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
4364 if (unlikely(var398
== NULL
)) {
4365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4366 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
4370 RET_LABEL397
:(void)0;
4373 if (likely(varonce399
!=NULL
)) {
4374 var400
= varonce399
;
4377 var402
= core__flat___NativeString___to_s_full(var401
, 2l, 2l);
4379 varonce399
= var400
;
4382 nitc___nitc__CodeWriter___add_decl(var396
, var400
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var396:CodeWriter>*/
4384 if (unlikely(varonce403
==NULL
)) {
4385 var404
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
4386 if (likely(varonce405
!=NULL
)) {
4387 var406
= varonce405
;
4390 var408
= core__flat___NativeString___to_s_full(var407
, 4l, 4l);
4392 varonce405
= var406
;
4394 ((struct instance_core__NativeArray
*)var404
)->values
[0]=var406
;
4396 var404
= varonce403
;
4399 ((struct instance_core__NativeArray
*)var404
)->values
[1]=var_c_name
;
4401 var409
= ((val
*(*)(val
* self
))(var404
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var404
); /* native_to_s on <var404:NativeArray[String]>*/
4403 varonce403
= var404
;
4404 if (unlikely(varonce410
==NULL
)) {
4405 var411
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
4406 if (likely(varonce412
!=NULL
)) {
4407 var413
= varonce412
;
4409 var414
= "val* BOX_";
4410 var415
= core__flat___NativeString___to_s_full(var414
, 9l, 9l);
4412 varonce412
= var413
;
4414 ((struct instance_core__NativeArray
*)var411
)->values
[0]=var413
;
4415 if (likely(varonce416
!=NULL
)) {
4416 var417
= varonce416
;
4419 var419
= core__flat___NativeString___to_s_full(var418
, 1l, 1l);
4421 varonce416
= var417
;
4423 ((struct instance_core__NativeArray
*)var411
)->values
[2]=var417
;
4424 if (likely(varonce420
!=NULL
)) {
4425 var421
= varonce420
;
4428 var423
= core__flat___NativeString___to_s_full(var422
, 2l, 2l);
4430 varonce420
= var421
;
4432 ((struct instance_core__NativeArray
*)var411
)->values
[4]=var421
;
4434 var411
= varonce410
;
4437 ((struct instance_core__NativeArray
*)var411
)->values
[1]=var_c_name
;
4439 var424
= nitc__abstract_compiler___MClassType___MType__ctype_extern(var_mtype
);
4441 ((struct instance_core__NativeArray
*)var411
)->values
[3]=var424
;
4443 var425
= ((val
*(*)(val
* self
))(var411
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var411
); /* native_to_s on <var411:NativeArray[String]>*/
4445 varonce410
= var411
;
4447 nitc___nitc__AbstractCompiler___provide_declaration(self
, var409
, var425
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
4449 if (unlikely(varonce426
==NULL
)) {
4450 var427
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
4451 if (likely(varonce428
!=NULL
)) {
4452 var429
= varonce428
;
4454 var430
= "/* allocate ";
4455 var431
= core__flat___NativeString___to_s_full(var430
, 12l, 12l);
4457 varonce428
= var429
;
4459 ((struct instance_core__NativeArray
*)var427
)->values
[0]=var429
;
4460 if (likely(varonce432
!=NULL
)) {
4461 var433
= varonce432
;
4464 var435
= core__flat___NativeString___to_s_full(var434
, 3l, 3l);
4466 varonce432
= var433
;
4468 ((struct instance_core__NativeArray
*)var427
)->values
[2]=var433
;
4470 var427
= varonce426
;
4474 var436
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MClassType>*/
4476 ((struct instance_core__NativeArray
*)var427
)->values
[1]=var436
;
4478 var437
= ((val
*(*)(val
* self
))(var427
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var427
); /* native_to_s on <var427:NativeArray[String]>*/
4480 varonce426
= var427
;
4482 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var437
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4484 if (unlikely(varonce438
==NULL
)) {
4485 var439
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
4486 if (likely(varonce440
!=NULL
)) {
4487 var441
= varonce440
;
4489 var442
= "val* BOX_";
4490 var443
= core__flat___NativeString___to_s_full(var442
, 9l, 9l);
4492 varonce440
= var441
;
4494 ((struct instance_core__NativeArray
*)var439
)->values
[0]=var441
;
4495 if (likely(varonce444
!=NULL
)) {
4496 var445
= varonce444
;
4499 var447
= core__flat___NativeString___to_s_full(var446
, 1l, 1l);
4501 varonce444
= var445
;
4503 ((struct instance_core__NativeArray
*)var439
)->values
[2]=var445
;
4504 if (likely(varonce448
!=NULL
)) {
4505 var449
= varonce448
;
4507 var450
= " value) {";
4508 var451
= core__flat___NativeString___to_s_full(var450
, 9l, 9l);
4510 varonce448
= var449
;
4512 ((struct instance_core__NativeArray
*)var439
)->values
[4]=var449
;
4514 var439
= varonce438
;
4518 var452
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nitc__model_base__MEntity__c_name
]))(var_mtype
); /* c_name on <var_mtype:MClassType>*/
4520 ((struct instance_core__NativeArray
*)var439
)->values
[1]=var452
;
4522 var453
= nitc__abstract_compiler___MClassType___MType__ctype_extern(var_mtype
);
4524 ((struct instance_core__NativeArray
*)var439
)->values
[3]=var453
;
4526 var454
= ((val
*(*)(val
* self
))(var439
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var439
); /* native_to_s on <var439:NativeArray[String]>*/
4528 varonce438
= var439
;
4530 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var454
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4532 if (unlikely(varonce455
==NULL
)) {
4533 var456
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
4534 if (likely(varonce457
!=NULL
)) {
4535 var458
= varonce457
;
4537 var459
= "struct instance_";
4538 var460
= core__flat___NativeString___to_s_full(var459
, 16l, 16l);
4540 varonce457
= var458
;
4542 ((struct instance_core__NativeArray
*)var456
)->values
[0]=var458
;
4543 if (likely(varonce461
!=NULL
)) {
4544 var462
= varonce461
;
4546 var463
= "*res = nit_alloc(sizeof(struct instance_";
4547 var464
= core__flat___NativeString___to_s_full(var463
, 40l, 40l);
4549 varonce461
= var462
;
4551 ((struct instance_core__NativeArray
*)var456
)->values
[2]=var462
;
4552 if (likely(varonce465
!=NULL
)) {
4553 var466
= varonce465
;
4556 var468
= core__flat___NativeString___to_s_full(var467
, 3l, 3l);
4558 varonce465
= var466
;
4560 ((struct instance_core__NativeArray
*)var456
)->values
[4]=var466
;
4562 var456
= varonce455
;
4565 ((struct instance_core__NativeArray
*)var456
)->values
[1]=var_c_name
;
4566 ((struct instance_core__NativeArray
*)var456
)->values
[3]=var_c_name
;
4568 var469
= ((val
*(*)(val
* self
))(var456
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var456
); /* native_to_s on <var456:NativeArray[String]>*/
4570 varonce455
= var456
;
4572 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var469
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4574 if (unlikely(varonce470
==NULL
)) {
4575 var471
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
4576 if (likely(varonce472
!=NULL
)) {
4577 var473
= varonce472
;
4580 var475
= core__flat___NativeString___to_s_full(var474
, 6l, 6l);
4582 varonce472
= var473
;
4584 ((struct instance_core__NativeArray
*)var471
)->values
[0]=var473
;
4586 var471
= varonce470
;
4589 ((struct instance_core__NativeArray
*)var471
)->values
[1]=var_c_name
;
4591 var476
= ((val
*(*)(val
* self
))(var471
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var471
); /* native_to_s on <var471:NativeArray[String]>*/
4593 varonce470
= var471
;
4595 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v
, var476
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
4597 if (unlikely(varonce477
==NULL
)) {
4598 var478
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
4599 if (likely(varonce479
!=NULL
)) {
4600 var480
= varonce479
;
4602 var481
= "res->class = &class_";
4603 var482
= core__flat___NativeString___to_s_full(var481
, 20l, 20l);
4605 varonce479
= var480
;
4607 ((struct instance_core__NativeArray
*)var478
)->values
[0]=var480
;
4608 if (likely(varonce483
!=NULL
)) {
4609 var484
= varonce483
;
4612 var486
= core__flat___NativeString___to_s_full(var485
, 1l, 1l);
4614 varonce483
= var484
;
4616 ((struct instance_core__NativeArray
*)var478
)->values
[2]=var484
;
4618 var478
= varonce477
;
4621 ((struct instance_core__NativeArray
*)var478
)->values
[1]=var_c_name
;
4623 var487
= ((val
*(*)(val
* self
))(var478
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var478
); /* native_to_s on <var478:NativeArray[String]>*/
4625 varonce477
= var478
;
4627 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var487
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4629 if (likely(varonce488
!=NULL
)) {
4630 var489
= varonce488
;
4632 var490
= "res->value = value;";
4633 var491
= core__flat___NativeString___to_s_full(var490
, 19l, 19l);
4635 varonce488
= var489
;
4638 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var489
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4640 if (likely(varonce492
!=NULL
)) {
4641 var493
= varonce492
;
4643 var494
= "return (val*)res;";
4644 var495
= core__flat___NativeString___to_s_full(var494
, 17l, 17l);
4646 varonce492
= var493
;
4649 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var493
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4651 if (likely(varonce496
!=NULL
)) {
4652 var497
= varonce496
;
4655 var499
= core__flat___NativeString___to_s_full(var498
, 1l, 1l);
4657 varonce496
= var497
;
4660 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var497
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4663 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
4664 var502
= var_mtype
->attrs
[COLOR_nitc__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
4665 if (unlikely(var502
== NULL
)) {
4666 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4667 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1163);
4671 RET_LABEL501
:(void)0;
4675 { /* Inline model#MClass#name (var500) on <var500:MClass> */
4676 var505
= var500
->attrs
[COLOR_nitc__model__MClass___name
].val
; /* _name on <var500:MClass> */
4677 if (unlikely(var505
== NULL
)) {
4678 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4679 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 385);
4683 RET_LABEL504
:(void)0;
4686 if (likely(varonce506
!=NULL
)) {
4687 var507
= varonce506
;
4690 var509
= core__flat___NativeString___to_s_full(var508
, 7l, 7l);
4692 varonce506
= var507
;
4695 { /* Inline kernel#Object#!= (var503,var507) on <var503:String> */
4698 var512
= ((short int(*)(val
* self
, val
* p0
))(var503
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var503
, var_other
); /* == on <var503:String>*/
4703 RET_LABEL511
:(void)0;
4711 var514
= nitc___nitc__SeparateErasureCompiler___nitc__abstract_compiler__AbstractCompiler__new_visitor(self
);
4714 if (unlikely(varonce515
==NULL
)) {
4715 var516
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
4716 if (likely(varonce517
!=NULL
)) {
4717 var518
= varonce517
;
4720 var520
= core__flat___NativeString___to_s_full(var519
, 4l, 4l);
4722 varonce517
= var518
;
4724 ((struct instance_core__NativeArray
*)var516
)->values
[0]=var518
;
4726 var516
= varonce515
;
4729 ((struct instance_core__NativeArray
*)var516
)->values
[1]=var_c_name
;
4731 var521
= ((val
*(*)(val
* self
))(var516
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var516
); /* native_to_s on <var516:NativeArray[String]>*/
4733 varonce515
= var516
;
4734 if (unlikely(varonce522
==NULL
)) {
4735 var523
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
4736 if (likely(varonce524
!=NULL
)) {
4737 var525
= varonce524
;
4740 var527
= core__flat___NativeString___to_s_full(var526
, 5l, 5l);
4742 varonce524
= var525
;
4744 ((struct instance_core__NativeArray
*)var523
)->values
[1]=var525
;
4745 if (likely(varonce528
!=NULL
)) {
4746 var529
= varonce528
;
4749 var531
= core__flat___NativeString___to_s_full(var530
, 3l, 3l);
4751 varonce528
= var529
;
4753 ((struct instance_core__NativeArray
*)var523
)->values
[3]=var529
;
4755 var523
= varonce522
;
4759 var532
= nitc__abstract_compiler___MClassType___MType__ctype(var_mtype
);
4761 ((struct instance_core__NativeArray
*)var523
)->values
[0]=var532
;
4762 ((struct instance_core__NativeArray
*)var523
)->values
[2]=var_c_name
;
4764 var533
= ((val
*(*)(val
* self
))(var523
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var523
); /* native_to_s on <var523:NativeArray[String]>*/
4766 varonce522
= var523
;
4768 nitc___nitc__AbstractCompiler___provide_declaration(self
, var521
, var533
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
4770 if (unlikely(varonce534
==NULL
)) {
4771 var535
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
4772 if (likely(varonce536
!=NULL
)) {
4773 var537
= varonce536
;
4775 var538
= "/* allocate ";
4776 var539
= core__flat___NativeString___to_s_full(var538
, 12l, 12l);
4778 varonce536
= var537
;
4780 ((struct instance_core__NativeArray
*)var535
)->values
[0]=var537
;
4781 if (likely(varonce540
!=NULL
)) {
4782 var541
= varonce540
;
4785 var543
= core__flat___NativeString___to_s_full(var542
, 3l, 3l);
4787 varonce540
= var541
;
4789 ((struct instance_core__NativeArray
*)var535
)->values
[2]=var541
;
4791 var535
= varonce534
;
4795 var544
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MClassType>*/
4797 ((struct instance_core__NativeArray
*)var535
)->values
[1]=var544
;
4799 var545
= ((val
*(*)(val
* self
))(var535
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var535
); /* native_to_s on <var535:NativeArray[String]>*/
4801 varonce534
= var535
;
4803 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var545
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4805 if (unlikely(varonce546
==NULL
)) {
4806 var547
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
4807 if (likely(varonce548
!=NULL
)) {
4808 var549
= varonce548
;
4811 var551
= core__flat___NativeString___to_s_full(var550
, 5l, 5l);
4813 varonce548
= var549
;
4815 ((struct instance_core__NativeArray
*)var547
)->values
[1]=var549
;
4816 if (likely(varonce552
!=NULL
)) {
4817 var553
= varonce552
;
4820 var555
= core__flat___NativeString___to_s_full(var554
, 4l, 4l);
4822 varonce552
= var553
;
4824 ((struct instance_core__NativeArray
*)var547
)->values
[3]=var553
;
4826 var547
= varonce546
;
4830 var556
= nitc__abstract_compiler___MClassType___MType__ctype(var_mtype
);
4832 ((struct instance_core__NativeArray
*)var547
)->values
[0]=var556
;
4833 ((struct instance_core__NativeArray
*)var547
)->values
[2]=var_c_name
;
4835 var557
= ((val
*(*)(val
* self
))(var547
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var547
); /* native_to_s on <var547:NativeArray[String]>*/
4837 varonce546
= var547
;
4839 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var557
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4842 if (unlikely(varonce558
==NULL
)) {
4843 var559
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
4844 if (likely(varonce560
!=NULL
)) {
4845 var561
= varonce560
;
4847 var562
= " is DEAD";
4848 var563
= core__flat___NativeString___to_s_full(var562
, 8l, 8l);
4850 varonce560
= var561
;
4852 ((struct instance_core__NativeArray
*)var559
)->values
[1]=var561
;
4854 var559
= varonce558
;
4858 var564
= ((val
*(*)(val
* self
))(var_mclass
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mclass
); /* to_s on <var_mclass:MClass>*/
4860 ((struct instance_core__NativeArray
*)var559
)->values
[0]=var564
;
4862 var565
= ((val
*(*)(val
* self
))(var559
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var559
); /* native_to_s on <var559:NativeArray[String]>*/
4864 varonce558
= var559
;
4866 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v
, var565
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:SeparateCompilerVisitor>*/
4869 if (likely(varonce566
!=NULL
)) {
4870 var567
= varonce566
;
4873 var569
= core__flat___NativeString___to_s_full(var568
, 4l, 4l);
4875 varonce566
= var567
;
4878 var570
= nitc___nitc__AbstractCompilerVisitor___new_named_var(var_v
, var_mtype
, var567
);
4882 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res,1) on <var_res:RuntimeVariable> */
4883 var_res
->attrs
[COLOR_nitc__abstract_compiler__RuntimeVariable___is_exact
].s
= 1; /* _is_exact on <var_res:RuntimeVariable> */
4884 RET_LABEL571
:(void)0;
4887 if (unlikely(varonce572
==NULL
)) {
4888 var573
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
4889 if (likely(varonce574
!=NULL
)) {
4890 var575
= varonce574
;
4892 var576
= " = nit_alloc(sizeof(struct instance_";
4893 var577
= core__flat___NativeString___to_s_full(var576
, 36l, 36l);
4895 varonce574
= var575
;
4897 ((struct instance_core__NativeArray
*)var573
)->values
[1]=var575
;
4898 if (likely(varonce578
!=NULL
)) {
4899 var579
= varonce578
;
4902 var581
= core__flat___NativeString___to_s_full(var580
, 3l, 3l);
4904 varonce578
= var579
;
4906 ((struct instance_core__NativeArray
*)var573
)->values
[3]=var579
;
4908 var573
= varonce572
;
4912 var582
= ((val
*(*)(val
* self
))(var_res
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_res
); /* to_s on <var_res:RuntimeVariable>*/
4914 ((struct instance_core__NativeArray
*)var573
)->values
[0]=var582
;
4916 var583
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nitc__model_base__MEntity__c_name
]))(var_mtype
); /* c_name on <var_mtype:MClassType>*/
4918 ((struct instance_core__NativeArray
*)var573
)->values
[2]=var583
;
4920 var584
= ((val
*(*)(val
* self
))(var573
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var573
); /* native_to_s on <var573:NativeArray[String]>*/
4922 varonce572
= var573
;
4924 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var584
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4926 if (unlikely(varonce585
==NULL
)) {
4927 var586
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
4928 if (likely(varonce587
!=NULL
)) {
4929 var588
= varonce587
;
4932 var590
= core__flat___NativeString___to_s_full(var589
, 6l, 6l);
4934 varonce587
= var588
;
4936 ((struct instance_core__NativeArray
*)var586
)->values
[0]=var588
;
4938 var586
= varonce585
;
4941 ((struct instance_core__NativeArray
*)var586
)->values
[1]=var_c_name
;
4943 var591
= ((val
*(*)(val
* self
))(var586
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var586
); /* native_to_s on <var586:NativeArray[String]>*/
4945 varonce585
= var586
;
4947 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v
, var591
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
4949 if (unlikely(varonce592
==NULL
)) {
4950 var593
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
4951 if (likely(varonce594
!=NULL
)) {
4952 var595
= varonce594
;
4954 var596
= "->class = &class_";
4955 var597
= core__flat___NativeString___to_s_full(var596
, 17l, 17l);
4957 varonce594
= var595
;
4959 ((struct instance_core__NativeArray
*)var593
)->values
[1]=var595
;
4960 if (likely(varonce598
!=NULL
)) {
4961 var599
= varonce598
;
4964 var601
= core__flat___NativeString___to_s_full(var600
, 1l, 1l);
4966 varonce598
= var599
;
4968 ((struct instance_core__NativeArray
*)var593
)->values
[3]=var599
;
4970 var593
= varonce592
;
4974 var602
= ((val
*(*)(val
* self
))(var_res
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_res
); /* to_s on <var_res:RuntimeVariable>*/
4976 ((struct instance_core__NativeArray
*)var593
)->values
[0]=var602
;
4977 ((struct instance_core__NativeArray
*)var593
)->values
[2]=var_c_name
;
4979 var603
= ((val
*(*)(val
* self
))(var593
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var593
); /* native_to_s on <var593:NativeArray[String]>*/
4981 varonce592
= var593
;
4983 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var603
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4985 if (unlikely(varonce604
==NULL
)) {
4986 var605
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
4987 if (likely(varonce606
!=NULL
)) {
4988 var607
= varonce606
;
4990 var608
= "((struct instance_";
4991 var609
= core__flat___NativeString___to_s_full(var608
, 18l, 18l);
4993 varonce606
= var607
;
4995 ((struct instance_core__NativeArray
*)var605
)->values
[0]=var607
;
4996 if (likely(varonce610
!=NULL
)) {
4997 var611
= varonce610
;
5000 var613
= core__flat___NativeString___to_s_full(var612
, 2l, 2l);
5002 varonce610
= var611
;
5004 ((struct instance_core__NativeArray
*)var605
)->values
[2]=var611
;
5005 if (likely(varonce614
!=NULL
)) {
5006 var615
= varonce614
;
5008 var616
= ")->value = NULL;";
5009 var617
= core__flat___NativeString___to_s_full(var616
, 16l, 16l);
5011 varonce614
= var615
;
5013 ((struct instance_core__NativeArray
*)var605
)->values
[4]=var615
;
5015 var605
= varonce604
;
5019 var618
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nitc__model_base__MEntity__c_name
]))(var_mtype
); /* c_name on <var_mtype:MClassType>*/
5021 ((struct instance_core__NativeArray
*)var605
)->values
[1]=var618
;
5023 var619
= ((val
*(*)(val
* self
))(var_res
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_res
); /* to_s on <var_res:RuntimeVariable>*/
5025 ((struct instance_core__NativeArray
*)var605
)->values
[3]=var619
;
5027 var620
= ((val
*(*)(val
* self
))(var605
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var605
); /* native_to_s on <var605:NativeArray[String]>*/
5029 varonce604
= var605
;
5031 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var620
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5033 if (unlikely(varonce621
==NULL
)) {
5034 var622
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
5035 if (likely(varonce623
!=NULL
)) {
5036 var624
= varonce623
;
5039 var626
= core__flat___NativeString___to_s_full(var625
, 7l, 7l);
5041 varonce623
= var624
;
5043 ((struct instance_core__NativeArray
*)var622
)->values
[0]=var624
;
5044 if (likely(varonce627
!=NULL
)) {
5045 var628
= varonce627
;
5048 var630
= core__flat___NativeString___to_s_full(var629
, 1l, 1l);
5050 varonce627
= var628
;
5052 ((struct instance_core__NativeArray
*)var622
)->values
[2]=var628
;
5054 var622
= varonce621
;
5058 var631
= ((val
*(*)(val
* self
))(var_res
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_res
); /* to_s on <var_res:RuntimeVariable>*/
5060 ((struct instance_core__NativeArray
*)var622
)->values
[1]=var631
;
5062 var632
= ((val
*(*)(val
* self
))(var622
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var622
); /* native_to_s on <var622:NativeArray[String]>*/
5064 varonce621
= var622
;
5066 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var632
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5069 if (likely(varonce633
!=NULL
)) {
5070 var634
= varonce633
;
5073 var636
= core__flat___NativeString___to_s_full(var635
, 1l, 1l);
5075 varonce633
= var634
;
5078 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var634
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5083 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
5084 var639
= var_mclass
->attrs
[COLOR_nitc__model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
5085 if (unlikely(var639
== NULL
)) {
5086 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5087 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 385);
5091 RET_LABEL638
:(void)0;
5094 if (likely(varonce640
!=NULL
)) {
5095 var641
= varonce640
;
5097 var642
= "NativeArray";
5098 var643
= core__flat___NativeString___to_s_full(var642
, 11l, 11l);
5100 varonce640
= var641
;
5103 var644
= ((short int(*)(val
* self
, val
* p0
))(var637
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var637
, var641
); /* == on <var637:String>*/
5107 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5108 var647
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5109 if (unlikely(var647
== NULL
)) {
5110 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5111 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
5115 RET_LABEL646
:(void)0;
5118 if (unlikely(varonce648
==NULL
)) {
5119 var649
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
5120 if (likely(varonce650
!=NULL
)) {
5121 var651
= varonce650
;
5123 var652
= "struct instance_";
5124 var653
= core__flat___NativeString___to_s_full(var652
, 16l, 16l);
5126 varonce650
= var651
;
5128 ((struct instance_core__NativeArray
*)var649
)->values
[0]=var651
;
5129 if (likely(varonce654
!=NULL
)) {
5130 var655
= varonce654
;
5133 var657
= core__flat___NativeString___to_s_full(var656
, 2l, 2l);
5135 varonce654
= var655
;
5137 ((struct instance_core__NativeArray
*)var649
)->values
[2]=var655
;
5139 var649
= varonce648
;
5142 ((struct instance_core__NativeArray
*)var649
)->values
[1]=var_c_name
;
5144 var658
= ((val
*(*)(val
* self
))(var649
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var649
); /* native_to_s on <var649:NativeArray[String]>*/
5146 varonce648
= var649
;
5148 nitc___nitc__CodeWriter___add_decl(var645
, var658
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var645:CodeWriter>*/
5151 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5152 var661
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5153 if (unlikely(var661
== NULL
)) {
5154 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5155 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
5159 RET_LABEL660
:(void)0;
5162 if (likely(varonce662
!=NULL
)) {
5163 var663
= varonce662
;
5165 var664
= "const struct class *class;";
5166 var665
= core__flat___NativeString___to_s_full(var664
, 26l, 26l);
5168 varonce662
= var663
;
5171 nitc___nitc__CodeWriter___add_decl(var659
, var663
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var659:CodeWriter>*/
5174 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5175 var668
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5176 if (unlikely(var668
== NULL
)) {
5177 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5178 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
5182 RET_LABEL667
:(void)0;
5185 if (likely(varonce669
!=NULL
)) {
5186 var670
= varonce669
;
5188 var671
= "int length;";
5189 var672
= core__flat___NativeString___to_s_full(var671
, 11l, 11l);
5191 varonce669
= var670
;
5194 nitc___nitc__CodeWriter___add_decl(var666
, var670
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var666:CodeWriter>*/
5197 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5198 var675
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5199 if (unlikely(var675
== NULL
)) {
5200 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5201 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
5205 RET_LABEL674
:(void)0;
5208 if (likely(varonce676
!=NULL
)) {
5209 var677
= varonce676
;
5211 var678
= "val* values[];";
5212 var679
= core__flat___NativeString___to_s_full(var678
, 14l, 14l);
5214 varonce676
= var677
;
5217 nitc___nitc__CodeWriter___add_decl(var673
, var677
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var673:CodeWriter>*/
5220 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5221 var682
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5222 if (unlikely(var682
== NULL
)) {
5223 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5224 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 585);
5228 RET_LABEL681
:(void)0;
5231 if (likely(varonce683
!=NULL
)) {
5232 var684
= varonce683
;
5235 var686
= core__flat___NativeString___to_s_full(var685
, 2l, 2l);
5237 varonce683
= var684
;
5240 nitc___nitc__CodeWriter___add_decl(var680
, var684
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var680:CodeWriter>*/
5242 if (unlikely(varonce687
==NULL
)) {
5243 var688
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
5244 if (likely(varonce689
!=NULL
)) {
5245 var690
= varonce689
;
5248 var692
= core__flat___NativeString___to_s_full(var691
, 4l, 4l);
5250 varonce689
= var690
;
5252 ((struct instance_core__NativeArray
*)var688
)->values
[0]=var690
;
5254 var688
= varonce687
;
5257 ((struct instance_core__NativeArray
*)var688
)->values
[1]=var_c_name
;
5259 var693
= ((val
*(*)(val
* self
))(var688
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var688
); /* native_to_s on <var688:NativeArray[String]>*/
5261 varonce687
= var688
;
5262 if (unlikely(varonce694
==NULL
)) {
5263 var695
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
5264 if (likely(varonce696
!=NULL
)) {
5265 var697
= varonce696
;
5268 var699
= core__flat___NativeString___to_s_full(var698
, 5l, 5l);
5270 varonce696
= var697
;
5272 ((struct instance_core__NativeArray
*)var695
)->values
[1]=var697
;
5273 if (likely(varonce700
!=NULL
)) {
5274 var701
= varonce700
;
5276 var702
= "(int length);";
5277 var703
= core__flat___NativeString___to_s_full(var702
, 13l, 13l);
5279 varonce700
= var701
;
5281 ((struct instance_core__NativeArray
*)var695
)->values
[3]=var701
;
5283 var695
= varonce694
;
5287 var704
= nitc__abstract_compiler___MClassType___MType__ctype(var_mtype
);
5289 ((struct instance_core__NativeArray
*)var695
)->values
[0]=var704
;
5290 ((struct instance_core__NativeArray
*)var695
)->values
[2]=var_c_name
;
5292 var705
= ((val
*(*)(val
* self
))(var695
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var695
); /* native_to_s on <var695:NativeArray[String]>*/
5294 varonce694
= var695
;
5296 nitc___nitc__AbstractCompiler___provide_declaration(self
, var693
, var705
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
5298 if (unlikely(varonce706
==NULL
)) {
5299 var707
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
5300 if (likely(varonce708
!=NULL
)) {
5301 var709
= varonce708
;
5303 var710
= "/* allocate ";
5304 var711
= core__flat___NativeString___to_s_full(var710
, 12l, 12l);
5306 varonce708
= var709
;
5308 ((struct instance_core__NativeArray
*)var707
)->values
[0]=var709
;
5309 if (likely(varonce712
!=NULL
)) {
5310 var713
= varonce712
;
5313 var715
= core__flat___NativeString___to_s_full(var714
, 3l, 3l);
5315 varonce712
= var713
;
5317 ((struct instance_core__NativeArray
*)var707
)->values
[2]=var713
;
5319 var707
= varonce706
;
5323 var716
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MClassType>*/
5325 ((struct instance_core__NativeArray
*)var707
)->values
[1]=var716
;
5327 var717
= ((val
*(*)(val
* self
))(var707
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var707
); /* native_to_s on <var707:NativeArray[String]>*/
5329 varonce706
= var707
;
5331 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var717
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5333 if (unlikely(varonce718
==NULL
)) {
5334 var719
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
5335 if (likely(varonce720
!=NULL
)) {
5336 var721
= varonce720
;
5339 var723
= core__flat___NativeString___to_s_full(var722
, 5l, 5l);
5341 varonce720
= var721
;
5343 ((struct instance_core__NativeArray
*)var719
)->values
[1]=var721
;
5344 if (likely(varonce724
!=NULL
)) {
5345 var725
= varonce724
;
5347 var726
= "(int length) {";
5348 var727
= core__flat___NativeString___to_s_full(var726
, 14l, 14l);
5350 varonce724
= var725
;
5352 ((struct instance_core__NativeArray
*)var719
)->values
[3]=var725
;
5354 var719
= varonce718
;
5358 var728
= nitc__abstract_compiler___MClassType___MType__ctype(var_mtype
);
5360 ((struct instance_core__NativeArray
*)var719
)->values
[0]=var728
;
5361 ((struct instance_core__NativeArray
*)var719
)->values
[2]=var_c_name
;
5363 var729
= ((val
*(*)(val
* self
))(var719
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var719
); /* native_to_s on <var719:NativeArray[String]>*/
5365 varonce718
= var719
;
5367 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var729
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5369 if (likely(varonce730
!=NULL
)) {
5370 var731
= varonce730
;
5373 var733
= core__flat___NativeString___to_s_full(var732
, 4l, 4l);
5375 varonce730
= var731
;
5378 var734
= nitc___nitc__AbstractCompilerVisitor___get_name(var_v
, var731
);
5380 var_res735
= var734
;
5381 if (unlikely(varonce736
==NULL
)) {
5382 var737
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
5383 if (likely(varonce738
!=NULL
)) {
5384 var739
= varonce738
;
5386 var740
= "struct instance_";
5387 var741
= core__flat___NativeString___to_s_full(var740
, 16l, 16l);
5389 varonce738
= var739
;
5391 ((struct instance_core__NativeArray
*)var737
)->values
[0]=var739
;
5392 if (likely(varonce742
!=NULL
)) {
5393 var743
= varonce742
;
5396 var745
= core__flat___NativeString___to_s_full(var744
, 2l, 2l);
5398 varonce742
= var743
;
5400 ((struct instance_core__NativeArray
*)var737
)->values
[2]=var743
;
5401 if (likely(varonce746
!=NULL
)) {
5402 var747
= varonce746
;
5405 var749
= core__flat___NativeString___to_s_full(var748
, 1l, 1l);
5407 varonce746
= var747
;
5409 ((struct instance_core__NativeArray
*)var737
)->values
[4]=var747
;
5411 var737
= varonce736
;
5414 ((struct instance_core__NativeArray
*)var737
)->values
[1]=var_c_name
;
5415 ((struct instance_core__NativeArray
*)var737
)->values
[3]=var_res735
;
5417 var750
= ((val
*(*)(val
* self
))(var737
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var737
); /* native_to_s on <var737:NativeArray[String]>*/
5419 varonce736
= var737
;
5421 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var750
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5424 var751
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nitc__model__MClassType__arguments
]))(var_mtype
); /* arguments on <var_mtype:MClassType>*/
5427 var752
= core___core__SequenceRead___Collection__first(var751
);
5429 var_mtype_elt
= var752
;
5430 if (unlikely(varonce753
==NULL
)) {
5431 var754
= NEW_core__NativeArray(6l, &type_core__NativeArray__core__String
);
5432 if (likely(varonce755
!=NULL
)) {
5433 var756
= varonce755
;
5435 var757
= " = nit_alloc(sizeof(struct instance_";
5436 var758
= core__flat___NativeString___to_s_full(var757
, 36l, 36l);
5438 varonce755
= var756
;
5440 ((struct instance_core__NativeArray
*)var754
)->values
[1]=var756
;
5441 if (likely(varonce759
!=NULL
)) {
5442 var760
= varonce759
;
5444 var761
= ") + length*sizeof(";
5445 var762
= core__flat___NativeString___to_s_full(var761
, 18l, 18l);
5447 varonce759
= var760
;
5449 ((struct instance_core__NativeArray
*)var754
)->values
[3]=var760
;
5450 if (likely(varonce763
!=NULL
)) {
5451 var764
= varonce763
;
5454 var766
= core__flat___NativeString___to_s_full(var765
, 3l, 3l);
5456 varonce763
= var764
;
5458 ((struct instance_core__NativeArray
*)var754
)->values
[5]=var764
;
5460 var754
= varonce753
;
5463 ((struct instance_core__NativeArray
*)var754
)->values
[0]=var_res735
;
5464 ((struct instance_core__NativeArray
*)var754
)->values
[2]=var_c_name
;
5466 var767
= ((val
*(*)(val
* self
))(var_mtype_elt
->class->vft
[COLOR_nitc__abstract_compiler__MType__ctype
]))(var_mtype_elt
); /* ctype on <var_mtype_elt:MType>*/
5468 ((struct instance_core__NativeArray
*)var754
)->values
[4]=var767
;
5470 var768
= ((val
*(*)(val
* self
))(var754
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var754
); /* native_to_s on <var754:NativeArray[String]>*/
5472 varonce753
= var754
;
5474 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var768
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5476 if (unlikely(varonce769
==NULL
)) {
5477 var770
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
5478 if (likely(varonce771
!=NULL
)) {
5479 var772
= varonce771
;
5482 var774
= core__flat___NativeString___to_s_full(var773
, 6l, 6l);
5484 varonce771
= var772
;
5486 ((struct instance_core__NativeArray
*)var770
)->values
[0]=var772
;
5488 var770
= varonce769
;
5491 ((struct instance_core__NativeArray
*)var770
)->values
[1]=var_c_name
;
5493 var775
= ((val
*(*)(val
* self
))(var770
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var770
); /* native_to_s on <var770:NativeArray[String]>*/
5495 varonce769
= var770
;
5497 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v
, var775
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
5499 if (unlikely(varonce776
==NULL
)) {
5500 var777
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
5501 if (likely(varonce778
!=NULL
)) {
5502 var779
= varonce778
;
5504 var780
= "->class = &class_";
5505 var781
= core__flat___NativeString___to_s_full(var780
, 17l, 17l);
5507 varonce778
= var779
;
5509 ((struct instance_core__NativeArray
*)var777
)->values
[1]=var779
;
5510 if (likely(varonce782
!=NULL
)) {
5511 var783
= varonce782
;
5514 var785
= core__flat___NativeString___to_s_full(var784
, 1l, 1l);
5516 varonce782
= var783
;
5518 ((struct instance_core__NativeArray
*)var777
)->values
[3]=var783
;
5520 var777
= varonce776
;
5523 ((struct instance_core__NativeArray
*)var777
)->values
[0]=var_res735
;
5524 ((struct instance_core__NativeArray
*)var777
)->values
[2]=var_c_name
;
5526 var786
= ((val
*(*)(val
* self
))(var777
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var777
); /* native_to_s on <var777:NativeArray[String]>*/
5528 varonce776
= var777
;
5530 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var786
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5532 if (unlikely(varonce787
==NULL
)) {
5533 var788
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
5534 if (likely(varonce789
!=NULL
)) {
5535 var790
= varonce789
;
5537 var791
= "->length = length;";
5538 var792
= core__flat___NativeString___to_s_full(var791
, 18l, 18l);
5540 varonce789
= var790
;
5542 ((struct instance_core__NativeArray
*)var788
)->values
[1]=var790
;
5544 var788
= varonce787
;
5547 ((struct instance_core__NativeArray
*)var788
)->values
[0]=var_res735
;
5549 var793
= ((val
*(*)(val
* self
))(var788
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var788
); /* native_to_s on <var788:NativeArray[String]>*/
5551 varonce787
= var788
;
5553 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var793
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5555 if (unlikely(varonce794
==NULL
)) {
5556 var795
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
5557 if (likely(varonce796
!=NULL
)) {
5558 var797
= varonce796
;
5560 var798
= "return (val*)";
5561 var799
= core__flat___NativeString___to_s_full(var798
, 13l, 13l);
5563 varonce796
= var797
;
5565 ((struct instance_core__NativeArray
*)var795
)->values
[0]=var797
;
5566 if (likely(varonce800
!=NULL
)) {
5567 var801
= varonce800
;
5570 var803
= core__flat___NativeString___to_s_full(var802
, 1l, 1l);
5572 varonce800
= var801
;
5574 ((struct instance_core__NativeArray
*)var795
)->values
[2]=var801
;
5576 var795
= varonce794
;
5579 ((struct instance_core__NativeArray
*)var795
)->values
[1]=var_res735
;
5581 var804
= ((val
*(*)(val
* self
))(var795
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var795
); /* native_to_s on <var795:NativeArray[String]>*/
5583 varonce794
= var795
;
5585 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var804
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5587 if (likely(varonce805
!=NULL
)) {
5588 var806
= varonce805
;
5591 var808
= core__flat___NativeString___to_s_full(var807
, 1l, 1l);
5593 varonce805
= var806
;
5596 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var806
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5601 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
5602 var812
= var_mtype
->attrs
[COLOR_nitc__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
5603 if (unlikely(var812
== NULL
)) {
5604 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5605 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1163);
5609 RET_LABEL811
:(void)0;
5613 { /* Inline model#MClass#kind (var810) on <var810:MClass> */
5614 var815
= var810
->attrs
[COLOR_nitc__model__MClass___kind
].val
; /* _kind on <var810:MClass> */
5615 if (unlikely(var815
== NULL
)) {
5616 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
5617 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 459);
5621 RET_LABEL814
:(void)0;
5626 var817
= nitc__model___core__Sys___extern_kind(var816
);
5629 { /* Inline kernel#Object#== (var813,var817) on <var813:MClassKind> */
5630 var_other205
= var817
;
5632 { /* Inline kernel#Object#is_same_instance (var813,var_other205) on <var813:MClassKind> */
5633 var822
= var813
== var_other205
;
5636 RET_LABEL821
:(void)0;
5641 RET_LABEL819
:(void)0;
5647 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
5648 var826
= var_mtype
->attrs
[COLOR_nitc__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
5649 if (unlikely(var826
== NULL
)) {
5650 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5651 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1163);
5655 RET_LABEL825
:(void)0;
5659 { /* Inline model#MClass#name (var824) on <var824:MClass> */
5660 var829
= var824
->attrs
[COLOR_nitc__model__MClass___name
].val
; /* _name on <var824:MClass> */
5661 if (unlikely(var829
== NULL
)) {
5662 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5663 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 385);
5667 RET_LABEL828
:(void)0;
5670 if (likely(varonce830
!=NULL
)) {
5671 var831
= varonce830
;
5673 var832
= "NativeString";
5674 var833
= core__flat___NativeString___to_s_full(var832
, 12l, 12l);
5676 varonce830
= var831
;
5679 { /* Inline kernel#Object#!= (var827,var831) on <var827:String> */
5682 var836
= ((short int(*)(val
* self
, val
* p0
))(var827
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var827
, var_other
); /* == on <var827:String>*/
5687 RET_LABEL835
:(void)0;
5696 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
5697 var840
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
5698 if (unlikely(var840
== NULL
)) {
5699 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5700 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
5704 RET_LABEL839
:(void)0;
5708 var841
= nitc__model___MModule___pointer_type(var838
);
5710 var_pointer_type
= var841
;
5711 if (unlikely(varonce842
==NULL
)) {
5712 var843
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
5713 if (likely(varonce844
!=NULL
)) {
5714 var845
= varonce844
;
5717 var847
= core__flat___NativeString___to_s_full(var846
, 4l, 4l);
5719 varonce844
= var845
;
5721 ((struct instance_core__NativeArray
*)var843
)->values
[0]=var845
;
5723 var843
= varonce842
;
5726 ((struct instance_core__NativeArray
*)var843
)->values
[1]=var_c_name
;
5728 var848
= ((val
*(*)(val
* self
))(var843
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var843
); /* native_to_s on <var843:NativeArray[String]>*/
5730 varonce842
= var843
;
5731 if (unlikely(varonce849
==NULL
)) {
5732 var850
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
5733 if (likely(varonce851
!=NULL
)) {
5734 var852
= varonce851
;
5737 var854
= core__flat___NativeString___to_s_full(var853
, 5l, 5l);
5739 varonce851
= var852
;
5741 ((struct instance_core__NativeArray
*)var850
)->values
[1]=var852
;
5742 if (likely(varonce855
!=NULL
)) {
5743 var856
= varonce855
;
5746 var858
= core__flat___NativeString___to_s_full(var857
, 3l, 3l);
5748 varonce855
= var856
;
5750 ((struct instance_core__NativeArray
*)var850
)->values
[3]=var856
;
5752 var850
= varonce849
;
5756 var859
= nitc__abstract_compiler___MClassType___MType__ctype(var_mtype
);
5758 ((struct instance_core__NativeArray
*)var850
)->values
[0]=var859
;
5759 ((struct instance_core__NativeArray
*)var850
)->values
[2]=var_c_name
;
5761 var860
= ((val
*(*)(val
* self
))(var850
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var850
); /* native_to_s on <var850:NativeArray[String]>*/
5763 varonce849
= var850
;
5765 nitc___nitc__AbstractCompiler___provide_declaration(self
, var848
, var860
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
5767 if (unlikely(varonce861
==NULL
)) {
5768 var862
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
5769 if (likely(varonce863
!=NULL
)) {
5770 var864
= varonce863
;
5772 var865
= "/* allocate ";
5773 var866
= core__flat___NativeString___to_s_full(var865
, 12l, 12l);
5775 varonce863
= var864
;
5777 ((struct instance_core__NativeArray
*)var862
)->values
[0]=var864
;
5778 if (likely(varonce867
!=NULL
)) {
5779 var868
= varonce867
;
5782 var870
= core__flat___NativeString___to_s_full(var869
, 3l, 3l);
5784 varonce867
= var868
;
5786 ((struct instance_core__NativeArray
*)var862
)->values
[2]=var868
;
5788 var862
= varonce861
;
5792 var871
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MClassType>*/
5794 ((struct instance_core__NativeArray
*)var862
)->values
[1]=var871
;
5796 var872
= ((val
*(*)(val
* self
))(var862
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var862
); /* native_to_s on <var862:NativeArray[String]>*/
5798 varonce861
= var862
;
5800 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var872
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5802 if (unlikely(varonce873
==NULL
)) {
5803 var874
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
5804 if (likely(varonce875
!=NULL
)) {
5805 var876
= varonce875
;
5808 var878
= core__flat___NativeString___to_s_full(var877
, 5l, 5l);
5810 varonce875
= var876
;
5812 ((struct instance_core__NativeArray
*)var874
)->values
[1]=var876
;
5813 if (likely(varonce879
!=NULL
)) {
5814 var880
= varonce879
;
5817 var882
= core__flat___NativeString___to_s_full(var881
, 4l, 4l);
5819 varonce879
= var880
;
5821 ((struct instance_core__NativeArray
*)var874
)->values
[3]=var880
;
5823 var874
= varonce873
;
5827 var883
= nitc__abstract_compiler___MClassType___MType__ctype(var_mtype
);
5829 ((struct instance_core__NativeArray
*)var874
)->values
[0]=var883
;
5830 ((struct instance_core__NativeArray
*)var874
)->values
[2]=var_c_name
;
5832 var884
= ((val
*(*)(val
* self
))(var874
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var874
); /* native_to_s on <var874:NativeArray[String]>*/
5834 varonce873
= var874
;
5836 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var884
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5839 if (unlikely(varonce885
==NULL
)) {
5840 var886
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
5841 if (likely(varonce887
!=NULL
)) {
5842 var888
= varonce887
;
5844 var889
= " is DEAD";
5845 var890
= core__flat___NativeString___to_s_full(var889
, 8l, 8l);
5847 varonce887
= var888
;
5849 ((struct instance_core__NativeArray
*)var886
)->values
[1]=var888
;
5851 var886
= varonce885
;
5855 var891
= ((val
*(*)(val
* self
))(var_mclass
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mclass
); /* to_s on <var_mclass:MClass>*/
5857 ((struct instance_core__NativeArray
*)var886
)->values
[0]=var891
;
5859 var892
= ((val
*(*)(val
* self
))(var886
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var886
); /* native_to_s on <var886:NativeArray[String]>*/
5861 varonce885
= var886
;
5863 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v
, var892
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:SeparateCompilerVisitor>*/
5866 if (likely(varonce893
!=NULL
)) {
5867 var894
= varonce893
;
5870 var896
= core__flat___NativeString___to_s_full(var895
, 4l, 4l);
5872 varonce893
= var894
;
5875 var897
= nitc___nitc__AbstractCompilerVisitor___new_named_var(var_v
, var_mtype
, var894
);
5877 var_res898
= var897
;
5879 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res898,1) on <var_res898:RuntimeVariable> */
5880 var_res898
->attrs
[COLOR_nitc__abstract_compiler__RuntimeVariable___is_exact
].s
= 1; /* _is_exact on <var_res898:RuntimeVariable> */
5881 RET_LABEL899
:(void)0;
5884 if (unlikely(varonce900
==NULL
)) {
5885 var901
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
5886 if (likely(varonce902
!=NULL
)) {
5887 var903
= varonce902
;
5889 var904
= " = nit_alloc(sizeof(struct instance_";
5890 var905
= core__flat___NativeString___to_s_full(var904
, 36l, 36l);
5892 varonce902
= var903
;
5894 ((struct instance_core__NativeArray
*)var901
)->values
[1]=var903
;
5895 if (likely(varonce906
!=NULL
)) {
5896 var907
= varonce906
;
5899 var909
= core__flat___NativeString___to_s_full(var908
, 3l, 3l);
5901 varonce906
= var907
;
5903 ((struct instance_core__NativeArray
*)var901
)->values
[3]=var907
;
5905 var901
= varonce900
;
5909 var910
= ((val
*(*)(val
* self
))(var_res898
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_res898
); /* to_s on <var_res898:RuntimeVariable>*/
5911 ((struct instance_core__NativeArray
*)var901
)->values
[0]=var910
;
5913 var911
= ((val
*(*)(val
* self
))(var_pointer_type
->class->vft
[COLOR_nitc__model_base__MEntity__c_name
]))(var_pointer_type
); /* c_name on <var_pointer_type:MClassType>*/
5915 ((struct instance_core__NativeArray
*)var901
)->values
[2]=var911
;
5917 var912
= ((val
*(*)(val
* self
))(var901
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var901
); /* native_to_s on <var901:NativeArray[String]>*/
5919 varonce900
= var901
;
5921 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var912
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5923 if (unlikely(varonce913
==NULL
)) {
5924 var914
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
5925 if (likely(varonce915
!=NULL
)) {
5926 var916
= varonce915
;
5929 var918
= core__flat___NativeString___to_s_full(var917
, 6l, 6l);
5931 varonce915
= var916
;
5933 ((struct instance_core__NativeArray
*)var914
)->values
[0]=var916
;
5935 var914
= varonce913
;
5938 ((struct instance_core__NativeArray
*)var914
)->values
[1]=var_c_name
;
5940 var919
= ((val
*(*)(val
* self
))(var914
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var914
); /* native_to_s on <var914:NativeArray[String]>*/
5942 varonce913
= var914
;
5944 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v
, var919
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
5946 if (unlikely(varonce920
==NULL
)) {
5947 var921
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
5948 if (likely(varonce922
!=NULL
)) {
5949 var923
= varonce922
;
5951 var924
= "->class = &class_";
5952 var925
= core__flat___NativeString___to_s_full(var924
, 17l, 17l);
5954 varonce922
= var923
;
5956 ((struct instance_core__NativeArray
*)var921
)->values
[1]=var923
;
5957 if (likely(varonce926
!=NULL
)) {
5958 var927
= varonce926
;
5961 var929
= core__flat___NativeString___to_s_full(var928
, 1l, 1l);
5963 varonce926
= var927
;
5965 ((struct instance_core__NativeArray
*)var921
)->values
[3]=var927
;
5967 var921
= varonce920
;
5971 var930
= ((val
*(*)(val
* self
))(var_res898
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_res898
); /* to_s on <var_res898:RuntimeVariable>*/
5973 ((struct instance_core__NativeArray
*)var921
)->values
[0]=var930
;
5974 ((struct instance_core__NativeArray
*)var921
)->values
[2]=var_c_name
;
5976 var931
= ((val
*(*)(val
* self
))(var921
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var921
); /* native_to_s on <var921:NativeArray[String]>*/
5978 varonce920
= var921
;
5980 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var931
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5982 if (unlikely(varonce932
==NULL
)) {
5983 var933
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
5984 if (likely(varonce934
!=NULL
)) {
5985 var935
= varonce934
;
5987 var936
= "((struct instance_";
5988 var937
= core__flat___NativeString___to_s_full(var936
, 18l, 18l);
5990 varonce934
= var935
;
5992 ((struct instance_core__NativeArray
*)var933
)->values
[0]=var935
;
5993 if (likely(varonce938
!=NULL
)) {
5994 var939
= varonce938
;
5997 var941
= core__flat___NativeString___to_s_full(var940
, 2l, 2l);
5999 varonce938
= var939
;
6001 ((struct instance_core__NativeArray
*)var933
)->values
[2]=var939
;
6002 if (likely(varonce942
!=NULL
)) {
6003 var943
= varonce942
;
6005 var944
= ")->value = NULL;";
6006 var945
= core__flat___NativeString___to_s_full(var944
, 16l, 16l);
6008 varonce942
= var943
;
6010 ((struct instance_core__NativeArray
*)var933
)->values
[4]=var943
;
6012 var933
= varonce932
;
6016 var946
= ((val
*(*)(val
* self
))(var_pointer_type
->class->vft
[COLOR_nitc__model_base__MEntity__c_name
]))(var_pointer_type
); /* c_name on <var_pointer_type:MClassType>*/
6018 ((struct instance_core__NativeArray
*)var933
)->values
[1]=var946
;
6020 var947
= ((val
*(*)(val
* self
))(var_res898
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_res898
); /* to_s on <var_res898:RuntimeVariable>*/
6022 ((struct instance_core__NativeArray
*)var933
)->values
[3]=var947
;
6024 var948
= ((val
*(*)(val
* self
))(var933
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var933
); /* native_to_s on <var933:NativeArray[String]>*/
6026 varonce932
= var933
;
6028 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var948
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6030 if (unlikely(varonce949
==NULL
)) {
6031 var950
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
6032 if (likely(varonce951
!=NULL
)) {
6033 var952
= varonce951
;
6036 var954
= core__flat___NativeString___to_s_full(var953
, 7l, 7l);
6038 varonce951
= var952
;
6040 ((struct instance_core__NativeArray
*)var950
)->values
[0]=var952
;
6041 if (likely(varonce955
!=NULL
)) {
6042 var956
= varonce955
;
6045 var958
= core__flat___NativeString___to_s_full(var957
, 1l, 1l);
6047 varonce955
= var956
;
6049 ((struct instance_core__NativeArray
*)var950
)->values
[2]=var956
;
6051 var950
= varonce949
;
6055 var959
= ((val
*(*)(val
* self
))(var_res898
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_res898
); /* to_s on <var_res898:RuntimeVariable>*/
6057 ((struct instance_core__NativeArray
*)var950
)->values
[1]=var959
;
6059 var960
= ((val
*(*)(val
* self
))(var950
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var950
); /* native_to_s on <var950:NativeArray[String]>*/
6061 varonce949
= var950
;
6063 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var960
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6066 if (likely(varonce961
!=NULL
)) {
6067 var962
= varonce961
;
6070 var964
= core__flat___NativeString___to_s_full(var963
, 1l, 1l);
6072 varonce961
= var962
;
6075 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var962
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6082 if (unlikely(varonce965
==NULL
)) {
6083 var966
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
6084 if (likely(varonce967
!=NULL
)) {
6085 var968
= varonce967
;
6088 var970
= core__flat___NativeString___to_s_full(var969
, 4l, 4l);
6090 varonce967
= var968
;
6092 ((struct instance_core__NativeArray
*)var966
)->values
[0]=var968
;
6094 var966
= varonce965
;
6097 ((struct instance_core__NativeArray
*)var966
)->values
[1]=var_c_name
;
6099 var971
= ((val
*(*)(val
* self
))(var966
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var966
); /* native_to_s on <var966:NativeArray[String]>*/
6101 varonce965
= var966
;
6102 if (unlikely(varonce972
==NULL
)) {
6103 var973
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
6104 if (likely(varonce974
!=NULL
)) {
6105 var975
= varonce974
;
6108 var977
= core__flat___NativeString___to_s_full(var976
, 5l, 5l);
6110 varonce974
= var975
;
6112 ((struct instance_core__NativeArray
*)var973
)->values
[1]=var975
;
6113 if (likely(varonce978
!=NULL
)) {
6114 var979
= varonce978
;
6117 var981
= core__flat___NativeString___to_s_full(var980
, 7l, 7l);
6119 varonce978
= var979
;
6121 ((struct instance_core__NativeArray
*)var973
)->values
[3]=var979
;
6123 var973
= varonce972
;
6127 var982
= nitc__abstract_compiler___MClassType___MType__ctype(var_mtype
);
6129 ((struct instance_core__NativeArray
*)var973
)->values
[0]=var982
;
6130 ((struct instance_core__NativeArray
*)var973
)->values
[2]=var_c_name
;
6132 var983
= ((val
*(*)(val
* self
))(var973
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var973
); /* native_to_s on <var973:NativeArray[String]>*/
6134 varonce972
= var973
;
6136 nitc___nitc__AbstractCompiler___provide_declaration(self
, var971
, var983
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
6138 if (unlikely(varonce984
==NULL
)) {
6139 var985
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
6140 if (likely(varonce986
!=NULL
)) {
6141 var987
= varonce986
;
6143 var988
= "/* allocate ";
6144 var989
= core__flat___NativeString___to_s_full(var988
, 12l, 12l);
6146 varonce986
= var987
;
6148 ((struct instance_core__NativeArray
*)var985
)->values
[0]=var987
;
6149 if (likely(varonce990
!=NULL
)) {
6150 var991
= varonce990
;
6153 var993
= core__flat___NativeString___to_s_full(var992
, 3l, 3l);
6155 varonce990
= var991
;
6157 ((struct instance_core__NativeArray
*)var985
)->values
[2]=var991
;
6159 var985
= varonce984
;
6163 var994
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MClassType>*/
6165 ((struct instance_core__NativeArray
*)var985
)->values
[1]=var994
;
6167 var995
= ((val
*(*)(val
* self
))(var985
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var985
); /* native_to_s on <var985:NativeArray[String]>*/
6169 varonce984
= var985
;
6171 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var995
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6173 if (unlikely(varonce996
==NULL
)) {
6174 var997
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
6175 if (likely(varonce998
!=NULL
)) {
6176 var999
= varonce998
;
6179 var1001
= core__flat___NativeString___to_s_full(var1000
, 5l, 5l);
6181 varonce998
= var999
;
6183 ((struct instance_core__NativeArray
*)var997
)->values
[1]=var999
;
6184 if (likely(varonce1002
!=NULL
)) {
6185 var1003
= varonce1002
;
6187 var1004
= "(void) {";
6188 var1005
= core__flat___NativeString___to_s_full(var1004
, 8l, 8l);
6190 varonce1002
= var1003
;
6192 ((struct instance_core__NativeArray
*)var997
)->values
[3]=var1003
;
6194 var997
= varonce996
;
6198 var1006
= nitc__abstract_compiler___MClassType___MType__ctype(var_mtype
);
6200 ((struct instance_core__NativeArray
*)var997
)->values
[0]=var1006
;
6201 ((struct instance_core__NativeArray
*)var997
)->values
[2]=var_c_name
;
6203 var1007
= ((val
*(*)(val
* self
))(var997
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var997
); /* native_to_s on <var997:NativeArray[String]>*/
6205 varonce996
= var997
;
6207 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var1007
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6210 if (unlikely(varonce1008
==NULL
)) {
6211 var1009
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
6212 if (likely(varonce1010
!=NULL
)) {
6213 var1011
= varonce1010
;
6215 var1012
= " is DEAD";
6216 var1013
= core__flat___NativeString___to_s_full(var1012
, 8l, 8l);
6218 varonce1010
= var1011
;
6220 ((struct instance_core__NativeArray
*)var1009
)->values
[1]=var1011
;
6222 var1009
= varonce1008
;
6226 var1014
= ((val
*(*)(val
* self
))(var_mclass
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mclass
); /* to_s on <var_mclass:MClass>*/
6228 ((struct instance_core__NativeArray
*)var1009
)->values
[0]=var1014
;
6230 var1015
= ((val
*(*)(val
* self
))(var1009
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var1009
); /* native_to_s on <var1009:NativeArray[String]>*/
6232 varonce1008
= var1009
;
6234 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v
, var1015
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:SeparateCompilerVisitor>*/
6237 if (likely(varonce1016
!=NULL
)) {
6238 var1017
= varonce1016
;
6241 var1019
= core__flat___NativeString___to_s_full(var1018
, 4l, 4l);
6243 varonce1016
= var1017
;
6246 var1020
= nitc___nitc__AbstractCompilerVisitor___new_named_var(var_v
, var_mtype
, var1017
);
6248 var_res1021
= var1020
;
6250 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res1021,1) on <var_res1021:RuntimeVariable> */
6251 var_res1021
->attrs
[COLOR_nitc__abstract_compiler__RuntimeVariable___is_exact
].s
= 1; /* _is_exact on <var_res1021:RuntimeVariable> */
6252 RET_LABEL1022
:(void)0;
6256 { /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on <self:SeparateErasureCompiler> */
6257 var1025
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___attr_tables
].val
; /* _attr_tables on <self:SeparateErasureCompiler> */
6258 if (unlikely(var1025
== NULL
)) {
6259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
6260 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 1068);
6264 RET_LABEL1024
:(void)0;
6268 var1026
= ((val
*(*)(val
* self
, val
* p0
))((((long)var1023
&3)?class_info
[((long)var1023
&3)]:var1023
->class)->vft
[COLOR_core__abstract_collection__MapRead__get_or_null
]))(var1023
, var_mclass
); /* get_or_null on <var1023:Map[MClass, Array[nullable MProperty]]>*/
6270 var_attrs
= var1026
;
6271 if (var_attrs
== NULL
) {
6272 var1027
= 1; /* is null */
6274 var1027
= 0; /* arg is null but recv is not */
6277 var1028
= core___core__Array___core__kernel__Object___61d_61d(var_attrs
, ((val
*)NULL
));
6281 if (unlikely(varonce1029
==NULL
)) {
6282 var1030
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
6283 if (likely(varonce1031
!=NULL
)) {
6284 var1032
= varonce1031
;
6286 var1033
= " = nit_alloc(sizeof(struct instance));";
6287 var1034
= core__flat___NativeString___to_s_full(var1033
, 38l, 38l);
6289 varonce1031
= var1032
;
6291 ((struct instance_core__NativeArray
*)var1030
)->values
[1]=var1032
;
6293 var1030
= varonce1029
;
6297 var1035
= ((val
*(*)(val
* self
))(var_res1021
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_res1021
); /* to_s on <var_res1021:RuntimeVariable>*/
6299 ((struct instance_core__NativeArray
*)var1030
)->values
[0]=var1035
;
6301 var1036
= ((val
*(*)(val
* self
))(var1030
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var1030
); /* native_to_s on <var1030:NativeArray[String]>*/
6303 varonce1029
= var1030
;
6305 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var1036
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6308 if (unlikely(varonce1037
==NULL
)) {
6309 var1038
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
6310 if (likely(varonce1039
!=NULL
)) {
6311 var1040
= varonce1039
;
6313 var1041
= " = nit_alloc(sizeof(struct instance) + ";
6314 var1042
= core__flat___NativeString___to_s_full(var1041
, 39l, 39l);
6316 varonce1039
= var1040
;
6318 ((struct instance_core__NativeArray
*)var1038
)->values
[1]=var1040
;
6319 if (likely(varonce1043
!=NULL
)) {
6320 var1044
= varonce1043
;
6322 var1045
= "*sizeof(nitattribute_t));";
6323 var1046
= core__flat___NativeString___to_s_full(var1045
, 25l, 25l);
6325 varonce1043
= var1044
;
6327 ((struct instance_core__NativeArray
*)var1038
)->values
[3]=var1044
;
6329 var1038
= varonce1037
;
6333 var1047
= ((val
*(*)(val
* self
))(var_res1021
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_res1021
); /* to_s on <var_res1021:RuntimeVariable>*/
6335 ((struct instance_core__NativeArray
*)var1038
)->values
[0]=var1047
;
6337 { /* Inline array#AbstractArrayRead#length (var_attrs) on <var_attrs:nullable Array[nullable MProperty](Array[nullable MProperty])> */
6338 var1050
= var_attrs
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_attrs:nullable Array[nullable MProperty](Array[nullable MProperty])> */
6340 RET_LABEL1049
:(void)0;
6343 var1051
= core__flat___Int___core__abstract_text__Object__to_s(var1048
);
6344 ((struct instance_core__NativeArray
*)var1038
)->values
[2]=var1051
;
6346 var1052
= ((val
*(*)(val
* self
))(var1038
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var1038
); /* native_to_s on <var1038:NativeArray[String]>*/
6348 varonce1037
= var1038
;
6350 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var1052
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6353 if (unlikely(varonce1053
==NULL
)) {
6354 var1054
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
6355 if (likely(varonce1055
!=NULL
)) {
6356 var1056
= varonce1055
;
6359 var1058
= core__flat___NativeString___to_s_full(var1057
, 6l, 6l);
6361 varonce1055
= var1056
;
6363 ((struct instance_core__NativeArray
*)var1054
)->values
[0]=var1056
;
6365 var1054
= varonce1053
;
6368 ((struct instance_core__NativeArray
*)var1054
)->values
[1]=var_c_name
;
6370 var1059
= ((val
*(*)(val
* self
))(var1054
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var1054
); /* native_to_s on <var1054:NativeArray[String]>*/
6372 varonce1053
= var1054
;
6374 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v
, var1059
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
6376 if (unlikely(varonce1060
==NULL
)) {
6377 var1061
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
6378 if (likely(varonce1062
!=NULL
)) {
6379 var1063
= varonce1062
;
6381 var1064
= "->class = &class_";
6382 var1065
= core__flat___NativeString___to_s_full(var1064
, 17l, 17l);
6384 varonce1062
= var1063
;
6386 ((struct instance_core__NativeArray
*)var1061
)->values
[1]=var1063
;
6387 if (likely(varonce1066
!=NULL
)) {
6388 var1067
= varonce1066
;
6391 var1069
= core__flat___NativeString___to_s_full(var1068
, 1l, 1l);
6393 varonce1066
= var1067
;
6395 ((struct instance_core__NativeArray
*)var1061
)->values
[3]=var1067
;
6397 var1061
= varonce1060
;
6401 var1070
= ((val
*(*)(val
* self
))(var_res1021
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_res1021
); /* to_s on <var_res1021:RuntimeVariable>*/
6403 ((struct instance_core__NativeArray
*)var1061
)->values
[0]=var1070
;
6404 ((struct instance_core__NativeArray
*)var1061
)->values
[2]=var_c_name
;
6406 var1071
= ((val
*(*)(val
* self
))(var1061
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var1061
); /* native_to_s on <var1061:NativeArray[String]>*/
6408 varonce1060
= var1061
;
6410 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var1071
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6412 if (var_attrs
== NULL
) {
6413 var1072
= 0; /* is null */
6415 var1072
= 1; /* arg is null and recv is not */
6418 { /* Inline kernel#Object#!= (var_attrs,((val*)NULL)) on <var_attrs:nullable Array[nullable MProperty]> */
6419 var_other
= ((val
*)NULL
);
6421 var1075
= ((short int(*)(val
* self
, val
* p0
))(var_attrs
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_attrs
, var_other
); /* == on <var_attrs:nullable Array[nullable MProperty](Array[nullable MProperty])>*/
6426 RET_LABEL1074
:(void)0;
6432 nitc___nitc__AbstractCompiler___generate_init_attr(self
, var_v
, var_res1021
, var_mtype
); /* Direct call abstract_compiler#AbstractCompiler#generate_init_attr on <self:SeparateErasureCompiler>*/
6435 nitc___nitc__AbstractCompilerVisitor___set_finalizer(var_v
, var_res1021
); /* Direct call abstract_compiler#AbstractCompilerVisitor#set_finalizer on <var_v:SeparateCompilerVisitor>*/
6439 if (unlikely(varonce1077
==NULL
)) {
6440 var1078
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
6441 if (likely(varonce1079
!=NULL
)) {
6442 var1080
= varonce1079
;
6444 var1081
= "return ";
6445 var1082
= core__flat___NativeString___to_s_full(var1081
, 7l, 7l);
6447 varonce1079
= var1080
;
6449 ((struct instance_core__NativeArray
*)var1078
)->values
[0]=var1080
;
6450 if (likely(varonce1083
!=NULL
)) {
6451 var1084
= varonce1083
;
6454 var1086
= core__flat___NativeString___to_s_full(var1085
, 1l, 1l);
6456 varonce1083
= var1084
;
6458 ((struct instance_core__NativeArray
*)var1078
)->values
[2]=var1084
;
6460 var1078
= varonce1077
;
6464 var1087
= ((val
*(*)(val
* self
))(var_res1021
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_res1021
); /* to_s on <var_res1021:RuntimeVariable>*/
6466 ((struct instance_core__NativeArray
*)var1078
)->values
[1]=var1087
;
6468 var1088
= ((val
*(*)(val
* self
))(var1078
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var1078
); /* native_to_s on <var1078:NativeArray[String]>*/
6470 varonce1077
= var1078
;
6472 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var1088
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6475 if (likely(varonce1089
!=NULL
)) {
6476 var1090
= varonce1089
;
6479 var1092
= core__flat___NativeString___to_s_full(var1091
, 1l, 1l);
6481 varonce1089
= var1090
;
6484 nitc___nitc__AbstractCompilerVisitor___add(var_v
, var1090
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6488 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_vts_table for (self: SeparateErasureCompiler, MClass): Bool */
6489 short int nitc___nitc__SeparateErasureCompiler___build_class_vts_table(val
* self
, val
* p0
) {
6490 short int var
/* : Bool */;
6491 val
* var_mclass
/* var mclass: MClass */;
6492 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
6493 val
* var3
/* : Map[MClass, Array[nullable MPropDef]] */;
6494 val
* var4
/* : nullable Object */;
6495 short int var5
/* : Bool */;
6496 val
* var6
/* : NativeArray[String] */;
6497 static val
* varonce
;
6498 static val
* varonce7
;
6499 val
* var8
/* : String */;
6500 char* var9
/* : NativeString */;
6501 val
* var10
/* : String */;
6502 val
* var11
/* : String */;
6503 val
* var12
/* : String */;
6504 val
* var14
/* : NativeArray[String] */;
6505 static val
* varonce13
;
6506 static val
* varonce15
;
6507 val
* var16
/* : String */;
6508 char* var17
/* : NativeString */;
6509 val
* var18
/* : String */;
6510 static val
* varonce19
;
6511 val
* var20
/* : String */;
6512 char* var21
/* : NativeString */;
6513 val
* var22
/* : String */;
6514 val
* var23
/* : String */;
6515 val
* var24
/* : String */;
6516 val
* var25
/* : SeparateCompilerVisitor */;
6517 val
* var_v
/* var v: SeparateCompilerVisitor */;
6518 val
* var27
/* : NativeArray[String] */;
6519 static val
* varonce26
;
6520 static val
* varonce28
;
6521 val
* var29
/* : String */;
6522 char* var30
/* : NativeString */;
6523 val
* var31
/* : String */;
6524 static val
* varonce32
;
6525 val
* var33
/* : String */;
6526 char* var34
/* : NativeString */;
6527 val
* var35
/* : String */;
6528 val
* var36
/* : String */;
6529 val
* var37
/* : String */;
6530 static val
* varonce38
;
6531 val
* var39
/* : String */;
6532 char* var40
/* : NativeString */;
6533 val
* var41
/* : String */;
6534 static val
* varonce42
;
6535 val
* var43
/* : String */;
6536 char* var44
/* : NativeString */;
6537 val
* var45
/* : String */;
6538 val
* var46
/* : Map[MClass, Array[nullable MPropDef]] */;
6539 val
* var48
/* : Map[MClass, Array[nullable MPropDef]] */;
6540 val
* var49
/* : nullable Object */;
6541 val
* var_
/* var : Array[nullable MPropDef] */;
6542 val
* var50
/* : IndexedIterator[nullable Object] */;
6543 val
* var_51
/* var : IndexedIterator[nullable MPropDef] */;
6544 short int var52
/* : Bool */;
6545 val
* var53
/* : nullable Object */;
6546 val
* var_vt
/* var vt: nullable MPropDef */;
6547 short int var54
/* : Bool */;
6548 short int var55
/* : Bool */;
6549 val
* var_other
/* var other: nullable Object */;
6550 short int var57
/* : Bool */;
6551 short int var59
/* : Bool */;
6552 static val
* varonce60
;
6553 val
* var61
/* : String */;
6554 char* var62
/* : NativeString */;
6555 val
* var63
/* : String */;
6556 long var_is_null
/* var is_null: Int */;
6557 val
* var64
/* : MClassDef */;
6558 val
* var66
/* : MClassDef */;
6559 val
* var67
/* : MClassType */;
6560 val
* var69
/* : MClassType */;
6561 short int var70
/* : Bool */;
6564 const char* var_class_name
;
6565 val
* var71
/* : nullable MType */;
6566 val
* var73
/* : nullable MType */;
6567 val
* var74
/* : MType */;
6568 val
* var_bound
/* var bound: MType */;
6569 short int var75
/* : Bool */;
6572 val
* var78
/* : MClassDef */;
6573 val
* var80
/* : MClassDef */;
6574 val
* var81
/* : MClassType */;
6575 val
* var83
/* : MClassType */;
6576 val
* var84
/* : MType */;
6577 val
* var86
/* : MType */;
6578 val
* var87
/* : MType */;
6579 short int var89
/* : Bool */;
6582 const char* var_class_name92
;
6583 val
* var93
/* : MClass */;
6584 val
* var95
/* : MClass */;
6585 val
* var_vtclass
/* var vtclass: MClass */;
6586 val
* var97
/* : NativeArray[String] */;
6587 static val
* varonce96
;
6588 static val
* varonce98
;
6589 val
* var99
/* : String */;
6590 char* var100
/* : NativeString */;
6591 val
* var101
/* : String */;
6592 val
* var102
/* : String */;
6593 val
* var103
/* : String */;
6594 val
* var105
/* : NativeArray[String] */;
6595 static val
* varonce104
;
6596 static val
* varonce106
;
6597 val
* var107
/* : String */;
6598 char* var108
/* : NativeString */;
6599 val
* var109
/* : String */;
6600 static val
* varonce110
;
6601 val
* var111
/* : String */;
6602 char* var112
/* : NativeString */;
6603 val
* var113
/* : String */;
6604 static val
* varonce114
;
6605 val
* var115
/* : String */;
6606 char* var116
/* : NativeString */;
6607 val
* var117
/* : String */;
6608 static val
* varonce118
;
6609 val
* var119
/* : String */;
6610 char* var120
/* : NativeString */;
6611 val
* var121
/* : String */;
6612 val
* var122
/* : String */;
6613 val
* var123
/* : String */;
6614 val
* var124
/* : String */;
6615 val
* var125
/* : String */;
6616 static val
* varonce126
;
6617 val
* var127
/* : String */;
6618 char* var128
/* : NativeString */;
6619 val
* var129
/* : String */;
6620 static val
* varonce130
;
6621 val
* var131
/* : String */;
6622 char* var132
/* : NativeString */;
6623 val
* var133
/* : String */;
6626 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on <self:SeparateErasureCompiler> */
6627 var3
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
6628 if (unlikely(var3
== NULL
)) {
6629 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
6630 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 428);
6638 var4
= ((val
*(*)(val
* self
, val
* p0
))((((long)var1
&3)?class_info
[((long)var1
&3)]:var1
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var1
, var_mclass
); /* [] on <var1:Map[MClass, Array[nullable MPropDef]]>*/
6641 var5
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var4
);
6648 if (unlikely(varonce
==NULL
)) {
6649 var6
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
6650 if (likely(varonce7
!=NULL
)) {
6653 var9
= "vts_table_";
6654 var10
= core__flat___NativeString___to_s_full(var9
, 10l, 10l);
6658 ((struct instance_core__NativeArray
*)var6
)->values
[0]=var8
;
6664 var11
= nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var_mclass
);
6666 ((struct instance_core__NativeArray
*)var6
)->values
[1]=var11
;
6668 var12
= ((val
*(*)(val
* self
))(var6
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var6
); /* native_to_s on <var6:NativeArray[String]>*/
6671 if (unlikely(varonce13
==NULL
)) {
6672 var14
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
6673 if (likely(varonce15
!=NULL
)) {
6676 var17
= "extern const struct vts_table vts_table_";
6677 var18
= core__flat___NativeString___to_s_full(var17
, 40l, 40l);
6681 ((struct instance_core__NativeArray
*)var14
)->values
[0]=var16
;
6682 if (likely(varonce19
!=NULL
)) {
6686 var22
= core__flat___NativeString___to_s_full(var21
, 1l, 1l);
6690 ((struct instance_core__NativeArray
*)var14
)->values
[2]=var20
;
6696 var23
= nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var_mclass
);
6698 ((struct instance_core__NativeArray
*)var14
)->values
[1]=var23
;
6700 var24
= ((val
*(*)(val
* self
))(var14
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var14
); /* native_to_s on <var14:NativeArray[String]>*/
6704 nitc___nitc__AbstractCompiler___provide_declaration(self
, var12
, var24
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
6707 var25
= nitc___nitc__SeparateErasureCompiler___nitc__abstract_compiler__AbstractCompiler__new_visitor(self
);
6710 if (unlikely(varonce26
==NULL
)) {
6711 var27
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
6712 if (likely(varonce28
!=NULL
)) {
6715 var30
= "const struct vts_table vts_table_";
6716 var31
= core__flat___NativeString___to_s_full(var30
, 33l, 33l);
6720 ((struct instance_core__NativeArray
*)var27
)->values
[0]=var29
;
6721 if (likely(varonce32
!=NULL
)) {
6725 var35
= core__flat___NativeString___to_s_full(var34
, 4l, 4l);
6729 ((struct instance_core__NativeArray
*)var27
)->values
[2]=var33
;
6735 var36
= nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var_mclass
);
6737 ((struct instance_core__NativeArray
*)var27
)->values
[1]=var36
;
6739 var37
= ((val
*(*)(val
* self
))(var27
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var27
); /* native_to_s on <var27:NativeArray[String]>*/
6743 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var37
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6745 if (likely(varonce38
!=NULL
)) {
6748 var40
= "0, /* dummy */";
6749 var41
= core__flat___NativeString___to_s_full(var40
, 14l, 14l);
6754 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var39
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6756 if (likely(varonce42
!=NULL
)) {
6760 var45
= core__flat___NativeString___to_s_full(var44
, 1l, 1l);
6765 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var43
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6768 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on <self:SeparateErasureCompiler> */
6769 var48
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
6770 if (unlikely(var48
== NULL
)) {
6771 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
6772 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 428);
6776 RET_LABEL47
:(void)0;
6780 var49
= ((val
*(*)(val
* self
, val
* p0
))((((long)var46
&3)?class_info
[((long)var46
&3)]:var46
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var46
, var_mclass
); /* [] on <var46:Map[MClass, Array[nullable MPropDef]]>*/
6784 var50
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
6789 var52
= ((short int(*)(val
* self
))((((long)var_51
&3)?class_info
[((long)var_51
&3)]:var_51
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_51
); /* is_ok on <var_51:IndexedIterator[nullable MPropDef]>*/
6796 var53
= ((val
*(*)(val
* self
))((((long)var_51
&3)?class_info
[((long)var_51
&3)]:var_51
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_51
); /* item on <var_51:IndexedIterator[nullable MPropDef]>*/
6799 if (var_vt
== NULL
) {
6800 var54
= 1; /* is null */
6802 var54
= 0; /* arg is null but recv is not */
6805 { /* Inline kernel#Object#== (var_vt,((val*)NULL)) on <var_vt:nullable MPropDef> */
6806 var_other
= ((val
*)NULL
);
6808 { /* Inline kernel#Object#is_same_instance (var_vt,var_other) on <var_vt:nullable MPropDef(MPropDef)> */
6809 var59
= var_vt
== var_other
;
6812 RET_LABEL58
:(void)0;
6817 RET_LABEL56
:(void)0;
6822 if (likely(varonce60
!=NULL
)) {
6825 var62
= "{-1, NULL}, /* empty */";
6826 var63
= core__flat___NativeString___to_s_full(var62
, 23l, 23l);
6831 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var61
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6836 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:MClass> */
6837 var66
= var_mclass
->attrs
[COLOR_nitc__model__MClass___intro
].val
; /* _intro on <var_mclass:MClass> */
6838 if (unlikely(var66
== NULL
)) {
6839 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
6840 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 483);
6844 RET_LABEL65
:(void)0;
6848 { /* Inline model#MClassDef#bound_mtype (var64) on <var64:MClassDef> */
6849 var69
= var64
->attrs
[COLOR_nitc__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var64:MClassDef> */
6850 if (unlikely(var69
== NULL
)) {
6851 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
6852 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 579);
6856 RET_LABEL68
:(void)0;
6859 /* <var_vt:nullable MPropDef(MPropDef)> isa MVirtualTypeDef */
6860 cltype
= type_nitc__MVirtualTypeDef
.color
;
6861 idtype
= type_nitc__MVirtualTypeDef
.id
;
6862 if(cltype
>= var_vt
->type
->table_size
) {
6865 var70
= var_vt
->type
->type_table
[cltype
] == idtype
;
6867 if (unlikely(!var70
)) {
6868 var_class_name
= var_vt
== NULL ?
"null" : var_vt
->type
->name
;
6869 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name
);
6870 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 389);
6874 { /* Inline model#MVirtualTypeDef#bound (var_vt) on <var_vt:MPropDef(MVirtualTypeDef)> */
6875 var73
= var_vt
->attrs
[COLOR_nitc__model__MVirtualTypeDef___bound
].val
; /* _bound on <var_vt:MPropDef(MVirtualTypeDef)> */
6877 RET_LABEL72
:(void)0;
6881 var74
= nitc___nitc__SeparateErasureCompiler___retrieve_vt_bound(self
, var67
, var71
);
6885 /* <var_bound:MType> isa MNullableType */
6886 cltype76
= type_nitc__MNullableType
.color
;
6887 idtype77
= type_nitc__MNullableType
.id
;
6888 if(cltype76
>= var_bound
->type
->table_size
) {
6891 var75
= var_bound
->type
->type_table
[cltype76
] == idtype77
;
6895 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:MClass> */
6896 var80
= var_mclass
->attrs
[COLOR_nitc__model__MClass___intro
].val
; /* _intro on <var_mclass:MClass> */
6897 if (unlikely(var80
== NULL
)) {
6898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
6899 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 483);
6903 RET_LABEL79
:(void)0;
6907 { /* Inline model#MClassDef#bound_mtype (var78) on <var78:MClassDef> */
6908 var83
= var78
->attrs
[COLOR_nitc__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var78:MClassDef> */
6909 if (unlikely(var83
== NULL
)) {
6910 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
6911 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 579);
6915 RET_LABEL82
:(void)0;
6919 { /* Inline model#MProxyType#mtype (var_bound) on <var_bound:MType(MNullableType)> */
6920 var86
= var_bound
->attrs
[COLOR_nitc__model__MProxyType___mtype
].val
; /* _mtype on <var_bound:MType(MNullableType)> */
6921 if (unlikely(var86
== NULL
)) {
6922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6923 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1625);
6927 RET_LABEL85
:(void)0;
6931 var87
= nitc___nitc__SeparateErasureCompiler___retrieve_vt_bound(self
, var81
, var84
);
6939 BREAK_label88
: (void)0;
6940 /* <var_bound:MType> isa MClassType */
6941 cltype90
= type_nitc__MClassType
.color
;
6942 idtype91
= type_nitc__MClassType
.id
;
6943 if(cltype90
>= var_bound
->type
->table_size
) {
6946 var89
= var_bound
->type
->type_table
[cltype90
] == idtype91
;
6948 if (unlikely(!var89
)) {
6949 var_class_name92
= var_bound
== NULL ?
"null" : var_bound
->type
->name
;
6950 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name92
);
6951 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 394);
6955 { /* Inline model#MClassType#mclass (var_bound) on <var_bound:MType(MClassType)> */
6956 var95
= var_bound
->attrs
[COLOR_nitc__model__MClassType___mclass
].val
; /* _mclass on <var_bound:MType(MClassType)> */
6957 if (unlikely(var95
== NULL
)) {
6958 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6959 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1163);
6963 RET_LABEL94
:(void)0;
6966 var_vtclass
= var93
;
6967 if (unlikely(varonce96
==NULL
)) {
6968 var97
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
6969 if (likely(varonce98
!=NULL
)) {
6973 var101
= core__flat___NativeString___to_s_full(var100
, 6l, 6l);
6977 ((struct instance_core__NativeArray
*)var97
)->values
[0]=var99
;
6983 var102
= nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var_vtclass
);
6985 ((struct instance_core__NativeArray
*)var97
)->values
[1]=var102
;
6987 var103
= ((val
*(*)(val
* self
))(var97
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var97
); /* native_to_s on <var97:NativeArray[String]>*/
6991 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v
, var103
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
6993 if (unlikely(varonce104
==NULL
)) {
6994 var105
= NEW_core__NativeArray(7l, &type_core__NativeArray__core__String
);
6995 if (likely(varonce106
!=NULL
)) {
6996 var107
= varonce106
;
6999 var109
= core__flat___NativeString___to_s_full(var108
, 1l, 1l);
7001 varonce106
= var107
;
7003 ((struct instance_core__NativeArray
*)var105
)->values
[0]=var107
;
7004 if (likely(varonce110
!=NULL
)) {
7005 var111
= varonce110
;
7007 var112
= ", &class_";
7008 var113
= core__flat___NativeString___to_s_full(var112
, 9l, 9l);
7010 varonce110
= var111
;
7012 ((struct instance_core__NativeArray
*)var105
)->values
[2]=var111
;
7013 if (likely(varonce114
!=NULL
)) {
7014 var115
= varonce114
;
7017 var117
= core__flat___NativeString___to_s_full(var116
, 6l, 6l);
7019 varonce114
= var115
;
7021 ((struct instance_core__NativeArray
*)var105
)->values
[4]=var115
;
7022 if (likely(varonce118
!=NULL
)) {
7023 var119
= varonce118
;
7026 var121
= core__flat___NativeString___to_s_full(var120
, 3l, 3l);
7028 varonce118
= var119
;
7030 ((struct instance_core__NativeArray
*)var105
)->values
[6]=var119
;
7032 var105
= varonce104
;
7035 var122
= core__flat___Int___core__abstract_text__Object__to_s(var_is_null
);
7036 ((struct instance_core__NativeArray
*)var105
)->values
[1]=var122
;
7038 var123
= nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var_vtclass
);
7040 ((struct instance_core__NativeArray
*)var105
)->values
[3]=var123
;
7042 var124
= ((val
*(*)(val
* self
))(var_vt
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_vt
); /* to_s on <var_vt:nullable MPropDef(MPropDef)>*/
7044 ((struct instance_core__NativeArray
*)var105
)->values
[5]=var124
;
7046 var125
= ((val
*(*)(val
* self
))(var105
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var105
); /* native_to_s on <var105:NativeArray[String]>*/
7048 varonce104
= var105
;
7050 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var125
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7054 ((void(*)(val
* self
))((((long)var_51
&3)?class_info
[((long)var_51
&3)]:var_51
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_51
); /* next on <var_51:IndexedIterator[nullable MPropDef]>*/
7057 BREAK_label
: (void)0;
7059 ((void(*)(val
* self
))((((long)var_51
&3)?class_info
[((long)var_51
&3)]:var_51
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_51
); /* finish on <var_51:IndexedIterator[nullable MPropDef]>*/
7061 if (likely(varonce126
!=NULL
)) {
7062 var127
= varonce126
;
7065 var129
= core__flat___NativeString___to_s_full(var128
, 2l, 2l);
7067 varonce126
= var127
;
7070 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var127
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7072 if (likely(varonce130
!=NULL
)) {
7073 var131
= varonce130
;
7076 var133
= core__flat___NativeString___to_s_full(var132
, 2l, 2l);
7078 varonce130
= var131
;
7081 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v
, var131
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7088 /* method separate_erasure_compiler#SeparateErasureCompiler#retrieve_vt_bound for (self: SeparateErasureCompiler, MClassType, nullable MType): MType */
7089 val
* nitc___nitc__SeparateErasureCompiler___retrieve_vt_bound(val
* self
, val
* p0
, val
* p1
) {
7090 val
* var
/* : MType */;
7091 val
* var_anchor
/* var anchor: MClassType */;
7092 val
* var_mtype
/* var mtype: nullable MType */;
7093 short int var1
/* : Bool */;
7094 short int var2
/* : Bool */;
7095 val
* var_other
/* var other: nullable Object */;
7096 short int var4
/* : Bool */;
7097 short int var6
/* : Bool */;
7098 val
* var7
/* : Sys */;
7099 static val
* varonce
;
7100 val
* var8
/* : String */;
7101 char* var9
/* : NativeString */;
7102 val
* var10
/* : String */;
7103 short int var11
/* : Bool */;
7106 val
* var12
/* : MModule */;
7107 val
* var14
/* : MModule */;
7108 val
* var15
/* : MType */;
7109 short int var16
/* : Bool */;
7112 val
* var19
/* : MModule */;
7113 val
* var21
/* : MModule */;
7114 val
* var22
/* : MType */;
7117 if (var_mtype
== NULL
) {
7118 var1
= 1; /* is null */
7120 var1
= 0; /* arg is null but recv is not */
7123 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
7124 var_other
= ((val
*)NULL
);
7126 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
7127 var6
= var_mtype
== var_other
;
7141 if (likely(varonce
!=NULL
)) {
7144 var9
= "NOT YET IMPLEMENTED: retrieve_vt_bound on null";
7145 var10
= core__flat___NativeString___to_s_full(var9
, 46l, 46l);
7150 core__file___Sys___print(var7
, var8
); /* Direct call file#Sys#print on <var7:Sys>*/
7152 PRINT_ERROR("Runtime error: %s", "Aborted");
7153 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 407);
7157 /* <var_mtype:nullable MType(MType)> isa MVirtualType */
7158 cltype
= type_nitc__MVirtualType
.color
;
7159 idtype
= type_nitc__MVirtualType
.id
;
7160 if(cltype
>= var_mtype
->type
->table_size
) {
7163 var11
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7167 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
7168 var14
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
7169 if (unlikely(var14
== NULL
)) {
7170 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7171 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
7175 RET_LABEL13
:(void)0;
7179 var15
= nitc___nitc__MType___anchor_to(var_mtype
, var12
, var_anchor
);
7184 /* <var_mtype:nullable MType(MType)> isa MParameterType */
7185 cltype17
= type_nitc__MParameterType
.color
;
7186 idtype18
= type_nitc__MParameterType
.id
;
7187 if(cltype17
>= var_mtype
->type
->table_size
) {
7190 var16
= var_mtype
->type
->type_table
[cltype17
] == idtype18
;
7194 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
7195 var21
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
7196 if (unlikely(var21
== NULL
)) {
7197 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7198 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 531);
7202 RET_LABEL20
:(void)0;
7206 var22
= nitc___nitc__MType___anchor_to(var_mtype
, var19
, var_anchor
);
7218 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_types for (self: SeparateErasureCompiler) */
7219 void nitc___nitc__SeparateErasureCompiler___nitc__separate_compiler__SeparateCompiler__compile_types(val
* self
) {
7220 val
* var
/* : Map[MVirtualTypeProp, Int] */;
7221 val
* var2
/* : Map[MVirtualTypeProp, Int] */;
7223 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors (self) on <self:SeparateErasureCompiler> */
7224 var2
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:SeparateErasureCompiler> */
7225 if (unlikely(var2
== NULL
)) {
7226 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
7227 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 86);
7235 nitc___nitc__SeparateCompiler___compile_color_consts(self
, var
); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:SeparateErasureCompiler>*/
7239 /* method separate_erasure_compiler#SeparateErasureCompiler#new_visitor for (self: SeparateErasureCompiler): SeparateCompilerVisitor */
7240 val
* nitc___nitc__SeparateErasureCompiler___nitc__abstract_compiler__AbstractCompiler__new_visitor(val
* self
) {
7241 val
* var
/* : SeparateCompilerVisitor */;
7242 val
* var1
/* : SeparateErasureCompilerVisitor */;
7243 short int var2
/* : Bool */;
7246 const struct type
* type_struct
;
7247 const char* var_class_name
;
7248 var1
= NEW_nitc__SeparateErasureCompilerVisitor(&type_nitc__SeparateErasureCompilerVisitor
);
7250 ((void(*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compiler_61d
]))(var1
, self
); /* compiler= on <var1:SeparateErasureCompilerVisitor>*/
7253 ((void(*)(val
* self
))(var1
->class->vft
[COLOR_core__kernel__Object__init
]))(var1
); /* init on <var1:SeparateErasureCompilerVisitor>*/
7255 /* <var1:SeparateErasureCompilerVisitor> isa VISITOR */
7256 type_struct
= self
->type
->resolution_table
->types
[COLOR_nitc__abstract_compiler__AbstractCompiler__VISITOR
];
7257 cltype
= type_struct
->color
;
7258 idtype
= type_struct
->id
;
7259 if(cltype
>= var1
->type
->table_size
) {
7262 var2
= var1
->type
->type_table
[cltype
] == idtype
;
7264 if (unlikely(!var2
)) {
7265 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
7266 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
7267 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 423);
7275 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables for (self: SeparateErasureCompiler): Map[MClass, Array[nullable MClass]] */
7276 val
* nitc___nitc__SeparateErasureCompiler___class_tables(val
* self
) {
7277 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
7278 val
* var1
/* : Map[MClass, Array[nullable MClass]] */;
7279 var1
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
; /* _class_tables on <self:SeparateErasureCompiler> */
7280 if (unlikely(var1
== NULL
)) {
7281 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables");
7282 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 427);
7289 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables= for (self: SeparateErasureCompiler, Map[MClass, Array[nullable MClass]]) */
7290 void nitc___nitc__SeparateErasureCompiler___class_tables_61d(val
* self
, val
* p0
) {
7291 self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
= p0
; /* _class_tables on <self:SeparateErasureCompiler> */
7294 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables for (self: SeparateErasureCompiler): Map[MClass, Array[nullable MPropDef]] */
7295 val
* nitc___nitc__SeparateErasureCompiler___vt_tables(val
* self
) {
7296 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
7297 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
7298 var1
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
7299 if (unlikely(var1
== NULL
)) {
7300 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
7301 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 428);
7308 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables= for (self: SeparateErasureCompiler, Map[MClass, Array[nullable MPropDef]]) */
7309 void nitc___nitc__SeparateErasureCompiler___vt_tables_61d(val
* self
, val
* p0
) {
7310 self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
= p0
; /* _vt_tables on <self:SeparateErasureCompiler> */
7313 /* method separate_erasure_compiler#SeparateErasureCompiler#display_sizes for (self: SeparateErasureCompiler) */
7314 void nitc___nitc__SeparateErasureCompiler___nitc__separate_compiler__SeparateCompiler__display_sizes(val
* self
) {
7315 val
* var
/* : Sys */;
7316 static val
* varonce
;
7317 val
* var1
/* : String */;
7318 char* var2
/* : NativeString */;
7319 val
* var3
/* : String */;
7320 val
* var4
/* : Sys */;
7321 static val
* varonce5
;
7322 val
* var6
/* : String */;
7323 char* var7
/* : NativeString */;
7324 val
* var8
/* : String */;
7325 long var_total
/* var total: Int */;
7326 long var_holes
/* var holes: Int */;
7327 val
* var9
/* : Map[MClass, Array[nullable MClass]] */;
7328 val
* var11
/* : Map[MClass, Array[nullable MClass]] */;
7329 val
* var_
/* var : Map[MClass, Array[nullable MClass]] */;
7330 val
* var12
/* : MapIterator[nullable Object, nullable Object] */;
7331 val
* var_13
/* var : MapIterator[MClass, Array[nullable MClass]] */;
7332 short int var14
/* : Bool */;
7333 val
* var15
/* : nullable Object */;
7334 val
* var_t
/* var t: MClass */;
7335 val
* var16
/* : nullable Object */;
7336 val
* var_table
/* var table: Array[nullable MClass] */;
7337 long var17
/* : Int */;
7338 long var19
/* : Int */;
7339 long var20
/* : Int */;
7340 short int var22
/* : Bool */;
7343 const char* var_class_name
;
7344 long var23
/* : Int */;
7345 val
* var_24
/* var : Array[nullable MClass] */;
7346 val
* var25
/* : IndexedIterator[nullable Object] */;
7347 val
* var_26
/* var : IndexedIterator[nullable MClass] */;
7348 short int var27
/* : Bool */;
7349 val
* var29
/* : nullable Object */;
7350 val
* var_e
/* var e: nullable MClass */;
7351 short int var30
/* : Bool */;
7352 short int var31
/* : Bool */;
7353 val
* var_other
/* var other: nullable Object */;
7354 short int var33
/* : Bool */;
7355 short int var35
/* : Bool */;
7356 long var36
/* : Int */;
7357 short int var38
/* : Bool */;
7360 const char* var_class_name41
;
7361 long var42
/* : Int */;
7362 val
* var44
/* : Sys */;
7363 val
* var46
/* : NativeArray[String] */;
7364 static val
* varonce45
;
7365 static val
* varonce47
;
7366 val
* var48
/* : String */;
7367 char* var49
/* : NativeString */;
7368 val
* var50
/* : String */;
7369 static val
* varonce51
;
7370 val
* var52
/* : String */;
7371 char* var53
/* : NativeString */;
7372 val
* var54
/* : String */;
7373 val
* var55
/* : String */;
7374 val
* var56
/* : String */;
7375 val
* var57
/* : String */;
7376 val
* var58
/* : Sys */;
7377 static val
* varonce59
;
7378 val
* var60
/* : String */;
7379 char* var61
/* : NativeString */;
7380 val
* var62
/* : String */;
7381 val
* var63
/* : Sys */;
7382 static val
* varonce64
;
7383 val
* var65
/* : String */;
7384 char* var66
/* : NativeString */;
7385 val
* var67
/* : String */;
7386 val
* var68
/* : Map[MClass, Array[nullable MPropDef]] */;
7387 val
* var70
/* : Map[MClass, Array[nullable MPropDef]] */;
7388 val
* var_71
/* var : Map[MClass, Array[nullable MPropDef]] */;
7389 val
* var72
/* : MapIterator[nullable Object, nullable Object] */;
7390 val
* var_73
/* var : MapIterator[MClass, Array[nullable MPropDef]] */;
7391 short int var74
/* : Bool */;
7392 val
* var76
/* : nullable Object */;
7393 val
* var_t77
/* var t: MClass */;
7394 val
* var78
/* : nullable Object */;
7395 val
* var_table79
/* var table: Array[nullable MPropDef] */;
7396 long var80
/* : Int */;
7397 long var82
/* : Int */;
7398 long var83
/* : Int */;
7399 short int var85
/* : Bool */;
7402 const char* var_class_name88
;
7403 long var89
/* : Int */;
7404 val
* var_90
/* var : Array[nullable MPropDef] */;
7405 val
* var91
/* : IndexedIterator[nullable Object] */;
7406 val
* var_92
/* var : IndexedIterator[nullable MPropDef] */;
7407 short int var93
/* : Bool */;
7408 val
* var95
/* : nullable Object */;
7409 val
* var_e96
/* var e: nullable MPropDef */;
7410 short int var97
/* : Bool */;
7411 short int var98
/* : Bool */;
7412 short int var100
/* : Bool */;
7413 short int var102
/* : Bool */;
7414 long var103
/* : Int */;
7415 short int var105
/* : Bool */;
7418 const char* var_class_name108
;
7419 long var109
/* : Int */;
7420 val
* var111
/* : Sys */;
7421 val
* var113
/* : NativeArray[String] */;
7422 static val
* varonce112
;
7423 static val
* varonce114
;
7424 val
* var115
/* : String */;
7425 char* var116
/* : NativeString */;
7426 val
* var117
/* : String */;
7427 static val
* varonce118
;
7428 val
* var119
/* : String */;
7429 char* var120
/* : NativeString */;
7430 val
* var121
/* : String */;
7431 val
* var122
/* : String */;
7432 val
* var123
/* : String */;
7433 val
* var124
/* : String */;
7434 val
* var125
/* : Sys */;
7435 static val
* varonce126
;
7436 val
* var127
/* : String */;
7437 char* var128
/* : NativeString */;
7438 val
* var129
/* : String */;
7439 val
* var130
/* : Sys */;
7440 static val
* varonce131
;
7441 val
* var132
/* : String */;
7442 char* var133
/* : NativeString */;
7443 val
* var134
/* : String */;
7444 val
* var135
/* : Map[MClass, Array[nullable MPropDef]] */;
7445 val
* var137
/* : Map[MClass, Array[nullable MPropDef]] */;
7446 val
* var_138
/* var : Map[MClass, Array[nullable MPropDef]] */;
7447 val
* var139
/* : MapIterator[nullable Object, nullable Object] */;
7448 val
* var_140
/* var : MapIterator[MClass, Array[nullable MPropDef]] */;
7449 short int var141
/* : Bool */;
7450 val
* var143
/* : nullable Object */;
7451 val
* var_t144
/* var t: MClass */;
7452 val
* var145
/* : nullable Object */;
7453 val
* var_table146
/* var table: Array[nullable MPropDef] */;
7454 long var147
/* : Int */;
7455 long var149
/* : Int */;
7456 long var150
/* : Int */;
7457 short int var152
/* : Bool */;
7460 const char* var_class_name155
;
7461 long var156
/* : Int */;
7462 val
* var_157
/* var : Array[nullable MPropDef] */;
7463 val
* var158
/* : IndexedIterator[nullable Object] */;
7464 val
* var_159
/* var : IndexedIterator[nullable MPropDef] */;
7465 short int var160
/* : Bool */;
7466 val
* var162
/* : nullable Object */;
7467 val
* var_e163
/* var e: nullable MPropDef */;
7468 short int var164
/* : Bool */;
7469 short int var165
/* : Bool */;
7470 short int var167
/* : Bool */;
7471 short int var169
/* : Bool */;
7472 long var170
/* : Int */;
7473 short int var172
/* : Bool */;
7476 const char* var_class_name175
;
7477 long var176
/* : Int */;
7478 val
* var178
/* : Sys */;
7479 val
* var180
/* : NativeArray[String] */;
7480 static val
* varonce179
;
7481 static val
* varonce181
;
7482 val
* var182
/* : String */;
7483 char* var183
/* : NativeString */;
7484 val
* var184
/* : String */;
7485 static val
* varonce185
;
7486 val
* var186
/* : String */;
7487 char* var187
/* : NativeString */;
7488 val
* var188
/* : String */;
7489 val
* var189
/* : String */;
7490 val
* var190
/* : String */;
7491 val
* var191
/* : String */;
7492 val
* var192
/* : Sys */;
7493 static val
* varonce193
;
7494 val
* var194
/* : String */;
7495 char* var195
/* : NativeString */;
7496 val
* var196
/* : String */;
7497 val
* var197
/* : Sys */;
7498 static val
* varonce198
;
7499 val
* var199
/* : String */;
7500 char* var200
/* : NativeString */;
7501 val
* var201
/* : String */;
7502 val
* var202
/* : Map[MClass, Array[nullable MProperty]] */;
7503 val
* var204
/* : Map[MClass, Array[nullable MProperty]] */;
7504 val
* var_205
/* var : Map[MClass, Array[nullable MProperty]] */;
7505 val
* var206
/* : MapIterator[nullable Object, nullable Object] */;
7506 val
* var_207
/* var : MapIterator[MClass, Array[nullable MProperty]] */;
7507 short int var208
/* : Bool */;
7508 val
* var210
/* : nullable Object */;
7509 val
* var_t211
/* var t: MClass */;
7510 val
* var212
/* : nullable Object */;
7511 val
* var_table213
/* var table: Array[nullable MProperty] */;
7512 long var214
/* : Int */;
7513 long var216
/* : Int */;
7514 long var217
/* : Int */;
7515 short int var219
/* : Bool */;
7518 const char* var_class_name222
;
7519 long var223
/* : Int */;
7520 val
* var_224
/* var : Array[nullable MProperty] */;
7521 val
* var225
/* : IndexedIterator[nullable Object] */;
7522 val
* var_226
/* var : IndexedIterator[nullable MProperty] */;
7523 short int var227
/* : Bool */;
7524 val
* var229
/* : nullable Object */;
7525 val
* var_e230
/* var e: nullable MProperty */;
7526 short int var231
/* : Bool */;
7527 short int var232
/* : Bool */;
7528 short int var234
/* : Bool */;
7529 short int var236
/* : Bool */;
7530 long var237
/* : Int */;
7531 short int var239
/* : Bool */;
7534 const char* var_class_name242
;
7535 long var243
/* : Int */;
7536 val
* var245
/* : Sys */;
7537 val
* var247
/* : NativeArray[String] */;
7538 static val
* varonce246
;
7539 static val
* varonce248
;
7540 val
* var249
/* : String */;
7541 char* var250
/* : NativeString */;
7542 val
* var251
/* : String */;
7543 static val
* varonce252
;
7544 val
* var253
/* : String */;
7545 char* var254
/* : NativeString */;
7546 val
* var255
/* : String */;
7547 val
* var256
/* : String */;
7548 val
* var257
/* : String */;
7549 val
* var258
/* : String */;
7551 if (likely(varonce
!=NULL
)) {
7554 var2
= "# size of subtyping tables";
7555 var3
= core__flat___NativeString___to_s_full(var2
, 26l, 26l);
7560 core__file___Sys___print(var
, var1
); /* Direct call file#Sys#print on <var:Sys>*/
7563 if (likely(varonce5
!=NULL
)) {
7566 var7
= "\ttotal \tholes";
7567 var8
= core__flat___NativeString___to_s_full(var7
, 13l, 13l);
7572 core__file___Sys___print(var4
, var6
); /* Direct call file#Sys#print on <var4:Sys>*/
7577 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables (self) on <self:SeparateErasureCompiler> */
7578 var11
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
; /* _class_tables on <self:SeparateErasureCompiler> */
7579 if (unlikely(var11
== NULL
)) {
7580 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables");
7581 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 427);
7585 RET_LABEL10
:(void)0;
7590 var12
= ((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[MClass, Array[nullable MClass]]>*/
7595 var14
= ((short int(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__MapIterator__is_ok
]))(var_13
); /* is_ok on <var_13:MapIterator[MClass, Array[nullable MClass]]>*/
7602 var15
= ((val
*(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__MapIterator__key
]))(var_13
); /* key on <var_13:MapIterator[MClass, Array[nullable MClass]]>*/
7606 var16
= ((val
*(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__MapIterator__item
]))(var_13
); /* item on <var_13:MapIterator[MClass, Array[nullable MClass]]>*/
7610 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MClass]> */
7611 var19
= var_table
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MClass]> */
7613 RET_LABEL18
:(void)0;
7617 { /* Inline kernel#Int#+ (var_total,var17) on <var_total:Int> */
7618 /* Covariant cast for argument 0 (i) <var17:Int> isa OTHER */
7619 /* <var17:Int> isa OTHER */
7620 var22
= 1; /* easy <var17:Int> isa OTHER*/
7621 if (unlikely(!var22
)) {
7622 var_class_name
= type_core__Int
.name
;
7623 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
7624 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
7627 var23
= var_total
+ var17
;
7630 RET_LABEL21
:(void)0;
7636 var25
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_24
);
7641 var27
= ((short int(*)(val
* self
))((((long)var_26
&3)?class_info
[((long)var_26
&3)]:var_26
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_26
); /* is_ok on <var_26:IndexedIterator[nullable MClass]>*/
7648 var29
= ((val
*(*)(val
* self
))((((long)var_26
&3)?class_info
[((long)var_26
&3)]:var_26
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_26
); /* item on <var_26:IndexedIterator[nullable MClass]>*/
7651 if (var_e
== NULL
) {
7652 var30
= 1; /* is null */
7654 var30
= 0; /* arg is null but recv is not */
7657 { /* Inline kernel#Object#== (var_e,((val*)NULL)) on <var_e:nullable MClass> */
7658 var_other
= ((val
*)NULL
);
7660 { /* Inline kernel#Object#is_same_instance (var_e,var_other) on <var_e:nullable MClass(MClass)> */
7661 var35
= var_e
== var_other
;
7664 RET_LABEL34
:(void)0;
7669 RET_LABEL32
:(void)0;
7675 { /* Inline kernel#Int#+ (var_holes,1l) on <var_holes:Int> */
7676 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7677 /* <1l:Int> isa OTHER */
7678 var38
= 1; /* easy <1l:Int> isa OTHER*/
7679 if (unlikely(!var38
)) {
7680 var_class_name41
= type_core__Int
.name
;
7681 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41
);
7682 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
7685 var42
= var_holes
+ 1l;
7688 RET_LABEL37
:(void)0;
7695 ((void(*)(val
* self
))((((long)var_26
&3)?class_info
[((long)var_26
&3)]:var_26
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_26
); /* next on <var_26:IndexedIterator[nullable MClass]>*/
7698 BREAK_label28
: (void)0;
7700 ((void(*)(val
* self
))((((long)var_26
&3)?class_info
[((long)var_26
&3)]:var_26
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_26
); /* finish on <var_26:IndexedIterator[nullable MClass]>*/
7703 ((void(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__MapIterator__next
]))(var_13
); /* next on <var_13:MapIterator[MClass, Array[nullable MClass]]>*/
7706 BREAK_label
: (void)0;
7708 { /* Inline abstract_collection#MapIterator#finish (var_13) on <var_13:MapIterator[MClass, Array[nullable MClass]]> */
7709 RET_LABEL43
:(void)0;
7713 if (unlikely(varonce45
==NULL
)) {
7714 var46
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
7715 if (likely(varonce47
!=NULL
)) {
7719 var50
= core__flat___NativeString___to_s_full(var49
, 1l, 1l);
7723 ((struct instance_core__NativeArray
*)var46
)->values
[0]=var48
;
7724 if (likely(varonce51
!=NULL
)) {
7728 var54
= core__flat___NativeString___to_s_full(var53
, 1l, 1l);
7732 ((struct instance_core__NativeArray
*)var46
)->values
[2]=var52
;
7737 var55
= core__flat___Int___core__abstract_text__Object__to_s(var_total
);
7738 ((struct instance_core__NativeArray
*)var46
)->values
[1]=var55
;
7739 var56
= core__flat___Int___core__abstract_text__Object__to_s(var_holes
);
7740 ((struct instance_core__NativeArray
*)var46
)->values
[3]=var56
;
7742 var57
= ((val
*(*)(val
* self
))(var46
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var46
); /* native_to_s on <var46:NativeArray[String]>*/
7746 core__file___Sys___print(var44
, var57
); /* Direct call file#Sys#print on <var44:Sys>*/
7749 if (likely(varonce59
!=NULL
)) {
7752 var61
= "# size of resolution tables";
7753 var62
= core__flat___NativeString___to_s_full(var61
, 27l, 27l);
7758 core__file___Sys___print(var58
, var60
); /* Direct call file#Sys#print on <var58:Sys>*/
7761 if (likely(varonce64
!=NULL
)) {
7764 var66
= "\ttotal \tholes";
7765 var67
= core__flat___NativeString___to_s_full(var66
, 13l, 13l);
7770 core__file___Sys___print(var63
, var65
); /* Direct call file#Sys#print on <var63:Sys>*/
7775 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on <self:SeparateErasureCompiler> */
7776 var70
= self
->attrs
[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
7777 if (unlikely(var70
== NULL
)) {
7778 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
7779 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 428);
7783 RET_LABEL69
:(void)0;
7788 var72
= ((val
*(*)(val
* self
))((((long)var_71
&3)?class_info
[((long)var_71
&3)]:var_71
->class)->vft
[COLOR_core__abstract_collection__MapRead__iterator
]))(var_71
); /* iterator on <var_71:Map[MClass, Array[nullable MPropDef]]>*/
7793 var74
= ((short int(*)(val
* self
))((((long)var_73
&3)?class_info
[((long)var_73
&3)]:var_73
->class)->vft
[COLOR_core__abstract_collection__MapIterator__is_ok
]))(var_73
); /* is_ok on <var_73:MapIterator[MClass, Array[nullable MPropDef]]>*/
7800 var76
= ((val
*(*)(val
* self
))((((long)var_73
&3)?class_info
[((long)var_73
&3)]:var_73
->class)->vft
[COLOR_core__abstract_collection__MapIterator__key
]))(var_73
); /* key on <var_73:MapIterator[MClass, Array[nullable MPropDef]]>*/
7804 var78
= ((val
*(*)(val
* self
))((((long)var_73
&3)?class_info
[((long)var_73
&3)]:var_73
->class)->vft
[COLOR_core__abstract_collection__MapIterator__item
]))(var_73
); /* item on <var_73:MapIterator[MClass, Array[nullable MPropDef]]>*/
7806 var_table79
= var78
;
7808 { /* Inline array#AbstractArrayRead#length (var_table79) on <var_table79:Array[nullable MPropDef]> */
7809 var82
= var_table79
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table79:Array[nullable MPropDef]> */
7811 RET_LABEL81
:(void)0;
7815 { /* Inline kernel#Int#+ (var_total,var80) on <var_total:Int> */
7816 /* Covariant cast for argument 0 (i) <var80:Int> isa OTHER */
7817 /* <var80:Int> isa OTHER */
7818 var85
= 1; /* easy <var80:Int> isa OTHER*/
7819 if (unlikely(!var85
)) {
7820 var_class_name88
= type_core__Int
.name
;
7821 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name88
);
7822 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
7825 var89
= var_total
+ var80
;
7828 RET_LABEL84
:(void)0;
7832 var_90
= var_table79
;
7834 var91
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_90
);
7839 var93
= ((short int(*)(val
* self
))((((long)var_92
&3)?class_info
[((long)var_92
&3)]:var_92
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_92
); /* is_ok on <var_92:IndexedIterator[nullable MPropDef]>*/
7846 var95
= ((val
*(*)(val
* self
))((((long)var_92
&3)?class_info
[((long)var_92
&3)]:var_92
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_92
); /* item on <var_92:IndexedIterator[nullable MPropDef]>*/
7849 if (var_e96
== NULL
) {
7850 var97
= 1; /* is null */
7852 var97
= 0; /* arg is null but recv is not */
7855 { /* Inline kernel#Object#== (var_e96,((val*)NULL)) on <var_e96:nullable MPropDef> */
7856 var_other
= ((val
*)NULL
);
7858 { /* Inline kernel#Object#is_same_instance (var_e96,var_other) on <var_e96:nullable MPropDef(MPropDef)> */
7859 var102
= var_e96
== var_other
;
7862 RET_LABEL101
:(void)0;
7867 RET_LABEL99
:(void)0;
7873 { /* Inline kernel#Int#+ (var_holes,1l) on <var_holes:Int> */
7874 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7875 /* <1l:Int> isa OTHER */
7876 var105
= 1; /* easy <1l:Int> isa OTHER*/
7877 if (unlikely(!var105
)) {
7878 var_class_name108
= type_core__Int
.name
;
7879 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name108
);
7880 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
7883 var109
= var_holes
+ 1l;
7886 RET_LABEL104
:(void)0;
7893 ((void(*)(val
* self
))((((long)var_92
&3)?class_info
[((long)var_92
&3)]:var_92
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_92
); /* next on <var_92:IndexedIterator[nullable MPropDef]>*/
7896 BREAK_label94
: (void)0;
7898 ((void(*)(val
* self
))((((long)var_92
&3)?class_info
[((long)var_92
&3)]:var_92
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_92
); /* finish on <var_92:IndexedIterator[nullable MPropDef]>*/
7901 ((void(*)(val
* self
))((((long)var_73
&3)?class_info
[((long)var_73
&3)]:var_73
->class)->vft
[COLOR_core__abstract_collection__MapIterator__next
]))(var_73
); /* next on <var_73:MapIterator[MClass, Array[nullable MPropDef]]>*/
7904 BREAK_label75
: (void)0;
7906 { /* Inline abstract_collection#MapIterator#finish (var_73) on <var_73:MapIterator[MClass, Array[nullable MPropDef]]> */
7907 RET_LABEL110
:(void)0;
7911 if (unlikely(varonce112
==NULL
)) {
7912 var113
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
7913 if (likely(varonce114
!=NULL
)) {
7914 var115
= varonce114
;
7917 var117
= core__flat___NativeString___to_s_full(var116
, 1l, 1l);
7919 varonce114
= var115
;
7921 ((struct instance_core__NativeArray
*)var113
)->values
[0]=var115
;
7922 if (likely(varonce118
!=NULL
)) {
7923 var119
= varonce118
;
7926 var121
= core__flat___NativeString___to_s_full(var120
, 1l, 1l);
7928 varonce118
= var119
;
7930 ((struct instance_core__NativeArray
*)var113
)->values
[2]=var119
;
7932 var113
= varonce112
;
7935 var122
= core__flat___Int___core__abstract_text__Object__to_s(var_total
);
7936 ((struct instance_core__NativeArray
*)var113
)->values
[1]=var122
;
7937 var123
= core__flat___Int___core__abstract_text__Object__to_s(var_holes
);
7938 ((struct instance_core__NativeArray
*)var113
)->values
[3]=var123
;
7940 var124
= ((val
*(*)(val
* self
))(var113
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var113
); /* native_to_s on <var113:NativeArray[String]>*/
7942 varonce112
= var113
;
7944 core__file___Sys___print(var111
, var124
); /* Direct call file#Sys#print on <var111:Sys>*/
7947 if (likely(varonce126
!=NULL
)) {
7948 var127
= varonce126
;
7950 var128
= "# size of methods tables";
7951 var129
= core__flat___NativeString___to_s_full(var128
, 24l, 24l);
7953 varonce126
= var127
;
7956 core__file___Sys___print(var125
, var127
); /* Direct call file#Sys#print on <var125:Sys>*/
7959 if (likely(varonce131
!=NULL
)) {
7960 var132
= varonce131
;
7962 var133
= "\ttotal \tholes";
7963 var134
= core__flat___NativeString___to_s_full(var133
, 13l, 13l);
7965 varonce131
= var132
;
7968 core__file___Sys___print(var130
, var132
); /* Direct call file#Sys#print on <var130:Sys>*/
7973 { /* Inline separate_compiler#SeparateCompiler#method_tables (self) on <self:SeparateErasureCompiler> */
7974 var137
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___method_tables
].val
; /* _method_tables on <self:SeparateErasureCompiler> */
7975 if (unlikely(var137
== NULL
)) {
7976 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
7977 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 1067);
7981 RET_LABEL136
:(void)0;
7986 var139
= ((val
*(*)(val
* self
))((((long)var_138
&3)?class_info
[((long)var_138
&3)]:var_138
->class)->vft
[COLOR_core__abstract_collection__MapRead__iterator
]))(var_138
); /* iterator on <var_138:Map[MClass, Array[nullable MPropDef]]>*/
7991 var141
= ((short int(*)(val
* self
))((((long)var_140
&3)?class_info
[((long)var_140
&3)]:var_140
->class)->vft
[COLOR_core__abstract_collection__MapIterator__is_ok
]))(var_140
); /* is_ok on <var_140:MapIterator[MClass, Array[nullable MPropDef]]>*/
7995 goto BREAK_label142
;
7998 var143
= ((val
*(*)(val
* self
))((((long)var_140
&3)?class_info
[((long)var_140
&3)]:var_140
->class)->vft
[COLOR_core__abstract_collection__MapIterator__key
]))(var_140
); /* key on <var_140:MapIterator[MClass, Array[nullable MPropDef]]>*/
8002 var145
= ((val
*(*)(val
* self
))((((long)var_140
&3)?class_info
[((long)var_140
&3)]:var_140
->class)->vft
[COLOR_core__abstract_collection__MapIterator__item
]))(var_140
); /* item on <var_140:MapIterator[MClass, Array[nullable MPropDef]]>*/
8004 var_table146
= var145
;
8006 { /* Inline array#AbstractArrayRead#length (var_table146) on <var_table146:Array[nullable MPropDef]> */
8007 var149
= var_table146
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table146:Array[nullable MPropDef]> */
8009 RET_LABEL148
:(void)0;
8013 { /* Inline kernel#Int#+ (var_total,var147) on <var_total:Int> */
8014 /* Covariant cast for argument 0 (i) <var147:Int> isa OTHER */
8015 /* <var147:Int> isa OTHER */
8016 var152
= 1; /* easy <var147:Int> isa OTHER*/
8017 if (unlikely(!var152
)) {
8018 var_class_name155
= type_core__Int
.name
;
8019 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name155
);
8020 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
8023 var156
= var_total
+ var147
;
8026 RET_LABEL151
:(void)0;
8030 var_157
= var_table146
;
8032 var158
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_157
);
8037 var160
= ((short int(*)(val
* self
))((((long)var_159
&3)?class_info
[((long)var_159
&3)]:var_159
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_159
); /* is_ok on <var_159:IndexedIterator[nullable MPropDef]>*/
8041 goto BREAK_label161
;
8044 var162
= ((val
*(*)(val
* self
))((((long)var_159
&3)?class_info
[((long)var_159
&3)]:var_159
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_159
); /* item on <var_159:IndexedIterator[nullable MPropDef]>*/
8047 if (var_e163
== NULL
) {
8048 var164
= 1; /* is null */
8050 var164
= 0; /* arg is null but recv is not */
8053 { /* Inline kernel#Object#== (var_e163,((val*)NULL)) on <var_e163:nullable MPropDef> */
8054 var_other
= ((val
*)NULL
);
8056 { /* Inline kernel#Object#is_same_instance (var_e163,var_other) on <var_e163:nullable MPropDef(MPropDef)> */
8057 var169
= var_e163
== var_other
;
8060 RET_LABEL168
:(void)0;
8065 RET_LABEL166
:(void)0;
8071 { /* Inline kernel#Int#+ (var_holes,1l) on <var_holes:Int> */
8072 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
8073 /* <1l:Int> isa OTHER */
8074 var172
= 1; /* easy <1l:Int> isa OTHER*/
8075 if (unlikely(!var172
)) {
8076 var_class_name175
= type_core__Int
.name
;
8077 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name175
);
8078 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
8081 var176
= var_holes
+ 1l;
8084 RET_LABEL171
:(void)0;
8091 ((void(*)(val
* self
))((((long)var_159
&3)?class_info
[((long)var_159
&3)]:var_159
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_159
); /* next on <var_159:IndexedIterator[nullable MPropDef]>*/
8094 BREAK_label161
: (void)0;
8096 ((void(*)(val
* self
))((((long)var_159
&3)?class_info
[((long)var_159
&3)]:var_159
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_159
); /* finish on <var_159:IndexedIterator[nullable MPropDef]>*/
8099 ((void(*)(val
* self
))((((long)var_140
&3)?class_info
[((long)var_140
&3)]:var_140
->class)->vft
[COLOR_core__abstract_collection__MapIterator__next
]))(var_140
); /* next on <var_140:MapIterator[MClass, Array[nullable MPropDef]]>*/
8102 BREAK_label142
: (void)0;
8104 { /* Inline abstract_collection#MapIterator#finish (var_140) on <var_140:MapIterator[MClass, Array[nullable MPropDef]]> */
8105 RET_LABEL177
:(void)0;
8109 if (unlikely(varonce179
==NULL
)) {
8110 var180
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
8111 if (likely(varonce181
!=NULL
)) {
8112 var182
= varonce181
;
8115 var184
= core__flat___NativeString___to_s_full(var183
, 1l, 1l);
8117 varonce181
= var182
;
8119 ((struct instance_core__NativeArray
*)var180
)->values
[0]=var182
;
8120 if (likely(varonce185
!=NULL
)) {
8121 var186
= varonce185
;
8124 var188
= core__flat___NativeString___to_s_full(var187
, 1l, 1l);
8126 varonce185
= var186
;
8128 ((struct instance_core__NativeArray
*)var180
)->values
[2]=var186
;
8130 var180
= varonce179
;
8133 var189
= core__flat___Int___core__abstract_text__Object__to_s(var_total
);
8134 ((struct instance_core__NativeArray
*)var180
)->values
[1]=var189
;
8135 var190
= core__flat___Int___core__abstract_text__Object__to_s(var_holes
);
8136 ((struct instance_core__NativeArray
*)var180
)->values
[3]=var190
;
8138 var191
= ((val
*(*)(val
* self
))(var180
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var180
); /* native_to_s on <var180:NativeArray[String]>*/
8140 varonce179
= var180
;
8142 core__file___Sys___print(var178
, var191
); /* Direct call file#Sys#print on <var178:Sys>*/
8145 if (likely(varonce193
!=NULL
)) {
8146 var194
= varonce193
;
8148 var195
= "# size of attributes tables";
8149 var196
= core__flat___NativeString___to_s_full(var195
, 27l, 27l);
8151 varonce193
= var194
;
8154 core__file___Sys___print(var192
, var194
); /* Direct call file#Sys#print on <var192:Sys>*/
8157 if (likely(varonce198
!=NULL
)) {
8158 var199
= varonce198
;
8160 var200
= "\ttotal \tholes";
8161 var201
= core__flat___NativeString___to_s_full(var200
, 13l, 13l);
8163 varonce198
= var199
;
8166 core__file___Sys___print(var197
, var199
); /* Direct call file#Sys#print on <var197:Sys>*/
8171 { /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on <self:SeparateErasureCompiler> */
8172 var204
= self
->attrs
[COLOR_nitc__separate_compiler__SeparateCompiler___attr_tables
].val
; /* _attr_tables on <self:SeparateErasureCompiler> */
8173 if (unlikely(var204
== NULL
)) {
8174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
8175 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler
, 1068);
8179 RET_LABEL203
:(void)0;
8184 var206
= ((val
*(*)(val
* self
))((((long)var_205
&3)?class_info
[((long)var_205
&3)]:var_205
->class)->vft
[COLOR_core__abstract_collection__MapRead__iterator
]))(var_205
); /* iterator on <var_205:Map[MClass, Array[nullable MProperty]]>*/
8189 var208
= ((short int(*)(val
* self
))((((long)var_207
&3)?class_info
[((long)var_207
&3)]:var_207
->class)->vft
[COLOR_core__abstract_collection__MapIterator__is_ok
]))(var_207
); /* is_ok on <var_207:MapIterator[MClass, Array[nullable MProperty]]>*/
8193 goto BREAK_label209
;
8196 var210
= ((val
*(*)(val
* self
))((((long)var_207
&3)?class_info
[((long)var_207
&3)]:var_207
->class)->vft
[COLOR_core__abstract_collection__MapIterator__key
]))(var_207
); /* key on <var_207:MapIterator[MClass, Array[nullable MProperty]]>*/
8200 var212
= ((val
*(*)(val
* self
))((((long)var_207
&3)?class_info
[((long)var_207
&3)]:var_207
->class)->vft
[COLOR_core__abstract_collection__MapIterator__item
]))(var_207
); /* item on <var_207:MapIterator[MClass, Array[nullable MProperty]]>*/
8202 var_table213
= var212
;
8204 { /* Inline array#AbstractArrayRead#length (var_table213) on <var_table213:Array[nullable MProperty]> */
8205 var216
= var_table213
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table213:Array[nullable MProperty]> */
8207 RET_LABEL215
:(void)0;
8211 { /* Inline kernel#Int#+ (var_total,var214) on <var_total:Int> */
8212 /* Covariant cast for argument 0 (i) <var214:Int> isa OTHER */
8213 /* <var214:Int> isa OTHER */
8214 var219
= 1; /* easy <var214:Int> isa OTHER*/
8215 if (unlikely(!var219
)) {
8216 var_class_name222
= type_core__Int
.name
;
8217 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name222
);
8218 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
8221 var223
= var_total
+ var214
;
8224 RET_LABEL218
:(void)0;
8228 var_224
= var_table213
;
8230 var225
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_224
);
8235 var227
= ((short int(*)(val
* self
))((((long)var_226
&3)?class_info
[((long)var_226
&3)]:var_226
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_226
); /* is_ok on <var_226:IndexedIterator[nullable MProperty]>*/
8239 goto BREAK_label228
;
8242 var229
= ((val
*(*)(val
* self
))((((long)var_226
&3)?class_info
[((long)var_226
&3)]:var_226
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_226
); /* item on <var_226:IndexedIterator[nullable MProperty]>*/
8245 if (var_e230
== NULL
) {
8246 var231
= 1; /* is null */
8248 var231
= 0; /* arg is null but recv is not */
8251 { /* Inline kernel#Object#== (var_e230,((val*)NULL)) on <var_e230:nullable MProperty> */
8252 var_other
= ((val
*)NULL
);
8254 { /* Inline kernel#Object#is_same_instance (var_e230,var_other) on <var_e230:nullable MProperty(MProperty)> */
8255 var236
= var_e230
== var_other
;
8258 RET_LABEL235
:(void)0;
8263 RET_LABEL233
:(void)0;
8269 { /* Inline kernel#Int#+ (var_holes,1l) on <var_holes:Int> */
8270 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
8271 /* <1l:Int> isa OTHER */
8272 var239
= 1; /* easy <1l:Int> isa OTHER*/
8273 if (unlikely(!var239
)) {
8274 var_class_name242
= type_core__Int
.name
;
8275 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name242
);
8276 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
8279 var243
= var_holes
+ 1l;
8282 RET_LABEL238
:(void)0;
8289 ((void(*)(val
* self
))((((long)var_226
&3)?class_info
[((long)var_226
&3)]:var_226
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_226
); /* next on <var_226:IndexedIterator[nullable MProperty]>*/
8292 BREAK_label228
: (void)0;
8294 ((void(*)(val
* self
))((((long)var_226
&3)?class_info
[((long)var_226
&3)]:var_226
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_226
); /* finish on <var_226:IndexedIterator[nullable MProperty]>*/
8297 ((void(*)(val
* self
))((((long)var_207
&3)?class_info
[((long)var_207
&3)]:var_207
->class)->vft
[COLOR_core__abstract_collection__MapIterator__next
]))(var_207
); /* next on <var_207:MapIterator[MClass, Array[nullable MProperty]]>*/
8300 BREAK_label209
: (void)0;
8302 { /* Inline abstract_collection#MapIterator#finish (var_207) on <var_207:MapIterator[MClass, Array[nullable MProperty]]> */
8303 RET_LABEL244
:(void)0;
8307 if (unlikely(varonce246
==NULL
)) {
8308 var247
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
8309 if (likely(varonce248
!=NULL
)) {
8310 var249
= varonce248
;
8313 var251
= core__flat___NativeString___to_s_full(var250
, 1l, 1l);
8315 varonce248
= var249
;
8317 ((struct instance_core__NativeArray
*)var247
)->values
[0]=var249
;
8318 if (likely(varonce252
!=NULL
)) {
8319 var253
= varonce252
;
8322 var255
= core__flat___NativeString___to_s_full(var254
, 1l, 1l);
8324 varonce252
= var253
;
8326 ((struct instance_core__NativeArray
*)var247
)->values
[2]=var253
;
8328 var247
= varonce246
;
8331 var256
= core__flat___Int___core__abstract_text__Object__to_s(var_total
);
8332 ((struct instance_core__NativeArray
*)var247
)->values
[1]=var256
;
8333 var257
= core__flat___Int___core__abstract_text__Object__to_s(var_holes
);
8334 ((struct instance_core__NativeArray
*)var247
)->values
[3]=var257
;
8336 var258
= ((val
*(*)(val
* self
))(var247
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var247
); /* native_to_s on <var247:NativeArray[String]>*/
8338 varonce246
= var247
;
8340 core__file___Sys___print(var245
, var258
); /* Direct call file#Sys#print on <var245:Sys>*/
8344 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#compile_callsite for (self: SeparateErasureCompilerVisitor, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
8345 val
* nitc___nitc__SeparateErasureCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite(val
* self
, val
* p0
, val
* p1
) {
8346 val
* var
/* : nullable RuntimeVariable */;
8347 val
* var_callsite
/* var callsite: CallSite */;
8348 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
8349 val
* var1
/* : nullable RuntimeVariable */;
8350 val
* var_res
/* var res: nullable RuntimeVariable */;
8351 short int var2
/* : Bool */;
8352 short int var3
/* : Bool */;
8353 short int var5
/* : Bool */;
8354 short int var_
/* var : Bool */;
8355 val
* var6
/* : AbstractCompiler */;
8356 val
* var8
/* : AbstractCompiler */;
8357 short int var9
/* : Bool */;
8360 const char* var_class_name
;
8361 val
* var10
/* : ModelBuilder */;
8362 val
* var12
/* : ModelBuilder */;
8363 val
* var13
/* : ToolContext */;
8364 val
* var15
/* : ToolContext */;
8365 val
* var16
/* : OptionBool */;
8366 val
* var18
/* : OptionBool */;
8367 val
* var19
/* : nullable Object */;
8368 val
* var21
/* : nullable Object */;
8369 short int var22
/* : Bool */;
8370 short int var23
/* : Bool */;
8371 short int var24
/* : Bool */;
8372 short int var25
/* : Bool */;
8373 val
* var_other
/* var other: nullable Object */;
8374 short int var27
/* : Bool */;
8375 short int var28
/* : Bool */;
8376 val
* var29
/* : MSignature */;
8377 val
* var31
/* : MSignature */;
8378 val
* var32
/* : nullable MType */;
8379 val
* var34
/* : nullable MType */;
8380 val
* var_mtype
/* var mtype: nullable MType */;
8381 short int var35
/* : Bool */;
8382 short int var36
/* : Bool */;
8383 short int var38
/* : Bool */;
8384 short int var39
/* : Bool */;
8385 val
* var40
/* : NativeArray[String] */;
8386 static val
* varonce
;
8387 static val
* varonce41
;
8388 val
* var42
/* : String */;
8389 char* var43
/* : NativeString */;
8390 val
* var44
/* : String */;
8391 static val
* varonce45
;
8392 val
* var46
/* : String */;
8393 char* var47
/* : NativeString */;
8394 val
* var48
/* : String */;
8395 static val
* varonce49
;
8396 val
* var50
/* : String */;
8397 char* var51
/* : NativeString */;
8398 val
* var52
/* : String */;
8399 val
* var53
/* : String */;
8400 val
* var54
/* : String */;
8401 val
* var55
/* : String */;
8402 static val
* varonce56
;
8403 val
* var57
/* : String */;
8404 char* var58
/* : NativeString */;
8405 val
* var59
/* : String */;
8406 val
* var60
/* : RuntimeVariable */;
8407 val
* var_cond
/* var cond: RuntimeVariable */;
8408 val
* var62
/* : NativeArray[String] */;
8409 static val
* varonce61
;
8410 static val
* varonce63
;
8411 val
* var64
/* : String */;
8412 char* var65
/* : NativeString */;
8413 val
* var66
/* : String */;
8414 static val
* varonce67
;
8415 val
* var68
/* : String */;
8416 char* var69
/* : NativeString */;
8417 val
* var70
/* : String */;
8418 val
* var71
/* : String */;
8419 val
* var72
/* : String */;
8420 static val
* varonce73
;
8421 val
* var74
/* : String */;
8422 char* var75
/* : NativeString */;
8423 val
* var76
/* : String */;
8424 static val
* varonce77
;
8425 val
* var78
/* : String */;
8426 char* var79
/* : NativeString */;
8427 val
* var80
/* : String */;
8431 var1
= ((val
*(*)(val
* self
, val
* p0
, val
* p1
))(self
->class->vft
[COLOR_nitc___nitc__SeparateErasureCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite
]))(self
, p0
, p1
); /* compile_callsite on <self:SeparateErasureCompilerVisitor>*/
8435 { /* Inline typing#CallSite#erasure_cast (var_callsite) on <var_callsite:CallSite> */
8436 var5
= var_callsite
->attrs
[COLOR_nitc__typing__CallSite___erasure_cast
].s
; /* _erasure_cast on <var_callsite:CallSite> */
8444 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
8445 var8
= self
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
8446 if (unlikely(var8
== NULL
)) {
8447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
8448 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 1133);
8455 /* <var6:AbstractCompiler(SeparateCompiler)> isa SeparateErasureCompiler */
8456 cltype
= type_nitc__SeparateErasureCompiler
.color
;
8457 idtype
= type_nitc__SeparateErasureCompiler
.id
;
8458 if(cltype
>= var6
->type
->table_size
) {
8461 var9
= var6
->type
->type_table
[cltype
] == idtype
;
8463 if (unlikely(!var9
)) {
8464 var_class_name
= var6
== NULL ?
"null" : var6
->type
->name
;
8465 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SeparateErasureCompiler", var_class_name
);
8466 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 480);
8470 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var6) on <var6:SeparateCompiler(SeparateErasureCompiler)> */
8471 var12
= var6
->attrs
[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var6:SeparateCompiler(SeparateErasureCompiler)> */
8472 if (unlikely(var12
== NULL
)) {
8473 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
8474 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler
, 538);
8478 RET_LABEL11
:(void)0;
8482 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var10) on <var10:ModelBuilder> */
8483 var15
= var10
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var10:ModelBuilder> */
8484 if (unlikely(var15
== NULL
)) {
8485 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
8486 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
8490 RET_LABEL14
:(void)0;
8494 { /* Inline separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast (var13) on <var13:ToolContext> */
8495 var18
= var13
->attrs
[COLOR_nitc__separate_erasure_compiler__ToolContext___opt_no_check_erasure_cast
].val
; /* _opt_no_check_erasure_cast on <var13:ToolContext> */
8496 if (unlikely(var18
== NULL
)) {
8497 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast");
8498 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 26);
8502 RET_LABEL17
:(void)0;
8506 { /* Inline opts#Option#value (var16) on <var16:OptionBool> */
8507 var21
= var16
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var16:OptionBool> */
8509 RET_LABEL20
:(void)0;
8512 var22
= (short int)((long)(var19
)>>2);
8519 if (var_res
== NULL
) {
8520 var24
= 0; /* is null */
8522 var24
= 1; /* arg is null and recv is not */
8525 { /* Inline kernel#Object#!= (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
8526 var_other
= ((val
*)NULL
);
8528 var27
= ((short int(*)(val
* self
, val
* p0
))(var_res
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_res
, var_other
); /* == on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
8533 RET_LABEL26
:(void)0;
8537 if (unlikely(!var24
)) {
8538 PRINT_ERROR("Runtime error: %s", "Assert failed");
8539 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 481);
8543 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:CallSite> */
8544 var31
= var_callsite
->attrs
[COLOR_nitc__typing__CallSite___msignature
].val
; /* _msignature on <var_callsite:CallSite> */
8545 if (unlikely(var31
== NULL
)) {
8546 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
8547 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 660);
8551 RET_LABEL30
:(void)0;
8555 { /* Inline model#MSignature#return_mtype (var29) on <var29:MSignature> */
8556 var34
= var29
->attrs
[COLOR_nitc__model__MSignature___return_mtype
].val
; /* _return_mtype on <var29:MSignature> */
8558 RET_LABEL33
:(void)0;
8562 if (var_mtype
== NULL
) {
8563 var35
= 0; /* is null */
8565 var35
= 1; /* arg is null and recv is not */
8568 { /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
8569 var_other
= ((val
*)NULL
);
8571 var38
= ((short int(*)(val
* self
, val
* p0
))(var_mtype
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_mtype
, var_other
); /* == on <var_mtype:nullable MType(MType)>*/
8576 RET_LABEL37
:(void)0;
8580 if (unlikely(!var35
)) {
8581 PRINT_ERROR("Runtime error: %s", "Assert failed");
8582 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler
, 483);
8585 if (unlikely(varonce
==NULL
)) {
8586 var40
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
8587 if (likely(varonce41
!=NULL
)) {
8590 var43
= "/* Erasure cast for return ";
8591 var44
= core__flat___NativeString___to_s_full(var43
, 27l, 27l);
8595 ((struct instance_core__NativeArray
*)var40
)->values
[0]=var42
;
8596 if (likely(varonce45
!=NULL
)) {
8600 var48
= core__flat___NativeString___to_s_full(var47
, 5l, 5l);
8604 ((struct instance_core__NativeArray
*)var40
)->values
[2]=var46
;
8605 if (likely(varonce49
!=NULL
)) {
8609 var52
= core__flat___NativeString___to_s_full(var51
, 3l, 3l);
8613 ((struct instance_core__NativeArray
*)var40
)->values
[4]=var50
;
8619 var53
= ((val
*(*)(val
* self
))(var_res
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_res
); /* to_s on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
8621 ((struct instance_core__NativeArray
*)var40
)->values
[1]=var53
;
8623 var54
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:nullable MType(MType)>*/
8625 ((struct instance_core__NativeArray
*)var40
)->values
[3]=var54
;
8627 var55
= ((val
*(*)(val
* self
))(var40
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var40
); /* native_to_s on <var40:NativeArray[String]>*/
8631 nitc___nitc__AbstractCompilerVisitor___add(self
, var55
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
8633 if (likely(varonce56
!=NULL
)) {
8637 var59
= core__flat___NativeString___to_s_full(var58
, 7l, 7l);
8642 var60
= nitc___nitc__SeparateErasureCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__type_test(self
, var_res
, var_mtype
, var57
);
8645 if (unlikely(varonce61
==NULL
)) {
8646 var62
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
8647 if (likely(varonce63
!=NULL
)) {
8651 var66
= core__flat___NativeString___to_s_full(var65
, 5l, 5l);
8655 ((struct instance_core__NativeArray
*)var62
)->values
[0]=var64
;
8656 if (likely(varonce67
!=NULL
)) {
8660 var70
= core__flat___NativeString___to_s_full(var69
, 3l, 3l);
8664 ((struct instance_core__NativeArray
*)var62
)->values
[2]=var68
;
8670 var71
= ((val
*(*)(val
* self
))(var_cond
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_cond
); /* to_s on <var_cond:RuntimeVariable>*/
8672 ((struct instance_core__NativeArray
*)var62
)->values
[1]=var71
;
8674 var72
= ((val
*(*)(val
* self
))(var62
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var62
); /* native_to_s on <var62:NativeArray[String]>*/
8678 nitc___nitc__AbstractCompilerVisitor___add(self
, var72
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
8680 if (likely(varonce73
!=NULL
)) {
8683 var75
= "Cast failed";
8684 var76
= core__flat___NativeString___to_s_full(var75
, 11l, 11l);
8689 nitc___nitc__AbstractCompilerVisitor___add_abort(self
, var74
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <self:SeparateErasureCompilerVisitor>*/
8691 if (likely(varonce77
!=NULL
)) {
8695 var80
= core__flat___NativeString___to_s_full(var79
, 1l, 1l);
8700 nitc___nitc__AbstractCompilerVisitor___add(self
, var78
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
8709 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#init_instance for (self: SeparateErasureCompilerVisitor, MClassType): RuntimeVariable */
8710 val
* nitc___nitc__SeparateErasureCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__init_instance(val
* self
, val
* p0
) {
8711 val
* var
/* : RuntimeVariable */;
8712 val
* var_mtype
/* var mtype: MClassType */;
8713 val
* var1
/* : NativeArray[String] */;
8714 static val
* varonce
;
8715 static val
* varonce2
;
8716 val
* var3
/* : String */;
8717 char* var4
/* : NativeString */;
8718 val
* var5
/* : String */;
8719 val
* var6
/* : MClass */;
8720 val
* var8
/* : MClass */;
8721 val
* var9
/* : String */;
8722 val
* var10
/* : String */;
8723 val
* var12
/* : NativeArray[String] */;
8724 static val
* varonce11
;
8725 static val
* varonce13
;
8726 val
* var14
/* : String */;
8727 char* var15
/* : NativeString */;
8728 val
* var16
/* : String */;
8729 static val
* varonce17
;
8730 val
* var18
/* : String */;
8731 char* var19
/* : NativeString */;
8732 val
* var20
/* : String */;
8733 val
* var21
/* : MClass */;
8734 val
* var23
/* : MClass */;
8735 val
* var24
/* : String */;
8736 val
* var25
/* : String */;
8737 val
* var26
/* : RuntimeVariable */;
8739 if (unlikely(varonce
==NULL
)) {
8740 var1
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
8741 if (likely(varonce2
!=NULL
)) {
8745 var5
= core__flat___NativeString___to_s_full(var4
, 4l, 4l);
8749 ((struct instance_core__NativeArray
*)var1
)->values
[0]=var3
;
8755 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
8756 var8
= var_mtype
->attrs
[COLOR_nitc__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
8757 if (unlikely(var8
== NULL
)) {
8758 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8759 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1163);
8767 var9
= nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var6
);
8769 ((struct instance_core__NativeArray
*)var1
)->values
[1]=var9
;
8771 var10
= ((val
*(*)(val
* self
))(var1
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var1
); /* native_to_s on <var1:NativeArray[String]>*/
8775 nitc___nitc__AbstractCompilerVisitor___require_declaration(self
, var10
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
8777 if (unlikely(varonce11
==NULL
)) {
8778 var12
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
8779 if (likely(varonce13
!=NULL
)) {
8783 var16
= core__flat___NativeString___to_s_full(var15
, 4l, 4l);
8787 ((struct instance_core__NativeArray
*)var12
)->values
[0]=var14
;
8788 if (likely(varonce17
!=NULL
)) {
8792 var20
= core__flat___NativeString___to_s_full(var19
, 2l, 2l);
8796 ((struct instance_core__NativeArray
*)var12
)->values
[2]=var18
;
8802 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
8803 var23
= var_mtype
->attrs
[COLOR_nitc__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
8804 if (unlikely(var23
== NULL
)) {
8805 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8806 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1163);
8810 RET_LABEL22
:(void)0;
8814 var24
= nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var21
);
8816 ((struct instance_core__NativeArray
*)var12
)->values
[1]=var24
;
8818 var25
= ((val
*(*)(val
* self
))(var12
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var12
); /* native_to_s on <var12:NativeArray[String]>*/
8822 var26
= nitc___nitc__AbstractCompilerVisitor___new_expr(self
, var25
, var_mtype
);