1 #include "nit__separate_erasure_compiler.sep.0.h"
2 /* method separate_erasure_compiler#ToolContext#opt_erasure for (self: ToolContext): OptionBool */
3 val
* nit__separate_erasure_compiler___ToolContext___opt_erasure(val
* self
) {
4 val
* var
/* : OptionBool */;
5 val
* var1
/* : OptionBool */;
6 var1
= self
->attrs
[COLOR_nit__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_nit__separate_erasure_compiler
, 22);
16 /* method separate_erasure_compiler#ToolContext#opt_rta for (self: ToolContext): OptionBool */
17 val
* nit__separate_erasure_compiler___ToolContext___opt_rta(val
* self
) {
18 val
* var
/* : OptionBool */;
19 val
* var1
/* : OptionBool */;
20 var1
= self
->attrs
[COLOR_nit__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_nit__separate_erasure_compiler
, 24);
30 /* method separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast for (self: ToolContext): OptionBool */
31 val
* nit__separate_erasure_compiler___ToolContext___opt_no_check_erasure_cast(val
* self
) {
32 val
* var
/* : OptionBool */;
33 val
* var1
/* : OptionBool */;
34 var1
= self
->attrs
[COLOR_nit__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_nit__separate_erasure_compiler
, 26);
44 /* method separate_erasure_compiler#ToolContext#init for (self: ToolContext) */
45 void nit__separate_erasure_compiler___ToolContext___standard__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_nit__separate_erasure_compiler___ToolContext___standard__kernel__Object__init
]))(self
); /* init on <self:ToolContext>*/
60 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
61 var2
= self
->attrs
[COLOR_nit__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_nit__toolcontext
, 332);
72 { /* Inline separate_erasure_compiler#ToolContext#opt_erasure (self) on <self:ToolContext> */
73 var5
= self
->attrs
[COLOR_nit__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_nit__separate_erasure_compiler
, 22);
84 { /* Inline separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast (self) on <self:ToolContext> */
85 var8
= self
->attrs
[COLOR_nit__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_nit__separate_erasure_compiler
, 26);
96 { /* Inline separate_erasure_compiler#ToolContext#opt_rta (self) on <self:ToolContext> */
97 var11
= self
->attrs
[COLOR_nit__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_nit__separate_erasure_compiler
, 24);
107 var12
= NEW_standard__Array(&type_standard__Array__opts__Option
);
108 { /* var12 = array_instance Array[Option] */
109 var13
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__opts__Option
);
110 ((struct instance_standard__NativeArray
*)var13
)->values
[0] = (val
*) var3
;
111 ((struct instance_standard__NativeArray
*)var13
)->values
[1] = (val
*) var6
;
112 ((struct instance_standard__NativeArray
*)var13
)->values
[2] = (val
*) var9
;
114 ((void(*)(val
* self
, val
* p0
, long p1
))(var12
->class->vft
[COLOR_standard__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 nit__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_nit__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_nit__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_nit__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_nit__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_nit__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_standard__Bool
)->table_size
) {
198 var11
= (&type_standard__Bool
)->type_table
[cltype
] == idtype
;
200 if (unlikely(!var11
)) {
201 var_class_name
= type_standard__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_nit__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_nit__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_nit__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_nit__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_standard__Bool
)->table_size
) {
256 var24
= (&type_standard__Bool
)->type_table
[cltype25
] == idtype26
;
258 if (unlikely(!var24
)) {
259 var_class_name28
= type_standard__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 nit___nit__ErasureCompilerPhase___nit__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_nit__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_nit__phase
, 200);
313 { /* Inline separate_erasure_compiler#ToolContext#opt_erasure (var) on <var:ToolContext> */
314 var5
= var
->attrs
[COLOR_nit__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_nit__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_nit__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_nit__phase
, 200);
350 var14
= nit__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_nit__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_nit__phase
, 200);
367 { /* Inline separate_erasure_compiler#ToolContext#opt_rta (var15) on <var15:ToolContext> */
368 var20
= var15
->attrs
[COLOR_nit__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_nit__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
= nit__rapid_type_analysis___ModelBuilder___do_rapid_type_analysis(var_modelbuilder
, var_mainmodule
);
390 var_analysis
= var25
;
394 nit__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 nit__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 long var
/* : Int */;
403 long var2
/* : Int for extern */;
404 long var_time0
/* var time0: Int */;
405 val
* var3
/* : ToolContext */;
406 val
* var5
/* : ToolContext */;
408 val
* var6
/* : String */;
409 char* var7
/* : NativeString */;
410 val
* var8
/* : FlatString */;
411 val
* var9
/* : SeparateErasureCompiler */;
412 val
* var_compiler
/* var compiler: SeparateErasureCompiler */;
413 long var10
/* : Int */;
414 long var12
/* : Int for extern */;
415 long var_time1
/* var time1: Int */;
416 val
* var13
/* : ToolContext */;
417 val
* var15
/* : ToolContext */;
418 val
* var17
/* : NativeArray[String] */;
419 static val
* varonce16
;
420 static val
* varonce18
;
421 val
* var19
/* : String */;
422 char* var20
/* : NativeString */;
423 val
* var21
/* : FlatString */;
424 static val
* varonce22
;
425 val
* var23
/* : String */;
426 char* var24
/* : NativeString */;
427 val
* var25
/* : FlatString */;
428 long var26
/* : Int */;
429 short int var28
/* : Bool */;
432 const char* var_class_name
;
433 long var29
/* : Int */;
434 val
* var30
/* : String */;
435 val
* var31
/* : String */;
437 var_runtime_type_analysis
= p1
;
439 { /* Inline time#Object#get_time (self) on <self:ModelBuilder> */
440 var2
= kernel_Any_Any_get_time_0(self
);
448 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
449 var5
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
450 if (unlikely(var5
== NULL
)) {
451 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
452 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
459 if (likely(varonce
!=NULL
)) {
462 var7
= "*** GENERATING C ***";
463 var8
= standard___standard__NativeString___to_s_with_length(var7
, 20l);
468 nit___nit__ToolContext___info(var3
, var6
, 1l); /* Direct call toolcontext#ToolContext#info on <var3:ToolContext>*/
470 var9
= NEW_nit__SeparateErasureCompiler(&type_nit__SeparateErasureCompiler
);
472 ((void(*)(val
* self
, val
* p0
))(var9
->class->vft
[COLOR_nit__abstract_compiler__AbstractCompiler__mainmodule_61d
]))(var9
, var_mainmodule
); /* mainmodule= on <var9:SeparateErasureCompiler>*/
475 ((void(*)(val
* self
, val
* p0
))(var9
->class->vft
[COLOR_nit__abstract_compiler__AbstractCompiler__modelbuilder_61d
]))(var9
, self
); /* modelbuilder= on <var9:SeparateErasureCompiler>*/
478 ((void(*)(val
* self
, val
* p0
))(var9
->class->vft
[COLOR_nit__separate_compiler__SeparateCompiler__runtime_type_analysis_61d
]))(var9
, var_runtime_type_analysis
); /* runtime_type_analysis= on <var9:SeparateErasureCompiler>*/
481 ((void(*)(val
* self
))(var9
->class->vft
[COLOR_standard__kernel__Object__init
]))(var9
); /* init on <var9:SeparateErasureCompiler>*/
485 nit___nit__SeparateCompiler___nit__abstract_compiler__AbstractCompiler__do_compilation(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#do_compilation on <var_compiler:SeparateErasureCompiler>*/
488 nit___nit__SeparateCompiler___nit__abstract_compiler__AbstractCompiler__display_stats(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#display_stats on <var_compiler:SeparateErasureCompiler>*/
491 { /* Inline time#Object#get_time (self) on <self:ModelBuilder> */
492 var12
= kernel_Any_Any_get_time_0(self
);
500 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
501 var15
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
502 if (unlikely(var15
== NULL
)) {
503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
504 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
511 if (unlikely(varonce16
==NULL
)) {
512 var17
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
513 if (likely(varonce18
!=NULL
)) {
516 var20
= "*** END GENERATING C: ";
517 var21
= standard___standard__NativeString___to_s_with_length(var20
, 22l);
521 ((struct instance_standard__NativeArray
*)var17
)->values
[0]=var19
;
522 if (likely(varonce22
!=NULL
)) {
526 var25
= standard___standard__NativeString___to_s_with_length(var24
, 4l);
530 ((struct instance_standard__NativeArray
*)var17
)->values
[2]=var23
;
536 { /* Inline kernel#Int#- (var_time1,var_time0) on <var_time1:Int> */
537 /* Covariant cast for argument 0 (i) <var_time0:Int> isa OTHER */
538 /* <var_time0:Int> isa OTHER */
539 var28
= 1; /* easy <var_time0:Int> isa OTHER*/
540 if (unlikely(!var28
)) {
541 var_class_name
= type_standard__Int
.name
;
542 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
543 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 540);
546 var29
= var_time1
- var_time0
;
552 var30
= standard__string___Int___Object__to_s(var26
);
553 ((struct instance_standard__NativeArray
*)var17
)->values
[1]=var30
;
555 var31
= ((val
*(*)(val
* self
))(var17
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var17
); /* native_to_s on <var17:NativeArray[String]>*/
559 nit___nit__ToolContext___info(var13
, var31
, 2l); /* Direct call toolcontext#ToolContext#info on <var13:ToolContext>*/
562 nit__abstract_compiler___ModelBuilder___write_and_make(self
, var_compiler
); /* Direct call abstract_compiler#ModelBuilder#write_and_make on <self:ModelBuilder>*/
566 /* method separate_erasure_compiler#SeparateErasureCompiler#class_ids for (self: SeparateErasureCompiler): Map[MClass, Int] */
567 val
* nit___nit__SeparateErasureCompiler___class_ids(val
* self
) {
568 val
* var
/* : Map[MClass, Int] */;
569 val
* var1
/* : Map[MClass, Int] */;
570 var1
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
; /* _class_ids on <self:SeparateErasureCompiler> */
571 if (unlikely(var1
== NULL
)) {
572 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids");
573 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 84);
580 /* method separate_erasure_compiler#SeparateErasureCompiler#class_ids= for (self: SeparateErasureCompiler, Map[MClass, Int]) */
581 void nit___nit__SeparateErasureCompiler___class_ids_61d(val
* self
, val
* p0
) {
582 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
= p0
; /* _class_ids on <self:SeparateErasureCompiler> */
585 /* method separate_erasure_compiler#SeparateErasureCompiler#class_colors for (self: SeparateErasureCompiler): Map[MClass, Int] */
586 val
* nit___nit__SeparateErasureCompiler___class_colors(val
* self
) {
587 val
* var
/* : Map[MClass, Int] */;
588 val
* var1
/* : Map[MClass, Int] */;
589 var1
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
; /* _class_colors on <self:SeparateErasureCompiler> */
590 if (unlikely(var1
== NULL
)) {
591 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors");
592 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 85);
599 /* method separate_erasure_compiler#SeparateErasureCompiler#class_colors= for (self: SeparateErasureCompiler, Map[MClass, Int]) */
600 void nit___nit__SeparateErasureCompiler___class_colors_61d(val
* self
, val
* p0
) {
601 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
= p0
; /* _class_colors on <self:SeparateErasureCompiler> */
604 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_colors for (self: SeparateErasureCompiler): Map[MVirtualTypeProp, Int] */
605 val
* nit___nit__SeparateErasureCompiler___vt_colors(val
* self
) {
606 val
* var
/* : Map[MVirtualTypeProp, Int] */;
607 val
* var1
/* : Map[MVirtualTypeProp, Int] */;
608 var1
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:SeparateErasureCompiler> */
609 if (unlikely(var1
== NULL
)) {
610 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
611 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 86);
618 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_colors= for (self: SeparateErasureCompiler, Map[MVirtualTypeProp, Int]) */
619 void nit___nit__SeparateErasureCompiler___vt_colors_61d(val
* self
, val
* p0
) {
620 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
= p0
; /* _vt_colors on <self:SeparateErasureCompiler> */
623 /* method separate_erasure_compiler#SeparateErasureCompiler#init for (self: SeparateErasureCompiler) */
624 void nit___nit__SeparateErasureCompiler___standard__kernel__Object__init(val
* self
) {
625 val
* var
/* : MModule */;
626 val
* var2
/* : MModule */;
627 val
* var3
/* : POSet[MClass] */;
628 val
* var_poset
/* var poset: POSet[MClass] */;
629 val
* var4
/* : HashSet[MClass] */;
630 val
* var_mclasses
/* var mclasses: HashSet[MClass] */;
631 val
* var5
/* : POSetColorer[MClass] */;
632 val
* var_colorer
/* var colorer: POSetColorer[MClass] */;
633 val
* var7
/* : Map[Object, Int] */;
634 val
* var9
/* : Map[Object, Int] */;
635 val
* var11
/* : Map[MClass, Array[nullable MClass]] */;
636 val
* var13
/* : HashMap[MClass, Set[MVirtualTypeProp]] */;
637 val
* var_vts
/* var vts: HashMap[MClass, Set[MVirtualTypeProp]] */;
638 val
* var_
/* var : HashSet[MClass] */;
639 val
* var14
/* : Iterator[nullable Object] */;
640 val
* var_15
/* var : Iterator[MClass] */;
641 short int var16
/* : Bool */;
642 val
* var17
/* : nullable Object */;
643 val
* var_mclass
/* var mclass: MClass */;
644 val
* var18
/* : HashSet[MVirtualTypeProp] */;
645 val
* var19
/* : MModule */;
646 val
* var21
/* : MModule */;
647 val
* var22
/* : Set[MProperty] */;
648 val
* var_23
/* var : Set[MProperty] */;
649 val
* var24
/* : Iterator[nullable Object] */;
650 val
* var_25
/* var : Iterator[MProperty] */;
651 short int var26
/* : Bool */;
652 val
* var27
/* : nullable Object */;
653 val
* var_mprop
/* var mprop: MProperty */;
654 short int var28
/* : Bool */;
657 val
* var29
/* : nullable Object */;
658 val
* var31
/* : POSetBucketsColorer[MClass, MVirtualTypeProp] */;
659 val
* var32
/* : Map[Object, Set[Object]] */;
660 val
* var_vt_colorer
/* var vt_colorer: POSetBucketsColorer[MClass, MVirtualTypeProp] */;
661 val
* var33
/* : Map[Object, Int] */;
662 val
* var35
/* : Map[MClass, Array[nullable MPropDef]] */;
664 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nit___nit__SeparateErasureCompiler___standard__kernel__Object__init
]))(self
); /* init on <self:SeparateErasureCompiler>*/
667 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
668 var2
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
669 if (unlikely(var2
== NULL
)) {
670 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
671 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
679 var3
= nit__model___MModule___flatten_mclass_hierarchy(var
);
682 var4
= NEW_standard__HashSet(&type_standard__HashSet__nit__MClass
);
684 standard___standard__HashSet___from(var4
, var_poset
); /* Direct call hash_collection#HashSet#from on <var4:HashSet[MClass]>*/
687 var5
= NEW_nit__POSetColorer(&type_nit__POSetColorer__nit__MClass
);
689 { /* Inline kernel#Object#init (var5) on <var5:POSetColorer[MClass]> */
695 nit___nit__POSetColorer___colorize(var_colorer
, var_poset
); /* Direct call coloring#POSetColorer#colorize on <var_colorer:POSetColorer[MClass]>*/
698 var7
= nit___nit__POSetColorer___ids(var_colorer
);
701 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids= (self,var7) on <self:SeparateErasureCompiler> */
702 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
= var7
; /* _class_ids on <self:SeparateErasureCompiler> */
707 var9
= nit___nit__POSetColorer___colors(var_colorer
);
710 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_colors= (self,var9) on <self:SeparateErasureCompiler> */
711 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
= var9
; /* _class_colors on <self:SeparateErasureCompiler> */
716 var11
= nit___nit__SeparateErasureCompiler___build_class_typing_tables(self
, var_mclasses
);
719 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables= (self,var11) on <self:SeparateErasureCompiler> */
720 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
= var11
; /* _class_tables on <self:SeparateErasureCompiler> */
724 var13
= NEW_standard__HashMap(&type_standard__HashMap__nit__MClass__standard__Set__nit__MVirtualTypeProp
);
726 standard___standard__HashMap___standard__kernel__Object__init(var13
); /* Direct call hash_collection#HashMap#init on <var13:HashMap[MClass, Set[MVirtualTypeProp]]>*/
731 var14
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
736 var16
= ((short int(*)(val
* self
))((((long)var_15
&3)?class_info
[((long)var_15
&3)]:var_15
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_15
); /* is_ok on <var_15:Iterator[MClass]>*/
740 var17
= ((val
*(*)(val
* self
))((((long)var_15
&3)?class_info
[((long)var_15
&3)]:var_15
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_15
); /* item on <var_15:Iterator[MClass]>*/
743 var18
= NEW_standard__HashSet(&type_standard__HashSet__nit__MVirtualTypeProp
);
745 standard___standard__HashSet___standard__kernel__Object__init(var18
); /* Direct call hash_collection#HashSet#init on <var18:HashSet[MVirtualTypeProp]>*/
748 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_vts
, var_mclass
, var18
); /* Direct call hash_collection#HashMap#[]= on <var_vts:HashMap[MClass, Set[MVirtualTypeProp]]>*/
751 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
752 var21
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
753 if (unlikely(var21
== NULL
)) {
754 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
755 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
763 var22
= nit__abstract_compiler___MModule___properties(var19
, var_mclass
);
767 var24
= ((val
*(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_23
); /* iterator on <var_23:Set[MProperty]>*/
772 var26
= ((short int(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_25
); /* is_ok on <var_25:Iterator[MProperty]>*/
776 var27
= ((val
*(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_25
); /* item on <var_25:Iterator[MProperty]>*/
779 /* <var_mprop:MProperty> isa MVirtualTypeProp */
780 cltype
= type_nit__MVirtualTypeProp
.color
;
781 idtype
= type_nit__MVirtualTypeProp
.id
;
782 if(cltype
>= var_mprop
->type
->table_size
) {
785 var28
= var_mprop
->type
->type_table
[cltype
] == idtype
;
789 var29
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_vts
, var_mclass
);
792 ((void(*)(val
* self
, val
* p0
))((((long)var29
&3)?class_info
[((long)var29
&3)]:var29
->class)->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var29
, var_mprop
); /* add on <var29:nullable Object(Set[MVirtualTypeProp])>*/
797 ((void(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_25
); /* next on <var_25:Iterator[MProperty]>*/
803 BREAK_label
: (void)0;
805 ((void(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_25
); /* finish on <var_25:Iterator[MProperty]>*/
808 ((void(*)(val
* self
))((((long)var_15
&3)?class_info
[((long)var_15
&3)]:var_15
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_15
); /* next on <var_15:Iterator[MClass]>*/
814 BREAK_label30
: (void)0;
816 ((void(*)(val
* self
))((((long)var_15
&3)?class_info
[((long)var_15
&3)]:var_15
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_15
); /* finish on <var_15:Iterator[MClass]>*/
818 var31
= NEW_nit__POSetBucketsColorer(&type_nit__POSetBucketsColorer__nit__MClass__nit__MVirtualTypeProp
);
820 var32
= nit___nit__POSetColorer___conflicts(var_colorer
);
823 ((void(*)(val
* self
, val
* p0
))(var31
->class->vft
[COLOR_nit__coloring__POSetBucketsColorer__poset_61d
]))(var31
, var_poset
); /* poset= on <var31:POSetBucketsColorer[MClass, MVirtualTypeProp]>*/
826 ((void(*)(val
* self
, val
* p0
))(var31
->class->vft
[COLOR_nit__coloring__POSetBucketsColorer__conflicts_61d
]))(var31
, var32
); /* conflicts= on <var31:POSetBucketsColorer[MClass, MVirtualTypeProp]>*/
829 ((void(*)(val
* self
))(var31
->class->vft
[COLOR_standard__kernel__Object__init
]))(var31
); /* init on <var31:POSetBucketsColorer[MClass, MVirtualTypeProp]>*/
831 var_vt_colorer
= var31
;
833 var33
= nit___nit__POSetBucketsColorer___colorize(var_vt_colorer
, var_vts
);
836 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors= (self,var33) on <self:SeparateErasureCompiler> */
837 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
= var33
; /* _vt_colors on <self:SeparateErasureCompiler> */
842 var35
= nit___nit__SeparateErasureCompiler___build_vt_tables(self
, var_mclasses
);
845 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables= (self,var35) on <self:SeparateErasureCompiler> */
846 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
= var35
; /* _vt_tables on <self:SeparateErasureCompiler> */
852 /* method separate_erasure_compiler#SeparateErasureCompiler#build_vt_tables for (self: SeparateErasureCompiler, Set[MClass]): Map[MClass, Array[nullable MPropDef]] */
853 val
* nit___nit__SeparateErasureCompiler___build_vt_tables(val
* self
, val
* p0
) {
854 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
855 val
* var_mclasses
/* var mclasses: Set[MClass] */;
856 val
* var1
/* : HashMap[MClass, Array[nullable MPropDef]] */;
857 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MPropDef]] */;
858 val
* var_
/* var : Set[MClass] */;
859 val
* var2
/* : Iterator[nullable Object] */;
860 val
* var_3
/* var : Iterator[MClass] */;
861 short int var4
/* : Bool */;
862 val
* var5
/* : nullable Object */;
863 val
* var_mclass
/* var mclass: MClass */;
864 val
* var6
/* : Array[nullable MPropDef] */;
865 val
* var_table
/* var table: Array[nullable MPropDef] */;
866 val
* var7
/* : Array[MClass] */;
867 val
* var_parents
/* var parents: Array[MClass] */;
868 val
* var8
/* : MModule */;
869 val
* var10
/* : MModule */;
870 val
* var11
/* : POSet[MClass] */;
871 short int var12
/* : Bool */;
872 val
* var13
/* : MModule */;
873 val
* var15
/* : MModule */;
874 val
* var16
/* : POSetElement[MClass] */;
875 val
* var17
/* : Collection[nullable Object] */;
876 val
* var18
/* : Array[nullable Object] */;
877 val
* var19
/* : MModule */;
878 val
* var21
/* : MModule */;
879 val
* var_22
/* var : Array[MClass] */;
880 val
* var23
/* : ArrayIterator[nullable Object] */;
881 val
* var_24
/* var : ArrayIterator[MClass] */;
882 short int var25
/* : Bool */;
883 val
* var26
/* : nullable Object */;
884 val
* var_parent
/* var parent: MClass */;
885 short int var27
/* : Bool */;
886 val
* var_other
/* var other: nullable Object */;
887 short int var29
/* : Bool */;
888 short int var31
/* : Bool */;
889 val
* var32
/* : MModule */;
890 val
* var34
/* : MModule */;
891 val
* var35
/* : Set[MProperty] */;
892 val
* var_36
/* var : Set[MProperty] */;
893 val
* var37
/* : Iterator[nullable Object] */;
894 val
* var_38
/* var : Iterator[MProperty] */;
895 short int var39
/* : Bool */;
896 val
* var40
/* : nullable Object */;
897 val
* var_mproperty
/* var mproperty: MProperty */;
898 short int var41
/* : Bool */;
901 short int var42
/* : Bool */;
902 val
* var44
/* : Map[MVirtualTypeProp, Int] */;
903 val
* var46
/* : Map[MVirtualTypeProp, Int] */;
904 val
* var47
/* : nullable Object */;
905 long var48
/* : Int */;
906 long var_color
/* var color: Int */;
907 long var49
/* : Int */;
908 long var51
/* : Int */;
909 short int var52
/* : Bool */;
910 short int var54
/* : Bool */;
913 const char* var_class_name
;
914 short int var57
/* : Bool */;
915 long var58
/* : Int */;
916 long var60
/* : Int */;
917 long var_i
/* var i: Int */;
918 long var_61
/* var : Int */;
919 short int var62
/* : Bool */;
920 short int var64
/* : Bool */;
923 const char* var_class_name67
;
924 short int var68
/* : Bool */;
925 long var69
/* : Int */;
926 val
* var71
/* : Array[MPropDef] */;
927 val
* var73
/* : Array[MPropDef] */;
928 val
* var_74
/* var : Array[MVirtualTypeDef] */;
929 val
* var75
/* : ArrayIterator[nullable Object] */;
930 val
* var_76
/* var : ArrayIterator[MVirtualTypeDef] */;
931 short int var77
/* : Bool */;
932 val
* var78
/* : nullable Object */;
933 val
* var_mpropdef
/* var mpropdef: MVirtualTypeDef */;
934 val
* var79
/* : MClassDef */;
935 val
* var81
/* : MClassDef */;
936 val
* var82
/* : MClass */;
937 val
* var84
/* : MClass */;
938 short int var85
/* : Bool */;
939 short int var87
/* : Bool */;
940 short int var89
/* : Bool */;
941 val
* var93
/* : MModule */;
942 val
* var95
/* : MModule */;
943 val
* var96
/* : Set[MProperty] */;
944 val
* var_97
/* var : Set[MProperty] */;
945 val
* var98
/* : Iterator[nullable Object] */;
946 val
* var_99
/* var : Iterator[MProperty] */;
947 short int var100
/* : Bool */;
948 val
* var101
/* : nullable Object */;
949 val
* var_mproperty102
/* var mproperty: MProperty */;
950 short int var103
/* : Bool */;
953 short int var106
/* : Bool */;
954 val
* var108
/* : Map[MVirtualTypeProp, Int] */;
955 val
* var110
/* : Map[MVirtualTypeProp, Int] */;
956 val
* var111
/* : nullable Object */;
957 long var112
/* : Int */;
958 long var_color113
/* var color: Int */;
959 long var114
/* : Int */;
960 long var116
/* : Int */;
961 short int var117
/* : Bool */;
962 short int var119
/* : Bool */;
965 const char* var_class_name122
;
966 short int var123
/* : Bool */;
967 long var124
/* : Int */;
968 long var126
/* : Int */;
969 long var_i127
/* var i: Int */;
970 long var_128
/* var : Int */;
971 short int var129
/* : Bool */;
972 short int var131
/* : Bool */;
975 const char* var_class_name134
;
976 short int var135
/* : Bool */;
977 long var136
/* : Int */;
978 val
* var138
/* : Array[MPropDef] */;
979 val
* var140
/* : Array[MPropDef] */;
980 val
* var_141
/* var : Array[MVirtualTypeDef] */;
981 val
* var142
/* : ArrayIterator[nullable Object] */;
982 val
* var_143
/* var : ArrayIterator[MVirtualTypeDef] */;
983 short int var144
/* : Bool */;
984 val
* var145
/* : nullable Object */;
985 val
* var_mpropdef146
/* var mpropdef: MVirtualTypeDef */;
986 val
* var147
/* : MClassDef */;
987 val
* var149
/* : MClassDef */;
988 val
* var150
/* : MClass */;
989 val
* var152
/* : MClass */;
990 short int var153
/* : Bool */;
991 short int var155
/* : Bool */;
992 short int var157
/* : Bool */;
994 var1
= NEW_standard__HashMap(&type_standard__HashMap__nit__MClass__standard__Array__nullable__nit__MPropDef
);
996 standard___standard__HashMap___standard__kernel__Object__init(var1
); /* Direct call hash_collection#HashMap#init on <var1:HashMap[MClass, Array[nullable MPropDef]]>*/
1001 var2
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Set[MClass]>*/
1006 var4
= ((short int(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_3
); /* is_ok on <var_3:Iterator[MClass]>*/
1010 var5
= ((val
*(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_3
); /* item on <var_3:Iterator[MClass]>*/
1013 var6
= NEW_standard__Array(&type_standard__Array__nullable__nit__MPropDef
);
1015 standard___standard__Array___standard__kernel__Object__init(var6
); /* Direct call array#Array#init on <var6:Array[nullable MPropDef]>*/
1018 var7
= NEW_standard__Array(&type_standard__Array__nit__MClass
);
1020 standard___standard__Array___standard__kernel__Object__init(var7
); /* Direct call array#Array#init on <var7:Array[MClass]>*/
1024 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1025 var10
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1026 if (unlikely(var10
== NULL
)) {
1027 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1028 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
1036 var11
= nit__model___MModule___flatten_mclass_hierarchy(var8
);
1039 var12
= poset___poset__POSet___standard__abstract_collection__Collection__has(var11
, var_mclass
);
1043 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1044 var15
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1045 if (unlikely(var15
== NULL
)) {
1046 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1047 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
1051 RET_LABEL14
:(void)0;
1055 var16
= nit___nit__MClass___in_hierarchy(var_mclass
, var13
);
1058 var17
= poset___poset__POSetElement___greaters(var16
);
1061 var18
= ((val
*(*)(val
* self
))((((long)var17
&3)?class_info
[((long)var17
&3)]:var17
->class)->vft
[COLOR_standard__array__Collection__to_a
]))(var17
); /* to_a on <var17:Collection[nullable Object](Collection[MClass])>*/
1063 var_parents
= var18
;
1065 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1066 var21
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1067 if (unlikely(var21
== NULL
)) {
1068 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1069 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
1073 RET_LABEL20
:(void)0;
1077 nit__model___MModule___linearize_mclasses(var19
, var_parents
); /* Direct call model#MModule#linearize_mclasses on <var19:MModule>*/
1081 var_22
= var_parents
;
1083 var23
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_22
);
1088 var25
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_24
);
1092 var26
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_24
);
1096 { /* Inline kernel#Object#== (var_parent,var_mclass) on <var_parent:MClass> */
1097 var_other
= var_mclass
;
1099 { /* Inline kernel#Object#is_same_instance (var_parent,var_other) on <var_parent:MClass> */
1100 var31
= var_parent
== var_other
;
1103 RET_LABEL30
:(void)0;
1108 RET_LABEL28
:(void)0;
1116 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1117 var34
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1118 if (unlikely(var34
== NULL
)) {
1119 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1120 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
1124 RET_LABEL33
:(void)0;
1128 var35
= nit__abstract_compiler___MModule___properties(var32
, var_parent
);
1132 var37
= ((val
*(*)(val
* self
))((((long)var_36
&3)?class_info
[((long)var_36
&3)]:var_36
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_36
); /* iterator on <var_36:Set[MProperty]>*/
1137 var39
= ((short int(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_38
); /* is_ok on <var_38:Iterator[MProperty]>*/
1141 var40
= ((val
*(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_38
); /* item on <var_38:Iterator[MProperty]>*/
1143 var_mproperty
= var40
;
1144 /* <var_mproperty:MProperty> isa MVirtualTypeProp */
1145 cltype
= type_nit__MVirtualTypeProp
.color
;
1146 idtype
= type_nit__MVirtualTypeProp
.id
;
1147 if(cltype
>= var_mproperty
->type
->table_size
) {
1150 var41
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
1158 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors (self) on <self:SeparateErasureCompiler> */
1159 var46
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:SeparateErasureCompiler> */
1160 if (unlikely(var46
== NULL
)) {
1161 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
1162 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 86);
1166 RET_LABEL45
:(void)0;
1170 var47
= ((val
*(*)(val
* self
, val
* p0
))((((long)var44
&3)?class_info
[((long)var44
&3)]:var44
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var44
, var_mproperty
); /* [] on <var44:Map[MVirtualTypeProp, Int]>*/
1172 var48
= (long)(var47
)>>2;
1175 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1176 var51
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1178 RET_LABEL50
:(void)0;
1182 { /* Inline kernel#Int#<= (var49,var_color) on <var49:Int> */
1183 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
1184 /* <var_color:Int> isa OTHER */
1185 var54
= 1; /* easy <var_color:Int> isa OTHER*/
1186 if (unlikely(!var54
)) {
1187 var_class_name
= type_standard__Int
.name
;
1188 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1189 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 533);
1192 var57
= var49
<= var_color
;
1195 RET_LABEL53
:(void)0;
1200 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1201 var60
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1203 RET_LABEL59
:(void)0;
1210 { /* Inline kernel#Int#< (var_i,var_61) on <var_i:Int> */
1211 /* Covariant cast for argument 0 (i) <var_61:Int> isa OTHER */
1212 /* <var_61:Int> isa OTHER */
1213 var64
= 1; /* easy <var_61:Int> isa OTHER*/
1214 if (unlikely(!var64
)) {
1215 var_class_name67
= type_standard__Int
.name
;
1216 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name67
);
1217 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 534);
1220 var68
= var_i
< var_61
;
1223 RET_LABEL63
:(void)0;
1228 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_i
, ((val
*)NULL
)); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
1231 var69
= standard___standard__Int___Discrete__successor(var_i
, 1l);
1238 BREAK_label70
: (void)0;
1242 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MProperty(MVirtualTypeProp)> */
1243 var73
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MProperty(MVirtualTypeProp)> */
1244 if (unlikely(var73
== NULL
)) {
1245 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
1246 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1963);
1250 RET_LABEL72
:(void)0;
1255 var75
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_74
);
1260 var77
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_76
);
1264 var78
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_76
);
1266 var_mpropdef
= var78
;
1268 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MVirtualTypeDef> */
1269 var81
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:MVirtualTypeDef> */
1270 if (unlikely(var81
== NULL
)) {
1271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1272 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2209);
1276 RET_LABEL80
:(void)0;
1280 { /* Inline model#MClassDef#mclass (var79) on <var79:MClassDef> */
1281 var84
= var79
->attrs
[COLOR_nit__model__MClassDef___mclass
].val
; /* _mclass on <var79:MClassDef> */
1282 if (unlikely(var84
== NULL
)) {
1283 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1284 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 553);
1288 RET_LABEL83
:(void)0;
1292 { /* Inline kernel#Object#== (var82,var_parent) on <var82:MClass> */
1293 var_other
= var_parent
;
1295 { /* Inline kernel#Object#is_same_instance (var82,var_other) on <var82:MClass> */
1296 var89
= var82
== var_other
;
1299 RET_LABEL88
:(void)0;
1304 RET_LABEL86
:(void)0;
1309 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_color
, var_mpropdef
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
1314 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_76
); /* Direct call array#ArrayIterator#next on <var_76:ArrayIterator[MVirtualTypeDef]>*/
1320 BREAK_label90
: (void)0;
1322 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_76
); /* Direct call array#ArrayIterator#finish on <var_76:ArrayIterator[MVirtualTypeDef]>*/
1324 BREAK_label43
: (void)0;
1326 ((void(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_38
); /* next on <var_38:Iterator[MProperty]>*/
1332 BREAK_label91
: (void)0;
1334 ((void(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_38
); /* finish on <var_38:Iterator[MProperty]>*/
1336 BREAK_label
: (void)0;
1338 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_24
); /* Direct call array#ArrayIterator#next on <var_24:ArrayIterator[MClass]>*/
1344 BREAK_label92
: (void)0;
1346 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_24
); /* Direct call array#ArrayIterator#finish on <var_24:ArrayIterator[MClass]>*/
1349 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1350 var95
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1351 if (unlikely(var95
== NULL
)) {
1352 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1353 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
1357 RET_LABEL94
:(void)0;
1361 var96
= nit__abstract_compiler___MModule___properties(var93
, var_mclass
);
1365 var98
= ((val
*(*)(val
* self
))((((long)var_97
&3)?class_info
[((long)var_97
&3)]:var_97
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_97
); /* iterator on <var_97:Set[MProperty]>*/
1370 var100
= ((short int(*)(val
* self
))((((long)var_99
&3)?class_info
[((long)var_99
&3)]:var_99
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_99
); /* is_ok on <var_99:Iterator[MProperty]>*/
1374 var101
= ((val
*(*)(val
* self
))((((long)var_99
&3)?class_info
[((long)var_99
&3)]:var_99
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_99
); /* item on <var_99:Iterator[MProperty]>*/
1376 var_mproperty102
= var101
;
1377 /* <var_mproperty102:MProperty> isa MVirtualTypeProp */
1378 cltype104
= type_nit__MVirtualTypeProp
.color
;
1379 idtype105
= type_nit__MVirtualTypeProp
.id
;
1380 if(cltype104
>= var_mproperty102
->type
->table_size
) {
1383 var103
= var_mproperty102
->type
->type_table
[cltype104
] == idtype105
;
1387 goto BREAK_label107
;
1391 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors (self) on <self:SeparateErasureCompiler> */
1392 var110
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:SeparateErasureCompiler> */
1393 if (unlikely(var110
== NULL
)) {
1394 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
1395 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 86);
1399 RET_LABEL109
:(void)0;
1403 var111
= ((val
*(*)(val
* self
, val
* p0
))((((long)var108
&3)?class_info
[((long)var108
&3)]:var108
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var108
, var_mproperty102
); /* [] on <var108:Map[MVirtualTypeProp, Int]>*/
1405 var112
= (long)(var111
)>>2;
1406 var_color113
= var112
;
1408 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1409 var116
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1411 RET_LABEL115
:(void)0;
1415 { /* Inline kernel#Int#<= (var114,var_color113) on <var114:Int> */
1416 /* Covariant cast for argument 0 (i) <var_color113:Int> isa OTHER */
1417 /* <var_color113:Int> isa OTHER */
1418 var119
= 1; /* easy <var_color113:Int> isa OTHER*/
1419 if (unlikely(!var119
)) {
1420 var_class_name122
= type_standard__Int
.name
;
1421 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name122
);
1422 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 533);
1425 var123
= var114
<= var_color113
;
1428 RET_LABEL118
:(void)0;
1433 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1434 var126
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1436 RET_LABEL125
:(void)0;
1440 var_128
= var_color113
;
1443 { /* Inline kernel#Int#< (var_i127,var_128) on <var_i127:Int> */
1444 /* Covariant cast for argument 0 (i) <var_128:Int> isa OTHER */
1445 /* <var_128:Int> isa OTHER */
1446 var131
= 1; /* easy <var_128:Int> isa OTHER*/
1447 if (unlikely(!var131
)) {
1448 var_class_name134
= type_standard__Int
.name
;
1449 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name134
);
1450 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 534);
1453 var135
= var_i127
< var_128
;
1456 RET_LABEL130
:(void)0;
1461 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_i127
, ((val
*)NULL
)); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
1464 var136
= standard___standard__Int___Discrete__successor(var_i127
, 1l);
1468 goto BREAK_label137
;
1471 BREAK_label137
: (void)0;
1475 { /* Inline model#MProperty#mpropdefs (var_mproperty102) on <var_mproperty102:MProperty(MVirtualTypeProp)> */
1476 var140
= var_mproperty102
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty102:MProperty(MVirtualTypeProp)> */
1477 if (unlikely(var140
== NULL
)) {
1478 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
1479 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1963);
1483 RET_LABEL139
:(void)0;
1488 var142
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_141
);
1493 var144
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_143
);
1497 var145
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_143
);
1499 var_mpropdef146
= var145
;
1501 { /* Inline model#MPropDef#mclassdef (var_mpropdef146) on <var_mpropdef146:MVirtualTypeDef> */
1502 var149
= var_mpropdef146
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef146:MVirtualTypeDef> */
1503 if (unlikely(var149
== NULL
)) {
1504 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1505 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2209);
1509 RET_LABEL148
:(void)0;
1513 { /* Inline model#MClassDef#mclass (var147) on <var147:MClassDef> */
1514 var152
= var147
->attrs
[COLOR_nit__model__MClassDef___mclass
].val
; /* _mclass on <var147:MClassDef> */
1515 if (unlikely(var152
== NULL
)) {
1516 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1517 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 553);
1521 RET_LABEL151
:(void)0;
1525 { /* Inline kernel#Object#== (var150,var_mclass) on <var150:MClass> */
1526 var_other
= var_mclass
;
1528 { /* Inline kernel#Object#is_same_instance (var150,var_other) on <var150:MClass> */
1529 var157
= var150
== var_other
;
1532 RET_LABEL156
:(void)0;
1537 RET_LABEL154
:(void)0;
1542 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_color113
, var_mpropdef146
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
1547 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_143
); /* Direct call array#ArrayIterator#next on <var_143:ArrayIterator[MVirtualTypeDef]>*/
1550 goto BREAK_label158
;
1553 BREAK_label158
: (void)0;
1555 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_143
); /* Direct call array#ArrayIterator#finish on <var_143:ArrayIterator[MVirtualTypeDef]>*/
1557 BREAK_label107
: (void)0;
1559 ((void(*)(val
* self
))((((long)var_99
&3)?class_info
[((long)var_99
&3)]:var_99
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_99
); /* next on <var_99:Iterator[MProperty]>*/
1562 goto BREAK_label159
;
1565 BREAK_label159
: (void)0;
1567 ((void(*)(val
* self
))((((long)var_99
&3)?class_info
[((long)var_99
&3)]:var_99
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_99
); /* finish on <var_99:Iterator[MProperty]>*/
1570 standard___standard__HashMap___standard__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]]>*/
1573 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_3
); /* next on <var_3:Iterator[MClass]>*/
1576 goto BREAK_label160
;
1579 BREAK_label160
: (void)0;
1581 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_3
); /* finish on <var_3:Iterator[MClass]>*/
1588 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_typing_tables for (self: SeparateErasureCompiler, Set[MClass]): Map[MClass, Array[nullable MClass]] */
1589 val
* nit___nit__SeparateErasureCompiler___build_class_typing_tables(val
* self
, val
* p0
) {
1590 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
1591 val
* var_mclasses
/* var mclasses: Set[MClass] */;
1592 val
* var1
/* : HashMap[MClass, Array[nullable MClass]] */;
1593 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MClass]] */;
1594 val
* var_
/* var : Set[MClass] */;
1595 val
* var2
/* : Iterator[nullable Object] */;
1596 val
* var_3
/* var : Iterator[MClass] */;
1597 short int var4
/* : Bool */;
1598 val
* var5
/* : nullable Object */;
1599 val
* var_mclass
/* var mclass: MClass */;
1600 val
* var6
/* : Array[nullable MClass] */;
1601 val
* var_table
/* var table: Array[nullable MClass] */;
1602 val
* var7
/* : Array[MClass] */;
1603 val
* var_supers
/* var supers: Array[MClass] */;
1604 val
* var8
/* : MModule */;
1605 val
* var10
/* : MModule */;
1606 val
* var11
/* : POSet[MClass] */;
1607 short int var12
/* : Bool */;
1608 val
* var13
/* : MModule */;
1609 val
* var15
/* : MModule */;
1610 val
* var16
/* : POSetElement[MClass] */;
1611 val
* var17
/* : Collection[nullable Object] */;
1612 val
* var18
/* : Array[nullable Object] */;
1613 val
* var_19
/* var : Array[MClass] */;
1614 val
* var20
/* : ArrayIterator[nullable Object] */;
1615 val
* var_21
/* var : ArrayIterator[MClass] */;
1616 short int var22
/* : Bool */;
1617 val
* var23
/* : nullable Object */;
1618 val
* var_sup
/* var sup: MClass */;
1619 val
* var24
/* : Map[MClass, Int] */;
1620 val
* var26
/* : Map[MClass, Int] */;
1621 val
* var27
/* : nullable Object */;
1622 long var28
/* : Int */;
1623 long var_color
/* var color: Int */;
1624 long var29
/* : Int */;
1625 long var31
/* : Int */;
1626 short int var32
/* : Bool */;
1627 short int var34
/* : Bool */;
1630 const char* var_class_name
;
1631 short int var35
/* : Bool */;
1632 long var36
/* : Int */;
1633 long var38
/* : Int */;
1634 long var_i
/* var i: Int */;
1635 long var_39
/* var : Int */;
1636 short int var40
/* : Bool */;
1637 short int var42
/* : Bool */;
1640 const char* var_class_name45
;
1641 short int var46
/* : Bool */;
1642 long var47
/* : Int */;
1644 var1
= NEW_standard__HashMap(&type_standard__HashMap__nit__MClass__standard__Array__nullable__nit__MClass
);
1646 standard___standard__HashMap___standard__kernel__Object__init(var1
); /* Direct call hash_collection#HashMap#init on <var1:HashMap[MClass, Array[nullable MClass]]>*/
1649 var_
= var_mclasses
;
1651 var2
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Set[MClass]>*/
1656 var4
= ((short int(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_3
); /* is_ok on <var_3:Iterator[MClass]>*/
1660 var5
= ((val
*(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_3
); /* item on <var_3:Iterator[MClass]>*/
1663 var6
= NEW_standard__Array(&type_standard__Array__nullable__nit__MClass
);
1665 standard___standard__Array___standard__kernel__Object__init(var6
); /* Direct call array#Array#init on <var6:Array[nullable MClass]>*/
1668 var7
= NEW_standard__Array(&type_standard__Array__nit__MClass
);
1670 standard___standard__Array___standard__kernel__Object__init(var7
); /* Direct call array#Array#init on <var7:Array[MClass]>*/
1674 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1675 var10
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1676 if (unlikely(var10
== NULL
)) {
1677 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1678 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
1686 var11
= nit__model___MModule___flatten_mclass_hierarchy(var8
);
1689 var12
= poset___poset__POSet___standard__abstract_collection__Collection__has(var11
, var_mclass
);
1693 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1694 var15
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1695 if (unlikely(var15
== NULL
)) {
1696 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1697 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
1701 RET_LABEL14
:(void)0;
1705 var16
= nit___nit__MClass___in_hierarchy(var_mclass
, var13
);
1708 var17
= poset___poset__POSetElement___greaters(var16
);
1711 var18
= ((val
*(*)(val
* self
))((((long)var17
&3)?class_info
[((long)var17
&3)]:var17
->class)->vft
[COLOR_standard__array__Collection__to_a
]))(var17
); /* to_a on <var17:Collection[nullable Object](Collection[MClass])>*/
1716 var_19
= var_supers
;
1718 var20
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_19
);
1723 var22
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_21
);
1727 var23
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_21
);
1731 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_colors (self) on <self:SeparateErasureCompiler> */
1732 var26
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
; /* _class_colors on <self:SeparateErasureCompiler> */
1733 if (unlikely(var26
== NULL
)) {
1734 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors");
1735 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 85);
1739 RET_LABEL25
:(void)0;
1743 var27
= ((val
*(*)(val
* self
, val
* p0
))((((long)var24
&3)?class_info
[((long)var24
&3)]:var24
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var24
, var_sup
); /* [] on <var24:Map[MClass, Int]>*/
1745 var28
= (long)(var27
)>>2;
1748 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MClass]> */
1749 var31
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MClass]> */
1751 RET_LABEL30
:(void)0;
1755 { /* Inline kernel#Int#<= (var29,var_color) on <var29:Int> */
1756 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
1757 /* <var_color:Int> isa OTHER */
1758 var34
= 1; /* easy <var_color:Int> isa OTHER*/
1759 if (unlikely(!var34
)) {
1760 var_class_name
= type_standard__Int
.name
;
1761 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1762 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 533);
1765 var35
= var29
<= var_color
;
1768 RET_LABEL33
:(void)0;
1773 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MClass]> */
1774 var38
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MClass]> */
1776 RET_LABEL37
:(void)0;
1783 { /* Inline kernel#Int#< (var_i,var_39) on <var_i:Int> */
1784 /* Covariant cast for argument 0 (i) <var_39:Int> isa OTHER */
1785 /* <var_39:Int> isa OTHER */
1786 var42
= 1; /* easy <var_39:Int> isa OTHER*/
1787 if (unlikely(!var42
)) {
1788 var_class_name45
= type_standard__Int
.name
;
1789 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45
);
1790 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 534);
1793 var46
= var_i
< var_39
;
1796 RET_LABEL41
:(void)0;
1801 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_i
, ((val
*)NULL
)); /* Direct call array#Array#[]= on <var_table:Array[nullable MClass]>*/
1804 var47
= standard___standard__Int___Discrete__successor(var_i
, 1l);
1811 BREAK_label
: (void)0;
1815 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_color
, var_sup
); /* Direct call array#Array#[]= on <var_table:Array[nullable MClass]>*/
1818 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_21
); /* Direct call array#ArrayIterator#next on <var_21:ArrayIterator[MClass]>*/
1824 BREAK_label48
: (void)0;
1826 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_21
); /* Direct call array#ArrayIterator#finish on <var_21:ArrayIterator[MClass]>*/
1829 standard___standard__HashMap___standard__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]]>*/
1832 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_3
); /* next on <var_3:Iterator[MClass]>*/
1838 BREAK_label49
: (void)0;
1840 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_3
); /* finish on <var_3:Iterator[MClass]>*/
1847 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_header_structs for (self: SeparateErasureCompiler) */
1848 void nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__compile_header_structs(val
* self
) {
1849 val
* var
/* : CodeWriter */;
1850 val
* var2
/* : CodeWriter */;
1851 static val
* varonce
;
1852 val
* var3
/* : String */;
1853 char* var4
/* : NativeString */;
1854 val
* var5
/* : FlatString */;
1855 val
* var6
/* : CodeWriter */;
1856 val
* var8
/* : CodeWriter */;
1857 static val
* varonce9
;
1858 val
* var10
/* : String */;
1859 char* var11
/* : NativeString */;
1860 val
* var12
/* : FlatString */;
1861 val
* var13
/* : CodeWriter */;
1862 val
* var15
/* : CodeWriter */;
1863 static val
* varonce16
;
1864 val
* var17
/* : String */;
1865 char* var18
/* : NativeString */;
1866 val
* var19
/* : FlatString */;
1867 val
* var20
/* : CodeWriter */;
1868 val
* var22
/* : CodeWriter */;
1869 static val
* varonce23
;
1870 val
* var24
/* : String */;
1871 char* var25
/* : NativeString */;
1872 val
* var26
/* : FlatString */;
1873 val
* var27
/* : CodeWriter */;
1874 val
* var29
/* : CodeWriter */;
1875 static val
* varonce30
;
1876 val
* var31
/* : String */;
1877 char* var32
/* : NativeString */;
1878 val
* var33
/* : FlatString */;
1879 val
* var34
/* : CodeWriter */;
1880 val
* var36
/* : CodeWriter */;
1881 static val
* varonce37
;
1882 val
* var38
/* : String */;
1883 char* var39
/* : NativeString */;
1884 val
* var40
/* : FlatString */;
1886 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1887 var2
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1888 if (unlikely(var2
== NULL
)) {
1889 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1890 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
1897 if (likely(varonce
!=NULL
)) {
1900 var4
= "typedef void(*nitmethod_t)(void); /* general C type representing a Nit method. */";
1901 var5
= standard___standard__NativeString___to_s_with_length(var4
, 81l);
1906 nit___nit__CodeWriter___add_decl(var
, var3
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var:CodeWriter>*/
1909 nit___nit__SeparateCompiler___compile_header_attribute_structs(self
); /* Direct call separate_compiler#SeparateCompiler#compile_header_attribute_structs on <self:SeparateErasureCompiler>*/
1912 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1913 var8
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1914 if (unlikely(var8
== NULL
)) {
1915 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1916 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
1923 if (likely(varonce9
!=NULL
)) {
1926 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. */";
1927 var12
= standard___standard__NativeString___to_s_with_length(var11
, 206l);
1932 nit___nit__CodeWriter___add_decl(var6
, var10
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var6:CodeWriter>*/
1935 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1936 var15
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1937 if (unlikely(var15
== NULL
)) {
1938 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1939 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
1943 RET_LABEL14
:(void)0;
1946 if (likely(varonce16
!=NULL
)) {
1949 var18
= "struct type_table { int size; int table[]; }; /* colorized type table. */";
1950 var19
= standard___standard__NativeString___to_s_with_length(var18
, 73l);
1955 nit___nit__CodeWriter___add_decl(var13
, var17
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var13:CodeWriter>*/
1958 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1959 var22
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1960 if (unlikely(var22
== NULL
)) {
1961 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1962 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
1966 RET_LABEL21
:(void)0;
1969 if (likely(varonce23
!=NULL
)) {
1972 var25
= "struct vts_entry { short int is_nullable; const struct class *class; }; /* link (nullable or not) between the vts and is bound. */";
1973 var26
= standard___standard__NativeString___to_s_with_length(var25
, 130l);
1978 nit___nit__CodeWriter___add_decl(var20
, var24
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var20:CodeWriter>*/
1981 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1982 var29
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1983 if (unlikely(var29
== NULL
)) {
1984 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1985 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
1989 RET_LABEL28
:(void)0;
1992 if (likely(varonce30
!=NULL
)) {
1995 var32
= "struct vts_table { int dummy; const struct vts_entry vts[]; }; /* vts list of a C type representation. */";
1996 var33
= standard___standard__NativeString___to_s_with_length(var32
, 105l);
2001 nit___nit__CodeWriter___add_decl(var27
, var31
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var27:CodeWriter>*/
2004 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
2005 var36
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
2006 if (unlikely(var36
== NULL
)) {
2007 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2008 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
2012 RET_LABEL35
:(void)0;
2015 if (likely(varonce37
!=NULL
)) {
2018 var39
= "typedef struct instance { const struct class *class; nitattribute_t attrs[1]; } val; /* general C type representing a Nit instance. */";
2019 var40
= standard___standard__NativeString___to_s_with_length(var39
, 134l);
2024 nit___nit__CodeWriter___add_decl(var34
, var38
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var34:CodeWriter>*/
2028 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_class_to_c for (self: SeparateErasureCompiler, MClass) */
2029 void nit___nit__SeparateErasureCompiler___nit__separate_compiler__SeparateCompiler__compile_class_to_c(val
* self
, val
* p0
) {
2030 val
* var_mclass
/* var mclass: MClass */;
2031 val
* var
/* : MClassDef */;
2032 val
* var2
/* : MClassDef */;
2033 val
* var3
/* : MClassType */;
2034 val
* var5
/* : MClassType */;
2035 val
* var_mtype
/* var mtype: MClassType */;
2036 val
* var6
/* : String */;
2037 val
* var_c_name
/* var c_name: String */;
2038 val
* var7
/* : Map[MClass, Array[nullable MClass]] */;
2039 val
* var9
/* : Map[MClass, Array[nullable MClass]] */;
2040 val
* var10
/* : nullable Object */;
2041 val
* var_class_table
/* var class_table: Array[nullable MClass] */;
2042 val
* var11
/* : SeparateCompilerVisitor */;
2043 val
* var_v
/* var v: SeparateCompilerVisitor */;
2044 val
* var12
/* : nullable RapidTypeAnalysis */;
2045 val
* var14
/* : nullable RapidTypeAnalysis */;
2046 val
* var_rta
/* var rta: nullable RapidTypeAnalysis */;
2047 short int var_is_dead
/* var is_dead: Bool */;
2048 short int var15
/* : Bool */;
2049 short int var16
/* : Bool */;
2050 short int var17
/* : Bool */;
2051 short int var18
/* : Bool */;
2052 short int var19
/* : Bool */;
2053 short int var_
/* var : Bool */;
2054 short int var20
/* : Bool */;
2055 short int var21
/* : Bool */;
2056 val
* var_other
/* var other: nullable Object */;
2057 short int var23
/* : Bool */;
2058 short int var24
/* : Bool */;
2059 short int var_25
/* var : Bool */;
2060 val
* var26
/* : HashSet[MClass] */;
2061 val
* var28
/* : HashSet[MClass] */;
2062 short int var29
/* : Bool */;
2063 short int var30
/* : Bool */;
2064 short int var_31
/* var : Bool */;
2065 short int var32
/* : Bool */;
2066 short int var33
/* : Bool */;
2067 short int var_34
/* var : Bool */;
2068 val
* var35
/* : String */;
2069 val
* var37
/* : String */;
2070 static val
* varonce
;
2071 val
* var38
/* : String */;
2072 char* var39
/* : NativeString */;
2073 val
* var40
/* : FlatString */;
2074 short int var41
/* : Bool */;
2075 short int var43
/* : Bool */;
2076 short int var44
/* : Bool */;
2077 val
* var46
/* : NativeArray[String] */;
2078 static val
* varonce45
;
2079 static val
* varonce47
;
2080 val
* var48
/* : String */;
2081 char* var49
/* : NativeString */;
2082 val
* var50
/* : FlatString */;
2083 static val
* varonce51
;
2084 val
* var52
/* : String */;
2085 char* var53
/* : NativeString */;
2086 val
* var54
/* : FlatString */;
2087 val
* var55
/* : String */;
2088 val
* var57
/* : NativeArray[String] */;
2089 static val
* varonce56
;
2090 static val
* varonce58
;
2091 val
* var59
/* : String */;
2092 char* var60
/* : NativeString */;
2093 val
* var61
/* : FlatString */;
2094 val
* var62
/* : String */;
2095 val
* var64
/* : NativeArray[String] */;
2096 static val
* varonce63
;
2097 static val
* varonce65
;
2098 val
* var66
/* : String */;
2099 char* var67
/* : NativeString */;
2100 val
* var68
/* : FlatString */;
2101 static val
* varonce69
;
2102 val
* var70
/* : String */;
2103 char* var71
/* : NativeString */;
2104 val
* var72
/* : FlatString */;
2105 val
* var73
/* : String */;
2106 val
* var75
/* : NativeArray[String] */;
2107 static val
* varonce74
;
2108 static val
* varonce76
;
2109 val
* var77
/* : String */;
2110 char* var78
/* : NativeString */;
2111 val
* var79
/* : FlatString */;
2112 static val
* varonce80
;
2113 val
* var81
/* : String */;
2114 char* var82
/* : NativeString */;
2115 val
* var83
/* : FlatString */;
2116 val
* var84
/* : String */;
2117 val
* var86
/* : NativeArray[String] */;
2118 static val
* varonce85
;
2119 static val
* varonce87
;
2120 val
* var88
/* : String */;
2121 char* var89
/* : NativeString */;
2122 val
* var90
/* : FlatString */;
2123 static val
* varonce91
;
2124 val
* var92
/* : String */;
2125 char* var93
/* : NativeString */;
2126 val
* var94
/* : FlatString */;
2127 val
* var95
/* : String */;
2128 val
* var97
/* : NativeArray[String] */;
2129 static val
* varonce96
;
2130 static val
* varonce98
;
2131 val
* var99
/* : String */;
2132 char* var100
/* : NativeString */;
2133 val
* var101
/* : FlatString */;
2134 val
* var102
/* : Map[MClass, Int] */;
2135 val
* var104
/* : Map[MClass, Int] */;
2136 val
* var105
/* : nullable Object */;
2137 val
* var106
/* : String */;
2138 long var107
/* : Int */;
2139 val
* var108
/* : String */;
2140 val
* var110
/* : NativeArray[String] */;
2141 static val
* varonce109
;
2142 static val
* varonce111
;
2143 val
* var112
/* : String */;
2144 char* var113
/* : NativeString */;
2145 val
* var114
/* : FlatString */;
2146 static val
* varonce115
;
2147 val
* var116
/* : String */;
2148 char* var117
/* : NativeString */;
2149 val
* var118
/* : FlatString */;
2150 val
* var119
/* : String */;
2151 val
* var121
/* : String */;
2152 val
* var122
/* : String */;
2153 val
* var124
/* : NativeArray[String] */;
2154 static val
* varonce123
;
2155 static val
* varonce125
;
2156 val
* var126
/* : String */;
2157 char* var127
/* : NativeString */;
2158 val
* var128
/* : FlatString */;
2159 long var129
/* : Int */;
2160 val
* var130
/* : String */;
2161 val
* var131
/* : String */;
2162 val
* var133
/* : NativeArray[String] */;
2163 static val
* varonce132
;
2164 static val
* varonce134
;
2165 val
* var135
/* : String */;
2166 char* var136
/* : NativeString */;
2167 val
* var137
/* : FlatString */;
2168 val
* var138
/* : Map[MClass, Int] */;
2169 val
* var140
/* : Map[MClass, Int] */;
2170 val
* var141
/* : nullable Object */;
2171 val
* var142
/* : String */;
2172 long var143
/* : Int */;
2173 val
* var144
/* : String */;
2174 short int var145
/* : Bool */;
2175 short int var146
/* : Bool */;
2176 val
* var148
/* : NativeArray[String] */;
2177 static val
* varonce147
;
2178 static val
* varonce149
;
2179 val
* var150
/* : String */;
2180 char* var151
/* : NativeString */;
2181 val
* var152
/* : FlatString */;
2182 val
* var153
/* : String */;
2183 val
* var155
/* : NativeArray[String] */;
2184 static val
* varonce154
;
2185 static val
* varonce156
;
2186 val
* var157
/* : String */;
2187 char* var158
/* : NativeString */;
2188 val
* var159
/* : FlatString */;
2189 static val
* varonce160
;
2190 val
* var161
/* : String */;
2191 char* var162
/* : NativeString */;
2192 val
* var163
/* : FlatString */;
2193 val
* var164
/* : String */;
2194 static val
* varonce165
;
2195 val
* var166
/* : String */;
2196 char* var167
/* : NativeString */;
2197 val
* var168
/* : FlatString */;
2198 val
* var170
/* : NativeArray[String] */;
2199 static val
* varonce169
;
2200 static val
* varonce171
;
2201 val
* var172
/* : String */;
2202 char* var173
/* : NativeString */;
2203 val
* var174
/* : FlatString */;
2204 static val
* varonce175
;
2205 val
* var176
/* : String */;
2206 char* var177
/* : NativeString */;
2207 val
* var178
/* : FlatString */;
2208 val
* var179
/* : String */;
2209 static val
* varonce180
;
2210 val
* var181
/* : String */;
2211 char* var182
/* : NativeString */;
2212 val
* var183
/* : FlatString */;
2213 val
* var184
/* : Map[MClass, Array[nullable MPropDef]] */;
2214 val
* var186
/* : Map[MClass, Array[nullable MPropDef]] */;
2215 val
* var187
/* : nullable Object */;
2216 val
* var_vft
/* var vft: nullable Array[nullable MPropDef] */;
2217 short int var188
/* : Bool */;
2218 short int var189
/* : Bool */;
2219 short int var191
/* : Bool */;
2220 short int var192
/* : Bool */;
2221 long var_i
/* var i: Int */;
2222 long var193
/* : Int */;
2223 long var195
/* : Int */;
2224 long var_196
/* var : Int */;
2225 short int var197
/* : Bool */;
2226 short int var199
/* : Bool */;
2229 const char* var_class_name
;
2230 short int var200
/* : Bool */;
2231 val
* var201
/* : nullable Object */;
2232 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
2233 short int var202
/* : Bool */;
2234 short int var203
/* : Bool */;
2235 val
* var_other205
/* var other: nullable Object */;
2236 short int var206
/* : Bool */;
2237 short int var208
/* : Bool */;
2238 static val
* varonce209
;
2239 val
* var210
/* : String */;
2240 char* var211
/* : NativeString */;
2241 val
* var212
/* : FlatString */;
2242 short int var213
/* : Bool */;
2245 short int var216
/* : Bool */;
2246 short int var217
/* : Bool */;
2247 short int var218
/* : Bool */;
2248 short int var220
/* : Bool */;
2249 short int var221
/* : Bool */;
2250 short int var_222
/* var : Bool */;
2251 val
* var223
/* : HashSet[MMethodDef] */;
2252 val
* var225
/* : HashSet[MMethodDef] */;
2253 short int var226
/* : Bool */;
2254 short int var227
/* : Bool */;
2255 val
* var229
/* : NativeArray[String] */;
2256 static val
* varonce228
;
2257 static val
* varonce230
;
2258 val
* var231
/* : String */;
2259 char* var232
/* : NativeString */;
2260 val
* var233
/* : FlatString */;
2261 static val
* varonce234
;
2262 val
* var235
/* : String */;
2263 char* var236
/* : NativeString */;
2264 val
* var237
/* : FlatString */;
2265 static val
* varonce238
;
2266 val
* var239
/* : String */;
2267 char* var240
/* : NativeString */;
2268 val
* var241
/* : FlatString */;
2269 static val
* varonce242
;
2270 val
* var243
/* : String */;
2271 char* var244
/* : NativeString */;
2272 val
* var245
/* : FlatString */;
2273 val
* var246
/* : MModule */;
2274 val
* var248
/* : MModule */;
2275 val
* var249
/* : String */;
2276 val
* var250
/* : String */;
2277 val
* var251
/* : String */;
2278 val
* var252
/* : String */;
2279 val
* var253
/* : SeparateRuntimeFunction */;
2280 val
* var_rf
/* var rf: SeparateRuntimeFunction */;
2281 val
* var254
/* : String */;
2282 val
* var256
/* : NativeArray[String] */;
2283 static val
* varonce255
;
2284 static val
* varonce257
;
2285 val
* var258
/* : String */;
2286 char* var259
/* : NativeString */;
2287 val
* var260
/* : FlatString */;
2288 static val
* varonce261
;
2289 val
* var262
/* : String */;
2290 char* var263
/* : NativeString */;
2291 val
* var264
/* : FlatString */;
2292 static val
* varonce265
;
2293 val
* var266
/* : String */;
2294 char* var267
/* : NativeString */;
2295 val
* var268
/* : FlatString */;
2296 val
* var269
/* : String */;
2297 val
* var270
/* : String */;
2298 val
* var271
/* : String */;
2299 long var272
/* : Int */;
2300 static val
* varonce274
;
2301 val
* var275
/* : String */;
2302 char* var276
/* : NativeString */;
2303 val
* var277
/* : FlatString */;
2304 static val
* varonce278
;
2305 val
* var279
/* : String */;
2306 char* var280
/* : NativeString */;
2307 val
* var281
/* : FlatString */;
2308 val
* var283
/* : NativeArray[String] */;
2309 static val
* varonce282
;
2310 static val
* varonce284
;
2311 val
* var285
/* : String */;
2312 char* var286
/* : NativeString */;
2313 val
* var287
/* : FlatString */;
2314 static val
* varonce288
;
2315 val
* var289
/* : String */;
2316 char* var290
/* : NativeString */;
2317 val
* var291
/* : FlatString */;
2318 val
* var292
/* : String */;
2319 val
* var294
/* : NativeArray[String] */;
2320 static val
* varonce293
;
2321 static val
* varonce295
;
2322 val
* var296
/* : String */;
2323 char* var297
/* : NativeString */;
2324 val
* var298
/* : FlatString */;
2325 long var299
/* : Int */;
2326 long var301
/* : Int */;
2327 val
* var302
/* : String */;
2328 val
* var303
/* : String */;
2329 static val
* varonce304
;
2330 val
* var305
/* : String */;
2331 char* var306
/* : NativeString */;
2332 val
* var307
/* : FlatString */;
2333 val
* var_308
/* var : Array[nullable MClass] */;
2334 val
* var309
/* : ArrayIterator[nullable Object] */;
2335 val
* var_310
/* var : ArrayIterator[nullable MClass] */;
2336 short int var311
/* : Bool */;
2337 val
* var312
/* : nullable Object */;
2338 val
* var_msuper
/* var msuper: nullable MClass */;
2339 short int var313
/* : Bool */;
2340 short int var314
/* : Bool */;
2341 short int var316
/* : Bool */;
2342 short int var318
/* : Bool */;
2343 static val
* varonce319
;
2344 val
* var320
/* : String */;
2345 char* var321
/* : NativeString */;
2346 val
* var322
/* : FlatString */;
2347 val
* var324
/* : NativeArray[String] */;
2348 static val
* varonce323
;
2349 static val
* varonce325
;
2350 val
* var326
/* : String */;
2351 char* var327
/* : NativeString */;
2352 val
* var328
/* : FlatString */;
2353 static val
* varonce329
;
2354 val
* var330
/* : String */;
2355 char* var331
/* : NativeString */;
2356 val
* var332
/* : FlatString */;
2357 val
* var333
/* : Map[MClass, Int] */;
2358 val
* var335
/* : Map[MClass, Int] */;
2359 val
* var336
/* : nullable Object */;
2360 val
* var337
/* : String */;
2361 long var338
/* : Int */;
2362 val
* var339
/* : String */;
2363 val
* var340
/* : String */;
2364 static val
* varonce342
;
2365 val
* var343
/* : String */;
2366 char* var344
/* : NativeString */;
2367 val
* var345
/* : FlatString */;
2368 static val
* varonce346
;
2369 val
* var347
/* : String */;
2370 char* var348
/* : NativeString */;
2371 val
* var349
/* : FlatString */;
2372 short int var350
/* : Bool */;
2373 short int var351
/* : Bool */;
2374 short int var_352
/* var : Bool */;
2375 val
* var353
/* : MClass */;
2376 val
* var355
/* : MClass */;
2377 val
* var356
/* : String */;
2378 val
* var358
/* : String */;
2379 static val
* varonce359
;
2380 val
* var360
/* : String */;
2381 char* var361
/* : NativeString */;
2382 val
* var362
/* : FlatString */;
2383 short int var363
/* : Bool */;
2384 val
* var364
/* : CodeWriter */;
2385 val
* var366
/* : CodeWriter */;
2386 val
* var368
/* : NativeArray[String] */;
2387 static val
* varonce367
;
2388 static val
* varonce369
;
2389 val
* var370
/* : String */;
2390 char* var371
/* : NativeString */;
2391 val
* var372
/* : FlatString */;
2392 static val
* varonce373
;
2393 val
* var374
/* : String */;
2394 char* var375
/* : NativeString */;
2395 val
* var376
/* : FlatString */;
2396 val
* var377
/* : String */;
2397 val
* var378
/* : CodeWriter */;
2398 val
* var380
/* : CodeWriter */;
2399 static val
* varonce381
;
2400 val
* var382
/* : String */;
2401 char* var383
/* : NativeString */;
2402 val
* var384
/* : FlatString */;
2403 val
* var385
/* : CodeWriter */;
2404 val
* var387
/* : CodeWriter */;
2405 val
* var389
/* : NativeArray[String] */;
2406 static val
* varonce388
;
2407 static val
* varonce390
;
2408 val
* var391
/* : String */;
2409 char* var392
/* : NativeString */;
2410 val
* var393
/* : FlatString */;
2411 val
* var394
/* : String */;
2412 val
* var395
/* : String */;
2413 val
* var396
/* : CodeWriter */;
2414 val
* var398
/* : CodeWriter */;
2415 static val
* varonce399
;
2416 val
* var400
/* : String */;
2417 char* var401
/* : NativeString */;
2418 val
* var402
/* : FlatString */;
2419 val
* var404
/* : NativeArray[String] */;
2420 static val
* varonce403
;
2421 static val
* varonce405
;
2422 val
* var406
/* : String */;
2423 char* var407
/* : NativeString */;
2424 val
* var408
/* : FlatString */;
2425 val
* var409
/* : String */;
2426 val
* var411
/* : NativeArray[String] */;
2427 static val
* varonce410
;
2428 static val
* varonce412
;
2429 val
* var413
/* : String */;
2430 char* var414
/* : NativeString */;
2431 val
* var415
/* : FlatString */;
2432 static val
* varonce416
;
2433 val
* var417
/* : String */;
2434 char* var418
/* : NativeString */;
2435 val
* var419
/* : FlatString */;
2436 static val
* varonce420
;
2437 val
* var421
/* : String */;
2438 char* var422
/* : NativeString */;
2439 val
* var423
/* : FlatString */;
2440 val
* var424
/* : String */;
2441 val
* var425
/* : String */;
2442 val
* var427
/* : NativeArray[String] */;
2443 static val
* varonce426
;
2444 static val
* varonce428
;
2445 val
* var429
/* : String */;
2446 char* var430
/* : NativeString */;
2447 val
* var431
/* : FlatString */;
2448 static val
* varonce432
;
2449 val
* var433
/* : String */;
2450 char* var434
/* : NativeString */;
2451 val
* var435
/* : FlatString */;
2452 val
* var436
/* : String */;
2453 val
* var437
/* : String */;
2454 val
* var439
/* : NativeArray[String] */;
2455 static val
* varonce438
;
2456 static val
* varonce440
;
2457 val
* var441
/* : String */;
2458 char* var442
/* : NativeString */;
2459 val
* var443
/* : FlatString */;
2460 static val
* varonce444
;
2461 val
* var445
/* : String */;
2462 char* var446
/* : NativeString */;
2463 val
* var447
/* : FlatString */;
2464 static val
* varonce448
;
2465 val
* var449
/* : String */;
2466 char* var450
/* : NativeString */;
2467 val
* var451
/* : FlatString */;
2468 val
* var452
/* : String */;
2469 val
* var453
/* : String */;
2470 val
* var454
/* : String */;
2471 val
* var456
/* : NativeArray[String] */;
2472 static val
* varonce455
;
2473 static val
* varonce457
;
2474 val
* var458
/* : String */;
2475 char* var459
/* : NativeString */;
2476 val
* var460
/* : FlatString */;
2477 static val
* varonce461
;
2478 val
* var462
/* : String */;
2479 char* var463
/* : NativeString */;
2480 val
* var464
/* : FlatString */;
2481 static val
* varonce465
;
2482 val
* var466
/* : String */;
2483 char* var467
/* : NativeString */;
2484 val
* var468
/* : FlatString */;
2485 val
* var469
/* : String */;
2486 val
* var471
/* : NativeArray[String] */;
2487 static val
* varonce470
;
2488 static val
* varonce472
;
2489 val
* var473
/* : String */;
2490 char* var474
/* : NativeString */;
2491 val
* var475
/* : FlatString */;
2492 val
* var476
/* : String */;
2493 val
* var478
/* : NativeArray[String] */;
2494 static val
* varonce477
;
2495 static val
* varonce479
;
2496 val
* var480
/* : String */;
2497 char* var481
/* : NativeString */;
2498 val
* var482
/* : FlatString */;
2499 static val
* varonce483
;
2500 val
* var484
/* : String */;
2501 char* var485
/* : NativeString */;
2502 val
* var486
/* : FlatString */;
2503 val
* var487
/* : String */;
2504 static val
* varonce488
;
2505 val
* var489
/* : String */;
2506 char* var490
/* : NativeString */;
2507 val
* var491
/* : FlatString */;
2508 static val
* varonce492
;
2509 val
* var493
/* : String */;
2510 char* var494
/* : NativeString */;
2511 val
* var495
/* : FlatString */;
2512 static val
* varonce496
;
2513 val
* var497
/* : String */;
2514 char* var498
/* : NativeString */;
2515 val
* var499
/* : FlatString */;
2516 val
* var500
/* : MClass */;
2517 val
* var502
/* : MClass */;
2518 val
* var503
/* : String */;
2519 val
* var505
/* : String */;
2520 static val
* varonce506
;
2521 val
* var507
/* : String */;
2522 char* var508
/* : NativeString */;
2523 val
* var509
/* : FlatString */;
2524 short int var510
/* : Bool */;
2525 short int var512
/* : Bool */;
2526 short int var513
/* : Bool */;
2527 val
* var514
/* : SeparateCompilerVisitor */;
2528 val
* var516
/* : NativeArray[String] */;
2529 static val
* varonce515
;
2530 static val
* varonce517
;
2531 val
* var518
/* : String */;
2532 char* var519
/* : NativeString */;
2533 val
* var520
/* : FlatString */;
2534 val
* var521
/* : String */;
2535 val
* var523
/* : NativeArray[String] */;
2536 static val
* varonce522
;
2537 static val
* varonce524
;
2538 val
* var525
/* : String */;
2539 char* var526
/* : NativeString */;
2540 val
* var527
/* : FlatString */;
2541 static val
* varonce528
;
2542 val
* var529
/* : String */;
2543 char* var530
/* : NativeString */;
2544 val
* var531
/* : FlatString */;
2545 val
* var532
/* : String */;
2546 val
* var533
/* : String */;
2547 val
* var535
/* : NativeArray[String] */;
2548 static val
* varonce534
;
2549 static val
* varonce536
;
2550 val
* var537
/* : String */;
2551 char* var538
/* : NativeString */;
2552 val
* var539
/* : FlatString */;
2553 static val
* varonce540
;
2554 val
* var541
/* : String */;
2555 char* var542
/* : NativeString */;
2556 val
* var543
/* : FlatString */;
2557 val
* var544
/* : String */;
2558 val
* var545
/* : String */;
2559 val
* var547
/* : NativeArray[String] */;
2560 static val
* varonce546
;
2561 static val
* varonce548
;
2562 val
* var549
/* : String */;
2563 char* var550
/* : NativeString */;
2564 val
* var551
/* : FlatString */;
2565 static val
* varonce552
;
2566 val
* var553
/* : String */;
2567 char* var554
/* : NativeString */;
2568 val
* var555
/* : FlatString */;
2569 val
* var556
/* : String */;
2570 val
* var557
/* : String */;
2571 val
* var559
/* : NativeArray[String] */;
2572 static val
* varonce558
;
2573 static val
* varonce560
;
2574 val
* var561
/* : String */;
2575 char* var562
/* : NativeString */;
2576 val
* var563
/* : FlatString */;
2577 val
* var564
/* : String */;
2578 val
* var565
/* : String */;
2579 static val
* varonce566
;
2580 val
* var567
/* : String */;
2581 char* var568
/* : NativeString */;
2582 val
* var569
/* : FlatString */;
2583 val
* var570
/* : RuntimeVariable */;
2584 val
* var_res
/* var res: RuntimeVariable */;
2585 val
* var573
/* : NativeArray[String] */;
2586 static val
* varonce572
;
2587 static val
* varonce574
;
2588 val
* var575
/* : String */;
2589 char* var576
/* : NativeString */;
2590 val
* var577
/* : FlatString */;
2591 static val
* varonce578
;
2592 val
* var579
/* : String */;
2593 char* var580
/* : NativeString */;
2594 val
* var581
/* : FlatString */;
2595 val
* var582
/* : String */;
2596 val
* var583
/* : String */;
2597 val
* var584
/* : String */;
2598 val
* var586
/* : NativeArray[String] */;
2599 static val
* varonce585
;
2600 static val
* varonce587
;
2601 val
* var588
/* : String */;
2602 char* var589
/* : NativeString */;
2603 val
* var590
/* : FlatString */;
2604 val
* var591
/* : String */;
2605 val
* var593
/* : NativeArray[String] */;
2606 static val
* varonce592
;
2607 static val
* varonce594
;
2608 val
* var595
/* : String */;
2609 char* var596
/* : NativeString */;
2610 val
* var597
/* : FlatString */;
2611 static val
* varonce598
;
2612 val
* var599
/* : String */;
2613 char* var600
/* : NativeString */;
2614 val
* var601
/* : FlatString */;
2615 val
* var602
/* : String */;
2616 val
* var603
/* : String */;
2617 val
* var605
/* : NativeArray[String] */;
2618 static val
* varonce604
;
2619 static val
* varonce606
;
2620 val
* var607
/* : String */;
2621 char* var608
/* : NativeString */;
2622 val
* var609
/* : FlatString */;
2623 static val
* varonce610
;
2624 val
* var611
/* : String */;
2625 char* var612
/* : NativeString */;
2626 val
* var613
/* : FlatString */;
2627 static val
* varonce614
;
2628 val
* var615
/* : String */;
2629 char* var616
/* : NativeString */;
2630 val
* var617
/* : FlatString */;
2631 val
* var618
/* : String */;
2632 val
* var619
/* : String */;
2633 val
* var620
/* : String */;
2634 val
* var622
/* : NativeArray[String] */;
2635 static val
* varonce621
;
2636 static val
* varonce623
;
2637 val
* var624
/* : String */;
2638 char* var625
/* : NativeString */;
2639 val
* var626
/* : FlatString */;
2640 static val
* varonce627
;
2641 val
* var628
/* : String */;
2642 char* var629
/* : NativeString */;
2643 val
* var630
/* : FlatString */;
2644 val
* var631
/* : String */;
2645 val
* var632
/* : String */;
2646 static val
* varonce633
;
2647 val
* var634
/* : String */;
2648 char* var635
/* : NativeString */;
2649 val
* var636
/* : FlatString */;
2650 val
* var637
/* : String */;
2651 val
* var639
/* : String */;
2652 static val
* varonce640
;
2653 val
* var641
/* : String */;
2654 char* var642
/* : NativeString */;
2655 val
* var643
/* : FlatString */;
2656 short int var644
/* : Bool */;
2657 val
* var645
/* : CodeWriter */;
2658 val
* var647
/* : CodeWriter */;
2659 val
* var649
/* : NativeArray[String] */;
2660 static val
* varonce648
;
2661 static val
* varonce650
;
2662 val
* var651
/* : String */;
2663 char* var652
/* : NativeString */;
2664 val
* var653
/* : FlatString */;
2665 static val
* varonce654
;
2666 val
* var655
/* : String */;
2667 char* var656
/* : NativeString */;
2668 val
* var657
/* : FlatString */;
2669 val
* var658
/* : String */;
2670 val
* var659
/* : CodeWriter */;
2671 val
* var661
/* : CodeWriter */;
2672 static val
* varonce662
;
2673 val
* var663
/* : String */;
2674 char* var664
/* : NativeString */;
2675 val
* var665
/* : FlatString */;
2676 val
* var666
/* : CodeWriter */;
2677 val
* var668
/* : CodeWriter */;
2678 static val
* varonce669
;
2679 val
* var670
/* : String */;
2680 char* var671
/* : NativeString */;
2681 val
* var672
/* : FlatString */;
2682 val
* var673
/* : CodeWriter */;
2683 val
* var675
/* : CodeWriter */;
2684 static val
* varonce676
;
2685 val
* var677
/* : String */;
2686 char* var678
/* : NativeString */;
2687 val
* var679
/* : FlatString */;
2688 val
* var680
/* : CodeWriter */;
2689 val
* var682
/* : CodeWriter */;
2690 static val
* varonce683
;
2691 val
* var684
/* : String */;
2692 char* var685
/* : NativeString */;
2693 val
* var686
/* : FlatString */;
2694 val
* var688
/* : NativeArray[String] */;
2695 static val
* varonce687
;
2696 static val
* varonce689
;
2697 val
* var690
/* : String */;
2698 char* var691
/* : NativeString */;
2699 val
* var692
/* : FlatString */;
2700 val
* var693
/* : String */;
2701 val
* var695
/* : NativeArray[String] */;
2702 static val
* varonce694
;
2703 static val
* varonce696
;
2704 val
* var697
/* : String */;
2705 char* var698
/* : NativeString */;
2706 val
* var699
/* : FlatString */;
2707 static val
* varonce700
;
2708 val
* var701
/* : String */;
2709 char* var702
/* : NativeString */;
2710 val
* var703
/* : FlatString */;
2711 val
* var704
/* : String */;
2712 val
* var705
/* : String */;
2713 val
* var707
/* : NativeArray[String] */;
2714 static val
* varonce706
;
2715 static val
* varonce708
;
2716 val
* var709
/* : String */;
2717 char* var710
/* : NativeString */;
2718 val
* var711
/* : FlatString */;
2719 static val
* varonce712
;
2720 val
* var713
/* : String */;
2721 char* var714
/* : NativeString */;
2722 val
* var715
/* : FlatString */;
2723 val
* var716
/* : String */;
2724 val
* var717
/* : String */;
2725 val
* var719
/* : NativeArray[String] */;
2726 static val
* varonce718
;
2727 static val
* varonce720
;
2728 val
* var721
/* : String */;
2729 char* var722
/* : NativeString */;
2730 val
* var723
/* : FlatString */;
2731 static val
* varonce724
;
2732 val
* var725
/* : String */;
2733 char* var726
/* : NativeString */;
2734 val
* var727
/* : FlatString */;
2735 val
* var728
/* : String */;
2736 val
* var729
/* : String */;
2737 static val
* varonce730
;
2738 val
* var731
/* : String */;
2739 char* var732
/* : NativeString */;
2740 val
* var733
/* : FlatString */;
2741 val
* var734
/* : String */;
2742 val
* var_res735
/* var res: String */;
2743 val
* var737
/* : NativeArray[String] */;
2744 static val
* varonce736
;
2745 static val
* varonce738
;
2746 val
* var739
/* : String */;
2747 char* var740
/* : NativeString */;
2748 val
* var741
/* : FlatString */;
2749 static val
* varonce742
;
2750 val
* var743
/* : String */;
2751 char* var744
/* : NativeString */;
2752 val
* var745
/* : FlatString */;
2753 static val
* varonce746
;
2754 val
* var747
/* : String */;
2755 char* var748
/* : NativeString */;
2756 val
* var749
/* : FlatString */;
2757 val
* var750
/* : String */;
2758 val
* var751
/* : Array[MType] */;
2759 val
* var752
/* : nullable Object */;
2760 val
* var_mtype_elt
/* var mtype_elt: MType */;
2761 val
* var754
/* : NativeArray[String] */;
2762 static val
* varonce753
;
2763 static val
* varonce755
;
2764 val
* var756
/* : String */;
2765 char* var757
/* : NativeString */;
2766 val
* var758
/* : FlatString */;
2767 static val
* varonce759
;
2768 val
* var760
/* : String */;
2769 char* var761
/* : NativeString */;
2770 val
* var762
/* : FlatString */;
2771 static val
* varonce763
;
2772 val
* var764
/* : String */;
2773 char* var765
/* : NativeString */;
2774 val
* var766
/* : FlatString */;
2775 val
* var767
/* : String */;
2776 val
* var768
/* : String */;
2777 val
* var770
/* : NativeArray[String] */;
2778 static val
* varonce769
;
2779 static val
* varonce771
;
2780 val
* var772
/* : String */;
2781 char* var773
/* : NativeString */;
2782 val
* var774
/* : FlatString */;
2783 val
* var775
/* : String */;
2784 val
* var777
/* : NativeArray[String] */;
2785 static val
* varonce776
;
2786 static val
* varonce778
;
2787 val
* var779
/* : String */;
2788 char* var780
/* : NativeString */;
2789 val
* var781
/* : FlatString */;
2790 static val
* varonce782
;
2791 val
* var783
/* : String */;
2792 char* var784
/* : NativeString */;
2793 val
* var785
/* : FlatString */;
2794 val
* var786
/* : String */;
2795 val
* var788
/* : NativeArray[String] */;
2796 static val
* varonce787
;
2797 static val
* varonce789
;
2798 val
* var790
/* : String */;
2799 char* var791
/* : NativeString */;
2800 val
* var792
/* : FlatString */;
2801 val
* var793
/* : String */;
2802 val
* var795
/* : NativeArray[String] */;
2803 static val
* varonce794
;
2804 static val
* varonce796
;
2805 val
* var797
/* : String */;
2806 char* var798
/* : NativeString */;
2807 val
* var799
/* : FlatString */;
2808 static val
* varonce800
;
2809 val
* var801
/* : String */;
2810 char* var802
/* : NativeString */;
2811 val
* var803
/* : FlatString */;
2812 val
* var804
/* : String */;
2813 static val
* varonce805
;
2814 val
* var806
/* : String */;
2815 char* var807
/* : NativeString */;
2816 val
* var808
/* : FlatString */;
2817 short int var809
/* : Bool */;
2818 val
* var810
/* : MClass */;
2819 val
* var812
/* : MClass */;
2820 val
* var813
/* : MClassKind */;
2821 val
* var815
/* : MClassKind */;
2822 val
* var816
/* : Sys */;
2823 val
* var817
/* : MClassKind */;
2824 short int var818
/* : Bool */;
2825 short int var820
/* : Bool */;
2826 short int var822
/* : Bool */;
2827 short int var_823
/* var : Bool */;
2828 val
* var824
/* : MClass */;
2829 val
* var826
/* : MClass */;
2830 val
* var827
/* : String */;
2831 val
* var829
/* : String */;
2832 static val
* varonce830
;
2833 val
* var831
/* : String */;
2834 char* var832
/* : NativeString */;
2835 val
* var833
/* : FlatString */;
2836 short int var834
/* : Bool */;
2837 short int var836
/* : Bool */;
2838 short int var837
/* : Bool */;
2839 val
* var838
/* : MModule */;
2840 val
* var840
/* : MModule */;
2841 val
* var841
/* : MClassType */;
2842 val
* var_pointer_type
/* var pointer_type: MClassType */;
2843 val
* var843
/* : NativeArray[String] */;
2844 static val
* varonce842
;
2845 static val
* varonce844
;
2846 val
* var845
/* : String */;
2847 char* var846
/* : NativeString */;
2848 val
* var847
/* : FlatString */;
2849 val
* var848
/* : String */;
2850 val
* var850
/* : NativeArray[String] */;
2851 static val
* varonce849
;
2852 static val
* varonce851
;
2853 val
* var852
/* : String */;
2854 char* var853
/* : NativeString */;
2855 val
* var854
/* : FlatString */;
2856 static val
* varonce855
;
2857 val
* var856
/* : String */;
2858 char* var857
/* : NativeString */;
2859 val
* var858
/* : FlatString */;
2860 val
* var859
/* : String */;
2861 val
* var860
/* : String */;
2862 val
* var862
/* : NativeArray[String] */;
2863 static val
* varonce861
;
2864 static val
* varonce863
;
2865 val
* var864
/* : String */;
2866 char* var865
/* : NativeString */;
2867 val
* var866
/* : FlatString */;
2868 static val
* varonce867
;
2869 val
* var868
/* : String */;
2870 char* var869
/* : NativeString */;
2871 val
* var870
/* : FlatString */;
2872 val
* var871
/* : String */;
2873 val
* var872
/* : String */;
2874 val
* var874
/* : NativeArray[String] */;
2875 static val
* varonce873
;
2876 static val
* varonce875
;
2877 val
* var876
/* : String */;
2878 char* var877
/* : NativeString */;
2879 val
* var878
/* : FlatString */;
2880 static val
* varonce879
;
2881 val
* var880
/* : String */;
2882 char* var881
/* : NativeString */;
2883 val
* var882
/* : FlatString */;
2884 val
* var883
/* : String */;
2885 val
* var884
/* : String */;
2886 val
* var886
/* : NativeArray[String] */;
2887 static val
* varonce885
;
2888 static val
* varonce887
;
2889 val
* var888
/* : String */;
2890 char* var889
/* : NativeString */;
2891 val
* var890
/* : FlatString */;
2892 val
* var891
/* : String */;
2893 val
* var892
/* : String */;
2894 static val
* varonce893
;
2895 val
* var894
/* : String */;
2896 char* var895
/* : NativeString */;
2897 val
* var896
/* : FlatString */;
2898 val
* var897
/* : RuntimeVariable */;
2899 val
* var_res898
/* var res: RuntimeVariable */;
2900 val
* var901
/* : NativeArray[String] */;
2901 static val
* varonce900
;
2902 static val
* varonce902
;
2903 val
* var903
/* : String */;
2904 char* var904
/* : NativeString */;
2905 val
* var905
/* : FlatString */;
2906 static val
* varonce906
;
2907 val
* var907
/* : String */;
2908 char* var908
/* : NativeString */;
2909 val
* var909
/* : FlatString */;
2910 val
* var910
/* : String */;
2911 val
* var911
/* : String */;
2912 val
* var912
/* : String */;
2913 val
* var914
/* : NativeArray[String] */;
2914 static val
* varonce913
;
2915 static val
* varonce915
;
2916 val
* var916
/* : String */;
2917 char* var917
/* : NativeString */;
2918 val
* var918
/* : FlatString */;
2919 val
* var919
/* : String */;
2920 val
* var921
/* : NativeArray[String] */;
2921 static val
* varonce920
;
2922 static val
* varonce922
;
2923 val
* var923
/* : String */;
2924 char* var924
/* : NativeString */;
2925 val
* var925
/* : FlatString */;
2926 static val
* varonce926
;
2927 val
* var927
/* : String */;
2928 char* var928
/* : NativeString */;
2929 val
* var929
/* : FlatString */;
2930 val
* var930
/* : String */;
2931 val
* var931
/* : String */;
2932 val
* var933
/* : NativeArray[String] */;
2933 static val
* varonce932
;
2934 static val
* varonce934
;
2935 val
* var935
/* : String */;
2936 char* var936
/* : NativeString */;
2937 val
* var937
/* : FlatString */;
2938 static val
* varonce938
;
2939 val
* var939
/* : String */;
2940 char* var940
/* : NativeString */;
2941 val
* var941
/* : FlatString */;
2942 static val
* varonce942
;
2943 val
* var943
/* : String */;
2944 char* var944
/* : NativeString */;
2945 val
* var945
/* : FlatString */;
2946 val
* var946
/* : String */;
2947 val
* var947
/* : String */;
2948 val
* var948
/* : String */;
2949 val
* var950
/* : NativeArray[String] */;
2950 static val
* varonce949
;
2951 static val
* varonce951
;
2952 val
* var952
/* : String */;
2953 char* var953
/* : NativeString */;
2954 val
* var954
/* : FlatString */;
2955 static val
* varonce955
;
2956 val
* var956
/* : String */;
2957 char* var957
/* : NativeString */;
2958 val
* var958
/* : FlatString */;
2959 val
* var959
/* : String */;
2960 val
* var960
/* : String */;
2961 static val
* varonce961
;
2962 val
* var962
/* : String */;
2963 char* var963
/* : NativeString */;
2964 val
* var964
/* : FlatString */;
2965 val
* var966
/* : NativeArray[String] */;
2966 static val
* varonce965
;
2967 static val
* varonce967
;
2968 val
* var968
/* : String */;
2969 char* var969
/* : NativeString */;
2970 val
* var970
/* : FlatString */;
2971 val
* var971
/* : String */;
2972 val
* var973
/* : NativeArray[String] */;
2973 static val
* varonce972
;
2974 static val
* varonce974
;
2975 val
* var975
/* : String */;
2976 char* var976
/* : NativeString */;
2977 val
* var977
/* : FlatString */;
2978 static val
* varonce978
;
2979 val
* var979
/* : String */;
2980 char* var980
/* : NativeString */;
2981 val
* var981
/* : FlatString */;
2982 val
* var982
/* : String */;
2983 val
* var983
/* : String */;
2984 val
* var985
/* : NativeArray[String] */;
2985 static val
* varonce984
;
2986 static val
* varonce986
;
2987 val
* var987
/* : String */;
2988 char* var988
/* : NativeString */;
2989 val
* var989
/* : FlatString */;
2990 static val
* varonce990
;
2991 val
* var991
/* : String */;
2992 char* var992
/* : NativeString */;
2993 val
* var993
/* : FlatString */;
2994 val
* var994
/* : String */;
2995 val
* var995
/* : String */;
2996 val
* var997
/* : NativeArray[String] */;
2997 static val
* varonce996
;
2998 static val
* varonce998
;
2999 val
* var999
/* : String */;
3000 char* var1000
/* : NativeString */;
3001 val
* var1001
/* : FlatString */;
3002 static val
* varonce1002
;
3003 val
* var1003
/* : String */;
3004 char* var1004
/* : NativeString */;
3005 val
* var1005
/* : FlatString */;
3006 val
* var1006
/* : String */;
3007 val
* var1007
/* : String */;
3008 val
* var1009
/* : NativeArray[String] */;
3009 static val
* varonce1008
;
3010 static val
* varonce1010
;
3011 val
* var1011
/* : String */;
3012 char* var1012
/* : NativeString */;
3013 val
* var1013
/* : FlatString */;
3014 val
* var1014
/* : String */;
3015 val
* var1015
/* : String */;
3016 static val
* varonce1016
;
3017 val
* var1017
/* : String */;
3018 char* var1018
/* : NativeString */;
3019 val
* var1019
/* : FlatString */;
3020 val
* var1020
/* : RuntimeVariable */;
3021 val
* var_res1021
/* var res: RuntimeVariable */;
3022 val
* var1023
/* : Map[MClass, Array[nullable MProperty]] */;
3023 val
* var1025
/* : Map[MClass, Array[nullable MProperty]] */;
3024 val
* var1026
/* : nullable Object */;
3025 val
* var_attrs
/* var attrs: nullable Array[nullable MProperty] */;
3026 short int var1027
/* : Bool */;
3027 short int var1028
/* : Bool */;
3028 val
* var1030
/* : NativeArray[String] */;
3029 static val
* varonce1029
;
3030 static val
* varonce1031
;
3031 val
* var1032
/* : String */;
3032 char* var1033
/* : NativeString */;
3033 val
* var1034
/* : FlatString */;
3034 val
* var1035
/* : String */;
3035 val
* var1036
/* : String */;
3036 val
* var1038
/* : NativeArray[String] */;
3037 static val
* varonce1037
;
3038 static val
* varonce1039
;
3039 val
* var1040
/* : String */;
3040 char* var1041
/* : NativeString */;
3041 val
* var1042
/* : FlatString */;
3042 static val
* varonce1043
;
3043 val
* var1044
/* : String */;
3044 char* var1045
/* : NativeString */;
3045 val
* var1046
/* : FlatString */;
3046 val
* var1047
/* : String */;
3047 long var1048
/* : Int */;
3048 long var1050
/* : Int */;
3049 val
* var1051
/* : String */;
3050 val
* var1052
/* : String */;
3051 val
* var1054
/* : NativeArray[String] */;
3052 static val
* varonce1053
;
3053 static val
* varonce1055
;
3054 val
* var1056
/* : String */;
3055 char* var1057
/* : NativeString */;
3056 val
* var1058
/* : FlatString */;
3057 val
* var1059
/* : String */;
3058 val
* var1061
/* : NativeArray[String] */;
3059 static val
* varonce1060
;
3060 static val
* varonce1062
;
3061 val
* var1063
/* : String */;
3062 char* var1064
/* : NativeString */;
3063 val
* var1065
/* : FlatString */;
3064 static val
* varonce1066
;
3065 val
* var1067
/* : String */;
3066 char* var1068
/* : NativeString */;
3067 val
* var1069
/* : FlatString */;
3068 val
* var1070
/* : String */;
3069 val
* var1071
/* : String */;
3070 short int var1072
/* : Bool */;
3071 short int var1073
/* : Bool */;
3072 short int var1075
/* : Bool */;
3073 short int var1076
/* : Bool */;
3074 val
* var1078
/* : NativeArray[String] */;
3075 static val
* varonce1077
;
3076 static val
* varonce1079
;
3077 val
* var1080
/* : String */;
3078 char* var1081
/* : NativeString */;
3079 val
* var1082
/* : FlatString */;
3080 static val
* varonce1083
;
3081 val
* var1084
/* : String */;
3082 char* var1085
/* : NativeString */;
3083 val
* var1086
/* : FlatString */;
3084 val
* var1087
/* : String */;
3085 val
* var1088
/* : String */;
3086 static val
* varonce1089
;
3087 val
* var1090
/* : String */;
3088 char* var1091
/* : NativeString */;
3089 val
* var1092
/* : FlatString */;
3092 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:MClass> */
3093 var2
= var_mclass
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var_mclass:MClass> */
3094 if (unlikely(var2
== NULL
)) {
3095 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
3096 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 460);
3104 { /* Inline model#MClassDef#bound_mtype (var) on <var:MClassDef> */
3105 var5
= var
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var:MClassDef> */
3106 if (unlikely(var5
== NULL
)) {
3107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3108 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 556);
3117 var6
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass
);
3121 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables (self) on <self:SeparateErasureCompiler> */
3122 var9
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
; /* _class_tables on <self:SeparateErasureCompiler> */
3123 if (unlikely(var9
== NULL
)) {
3124 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables");
3125 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 427);
3133 var10
= ((val
*(*)(val
* self
, val
* p0
))((((long)var7
&3)?class_info
[((long)var7
&3)]:var7
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var7
, var_mclass
); /* [] on <var7:Map[MClass, Array[nullable MClass]]>*/
3135 var_class_table
= var10
;
3137 var11
= nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__new_visitor(self
);
3141 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateErasureCompiler> */
3142 var14
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateErasureCompiler> */
3144 RET_LABEL13
:(void)0;
3149 var19
= !var_is_dead
;
3152 if (var_rta
== NULL
) {
3153 var20
= 0; /* is null */
3155 var20
= 1; /* arg is null and recv is not */
3158 { /* Inline kernel#Object#!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
3159 var_other
= ((val
*)NULL
);
3161 var23
= ((short int(*)(val
* self
, val
* p0
))(var_rta
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_rta
, var_other
); /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/
3166 RET_LABEL22
:(void)0;
3177 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
3178 var28
= var_rta
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
3179 if (unlikely(var28
== NULL
)) {
3180 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
3181 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 69);
3185 RET_LABEL27
:(void)0;
3189 var29
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var26
, var_mclass
);
3199 var32
= nit__abstract_compiler___MClassType___MType__is_c_primitive(var_mtype
);
3209 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
3210 var37
= var_mclass
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
3211 if (unlikely(var37
== NULL
)) {
3212 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3213 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 362);
3217 RET_LABEL36
:(void)0;
3220 if (likely(varonce
!=NULL
)) {
3223 var39
= "NativeArray";
3224 var40
= standard___standard__NativeString___to_s_with_length(var39
, 11l);
3229 { /* Inline kernel#Object#!= (var35,var38) on <var35:String> */
3232 var43
= ((short int(*)(val
* self
, val
* p0
))(var35
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var35
, var_other
); /* == on <var35:String>*/
3237 RET_LABEL42
:(void)0;
3248 if (unlikely(varonce45
==NULL
)) {
3249 var46
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
3250 if (likely(varonce47
!=NULL
)) {
3253 var49
= "/* runtime class ";
3254 var50
= standard___standard__NativeString___to_s_with_length(var49
, 17l);
3258 ((struct instance_standard__NativeArray
*)var46
)->values
[0]=var48
;
3259 if (likely(varonce51
!=NULL
)) {
3263 var54
= standard___standard__NativeString___to_s_with_length(var53
, 3l);
3267 ((struct instance_standard__NativeArray
*)var46
)->values
[2]=var52
;
3272 ((struct instance_standard__NativeArray
*)var46
)->values
[1]=var_c_name
;
3274 var55
= ((val
*(*)(val
* self
))(var46
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var46
); /* native_to_s on <var46:NativeArray[String]>*/
3278 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var55
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3280 if (unlikely(varonce56
==NULL
)) {
3281 var57
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
3282 if (likely(varonce58
!=NULL
)) {
3286 var61
= standard___standard__NativeString___to_s_with_length(var60
, 6l);
3290 ((struct instance_standard__NativeArray
*)var57
)->values
[0]=var59
;
3295 ((struct instance_standard__NativeArray
*)var57
)->values
[1]=var_c_name
;
3297 var62
= ((val
*(*)(val
* self
))(var57
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var57
); /* native_to_s on <var57:NativeArray[String]>*/
3300 if (unlikely(varonce63
==NULL
)) {
3301 var64
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
3302 if (likely(varonce65
!=NULL
)) {
3305 var67
= "extern const struct class class_";
3306 var68
= standard___standard__NativeString___to_s_with_length(var67
, 32l);
3310 ((struct instance_standard__NativeArray
*)var64
)->values
[0]=var66
;
3311 if (likely(varonce69
!=NULL
)) {
3315 var72
= standard___standard__NativeString___to_s_with_length(var71
, 1l);
3319 ((struct instance_standard__NativeArray
*)var64
)->values
[2]=var70
;
3324 ((struct instance_standard__NativeArray
*)var64
)->values
[1]=var_c_name
;
3326 var73
= ((val
*(*)(val
* self
))(var64
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var64
); /* native_to_s on <var64:NativeArray[String]>*/
3330 nit___nit__AbstractCompiler___provide_declaration(self
, var62
, var73
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
3332 if (unlikely(varonce74
==NULL
)) {
3333 var75
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
3334 if (likely(varonce76
!=NULL
)) {
3337 var78
= "extern const struct type_table type_table_";
3338 var79
= standard___standard__NativeString___to_s_with_length(var78
, 42l);
3342 ((struct instance_standard__NativeArray
*)var75
)->values
[0]=var77
;
3343 if (likely(varonce80
!=NULL
)) {
3347 var83
= standard___standard__NativeString___to_s_with_length(var82
, 1l);
3351 ((struct instance_standard__NativeArray
*)var75
)->values
[2]=var81
;
3356 ((struct instance_standard__NativeArray
*)var75
)->values
[1]=var_c_name
;
3358 var84
= ((val
*(*)(val
* self
))(var75
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var75
); /* native_to_s on <var75:NativeArray[String]>*/
3362 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var84
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3364 if (unlikely(varonce85
==NULL
)) {
3365 var86
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
3366 if (likely(varonce87
!=NULL
)) {
3369 var89
= "const struct class class_";
3370 var90
= standard___standard__NativeString___to_s_with_length(var89
, 25l);
3374 ((struct instance_standard__NativeArray
*)var86
)->values
[0]=var88
;
3375 if (likely(varonce91
!=NULL
)) {
3379 var94
= standard___standard__NativeString___to_s_with_length(var93
, 4l);
3383 ((struct instance_standard__NativeArray
*)var86
)->values
[2]=var92
;
3388 ((struct instance_standard__NativeArray
*)var86
)->values
[1]=var_c_name
;
3390 var95
= ((val
*(*)(val
* self
))(var86
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var86
); /* native_to_s on <var86:NativeArray[String]>*/
3394 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var95
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3396 if (unlikely(varonce96
==NULL
)) {
3397 var97
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
3398 if (likely(varonce98
!=NULL
)) {
3402 var101
= standard___standard__NativeString___to_s_with_length(var100
, 1l);
3406 ((struct instance_standard__NativeArray
*)var97
)->values
[1]=var99
;
3412 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids (self) on <self:SeparateErasureCompiler> */
3413 var104
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
; /* _class_ids on <self:SeparateErasureCompiler> */
3414 if (unlikely(var104
== NULL
)) {
3415 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids");
3416 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 84);
3420 RET_LABEL103
:(void)0;
3424 var105
= ((val
*(*)(val
* self
, val
* p0
))((((long)var102
&3)?class_info
[((long)var102
&3)]:var102
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var102
, var_mclass
); /* [] on <var102:Map[MClass, Int]>*/
3426 var107
= (long)(var105
)>>2;
3427 var106
= standard__string___Int___Object__to_s(var107
);
3428 ((struct instance_standard__NativeArray
*)var97
)->values
[0]=var106
;
3430 var108
= ((val
*(*)(val
* self
))(var97
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var97
); /* native_to_s on <var97:NativeArray[String]>*/
3434 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var108
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3436 if (unlikely(varonce109
==NULL
)) {
3437 var110
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
3438 if (likely(varonce111
!=NULL
)) {
3439 var112
= varonce111
;
3442 var114
= standard___standard__NativeString___to_s_with_length(var113
, 1l);
3444 varonce111
= var112
;
3446 ((struct instance_standard__NativeArray
*)var110
)->values
[0]=var112
;
3447 if (likely(varonce115
!=NULL
)) {
3448 var116
= varonce115
;
3450 var117
= "\", /* class_name_string */";
3451 var118
= standard___standard__NativeString___to_s_with_length(var117
, 26l);
3453 varonce115
= var116
;
3455 ((struct instance_standard__NativeArray
*)var110
)->values
[2]=var116
;
3457 var110
= varonce109
;
3461 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
3462 var121
= var_mclass
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
3463 if (unlikely(var121
== NULL
)) {
3464 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3465 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 362);
3469 RET_LABEL120
:(void)0;
3472 ((struct instance_standard__NativeArray
*)var110
)->values
[1]=var119
;
3474 var122
= ((val
*(*)(val
* self
))(var110
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var110
); /* native_to_s on <var110:NativeArray[String]>*/
3476 varonce109
= var110
;
3478 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var122
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3480 if (unlikely(varonce123
==NULL
)) {
3481 var124
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
3482 if (likely(varonce125
!=NULL
)) {
3483 var126
= varonce125
;
3485 var127
= ", /* box_kind */";
3486 var128
= standard___standard__NativeString___to_s_with_length(var127
, 16l);
3488 varonce125
= var126
;
3490 ((struct instance_standard__NativeArray
*)var124
)->values
[1]=var126
;
3492 var124
= varonce123
;
3496 var129
= nit___nit__SeparateCompiler___box_kind_of(self
, var_mclass
);
3498 var130
= standard__string___Int___Object__to_s(var129
);
3499 ((struct instance_standard__NativeArray
*)var124
)->values
[0]=var130
;
3501 var131
= ((val
*(*)(val
* self
))(var124
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var124
); /* native_to_s on <var124:NativeArray[String]>*/
3503 varonce123
= var124
;
3505 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var131
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3507 if (unlikely(varonce132
==NULL
)) {
3508 var133
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
3509 if (likely(varonce134
!=NULL
)) {
3510 var135
= varonce134
;
3513 var137
= standard___standard__NativeString___to_s_with_length(var136
, 1l);
3515 varonce134
= var135
;
3517 ((struct instance_standard__NativeArray
*)var133
)->values
[1]=var135
;
3519 var133
= varonce132
;
3523 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_colors (self) on <self:SeparateErasureCompiler> */
3524 var140
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
; /* _class_colors on <self:SeparateErasureCompiler> */
3525 if (unlikely(var140
== NULL
)) {
3526 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors");
3527 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 85);
3531 RET_LABEL139
:(void)0;
3535 var141
= ((val
*(*)(val
* self
, val
* p0
))((((long)var138
&3)?class_info
[((long)var138
&3)]:var138
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var138
, var_mclass
); /* [] on <var138:Map[MClass, Int]>*/
3537 var143
= (long)(var141
)>>2;
3538 var142
= standard__string___Int___Object__to_s(var143
);
3539 ((struct instance_standard__NativeArray
*)var133
)->values
[0]=var142
;
3541 var144
= ((val
*(*)(val
* self
))(var133
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var133
); /* native_to_s on <var133:NativeArray[String]>*/
3543 varonce132
= var133
;
3545 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var144
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3547 var145
= !var_is_dead
;
3550 var146
= nit___nit__SeparateErasureCompiler___build_class_vts_table(self
, var_mclass
);
3553 if (unlikely(varonce147
==NULL
)) {
3554 var148
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
3555 if (likely(varonce149
!=NULL
)) {
3556 var150
= varonce149
;
3558 var151
= "vts_table_";
3559 var152
= standard___standard__NativeString___to_s_with_length(var151
, 10l);
3561 varonce149
= var150
;
3563 ((struct instance_standard__NativeArray
*)var148
)->values
[0]=var150
;
3565 var148
= varonce147
;
3568 ((struct instance_standard__NativeArray
*)var148
)->values
[1]=var_c_name
;
3570 var153
= ((val
*(*)(val
* self
))(var148
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var148
); /* native_to_s on <var148:NativeArray[String]>*/
3572 varonce147
= var148
;
3574 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var153
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
3576 if (unlikely(varonce154
==NULL
)) {
3577 var155
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
3578 if (likely(varonce156
!=NULL
)) {
3579 var157
= varonce156
;
3581 var158
= "&vts_table_";
3582 var159
= standard___standard__NativeString___to_s_with_length(var158
, 11l);
3584 varonce156
= var157
;
3586 ((struct instance_standard__NativeArray
*)var155
)->values
[0]=var157
;
3587 if (likely(varonce160
!=NULL
)) {
3588 var161
= varonce160
;
3591 var163
= standard___standard__NativeString___to_s_with_length(var162
, 1l);
3593 varonce160
= var161
;
3595 ((struct instance_standard__NativeArray
*)var155
)->values
[2]=var161
;
3597 var155
= varonce154
;
3600 ((struct instance_standard__NativeArray
*)var155
)->values
[1]=var_c_name
;
3602 var164
= ((val
*(*)(val
* self
))(var155
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var155
); /* native_to_s on <var155:NativeArray[String]>*/
3604 varonce154
= var155
;
3606 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var164
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3609 if (likely(varonce165
!=NULL
)) {
3610 var166
= varonce165
;
3613 var168
= standard___standard__NativeString___to_s_with_length(var167
, 5l);
3615 varonce165
= var166
;
3618 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var166
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3621 if (unlikely(varonce169
==NULL
)) {
3622 var170
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
3623 if (likely(varonce171
!=NULL
)) {
3624 var172
= varonce171
;
3626 var173
= "&type_table_";
3627 var174
= standard___standard__NativeString___to_s_with_length(var173
, 12l);
3629 varonce171
= var172
;
3631 ((struct instance_standard__NativeArray
*)var170
)->values
[0]=var172
;
3632 if (likely(varonce175
!=NULL
)) {
3633 var176
= varonce175
;
3636 var178
= standard___standard__NativeString___to_s_with_length(var177
, 1l);
3638 varonce175
= var176
;
3640 ((struct instance_standard__NativeArray
*)var170
)->values
[2]=var176
;
3642 var170
= varonce169
;
3645 ((struct instance_standard__NativeArray
*)var170
)->values
[1]=var_c_name
;
3647 var179
= ((val
*(*)(val
* self
))(var170
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var170
); /* native_to_s on <var170:NativeArray[String]>*/
3649 varonce169
= var170
;
3651 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var179
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3653 if (likely(varonce180
!=NULL
)) {
3654 var181
= varonce180
;
3657 var183
= standard___standard__NativeString___to_s_with_length(var182
, 1l);
3659 varonce180
= var181
;
3662 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var181
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3665 { /* Inline separate_compiler#SeparateCompiler#method_tables (self) on <self:SeparateErasureCompiler> */
3666 var186
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___method_tables
].val
; /* _method_tables on <self:SeparateErasureCompiler> */
3667 if (unlikely(var186
== NULL
)) {
3668 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
3669 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 1053);
3673 RET_LABEL185
:(void)0;
3677 var187
= ((val
*(*)(val
* self
, val
* p0
))((((long)var184
&3)?class_info
[((long)var184
&3)]:var184
->class)->vft
[COLOR_standard__abstract_collection__MapRead__get_or_null
]))(var184
, var_mclass
); /* get_or_null on <var184:Map[MClass, Array[nullable MPropDef]]>*/
3680 if (var_vft
== NULL
) {
3681 var188
= 0; /* is null */
3683 var188
= 1; /* arg is null and recv is not */
3686 { /* Inline kernel#Object#!= (var_vft,((val*)NULL)) on <var_vft:nullable Array[nullable MPropDef]> */
3687 var_other
= ((val
*)NULL
);
3689 var191
= ((short int(*)(val
* self
, val
* p0
))(var_vft
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_vft
, var_other
); /* == on <var_vft:nullable Array[nullable MPropDef](Array[nullable MPropDef])>*/
3694 RET_LABEL190
:(void)0;
3701 { /* Inline array#AbstractArrayRead#length (var_vft) on <var_vft:nullable Array[nullable MPropDef](Array[nullable MPropDef])> */
3702 var195
= var_vft
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_vft:nullable Array[nullable MPropDef](Array[nullable MPropDef])> */
3704 RET_LABEL194
:(void)0;
3710 { /* Inline kernel#Int#< (var_i,var_196) on <var_i:Int> */
3711 /* Covariant cast for argument 0 (i) <var_196:Int> isa OTHER */
3712 /* <var_196:Int> isa OTHER */
3713 var199
= 1; /* easy <var_196:Int> isa OTHER*/
3714 if (unlikely(!var199
)) {
3715 var_class_name
= type_standard__Int
.name
;
3716 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3717 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 534);
3720 var200
= var_i
< var_196
;
3723 RET_LABEL198
:(void)0;
3728 var201
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_vft
, var_i
);
3730 var_mpropdef
= var201
;
3731 if (var_mpropdef
== NULL
) {
3732 var202
= 1; /* is null */
3734 var202
= 0; /* arg is null but recv is not */
3737 { /* Inline kernel#Object#== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MPropDef> */
3738 var_other205
= ((val
*)NULL
);
3740 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other205) on <var_mpropdef:nullable MPropDef(MPropDef)> */
3741 var208
= var_mpropdef
== var_other205
;
3744 RET_LABEL207
:(void)0;
3749 RET_LABEL204
:(void)0;
3754 if (likely(varonce209
!=NULL
)) {
3755 var210
= varonce209
;
3757 var211
= "NULL, /* empty */";
3758 var212
= standard___standard__NativeString___to_s_with_length(var211
, 17l);
3760 varonce209
= var210
;
3763 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var210
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3766 /* <var_mpropdef:nullable MPropDef(MPropDef)> isa MMethodDef */
3767 cltype214
= type_nit__MMethodDef
.color
;
3768 idtype215
= type_nit__MMethodDef
.id
;
3769 if(cltype214
>= var_mpropdef
->type
->table_size
) {
3772 var213
= var_mpropdef
->type
->type_table
[cltype214
] == idtype215
;
3774 if (unlikely(!var213
)) {
3775 PRINT_ERROR("Runtime error: %s", "Assert failed");
3776 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 237);
3779 if (var_rta
== NULL
) {
3780 var217
= 0; /* is null */
3782 var217
= 1; /* arg is null and recv is not */
3785 { /* Inline kernel#Object#!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
3786 var_other
= ((val
*)NULL
);
3788 var220
= ((short int(*)(val
* self
, val
* p0
))(var_rta
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_rta
, var_other
); /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/
3793 RET_LABEL219
:(void)0;
3800 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
3801 var225
= var_rta
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
3802 if (unlikely(var225
== NULL
)) {
3803 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
3804 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 79);
3808 RET_LABEL224
:(void)0;
3812 var226
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var223
, var_mpropdef
);
3820 if (unlikely(varonce228
==NULL
)) {
3821 var229
= NEW_standard__NativeArray(7l, &type_standard__NativeArray__standard__String
);
3822 if (likely(varonce230
!=NULL
)) {
3823 var231
= varonce230
;
3825 var232
= "NULL, /* DEAD ";
3826 var233
= standard___standard__NativeString___to_s_with_length(var232
, 14l);
3828 varonce230
= var231
;
3830 ((struct instance_standard__NativeArray
*)var229
)->values
[0]=var231
;
3831 if (likely(varonce234
!=NULL
)) {
3832 var235
= varonce234
;
3835 var237
= standard___standard__NativeString___to_s_with_length(var236
, 1l);
3837 varonce234
= var235
;
3839 ((struct instance_standard__NativeArray
*)var229
)->values
[2]=var235
;
3840 if (likely(varonce238
!=NULL
)) {
3841 var239
= varonce238
;
3844 var241
= standard___standard__NativeString___to_s_with_length(var240
, 1l);
3846 varonce238
= var239
;
3848 ((struct instance_standard__NativeArray
*)var229
)->values
[4]=var239
;
3849 if (likely(varonce242
!=NULL
)) {
3850 var243
= varonce242
;
3853 var245
= standard___standard__NativeString___to_s_with_length(var244
, 3l);
3855 varonce242
= var243
;
3857 ((struct instance_standard__NativeArray
*)var229
)->values
[6]=var243
;
3859 var229
= varonce228
;
3863 { /* Inline model#MClass#intro_mmodule (var_mclass) on <var_mclass:MClass> */
3864 var248
= var_mclass
->attrs
[COLOR_nit__model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var_mclass:MClass> */
3865 if (unlikely(var248
== NULL
)) {
3866 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
3867 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 357);
3871 RET_LABEL247
:(void)0;
3875 var249
= ((val
*(*)(val
* self
))(var246
->class->vft
[COLOR_standard__string__Object__to_s
]))(var246
); /* to_s on <var246:MModule>*/
3877 ((struct instance_standard__NativeArray
*)var229
)->values
[1]=var249
;
3879 var250
= ((val
*(*)(val
* self
))(var_mclass
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mclass
); /* to_s on <var_mclass:MClass>*/
3881 ((struct instance_standard__NativeArray
*)var229
)->values
[3]=var250
;
3883 var251
= ((val
*(*)(val
* self
))(var_mpropdef
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mpropdef
); /* to_s on <var_mpropdef:nullable MPropDef(MMethodDef)>*/
3885 ((struct instance_standard__NativeArray
*)var229
)->values
[5]=var251
;
3887 var252
= ((val
*(*)(val
* self
))(var229
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var229
); /* native_to_s on <var229:NativeArray[String]>*/
3889 varonce228
= var229
;
3891 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var252
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3897 var253
= nit__separate_compiler___MMethodDef___virtual_runtime_function(var_mpropdef
);
3901 var254
= nit___nit__AbstractRuntimeFunction___c_name(var_rf
);
3904 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var254
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
3906 if (unlikely(varonce255
==NULL
)) {
3907 var256
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
3908 if (likely(varonce257
!=NULL
)) {
3909 var258
= varonce257
;
3911 var259
= "(nitmethod_t)";
3912 var260
= standard___standard__NativeString___to_s_with_length(var259
, 13l);
3914 varonce257
= var258
;
3916 ((struct instance_standard__NativeArray
*)var256
)->values
[0]=var258
;
3917 if (likely(varonce261
!=NULL
)) {
3918 var262
= varonce261
;
3920 var263
= ", /* pointer to ";
3921 var264
= standard___standard__NativeString___to_s_with_length(var263
, 16l);
3923 varonce261
= var262
;
3925 ((struct instance_standard__NativeArray
*)var256
)->values
[2]=var262
;
3926 if (likely(varonce265
!=NULL
)) {
3927 var266
= varonce265
;
3930 var268
= standard___standard__NativeString___to_s_with_length(var267
, 3l);
3932 varonce265
= var266
;
3934 ((struct instance_standard__NativeArray
*)var256
)->values
[4]=var266
;
3936 var256
= varonce255
;
3940 var269
= nit___nit__AbstractRuntimeFunction___c_name(var_rf
);
3942 ((struct instance_standard__NativeArray
*)var256
)->values
[1]=var269
;
3944 var270
= nit___nit__MPropDef___nit__model_base__MEntity__full_name(var_mpropdef
);
3946 ((struct instance_standard__NativeArray
*)var256
)->values
[3]=var270
;
3948 var271
= ((val
*(*)(val
* self
))(var256
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var256
); /* native_to_s on <var256:NativeArray[String]>*/
3950 varonce255
= var256
;
3952 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var271
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3955 BREAK_label
: (void)0;
3957 var272
= standard___standard__Int___Discrete__successor(var_i
, 1l);
3961 goto BREAK_label273
;
3964 BREAK_label273
: (void)0;
3967 if (likely(varonce274
!=NULL
)) {
3968 var275
= varonce274
;
3971 var277
= standard___standard__NativeString___to_s_with_length(var276
, 1l);
3973 varonce274
= var275
;
3976 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var275
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3980 if (likely(varonce278
!=NULL
)) {
3981 var279
= varonce278
;
3984 var281
= standard___standard__NativeString___to_s_with_length(var280
, 2l);
3986 varonce278
= var279
;
3989 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var279
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3991 if (unlikely(varonce282
==NULL
)) {
3992 var283
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
3993 if (likely(varonce284
!=NULL
)) {
3994 var285
= varonce284
;
3996 var286
= "const struct type_table type_table_";
3997 var287
= standard___standard__NativeString___to_s_with_length(var286
, 35l);
3999 varonce284
= var285
;
4001 ((struct instance_standard__NativeArray
*)var283
)->values
[0]=var285
;
4002 if (likely(varonce288
!=NULL
)) {
4003 var289
= varonce288
;
4006 var291
= standard___standard__NativeString___to_s_with_length(var290
, 4l);
4008 varonce288
= var289
;
4010 ((struct instance_standard__NativeArray
*)var283
)->values
[2]=var289
;
4012 var283
= varonce282
;
4015 ((struct instance_standard__NativeArray
*)var283
)->values
[1]=var_c_name
;
4017 var292
= ((val
*(*)(val
* self
))(var283
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var283
); /* native_to_s on <var283:NativeArray[String]>*/
4019 varonce282
= var283
;
4021 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var292
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4023 if (unlikely(varonce293
==NULL
)) {
4024 var294
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
4025 if (likely(varonce295
!=NULL
)) {
4026 var296
= varonce295
;
4029 var298
= standard___standard__NativeString___to_s_with_length(var297
, 1l);
4031 varonce295
= var296
;
4033 ((struct instance_standard__NativeArray
*)var294
)->values
[1]=var296
;
4035 var294
= varonce293
;
4039 { /* Inline array#AbstractArrayRead#length (var_class_table) on <var_class_table:Array[nullable MClass]> */
4040 var301
= var_class_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_class_table:Array[nullable MClass]> */
4042 RET_LABEL300
:(void)0;
4045 var302
= standard__string___Int___Object__to_s(var299
);
4046 ((struct instance_standard__NativeArray
*)var294
)->values
[0]=var302
;
4048 var303
= ((val
*(*)(val
* self
))(var294
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var294
); /* native_to_s on <var294:NativeArray[String]>*/
4050 varonce293
= var294
;
4052 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var303
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4054 if (likely(varonce304
!=NULL
)) {
4055 var305
= varonce304
;
4058 var307
= standard___standard__NativeString___to_s_with_length(var306
, 1l);
4060 varonce304
= var305
;
4063 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var305
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4065 var_308
= var_class_table
;
4067 var309
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_308
);
4072 var311
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_310
);
4076 var312
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_310
);
4078 var_msuper
= var312
;
4079 if (var_msuper
== NULL
) {
4080 var313
= 1; /* is null */
4082 var313
= 0; /* arg is null but recv is not */
4085 { /* Inline kernel#Object#== (var_msuper,((val*)NULL)) on <var_msuper:nullable MClass> */
4086 var_other205
= ((val
*)NULL
);
4088 { /* Inline kernel#Object#is_same_instance (var_msuper,var_other205) on <var_msuper:nullable MClass(MClass)> */
4089 var318
= var_msuper
== var_other205
;
4092 RET_LABEL317
:(void)0;
4097 RET_LABEL315
:(void)0;
4102 if (likely(varonce319
!=NULL
)) {
4103 var320
= varonce319
;
4105 var321
= "-1, /* empty */";
4106 var322
= standard___standard__NativeString___to_s_with_length(var321
, 15l);
4108 varonce319
= var320
;
4111 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var320
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4114 if (unlikely(varonce323
==NULL
)) {
4115 var324
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
4116 if (likely(varonce325
!=NULL
)) {
4117 var326
= varonce325
;
4120 var328
= standard___standard__NativeString___to_s_with_length(var327
, 5l);
4122 varonce325
= var326
;
4124 ((struct instance_standard__NativeArray
*)var324
)->values
[1]=var326
;
4125 if (likely(varonce329
!=NULL
)) {
4126 var330
= varonce329
;
4129 var332
= standard___standard__NativeString___to_s_with_length(var331
, 3l);
4131 varonce329
= var330
;
4133 ((struct instance_standard__NativeArray
*)var324
)->values
[3]=var330
;
4135 var324
= varonce323
;
4139 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids (self) on <self:SeparateErasureCompiler> */
4140 var335
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
; /* _class_ids on <self:SeparateErasureCompiler> */
4141 if (unlikely(var335
== NULL
)) {
4142 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids");
4143 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 84);
4147 RET_LABEL334
:(void)0;
4151 var336
= ((val
*(*)(val
* self
, val
* p0
))((((long)var333
&3)?class_info
[((long)var333
&3)]:var333
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var333
, var_msuper
); /* [] on <var333:Map[MClass, Int]>*/
4153 var338
= (long)(var336
)>>2;
4154 var337
= standard__string___Int___Object__to_s(var338
);
4155 ((struct instance_standard__NativeArray
*)var324
)->values
[0]=var337
;
4157 var339
= ((val
*(*)(val
* self
))(var_msuper
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_msuper
); /* to_s on <var_msuper:nullable MClass(MClass)>*/
4159 ((struct instance_standard__NativeArray
*)var324
)->values
[2]=var339
;
4161 var340
= ((val
*(*)(val
* self
))(var324
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var324
); /* native_to_s on <var324:NativeArray[String]>*/
4163 varonce323
= var324
;
4165 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var340
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4169 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_310
); /* Direct call array#ArrayIterator#next on <var_310:ArrayIterator[nullable MClass]>*/
4172 goto BREAK_label341
;
4175 BREAK_label341
: (void)0;
4177 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_310
); /* Direct call array#ArrayIterator#finish on <var_310:ArrayIterator[nullable MClass]>*/
4179 if (likely(varonce342
!=NULL
)) {
4180 var343
= varonce342
;
4183 var345
= standard___standard__NativeString___to_s_with_length(var344
, 1l);
4185 varonce342
= var343
;
4188 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var343
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4190 if (likely(varonce346
!=NULL
)) {
4191 var347
= varonce346
;
4194 var349
= standard___standard__NativeString___to_s_with_length(var348
, 2l);
4196 varonce346
= var347
;
4199 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var347
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4202 var351
= nit__abstract_compiler___MClassType___MType__is_c_primitive(var_mtype
);
4209 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
4210 var355
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
4211 if (unlikely(var355
== NULL
)) {
4212 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4213 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
4217 RET_LABEL354
:(void)0;
4221 { /* Inline model#MClass#name (var353) on <var353:MClass> */
4222 var358
= var353
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var353:MClass> */
4223 if (unlikely(var358
== NULL
)) {
4224 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4225 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 362);
4229 RET_LABEL357
:(void)0;
4232 if (likely(varonce359
!=NULL
)) {
4233 var360
= varonce359
;
4236 var362
= standard___standard__NativeString___to_s_with_length(var361
, 7l);
4238 varonce359
= var360
;
4241 var363
= ((short int(*)(val
* self
, val
* p0
))(var356
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var356
, var360
); /* == on <var356:String>*/
4247 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
4248 var366
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
4249 if (unlikely(var366
== NULL
)) {
4250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4251 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
4255 RET_LABEL365
:(void)0;
4258 if (unlikely(varonce367
==NULL
)) {
4259 var368
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
4260 if (likely(varonce369
!=NULL
)) {
4261 var370
= varonce369
;
4263 var371
= "struct instance_";
4264 var372
= standard___standard__NativeString___to_s_with_length(var371
, 16l);
4266 varonce369
= var370
;
4268 ((struct instance_standard__NativeArray
*)var368
)->values
[0]=var370
;
4269 if (likely(varonce373
!=NULL
)) {
4270 var374
= varonce373
;
4273 var376
= standard___standard__NativeString___to_s_with_length(var375
, 2l);
4275 varonce373
= var374
;
4277 ((struct instance_standard__NativeArray
*)var368
)->values
[2]=var374
;
4279 var368
= varonce367
;
4282 ((struct instance_standard__NativeArray
*)var368
)->values
[1]=var_c_name
;
4284 var377
= ((val
*(*)(val
* self
))(var368
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var368
); /* native_to_s on <var368:NativeArray[String]>*/
4286 varonce367
= var368
;
4288 nit___nit__CodeWriter___add_decl(var364
, var377
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var364:CodeWriter>*/
4291 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
4292 var380
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
4293 if (unlikely(var380
== NULL
)) {
4294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4295 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
4299 RET_LABEL379
:(void)0;
4302 if (likely(varonce381
!=NULL
)) {
4303 var382
= varonce381
;
4305 var383
= "const struct class *class;";
4306 var384
= standard___standard__NativeString___to_s_with_length(var383
, 26l);
4308 varonce381
= var382
;
4311 nit___nit__CodeWriter___add_decl(var378
, var382
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var378:CodeWriter>*/
4314 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
4315 var387
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
4316 if (unlikely(var387
== NULL
)) {
4317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4318 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
4322 RET_LABEL386
:(void)0;
4325 if (unlikely(varonce388
==NULL
)) {
4326 var389
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
4327 if (likely(varonce390
!=NULL
)) {
4328 var391
= varonce390
;
4331 var393
= standard___standard__NativeString___to_s_with_length(var392
, 7l);
4333 varonce390
= var391
;
4335 ((struct instance_standard__NativeArray
*)var389
)->values
[1]=var391
;
4337 var389
= varonce388
;
4341 var394
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
4343 ((struct instance_standard__NativeArray
*)var389
)->values
[0]=var394
;
4345 var395
= ((val
*(*)(val
* self
))(var389
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var389
); /* native_to_s on <var389:NativeArray[String]>*/
4347 varonce388
= var389
;
4349 nit___nit__CodeWriter___add_decl(var385
, var395
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var385:CodeWriter>*/
4352 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
4353 var398
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
4354 if (unlikely(var398
== NULL
)) {
4355 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4356 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
4360 RET_LABEL397
:(void)0;
4363 if (likely(varonce399
!=NULL
)) {
4364 var400
= varonce399
;
4367 var402
= standard___standard__NativeString___to_s_with_length(var401
, 2l);
4369 varonce399
= var400
;
4372 nit___nit__CodeWriter___add_decl(var396
, var400
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var396:CodeWriter>*/
4374 if (unlikely(varonce403
==NULL
)) {
4375 var404
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
4376 if (likely(varonce405
!=NULL
)) {
4377 var406
= varonce405
;
4380 var408
= standard___standard__NativeString___to_s_with_length(var407
, 4l);
4382 varonce405
= var406
;
4384 ((struct instance_standard__NativeArray
*)var404
)->values
[0]=var406
;
4386 var404
= varonce403
;
4389 ((struct instance_standard__NativeArray
*)var404
)->values
[1]=var_c_name
;
4391 var409
= ((val
*(*)(val
* self
))(var404
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var404
); /* native_to_s on <var404:NativeArray[String]>*/
4393 varonce403
= var404
;
4394 if (unlikely(varonce410
==NULL
)) {
4395 var411
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
4396 if (likely(varonce412
!=NULL
)) {
4397 var413
= varonce412
;
4399 var414
= "val* BOX_";
4400 var415
= standard___standard__NativeString___to_s_with_length(var414
, 9l);
4402 varonce412
= var413
;
4404 ((struct instance_standard__NativeArray
*)var411
)->values
[0]=var413
;
4405 if (likely(varonce416
!=NULL
)) {
4406 var417
= varonce416
;
4409 var419
= standard___standard__NativeString___to_s_with_length(var418
, 1l);
4411 varonce416
= var417
;
4413 ((struct instance_standard__NativeArray
*)var411
)->values
[2]=var417
;
4414 if (likely(varonce420
!=NULL
)) {
4415 var421
= varonce420
;
4418 var423
= standard___standard__NativeString___to_s_with_length(var422
, 2l);
4420 varonce420
= var421
;
4422 ((struct instance_standard__NativeArray
*)var411
)->values
[4]=var421
;
4424 var411
= varonce410
;
4427 ((struct instance_standard__NativeArray
*)var411
)->values
[1]=var_c_name
;
4429 var424
= nit__abstract_compiler___MClassType___MType__ctype_extern(var_mtype
);
4431 ((struct instance_standard__NativeArray
*)var411
)->values
[3]=var424
;
4433 var425
= ((val
*(*)(val
* self
))(var411
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var411
); /* native_to_s on <var411:NativeArray[String]>*/
4435 varonce410
= var411
;
4437 nit___nit__AbstractCompiler___provide_declaration(self
, var409
, var425
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
4439 if (unlikely(varonce426
==NULL
)) {
4440 var427
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
4441 if (likely(varonce428
!=NULL
)) {
4442 var429
= varonce428
;
4444 var430
= "/* allocate ";
4445 var431
= standard___standard__NativeString___to_s_with_length(var430
, 12l);
4447 varonce428
= var429
;
4449 ((struct instance_standard__NativeArray
*)var427
)->values
[0]=var429
;
4450 if (likely(varonce432
!=NULL
)) {
4451 var433
= varonce432
;
4454 var435
= standard___standard__NativeString___to_s_with_length(var434
, 3l);
4456 varonce432
= var433
;
4458 ((struct instance_standard__NativeArray
*)var427
)->values
[2]=var433
;
4460 var427
= varonce426
;
4464 var436
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MClassType>*/
4466 ((struct instance_standard__NativeArray
*)var427
)->values
[1]=var436
;
4468 var437
= ((val
*(*)(val
* self
))(var427
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var427
); /* native_to_s on <var427:NativeArray[String]>*/
4470 varonce426
= var427
;
4472 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var437
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4474 if (unlikely(varonce438
==NULL
)) {
4475 var439
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
4476 if (likely(varonce440
!=NULL
)) {
4477 var441
= varonce440
;
4479 var442
= "val* BOX_";
4480 var443
= standard___standard__NativeString___to_s_with_length(var442
, 9l);
4482 varonce440
= var441
;
4484 ((struct instance_standard__NativeArray
*)var439
)->values
[0]=var441
;
4485 if (likely(varonce444
!=NULL
)) {
4486 var445
= varonce444
;
4489 var447
= standard___standard__NativeString___to_s_with_length(var446
, 1l);
4491 varonce444
= var445
;
4493 ((struct instance_standard__NativeArray
*)var439
)->values
[2]=var445
;
4494 if (likely(varonce448
!=NULL
)) {
4495 var449
= varonce448
;
4497 var450
= " value) {";
4498 var451
= standard___standard__NativeString___to_s_with_length(var450
, 9l);
4500 varonce448
= var449
;
4502 ((struct instance_standard__NativeArray
*)var439
)->values
[4]=var449
;
4504 var439
= varonce438
;
4508 var452
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model_base__MEntity__c_name
]))(var_mtype
); /* c_name on <var_mtype:MClassType>*/
4510 ((struct instance_standard__NativeArray
*)var439
)->values
[1]=var452
;
4512 var453
= nit__abstract_compiler___MClassType___MType__ctype_extern(var_mtype
);
4514 ((struct instance_standard__NativeArray
*)var439
)->values
[3]=var453
;
4516 var454
= ((val
*(*)(val
* self
))(var439
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var439
); /* native_to_s on <var439:NativeArray[String]>*/
4518 varonce438
= var439
;
4520 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var454
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4522 if (unlikely(varonce455
==NULL
)) {
4523 var456
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
4524 if (likely(varonce457
!=NULL
)) {
4525 var458
= varonce457
;
4527 var459
= "struct instance_";
4528 var460
= standard___standard__NativeString___to_s_with_length(var459
, 16l);
4530 varonce457
= var458
;
4532 ((struct instance_standard__NativeArray
*)var456
)->values
[0]=var458
;
4533 if (likely(varonce461
!=NULL
)) {
4534 var462
= varonce461
;
4536 var463
= "*res = nit_alloc(sizeof(struct instance_";
4537 var464
= standard___standard__NativeString___to_s_with_length(var463
, 40l);
4539 varonce461
= var462
;
4541 ((struct instance_standard__NativeArray
*)var456
)->values
[2]=var462
;
4542 if (likely(varonce465
!=NULL
)) {
4543 var466
= varonce465
;
4546 var468
= standard___standard__NativeString___to_s_with_length(var467
, 3l);
4548 varonce465
= var466
;
4550 ((struct instance_standard__NativeArray
*)var456
)->values
[4]=var466
;
4552 var456
= varonce455
;
4555 ((struct instance_standard__NativeArray
*)var456
)->values
[1]=var_c_name
;
4556 ((struct instance_standard__NativeArray
*)var456
)->values
[3]=var_c_name
;
4558 var469
= ((val
*(*)(val
* self
))(var456
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var456
); /* native_to_s on <var456:NativeArray[String]>*/
4560 varonce455
= var456
;
4562 nit___nit__AbstractCompilerVisitor___add(var_v
, var469
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4564 if (unlikely(varonce470
==NULL
)) {
4565 var471
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
4566 if (likely(varonce472
!=NULL
)) {
4567 var473
= varonce472
;
4570 var475
= standard___standard__NativeString___to_s_with_length(var474
, 6l);
4572 varonce472
= var473
;
4574 ((struct instance_standard__NativeArray
*)var471
)->values
[0]=var473
;
4576 var471
= varonce470
;
4579 ((struct instance_standard__NativeArray
*)var471
)->values
[1]=var_c_name
;
4581 var476
= ((val
*(*)(val
* self
))(var471
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var471
); /* native_to_s on <var471:NativeArray[String]>*/
4583 varonce470
= var471
;
4585 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var476
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
4587 if (unlikely(varonce477
==NULL
)) {
4588 var478
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
4589 if (likely(varonce479
!=NULL
)) {
4590 var480
= varonce479
;
4592 var481
= "res->class = &class_";
4593 var482
= standard___standard__NativeString___to_s_with_length(var481
, 20l);
4595 varonce479
= var480
;
4597 ((struct instance_standard__NativeArray
*)var478
)->values
[0]=var480
;
4598 if (likely(varonce483
!=NULL
)) {
4599 var484
= varonce483
;
4602 var486
= standard___standard__NativeString___to_s_with_length(var485
, 1l);
4604 varonce483
= var484
;
4606 ((struct instance_standard__NativeArray
*)var478
)->values
[2]=var484
;
4608 var478
= varonce477
;
4611 ((struct instance_standard__NativeArray
*)var478
)->values
[1]=var_c_name
;
4613 var487
= ((val
*(*)(val
* self
))(var478
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var478
); /* native_to_s on <var478:NativeArray[String]>*/
4615 varonce477
= var478
;
4617 nit___nit__AbstractCompilerVisitor___add(var_v
, var487
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4619 if (likely(varonce488
!=NULL
)) {
4620 var489
= varonce488
;
4622 var490
= "res->value = value;";
4623 var491
= standard___standard__NativeString___to_s_with_length(var490
, 19l);
4625 varonce488
= var489
;
4628 nit___nit__AbstractCompilerVisitor___add(var_v
, var489
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4630 if (likely(varonce492
!=NULL
)) {
4631 var493
= varonce492
;
4633 var494
= "return (val*)res;";
4634 var495
= standard___standard__NativeString___to_s_with_length(var494
, 17l);
4636 varonce492
= var493
;
4639 nit___nit__AbstractCompilerVisitor___add(var_v
, var493
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4641 if (likely(varonce496
!=NULL
)) {
4642 var497
= varonce496
;
4645 var499
= standard___standard__NativeString___to_s_with_length(var498
, 1l);
4647 varonce496
= var497
;
4650 nit___nit__AbstractCompilerVisitor___add(var_v
, var497
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4653 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
4654 var502
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
4655 if (unlikely(var502
== NULL
)) {
4656 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4657 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
4661 RET_LABEL501
:(void)0;
4665 { /* Inline model#MClass#name (var500) on <var500:MClass> */
4666 var505
= var500
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var500:MClass> */
4667 if (unlikely(var505
== NULL
)) {
4668 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4669 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 362);
4673 RET_LABEL504
:(void)0;
4676 if (likely(varonce506
!=NULL
)) {
4677 var507
= varonce506
;
4680 var509
= standard___standard__NativeString___to_s_with_length(var508
, 7l);
4682 varonce506
= var507
;
4685 { /* Inline kernel#Object#!= (var503,var507) on <var503:String> */
4688 var512
= ((short int(*)(val
* self
, val
* p0
))(var503
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var503
, var_other
); /* == on <var503:String>*/
4693 RET_LABEL511
:(void)0;
4701 var514
= nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__new_visitor(self
);
4704 if (unlikely(varonce515
==NULL
)) {
4705 var516
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
4706 if (likely(varonce517
!=NULL
)) {
4707 var518
= varonce517
;
4710 var520
= standard___standard__NativeString___to_s_with_length(var519
, 4l);
4712 varonce517
= var518
;
4714 ((struct instance_standard__NativeArray
*)var516
)->values
[0]=var518
;
4716 var516
= varonce515
;
4719 ((struct instance_standard__NativeArray
*)var516
)->values
[1]=var_c_name
;
4721 var521
= ((val
*(*)(val
* self
))(var516
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var516
); /* native_to_s on <var516:NativeArray[String]>*/
4723 varonce515
= var516
;
4724 if (unlikely(varonce522
==NULL
)) {
4725 var523
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
4726 if (likely(varonce524
!=NULL
)) {
4727 var525
= varonce524
;
4730 var527
= standard___standard__NativeString___to_s_with_length(var526
, 5l);
4732 varonce524
= var525
;
4734 ((struct instance_standard__NativeArray
*)var523
)->values
[1]=var525
;
4735 if (likely(varonce528
!=NULL
)) {
4736 var529
= varonce528
;
4739 var531
= standard___standard__NativeString___to_s_with_length(var530
, 3l);
4741 varonce528
= var529
;
4743 ((struct instance_standard__NativeArray
*)var523
)->values
[3]=var529
;
4745 var523
= varonce522
;
4749 var532
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
4751 ((struct instance_standard__NativeArray
*)var523
)->values
[0]=var532
;
4752 ((struct instance_standard__NativeArray
*)var523
)->values
[2]=var_c_name
;
4754 var533
= ((val
*(*)(val
* self
))(var523
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var523
); /* native_to_s on <var523:NativeArray[String]>*/
4756 varonce522
= var523
;
4758 nit___nit__AbstractCompiler___provide_declaration(self
, var521
, var533
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
4760 if (unlikely(varonce534
==NULL
)) {
4761 var535
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
4762 if (likely(varonce536
!=NULL
)) {
4763 var537
= varonce536
;
4765 var538
= "/* allocate ";
4766 var539
= standard___standard__NativeString___to_s_with_length(var538
, 12l);
4768 varonce536
= var537
;
4770 ((struct instance_standard__NativeArray
*)var535
)->values
[0]=var537
;
4771 if (likely(varonce540
!=NULL
)) {
4772 var541
= varonce540
;
4775 var543
= standard___standard__NativeString___to_s_with_length(var542
, 3l);
4777 varonce540
= var541
;
4779 ((struct instance_standard__NativeArray
*)var535
)->values
[2]=var541
;
4781 var535
= varonce534
;
4785 var544
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MClassType>*/
4787 ((struct instance_standard__NativeArray
*)var535
)->values
[1]=var544
;
4789 var545
= ((val
*(*)(val
* self
))(var535
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var535
); /* native_to_s on <var535:NativeArray[String]>*/
4791 varonce534
= var535
;
4793 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var545
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4795 if (unlikely(varonce546
==NULL
)) {
4796 var547
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
4797 if (likely(varonce548
!=NULL
)) {
4798 var549
= varonce548
;
4801 var551
= standard___standard__NativeString___to_s_with_length(var550
, 5l);
4803 varonce548
= var549
;
4805 ((struct instance_standard__NativeArray
*)var547
)->values
[1]=var549
;
4806 if (likely(varonce552
!=NULL
)) {
4807 var553
= varonce552
;
4810 var555
= standard___standard__NativeString___to_s_with_length(var554
, 4l);
4812 varonce552
= var553
;
4814 ((struct instance_standard__NativeArray
*)var547
)->values
[3]=var553
;
4816 var547
= varonce546
;
4820 var556
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
4822 ((struct instance_standard__NativeArray
*)var547
)->values
[0]=var556
;
4823 ((struct instance_standard__NativeArray
*)var547
)->values
[2]=var_c_name
;
4825 var557
= ((val
*(*)(val
* self
))(var547
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var547
); /* native_to_s on <var547:NativeArray[String]>*/
4827 varonce546
= var547
;
4829 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var557
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4832 if (unlikely(varonce558
==NULL
)) {
4833 var559
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
4834 if (likely(varonce560
!=NULL
)) {
4835 var561
= varonce560
;
4837 var562
= " is DEAD";
4838 var563
= standard___standard__NativeString___to_s_with_length(var562
, 8l);
4840 varonce560
= var561
;
4842 ((struct instance_standard__NativeArray
*)var559
)->values
[1]=var561
;
4844 var559
= varonce558
;
4848 var564
= ((val
*(*)(val
* self
))(var_mclass
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mclass
); /* to_s on <var_mclass:MClass>*/
4850 ((struct instance_standard__NativeArray
*)var559
)->values
[0]=var564
;
4852 var565
= ((val
*(*)(val
* self
))(var559
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var559
); /* native_to_s on <var559:NativeArray[String]>*/
4854 varonce558
= var559
;
4856 nit___nit__AbstractCompilerVisitor___add_abort(var_v
, var565
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:SeparateCompilerVisitor>*/
4859 if (likely(varonce566
!=NULL
)) {
4860 var567
= varonce566
;
4863 var569
= standard___standard__NativeString___to_s_with_length(var568
, 4l);
4865 varonce566
= var567
;
4868 var570
= nit___nit__AbstractCompilerVisitor___new_named_var(var_v
, var_mtype
, var567
);
4872 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res,1) on <var_res:RuntimeVariable> */
4873 var_res
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact
].s
= 1; /* _is_exact on <var_res:RuntimeVariable> */
4874 RET_LABEL571
:(void)0;
4877 if (unlikely(varonce572
==NULL
)) {
4878 var573
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
4879 if (likely(varonce574
!=NULL
)) {
4880 var575
= varonce574
;
4882 var576
= " = nit_alloc(sizeof(struct instance_";
4883 var577
= standard___standard__NativeString___to_s_with_length(var576
, 36l);
4885 varonce574
= var575
;
4887 ((struct instance_standard__NativeArray
*)var573
)->values
[1]=var575
;
4888 if (likely(varonce578
!=NULL
)) {
4889 var579
= varonce578
;
4892 var581
= standard___standard__NativeString___to_s_with_length(var580
, 3l);
4894 varonce578
= var579
;
4896 ((struct instance_standard__NativeArray
*)var573
)->values
[3]=var579
;
4898 var573
= varonce572
;
4902 var582
= ((val
*(*)(val
* self
))(var_res
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_res
); /* to_s on <var_res:RuntimeVariable>*/
4904 ((struct instance_standard__NativeArray
*)var573
)->values
[0]=var582
;
4906 var583
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model_base__MEntity__c_name
]))(var_mtype
); /* c_name on <var_mtype:MClassType>*/
4908 ((struct instance_standard__NativeArray
*)var573
)->values
[2]=var583
;
4910 var584
= ((val
*(*)(val
* self
))(var573
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var573
); /* native_to_s on <var573:NativeArray[String]>*/
4912 varonce572
= var573
;
4914 nit___nit__AbstractCompilerVisitor___add(var_v
, var584
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4916 if (unlikely(varonce585
==NULL
)) {
4917 var586
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
4918 if (likely(varonce587
!=NULL
)) {
4919 var588
= varonce587
;
4922 var590
= standard___standard__NativeString___to_s_with_length(var589
, 6l);
4924 varonce587
= var588
;
4926 ((struct instance_standard__NativeArray
*)var586
)->values
[0]=var588
;
4928 var586
= varonce585
;
4931 ((struct instance_standard__NativeArray
*)var586
)->values
[1]=var_c_name
;
4933 var591
= ((val
*(*)(val
* self
))(var586
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var586
); /* native_to_s on <var586:NativeArray[String]>*/
4935 varonce585
= var586
;
4937 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var591
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
4939 if (unlikely(varonce592
==NULL
)) {
4940 var593
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
4941 if (likely(varonce594
!=NULL
)) {
4942 var595
= varonce594
;
4944 var596
= "->class = &class_";
4945 var597
= standard___standard__NativeString___to_s_with_length(var596
, 17l);
4947 varonce594
= var595
;
4949 ((struct instance_standard__NativeArray
*)var593
)->values
[1]=var595
;
4950 if (likely(varonce598
!=NULL
)) {
4951 var599
= varonce598
;
4954 var601
= standard___standard__NativeString___to_s_with_length(var600
, 1l);
4956 varonce598
= var599
;
4958 ((struct instance_standard__NativeArray
*)var593
)->values
[3]=var599
;
4960 var593
= varonce592
;
4964 var602
= ((val
*(*)(val
* self
))(var_res
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_res
); /* to_s on <var_res:RuntimeVariable>*/
4966 ((struct instance_standard__NativeArray
*)var593
)->values
[0]=var602
;
4967 ((struct instance_standard__NativeArray
*)var593
)->values
[2]=var_c_name
;
4969 var603
= ((val
*(*)(val
* self
))(var593
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var593
); /* native_to_s on <var593:NativeArray[String]>*/
4971 varonce592
= var593
;
4973 nit___nit__AbstractCompilerVisitor___add(var_v
, var603
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4975 if (unlikely(varonce604
==NULL
)) {
4976 var605
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
4977 if (likely(varonce606
!=NULL
)) {
4978 var607
= varonce606
;
4980 var608
= "((struct instance_";
4981 var609
= standard___standard__NativeString___to_s_with_length(var608
, 18l);
4983 varonce606
= var607
;
4985 ((struct instance_standard__NativeArray
*)var605
)->values
[0]=var607
;
4986 if (likely(varonce610
!=NULL
)) {
4987 var611
= varonce610
;
4990 var613
= standard___standard__NativeString___to_s_with_length(var612
, 2l);
4992 varonce610
= var611
;
4994 ((struct instance_standard__NativeArray
*)var605
)->values
[2]=var611
;
4995 if (likely(varonce614
!=NULL
)) {
4996 var615
= varonce614
;
4998 var616
= ")->value = NULL;";
4999 var617
= standard___standard__NativeString___to_s_with_length(var616
, 16l);
5001 varonce614
= var615
;
5003 ((struct instance_standard__NativeArray
*)var605
)->values
[4]=var615
;
5005 var605
= varonce604
;
5009 var618
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model_base__MEntity__c_name
]))(var_mtype
); /* c_name on <var_mtype:MClassType>*/
5011 ((struct instance_standard__NativeArray
*)var605
)->values
[1]=var618
;
5013 var619
= ((val
*(*)(val
* self
))(var_res
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_res
); /* to_s on <var_res:RuntimeVariable>*/
5015 ((struct instance_standard__NativeArray
*)var605
)->values
[3]=var619
;
5017 var620
= ((val
*(*)(val
* self
))(var605
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var605
); /* native_to_s on <var605:NativeArray[String]>*/
5019 varonce604
= var605
;
5021 nit___nit__AbstractCompilerVisitor___add(var_v
, var620
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5023 if (unlikely(varonce621
==NULL
)) {
5024 var622
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
5025 if (likely(varonce623
!=NULL
)) {
5026 var624
= varonce623
;
5029 var626
= standard___standard__NativeString___to_s_with_length(var625
, 7l);
5031 varonce623
= var624
;
5033 ((struct instance_standard__NativeArray
*)var622
)->values
[0]=var624
;
5034 if (likely(varonce627
!=NULL
)) {
5035 var628
= varonce627
;
5038 var630
= standard___standard__NativeString___to_s_with_length(var629
, 1l);
5040 varonce627
= var628
;
5042 ((struct instance_standard__NativeArray
*)var622
)->values
[2]=var628
;
5044 var622
= varonce621
;
5048 var631
= ((val
*(*)(val
* self
))(var_res
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_res
); /* to_s on <var_res:RuntimeVariable>*/
5050 ((struct instance_standard__NativeArray
*)var622
)->values
[1]=var631
;
5052 var632
= ((val
*(*)(val
* self
))(var622
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var622
); /* native_to_s on <var622:NativeArray[String]>*/
5054 varonce621
= var622
;
5056 nit___nit__AbstractCompilerVisitor___add(var_v
, var632
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5059 if (likely(varonce633
!=NULL
)) {
5060 var634
= varonce633
;
5063 var636
= standard___standard__NativeString___to_s_with_length(var635
, 1l);
5065 varonce633
= var634
;
5068 nit___nit__AbstractCompilerVisitor___add(var_v
, var634
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5073 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
5074 var639
= var_mclass
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
5075 if (unlikely(var639
== NULL
)) {
5076 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5077 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 362);
5081 RET_LABEL638
:(void)0;
5084 if (likely(varonce640
!=NULL
)) {
5085 var641
= varonce640
;
5087 var642
= "NativeArray";
5088 var643
= standard___standard__NativeString___to_s_with_length(var642
, 11l);
5090 varonce640
= var641
;
5093 var644
= ((short int(*)(val
* self
, val
* p0
))(var637
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var637
, var641
); /* == on <var637:String>*/
5097 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5098 var647
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5099 if (unlikely(var647
== NULL
)) {
5100 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5101 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
5105 RET_LABEL646
:(void)0;
5108 if (unlikely(varonce648
==NULL
)) {
5109 var649
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
5110 if (likely(varonce650
!=NULL
)) {
5111 var651
= varonce650
;
5113 var652
= "struct instance_";
5114 var653
= standard___standard__NativeString___to_s_with_length(var652
, 16l);
5116 varonce650
= var651
;
5118 ((struct instance_standard__NativeArray
*)var649
)->values
[0]=var651
;
5119 if (likely(varonce654
!=NULL
)) {
5120 var655
= varonce654
;
5123 var657
= standard___standard__NativeString___to_s_with_length(var656
, 2l);
5125 varonce654
= var655
;
5127 ((struct instance_standard__NativeArray
*)var649
)->values
[2]=var655
;
5129 var649
= varonce648
;
5132 ((struct instance_standard__NativeArray
*)var649
)->values
[1]=var_c_name
;
5134 var658
= ((val
*(*)(val
* self
))(var649
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var649
); /* native_to_s on <var649:NativeArray[String]>*/
5136 varonce648
= var649
;
5138 nit___nit__CodeWriter___add_decl(var645
, var658
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var645:CodeWriter>*/
5141 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5142 var661
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5143 if (unlikely(var661
== NULL
)) {
5144 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5145 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
5149 RET_LABEL660
:(void)0;
5152 if (likely(varonce662
!=NULL
)) {
5153 var663
= varonce662
;
5155 var664
= "const struct class *class;";
5156 var665
= standard___standard__NativeString___to_s_with_length(var664
, 26l);
5158 varonce662
= var663
;
5161 nit___nit__CodeWriter___add_decl(var659
, var663
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var659:CodeWriter>*/
5164 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5165 var668
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5166 if (unlikely(var668
== NULL
)) {
5167 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5168 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
5172 RET_LABEL667
:(void)0;
5175 if (likely(varonce669
!=NULL
)) {
5176 var670
= varonce669
;
5178 var671
= "int length;";
5179 var672
= standard___standard__NativeString___to_s_with_length(var671
, 11l);
5181 varonce669
= var670
;
5184 nit___nit__CodeWriter___add_decl(var666
, var670
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var666:CodeWriter>*/
5187 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5188 var675
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5189 if (unlikely(var675
== NULL
)) {
5190 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5191 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
5195 RET_LABEL674
:(void)0;
5198 if (likely(varonce676
!=NULL
)) {
5199 var677
= varonce676
;
5201 var678
= "val* values[];";
5202 var679
= standard___standard__NativeString___to_s_with_length(var678
, 14l);
5204 varonce676
= var677
;
5207 nit___nit__CodeWriter___add_decl(var673
, var677
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var673:CodeWriter>*/
5210 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5211 var682
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5212 if (unlikely(var682
== NULL
)) {
5213 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5214 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 569);
5218 RET_LABEL681
:(void)0;
5221 if (likely(varonce683
!=NULL
)) {
5222 var684
= varonce683
;
5225 var686
= standard___standard__NativeString___to_s_with_length(var685
, 2l);
5227 varonce683
= var684
;
5230 nit___nit__CodeWriter___add_decl(var680
, var684
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var680:CodeWriter>*/
5232 if (unlikely(varonce687
==NULL
)) {
5233 var688
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
5234 if (likely(varonce689
!=NULL
)) {
5235 var690
= varonce689
;
5238 var692
= standard___standard__NativeString___to_s_with_length(var691
, 4l);
5240 varonce689
= var690
;
5242 ((struct instance_standard__NativeArray
*)var688
)->values
[0]=var690
;
5244 var688
= varonce687
;
5247 ((struct instance_standard__NativeArray
*)var688
)->values
[1]=var_c_name
;
5249 var693
= ((val
*(*)(val
* self
))(var688
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var688
); /* native_to_s on <var688:NativeArray[String]>*/
5251 varonce687
= var688
;
5252 if (unlikely(varonce694
==NULL
)) {
5253 var695
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
5254 if (likely(varonce696
!=NULL
)) {
5255 var697
= varonce696
;
5258 var699
= standard___standard__NativeString___to_s_with_length(var698
, 5l);
5260 varonce696
= var697
;
5262 ((struct instance_standard__NativeArray
*)var695
)->values
[1]=var697
;
5263 if (likely(varonce700
!=NULL
)) {
5264 var701
= varonce700
;
5266 var702
= "(int length);";
5267 var703
= standard___standard__NativeString___to_s_with_length(var702
, 13l);
5269 varonce700
= var701
;
5271 ((struct instance_standard__NativeArray
*)var695
)->values
[3]=var701
;
5273 var695
= varonce694
;
5277 var704
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
5279 ((struct instance_standard__NativeArray
*)var695
)->values
[0]=var704
;
5280 ((struct instance_standard__NativeArray
*)var695
)->values
[2]=var_c_name
;
5282 var705
= ((val
*(*)(val
* self
))(var695
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var695
); /* native_to_s on <var695:NativeArray[String]>*/
5284 varonce694
= var695
;
5286 nit___nit__AbstractCompiler___provide_declaration(self
, var693
, var705
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
5288 if (unlikely(varonce706
==NULL
)) {
5289 var707
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
5290 if (likely(varonce708
!=NULL
)) {
5291 var709
= varonce708
;
5293 var710
= "/* allocate ";
5294 var711
= standard___standard__NativeString___to_s_with_length(var710
, 12l);
5296 varonce708
= var709
;
5298 ((struct instance_standard__NativeArray
*)var707
)->values
[0]=var709
;
5299 if (likely(varonce712
!=NULL
)) {
5300 var713
= varonce712
;
5303 var715
= standard___standard__NativeString___to_s_with_length(var714
, 3l);
5305 varonce712
= var713
;
5307 ((struct instance_standard__NativeArray
*)var707
)->values
[2]=var713
;
5309 var707
= varonce706
;
5313 var716
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MClassType>*/
5315 ((struct instance_standard__NativeArray
*)var707
)->values
[1]=var716
;
5317 var717
= ((val
*(*)(val
* self
))(var707
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var707
); /* native_to_s on <var707:NativeArray[String]>*/
5319 varonce706
= var707
;
5321 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var717
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5323 if (unlikely(varonce718
==NULL
)) {
5324 var719
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
5325 if (likely(varonce720
!=NULL
)) {
5326 var721
= varonce720
;
5329 var723
= standard___standard__NativeString___to_s_with_length(var722
, 5l);
5331 varonce720
= var721
;
5333 ((struct instance_standard__NativeArray
*)var719
)->values
[1]=var721
;
5334 if (likely(varonce724
!=NULL
)) {
5335 var725
= varonce724
;
5337 var726
= "(int length) {";
5338 var727
= standard___standard__NativeString___to_s_with_length(var726
, 14l);
5340 varonce724
= var725
;
5342 ((struct instance_standard__NativeArray
*)var719
)->values
[3]=var725
;
5344 var719
= varonce718
;
5348 var728
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
5350 ((struct instance_standard__NativeArray
*)var719
)->values
[0]=var728
;
5351 ((struct instance_standard__NativeArray
*)var719
)->values
[2]=var_c_name
;
5353 var729
= ((val
*(*)(val
* self
))(var719
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var719
); /* native_to_s on <var719:NativeArray[String]>*/
5355 varonce718
= var719
;
5357 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var729
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5359 if (likely(varonce730
!=NULL
)) {
5360 var731
= varonce730
;
5363 var733
= standard___standard__NativeString___to_s_with_length(var732
, 4l);
5365 varonce730
= var731
;
5368 var734
= nit___nit__AbstractCompilerVisitor___get_name(var_v
, var731
);
5370 var_res735
= var734
;
5371 if (unlikely(varonce736
==NULL
)) {
5372 var737
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
5373 if (likely(varonce738
!=NULL
)) {
5374 var739
= varonce738
;
5376 var740
= "struct instance_";
5377 var741
= standard___standard__NativeString___to_s_with_length(var740
, 16l);
5379 varonce738
= var739
;
5381 ((struct instance_standard__NativeArray
*)var737
)->values
[0]=var739
;
5382 if (likely(varonce742
!=NULL
)) {
5383 var743
= varonce742
;
5386 var745
= standard___standard__NativeString___to_s_with_length(var744
, 2l);
5388 varonce742
= var743
;
5390 ((struct instance_standard__NativeArray
*)var737
)->values
[2]=var743
;
5391 if (likely(varonce746
!=NULL
)) {
5392 var747
= varonce746
;
5395 var749
= standard___standard__NativeString___to_s_with_length(var748
, 1l);
5397 varonce746
= var747
;
5399 ((struct instance_standard__NativeArray
*)var737
)->values
[4]=var747
;
5401 var737
= varonce736
;
5404 ((struct instance_standard__NativeArray
*)var737
)->values
[1]=var_c_name
;
5405 ((struct instance_standard__NativeArray
*)var737
)->values
[3]=var_res735
;
5407 var750
= ((val
*(*)(val
* self
))(var737
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var737
); /* native_to_s on <var737:NativeArray[String]>*/
5409 varonce736
= var737
;
5411 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var750
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5414 var751
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MClassType__arguments
]))(var_mtype
); /* arguments on <var_mtype:MClassType>*/
5417 var752
= standard___standard__SequenceRead___Collection__first(var751
);
5419 var_mtype_elt
= var752
;
5420 if (unlikely(varonce753
==NULL
)) {
5421 var754
= NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String
);
5422 if (likely(varonce755
!=NULL
)) {
5423 var756
= varonce755
;
5425 var757
= " = nit_alloc(sizeof(struct instance_";
5426 var758
= standard___standard__NativeString___to_s_with_length(var757
, 36l);
5428 varonce755
= var756
;
5430 ((struct instance_standard__NativeArray
*)var754
)->values
[1]=var756
;
5431 if (likely(varonce759
!=NULL
)) {
5432 var760
= varonce759
;
5434 var761
= ") + length*sizeof(";
5435 var762
= standard___standard__NativeString___to_s_with_length(var761
, 18l);
5437 varonce759
= var760
;
5439 ((struct instance_standard__NativeArray
*)var754
)->values
[3]=var760
;
5440 if (likely(varonce763
!=NULL
)) {
5441 var764
= varonce763
;
5444 var766
= standard___standard__NativeString___to_s_with_length(var765
, 3l);
5446 varonce763
= var764
;
5448 ((struct instance_standard__NativeArray
*)var754
)->values
[5]=var764
;
5450 var754
= varonce753
;
5453 ((struct instance_standard__NativeArray
*)var754
)->values
[0]=var_res735
;
5454 ((struct instance_standard__NativeArray
*)var754
)->values
[2]=var_c_name
;
5456 var767
= ((val
*(*)(val
* self
))(var_mtype_elt
->class->vft
[COLOR_nit__abstract_compiler__MType__ctype
]))(var_mtype_elt
); /* ctype on <var_mtype_elt:MType>*/
5458 ((struct instance_standard__NativeArray
*)var754
)->values
[4]=var767
;
5460 var768
= ((val
*(*)(val
* self
))(var754
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var754
); /* native_to_s on <var754:NativeArray[String]>*/
5462 varonce753
= var754
;
5464 nit___nit__AbstractCompilerVisitor___add(var_v
, var768
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5466 if (unlikely(varonce769
==NULL
)) {
5467 var770
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
5468 if (likely(varonce771
!=NULL
)) {
5469 var772
= varonce771
;
5472 var774
= standard___standard__NativeString___to_s_with_length(var773
, 6l);
5474 varonce771
= var772
;
5476 ((struct instance_standard__NativeArray
*)var770
)->values
[0]=var772
;
5478 var770
= varonce769
;
5481 ((struct instance_standard__NativeArray
*)var770
)->values
[1]=var_c_name
;
5483 var775
= ((val
*(*)(val
* self
))(var770
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var770
); /* native_to_s on <var770:NativeArray[String]>*/
5485 varonce769
= var770
;
5487 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var775
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
5489 if (unlikely(varonce776
==NULL
)) {
5490 var777
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
5491 if (likely(varonce778
!=NULL
)) {
5492 var779
= varonce778
;
5494 var780
= "->class = &class_";
5495 var781
= standard___standard__NativeString___to_s_with_length(var780
, 17l);
5497 varonce778
= var779
;
5499 ((struct instance_standard__NativeArray
*)var777
)->values
[1]=var779
;
5500 if (likely(varonce782
!=NULL
)) {
5501 var783
= varonce782
;
5504 var785
= standard___standard__NativeString___to_s_with_length(var784
, 1l);
5506 varonce782
= var783
;
5508 ((struct instance_standard__NativeArray
*)var777
)->values
[3]=var783
;
5510 var777
= varonce776
;
5513 ((struct instance_standard__NativeArray
*)var777
)->values
[0]=var_res735
;
5514 ((struct instance_standard__NativeArray
*)var777
)->values
[2]=var_c_name
;
5516 var786
= ((val
*(*)(val
* self
))(var777
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var777
); /* native_to_s on <var777:NativeArray[String]>*/
5518 varonce776
= var777
;
5520 nit___nit__AbstractCompilerVisitor___add(var_v
, var786
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5522 if (unlikely(varonce787
==NULL
)) {
5523 var788
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
5524 if (likely(varonce789
!=NULL
)) {
5525 var790
= varonce789
;
5527 var791
= "->length = length;";
5528 var792
= standard___standard__NativeString___to_s_with_length(var791
, 18l);
5530 varonce789
= var790
;
5532 ((struct instance_standard__NativeArray
*)var788
)->values
[1]=var790
;
5534 var788
= varonce787
;
5537 ((struct instance_standard__NativeArray
*)var788
)->values
[0]=var_res735
;
5539 var793
= ((val
*(*)(val
* self
))(var788
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var788
); /* native_to_s on <var788:NativeArray[String]>*/
5541 varonce787
= var788
;
5543 nit___nit__AbstractCompilerVisitor___add(var_v
, var793
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5545 if (unlikely(varonce794
==NULL
)) {
5546 var795
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
5547 if (likely(varonce796
!=NULL
)) {
5548 var797
= varonce796
;
5550 var798
= "return (val*)";
5551 var799
= standard___standard__NativeString___to_s_with_length(var798
, 13l);
5553 varonce796
= var797
;
5555 ((struct instance_standard__NativeArray
*)var795
)->values
[0]=var797
;
5556 if (likely(varonce800
!=NULL
)) {
5557 var801
= varonce800
;
5560 var803
= standard___standard__NativeString___to_s_with_length(var802
, 1l);
5562 varonce800
= var801
;
5564 ((struct instance_standard__NativeArray
*)var795
)->values
[2]=var801
;
5566 var795
= varonce794
;
5569 ((struct instance_standard__NativeArray
*)var795
)->values
[1]=var_res735
;
5571 var804
= ((val
*(*)(val
* self
))(var795
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var795
); /* native_to_s on <var795:NativeArray[String]>*/
5573 varonce794
= var795
;
5575 nit___nit__AbstractCompilerVisitor___add(var_v
, var804
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5577 if (likely(varonce805
!=NULL
)) {
5578 var806
= varonce805
;
5581 var808
= standard___standard__NativeString___to_s_with_length(var807
, 1l);
5583 varonce805
= var806
;
5586 nit___nit__AbstractCompilerVisitor___add(var_v
, var806
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5591 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
5592 var812
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
5593 if (unlikely(var812
== NULL
)) {
5594 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5595 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
5599 RET_LABEL811
:(void)0;
5603 { /* Inline model#MClass#kind (var810) on <var810:MClass> */
5604 var815
= var810
->attrs
[COLOR_nit__model__MClass___kind
].val
; /* _kind on <var810:MClass> */
5605 if (unlikely(var815
== NULL
)) {
5606 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
5607 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 436);
5611 RET_LABEL814
:(void)0;
5616 var817
= nit__model___standard__Sys___extern_kind(var816
);
5619 { /* Inline kernel#Object#== (var813,var817) on <var813:MClassKind> */
5620 var_other205
= var817
;
5622 { /* Inline kernel#Object#is_same_instance (var813,var_other205) on <var813:MClassKind> */
5623 var822
= var813
== var_other205
;
5626 RET_LABEL821
:(void)0;
5631 RET_LABEL819
:(void)0;
5637 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
5638 var826
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
5639 if (unlikely(var826
== NULL
)) {
5640 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5641 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
5645 RET_LABEL825
:(void)0;
5649 { /* Inline model#MClass#name (var824) on <var824:MClass> */
5650 var829
= var824
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var824:MClass> */
5651 if (unlikely(var829
== NULL
)) {
5652 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5653 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 362);
5657 RET_LABEL828
:(void)0;
5660 if (likely(varonce830
!=NULL
)) {
5661 var831
= varonce830
;
5663 var832
= "NativeString";
5664 var833
= standard___standard__NativeString___to_s_with_length(var832
, 12l);
5666 varonce830
= var831
;
5669 { /* Inline kernel#Object#!= (var827,var831) on <var827:String> */
5672 var836
= ((short int(*)(val
* self
, val
* p0
))(var827
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var827
, var_other
); /* == on <var827:String>*/
5677 RET_LABEL835
:(void)0;
5686 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
5687 var840
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
5688 if (unlikely(var840
== NULL
)) {
5689 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5690 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
5694 RET_LABEL839
:(void)0;
5698 var841
= nit__model___MModule___pointer_type(var838
);
5700 var_pointer_type
= var841
;
5701 if (unlikely(varonce842
==NULL
)) {
5702 var843
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
5703 if (likely(varonce844
!=NULL
)) {
5704 var845
= varonce844
;
5707 var847
= standard___standard__NativeString___to_s_with_length(var846
, 4l);
5709 varonce844
= var845
;
5711 ((struct instance_standard__NativeArray
*)var843
)->values
[0]=var845
;
5713 var843
= varonce842
;
5716 ((struct instance_standard__NativeArray
*)var843
)->values
[1]=var_c_name
;
5718 var848
= ((val
*(*)(val
* self
))(var843
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var843
); /* native_to_s on <var843:NativeArray[String]>*/
5720 varonce842
= var843
;
5721 if (unlikely(varonce849
==NULL
)) {
5722 var850
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
5723 if (likely(varonce851
!=NULL
)) {
5724 var852
= varonce851
;
5727 var854
= standard___standard__NativeString___to_s_with_length(var853
, 5l);
5729 varonce851
= var852
;
5731 ((struct instance_standard__NativeArray
*)var850
)->values
[1]=var852
;
5732 if (likely(varonce855
!=NULL
)) {
5733 var856
= varonce855
;
5736 var858
= standard___standard__NativeString___to_s_with_length(var857
, 3l);
5738 varonce855
= var856
;
5740 ((struct instance_standard__NativeArray
*)var850
)->values
[3]=var856
;
5742 var850
= varonce849
;
5746 var859
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
5748 ((struct instance_standard__NativeArray
*)var850
)->values
[0]=var859
;
5749 ((struct instance_standard__NativeArray
*)var850
)->values
[2]=var_c_name
;
5751 var860
= ((val
*(*)(val
* self
))(var850
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var850
); /* native_to_s on <var850:NativeArray[String]>*/
5753 varonce849
= var850
;
5755 nit___nit__AbstractCompiler___provide_declaration(self
, var848
, var860
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
5757 if (unlikely(varonce861
==NULL
)) {
5758 var862
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
5759 if (likely(varonce863
!=NULL
)) {
5760 var864
= varonce863
;
5762 var865
= "/* allocate ";
5763 var866
= standard___standard__NativeString___to_s_with_length(var865
, 12l);
5765 varonce863
= var864
;
5767 ((struct instance_standard__NativeArray
*)var862
)->values
[0]=var864
;
5768 if (likely(varonce867
!=NULL
)) {
5769 var868
= varonce867
;
5772 var870
= standard___standard__NativeString___to_s_with_length(var869
, 3l);
5774 varonce867
= var868
;
5776 ((struct instance_standard__NativeArray
*)var862
)->values
[2]=var868
;
5778 var862
= varonce861
;
5782 var871
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MClassType>*/
5784 ((struct instance_standard__NativeArray
*)var862
)->values
[1]=var871
;
5786 var872
= ((val
*(*)(val
* self
))(var862
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var862
); /* native_to_s on <var862:NativeArray[String]>*/
5788 varonce861
= var862
;
5790 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var872
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5792 if (unlikely(varonce873
==NULL
)) {
5793 var874
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
5794 if (likely(varonce875
!=NULL
)) {
5795 var876
= varonce875
;
5798 var878
= standard___standard__NativeString___to_s_with_length(var877
, 5l);
5800 varonce875
= var876
;
5802 ((struct instance_standard__NativeArray
*)var874
)->values
[1]=var876
;
5803 if (likely(varonce879
!=NULL
)) {
5804 var880
= varonce879
;
5807 var882
= standard___standard__NativeString___to_s_with_length(var881
, 4l);
5809 varonce879
= var880
;
5811 ((struct instance_standard__NativeArray
*)var874
)->values
[3]=var880
;
5813 var874
= varonce873
;
5817 var883
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
5819 ((struct instance_standard__NativeArray
*)var874
)->values
[0]=var883
;
5820 ((struct instance_standard__NativeArray
*)var874
)->values
[2]=var_c_name
;
5822 var884
= ((val
*(*)(val
* self
))(var874
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var874
); /* native_to_s on <var874:NativeArray[String]>*/
5824 varonce873
= var874
;
5826 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var884
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5829 if (unlikely(varonce885
==NULL
)) {
5830 var886
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
5831 if (likely(varonce887
!=NULL
)) {
5832 var888
= varonce887
;
5834 var889
= " is DEAD";
5835 var890
= standard___standard__NativeString___to_s_with_length(var889
, 8l);
5837 varonce887
= var888
;
5839 ((struct instance_standard__NativeArray
*)var886
)->values
[1]=var888
;
5841 var886
= varonce885
;
5845 var891
= ((val
*(*)(val
* self
))(var_mclass
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mclass
); /* to_s on <var_mclass:MClass>*/
5847 ((struct instance_standard__NativeArray
*)var886
)->values
[0]=var891
;
5849 var892
= ((val
*(*)(val
* self
))(var886
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var886
); /* native_to_s on <var886:NativeArray[String]>*/
5851 varonce885
= var886
;
5853 nit___nit__AbstractCompilerVisitor___add_abort(var_v
, var892
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:SeparateCompilerVisitor>*/
5856 if (likely(varonce893
!=NULL
)) {
5857 var894
= varonce893
;
5860 var896
= standard___standard__NativeString___to_s_with_length(var895
, 4l);
5862 varonce893
= var894
;
5865 var897
= nit___nit__AbstractCompilerVisitor___new_named_var(var_v
, var_mtype
, var894
);
5867 var_res898
= var897
;
5869 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res898,1) on <var_res898:RuntimeVariable> */
5870 var_res898
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact
].s
= 1; /* _is_exact on <var_res898:RuntimeVariable> */
5871 RET_LABEL899
:(void)0;
5874 if (unlikely(varonce900
==NULL
)) {
5875 var901
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
5876 if (likely(varonce902
!=NULL
)) {
5877 var903
= varonce902
;
5879 var904
= " = nit_alloc(sizeof(struct instance_";
5880 var905
= standard___standard__NativeString___to_s_with_length(var904
, 36l);
5882 varonce902
= var903
;
5884 ((struct instance_standard__NativeArray
*)var901
)->values
[1]=var903
;
5885 if (likely(varonce906
!=NULL
)) {
5886 var907
= varonce906
;
5889 var909
= standard___standard__NativeString___to_s_with_length(var908
, 3l);
5891 varonce906
= var907
;
5893 ((struct instance_standard__NativeArray
*)var901
)->values
[3]=var907
;
5895 var901
= varonce900
;
5899 var910
= ((val
*(*)(val
* self
))(var_res898
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_res898
); /* to_s on <var_res898:RuntimeVariable>*/
5901 ((struct instance_standard__NativeArray
*)var901
)->values
[0]=var910
;
5903 var911
= ((val
*(*)(val
* self
))(var_pointer_type
->class->vft
[COLOR_nit__model_base__MEntity__c_name
]))(var_pointer_type
); /* c_name on <var_pointer_type:MClassType>*/
5905 ((struct instance_standard__NativeArray
*)var901
)->values
[2]=var911
;
5907 var912
= ((val
*(*)(val
* self
))(var901
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var901
); /* native_to_s on <var901:NativeArray[String]>*/
5909 varonce900
= var901
;
5911 nit___nit__AbstractCompilerVisitor___add(var_v
, var912
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5913 if (unlikely(varonce913
==NULL
)) {
5914 var914
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
5915 if (likely(varonce915
!=NULL
)) {
5916 var916
= varonce915
;
5919 var918
= standard___standard__NativeString___to_s_with_length(var917
, 6l);
5921 varonce915
= var916
;
5923 ((struct instance_standard__NativeArray
*)var914
)->values
[0]=var916
;
5925 var914
= varonce913
;
5928 ((struct instance_standard__NativeArray
*)var914
)->values
[1]=var_c_name
;
5930 var919
= ((val
*(*)(val
* self
))(var914
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var914
); /* native_to_s on <var914:NativeArray[String]>*/
5932 varonce913
= var914
;
5934 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var919
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
5936 if (unlikely(varonce920
==NULL
)) {
5937 var921
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
5938 if (likely(varonce922
!=NULL
)) {
5939 var923
= varonce922
;
5941 var924
= "->class = &class_";
5942 var925
= standard___standard__NativeString___to_s_with_length(var924
, 17l);
5944 varonce922
= var923
;
5946 ((struct instance_standard__NativeArray
*)var921
)->values
[1]=var923
;
5947 if (likely(varonce926
!=NULL
)) {
5948 var927
= varonce926
;
5951 var929
= standard___standard__NativeString___to_s_with_length(var928
, 1l);
5953 varonce926
= var927
;
5955 ((struct instance_standard__NativeArray
*)var921
)->values
[3]=var927
;
5957 var921
= varonce920
;
5961 var930
= ((val
*(*)(val
* self
))(var_res898
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_res898
); /* to_s on <var_res898:RuntimeVariable>*/
5963 ((struct instance_standard__NativeArray
*)var921
)->values
[0]=var930
;
5964 ((struct instance_standard__NativeArray
*)var921
)->values
[2]=var_c_name
;
5966 var931
= ((val
*(*)(val
* self
))(var921
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var921
); /* native_to_s on <var921:NativeArray[String]>*/
5968 varonce920
= var921
;
5970 nit___nit__AbstractCompilerVisitor___add(var_v
, var931
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5972 if (unlikely(varonce932
==NULL
)) {
5973 var933
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
5974 if (likely(varonce934
!=NULL
)) {
5975 var935
= varonce934
;
5977 var936
= "((struct instance_";
5978 var937
= standard___standard__NativeString___to_s_with_length(var936
, 18l);
5980 varonce934
= var935
;
5982 ((struct instance_standard__NativeArray
*)var933
)->values
[0]=var935
;
5983 if (likely(varonce938
!=NULL
)) {
5984 var939
= varonce938
;
5987 var941
= standard___standard__NativeString___to_s_with_length(var940
, 2l);
5989 varonce938
= var939
;
5991 ((struct instance_standard__NativeArray
*)var933
)->values
[2]=var939
;
5992 if (likely(varonce942
!=NULL
)) {
5993 var943
= varonce942
;
5995 var944
= ")->value = NULL;";
5996 var945
= standard___standard__NativeString___to_s_with_length(var944
, 16l);
5998 varonce942
= var943
;
6000 ((struct instance_standard__NativeArray
*)var933
)->values
[4]=var943
;
6002 var933
= varonce932
;
6006 var946
= ((val
*(*)(val
* self
))(var_pointer_type
->class->vft
[COLOR_nit__model_base__MEntity__c_name
]))(var_pointer_type
); /* c_name on <var_pointer_type:MClassType>*/
6008 ((struct instance_standard__NativeArray
*)var933
)->values
[1]=var946
;
6010 var947
= ((val
*(*)(val
* self
))(var_res898
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_res898
); /* to_s on <var_res898:RuntimeVariable>*/
6012 ((struct instance_standard__NativeArray
*)var933
)->values
[3]=var947
;
6014 var948
= ((val
*(*)(val
* self
))(var933
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var933
); /* native_to_s on <var933:NativeArray[String]>*/
6016 varonce932
= var933
;
6018 nit___nit__AbstractCompilerVisitor___add(var_v
, var948
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6020 if (unlikely(varonce949
==NULL
)) {
6021 var950
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
6022 if (likely(varonce951
!=NULL
)) {
6023 var952
= varonce951
;
6026 var954
= standard___standard__NativeString___to_s_with_length(var953
, 7l);
6028 varonce951
= var952
;
6030 ((struct instance_standard__NativeArray
*)var950
)->values
[0]=var952
;
6031 if (likely(varonce955
!=NULL
)) {
6032 var956
= varonce955
;
6035 var958
= standard___standard__NativeString___to_s_with_length(var957
, 1l);
6037 varonce955
= var956
;
6039 ((struct instance_standard__NativeArray
*)var950
)->values
[2]=var956
;
6041 var950
= varonce949
;
6045 var959
= ((val
*(*)(val
* self
))(var_res898
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_res898
); /* to_s on <var_res898:RuntimeVariable>*/
6047 ((struct instance_standard__NativeArray
*)var950
)->values
[1]=var959
;
6049 var960
= ((val
*(*)(val
* self
))(var950
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var950
); /* native_to_s on <var950:NativeArray[String]>*/
6051 varonce949
= var950
;
6053 nit___nit__AbstractCompilerVisitor___add(var_v
, var960
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6056 if (likely(varonce961
!=NULL
)) {
6057 var962
= varonce961
;
6060 var964
= standard___standard__NativeString___to_s_with_length(var963
, 1l);
6062 varonce961
= var962
;
6065 nit___nit__AbstractCompilerVisitor___add(var_v
, var962
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6072 if (unlikely(varonce965
==NULL
)) {
6073 var966
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
6074 if (likely(varonce967
!=NULL
)) {
6075 var968
= varonce967
;
6078 var970
= standard___standard__NativeString___to_s_with_length(var969
, 4l);
6080 varonce967
= var968
;
6082 ((struct instance_standard__NativeArray
*)var966
)->values
[0]=var968
;
6084 var966
= varonce965
;
6087 ((struct instance_standard__NativeArray
*)var966
)->values
[1]=var_c_name
;
6089 var971
= ((val
*(*)(val
* self
))(var966
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var966
); /* native_to_s on <var966:NativeArray[String]>*/
6091 varonce965
= var966
;
6092 if (unlikely(varonce972
==NULL
)) {
6093 var973
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
6094 if (likely(varonce974
!=NULL
)) {
6095 var975
= varonce974
;
6098 var977
= standard___standard__NativeString___to_s_with_length(var976
, 5l);
6100 varonce974
= var975
;
6102 ((struct instance_standard__NativeArray
*)var973
)->values
[1]=var975
;
6103 if (likely(varonce978
!=NULL
)) {
6104 var979
= varonce978
;
6107 var981
= standard___standard__NativeString___to_s_with_length(var980
, 7l);
6109 varonce978
= var979
;
6111 ((struct instance_standard__NativeArray
*)var973
)->values
[3]=var979
;
6113 var973
= varonce972
;
6117 var982
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
6119 ((struct instance_standard__NativeArray
*)var973
)->values
[0]=var982
;
6120 ((struct instance_standard__NativeArray
*)var973
)->values
[2]=var_c_name
;
6122 var983
= ((val
*(*)(val
* self
))(var973
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var973
); /* native_to_s on <var973:NativeArray[String]>*/
6124 varonce972
= var973
;
6126 nit___nit__AbstractCompiler___provide_declaration(self
, var971
, var983
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
6128 if (unlikely(varonce984
==NULL
)) {
6129 var985
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
6130 if (likely(varonce986
!=NULL
)) {
6131 var987
= varonce986
;
6133 var988
= "/* allocate ";
6134 var989
= standard___standard__NativeString___to_s_with_length(var988
, 12l);
6136 varonce986
= var987
;
6138 ((struct instance_standard__NativeArray
*)var985
)->values
[0]=var987
;
6139 if (likely(varonce990
!=NULL
)) {
6140 var991
= varonce990
;
6143 var993
= standard___standard__NativeString___to_s_with_length(var992
, 3l);
6145 varonce990
= var991
;
6147 ((struct instance_standard__NativeArray
*)var985
)->values
[2]=var991
;
6149 var985
= varonce984
;
6153 var994
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MClassType>*/
6155 ((struct instance_standard__NativeArray
*)var985
)->values
[1]=var994
;
6157 var995
= ((val
*(*)(val
* self
))(var985
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var985
); /* native_to_s on <var985:NativeArray[String]>*/
6159 varonce984
= var985
;
6161 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var995
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6163 if (unlikely(varonce996
==NULL
)) {
6164 var997
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
6165 if (likely(varonce998
!=NULL
)) {
6166 var999
= varonce998
;
6169 var1001
= standard___standard__NativeString___to_s_with_length(var1000
, 5l);
6171 varonce998
= var999
;
6173 ((struct instance_standard__NativeArray
*)var997
)->values
[1]=var999
;
6174 if (likely(varonce1002
!=NULL
)) {
6175 var1003
= varonce1002
;
6177 var1004
= "(void) {";
6178 var1005
= standard___standard__NativeString___to_s_with_length(var1004
, 8l);
6180 varonce1002
= var1003
;
6182 ((struct instance_standard__NativeArray
*)var997
)->values
[3]=var1003
;
6184 var997
= varonce996
;
6188 var1006
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
6190 ((struct instance_standard__NativeArray
*)var997
)->values
[0]=var1006
;
6191 ((struct instance_standard__NativeArray
*)var997
)->values
[2]=var_c_name
;
6193 var1007
= ((val
*(*)(val
* self
))(var997
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var997
); /* native_to_s on <var997:NativeArray[String]>*/
6195 varonce996
= var997
;
6197 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var1007
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6200 if (unlikely(varonce1008
==NULL
)) {
6201 var1009
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
6202 if (likely(varonce1010
!=NULL
)) {
6203 var1011
= varonce1010
;
6205 var1012
= " is DEAD";
6206 var1013
= standard___standard__NativeString___to_s_with_length(var1012
, 8l);
6208 varonce1010
= var1011
;
6210 ((struct instance_standard__NativeArray
*)var1009
)->values
[1]=var1011
;
6212 var1009
= varonce1008
;
6216 var1014
= ((val
*(*)(val
* self
))(var_mclass
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mclass
); /* to_s on <var_mclass:MClass>*/
6218 ((struct instance_standard__NativeArray
*)var1009
)->values
[0]=var1014
;
6220 var1015
= ((val
*(*)(val
* self
))(var1009
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var1009
); /* native_to_s on <var1009:NativeArray[String]>*/
6222 varonce1008
= var1009
;
6224 nit___nit__AbstractCompilerVisitor___add_abort(var_v
, var1015
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:SeparateCompilerVisitor>*/
6227 if (likely(varonce1016
!=NULL
)) {
6228 var1017
= varonce1016
;
6231 var1019
= standard___standard__NativeString___to_s_with_length(var1018
, 4l);
6233 varonce1016
= var1017
;
6236 var1020
= nit___nit__AbstractCompilerVisitor___new_named_var(var_v
, var_mtype
, var1017
);
6238 var_res1021
= var1020
;
6240 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res1021,1) on <var_res1021:RuntimeVariable> */
6241 var_res1021
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact
].s
= 1; /* _is_exact on <var_res1021:RuntimeVariable> */
6242 RET_LABEL1022
:(void)0;
6246 { /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on <self:SeparateErasureCompiler> */
6247 var1025
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___attr_tables
].val
; /* _attr_tables on <self:SeparateErasureCompiler> */
6248 if (unlikely(var1025
== NULL
)) {
6249 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
6250 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 1054);
6254 RET_LABEL1024
:(void)0;
6258 var1026
= ((val
*(*)(val
* self
, val
* p0
))((((long)var1023
&3)?class_info
[((long)var1023
&3)]:var1023
->class)->vft
[COLOR_standard__abstract_collection__MapRead__get_or_null
]))(var1023
, var_mclass
); /* get_or_null on <var1023:Map[MClass, Array[nullable MProperty]]>*/
6260 var_attrs
= var1026
;
6261 if (var_attrs
== NULL
) {
6262 var1027
= 1; /* is null */
6264 var1027
= 0; /* arg is null but recv is not */
6267 var1028
= standard___standard__Array___standard__kernel__Object___61d_61d(var_attrs
, ((val
*)NULL
));
6271 if (unlikely(varonce1029
==NULL
)) {
6272 var1030
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
6273 if (likely(varonce1031
!=NULL
)) {
6274 var1032
= varonce1031
;
6276 var1033
= " = nit_alloc(sizeof(struct instance));";
6277 var1034
= standard___standard__NativeString___to_s_with_length(var1033
, 38l);
6279 varonce1031
= var1032
;
6281 ((struct instance_standard__NativeArray
*)var1030
)->values
[1]=var1032
;
6283 var1030
= varonce1029
;
6287 var1035
= ((val
*(*)(val
* self
))(var_res1021
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_res1021
); /* to_s on <var_res1021:RuntimeVariable>*/
6289 ((struct instance_standard__NativeArray
*)var1030
)->values
[0]=var1035
;
6291 var1036
= ((val
*(*)(val
* self
))(var1030
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var1030
); /* native_to_s on <var1030:NativeArray[String]>*/
6293 varonce1029
= var1030
;
6295 nit___nit__AbstractCompilerVisitor___add(var_v
, var1036
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6298 if (unlikely(varonce1037
==NULL
)) {
6299 var1038
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
6300 if (likely(varonce1039
!=NULL
)) {
6301 var1040
= varonce1039
;
6303 var1041
= " = nit_alloc(sizeof(struct instance) + ";
6304 var1042
= standard___standard__NativeString___to_s_with_length(var1041
, 39l);
6306 varonce1039
= var1040
;
6308 ((struct instance_standard__NativeArray
*)var1038
)->values
[1]=var1040
;
6309 if (likely(varonce1043
!=NULL
)) {
6310 var1044
= varonce1043
;
6312 var1045
= "*sizeof(nitattribute_t));";
6313 var1046
= standard___standard__NativeString___to_s_with_length(var1045
, 25l);
6315 varonce1043
= var1044
;
6317 ((struct instance_standard__NativeArray
*)var1038
)->values
[3]=var1044
;
6319 var1038
= varonce1037
;
6323 var1047
= ((val
*(*)(val
* self
))(var_res1021
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_res1021
); /* to_s on <var_res1021:RuntimeVariable>*/
6325 ((struct instance_standard__NativeArray
*)var1038
)->values
[0]=var1047
;
6327 { /* Inline array#AbstractArrayRead#length (var_attrs) on <var_attrs:nullable Array[nullable MProperty](Array[nullable MProperty])> */
6328 var1050
= var_attrs
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_attrs:nullable Array[nullable MProperty](Array[nullable MProperty])> */
6330 RET_LABEL1049
:(void)0;
6333 var1051
= standard__string___Int___Object__to_s(var1048
);
6334 ((struct instance_standard__NativeArray
*)var1038
)->values
[2]=var1051
;
6336 var1052
= ((val
*(*)(val
* self
))(var1038
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var1038
); /* native_to_s on <var1038:NativeArray[String]>*/
6338 varonce1037
= var1038
;
6340 nit___nit__AbstractCompilerVisitor___add(var_v
, var1052
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6343 if (unlikely(varonce1053
==NULL
)) {
6344 var1054
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
6345 if (likely(varonce1055
!=NULL
)) {
6346 var1056
= varonce1055
;
6349 var1058
= standard___standard__NativeString___to_s_with_length(var1057
, 6l);
6351 varonce1055
= var1056
;
6353 ((struct instance_standard__NativeArray
*)var1054
)->values
[0]=var1056
;
6355 var1054
= varonce1053
;
6358 ((struct instance_standard__NativeArray
*)var1054
)->values
[1]=var_c_name
;
6360 var1059
= ((val
*(*)(val
* self
))(var1054
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var1054
); /* native_to_s on <var1054:NativeArray[String]>*/
6362 varonce1053
= var1054
;
6364 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var1059
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
6366 if (unlikely(varonce1060
==NULL
)) {
6367 var1061
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
6368 if (likely(varonce1062
!=NULL
)) {
6369 var1063
= varonce1062
;
6371 var1064
= "->class = &class_";
6372 var1065
= standard___standard__NativeString___to_s_with_length(var1064
, 17l);
6374 varonce1062
= var1063
;
6376 ((struct instance_standard__NativeArray
*)var1061
)->values
[1]=var1063
;
6377 if (likely(varonce1066
!=NULL
)) {
6378 var1067
= varonce1066
;
6381 var1069
= standard___standard__NativeString___to_s_with_length(var1068
, 1l);
6383 varonce1066
= var1067
;
6385 ((struct instance_standard__NativeArray
*)var1061
)->values
[3]=var1067
;
6387 var1061
= varonce1060
;
6391 var1070
= ((val
*(*)(val
* self
))(var_res1021
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_res1021
); /* to_s on <var_res1021:RuntimeVariable>*/
6393 ((struct instance_standard__NativeArray
*)var1061
)->values
[0]=var1070
;
6394 ((struct instance_standard__NativeArray
*)var1061
)->values
[2]=var_c_name
;
6396 var1071
= ((val
*(*)(val
* self
))(var1061
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var1061
); /* native_to_s on <var1061:NativeArray[String]>*/
6398 varonce1060
= var1061
;
6400 nit___nit__AbstractCompilerVisitor___add(var_v
, var1071
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6402 if (var_attrs
== NULL
) {
6403 var1072
= 0; /* is null */
6405 var1072
= 1; /* arg is null and recv is not */
6408 { /* Inline kernel#Object#!= (var_attrs,((val*)NULL)) on <var_attrs:nullable Array[nullable MProperty]> */
6409 var_other
= ((val
*)NULL
);
6411 var1075
= ((short int(*)(val
* self
, val
* p0
))(var_attrs
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_attrs
, var_other
); /* == on <var_attrs:nullable Array[nullable MProperty](Array[nullable MProperty])>*/
6416 RET_LABEL1074
:(void)0;
6422 nit___nit__AbstractCompiler___generate_init_attr(self
, var_v
, var_res1021
, var_mtype
); /* Direct call abstract_compiler#AbstractCompiler#generate_init_attr on <self:SeparateErasureCompiler>*/
6425 nit___nit__AbstractCompilerVisitor___set_finalizer(var_v
, var_res1021
); /* Direct call abstract_compiler#AbstractCompilerVisitor#set_finalizer on <var_v:SeparateCompilerVisitor>*/
6429 if (unlikely(varonce1077
==NULL
)) {
6430 var1078
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
6431 if (likely(varonce1079
!=NULL
)) {
6432 var1080
= varonce1079
;
6434 var1081
= "return ";
6435 var1082
= standard___standard__NativeString___to_s_with_length(var1081
, 7l);
6437 varonce1079
= var1080
;
6439 ((struct instance_standard__NativeArray
*)var1078
)->values
[0]=var1080
;
6440 if (likely(varonce1083
!=NULL
)) {
6441 var1084
= varonce1083
;
6444 var1086
= standard___standard__NativeString___to_s_with_length(var1085
, 1l);
6446 varonce1083
= var1084
;
6448 ((struct instance_standard__NativeArray
*)var1078
)->values
[2]=var1084
;
6450 var1078
= varonce1077
;
6454 var1087
= ((val
*(*)(val
* self
))(var_res1021
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_res1021
); /* to_s on <var_res1021:RuntimeVariable>*/
6456 ((struct instance_standard__NativeArray
*)var1078
)->values
[1]=var1087
;
6458 var1088
= ((val
*(*)(val
* self
))(var1078
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var1078
); /* native_to_s on <var1078:NativeArray[String]>*/
6460 varonce1077
= var1078
;
6462 nit___nit__AbstractCompilerVisitor___add(var_v
, var1088
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6465 if (likely(varonce1089
!=NULL
)) {
6466 var1090
= varonce1089
;
6469 var1092
= standard___standard__NativeString___to_s_with_length(var1091
, 1l);
6471 varonce1089
= var1090
;
6474 nit___nit__AbstractCompilerVisitor___add(var_v
, var1090
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6478 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_vts_table for (self: SeparateErasureCompiler, MClass): Bool */
6479 short int nit___nit__SeparateErasureCompiler___build_class_vts_table(val
* self
, val
* p0
) {
6480 short int var
/* : Bool */;
6481 val
* var_mclass
/* var mclass: MClass */;
6482 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
6483 val
* var3
/* : Map[MClass, Array[nullable MPropDef]] */;
6484 val
* var4
/* : nullable Object */;
6485 short int var5
/* : Bool */;
6486 val
* var6
/* : NativeArray[String] */;
6487 static val
* varonce
;
6488 static val
* varonce7
;
6489 val
* var8
/* : String */;
6490 char* var9
/* : NativeString */;
6491 val
* var10
/* : FlatString */;
6492 val
* var11
/* : String */;
6493 val
* var12
/* : String */;
6494 val
* var14
/* : NativeArray[String] */;
6495 static val
* varonce13
;
6496 static val
* varonce15
;
6497 val
* var16
/* : String */;
6498 char* var17
/* : NativeString */;
6499 val
* var18
/* : FlatString */;
6500 static val
* varonce19
;
6501 val
* var20
/* : String */;
6502 char* var21
/* : NativeString */;
6503 val
* var22
/* : FlatString */;
6504 val
* var23
/* : String */;
6505 val
* var24
/* : String */;
6506 val
* var25
/* : SeparateCompilerVisitor */;
6507 val
* var_v
/* var v: SeparateCompilerVisitor */;
6508 val
* var27
/* : NativeArray[String] */;
6509 static val
* varonce26
;
6510 static val
* varonce28
;
6511 val
* var29
/* : String */;
6512 char* var30
/* : NativeString */;
6513 val
* var31
/* : FlatString */;
6514 static val
* varonce32
;
6515 val
* var33
/* : String */;
6516 char* var34
/* : NativeString */;
6517 val
* var35
/* : FlatString */;
6518 val
* var36
/* : String */;
6519 val
* var37
/* : String */;
6520 static val
* varonce38
;
6521 val
* var39
/* : String */;
6522 char* var40
/* : NativeString */;
6523 val
* var41
/* : FlatString */;
6524 static val
* varonce42
;
6525 val
* var43
/* : String */;
6526 char* var44
/* : NativeString */;
6527 val
* var45
/* : FlatString */;
6528 val
* var46
/* : Map[MClass, Array[nullable MPropDef]] */;
6529 val
* var48
/* : Map[MClass, Array[nullable MPropDef]] */;
6530 val
* var49
/* : nullable Object */;
6531 val
* var_
/* var : Array[nullable MPropDef] */;
6532 val
* var50
/* : ArrayIterator[nullable Object] */;
6533 val
* var_51
/* var : ArrayIterator[nullable MPropDef] */;
6534 short int var52
/* : Bool */;
6535 val
* var53
/* : nullable Object */;
6536 val
* var_vt
/* var vt: nullable MPropDef */;
6537 short int var54
/* : Bool */;
6538 short int var55
/* : Bool */;
6539 val
* var_other
/* var other: nullable Object */;
6540 short int var57
/* : Bool */;
6541 short int var59
/* : Bool */;
6542 static val
* varonce60
;
6543 val
* var61
/* : String */;
6544 char* var62
/* : NativeString */;
6545 val
* var63
/* : FlatString */;
6546 long var_is_null
/* var is_null: Int */;
6547 val
* var64
/* : MClassDef */;
6548 val
* var66
/* : MClassDef */;
6549 val
* var67
/* : MClassType */;
6550 val
* var69
/* : MClassType */;
6551 short int var70
/* : Bool */;
6554 const char* var_class_name
;
6555 val
* var71
/* : nullable MType */;
6556 val
* var73
/* : nullable MType */;
6557 val
* var74
/* : MType */;
6558 val
* var_bound
/* var bound: MType */;
6559 short int var75
/* : Bool */;
6562 val
* var78
/* : MClassDef */;
6563 val
* var80
/* : MClassDef */;
6564 val
* var81
/* : MClassType */;
6565 val
* var83
/* : MClassType */;
6566 val
* var84
/* : MType */;
6567 val
* var86
/* : MType */;
6568 val
* var87
/* : MType */;
6569 short int var88
/* : Bool */;
6572 const char* var_class_name91
;
6573 val
* var92
/* : MClass */;
6574 val
* var94
/* : MClass */;
6575 val
* var_vtclass
/* var vtclass: MClass */;
6576 val
* var96
/* : NativeArray[String] */;
6577 static val
* varonce95
;
6578 static val
* varonce97
;
6579 val
* var98
/* : String */;
6580 char* var99
/* : NativeString */;
6581 val
* var100
/* : FlatString */;
6582 val
* var101
/* : String */;
6583 val
* var102
/* : String */;
6584 val
* var104
/* : NativeArray[String] */;
6585 static val
* varonce103
;
6586 static val
* varonce105
;
6587 val
* var106
/* : String */;
6588 char* var107
/* : NativeString */;
6589 val
* var108
/* : FlatString */;
6590 static val
* varonce109
;
6591 val
* var110
/* : String */;
6592 char* var111
/* : NativeString */;
6593 val
* var112
/* : FlatString */;
6594 static val
* varonce113
;
6595 val
* var114
/* : String */;
6596 char* var115
/* : NativeString */;
6597 val
* var116
/* : FlatString */;
6598 static val
* varonce117
;
6599 val
* var118
/* : String */;
6600 char* var119
/* : NativeString */;
6601 val
* var120
/* : FlatString */;
6602 val
* var121
/* : String */;
6603 val
* var122
/* : String */;
6604 val
* var123
/* : String */;
6605 val
* var124
/* : String */;
6606 static val
* varonce126
;
6607 val
* var127
/* : String */;
6608 char* var128
/* : NativeString */;
6609 val
* var129
/* : FlatString */;
6610 static val
* varonce130
;
6611 val
* var131
/* : String */;
6612 char* var132
/* : NativeString */;
6613 val
* var133
/* : FlatString */;
6616 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on <self:SeparateErasureCompiler> */
6617 var3
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
6618 if (unlikely(var3
== NULL
)) {
6619 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
6620 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 428);
6628 var4
= ((val
*(*)(val
* self
, val
* p0
))((((long)var1
&3)?class_info
[((long)var1
&3)]:var1
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var1
, var_mclass
); /* [] on <var1:Map[MClass, Array[nullable MPropDef]]>*/
6631 var5
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var4
);
6638 if (unlikely(varonce
==NULL
)) {
6639 var6
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
6640 if (likely(varonce7
!=NULL
)) {
6643 var9
= "vts_table_";
6644 var10
= standard___standard__NativeString___to_s_with_length(var9
, 10l);
6648 ((struct instance_standard__NativeArray
*)var6
)->values
[0]=var8
;
6654 var11
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass
);
6656 ((struct instance_standard__NativeArray
*)var6
)->values
[1]=var11
;
6658 var12
= ((val
*(*)(val
* self
))(var6
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var6
); /* native_to_s on <var6:NativeArray[String]>*/
6661 if (unlikely(varonce13
==NULL
)) {
6662 var14
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
6663 if (likely(varonce15
!=NULL
)) {
6666 var17
= "extern const struct vts_table vts_table_";
6667 var18
= standard___standard__NativeString___to_s_with_length(var17
, 40l);
6671 ((struct instance_standard__NativeArray
*)var14
)->values
[0]=var16
;
6672 if (likely(varonce19
!=NULL
)) {
6676 var22
= standard___standard__NativeString___to_s_with_length(var21
, 1l);
6680 ((struct instance_standard__NativeArray
*)var14
)->values
[2]=var20
;
6686 var23
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass
);
6688 ((struct instance_standard__NativeArray
*)var14
)->values
[1]=var23
;
6690 var24
= ((val
*(*)(val
* self
))(var14
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var14
); /* native_to_s on <var14:NativeArray[String]>*/
6694 nit___nit__AbstractCompiler___provide_declaration(self
, var12
, var24
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
6697 var25
= nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__new_visitor(self
);
6700 if (unlikely(varonce26
==NULL
)) {
6701 var27
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
6702 if (likely(varonce28
!=NULL
)) {
6705 var30
= "const struct vts_table vts_table_";
6706 var31
= standard___standard__NativeString___to_s_with_length(var30
, 33l);
6710 ((struct instance_standard__NativeArray
*)var27
)->values
[0]=var29
;
6711 if (likely(varonce32
!=NULL
)) {
6715 var35
= standard___standard__NativeString___to_s_with_length(var34
, 4l);
6719 ((struct instance_standard__NativeArray
*)var27
)->values
[2]=var33
;
6725 var36
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass
);
6727 ((struct instance_standard__NativeArray
*)var27
)->values
[1]=var36
;
6729 var37
= ((val
*(*)(val
* self
))(var27
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var27
); /* native_to_s on <var27:NativeArray[String]>*/
6733 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var37
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6735 if (likely(varonce38
!=NULL
)) {
6738 var40
= "0, /* dummy */";
6739 var41
= standard___standard__NativeString___to_s_with_length(var40
, 14l);
6744 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var39
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6746 if (likely(varonce42
!=NULL
)) {
6750 var45
= standard___standard__NativeString___to_s_with_length(var44
, 1l);
6755 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var43
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6758 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on <self:SeparateErasureCompiler> */
6759 var48
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
6760 if (unlikely(var48
== NULL
)) {
6761 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
6762 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 428);
6766 RET_LABEL47
:(void)0;
6770 var49
= ((val
*(*)(val
* self
, val
* p0
))((((long)var46
&3)?class_info
[((long)var46
&3)]:var46
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var46
, var_mclass
); /* [] on <var46:Map[MClass, Array[nullable MPropDef]]>*/
6774 var50
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
6779 var52
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_51
);
6783 var53
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_51
);
6786 if (var_vt
== NULL
) {
6787 var54
= 1; /* is null */
6789 var54
= 0; /* arg is null but recv is not */
6792 { /* Inline kernel#Object#== (var_vt,((val*)NULL)) on <var_vt:nullable MPropDef> */
6793 var_other
= ((val
*)NULL
);
6795 { /* Inline kernel#Object#is_same_instance (var_vt,var_other) on <var_vt:nullable MPropDef(MPropDef)> */
6796 var59
= var_vt
== var_other
;
6799 RET_LABEL58
:(void)0;
6804 RET_LABEL56
:(void)0;
6809 if (likely(varonce60
!=NULL
)) {
6812 var62
= "{-1, NULL}, /* empty */";
6813 var63
= standard___standard__NativeString___to_s_with_length(var62
, 23l);
6818 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var61
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6823 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:MClass> */
6824 var66
= var_mclass
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var_mclass:MClass> */
6825 if (unlikely(var66
== NULL
)) {
6826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
6827 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 460);
6831 RET_LABEL65
:(void)0;
6835 { /* Inline model#MClassDef#bound_mtype (var64) on <var64:MClassDef> */
6836 var69
= var64
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var64:MClassDef> */
6837 if (unlikely(var69
== NULL
)) {
6838 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
6839 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 556);
6843 RET_LABEL68
:(void)0;
6846 /* <var_vt:nullable MPropDef(MPropDef)> isa MVirtualTypeDef */
6847 cltype
= type_nit__MVirtualTypeDef
.color
;
6848 idtype
= type_nit__MVirtualTypeDef
.id
;
6849 if(cltype
>= var_vt
->type
->table_size
) {
6852 var70
= var_vt
->type
->type_table
[cltype
] == idtype
;
6854 if (unlikely(!var70
)) {
6855 var_class_name
= var_vt
== NULL ?
"null" : var_vt
->type
->name
;
6856 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name
);
6857 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 389);
6861 { /* Inline model#MVirtualTypeDef#bound (var_vt) on <var_vt:MPropDef(MVirtualTypeDef)> */
6862 var73
= var_vt
->attrs
[COLOR_nit__model__MVirtualTypeDef___bound
].val
; /* _bound on <var_vt:MPropDef(MVirtualTypeDef)> */
6864 RET_LABEL72
:(void)0;
6868 var74
= nit___nit__SeparateErasureCompiler___retrieve_vt_bound(self
, var67
, var71
);
6872 /* <var_bound:MType> isa MNullableType */
6873 cltype76
= type_nit__MNullableType
.color
;
6874 idtype77
= type_nit__MNullableType
.id
;
6875 if(cltype76
>= var_bound
->type
->table_size
) {
6878 var75
= var_bound
->type
->type_table
[cltype76
] == idtype77
;
6882 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:MClass> */
6883 var80
= var_mclass
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var_mclass:MClass> */
6884 if (unlikely(var80
== NULL
)) {
6885 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
6886 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 460);
6890 RET_LABEL79
:(void)0;
6894 { /* Inline model#MClassDef#bound_mtype (var78) on <var78:MClassDef> */
6895 var83
= var78
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var78:MClassDef> */
6896 if (unlikely(var83
== NULL
)) {
6897 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
6898 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 556);
6902 RET_LABEL82
:(void)0;
6906 { /* Inline model#MProxyType#mtype (var_bound) on <var_bound:MType(MNullableType)> */
6907 var86
= var_bound
->attrs
[COLOR_nit__model__MProxyType___mtype
].val
; /* _mtype on <var_bound:MType(MNullableType)> */
6908 if (unlikely(var86
== NULL
)) {
6909 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6910 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1598);
6914 RET_LABEL85
:(void)0;
6918 var87
= nit___nit__SeparateErasureCompiler___retrieve_vt_bound(self
, var81
, var84
);
6926 BREAK_label
: (void)0;
6927 /* <var_bound:MType> isa MClassType */
6928 cltype89
= type_nit__MClassType
.color
;
6929 idtype90
= type_nit__MClassType
.id
;
6930 if(cltype89
>= var_bound
->type
->table_size
) {
6933 var88
= var_bound
->type
->type_table
[cltype89
] == idtype90
;
6935 if (unlikely(!var88
)) {
6936 var_class_name91
= var_bound
== NULL ?
"null" : var_bound
->type
->name
;
6937 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name91
);
6938 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 394);
6942 { /* Inline model#MClassType#mclass (var_bound) on <var_bound:MType(MClassType)> */
6943 var94
= var_bound
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_bound:MType(MClassType)> */
6944 if (unlikely(var94
== NULL
)) {
6945 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6946 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
6950 RET_LABEL93
:(void)0;
6953 var_vtclass
= var92
;
6954 if (unlikely(varonce95
==NULL
)) {
6955 var96
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
6956 if (likely(varonce97
!=NULL
)) {
6960 var100
= standard___standard__NativeString___to_s_with_length(var99
, 6l);
6964 ((struct instance_standard__NativeArray
*)var96
)->values
[0]=var98
;
6970 var101
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_vtclass
);
6972 ((struct instance_standard__NativeArray
*)var96
)->values
[1]=var101
;
6974 var102
= ((val
*(*)(val
* self
))(var96
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var96
); /* native_to_s on <var96:NativeArray[String]>*/
6978 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var102
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
6980 if (unlikely(varonce103
==NULL
)) {
6981 var104
= NEW_standard__NativeArray(7l, &type_standard__NativeArray__standard__String
);
6982 if (likely(varonce105
!=NULL
)) {
6983 var106
= varonce105
;
6986 var108
= standard___standard__NativeString___to_s_with_length(var107
, 1l);
6988 varonce105
= var106
;
6990 ((struct instance_standard__NativeArray
*)var104
)->values
[0]=var106
;
6991 if (likely(varonce109
!=NULL
)) {
6992 var110
= varonce109
;
6994 var111
= ", &class_";
6995 var112
= standard___standard__NativeString___to_s_with_length(var111
, 9l);
6997 varonce109
= var110
;
6999 ((struct instance_standard__NativeArray
*)var104
)->values
[2]=var110
;
7000 if (likely(varonce113
!=NULL
)) {
7001 var114
= varonce113
;
7004 var116
= standard___standard__NativeString___to_s_with_length(var115
, 6l);
7006 varonce113
= var114
;
7008 ((struct instance_standard__NativeArray
*)var104
)->values
[4]=var114
;
7009 if (likely(varonce117
!=NULL
)) {
7010 var118
= varonce117
;
7013 var120
= standard___standard__NativeString___to_s_with_length(var119
, 3l);
7015 varonce117
= var118
;
7017 ((struct instance_standard__NativeArray
*)var104
)->values
[6]=var118
;
7019 var104
= varonce103
;
7022 var121
= standard__string___Int___Object__to_s(var_is_null
);
7023 ((struct instance_standard__NativeArray
*)var104
)->values
[1]=var121
;
7025 var122
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_vtclass
);
7027 ((struct instance_standard__NativeArray
*)var104
)->values
[3]=var122
;
7029 var123
= ((val
*(*)(val
* self
))(var_vt
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_vt
); /* to_s on <var_vt:nullable MPropDef(MPropDef)>*/
7031 ((struct instance_standard__NativeArray
*)var104
)->values
[5]=var123
;
7033 var124
= ((val
*(*)(val
* self
))(var104
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var104
); /* native_to_s on <var104:NativeArray[String]>*/
7035 varonce103
= var104
;
7037 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var124
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7041 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_51
); /* Direct call array#ArrayIterator#next on <var_51:ArrayIterator[nullable MPropDef]>*/
7044 goto BREAK_label125
;
7047 BREAK_label125
: (void)0;
7049 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_51
); /* Direct call array#ArrayIterator#finish on <var_51:ArrayIterator[nullable MPropDef]>*/
7051 if (likely(varonce126
!=NULL
)) {
7052 var127
= varonce126
;
7055 var129
= standard___standard__NativeString___to_s_with_length(var128
, 2l);
7057 varonce126
= var127
;
7060 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var127
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7062 if (likely(varonce130
!=NULL
)) {
7063 var131
= varonce130
;
7066 var133
= standard___standard__NativeString___to_s_with_length(var132
, 2l);
7068 varonce130
= var131
;
7071 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var131
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7078 /* method separate_erasure_compiler#SeparateErasureCompiler#retrieve_vt_bound for (self: SeparateErasureCompiler, MClassType, nullable MType): MType */
7079 val
* nit___nit__SeparateErasureCompiler___retrieve_vt_bound(val
* self
, val
* p0
, val
* p1
) {
7080 val
* var
/* : MType */;
7081 val
* var_anchor
/* var anchor: MClassType */;
7082 val
* var_mtype
/* var mtype: nullable MType */;
7083 short int var1
/* : Bool */;
7084 short int var2
/* : Bool */;
7085 val
* var_other
/* var other: nullable Object */;
7086 short int var4
/* : Bool */;
7087 short int var6
/* : Bool */;
7088 val
* var7
/* : Sys */;
7089 static val
* varonce
;
7090 val
* var8
/* : String */;
7091 char* var9
/* : NativeString */;
7092 val
* var10
/* : FlatString */;
7093 short int var11
/* : Bool */;
7096 val
* var12
/* : MModule */;
7097 val
* var14
/* : MModule */;
7098 val
* var15
/* : MType */;
7099 short int var16
/* : Bool */;
7102 val
* var19
/* : MModule */;
7103 val
* var21
/* : MModule */;
7104 val
* var22
/* : MType */;
7107 if (var_mtype
== NULL
) {
7108 var1
= 1; /* is null */
7110 var1
= 0; /* arg is null but recv is not */
7113 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
7114 var_other
= ((val
*)NULL
);
7116 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
7117 var6
= var_mtype
== var_other
;
7131 if (likely(varonce
!=NULL
)) {
7134 var9
= "NOT YET IMPLEMENTED: retrieve_vt_bound on null";
7135 var10
= standard___standard__NativeString___to_s_with_length(var9
, 46l);
7140 standard__file___Sys___print(var7
, var8
); /* Direct call file#Sys#print on <var7:Sys>*/
7142 PRINT_ERROR("Runtime error: %s", "Aborted");
7143 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 407);
7147 /* <var_mtype:nullable MType(MType)> isa MVirtualType */
7148 cltype
= type_nit__MVirtualType
.color
;
7149 idtype
= type_nit__MVirtualType
.id
;
7150 if(cltype
>= var_mtype
->type
->table_size
) {
7153 var11
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7157 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
7158 var14
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
7159 if (unlikely(var14
== NULL
)) {
7160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7161 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
7165 RET_LABEL13
:(void)0;
7169 var15
= nit___nit__MType___anchor_to(var_mtype
, var12
, var_anchor
);
7174 /* <var_mtype:nullable MType(MType)> isa MParameterType */
7175 cltype17
= type_nit__MParameterType
.color
;
7176 idtype18
= type_nit__MParameterType
.id
;
7177 if(cltype17
>= var_mtype
->type
->table_size
) {
7180 var16
= var_mtype
->type
->type_table
[cltype17
] == idtype18
;
7184 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
7185 var21
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
7186 if (unlikely(var21
== NULL
)) {
7187 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7188 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 515);
7192 RET_LABEL20
:(void)0;
7196 var22
= nit___nit__MType___anchor_to(var_mtype
, var19
, var_anchor
);
7208 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_types for (self: SeparateErasureCompiler) */
7209 void nit___nit__SeparateErasureCompiler___nit__separate_compiler__SeparateCompiler__compile_types(val
* self
) {
7210 val
* var
/* : Map[MVirtualTypeProp, Int] */;
7211 val
* var2
/* : Map[MVirtualTypeProp, Int] */;
7213 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors (self) on <self:SeparateErasureCompiler> */
7214 var2
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:SeparateErasureCompiler> */
7215 if (unlikely(var2
== NULL
)) {
7216 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
7217 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 86);
7225 nit___nit__SeparateCompiler___compile_color_consts(self
, var
); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:SeparateErasureCompiler>*/
7229 /* method separate_erasure_compiler#SeparateErasureCompiler#new_visitor for (self: SeparateErasureCompiler): SeparateCompilerVisitor */
7230 val
* nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__new_visitor(val
* self
) {
7231 val
* var
/* : SeparateCompilerVisitor */;
7232 val
* var1
/* : SeparateErasureCompilerVisitor */;
7233 short int var2
/* : Bool */;
7236 const struct type
* type_struct
;
7237 const char* var_class_name
;
7238 var1
= NEW_nit__SeparateErasureCompilerVisitor(&type_nit__SeparateErasureCompilerVisitor
);
7240 ((void(*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compiler_61d
]))(var1
, self
); /* compiler= on <var1:SeparateErasureCompilerVisitor>*/
7243 ((void(*)(val
* self
))(var1
->class->vft
[COLOR_standard__kernel__Object__init
]))(var1
); /* init on <var1:SeparateErasureCompilerVisitor>*/
7245 /* <var1:SeparateErasureCompilerVisitor> isa VISITOR */
7246 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__abstract_compiler__AbstractCompiler__VISITOR
];
7247 cltype
= type_struct
->color
;
7248 idtype
= type_struct
->id
;
7249 if(cltype
>= var1
->type
->table_size
) {
7252 var2
= var1
->type
->type_table
[cltype
] == idtype
;
7254 if (unlikely(!var2
)) {
7255 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
7256 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
7257 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 423);
7265 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables for (self: SeparateErasureCompiler): Map[MClass, Array[nullable MClass]] */
7266 val
* nit___nit__SeparateErasureCompiler___class_tables(val
* self
) {
7267 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
7268 val
* var1
/* : Map[MClass, Array[nullable MClass]] */;
7269 var1
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
; /* _class_tables on <self:SeparateErasureCompiler> */
7270 if (unlikely(var1
== NULL
)) {
7271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables");
7272 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 427);
7279 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables= for (self: SeparateErasureCompiler, Map[MClass, Array[nullable MClass]]) */
7280 void nit___nit__SeparateErasureCompiler___class_tables_61d(val
* self
, val
* p0
) {
7281 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
= p0
; /* _class_tables on <self:SeparateErasureCompiler> */
7284 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables for (self: SeparateErasureCompiler): Map[MClass, Array[nullable MPropDef]] */
7285 val
* nit___nit__SeparateErasureCompiler___vt_tables(val
* self
) {
7286 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
7287 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
7288 var1
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
7289 if (unlikely(var1
== NULL
)) {
7290 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
7291 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 428);
7298 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables= for (self: SeparateErasureCompiler, Map[MClass, Array[nullable MPropDef]]) */
7299 void nit___nit__SeparateErasureCompiler___vt_tables_61d(val
* self
, val
* p0
) {
7300 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
= p0
; /* _vt_tables on <self:SeparateErasureCompiler> */
7303 /* method separate_erasure_compiler#SeparateErasureCompiler#display_sizes for (self: SeparateErasureCompiler) */
7304 void nit___nit__SeparateErasureCompiler___nit__separate_compiler__SeparateCompiler__display_sizes(val
* self
) {
7305 val
* var
/* : Sys */;
7306 static val
* varonce
;
7307 val
* var1
/* : String */;
7308 char* var2
/* : NativeString */;
7309 val
* var3
/* : FlatString */;
7310 val
* var4
/* : Sys */;
7311 static val
* varonce5
;
7312 val
* var6
/* : String */;
7313 char* var7
/* : NativeString */;
7314 val
* var8
/* : FlatString */;
7315 long var_total
/* var total: Int */;
7316 long var_holes
/* var holes: Int */;
7317 val
* var9
/* : Map[MClass, Array[nullable MClass]] */;
7318 val
* var11
/* : Map[MClass, Array[nullable MClass]] */;
7319 val
* var_
/* var : Map[MClass, Array[nullable MClass]] */;
7320 val
* var12
/* : MapIterator[nullable Object, nullable Object] */;
7321 val
* var_13
/* var : MapIterator[MClass, Array[nullable MClass]] */;
7322 short int var14
/* : Bool */;
7323 val
* var15
/* : nullable Object */;
7324 val
* var_t
/* var t: MClass */;
7325 val
* var16
/* : nullable Object */;
7326 val
* var_table
/* var table: Array[nullable MClass] */;
7327 long var17
/* : Int */;
7328 long var19
/* : Int */;
7329 long var20
/* : Int */;
7330 short int var22
/* : Bool */;
7333 const char* var_class_name
;
7334 long var23
/* : Int */;
7335 val
* var_24
/* var : Array[nullable MClass] */;
7336 val
* var25
/* : ArrayIterator[nullable Object] */;
7337 val
* var_26
/* var : ArrayIterator[nullable MClass] */;
7338 short int var27
/* : Bool */;
7339 val
* var28
/* : nullable Object */;
7340 val
* var_e
/* var e: nullable MClass */;
7341 short int var29
/* : Bool */;
7342 short int var30
/* : Bool */;
7343 val
* var_other
/* var other: nullable Object */;
7344 short int var32
/* : Bool */;
7345 short int var34
/* : Bool */;
7346 long var35
/* : Int */;
7347 short int var37
/* : Bool */;
7350 const char* var_class_name40
;
7351 long var41
/* : Int */;
7352 val
* var44
/* : Sys */;
7353 val
* var46
/* : NativeArray[String] */;
7354 static val
* varonce45
;
7355 static val
* varonce47
;
7356 val
* var48
/* : String */;
7357 char* var49
/* : NativeString */;
7358 val
* var50
/* : FlatString */;
7359 static val
* varonce51
;
7360 val
* var52
/* : String */;
7361 char* var53
/* : NativeString */;
7362 val
* var54
/* : FlatString */;
7363 val
* var55
/* : String */;
7364 val
* var56
/* : String */;
7365 val
* var57
/* : String */;
7366 val
* var58
/* : Sys */;
7367 static val
* varonce59
;
7368 val
* var60
/* : String */;
7369 char* var61
/* : NativeString */;
7370 val
* var62
/* : FlatString */;
7371 val
* var63
/* : Sys */;
7372 static val
* varonce64
;
7373 val
* var65
/* : String */;
7374 char* var66
/* : NativeString */;
7375 val
* var67
/* : FlatString */;
7376 val
* var68
/* : Map[MClass, Array[nullable MPropDef]] */;
7377 val
* var70
/* : Map[MClass, Array[nullable MPropDef]] */;
7378 val
* var_71
/* var : Map[MClass, Array[nullable MPropDef]] */;
7379 val
* var72
/* : MapIterator[nullable Object, nullable Object] */;
7380 val
* var_73
/* var : MapIterator[MClass, Array[nullable MPropDef]] */;
7381 short int var74
/* : Bool */;
7382 val
* var75
/* : nullable Object */;
7383 val
* var_t76
/* var t: MClass */;
7384 val
* var77
/* : nullable Object */;
7385 val
* var_table78
/* var table: Array[nullable MPropDef] */;
7386 long var79
/* : Int */;
7387 long var81
/* : Int */;
7388 long var82
/* : Int */;
7389 short int var84
/* : Bool */;
7392 const char* var_class_name87
;
7393 long var88
/* : Int */;
7394 val
* var_89
/* var : Array[nullable MPropDef] */;
7395 val
* var90
/* : ArrayIterator[nullable Object] */;
7396 val
* var_91
/* var : ArrayIterator[nullable MPropDef] */;
7397 short int var92
/* : Bool */;
7398 val
* var93
/* : nullable Object */;
7399 val
* var_e94
/* var e: nullable MPropDef */;
7400 short int var95
/* : Bool */;
7401 short int var96
/* : Bool */;
7402 short int var98
/* : Bool */;
7403 short int var100
/* : Bool */;
7404 long var101
/* : Int */;
7405 short int var103
/* : Bool */;
7408 const char* var_class_name106
;
7409 long var107
/* : Int */;
7410 val
* var111
/* : Sys */;
7411 val
* var113
/* : NativeArray[String] */;
7412 static val
* varonce112
;
7413 static val
* varonce114
;
7414 val
* var115
/* : String */;
7415 char* var116
/* : NativeString */;
7416 val
* var117
/* : FlatString */;
7417 static val
* varonce118
;
7418 val
* var119
/* : String */;
7419 char* var120
/* : NativeString */;
7420 val
* var121
/* : FlatString */;
7421 val
* var122
/* : String */;
7422 val
* var123
/* : String */;
7423 val
* var124
/* : String */;
7424 val
* var125
/* : Sys */;
7425 static val
* varonce126
;
7426 val
* var127
/* : String */;
7427 char* var128
/* : NativeString */;
7428 val
* var129
/* : FlatString */;
7429 val
* var130
/* : Sys */;
7430 static val
* varonce131
;
7431 val
* var132
/* : String */;
7432 char* var133
/* : NativeString */;
7433 val
* var134
/* : FlatString */;
7434 val
* var135
/* : Map[MClass, Array[nullable MPropDef]] */;
7435 val
* var137
/* : Map[MClass, Array[nullable MPropDef]] */;
7436 val
* var_138
/* var : Map[MClass, Array[nullable MPropDef]] */;
7437 val
* var139
/* : MapIterator[nullable Object, nullable Object] */;
7438 val
* var_140
/* var : MapIterator[MClass, Array[nullable MPropDef]] */;
7439 short int var141
/* : Bool */;
7440 val
* var142
/* : nullable Object */;
7441 val
* var_t143
/* var t: MClass */;
7442 val
* var144
/* : nullable Object */;
7443 val
* var_table145
/* var table: Array[nullable MPropDef] */;
7444 long var146
/* : Int */;
7445 long var148
/* : Int */;
7446 long var149
/* : Int */;
7447 short int var151
/* : Bool */;
7450 const char* var_class_name154
;
7451 long var155
/* : Int */;
7452 val
* var_156
/* var : Array[nullable MPropDef] */;
7453 val
* var157
/* : ArrayIterator[nullable Object] */;
7454 val
* var_158
/* var : ArrayIterator[nullable MPropDef] */;
7455 short int var159
/* : Bool */;
7456 val
* var160
/* : nullable Object */;
7457 val
* var_e161
/* var e: nullable MPropDef */;
7458 short int var162
/* : Bool */;
7459 short int var163
/* : Bool */;
7460 short int var165
/* : Bool */;
7461 short int var167
/* : Bool */;
7462 long var168
/* : Int */;
7463 short int var170
/* : Bool */;
7466 const char* var_class_name173
;
7467 long var174
/* : Int */;
7468 val
* var178
/* : Sys */;
7469 val
* var180
/* : NativeArray[String] */;
7470 static val
* varonce179
;
7471 static val
* varonce181
;
7472 val
* var182
/* : String */;
7473 char* var183
/* : NativeString */;
7474 val
* var184
/* : FlatString */;
7475 static val
* varonce185
;
7476 val
* var186
/* : String */;
7477 char* var187
/* : NativeString */;
7478 val
* var188
/* : FlatString */;
7479 val
* var189
/* : String */;
7480 val
* var190
/* : String */;
7481 val
* var191
/* : String */;
7482 val
* var192
/* : Sys */;
7483 static val
* varonce193
;
7484 val
* var194
/* : String */;
7485 char* var195
/* : NativeString */;
7486 val
* var196
/* : FlatString */;
7487 val
* var197
/* : Sys */;
7488 static val
* varonce198
;
7489 val
* var199
/* : String */;
7490 char* var200
/* : NativeString */;
7491 val
* var201
/* : FlatString */;
7492 val
* var202
/* : Map[MClass, Array[nullable MProperty]] */;
7493 val
* var204
/* : Map[MClass, Array[nullable MProperty]] */;
7494 val
* var_205
/* var : Map[MClass, Array[nullable MProperty]] */;
7495 val
* var206
/* : MapIterator[nullable Object, nullable Object] */;
7496 val
* var_207
/* var : MapIterator[MClass, Array[nullable MProperty]] */;
7497 short int var208
/* : Bool */;
7498 val
* var209
/* : nullable Object */;
7499 val
* var_t210
/* var t: MClass */;
7500 val
* var211
/* : nullable Object */;
7501 val
* var_table212
/* var table: Array[nullable MProperty] */;
7502 long var213
/* : Int */;
7503 long var215
/* : Int */;
7504 long var216
/* : Int */;
7505 short int var218
/* : Bool */;
7508 const char* var_class_name221
;
7509 long var222
/* : Int */;
7510 val
* var_223
/* var : Array[nullable MProperty] */;
7511 val
* var224
/* : ArrayIterator[nullable Object] */;
7512 val
* var_225
/* var : ArrayIterator[nullable MProperty] */;
7513 short int var226
/* : Bool */;
7514 val
* var227
/* : nullable Object */;
7515 val
* var_e228
/* var e: nullable MProperty */;
7516 short int var229
/* : Bool */;
7517 short int var230
/* : Bool */;
7518 short int var232
/* : Bool */;
7519 short int var234
/* : Bool */;
7520 long var235
/* : Int */;
7521 short int var237
/* : Bool */;
7524 const char* var_class_name240
;
7525 long var241
/* : Int */;
7526 val
* var245
/* : Sys */;
7527 val
* var247
/* : NativeArray[String] */;
7528 static val
* varonce246
;
7529 static val
* varonce248
;
7530 val
* var249
/* : String */;
7531 char* var250
/* : NativeString */;
7532 val
* var251
/* : FlatString */;
7533 static val
* varonce252
;
7534 val
* var253
/* : String */;
7535 char* var254
/* : NativeString */;
7536 val
* var255
/* : FlatString */;
7537 val
* var256
/* : String */;
7538 val
* var257
/* : String */;
7539 val
* var258
/* : String */;
7541 if (likely(varonce
!=NULL
)) {
7544 var2
= "# size of subtyping tables";
7545 var3
= standard___standard__NativeString___to_s_with_length(var2
, 26l);
7550 standard__file___Sys___print(var
, var1
); /* Direct call file#Sys#print on <var:Sys>*/
7553 if (likely(varonce5
!=NULL
)) {
7556 var7
= "\ttotal \tholes";
7557 var8
= standard___standard__NativeString___to_s_with_length(var7
, 13l);
7562 standard__file___Sys___print(var4
, var6
); /* Direct call file#Sys#print on <var4:Sys>*/
7567 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables (self) on <self:SeparateErasureCompiler> */
7568 var11
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
; /* _class_tables on <self:SeparateErasureCompiler> */
7569 if (unlikely(var11
== NULL
)) {
7570 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables");
7571 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 427);
7575 RET_LABEL10
:(void)0;
7580 var12
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__MapRead__iterator
]))(var_
); /* iterator on <var_:Map[MClass, Array[nullable MClass]]>*/
7585 var14
= ((short int(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__is_ok
]))(var_13
); /* is_ok on <var_13:MapIterator[MClass, Array[nullable MClass]]>*/
7589 var15
= ((val
*(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__key
]))(var_13
); /* key on <var_13:MapIterator[MClass, Array[nullable MClass]]>*/
7593 var16
= ((val
*(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__item
]))(var_13
); /* item on <var_13:MapIterator[MClass, Array[nullable MClass]]>*/
7597 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MClass]> */
7598 var19
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MClass]> */
7600 RET_LABEL18
:(void)0;
7604 { /* Inline kernel#Int#+ (var_total,var17) on <var_total:Int> */
7605 /* Covariant cast for argument 0 (i) <var17:Int> isa OTHER */
7606 /* <var17:Int> isa OTHER */
7607 var22
= 1; /* easy <var17:Int> isa OTHER*/
7608 if (unlikely(!var22
)) {
7609 var_class_name
= type_standard__Int
.name
;
7610 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
7611 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
7614 var23
= var_total
+ var17
;
7617 RET_LABEL21
:(void)0;
7623 var25
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_24
);
7628 var27
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_26
);
7632 var28
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_26
);
7635 if (var_e
== NULL
) {
7636 var29
= 1; /* is null */
7638 var29
= 0; /* arg is null but recv is not */
7641 { /* Inline kernel#Object#== (var_e,((val*)NULL)) on <var_e:nullable MClass> */
7642 var_other
= ((val
*)NULL
);
7644 { /* Inline kernel#Object#is_same_instance (var_e,var_other) on <var_e:nullable MClass(MClass)> */
7645 var34
= var_e
== var_other
;
7648 RET_LABEL33
:(void)0;
7653 RET_LABEL31
:(void)0;
7659 { /* Inline kernel#Int#+ (var_holes,1l) on <var_holes:Int> */
7660 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7661 /* <1l:Int> isa OTHER */
7662 var37
= 1; /* easy <1l:Int> isa OTHER*/
7663 if (unlikely(!var37
)) {
7664 var_class_name40
= type_standard__Int
.name
;
7665 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40
);
7666 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
7669 var41
= var_holes
+ 1l;
7672 RET_LABEL36
:(void)0;
7679 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_26
); /* Direct call array#ArrayIterator#next on <var_26:ArrayIterator[nullable MClass]>*/
7685 BREAK_label
: (void)0;
7687 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_26
); /* Direct call array#ArrayIterator#finish on <var_26:ArrayIterator[nullable MClass]>*/
7690 ((void(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__next
]))(var_13
); /* next on <var_13:MapIterator[MClass, Array[nullable MClass]]>*/
7696 BREAK_label42
: (void)0;
7698 { /* Inline abstract_collection#MapIterator#finish (var_13) on <var_13:MapIterator[MClass, Array[nullable MClass]]> */
7699 RET_LABEL43
:(void)0;
7703 if (unlikely(varonce45
==NULL
)) {
7704 var46
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
7705 if (likely(varonce47
!=NULL
)) {
7709 var50
= standard___standard__NativeString___to_s_with_length(var49
, 1l);
7713 ((struct instance_standard__NativeArray
*)var46
)->values
[0]=var48
;
7714 if (likely(varonce51
!=NULL
)) {
7718 var54
= standard___standard__NativeString___to_s_with_length(var53
, 1l);
7722 ((struct instance_standard__NativeArray
*)var46
)->values
[2]=var52
;
7727 var55
= standard__string___Int___Object__to_s(var_total
);
7728 ((struct instance_standard__NativeArray
*)var46
)->values
[1]=var55
;
7729 var56
= standard__string___Int___Object__to_s(var_holes
);
7730 ((struct instance_standard__NativeArray
*)var46
)->values
[3]=var56
;
7732 var57
= ((val
*(*)(val
* self
))(var46
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var46
); /* native_to_s on <var46:NativeArray[String]>*/
7736 standard__file___Sys___print(var44
, var57
); /* Direct call file#Sys#print on <var44:Sys>*/
7739 if (likely(varonce59
!=NULL
)) {
7742 var61
= "# size of resolution tables";
7743 var62
= standard___standard__NativeString___to_s_with_length(var61
, 27l);
7748 standard__file___Sys___print(var58
, var60
); /* Direct call file#Sys#print on <var58:Sys>*/
7751 if (likely(varonce64
!=NULL
)) {
7754 var66
= "\ttotal \tholes";
7755 var67
= standard___standard__NativeString___to_s_with_length(var66
, 13l);
7760 standard__file___Sys___print(var63
, var65
); /* Direct call file#Sys#print on <var63:Sys>*/
7765 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on <self:SeparateErasureCompiler> */
7766 var70
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
7767 if (unlikely(var70
== NULL
)) {
7768 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
7769 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 428);
7773 RET_LABEL69
:(void)0;
7778 var72
= ((val
*(*)(val
* self
))((((long)var_71
&3)?class_info
[((long)var_71
&3)]:var_71
->class)->vft
[COLOR_standard__abstract_collection__MapRead__iterator
]))(var_71
); /* iterator on <var_71:Map[MClass, Array[nullable MPropDef]]>*/
7783 var74
= ((short int(*)(val
* self
))((((long)var_73
&3)?class_info
[((long)var_73
&3)]:var_73
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__is_ok
]))(var_73
); /* is_ok on <var_73:MapIterator[MClass, Array[nullable MPropDef]]>*/
7787 var75
= ((val
*(*)(val
* self
))((((long)var_73
&3)?class_info
[((long)var_73
&3)]:var_73
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__key
]))(var_73
); /* key on <var_73:MapIterator[MClass, Array[nullable MPropDef]]>*/
7791 var77
= ((val
*(*)(val
* self
))((((long)var_73
&3)?class_info
[((long)var_73
&3)]:var_73
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__item
]))(var_73
); /* item on <var_73:MapIterator[MClass, Array[nullable MPropDef]]>*/
7793 var_table78
= var77
;
7795 { /* Inline array#AbstractArrayRead#length (var_table78) on <var_table78:Array[nullable MPropDef]> */
7796 var81
= var_table78
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table78:Array[nullable MPropDef]> */
7798 RET_LABEL80
:(void)0;
7802 { /* Inline kernel#Int#+ (var_total,var79) on <var_total:Int> */
7803 /* Covariant cast for argument 0 (i) <var79:Int> isa OTHER */
7804 /* <var79:Int> isa OTHER */
7805 var84
= 1; /* easy <var79:Int> isa OTHER*/
7806 if (unlikely(!var84
)) {
7807 var_class_name87
= type_standard__Int
.name
;
7808 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name87
);
7809 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
7812 var88
= var_total
+ var79
;
7815 RET_LABEL83
:(void)0;
7819 var_89
= var_table78
;
7821 var90
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_89
);
7826 var92
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_91
);
7830 var93
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_91
);
7833 if (var_e94
== NULL
) {
7834 var95
= 1; /* is null */
7836 var95
= 0; /* arg is null but recv is not */
7839 { /* Inline kernel#Object#== (var_e94,((val*)NULL)) on <var_e94:nullable MPropDef> */
7840 var_other
= ((val
*)NULL
);
7842 { /* Inline kernel#Object#is_same_instance (var_e94,var_other) on <var_e94:nullable MPropDef(MPropDef)> */
7843 var100
= var_e94
== var_other
;
7846 RET_LABEL99
:(void)0;
7851 RET_LABEL97
:(void)0;
7857 { /* Inline kernel#Int#+ (var_holes,1l) on <var_holes:Int> */
7858 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
7859 /* <1l:Int> isa OTHER */
7860 var103
= 1; /* easy <1l:Int> isa OTHER*/
7861 if (unlikely(!var103
)) {
7862 var_class_name106
= type_standard__Int
.name
;
7863 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name106
);
7864 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
7867 var107
= var_holes
+ 1l;
7870 RET_LABEL102
:(void)0;
7877 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_91
); /* Direct call array#ArrayIterator#next on <var_91:ArrayIterator[nullable MPropDef]>*/
7880 goto BREAK_label108
;
7883 BREAK_label108
: (void)0;
7885 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_91
); /* Direct call array#ArrayIterator#finish on <var_91:ArrayIterator[nullable MPropDef]>*/
7888 ((void(*)(val
* self
))((((long)var_73
&3)?class_info
[((long)var_73
&3)]:var_73
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__next
]))(var_73
); /* next on <var_73:MapIterator[MClass, Array[nullable MPropDef]]>*/
7891 goto BREAK_label109
;
7894 BREAK_label109
: (void)0;
7896 { /* Inline abstract_collection#MapIterator#finish (var_73) on <var_73:MapIterator[MClass, Array[nullable MPropDef]]> */
7897 RET_LABEL110
:(void)0;
7901 if (unlikely(varonce112
==NULL
)) {
7902 var113
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
7903 if (likely(varonce114
!=NULL
)) {
7904 var115
= varonce114
;
7907 var117
= standard___standard__NativeString___to_s_with_length(var116
, 1l);
7909 varonce114
= var115
;
7911 ((struct instance_standard__NativeArray
*)var113
)->values
[0]=var115
;
7912 if (likely(varonce118
!=NULL
)) {
7913 var119
= varonce118
;
7916 var121
= standard___standard__NativeString___to_s_with_length(var120
, 1l);
7918 varonce118
= var119
;
7920 ((struct instance_standard__NativeArray
*)var113
)->values
[2]=var119
;
7922 var113
= varonce112
;
7925 var122
= standard__string___Int___Object__to_s(var_total
);
7926 ((struct instance_standard__NativeArray
*)var113
)->values
[1]=var122
;
7927 var123
= standard__string___Int___Object__to_s(var_holes
);
7928 ((struct instance_standard__NativeArray
*)var113
)->values
[3]=var123
;
7930 var124
= ((val
*(*)(val
* self
))(var113
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var113
); /* native_to_s on <var113:NativeArray[String]>*/
7932 varonce112
= var113
;
7934 standard__file___Sys___print(var111
, var124
); /* Direct call file#Sys#print on <var111:Sys>*/
7937 if (likely(varonce126
!=NULL
)) {
7938 var127
= varonce126
;
7940 var128
= "# size of methods tables";
7941 var129
= standard___standard__NativeString___to_s_with_length(var128
, 24l);
7943 varonce126
= var127
;
7946 standard__file___Sys___print(var125
, var127
); /* Direct call file#Sys#print on <var125:Sys>*/
7949 if (likely(varonce131
!=NULL
)) {
7950 var132
= varonce131
;
7952 var133
= "\ttotal \tholes";
7953 var134
= standard___standard__NativeString___to_s_with_length(var133
, 13l);
7955 varonce131
= var132
;
7958 standard__file___Sys___print(var130
, var132
); /* Direct call file#Sys#print on <var130:Sys>*/
7963 { /* Inline separate_compiler#SeparateCompiler#method_tables (self) on <self:SeparateErasureCompiler> */
7964 var137
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___method_tables
].val
; /* _method_tables on <self:SeparateErasureCompiler> */
7965 if (unlikely(var137
== NULL
)) {
7966 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
7967 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 1053);
7971 RET_LABEL136
:(void)0;
7976 var139
= ((val
*(*)(val
* self
))((((long)var_138
&3)?class_info
[((long)var_138
&3)]:var_138
->class)->vft
[COLOR_standard__abstract_collection__MapRead__iterator
]))(var_138
); /* iterator on <var_138:Map[MClass, Array[nullable MPropDef]]>*/
7981 var141
= ((short int(*)(val
* self
))((((long)var_140
&3)?class_info
[((long)var_140
&3)]:var_140
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__is_ok
]))(var_140
); /* is_ok on <var_140:MapIterator[MClass, Array[nullable MPropDef]]>*/
7985 var142
= ((val
*(*)(val
* self
))((((long)var_140
&3)?class_info
[((long)var_140
&3)]:var_140
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__key
]))(var_140
); /* key on <var_140:MapIterator[MClass, Array[nullable MPropDef]]>*/
7989 var144
= ((val
*(*)(val
* self
))((((long)var_140
&3)?class_info
[((long)var_140
&3)]:var_140
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__item
]))(var_140
); /* item on <var_140:MapIterator[MClass, Array[nullable MPropDef]]>*/
7991 var_table145
= var144
;
7993 { /* Inline array#AbstractArrayRead#length (var_table145) on <var_table145:Array[nullable MPropDef]> */
7994 var148
= var_table145
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table145:Array[nullable MPropDef]> */
7996 RET_LABEL147
:(void)0;
8000 { /* Inline kernel#Int#+ (var_total,var146) on <var_total:Int> */
8001 /* Covariant cast for argument 0 (i) <var146:Int> isa OTHER */
8002 /* <var146:Int> isa OTHER */
8003 var151
= 1; /* easy <var146:Int> isa OTHER*/
8004 if (unlikely(!var151
)) {
8005 var_class_name154
= type_standard__Int
.name
;
8006 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name154
);
8007 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
8010 var155
= var_total
+ var146
;
8013 RET_LABEL150
:(void)0;
8017 var_156
= var_table145
;
8019 var157
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_156
);
8024 var159
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_158
);
8028 var160
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_158
);
8031 if (var_e161
== NULL
) {
8032 var162
= 1; /* is null */
8034 var162
= 0; /* arg is null but recv is not */
8037 { /* Inline kernel#Object#== (var_e161,((val*)NULL)) on <var_e161:nullable MPropDef> */
8038 var_other
= ((val
*)NULL
);
8040 { /* Inline kernel#Object#is_same_instance (var_e161,var_other) on <var_e161:nullable MPropDef(MPropDef)> */
8041 var167
= var_e161
== var_other
;
8044 RET_LABEL166
:(void)0;
8049 RET_LABEL164
:(void)0;
8055 { /* Inline kernel#Int#+ (var_holes,1l) on <var_holes:Int> */
8056 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
8057 /* <1l:Int> isa OTHER */
8058 var170
= 1; /* easy <1l:Int> isa OTHER*/
8059 if (unlikely(!var170
)) {
8060 var_class_name173
= type_standard__Int
.name
;
8061 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name173
);
8062 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
8065 var174
= var_holes
+ 1l;
8068 RET_LABEL169
:(void)0;
8075 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_158
); /* Direct call array#ArrayIterator#next on <var_158:ArrayIterator[nullable MPropDef]>*/
8078 goto BREAK_label175
;
8081 BREAK_label175
: (void)0;
8083 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_158
); /* Direct call array#ArrayIterator#finish on <var_158:ArrayIterator[nullable MPropDef]>*/
8086 ((void(*)(val
* self
))((((long)var_140
&3)?class_info
[((long)var_140
&3)]:var_140
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__next
]))(var_140
); /* next on <var_140:MapIterator[MClass, Array[nullable MPropDef]]>*/
8089 goto BREAK_label176
;
8092 BREAK_label176
: (void)0;
8094 { /* Inline abstract_collection#MapIterator#finish (var_140) on <var_140:MapIterator[MClass, Array[nullable MPropDef]]> */
8095 RET_LABEL177
:(void)0;
8099 if (unlikely(varonce179
==NULL
)) {
8100 var180
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
8101 if (likely(varonce181
!=NULL
)) {
8102 var182
= varonce181
;
8105 var184
= standard___standard__NativeString___to_s_with_length(var183
, 1l);
8107 varonce181
= var182
;
8109 ((struct instance_standard__NativeArray
*)var180
)->values
[0]=var182
;
8110 if (likely(varonce185
!=NULL
)) {
8111 var186
= varonce185
;
8114 var188
= standard___standard__NativeString___to_s_with_length(var187
, 1l);
8116 varonce185
= var186
;
8118 ((struct instance_standard__NativeArray
*)var180
)->values
[2]=var186
;
8120 var180
= varonce179
;
8123 var189
= standard__string___Int___Object__to_s(var_total
);
8124 ((struct instance_standard__NativeArray
*)var180
)->values
[1]=var189
;
8125 var190
= standard__string___Int___Object__to_s(var_holes
);
8126 ((struct instance_standard__NativeArray
*)var180
)->values
[3]=var190
;
8128 var191
= ((val
*(*)(val
* self
))(var180
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var180
); /* native_to_s on <var180:NativeArray[String]>*/
8130 varonce179
= var180
;
8132 standard__file___Sys___print(var178
, var191
); /* Direct call file#Sys#print on <var178:Sys>*/
8135 if (likely(varonce193
!=NULL
)) {
8136 var194
= varonce193
;
8138 var195
= "# size of attributes tables";
8139 var196
= standard___standard__NativeString___to_s_with_length(var195
, 27l);
8141 varonce193
= var194
;
8144 standard__file___Sys___print(var192
, var194
); /* Direct call file#Sys#print on <var192:Sys>*/
8147 if (likely(varonce198
!=NULL
)) {
8148 var199
= varonce198
;
8150 var200
= "\ttotal \tholes";
8151 var201
= standard___standard__NativeString___to_s_with_length(var200
, 13l);
8153 varonce198
= var199
;
8156 standard__file___Sys___print(var197
, var199
); /* Direct call file#Sys#print on <var197:Sys>*/
8161 { /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on <self:SeparateErasureCompiler> */
8162 var204
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___attr_tables
].val
; /* _attr_tables on <self:SeparateErasureCompiler> */
8163 if (unlikely(var204
== NULL
)) {
8164 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
8165 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 1054);
8169 RET_LABEL203
:(void)0;
8174 var206
= ((val
*(*)(val
* self
))((((long)var_205
&3)?class_info
[((long)var_205
&3)]:var_205
->class)->vft
[COLOR_standard__abstract_collection__MapRead__iterator
]))(var_205
); /* iterator on <var_205:Map[MClass, Array[nullable MProperty]]>*/
8179 var208
= ((short int(*)(val
* self
))((((long)var_207
&3)?class_info
[((long)var_207
&3)]:var_207
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__is_ok
]))(var_207
); /* is_ok on <var_207:MapIterator[MClass, Array[nullable MProperty]]>*/
8183 var209
= ((val
*(*)(val
* self
))((((long)var_207
&3)?class_info
[((long)var_207
&3)]:var_207
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__key
]))(var_207
); /* key on <var_207:MapIterator[MClass, Array[nullable MProperty]]>*/
8187 var211
= ((val
*(*)(val
* self
))((((long)var_207
&3)?class_info
[((long)var_207
&3)]:var_207
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__item
]))(var_207
); /* item on <var_207:MapIterator[MClass, Array[nullable MProperty]]>*/
8189 var_table212
= var211
;
8191 { /* Inline array#AbstractArrayRead#length (var_table212) on <var_table212:Array[nullable MProperty]> */
8192 var215
= var_table212
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table212:Array[nullable MProperty]> */
8194 RET_LABEL214
:(void)0;
8198 { /* Inline kernel#Int#+ (var_total,var213) on <var_total:Int> */
8199 /* Covariant cast for argument 0 (i) <var213:Int> isa OTHER */
8200 /* <var213:Int> isa OTHER */
8201 var218
= 1; /* easy <var213:Int> isa OTHER*/
8202 if (unlikely(!var218
)) {
8203 var_class_name221
= type_standard__Int
.name
;
8204 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name221
);
8205 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
8208 var222
= var_total
+ var213
;
8211 RET_LABEL217
:(void)0;
8215 var_223
= var_table212
;
8217 var224
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_223
);
8222 var226
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_225
);
8226 var227
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_225
);
8229 if (var_e228
== NULL
) {
8230 var229
= 1; /* is null */
8232 var229
= 0; /* arg is null but recv is not */
8235 { /* Inline kernel#Object#== (var_e228,((val*)NULL)) on <var_e228:nullable MProperty> */
8236 var_other
= ((val
*)NULL
);
8238 { /* Inline kernel#Object#is_same_instance (var_e228,var_other) on <var_e228:nullable MProperty(MProperty)> */
8239 var234
= var_e228
== var_other
;
8242 RET_LABEL233
:(void)0;
8247 RET_LABEL231
:(void)0;
8253 { /* Inline kernel#Int#+ (var_holes,1l) on <var_holes:Int> */
8254 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
8255 /* <1l:Int> isa OTHER */
8256 var237
= 1; /* easy <1l:Int> isa OTHER*/
8257 if (unlikely(!var237
)) {
8258 var_class_name240
= type_standard__Int
.name
;
8259 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name240
);
8260 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
8263 var241
= var_holes
+ 1l;
8266 RET_LABEL236
:(void)0;
8273 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_225
); /* Direct call array#ArrayIterator#next on <var_225:ArrayIterator[nullable MProperty]>*/
8276 goto BREAK_label242
;
8279 BREAK_label242
: (void)0;
8281 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_225
); /* Direct call array#ArrayIterator#finish on <var_225:ArrayIterator[nullable MProperty]>*/
8284 ((void(*)(val
* self
))((((long)var_207
&3)?class_info
[((long)var_207
&3)]:var_207
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__next
]))(var_207
); /* next on <var_207:MapIterator[MClass, Array[nullable MProperty]]>*/
8287 goto BREAK_label243
;
8290 BREAK_label243
: (void)0;
8292 { /* Inline abstract_collection#MapIterator#finish (var_207) on <var_207:MapIterator[MClass, Array[nullable MProperty]]> */
8293 RET_LABEL244
:(void)0;
8297 if (unlikely(varonce246
==NULL
)) {
8298 var247
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
8299 if (likely(varonce248
!=NULL
)) {
8300 var249
= varonce248
;
8303 var251
= standard___standard__NativeString___to_s_with_length(var250
, 1l);
8305 varonce248
= var249
;
8307 ((struct instance_standard__NativeArray
*)var247
)->values
[0]=var249
;
8308 if (likely(varonce252
!=NULL
)) {
8309 var253
= varonce252
;
8312 var255
= standard___standard__NativeString___to_s_with_length(var254
, 1l);
8314 varonce252
= var253
;
8316 ((struct instance_standard__NativeArray
*)var247
)->values
[2]=var253
;
8318 var247
= varonce246
;
8321 var256
= standard__string___Int___Object__to_s(var_total
);
8322 ((struct instance_standard__NativeArray
*)var247
)->values
[1]=var256
;
8323 var257
= standard__string___Int___Object__to_s(var_holes
);
8324 ((struct instance_standard__NativeArray
*)var247
)->values
[3]=var257
;
8326 var258
= ((val
*(*)(val
* self
))(var247
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var247
); /* native_to_s on <var247:NativeArray[String]>*/
8328 varonce246
= var247
;
8330 standard__file___Sys___print(var245
, var258
); /* Direct call file#Sys#print on <var245:Sys>*/
8334 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#compile_callsite for (self: SeparateErasureCompilerVisitor, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
8335 val
* nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite(val
* self
, val
* p0
, val
* p1
) {
8336 val
* var
/* : nullable RuntimeVariable */;
8337 val
* var_callsite
/* var callsite: CallSite */;
8338 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
8339 val
* var1
/* : nullable RuntimeVariable */;
8340 val
* var_res
/* var res: nullable RuntimeVariable */;
8341 short int var2
/* : Bool */;
8342 short int var3
/* : Bool */;
8343 short int var5
/* : Bool */;
8344 short int var_
/* var : Bool */;
8345 val
* var6
/* : AbstractCompiler */;
8346 val
* var8
/* : AbstractCompiler */;
8347 short int var9
/* : Bool */;
8350 const char* var_class_name
;
8351 val
* var10
/* : ModelBuilder */;
8352 val
* var12
/* : ModelBuilder */;
8353 val
* var13
/* : ToolContext */;
8354 val
* var15
/* : ToolContext */;
8355 val
* var16
/* : OptionBool */;
8356 val
* var18
/* : OptionBool */;
8357 val
* var19
/* : nullable Object */;
8358 val
* var21
/* : nullable Object */;
8359 short int var22
/* : Bool */;
8360 short int var23
/* : Bool */;
8361 short int var24
/* : Bool */;
8362 short int var25
/* : Bool */;
8363 val
* var_other
/* var other: nullable Object */;
8364 short int var27
/* : Bool */;
8365 short int var28
/* : Bool */;
8366 val
* var29
/* : MSignature */;
8367 val
* var31
/* : MSignature */;
8368 val
* var32
/* : nullable MType */;
8369 val
* var34
/* : nullable MType */;
8370 val
* var_mtype
/* var mtype: nullable MType */;
8371 short int var35
/* : Bool */;
8372 short int var36
/* : Bool */;
8373 short int var38
/* : Bool */;
8374 short int var39
/* : Bool */;
8375 val
* var40
/* : NativeArray[String] */;
8376 static val
* varonce
;
8377 static val
* varonce41
;
8378 val
* var42
/* : String */;
8379 char* var43
/* : NativeString */;
8380 val
* var44
/* : FlatString */;
8381 static val
* varonce45
;
8382 val
* var46
/* : String */;
8383 char* var47
/* : NativeString */;
8384 val
* var48
/* : FlatString */;
8385 static val
* varonce49
;
8386 val
* var50
/* : String */;
8387 char* var51
/* : NativeString */;
8388 val
* var52
/* : FlatString */;
8389 val
* var53
/* : String */;
8390 val
* var54
/* : String */;
8391 val
* var55
/* : String */;
8392 static val
* varonce56
;
8393 val
* var57
/* : String */;
8394 char* var58
/* : NativeString */;
8395 val
* var59
/* : FlatString */;
8396 val
* var60
/* : RuntimeVariable */;
8397 val
* var_cond
/* var cond: RuntimeVariable */;
8398 val
* var62
/* : NativeArray[String] */;
8399 static val
* varonce61
;
8400 static val
* varonce63
;
8401 val
* var64
/* : String */;
8402 char* var65
/* : NativeString */;
8403 val
* var66
/* : FlatString */;
8404 static val
* varonce67
;
8405 val
* var68
/* : String */;
8406 char* var69
/* : NativeString */;
8407 val
* var70
/* : FlatString */;
8408 val
* var71
/* : String */;
8409 val
* var72
/* : String */;
8410 static val
* varonce73
;
8411 val
* var74
/* : String */;
8412 char* var75
/* : NativeString */;
8413 val
* var76
/* : FlatString */;
8414 static val
* varonce77
;
8415 val
* var78
/* : String */;
8416 char* var79
/* : NativeString */;
8417 val
* var80
/* : FlatString */;
8421 var1
= ((val
*(*)(val
* self
, val
* p0
, val
* p1
))(self
->class->vft
[COLOR_nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite
]))(self
, p0
, p1
); /* compile_callsite on <self:SeparateErasureCompilerVisitor>*/
8425 { /* Inline typing#CallSite#erasure_cast (var_callsite) on <var_callsite:CallSite> */
8426 var5
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___erasure_cast
].s
; /* _erasure_cast on <var_callsite:CallSite> */
8434 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
8435 var8
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
8436 if (unlikely(var8
== NULL
)) {
8437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
8438 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1102);
8445 /* <var6:AbstractCompiler(SeparateCompiler)> isa SeparateErasureCompiler */
8446 cltype
= type_nit__SeparateErasureCompiler
.color
;
8447 idtype
= type_nit__SeparateErasureCompiler
.id
;
8448 if(cltype
>= var6
->type
->table_size
) {
8451 var9
= var6
->type
->type_table
[cltype
] == idtype
;
8453 if (unlikely(!var9
)) {
8454 var_class_name
= var6
== NULL ?
"null" : var6
->type
->name
;
8455 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SeparateErasureCompiler", var_class_name
);
8456 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 480);
8460 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var6) on <var6:SeparateCompiler(SeparateErasureCompiler)> */
8461 var12
= var6
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var6:SeparateCompiler(SeparateErasureCompiler)> */
8462 if (unlikely(var12
== NULL
)) {
8463 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
8464 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 522);
8468 RET_LABEL11
:(void)0;
8472 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var10) on <var10:ModelBuilder> */
8473 var15
= var10
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var10:ModelBuilder> */
8474 if (unlikely(var15
== NULL
)) {
8475 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
8476 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
8480 RET_LABEL14
:(void)0;
8484 { /* Inline separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast (var13) on <var13:ToolContext> */
8485 var18
= var13
->attrs
[COLOR_nit__separate_erasure_compiler__ToolContext___opt_no_check_erasure_cast
].val
; /* _opt_no_check_erasure_cast on <var13:ToolContext> */
8486 if (unlikely(var18
== NULL
)) {
8487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast");
8488 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 26);
8492 RET_LABEL17
:(void)0;
8496 { /* Inline opts#Option#value (var16) on <var16:OptionBool> */
8497 var21
= var16
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var16:OptionBool> */
8499 RET_LABEL20
:(void)0;
8502 var22
= (short int)((long)(var19
)>>2);
8509 if (var_res
== NULL
) {
8510 var24
= 0; /* is null */
8512 var24
= 1; /* arg is null and recv is not */
8515 { /* Inline kernel#Object#!= (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
8516 var_other
= ((val
*)NULL
);
8518 var27
= ((short int(*)(val
* self
, val
* p0
))(var_res
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_res
, var_other
); /* == on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
8523 RET_LABEL26
:(void)0;
8527 if (unlikely(!var24
)) {
8528 PRINT_ERROR("Runtime error: %s", "Assert failed");
8529 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 481);
8533 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:CallSite> */
8534 var31
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
; /* _msignature on <var_callsite:CallSite> */
8535 if (unlikely(var31
== NULL
)) {
8536 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
8537 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 631);
8541 RET_LABEL30
:(void)0;
8545 { /* Inline model#MSignature#return_mtype (var29) on <var29:MSignature> */
8546 var34
= var29
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var29:MSignature> */
8548 RET_LABEL33
:(void)0;
8552 if (var_mtype
== NULL
) {
8553 var35
= 0; /* is null */
8555 var35
= 1; /* arg is null and recv is not */
8558 { /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
8559 var_other
= ((val
*)NULL
);
8561 var38
= ((short int(*)(val
* self
, val
* p0
))(var_mtype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mtype
, var_other
); /* == on <var_mtype:nullable MType(MType)>*/
8566 RET_LABEL37
:(void)0;
8570 if (unlikely(!var35
)) {
8571 PRINT_ERROR("Runtime error: %s", "Assert failed");
8572 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 483);
8575 if (unlikely(varonce
==NULL
)) {
8576 var40
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
8577 if (likely(varonce41
!=NULL
)) {
8580 var43
= "/* Erasure cast for return ";
8581 var44
= standard___standard__NativeString___to_s_with_length(var43
, 27l);
8585 ((struct instance_standard__NativeArray
*)var40
)->values
[0]=var42
;
8586 if (likely(varonce45
!=NULL
)) {
8590 var48
= standard___standard__NativeString___to_s_with_length(var47
, 5l);
8594 ((struct instance_standard__NativeArray
*)var40
)->values
[2]=var46
;
8595 if (likely(varonce49
!=NULL
)) {
8599 var52
= standard___standard__NativeString___to_s_with_length(var51
, 3l);
8603 ((struct instance_standard__NativeArray
*)var40
)->values
[4]=var50
;
8609 var53
= ((val
*(*)(val
* self
))(var_res
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_res
); /* to_s on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
8611 ((struct instance_standard__NativeArray
*)var40
)->values
[1]=var53
;
8613 var54
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:nullable MType(MType)>*/
8615 ((struct instance_standard__NativeArray
*)var40
)->values
[3]=var54
;
8617 var55
= ((val
*(*)(val
* self
))(var40
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var40
); /* native_to_s on <var40:NativeArray[String]>*/
8621 nit___nit__AbstractCompilerVisitor___add(self
, var55
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
8623 if (likely(varonce56
!=NULL
)) {
8627 var59
= standard___standard__NativeString___to_s_with_length(var58
, 7l);
8632 var60
= nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__type_test(self
, var_res
, var_mtype
, var57
);
8635 if (unlikely(varonce61
==NULL
)) {
8636 var62
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
8637 if (likely(varonce63
!=NULL
)) {
8641 var66
= standard___standard__NativeString___to_s_with_length(var65
, 5l);
8645 ((struct instance_standard__NativeArray
*)var62
)->values
[0]=var64
;
8646 if (likely(varonce67
!=NULL
)) {
8650 var70
= standard___standard__NativeString___to_s_with_length(var69
, 3l);
8654 ((struct instance_standard__NativeArray
*)var62
)->values
[2]=var68
;
8660 var71
= ((val
*(*)(val
* self
))(var_cond
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_cond
); /* to_s on <var_cond:RuntimeVariable>*/
8662 ((struct instance_standard__NativeArray
*)var62
)->values
[1]=var71
;
8664 var72
= ((val
*(*)(val
* self
))(var62
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var62
); /* native_to_s on <var62:NativeArray[String]>*/
8668 nit___nit__AbstractCompilerVisitor___add(self
, var72
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
8670 if (likely(varonce73
!=NULL
)) {
8673 var75
= "Cast failed";
8674 var76
= standard___standard__NativeString___to_s_with_length(var75
, 11l);
8679 nit___nit__AbstractCompilerVisitor___add_abort(self
, var74
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <self:SeparateErasureCompilerVisitor>*/
8681 if (likely(varonce77
!=NULL
)) {
8685 var80
= standard___standard__NativeString___to_s_with_length(var79
, 1l);
8690 nit___nit__AbstractCompilerVisitor___add(self
, var78
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
8699 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#init_instance for (self: SeparateErasureCompilerVisitor, MClassType): RuntimeVariable */
8700 val
* nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__init_instance(val
* self
, val
* p0
) {
8701 val
* var
/* : RuntimeVariable */;
8702 val
* var_mtype
/* var mtype: MClassType */;
8703 val
* var1
/* : NativeArray[String] */;
8704 static val
* varonce
;
8705 static val
* varonce2
;
8706 val
* var3
/* : String */;
8707 char* var4
/* : NativeString */;
8708 val
* var5
/* : FlatString */;
8709 val
* var6
/* : MClass */;
8710 val
* var8
/* : MClass */;
8711 val
* var9
/* : String */;
8712 val
* var10
/* : String */;
8713 val
* var12
/* : NativeArray[String] */;
8714 static val
* varonce11
;
8715 static val
* varonce13
;
8716 val
* var14
/* : String */;
8717 char* var15
/* : NativeString */;
8718 val
* var16
/* : FlatString */;
8719 static val
* varonce17
;
8720 val
* var18
/* : String */;
8721 char* var19
/* : NativeString */;
8722 val
* var20
/* : FlatString */;
8723 val
* var21
/* : MClass */;
8724 val
* var23
/* : MClass */;
8725 val
* var24
/* : String */;
8726 val
* var25
/* : String */;
8727 val
* var26
/* : RuntimeVariable */;
8729 if (unlikely(varonce
==NULL
)) {
8730 var1
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
8731 if (likely(varonce2
!=NULL
)) {
8735 var5
= standard___standard__NativeString___to_s_with_length(var4
, 4l);
8739 ((struct instance_standard__NativeArray
*)var1
)->values
[0]=var3
;
8745 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
8746 var8
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
8747 if (unlikely(var8
== NULL
)) {
8748 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8749 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
8757 var9
= nit___nit__MClass___nit__model_base__MEntity__c_name(var6
);
8759 ((struct instance_standard__NativeArray
*)var1
)->values
[1]=var9
;
8761 var10
= ((val
*(*)(val
* self
))(var1
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var1
); /* native_to_s on <var1:NativeArray[String]>*/
8765 nit___nit__AbstractCompilerVisitor___require_declaration(self
, var10
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
8767 if (unlikely(varonce11
==NULL
)) {
8768 var12
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
8769 if (likely(varonce13
!=NULL
)) {
8773 var16
= standard___standard__NativeString___to_s_with_length(var15
, 4l);
8777 ((struct instance_standard__NativeArray
*)var12
)->values
[0]=var14
;
8778 if (likely(varonce17
!=NULL
)) {
8782 var20
= standard___standard__NativeString___to_s_with_length(var19
, 2l);
8786 ((struct instance_standard__NativeArray
*)var12
)->values
[2]=var18
;
8792 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
8793 var23
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
8794 if (unlikely(var23
== NULL
)) {
8795 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8796 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
8800 RET_LABEL22
:(void)0;
8804 var24
= nit___nit__MClass___nit__model_base__MEntity__c_name(var21
);
8806 ((struct instance_standard__NativeArray
*)var12
)->values
[1]=var24
;
8808 var25
= ((val
*(*)(val
* self
))(var12
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var12
); /* native_to_s on <var12:NativeArray[String]>*/
8812 var26
= nit___nit__AbstractCompilerVisitor___new_expr(self
, var25
, var_mtype
);