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 long var13
/* : Int */;
56 val
* var14
/* : NativeArray[Option] */;
58 ((void (*)(val
* self
))(self
->class->vft
[COLOR_nit__separate_erasure_compiler___ToolContext___standard__kernel__Object__init
]))(self
) /* init on <self:ToolContext>*/;
61 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
62 var2
= self
->attrs
[COLOR_nit__toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
63 if (unlikely(var2
== NULL
)) {
64 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
65 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext
, 270);
73 { /* Inline separate_erasure_compiler#ToolContext#opt_erasure (self) on <self:ToolContext> */
74 var5
= self
->attrs
[COLOR_nit__separate_erasure_compiler__ToolContext___opt_erasure
].val
; /* _opt_erasure on <self:ToolContext> */
75 if (unlikely(var5
== NULL
)) {
76 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_erasure");
77 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 22);
85 { /* Inline separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast (self) on <self:ToolContext> */
86 var8
= self
->attrs
[COLOR_nit__separate_erasure_compiler__ToolContext___opt_no_check_erasure_cast
].val
; /* _opt_no_check_erasure_cast on <self:ToolContext> */
87 if (unlikely(var8
== NULL
)) {
88 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast");
89 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 26);
97 { /* Inline separate_erasure_compiler#ToolContext#opt_rta (self) on <self:ToolContext> */
98 var11
= self
->attrs
[COLOR_nit__separate_erasure_compiler__ToolContext___opt_rta
].val
; /* _opt_rta on <self:ToolContext> */
99 if (unlikely(var11
== NULL
)) {
100 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_rta");
101 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 24);
108 var12
= NEW_standard__Array(&type_standard__Array__opts__Option
);
109 { /* var12 = array_instance Array[Option] */
111 var14
= NEW_standard__NativeArray(var13
, &type_standard__NativeArray__opts__Option
);
112 ((struct instance_standard__NativeArray
*)var14
)->values
[0] = (val
*) var3
;
113 ((struct instance_standard__NativeArray
*)var14
)->values
[1] = (val
*) var6
;
114 ((struct instance_standard__NativeArray
*)var14
)->values
[2] = (val
*) var9
;
116 ((void (*)(val
* self
, val
* p0
, long p1
))(var12
->class->vft
[COLOR_standard__array__Array__with_native
]))(var12
, var14
, var13
) /* with_native on <var12:Array[Option]>*/;
120 opts___opts__OptionContext___add_option(var
, var12
); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
124 /* method separate_erasure_compiler#ToolContext#process_options for (self: ToolContext, Sequence[String]) */
125 void nit__separate_erasure_compiler___ToolContext___process_options(val
* self
, val
* p0
) {
126 val
* var_args
/* var args: Sequence[String] */;
127 val
* var
/* : OptionBool */;
128 val
* var2
/* : OptionBool */;
129 val
* var3
/* : nullable Object */;
130 val
* var5
/* : nullable Object */;
131 short int var6
/* : Bool */;
132 val
* var7
/* : OptionBool */;
133 val
* var9
/* : OptionBool */;
134 short int var10
/* : Bool */;
135 short int var12
/* : Bool */;
138 const struct type
* type_struct
;
139 const char* var_class_name
;
140 val
* var13
/* : nullable Object */;
143 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__separate_erasure_compiler___ToolContext___process_options
]))(self
, p0
) /* process_options on <self:ToolContext>*/;
146 { /* Inline abstract_compiler#ToolContext#opt_no_check_all (self) on <self:ToolContext> */
147 var2
= self
->attrs
[COLOR_nit__abstract_compiler__ToolContext___opt_no_check_all
].val
; /* _opt_no_check_all on <self:ToolContext> */
148 if (unlikely(var2
== NULL
)) {
149 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_all");
150 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 57);
158 { /* Inline opts#Option#value (var) on <var:OptionBool> */
159 var5
= var
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var:OptionBool> */
164 var6
= ((struct instance_standard__Bool
*)var3
)->value
; /* autounbox from nullable Object to Bool */;
167 { /* Inline separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast (self) on <self:ToolContext> */
168 var9
= self
->attrs
[COLOR_nit__separate_erasure_compiler__ToolContext___opt_no_check_erasure_cast
].val
; /* _opt_no_check_erasure_cast on <self:ToolContext> */
169 if (unlikely(var9
== NULL
)) {
170 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast");
171 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 26);
180 { /* Inline opts#Option#value= (var7,var10) on <var7:OptionBool> */
181 /* Covariant cast for argument 0 (value) <var10:Bool> isa VALUE */
182 /* <var10:Bool> isa VALUE */
183 type_struct
= var7
->type
->resolution_table
->types
[COLOR_opts__Option__VALUE
];
184 cltype
= type_struct
->color
;
185 idtype
= type_struct
->id
;
186 if(cltype
>= (&type_standard__Bool
)->table_size
) {
189 var12
= (&type_standard__Bool
)->type_table
[cltype
] == idtype
;
191 if (unlikely(!var12
)) {
192 var_class_name
= type_standard__Bool
.name
;
193 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name
);
194 PRINT_ERROR(" (%s:%d)\n", FILE_opts
, 40);
197 var13
= BOX_standard__Bool(var10
); /* autobox from Bool to nullable Object */
198 var7
->attrs
[COLOR_opts__Option___value
].val
= var13
; /* _value on <var7:OptionBool> */
206 /* method separate_erasure_compiler#ErasureCompilerPhase#process_mainmodule for (self: ErasureCompilerPhase, MModule, SequenceRead[MModule]) */
207 void nit___nit__ErasureCompilerPhase___nit__modelbuilder__Phase__process_mainmodule(val
* self
, val
* p0
, val
* p1
) {
208 val
* var_mainmodule
/* var mainmodule: MModule */;
209 val
* var_given_mmodules
/* var given_mmodules: SequenceRead[MModule] */;
210 val
* var
/* : ToolContext */;
211 val
* var2
/* : ToolContext */;
212 val
* var3
/* : OptionBool */;
213 val
* var5
/* : OptionBool */;
214 val
* var6
/* : nullable Object */;
215 val
* var8
/* : nullable Object */;
216 short int var9
/* : Bool */;
217 short int var10
/* : Bool */;
218 val
* var11
/* : ToolContext */;
219 val
* var13
/* : ToolContext */;
220 val
* var14
/* : ModelBuilder */;
221 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
222 val
* var15
/* : null */;
223 val
* var_analysis
/* var analysis: nullable Object */;
224 val
* var16
/* : ToolContext */;
225 val
* var18
/* : ToolContext */;
226 val
* var19
/* : OptionBool */;
227 val
* var21
/* : OptionBool */;
228 val
* var22
/* : nullable Object */;
229 val
* var24
/* : nullable Object */;
230 short int var25
/* : Bool */;
231 val
* var26
/* : RapidTypeAnalysis */;
233 var_given_mmodules
= p1
;
235 { /* Inline phase#Phase#toolcontext (self) on <self:ErasureCompilerPhase> */
236 var2
= self
->attrs
[COLOR_nit__phase__Phase___toolcontext
].val
; /* _toolcontext on <self:ErasureCompilerPhase> */
237 if (unlikely(var2
== NULL
)) {
238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
239 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase
, 201);
247 { /* Inline separate_erasure_compiler#ToolContext#opt_erasure (var) on <var:ToolContext> */
248 var5
= var
->attrs
[COLOR_nit__separate_erasure_compiler__ToolContext___opt_erasure
].val
; /* _opt_erasure on <var:ToolContext> */
249 if (unlikely(var5
== NULL
)) {
250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_erasure");
251 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 22);
259 { /* Inline opts#Option#value (var3) on <var3:OptionBool> */
260 var8
= var3
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var3:OptionBool> */
265 var9
= ((struct instance_standard__Bool
*)var6
)->value
; /* autounbox from nullable Object to Bool */;
272 { /* Inline phase#Phase#toolcontext (self) on <self:ErasureCompilerPhase> */
273 var13
= self
->attrs
[COLOR_nit__phase__Phase___toolcontext
].val
; /* _toolcontext on <self:ErasureCompilerPhase> */
274 if (unlikely(var13
== NULL
)) {
275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
276 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase
, 201);
284 var14
= nit__modelbuilder_base___ToolContext___modelbuilder(var11
);
286 var_modelbuilder
= var14
;
288 var_analysis
= var15
;
290 { /* Inline phase#Phase#toolcontext (self) on <self:ErasureCompilerPhase> */
291 var18
= self
->attrs
[COLOR_nit__phase__Phase___toolcontext
].val
; /* _toolcontext on <self:ErasureCompilerPhase> */
292 if (unlikely(var18
== NULL
)) {
293 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
294 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase
, 201);
302 { /* Inline separate_erasure_compiler#ToolContext#opt_rta (var16) on <var16:ToolContext> */
303 var21
= var16
->attrs
[COLOR_nit__separate_erasure_compiler__ToolContext___opt_rta
].val
; /* _opt_rta on <var16:ToolContext> */
304 if (unlikely(var21
== NULL
)) {
305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_rta");
306 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 24);
314 { /* Inline opts#Option#value (var19) on <var19:OptionBool> */
315 var24
= var19
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var19:OptionBool> */
320 var25
= ((struct instance_standard__Bool
*)var22
)->value
; /* autounbox from nullable Object to Bool */;
323 var26
= nit__rapid_type_analysis___ModelBuilder___do_rapid_type_analysis(var_modelbuilder
, var_mainmodule
);
325 var_analysis
= var26
;
329 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>*/
333 /* method separate_erasure_compiler#ModelBuilder#run_separate_erasure_compiler for (self: ModelBuilder, MModule, nullable RapidTypeAnalysis) */
334 void nit__separate_erasure_compiler___ModelBuilder___run_separate_erasure_compiler(val
* self
, val
* p0
, val
* p1
) {
335 val
* var_mainmodule
/* var mainmodule: MModule */;
336 val
* var_runtime_type_analysis
/* var runtime_type_analysis: nullable RapidTypeAnalysis */;
337 long var
/* : Int */;
338 long var2
/* : Int for extern */;
339 long var_time0
/* var time0: Int */;
340 val
* var3
/* : ToolContext */;
341 val
* var5
/* : ToolContext */;
343 val
* var6
/* : String */;
344 char* var7
/* : NativeString */;
345 long var8
/* : Int */;
346 val
* var9
/* : FlatString */;
347 long var10
/* : Int */;
348 val
* var11
/* : SeparateErasureCompiler */;
349 val
* var_compiler
/* var compiler: SeparateErasureCompiler */;
350 long var12
/* : Int */;
351 long var14
/* : Int for extern */;
352 long var_time1
/* var time1: Int */;
353 val
* var15
/* : ToolContext */;
354 val
* var17
/* : ToolContext */;
355 static val
* varonce18
;
356 val
* var19
/* : String */;
357 char* var20
/* : NativeString */;
358 long var21
/* : Int */;
359 val
* var22
/* : FlatString */;
360 long var23
/* : Int */;
361 short int var25
/* : Bool */;
364 const char* var_class_name
;
365 long var26
/* : Int */;
366 static val
* varonce27
;
367 val
* var28
/* : String */;
368 char* var29
/* : NativeString */;
369 long var30
/* : Int */;
370 val
* var31
/* : FlatString */;
371 val
* var32
/* : Array[Object] */;
372 long var33
/* : Int */;
373 val
* var34
/* : NativeArray[Object] */;
374 val
* var35
/* : Object */;
375 val
* var36
/* : String */;
376 long var37
/* : Int */;
378 var_runtime_type_analysis
= p1
;
380 { /* Inline time#Object#get_time (self) on <self:ModelBuilder> */
381 var2
= kernel_Any_Any_get_time_0(self
);
389 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
390 var5
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
391 if (unlikely(var5
== NULL
)) {
392 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
393 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
403 var7
= "*** GENERATING C ***";
405 var9
= standard___standard__NativeString___to_s_with_length(var7
, var8
);
411 nit___nit__ToolContext___info(var3
, var6
, var10
); /* Direct call toolcontext#ToolContext#info on <var3:ToolContext>*/
413 var11
= NEW_nit__SeparateErasureCompiler(&type_nit__SeparateErasureCompiler
);
415 ((void (*)(val
* self
, val
* p0
))(var11
->class->vft
[COLOR_nit__abstract_compiler__AbstractCompiler__mainmodule_61d
]))(var11
, var_mainmodule
) /* mainmodule= on <var11:SeparateErasureCompiler>*/;
418 ((void (*)(val
* self
, val
* p0
))(var11
->class->vft
[COLOR_nit__abstract_compiler__AbstractCompiler__modelbuilder_61d
]))(var11
, self
) /* modelbuilder= on <var11:SeparateErasureCompiler>*/;
421 ((void (*)(val
* self
, val
* p0
))(var11
->class->vft
[COLOR_nit__separate_compiler__SeparateCompiler__runtime_type_analysis_61d
]))(var11
, var_runtime_type_analysis
) /* runtime_type_analysis= on <var11:SeparateErasureCompiler>*/;
424 ((void (*)(val
* self
))(var11
->class->vft
[COLOR_standard__kernel__Object__init
]))(var11
) /* init on <var11:SeparateErasureCompiler>*/;
426 var_compiler
= var11
;
428 nit___nit__SeparateCompiler___nit__abstract_compiler__AbstractCompiler__do_compilation(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#do_compilation on <var_compiler:SeparateErasureCompiler>*/
431 nit___nit__SeparateCompiler___nit__abstract_compiler__AbstractCompiler__display_stats(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#display_stats on <var_compiler:SeparateErasureCompiler>*/
434 { /* Inline time#Object#get_time (self) on <self:ModelBuilder> */
435 var14
= kernel_Any_Any_get_time_0(self
);
443 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
444 var17
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
445 if (unlikely(var17
== NULL
)) {
446 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
447 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
457 var20
= "*** END GENERATING C: ";
459 var22
= standard___standard__NativeString___to_s_with_length(var20
, var21
);
464 { /* Inline kernel#Int#- (var_time1,var_time0) on <var_time1:Int> */
465 /* Covariant cast for argument 0 (i) <var_time0:Int> isa OTHER */
466 /* <var_time0:Int> isa OTHER */
467 var25
= 1; /* easy <var_time0:Int> isa OTHER*/
468 if (unlikely(!var25
)) {
469 var_class_name
= type_standard__Int
.name
;
470 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
471 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 416);
474 var26
= var_time1
- var_time0
;
485 var31
= standard___standard__NativeString___to_s_with_length(var29
, var30
);
489 var32
= NEW_standard__Array(&type_standard__Array__standard__Object
);
490 { /* var32 = array_instance Array[Object] */
492 var34
= NEW_standard__NativeArray(var33
, &type_standard__NativeArray__standard__Object
);
493 ((struct instance_standard__NativeArray
*)var34
)->values
[0] = (val
*) var19
;
494 var35
= BOX_standard__Int(var23
); /* autobox from Int to Object */
495 ((struct instance_standard__NativeArray
*)var34
)->values
[1] = (val
*) var35
;
496 ((struct instance_standard__NativeArray
*)var34
)->values
[2] = (val
*) var28
;
498 ((void (*)(val
* self
, val
* p0
, long p1
))(var32
->class->vft
[COLOR_standard__array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
502 var36
= ((val
* (*)(val
* self
))(var32
->class->vft
[COLOR_standard__string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
506 nit___nit__ToolContext___info(var15
, var36
, var37
); /* Direct call toolcontext#ToolContext#info on <var15:ToolContext>*/
509 nit__abstract_compiler___ModelBuilder___write_and_make(self
, var_compiler
); /* Direct call abstract_compiler#ModelBuilder#write_and_make on <self:ModelBuilder>*/
513 /* method separate_erasure_compiler#SeparateErasureCompiler#class_ids for (self: SeparateErasureCompiler): Map[MClass, Int] */
514 val
* nit___nit__SeparateErasureCompiler___class_ids(val
* self
) {
515 val
* var
/* : Map[MClass, Int] */;
516 val
* var1
/* : Map[MClass, Int] */;
517 var1
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
; /* _class_ids on <self:SeparateErasureCompiler> */
518 if (unlikely(var1
== NULL
)) {
519 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids");
520 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 79);
527 /* method separate_erasure_compiler#SeparateErasureCompiler#class_ids= for (self: SeparateErasureCompiler, Map[MClass, Int]) */
528 void nit___nit__SeparateErasureCompiler___class_ids_61d(val
* self
, val
* p0
) {
529 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
= p0
; /* _class_ids on <self:SeparateErasureCompiler> */
532 /* method separate_erasure_compiler#SeparateErasureCompiler#class_colors for (self: SeparateErasureCompiler): Map[MClass, Int] */
533 val
* nit___nit__SeparateErasureCompiler___class_colors(val
* self
) {
534 val
* var
/* : Map[MClass, Int] */;
535 val
* var1
/* : Map[MClass, Int] */;
536 var1
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
; /* _class_colors on <self:SeparateErasureCompiler> */
537 if (unlikely(var1
== NULL
)) {
538 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors");
539 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 80);
546 /* method separate_erasure_compiler#SeparateErasureCompiler#class_colors= for (self: SeparateErasureCompiler, Map[MClass, Int]) */
547 void nit___nit__SeparateErasureCompiler___class_colors_61d(val
* self
, val
* p0
) {
548 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
= p0
; /* _class_colors on <self:SeparateErasureCompiler> */
551 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_colors for (self: SeparateErasureCompiler): Map[MVirtualTypeProp, Int] */
552 val
* nit___nit__SeparateErasureCompiler___vt_colors(val
* self
) {
553 val
* var
/* : Map[MVirtualTypeProp, Int] */;
554 val
* var1
/* : Map[MVirtualTypeProp, Int] */;
555 var1
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:SeparateErasureCompiler> */
556 if (unlikely(var1
== NULL
)) {
557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
558 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 81);
565 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_colors= for (self: SeparateErasureCompiler, Map[MVirtualTypeProp, Int]) */
566 void nit___nit__SeparateErasureCompiler___vt_colors_61d(val
* self
, val
* p0
) {
567 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
= p0
; /* _vt_colors on <self:SeparateErasureCompiler> */
570 /* method separate_erasure_compiler#SeparateErasureCompiler#init for (self: SeparateErasureCompiler) */
571 void nit___nit__SeparateErasureCompiler___standard__kernel__Object__init(val
* self
) {
572 val
* var
/* : MModule */;
573 val
* var2
/* : MModule */;
574 val
* var3
/* : POSet[MClass] */;
575 val
* var_poset
/* var poset: POSet[MClass] */;
576 val
* var4
/* : HashSet[MClass] */;
577 val
* var_mclasses
/* var mclasses: HashSet[MClass] */;
578 val
* var5
/* : POSetColorer[MClass] */;
579 val
* var_colorer
/* var colorer: POSetColorer[MClass] */;
580 val
* var7
/* : Map[Object, Int] */;
581 val
* var9
/* : Map[Object, Int] */;
582 val
* var11
/* : Map[MClass, Array[nullable MClass]] */;
583 val
* var13
/* : HashMap[MClass, Set[MVirtualTypeProp]] */;
584 val
* var_vts
/* var vts: HashMap[MClass, Set[MVirtualTypeProp]] */;
585 val
* var_
/* var : HashSet[MClass] */;
586 val
* var14
/* : Iterator[nullable Object] */;
587 val
* var_15
/* var : Iterator[MClass] */;
588 short int var16
/* : Bool */;
589 val
* var17
/* : nullable Object */;
590 val
* var_mclass
/* var mclass: MClass */;
591 val
* var18
/* : HashSet[MVirtualTypeProp] */;
592 val
* var19
/* : MModule */;
593 val
* var21
/* : MModule */;
594 val
* var22
/* : Set[MProperty] */;
595 val
* var_23
/* var : Set[MProperty] */;
596 val
* var24
/* : Iterator[nullable Object] */;
597 val
* var_25
/* var : Iterator[MProperty] */;
598 short int var26
/* : Bool */;
599 val
* var27
/* : nullable Object */;
600 val
* var_mprop
/* var mprop: MProperty */;
601 short int var28
/* : Bool */;
604 val
* var29
/* : nullable Object */;
605 val
* var33
/* : POSetBucketsColorer[MClass, MVirtualTypeProp] */;
606 val
* var34
/* : Map[Object, Set[Object]] */;
607 val
* var_vt_colorer
/* var vt_colorer: POSetBucketsColorer[MClass, MVirtualTypeProp] */;
608 val
* var35
/* : Map[Object, Int] */;
609 val
* var37
/* : Map[MClass, Array[nullable MPropDef]] */;
611 ((void (*)(val
* self
))(self
->class->vft
[COLOR_nit___nit__SeparateErasureCompiler___standard__kernel__Object__init
]))(self
) /* init on <self:SeparateErasureCompiler>*/;
614 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
615 var2
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
616 if (unlikely(var2
== NULL
)) {
617 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
618 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 474);
626 var3
= nit__model___MModule___flatten_mclass_hierarchy(var
);
629 var4
= NEW_standard__HashSet(&type_standard__HashSet__nit__MClass
);
631 standard___standard__HashSet___from(var4
, var_poset
); /* Direct call hash_collection#HashSet#from on <var4:HashSet[MClass]>*/
634 var5
= NEW_nit__POSetColorer(&type_nit__POSetColorer__nit__MClass
);
636 { /* Inline kernel#Object#init (var5) on <var5:POSetColorer[MClass]> */
642 nit___nit__POSetColorer___colorize(var_colorer
, var_poset
); /* Direct call coloring#POSetColorer#colorize on <var_colorer:POSetColorer[MClass]>*/
645 var7
= nit___nit__POSetColorer___ids(var_colorer
);
648 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids= (self,var7) on <self:SeparateErasureCompiler> */
649 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
= var7
; /* _class_ids on <self:SeparateErasureCompiler> */
654 var9
= nit___nit__POSetColorer___colors(var_colorer
);
657 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_colors= (self,var9) on <self:SeparateErasureCompiler> */
658 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
= var9
; /* _class_colors on <self:SeparateErasureCompiler> */
663 var11
= nit___nit__SeparateErasureCompiler___build_class_typing_tables(self
, var_mclasses
);
666 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables= (self,var11) on <self:SeparateErasureCompiler> */
667 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
= var11
; /* _class_tables on <self:SeparateErasureCompiler> */
671 var13
= NEW_standard__HashMap(&type_standard__HashMap__nit__MClass__standard__Set__nit__MVirtualTypeProp
);
673 standard___standard__HashMap___standard__kernel__Object__init(var13
); /* Direct call hash_collection#HashMap#init on <var13:HashMap[MClass, Set[MVirtualTypeProp]]>*/
678 var14
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
683 var16
= ((short int (*)(val
* self
))(var_15
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_15
) /* is_ok on <var_15:Iterator[MClass]>*/;
687 var17
= ((val
* (*)(val
* self
))(var_15
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_15
) /* item on <var_15:Iterator[MClass]>*/;
690 var18
= NEW_standard__HashSet(&type_standard__HashSet__nit__MVirtualTypeProp
);
692 standard___standard__HashSet___standard__kernel__Object__init(var18
); /* Direct call hash_collection#HashSet#init on <var18:HashSet[MVirtualTypeProp]>*/
695 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]]>*/
698 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
699 var21
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
700 if (unlikely(var21
== NULL
)) {
701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
702 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 474);
710 var22
= nit__abstract_compiler___MModule___properties(var19
, var_mclass
);
714 var24
= ((val
* (*)(val
* self
))(var_23
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_23
) /* iterator on <var_23:Set[MProperty]>*/;
719 var26
= ((short int (*)(val
* self
))(var_25
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_25
) /* is_ok on <var_25:Iterator[MProperty]>*/;
723 var27
= ((val
* (*)(val
* self
))(var_25
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_25
) /* item on <var_25:Iterator[MProperty]>*/;
726 /* <var_mprop:MProperty> isa MVirtualTypeProp */
727 cltype
= type_nit__MVirtualTypeProp
.color
;
728 idtype
= type_nit__MVirtualTypeProp
.id
;
729 if(cltype
>= var_mprop
->type
->table_size
) {
732 var28
= var_mprop
->type
->type_table
[cltype
] == idtype
;
736 var29
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_vts
, var_mclass
);
739 ((void (*)(val
* self
, val
* p0
))(var29
->class->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var29
, var_mprop
) /* add on <var29:nullable Object(Set[MVirtualTypeProp])>*/;
744 ((void (*)(val
* self
))(var_25
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_25
) /* next on <var_25:Iterator[MProperty]>*/;
750 BREAK_label
: (void)0;
752 { /* Inline abstract_collection#Iterator#finish (var_25) on <var_25:Iterator[MProperty]> */
757 ((void (*)(val
* self
))(var_15
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_15
) /* next on <var_15:Iterator[MClass]>*/;
763 BREAK_label31
: (void)0;
765 { /* Inline abstract_collection#Iterator#finish (var_15) on <var_15:Iterator[MClass]> */
769 var33
= NEW_nit__POSetBucketsColorer(&type_nit__POSetBucketsColorer__nit__MClass__nit__MVirtualTypeProp
);
771 var34
= nit___nit__POSetColorer___conflicts(var_colorer
);
774 ((void (*)(val
* self
, val
* p0
))(var33
->class->vft
[COLOR_nit__coloring__POSetBucketsColorer__poset_61d
]))(var33
, var_poset
) /* poset= on <var33:POSetBucketsColorer[MClass, MVirtualTypeProp]>*/;
777 ((void (*)(val
* self
, val
* p0
))(var33
->class->vft
[COLOR_nit__coloring__POSetBucketsColorer__conflicts_61d
]))(var33
, var34
) /* conflicts= on <var33:POSetBucketsColorer[MClass, MVirtualTypeProp]>*/;
780 ((void (*)(val
* self
))(var33
->class->vft
[COLOR_standard__kernel__Object__init
]))(var33
) /* init on <var33:POSetBucketsColorer[MClass, MVirtualTypeProp]>*/;
782 var_vt_colorer
= var33
;
784 var35
= nit___nit__POSetBucketsColorer___colorize(var_vt_colorer
, var_vts
);
787 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors= (self,var35) on <self:SeparateErasureCompiler> */
788 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
= var35
; /* _vt_colors on <self:SeparateErasureCompiler> */
793 var37
= nit___nit__SeparateErasureCompiler___build_vt_tables(self
, var_mclasses
);
796 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables= (self,var37) on <self:SeparateErasureCompiler> */
797 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
= var37
; /* _vt_tables on <self:SeparateErasureCompiler> */
803 /* method separate_erasure_compiler#SeparateErasureCompiler#build_vt_tables for (self: SeparateErasureCompiler, Set[MClass]): Map[MClass, Array[nullable MPropDef]] */
804 val
* nit___nit__SeparateErasureCompiler___build_vt_tables(val
* self
, val
* p0
) {
805 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
806 val
* var_mclasses
/* var mclasses: Set[MClass] */;
807 val
* var1
/* : HashMap[MClass, Array[nullable MPropDef]] */;
808 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MPropDef]] */;
809 val
* var_
/* var : Set[MClass] */;
810 val
* var2
/* : Iterator[nullable Object] */;
811 val
* var_3
/* var : Iterator[MClass] */;
812 short int var4
/* : Bool */;
813 val
* var5
/* : nullable Object */;
814 val
* var_mclass
/* var mclass: MClass */;
815 val
* var6
/* : Array[nullable MPropDef] */;
816 val
* var_table
/* var table: Array[nullable MPropDef] */;
817 val
* var7
/* : Array[MClass] */;
818 val
* var_parents
/* var parents: Array[MClass] */;
819 val
* var8
/* : MModule */;
820 val
* var10
/* : MModule */;
821 val
* var11
/* : POSet[MClass] */;
822 short int var12
/* : Bool */;
823 val
* var13
/* : MModule */;
824 val
* var15
/* : MModule */;
825 val
* var16
/* : POSetElement[MClass] */;
826 val
* var17
/* : Collection[nullable Object] */;
827 val
* var18
/* : Array[nullable Object] */;
828 val
* var19
/* : MModule */;
829 val
* var21
/* : MModule */;
830 val
* var_22
/* var : Array[MClass] */;
831 val
* var23
/* : ArrayIterator[nullable Object] */;
832 val
* var_24
/* var : ArrayIterator[MClass] */;
833 short int var25
/* : Bool */;
834 val
* var26
/* : nullable Object */;
835 val
* var_parent
/* var parent: MClass */;
836 short int var27
/* : Bool */;
837 val
* var_other
/* var other: nullable Object */;
838 short int var29
/* : Bool */;
839 short int var31
/* : Bool */;
840 val
* var32
/* : MModule */;
841 val
* var34
/* : MModule */;
842 val
* var35
/* : Set[MProperty] */;
843 val
* var_36
/* var : Set[MProperty] */;
844 val
* var37
/* : Iterator[nullable Object] */;
845 val
* var_38
/* var : Iterator[MProperty] */;
846 short int var39
/* : Bool */;
847 val
* var40
/* : nullable Object */;
848 val
* var_mproperty
/* var mproperty: MProperty */;
849 short int var41
/* : Bool */;
852 short int var42
/* : Bool */;
853 val
* var44
/* : Map[MVirtualTypeProp, Int] */;
854 val
* var46
/* : Map[MVirtualTypeProp, Int] */;
855 val
* var47
/* : nullable Object */;
856 long var48
/* : Int */;
857 long var_color
/* var color: Int */;
858 long var49
/* : Int */;
859 long var51
/* : Int */;
860 short int var52
/* : Bool */;
861 short int var54
/* : Bool */;
864 const char* var_class_name
;
865 short int var57
/* : Bool */;
866 long var58
/* : Int */;
867 long var60
/* : Int */;
868 long var_i
/* var i: Int */;
869 long var_61
/* var : Int */;
870 short int var62
/* : Bool */;
871 short int var64
/* : Bool */;
874 const char* var_class_name67
;
875 short int var68
/* : Bool */;
876 val
* var69
/* : null */;
877 long var70
/* : Int */;
878 long var71
/* : Int */;
879 val
* var73
/* : Array[MPropDef] */;
880 val
* var75
/* : Array[MPropDef] */;
881 val
* var_76
/* var : Array[MVirtualTypeDef] */;
882 val
* var77
/* : ArrayIterator[nullable Object] */;
883 val
* var_78
/* var : ArrayIterator[MVirtualTypeDef] */;
884 short int var79
/* : Bool */;
885 val
* var80
/* : nullable Object */;
886 val
* var_mpropdef
/* var mpropdef: MVirtualTypeDef */;
887 val
* var81
/* : MClassDef */;
888 val
* var83
/* : MClassDef */;
889 val
* var84
/* : MClass */;
890 val
* var86
/* : MClass */;
891 short int var87
/* : Bool */;
892 short int var89
/* : Bool */;
893 short int var91
/* : Bool */;
894 val
* var98
/* : MModule */;
895 val
* var100
/* : MModule */;
896 val
* var101
/* : Set[MProperty] */;
897 val
* var_102
/* var : Set[MProperty] */;
898 val
* var103
/* : Iterator[nullable Object] */;
899 val
* var_104
/* var : Iterator[MProperty] */;
900 short int var105
/* : Bool */;
901 val
* var106
/* : nullable Object */;
902 val
* var_mproperty107
/* var mproperty: MProperty */;
903 short int var108
/* : Bool */;
906 short int var111
/* : Bool */;
907 val
* var113
/* : Map[MVirtualTypeProp, Int] */;
908 val
* var115
/* : Map[MVirtualTypeProp, Int] */;
909 val
* var116
/* : nullable Object */;
910 long var117
/* : Int */;
911 long var_color118
/* var color: Int */;
912 long var119
/* : Int */;
913 long var121
/* : Int */;
914 short int var122
/* : Bool */;
915 short int var124
/* : Bool */;
918 const char* var_class_name127
;
919 short int var128
/* : Bool */;
920 long var129
/* : Int */;
921 long var131
/* : Int */;
922 long var_i132
/* var i: Int */;
923 long var_133
/* var : Int */;
924 short int var134
/* : Bool */;
925 short int var136
/* : Bool */;
928 const char* var_class_name139
;
929 short int var140
/* : Bool */;
930 val
* var141
/* : null */;
931 long var142
/* : Int */;
932 long var143
/* : Int */;
933 val
* var145
/* : Array[MPropDef] */;
934 val
* var147
/* : Array[MPropDef] */;
935 val
* var_148
/* var : Array[MVirtualTypeDef] */;
936 val
* var149
/* : ArrayIterator[nullable Object] */;
937 val
* var_150
/* var : ArrayIterator[MVirtualTypeDef] */;
938 short int var151
/* : Bool */;
939 val
* var152
/* : nullable Object */;
940 val
* var_mpropdef153
/* var mpropdef: MVirtualTypeDef */;
941 val
* var154
/* : MClassDef */;
942 val
* var156
/* : MClassDef */;
943 val
* var157
/* : MClass */;
944 val
* var159
/* : MClass */;
945 short int var160
/* : Bool */;
946 short int var162
/* : Bool */;
947 short int var164
/* : Bool */;
949 var1
= NEW_standard__HashMap(&type_standard__HashMap__nit__MClass__standard__Array__nullable__nit__MPropDef
);
951 standard___standard__HashMap___standard__kernel__Object__init(var1
); /* Direct call hash_collection#HashMap#init on <var1:HashMap[MClass, Array[nullable MPropDef]]>*/
956 var2
= ((val
* (*)(val
* self
))(var_
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Set[MClass]>*/;
961 var4
= ((short int (*)(val
* self
))(var_3
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_3
) /* is_ok on <var_3:Iterator[MClass]>*/;
965 var5
= ((val
* (*)(val
* self
))(var_3
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_3
) /* item on <var_3:Iterator[MClass]>*/;
968 var6
= NEW_standard__Array(&type_standard__Array__nullable__nit__MPropDef
);
970 standard___standard__Array___standard__kernel__Object__init(var6
); /* Direct call array#Array#init on <var6:Array[nullable MPropDef]>*/
973 var7
= NEW_standard__Array(&type_standard__Array__nit__MClass
);
975 standard___standard__Array___standard__kernel__Object__init(var7
); /* Direct call array#Array#init on <var7:Array[MClass]>*/
979 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
980 var10
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
981 if (unlikely(var10
== NULL
)) {
982 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
983 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 474);
991 var11
= nit__model___MModule___flatten_mclass_hierarchy(var8
);
994 var12
= poset___poset__POSet___standard__abstract_collection__Collection__has(var11
, var_mclass
);
998 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
999 var15
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1000 if (unlikely(var15
== NULL
)) {
1001 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1002 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 474);
1006 RET_LABEL14
:(void)0;
1010 var16
= nit___nit__MClass___in_hierarchy(var_mclass
, var13
);
1013 var17
= poset___poset__POSetElement___greaters(var16
);
1016 var18
= standard__array___Collection___to_a(var17
);
1018 var_parents
= var18
;
1020 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1021 var21
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1022 if (unlikely(var21
== NULL
)) {
1023 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1024 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 474);
1028 RET_LABEL20
:(void)0;
1032 nit__model___MModule___linearize_mclasses(var19
, var_parents
); /* Direct call model#MModule#linearize_mclasses on <var19:MModule>*/
1036 var_22
= var_parents
;
1038 var23
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_22
);
1043 var25
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_24
);
1047 var26
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_24
);
1051 { /* Inline kernel#Object#== (var_parent,var_mclass) on <var_parent:MClass> */
1052 var_other
= var_mclass
;
1054 { /* Inline kernel#Object#is_same_instance (var_parent,var_other) on <var_parent:MClass> */
1055 var31
= var_parent
== var_other
;
1058 RET_LABEL30
:(void)0;
1063 RET_LABEL28
:(void)0;
1071 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1072 var34
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1073 if (unlikely(var34
== NULL
)) {
1074 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1075 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 474);
1079 RET_LABEL33
:(void)0;
1083 var35
= nit__abstract_compiler___MModule___properties(var32
, var_parent
);
1087 var37
= ((val
* (*)(val
* self
))(var_36
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_36
) /* iterator on <var_36:Set[MProperty]>*/;
1092 var39
= ((short int (*)(val
* self
))(var_38
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_38
) /* is_ok on <var_38:Iterator[MProperty]>*/;
1096 var40
= ((val
* (*)(val
* self
))(var_38
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_38
) /* item on <var_38:Iterator[MProperty]>*/;
1098 var_mproperty
= var40
;
1099 /* <var_mproperty:MProperty> isa MVirtualTypeProp */
1100 cltype
= type_nit__MVirtualTypeProp
.color
;
1101 idtype
= type_nit__MVirtualTypeProp
.id
;
1102 if(cltype
>= var_mproperty
->type
->table_size
) {
1105 var41
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
1113 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors (self) on <self:SeparateErasureCompiler> */
1114 var46
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:SeparateErasureCompiler> */
1115 if (unlikely(var46
== NULL
)) {
1116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
1117 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 81);
1121 RET_LABEL45
:(void)0;
1125 var47
= ((val
* (*)(val
* self
, val
* p0
))(var44
->class->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var44
, var_mproperty
) /* [] on <var44:Map[MVirtualTypeProp, Int]>*/;
1127 var48
= ((struct instance_standard__Int
*)var47
)->value
; /* autounbox from nullable Object to Int */;
1130 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1131 var51
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1133 RET_LABEL50
:(void)0;
1137 { /* Inline kernel#Int#<= (var49,var_color) on <var49:Int> */
1138 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
1139 /* <var_color:Int> isa OTHER */
1140 var54
= 1; /* easy <var_color:Int> isa OTHER*/
1141 if (unlikely(!var54
)) {
1142 var_class_name
= type_standard__Int
.name
;
1143 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1144 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 409);
1147 var57
= var49
<= var_color
;
1150 RET_LABEL53
:(void)0;
1155 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1156 var60
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1158 RET_LABEL59
:(void)0;
1165 { /* Inline kernel#Int#< (var_i,var_61) on <var_i:Int> */
1166 /* Covariant cast for argument 0 (i) <var_61:Int> isa OTHER */
1167 /* <var_61:Int> isa OTHER */
1168 var64
= 1; /* easy <var_61:Int> isa OTHER*/
1169 if (unlikely(!var64
)) {
1170 var_class_name67
= type_standard__Int
.name
;
1171 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name67
);
1172 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 410);
1175 var68
= var_i
< var_61
;
1178 RET_LABEL63
:(void)0;
1184 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_i
, var69
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
1188 var71
= standard___standard__Int___Discrete__successor(var_i
, var70
);
1195 BREAK_label72
: (void)0;
1199 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MProperty(MVirtualTypeProp)> */
1200 var75
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MProperty(MVirtualTypeProp)> */
1201 if (unlikely(var75
== NULL
)) {
1202 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
1203 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1768);
1207 RET_LABEL74
:(void)0;
1212 var77
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_76
);
1217 var79
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_78
);
1221 var80
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_78
);
1223 var_mpropdef
= var80
;
1225 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MVirtualTypeDef> */
1226 var83
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:MVirtualTypeDef> */
1227 if (unlikely(var83
== NULL
)) {
1228 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1229 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2010);
1233 RET_LABEL82
:(void)0;
1237 { /* Inline model#MClassDef#mclass (var81) on <var81:MClassDef> */
1238 var86
= var81
->attrs
[COLOR_nit__model__MClassDef___mclass
].val
; /* _mclass on <var81:MClassDef> */
1239 if (unlikely(var86
== NULL
)) {
1240 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1241 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 492);
1245 RET_LABEL85
:(void)0;
1249 { /* Inline kernel#Object#== (var84,var_parent) on <var84:MClass> */
1250 var_other
= var_parent
;
1252 { /* Inline kernel#Object#is_same_instance (var84,var_other) on <var84:MClass> */
1253 var91
= var84
== var_other
;
1256 RET_LABEL90
:(void)0;
1261 RET_LABEL88
:(void)0;
1266 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]>*/
1271 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_78
); /* Direct call array#ArrayIterator#next on <var_78:ArrayIterator[MVirtualTypeDef]>*/
1277 BREAK_label92
: (void)0;
1279 { /* Inline abstract_collection#Iterator#finish (var_78) on <var_78:ArrayIterator[MVirtualTypeDef]> */
1280 RET_LABEL93
:(void)0;
1283 BREAK_label43
: (void)0;
1285 ((void (*)(val
* self
))(var_38
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_38
) /* next on <var_38:Iterator[MProperty]>*/;
1291 BREAK_label94
: (void)0;
1293 { /* Inline abstract_collection#Iterator#finish (var_38) on <var_38:Iterator[MProperty]> */
1294 RET_LABEL95
:(void)0;
1297 BREAK_label
: (void)0;
1299 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_24
); /* Direct call array#ArrayIterator#next on <var_24:ArrayIterator[MClass]>*/
1305 BREAK_label96
: (void)0;
1307 { /* Inline abstract_collection#Iterator#finish (var_24) on <var_24:ArrayIterator[MClass]> */
1308 RET_LABEL97
:(void)0;
1312 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1313 var100
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1314 if (unlikely(var100
== NULL
)) {
1315 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1316 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 474);
1320 RET_LABEL99
:(void)0;
1324 var101
= nit__abstract_compiler___MModule___properties(var98
, var_mclass
);
1328 var103
= ((val
* (*)(val
* self
))(var_102
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_102
) /* iterator on <var_102:Set[MProperty]>*/;
1333 var105
= ((short int (*)(val
* self
))(var_104
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_104
) /* is_ok on <var_104:Iterator[MProperty]>*/;
1337 var106
= ((val
* (*)(val
* self
))(var_104
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_104
) /* item on <var_104:Iterator[MProperty]>*/;
1339 var_mproperty107
= var106
;
1340 /* <var_mproperty107:MProperty> isa MVirtualTypeProp */
1341 cltype109
= type_nit__MVirtualTypeProp
.color
;
1342 idtype110
= type_nit__MVirtualTypeProp
.id
;
1343 if(cltype109
>= var_mproperty107
->type
->table_size
) {
1346 var108
= var_mproperty107
->type
->type_table
[cltype109
] == idtype110
;
1350 goto BREAK_label112
;
1354 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors (self) on <self:SeparateErasureCompiler> */
1355 var115
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:SeparateErasureCompiler> */
1356 if (unlikely(var115
== NULL
)) {
1357 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
1358 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 81);
1362 RET_LABEL114
:(void)0;
1366 var116
= ((val
* (*)(val
* self
, val
* p0
))(var113
->class->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var113
, var_mproperty107
) /* [] on <var113:Map[MVirtualTypeProp, Int]>*/;
1368 var117
= ((struct instance_standard__Int
*)var116
)->value
; /* autounbox from nullable Object to Int */;
1369 var_color118
= var117
;
1371 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1372 var121
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1374 RET_LABEL120
:(void)0;
1378 { /* Inline kernel#Int#<= (var119,var_color118) on <var119:Int> */
1379 /* Covariant cast for argument 0 (i) <var_color118:Int> isa OTHER */
1380 /* <var_color118:Int> isa OTHER */
1381 var124
= 1; /* easy <var_color118:Int> isa OTHER*/
1382 if (unlikely(!var124
)) {
1383 var_class_name127
= type_standard__Int
.name
;
1384 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name127
);
1385 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 409);
1388 var128
= var119
<= var_color118
;
1391 RET_LABEL123
:(void)0;
1396 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1397 var131
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1399 RET_LABEL130
:(void)0;
1403 var_133
= var_color118
;
1406 { /* Inline kernel#Int#< (var_i132,var_133) on <var_i132:Int> */
1407 /* Covariant cast for argument 0 (i) <var_133:Int> isa OTHER */
1408 /* <var_133:Int> isa OTHER */
1409 var136
= 1; /* easy <var_133:Int> isa OTHER*/
1410 if (unlikely(!var136
)) {
1411 var_class_name139
= type_standard__Int
.name
;
1412 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name139
);
1413 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 410);
1416 var140
= var_i132
< var_133
;
1419 RET_LABEL135
:(void)0;
1425 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_i132
, var141
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
1429 var143
= standard___standard__Int___Discrete__successor(var_i132
, var142
);
1433 goto BREAK_label144
;
1436 BREAK_label144
: (void)0;
1440 { /* Inline model#MProperty#mpropdefs (var_mproperty107) on <var_mproperty107:MProperty(MVirtualTypeProp)> */
1441 var147
= var_mproperty107
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty107:MProperty(MVirtualTypeProp)> */
1442 if (unlikely(var147
== NULL
)) {
1443 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
1444 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1768);
1448 RET_LABEL146
:(void)0;
1453 var149
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_148
);
1458 var151
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_150
);
1462 var152
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_150
);
1464 var_mpropdef153
= var152
;
1466 { /* Inline model#MPropDef#mclassdef (var_mpropdef153) on <var_mpropdef153:MVirtualTypeDef> */
1467 var156
= var_mpropdef153
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef153:MVirtualTypeDef> */
1468 if (unlikely(var156
== NULL
)) {
1469 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1470 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2010);
1474 RET_LABEL155
:(void)0;
1478 { /* Inline model#MClassDef#mclass (var154) on <var154:MClassDef> */
1479 var159
= var154
->attrs
[COLOR_nit__model__MClassDef___mclass
].val
; /* _mclass on <var154:MClassDef> */
1480 if (unlikely(var159
== NULL
)) {
1481 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1482 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 492);
1486 RET_LABEL158
:(void)0;
1490 { /* Inline kernel#Object#== (var157,var_mclass) on <var157:MClass> */
1491 var_other
= var_mclass
;
1493 { /* Inline kernel#Object#is_same_instance (var157,var_other) on <var157:MClass> */
1494 var164
= var157
== var_other
;
1497 RET_LABEL163
:(void)0;
1502 RET_LABEL161
:(void)0;
1507 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_color118
, var_mpropdef153
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
1512 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_150
); /* Direct call array#ArrayIterator#next on <var_150:ArrayIterator[MVirtualTypeDef]>*/
1515 goto BREAK_label165
;
1518 BREAK_label165
: (void)0;
1520 { /* Inline abstract_collection#Iterator#finish (var_150) on <var_150:ArrayIterator[MVirtualTypeDef]> */
1521 RET_LABEL166
:(void)0;
1524 BREAK_label112
: (void)0;
1526 ((void (*)(val
* self
))(var_104
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_104
) /* next on <var_104:Iterator[MProperty]>*/;
1529 goto BREAK_label167
;
1532 BREAK_label167
: (void)0;
1534 { /* Inline abstract_collection#Iterator#finish (var_104) on <var_104:Iterator[MProperty]> */
1535 RET_LABEL168
:(void)0;
1539 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]]>*/
1542 ((void (*)(val
* self
))(var_3
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_3
) /* next on <var_3:Iterator[MClass]>*/;
1545 goto BREAK_label169
;
1548 BREAK_label169
: (void)0;
1550 { /* Inline abstract_collection#Iterator#finish (var_3) on <var_3:Iterator[MClass]> */
1551 RET_LABEL170
:(void)0;
1559 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_typing_tables for (self: SeparateErasureCompiler, Set[MClass]): Map[MClass, Array[nullable MClass]] */
1560 val
* nit___nit__SeparateErasureCompiler___build_class_typing_tables(val
* self
, val
* p0
) {
1561 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
1562 val
* var_mclasses
/* var mclasses: Set[MClass] */;
1563 val
* var1
/* : HashMap[MClass, Array[nullable MClass]] */;
1564 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MClass]] */;
1565 val
* var_
/* var : Set[MClass] */;
1566 val
* var2
/* : Iterator[nullable Object] */;
1567 val
* var_3
/* var : Iterator[MClass] */;
1568 short int var4
/* : Bool */;
1569 val
* var5
/* : nullable Object */;
1570 val
* var_mclass
/* var mclass: MClass */;
1571 val
* var6
/* : Array[nullable MClass] */;
1572 val
* var_table
/* var table: Array[nullable MClass] */;
1573 val
* var7
/* : Array[MClass] */;
1574 val
* var_supers
/* var supers: Array[MClass] */;
1575 val
* var8
/* : MModule */;
1576 val
* var10
/* : MModule */;
1577 val
* var11
/* : POSet[MClass] */;
1578 short int var12
/* : Bool */;
1579 val
* var13
/* : MModule */;
1580 val
* var15
/* : MModule */;
1581 val
* var16
/* : POSetElement[MClass] */;
1582 val
* var17
/* : Collection[nullable Object] */;
1583 val
* var18
/* : Array[nullable Object] */;
1584 val
* var_19
/* var : Array[MClass] */;
1585 val
* var20
/* : ArrayIterator[nullable Object] */;
1586 val
* var_21
/* var : ArrayIterator[MClass] */;
1587 short int var22
/* : Bool */;
1588 val
* var23
/* : nullable Object */;
1589 val
* var_sup
/* var sup: MClass */;
1590 val
* var24
/* : Map[MClass, Int] */;
1591 val
* var26
/* : Map[MClass, Int] */;
1592 val
* var27
/* : nullable Object */;
1593 long var28
/* : Int */;
1594 long var_color
/* var color: Int */;
1595 long var29
/* : Int */;
1596 long var31
/* : Int */;
1597 short int var32
/* : Bool */;
1598 short int var34
/* : Bool */;
1601 const char* var_class_name
;
1602 short int var35
/* : Bool */;
1603 long var36
/* : Int */;
1604 long var38
/* : Int */;
1605 long var_i
/* var i: Int */;
1606 long var_39
/* var : Int */;
1607 short int var40
/* : Bool */;
1608 short int var42
/* : Bool */;
1611 const char* var_class_name45
;
1612 short int var46
/* : Bool */;
1613 val
* var47
/* : null */;
1614 long var48
/* : Int */;
1615 long var49
/* : Int */;
1617 var1
= NEW_standard__HashMap(&type_standard__HashMap__nit__MClass__standard__Array__nullable__nit__MClass
);
1619 standard___standard__HashMap___standard__kernel__Object__init(var1
); /* Direct call hash_collection#HashMap#init on <var1:HashMap[MClass, Array[nullable MClass]]>*/
1622 var_
= var_mclasses
;
1624 var2
= ((val
* (*)(val
* self
))(var_
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Set[MClass]>*/;
1629 var4
= ((short int (*)(val
* self
))(var_3
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_3
) /* is_ok on <var_3:Iterator[MClass]>*/;
1633 var5
= ((val
* (*)(val
* self
))(var_3
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_3
) /* item on <var_3:Iterator[MClass]>*/;
1636 var6
= NEW_standard__Array(&type_standard__Array__nullable__nit__MClass
);
1638 standard___standard__Array___standard__kernel__Object__init(var6
); /* Direct call array#Array#init on <var6:Array[nullable MClass]>*/
1641 var7
= NEW_standard__Array(&type_standard__Array__nit__MClass
);
1643 standard___standard__Array___standard__kernel__Object__init(var7
); /* Direct call array#Array#init on <var7:Array[MClass]>*/
1647 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1648 var10
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1649 if (unlikely(var10
== NULL
)) {
1650 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1651 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 474);
1659 var11
= nit__model___MModule___flatten_mclass_hierarchy(var8
);
1662 var12
= poset___poset__POSet___standard__abstract_collection__Collection__has(var11
, var_mclass
);
1666 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1667 var15
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1668 if (unlikely(var15
== NULL
)) {
1669 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1670 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 474);
1674 RET_LABEL14
:(void)0;
1678 var16
= nit___nit__MClass___in_hierarchy(var_mclass
, var13
);
1681 var17
= poset___poset__POSetElement___greaters(var16
);
1684 var18
= standard__array___Collection___to_a(var17
);
1689 var_19
= var_supers
;
1691 var20
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_19
);
1696 var22
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_21
);
1700 var23
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_21
);
1704 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_colors (self) on <self:SeparateErasureCompiler> */
1705 var26
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
; /* _class_colors on <self:SeparateErasureCompiler> */
1706 if (unlikely(var26
== NULL
)) {
1707 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors");
1708 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 80);
1712 RET_LABEL25
:(void)0;
1716 var27
= ((val
* (*)(val
* self
, val
* p0
))(var24
->class->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var24
, var_sup
) /* [] on <var24:Map[MClass, Int]>*/;
1718 var28
= ((struct instance_standard__Int
*)var27
)->value
; /* autounbox from nullable Object to Int */;
1721 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MClass]> */
1722 var31
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MClass]> */
1724 RET_LABEL30
:(void)0;
1728 { /* Inline kernel#Int#<= (var29,var_color) on <var29:Int> */
1729 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
1730 /* <var_color:Int> isa OTHER */
1731 var34
= 1; /* easy <var_color:Int> isa OTHER*/
1732 if (unlikely(!var34
)) {
1733 var_class_name
= type_standard__Int
.name
;
1734 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1735 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 409);
1738 var35
= var29
<= var_color
;
1741 RET_LABEL33
:(void)0;
1746 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MClass]> */
1747 var38
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MClass]> */
1749 RET_LABEL37
:(void)0;
1756 { /* Inline kernel#Int#< (var_i,var_39) on <var_i:Int> */
1757 /* Covariant cast for argument 0 (i) <var_39:Int> isa OTHER */
1758 /* <var_39:Int> isa OTHER */
1759 var42
= 1; /* easy <var_39:Int> isa OTHER*/
1760 if (unlikely(!var42
)) {
1761 var_class_name45
= type_standard__Int
.name
;
1762 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45
);
1763 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 410);
1766 var46
= var_i
< var_39
;
1769 RET_LABEL41
:(void)0;
1775 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_i
, var47
); /* Direct call array#Array#[]= on <var_table:Array[nullable MClass]>*/
1779 var49
= standard___standard__Int___Discrete__successor(var_i
, var48
);
1786 BREAK_label
: (void)0;
1790 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]>*/
1793 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_21
); /* Direct call array#ArrayIterator#next on <var_21:ArrayIterator[MClass]>*/
1799 BREAK_label50
: (void)0;
1801 { /* Inline abstract_collection#Iterator#finish (var_21) on <var_21:ArrayIterator[MClass]> */
1802 RET_LABEL51
:(void)0;
1806 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]]>*/
1809 ((void (*)(val
* self
))(var_3
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_3
) /* next on <var_3:Iterator[MClass]>*/;
1815 BREAK_label52
: (void)0;
1817 { /* Inline abstract_collection#Iterator#finish (var_3) on <var_3:Iterator[MClass]> */
1818 RET_LABEL53
:(void)0;
1826 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_header_structs for (self: SeparateErasureCompiler) */
1827 void nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__compile_header_structs(val
* self
) {
1828 val
* var
/* : CodeWriter */;
1829 val
* var2
/* : CodeWriter */;
1830 static val
* varonce
;
1831 val
* var3
/* : String */;
1832 char* var4
/* : NativeString */;
1833 long var5
/* : Int */;
1834 val
* var6
/* : FlatString */;
1835 val
* var7
/* : CodeWriter */;
1836 val
* var9
/* : CodeWriter */;
1837 static val
* varonce10
;
1838 val
* var11
/* : String */;
1839 char* var12
/* : NativeString */;
1840 long var13
/* : Int */;
1841 val
* var14
/* : FlatString */;
1842 val
* var15
/* : CodeWriter */;
1843 val
* var17
/* : CodeWriter */;
1844 static val
* varonce18
;
1845 val
* var19
/* : String */;
1846 char* var20
/* : NativeString */;
1847 long var21
/* : Int */;
1848 val
* var22
/* : FlatString */;
1849 val
* var23
/* : CodeWriter */;
1850 val
* var25
/* : CodeWriter */;
1851 static val
* varonce26
;
1852 val
* var27
/* : String */;
1853 char* var28
/* : NativeString */;
1854 long var29
/* : Int */;
1855 val
* var30
/* : FlatString */;
1856 val
* var31
/* : CodeWriter */;
1857 val
* var33
/* : CodeWriter */;
1858 static val
* varonce34
;
1859 val
* var35
/* : String */;
1860 char* var36
/* : NativeString */;
1861 long var37
/* : Int */;
1862 val
* var38
/* : FlatString */;
1863 val
* var39
/* : CodeWriter */;
1864 val
* var41
/* : CodeWriter */;
1865 static val
* varonce42
;
1866 val
* var43
/* : String */;
1867 char* var44
/* : NativeString */;
1868 long var45
/* : Int */;
1869 val
* var46
/* : FlatString */;
1871 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1872 var2
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1873 if (unlikely(var2
== NULL
)) {
1874 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1875 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 523);
1885 var4
= "typedef void(*nitmethod_t)(void); /* general C type representing a Nit method. */";
1887 var6
= standard___standard__NativeString___to_s_with_length(var4
, var5
);
1892 nit___nit__CodeWriter___add_decl(var
, var3
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var:CodeWriter>*/
1895 nit___nit__SeparateCompiler___compile_header_attribute_structs(self
); /* Direct call separate_compiler#SeparateCompiler#compile_header_attribute_structs on <self:SeparateErasureCompiler>*/
1898 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1899 var9
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1900 if (unlikely(var9
== NULL
)) {
1901 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1902 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 523);
1912 var12
= "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. */";
1914 var14
= standard___standard__NativeString___to_s_with_length(var12
, var13
);
1919 nit___nit__CodeWriter___add_decl(var7
, var11
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var7:CodeWriter>*/
1922 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1923 var17
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1924 if (unlikely(var17
== NULL
)) {
1925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1926 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 523);
1930 RET_LABEL16
:(void)0;
1936 var20
= "struct type_table { int size; int table[]; }; /* colorized type table. */";
1938 var22
= standard___standard__NativeString___to_s_with_length(var20
, var21
);
1943 nit___nit__CodeWriter___add_decl(var15
, var19
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var15:CodeWriter>*/
1946 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1947 var25
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1948 if (unlikely(var25
== NULL
)) {
1949 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1950 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 523);
1954 RET_LABEL24
:(void)0;
1960 var28
= "struct vts_entry { short int is_nullable; const struct class *class; }; /* link (nullable or not) between the vts and is bound. */";
1962 var30
= standard___standard__NativeString___to_s_with_length(var28
, var29
);
1967 nit___nit__CodeWriter___add_decl(var23
, var27
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var23:CodeWriter>*/
1970 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1971 var33
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1972 if (unlikely(var33
== NULL
)) {
1973 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1974 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 523);
1978 RET_LABEL32
:(void)0;
1984 var36
= "struct vts_table { int dummy; const struct vts_entry vts[]; }; /* vts list of a C type representation. */";
1986 var38
= standard___standard__NativeString___to_s_with_length(var36
, var37
);
1991 nit___nit__CodeWriter___add_decl(var31
, var35
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var31:CodeWriter>*/
1994 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
1995 var41
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
1996 if (unlikely(var41
== NULL
)) {
1997 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1998 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 523);
2002 RET_LABEL40
:(void)0;
2008 var44
= "typedef struct instance { const struct class *class; nitattribute_t attrs[1]; } val; /* general C type representing a Nit instance. */";
2010 var46
= standard___standard__NativeString___to_s_with_length(var44
, var45
);
2015 nit___nit__CodeWriter___add_decl(var39
, var43
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var39:CodeWriter>*/
2019 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_class_to_c for (self: SeparateErasureCompiler, MClass) */
2020 void nit___nit__SeparateErasureCompiler___nit__separate_compiler__SeparateCompiler__compile_class_to_c(val
* self
, val
* p0
) {
2021 val
* var_mclass
/* var mclass: MClass */;
2022 val
* var
/* : MClassDef */;
2023 val
* var2
/* : MClassDef */;
2024 val
* var3
/* : MClassType */;
2025 val
* var5
/* : MClassType */;
2026 val
* var_mtype
/* var mtype: MClassType */;
2027 val
* var6
/* : String */;
2028 val
* var_c_name
/* var c_name: String */;
2029 val
* var7
/* : Map[MClass, Array[nullable MPropDef]] */;
2030 val
* var9
/* : Map[MClass, Array[nullable MPropDef]] */;
2031 val
* var10
/* : nullable Object */;
2032 val
* var_vft
/* var vft: Array[nullable MPropDef] */;
2033 val
* var11
/* : Map[MClass, Array[nullable MPropDef]] */;
2034 val
* var13
/* : Map[MClass, Array[nullable MPropDef]] */;
2035 val
* var14
/* : nullable Object */;
2036 val
* var_attrs
/* var attrs: Array[nullable MPropDef] */;
2037 val
* var15
/* : Map[MClass, Array[nullable MClass]] */;
2038 val
* var17
/* : Map[MClass, Array[nullable MClass]] */;
2039 val
* var18
/* : nullable Object */;
2040 val
* var_class_table
/* var class_table: Array[nullable MClass] */;
2041 val
* var19
/* : SeparateCompilerVisitor */;
2042 val
* var_v
/* var v: SeparateCompilerVisitor */;
2043 val
* var20
/* : nullable RapidTypeAnalysis */;
2044 val
* var22
/* : nullable RapidTypeAnalysis */;
2045 val
* var_rta
/* var rta: nullable RapidTypeAnalysis */;
2046 short int var23
/* : Bool */;
2047 short int var_is_dead
/* var is_dead: Bool */;
2048 short int var24
/* : Bool */;
2049 short int var25
/* : Bool */;
2050 short int var26
/* : Bool */;
2051 short int var27
/* : Bool */;
2052 short int var28
/* : Bool */;
2053 short int var_
/* var : Bool */;
2054 val
* var29
/* : null */;
2055 short int var30
/* : Bool */;
2056 short int var31
/* : Bool */;
2057 val
* var_other
/* var other: nullable Object */;
2058 short int var33
/* : Bool */;
2059 short int var34
/* : Bool */;
2060 short int var_35
/* var : Bool */;
2061 val
* var36
/* : HashSet[MClass] */;
2062 val
* var38
/* : HashSet[MClass] */;
2063 short int var39
/* : Bool */;
2064 short int var40
/* : Bool */;
2065 short int var_41
/* var : Bool */;
2066 val
* var42
/* : String */;
2067 static val
* varonce
;
2068 val
* var43
/* : String */;
2069 char* var44
/* : NativeString */;
2070 long var45
/* : Int */;
2071 val
* var46
/* : FlatString */;
2072 short int var47
/* : Bool */;
2073 short int var_48
/* var : Bool */;
2074 val
* var49
/* : String */;
2075 val
* var51
/* : String */;
2076 static val
* varonce52
;
2077 val
* var53
/* : String */;
2078 char* var54
/* : NativeString */;
2079 long var55
/* : Int */;
2080 val
* var56
/* : FlatString */;
2081 short int var57
/* : Bool */;
2082 short int var59
/* : Bool */;
2083 short int var60
/* : Bool */;
2084 short int var61
/* : Bool */;
2085 static val
* varonce62
;
2086 val
* var63
/* : String */;
2087 char* var64
/* : NativeString */;
2088 long var65
/* : Int */;
2089 val
* var66
/* : FlatString */;
2090 static val
* varonce67
;
2091 val
* var68
/* : String */;
2092 char* var69
/* : NativeString */;
2093 long var70
/* : Int */;
2094 val
* var71
/* : FlatString */;
2095 val
* var72
/* : Array[Object] */;
2096 long var73
/* : Int */;
2097 val
* var74
/* : NativeArray[Object] */;
2098 val
* var75
/* : String */;
2099 static val
* varonce76
;
2100 val
* var77
/* : String */;
2101 char* var78
/* : NativeString */;
2102 long var79
/* : Int */;
2103 val
* var80
/* : FlatString */;
2104 val
* var81
/* : Array[Object] */;
2105 long var82
/* : Int */;
2106 val
* var83
/* : NativeArray[Object] */;
2107 val
* var84
/* : String */;
2108 static val
* varonce85
;
2109 val
* var86
/* : String */;
2110 char* var87
/* : NativeString */;
2111 long var88
/* : Int */;
2112 val
* var89
/* : FlatString */;
2113 static val
* varonce90
;
2114 val
* var91
/* : String */;
2115 char* var92
/* : NativeString */;
2116 long var93
/* : Int */;
2117 val
* var94
/* : FlatString */;
2118 val
* var95
/* : Array[Object] */;
2119 long var96
/* : Int */;
2120 val
* var97
/* : NativeArray[Object] */;
2121 val
* var98
/* : String */;
2122 static val
* varonce99
;
2123 val
* var100
/* : String */;
2124 char* var101
/* : NativeString */;
2125 long var102
/* : Int */;
2126 val
* var103
/* : FlatString */;
2127 static val
* varonce104
;
2128 val
* var105
/* : String */;
2129 char* var106
/* : NativeString */;
2130 long var107
/* : Int */;
2131 val
* var108
/* : FlatString */;
2132 val
* var109
/* : Array[Object] */;
2133 long var110
/* : Int */;
2134 val
* var111
/* : NativeArray[Object] */;
2135 val
* var112
/* : String */;
2136 static val
* varonce113
;
2137 val
* var114
/* : String */;
2138 char* var115
/* : NativeString */;
2139 long var116
/* : Int */;
2140 val
* var117
/* : FlatString */;
2141 static val
* varonce118
;
2142 val
* var119
/* : String */;
2143 char* var120
/* : NativeString */;
2144 long var121
/* : Int */;
2145 val
* var122
/* : FlatString */;
2146 val
* var123
/* : Array[Object] */;
2147 long var124
/* : Int */;
2148 val
* var125
/* : NativeArray[Object] */;
2149 val
* var126
/* : String */;
2150 val
* var127
/* : Map[MClass, Int] */;
2151 val
* var129
/* : Map[MClass, Int] */;
2152 val
* var130
/* : nullable Object */;
2153 static val
* varonce131
;
2154 val
* var132
/* : String */;
2155 char* var133
/* : NativeString */;
2156 long var134
/* : Int */;
2157 val
* var135
/* : FlatString */;
2158 val
* var136
/* : Array[Object] */;
2159 long var137
/* : Int */;
2160 val
* var138
/* : NativeArray[Object] */;
2161 val
* var139
/* : String */;
2162 static val
* varonce140
;
2163 val
* var141
/* : String */;
2164 char* var142
/* : NativeString */;
2165 long var143
/* : Int */;
2166 val
* var144
/* : FlatString */;
2167 val
* var145
/* : String */;
2168 val
* var147
/* : String */;
2169 static val
* varonce148
;
2170 val
* var149
/* : String */;
2171 char* var150
/* : NativeString */;
2172 long var151
/* : Int */;
2173 val
* var152
/* : FlatString */;
2174 val
* var153
/* : Array[Object] */;
2175 long var154
/* : Int */;
2176 val
* var155
/* : NativeArray[Object] */;
2177 val
* var156
/* : String */;
2178 long var157
/* : Int */;
2179 static val
* varonce158
;
2180 val
* var159
/* : String */;
2181 char* var160
/* : NativeString */;
2182 long var161
/* : Int */;
2183 val
* var162
/* : FlatString */;
2184 val
* var163
/* : Array[Object] */;
2185 long var164
/* : Int */;
2186 val
* var165
/* : NativeArray[Object] */;
2187 val
* var166
/* : Object */;
2188 val
* var167
/* : String */;
2189 val
* var168
/* : Map[MClass, Int] */;
2190 val
* var170
/* : Map[MClass, Int] */;
2191 val
* var171
/* : nullable Object */;
2192 static val
* varonce172
;
2193 val
* var173
/* : String */;
2194 char* var174
/* : NativeString */;
2195 long var175
/* : Int */;
2196 val
* var176
/* : FlatString */;
2197 val
* var177
/* : Array[Object] */;
2198 long var178
/* : Int */;
2199 val
* var179
/* : NativeArray[Object] */;
2200 val
* var180
/* : String */;
2201 short int var181
/* : Bool */;
2202 short int var182
/* : Bool */;
2203 static val
* varonce183
;
2204 val
* var184
/* : String */;
2205 char* var185
/* : NativeString */;
2206 long var186
/* : Int */;
2207 val
* var187
/* : FlatString */;
2208 val
* var188
/* : Array[Object] */;
2209 long var189
/* : Int */;
2210 val
* var190
/* : NativeArray[Object] */;
2211 val
* var191
/* : String */;
2212 static val
* varonce192
;
2213 val
* var193
/* : String */;
2214 char* var194
/* : NativeString */;
2215 long var195
/* : Int */;
2216 val
* var196
/* : FlatString */;
2217 static val
* varonce197
;
2218 val
* var198
/* : String */;
2219 char* var199
/* : NativeString */;
2220 long var200
/* : Int */;
2221 val
* var201
/* : FlatString */;
2222 val
* var202
/* : Array[Object] */;
2223 long var203
/* : Int */;
2224 val
* var204
/* : NativeArray[Object] */;
2225 val
* var205
/* : String */;
2226 static val
* varonce206
;
2227 val
* var207
/* : String */;
2228 char* var208
/* : NativeString */;
2229 long var209
/* : Int */;
2230 val
* var210
/* : FlatString */;
2231 static val
* varonce211
;
2232 val
* var212
/* : String */;
2233 char* var213
/* : NativeString */;
2234 long var214
/* : Int */;
2235 val
* var215
/* : FlatString */;
2236 static val
* varonce216
;
2237 val
* var217
/* : String */;
2238 char* var218
/* : NativeString */;
2239 long var219
/* : Int */;
2240 val
* var220
/* : FlatString */;
2241 val
* var221
/* : Array[Object] */;
2242 long var222
/* : Int */;
2243 val
* var223
/* : NativeArray[Object] */;
2244 val
* var224
/* : String */;
2245 static val
* varonce225
;
2246 val
* var226
/* : String */;
2247 char* var227
/* : NativeString */;
2248 long var228
/* : Int */;
2249 val
* var229
/* : FlatString */;
2250 long var230
/* : Int */;
2251 long var_i
/* var i: Int */;
2252 long var231
/* : Int */;
2253 long var233
/* : Int */;
2254 long var_234
/* var : Int */;
2255 short int var235
/* : Bool */;
2256 short int var237
/* : Bool */;
2259 const char* var_class_name
;
2260 short int var238
/* : Bool */;
2261 val
* var239
/* : nullable Object */;
2262 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
2263 val
* var240
/* : null */;
2264 short int var241
/* : Bool */;
2265 short int var242
/* : Bool */;
2266 val
* var_other244
/* var other: nullable Object */;
2267 short int var245
/* : Bool */;
2268 short int var247
/* : Bool */;
2269 static val
* varonce248
;
2270 val
* var249
/* : String */;
2271 char* var250
/* : NativeString */;
2272 long var251
/* : Int */;
2273 val
* var252
/* : FlatString */;
2274 short int var253
/* : Bool */;
2277 short int var256
/* : Bool */;
2278 val
* var257
/* : null */;
2279 short int var258
/* : Bool */;
2280 short int var259
/* : Bool */;
2281 short int var261
/* : Bool */;
2282 short int var262
/* : Bool */;
2283 short int var_263
/* var : Bool */;
2284 val
* var264
/* : HashSet[MMethodDef] */;
2285 val
* var266
/* : HashSet[MMethodDef] */;
2286 short int var267
/* : Bool */;
2287 short int var268
/* : Bool */;
2288 static val
* varonce269
;
2289 val
* var270
/* : String */;
2290 char* var271
/* : NativeString */;
2291 long var272
/* : Int */;
2292 val
* var273
/* : FlatString */;
2293 val
* var274
/* : MModule */;
2294 val
* var276
/* : MModule */;
2295 static val
* varonce277
;
2296 val
* var278
/* : String */;
2297 char* var279
/* : NativeString */;
2298 long var280
/* : Int */;
2299 val
* var281
/* : FlatString */;
2300 static val
* varonce282
;
2301 val
* var283
/* : String */;
2302 char* var284
/* : NativeString */;
2303 long var285
/* : Int */;
2304 val
* var286
/* : FlatString */;
2305 static val
* varonce287
;
2306 val
* var288
/* : String */;
2307 char* var289
/* : NativeString */;
2308 long var290
/* : Int */;
2309 val
* var291
/* : FlatString */;
2310 val
* var292
/* : Array[Object] */;
2311 long var293
/* : Int */;
2312 val
* var294
/* : NativeArray[Object] */;
2313 val
* var295
/* : String */;
2314 val
* var296
/* : SeparateRuntimeFunction */;
2315 val
* var_rf
/* var rf: SeparateRuntimeFunction */;
2316 val
* var297
/* : String */;
2317 static val
* varonce298
;
2318 val
* var299
/* : String */;
2319 char* var300
/* : NativeString */;
2320 long var301
/* : Int */;
2321 val
* var302
/* : FlatString */;
2322 val
* var303
/* : String */;
2323 static val
* varonce304
;
2324 val
* var305
/* : String */;
2325 char* var306
/* : NativeString */;
2326 long var307
/* : Int */;
2327 val
* var308
/* : FlatString */;
2328 val
* var309
/* : String */;
2329 static val
* varonce310
;
2330 val
* var311
/* : String */;
2331 char* var312
/* : NativeString */;
2332 long var313
/* : Int */;
2333 val
* var314
/* : FlatString */;
2334 val
* var315
/* : Array[Object] */;
2335 long var316
/* : Int */;
2336 val
* var317
/* : NativeArray[Object] */;
2337 val
* var318
/* : String */;
2338 long var319
/* : Int */;
2339 long var320
/* : Int */;
2340 static val
* varonce322
;
2341 val
* var323
/* : String */;
2342 char* var324
/* : NativeString */;
2343 long var325
/* : Int */;
2344 val
* var326
/* : FlatString */;
2345 static val
* varonce327
;
2346 val
* var328
/* : String */;
2347 char* var329
/* : NativeString */;
2348 long var330
/* : Int */;
2349 val
* var331
/* : FlatString */;
2350 static val
* varonce332
;
2351 val
* var333
/* : String */;
2352 char* var334
/* : NativeString */;
2353 long var335
/* : Int */;
2354 val
* var336
/* : FlatString */;
2355 static val
* varonce337
;
2356 val
* var338
/* : String */;
2357 char* var339
/* : NativeString */;
2358 long var340
/* : Int */;
2359 val
* var341
/* : FlatString */;
2360 val
* var342
/* : Array[Object] */;
2361 long var343
/* : Int */;
2362 val
* var344
/* : NativeArray[Object] */;
2363 val
* var345
/* : String */;
2364 long var346
/* : Int */;
2365 long var348
/* : Int */;
2366 static val
* varonce349
;
2367 val
* var350
/* : String */;
2368 char* var351
/* : NativeString */;
2369 long var352
/* : Int */;
2370 val
* var353
/* : FlatString */;
2371 val
* var354
/* : Array[Object] */;
2372 long var355
/* : Int */;
2373 val
* var356
/* : NativeArray[Object] */;
2374 val
* var357
/* : Object */;
2375 val
* var358
/* : String */;
2376 static val
* varonce359
;
2377 val
* var360
/* : String */;
2378 char* var361
/* : NativeString */;
2379 long var362
/* : Int */;
2380 val
* var363
/* : FlatString */;
2381 val
* var_364
/* var : Array[nullable MClass] */;
2382 val
* var365
/* : ArrayIterator[nullable Object] */;
2383 val
* var_366
/* var : ArrayIterator[nullable MClass] */;
2384 short int var367
/* : Bool */;
2385 val
* var368
/* : nullable Object */;
2386 val
* var_msuper
/* var msuper: nullable MClass */;
2387 val
* var369
/* : null */;
2388 short int var370
/* : Bool */;
2389 short int var371
/* : Bool */;
2390 short int var373
/* : Bool */;
2391 short int var375
/* : Bool */;
2392 static val
* varonce376
;
2393 val
* var377
/* : String */;
2394 char* var378
/* : NativeString */;
2395 long var379
/* : Int */;
2396 val
* var380
/* : FlatString */;
2397 val
* var381
/* : Map[MClass, Int] */;
2398 val
* var383
/* : Map[MClass, Int] */;
2399 val
* var384
/* : nullable Object */;
2400 static val
* varonce385
;
2401 val
* var386
/* : String */;
2402 char* var387
/* : NativeString */;
2403 long var388
/* : Int */;
2404 val
* var389
/* : FlatString */;
2405 static val
* varonce390
;
2406 val
* var391
/* : String */;
2407 char* var392
/* : NativeString */;
2408 long var393
/* : Int */;
2409 val
* var394
/* : FlatString */;
2410 val
* var395
/* : Array[Object] */;
2411 long var396
/* : Int */;
2412 val
* var397
/* : NativeArray[Object] */;
2413 val
* var398
/* : String */;
2414 static val
* varonce401
;
2415 val
* var402
/* : String */;
2416 char* var403
/* : NativeString */;
2417 long var404
/* : Int */;
2418 val
* var405
/* : FlatString */;
2419 static val
* varonce406
;
2420 val
* var407
/* : String */;
2421 char* var408
/* : NativeString */;
2422 long var409
/* : Int */;
2423 val
* var410
/* : FlatString */;
2424 short int var411
/* : Bool */;
2425 val
* var412
/* : String */;
2426 static val
* varonce413
;
2427 val
* var414
/* : String */;
2428 char* var415
/* : NativeString */;
2429 long var416
/* : Int */;
2430 val
* var417
/* : FlatString */;
2431 short int var418
/* : Bool */;
2432 short int var420
/* : Bool */;
2433 short int var421
/* : Bool */;
2434 short int var_422
/* var : Bool */;
2435 val
* var423
/* : MClass */;
2436 val
* var425
/* : MClass */;
2437 val
* var426
/* : String */;
2438 val
* var428
/* : String */;
2439 static val
* varonce429
;
2440 val
* var430
/* : String */;
2441 char* var431
/* : NativeString */;
2442 long var432
/* : Int */;
2443 val
* var433
/* : FlatString */;
2444 short int var434
/* : Bool */;
2445 val
* var435
/* : CodeWriter */;
2446 val
* var437
/* : CodeWriter */;
2447 static val
* varonce438
;
2448 val
* var439
/* : String */;
2449 char* var440
/* : NativeString */;
2450 long var441
/* : Int */;
2451 val
* var442
/* : FlatString */;
2452 static val
* varonce443
;
2453 val
* var444
/* : String */;
2454 char* var445
/* : NativeString */;
2455 long var446
/* : Int */;
2456 val
* var447
/* : FlatString */;
2457 val
* var448
/* : Array[Object] */;
2458 long var449
/* : Int */;
2459 val
* var450
/* : NativeArray[Object] */;
2460 val
* var451
/* : String */;
2461 val
* var452
/* : CodeWriter */;
2462 val
* var454
/* : CodeWriter */;
2463 static val
* varonce455
;
2464 val
* var456
/* : String */;
2465 char* var457
/* : NativeString */;
2466 long var458
/* : Int */;
2467 val
* var459
/* : FlatString */;
2468 val
* var460
/* : CodeWriter */;
2469 val
* var462
/* : CodeWriter */;
2470 val
* var463
/* : String */;
2471 static val
* varonce464
;
2472 val
* var465
/* : String */;
2473 char* var466
/* : NativeString */;
2474 long var467
/* : Int */;
2475 val
* var468
/* : FlatString */;
2476 val
* var469
/* : Array[Object] */;
2477 long var470
/* : Int */;
2478 val
* var471
/* : NativeArray[Object] */;
2479 val
* var472
/* : String */;
2480 val
* var473
/* : CodeWriter */;
2481 val
* var475
/* : CodeWriter */;
2482 static val
* varonce476
;
2483 val
* var477
/* : String */;
2484 char* var478
/* : NativeString */;
2485 long var479
/* : Int */;
2486 val
* var480
/* : FlatString */;
2487 static val
* varonce481
;
2488 val
* var482
/* : String */;
2489 char* var483
/* : NativeString */;
2490 long var484
/* : Int */;
2491 val
* var485
/* : FlatString */;
2492 val
* var486
/* : Array[Object] */;
2493 long var487
/* : Int */;
2494 val
* var488
/* : NativeArray[Object] */;
2495 val
* var489
/* : String */;
2496 static val
* varonce490
;
2497 val
* var491
/* : String */;
2498 char* var492
/* : NativeString */;
2499 long var493
/* : Int */;
2500 val
* var494
/* : FlatString */;
2501 static val
* varonce495
;
2502 val
* var496
/* : String */;
2503 char* var497
/* : NativeString */;
2504 long var498
/* : Int */;
2505 val
* var499
/* : FlatString */;
2506 val
* var500
/* : String */;
2507 static val
* varonce501
;
2508 val
* var502
/* : String */;
2509 char* var503
/* : NativeString */;
2510 long var504
/* : Int */;
2511 val
* var505
/* : FlatString */;
2512 val
* var506
/* : Array[Object] */;
2513 long var507
/* : Int */;
2514 val
* var508
/* : NativeArray[Object] */;
2515 val
* var509
/* : String */;
2516 static val
* varonce510
;
2517 val
* var511
/* : String */;
2518 char* var512
/* : NativeString */;
2519 long var513
/* : Int */;
2520 val
* var514
/* : FlatString */;
2521 static val
* varonce515
;
2522 val
* var516
/* : String */;
2523 char* var517
/* : NativeString */;
2524 long var518
/* : Int */;
2525 val
* var519
/* : FlatString */;
2526 val
* var520
/* : Array[Object] */;
2527 long var521
/* : Int */;
2528 val
* var522
/* : NativeArray[Object] */;
2529 val
* var523
/* : String */;
2530 static val
* varonce524
;
2531 val
* var525
/* : String */;
2532 char* var526
/* : NativeString */;
2533 long var527
/* : Int */;
2534 val
* var528
/* : FlatString */;
2535 val
* var529
/* : String */;
2536 static val
* varonce530
;
2537 val
* var531
/* : String */;
2538 char* var532
/* : NativeString */;
2539 long var533
/* : Int */;
2540 val
* var534
/* : FlatString */;
2541 val
* var535
/* : String */;
2542 static val
* varonce536
;
2543 val
* var537
/* : String */;
2544 char* var538
/* : NativeString */;
2545 long var539
/* : Int */;
2546 val
* var540
/* : FlatString */;
2547 val
* var541
/* : Array[Object] */;
2548 long var542
/* : Int */;
2549 val
* var543
/* : NativeArray[Object] */;
2550 val
* var544
/* : String */;
2551 static val
* varonce545
;
2552 val
* var546
/* : String */;
2553 char* var547
/* : NativeString */;
2554 long var548
/* : Int */;
2555 val
* var549
/* : FlatString */;
2556 static val
* varonce550
;
2557 val
* var551
/* : String */;
2558 char* var552
/* : NativeString */;
2559 long var553
/* : Int */;
2560 val
* var554
/* : FlatString */;
2561 static val
* varonce555
;
2562 val
* var556
/* : String */;
2563 char* var557
/* : NativeString */;
2564 long var558
/* : Int */;
2565 val
* var559
/* : FlatString */;
2566 val
* var560
/* : Array[Object] */;
2567 long var561
/* : Int */;
2568 val
* var562
/* : NativeArray[Object] */;
2569 val
* var563
/* : String */;
2570 static val
* varonce564
;
2571 val
* var565
/* : String */;
2572 char* var566
/* : NativeString */;
2573 long var567
/* : Int */;
2574 val
* var568
/* : FlatString */;
2575 val
* var569
/* : Array[Object] */;
2576 long var570
/* : Int */;
2577 val
* var571
/* : NativeArray[Object] */;
2578 val
* var572
/* : String */;
2579 static val
* varonce573
;
2580 val
* var574
/* : String */;
2581 char* var575
/* : NativeString */;
2582 long var576
/* : Int */;
2583 val
* var577
/* : FlatString */;
2584 static val
* varonce578
;
2585 val
* var579
/* : String */;
2586 char* var580
/* : NativeString */;
2587 long var581
/* : Int */;
2588 val
* var582
/* : FlatString */;
2589 val
* var583
/* : Array[Object] */;
2590 long var584
/* : Int */;
2591 val
* var585
/* : NativeArray[Object] */;
2592 val
* var586
/* : String */;
2593 static val
* varonce587
;
2594 val
* var588
/* : String */;
2595 char* var589
/* : NativeString */;
2596 long var590
/* : Int */;
2597 val
* var591
/* : FlatString */;
2598 static val
* varonce592
;
2599 val
* var593
/* : String */;
2600 char* var594
/* : NativeString */;
2601 long var595
/* : Int */;
2602 val
* var596
/* : FlatString */;
2603 static val
* varonce597
;
2604 val
* var598
/* : String */;
2605 char* var599
/* : NativeString */;
2606 long var600
/* : Int */;
2607 val
* var601
/* : FlatString */;
2608 val
* var602
/* : MClass */;
2609 val
* var604
/* : MClass */;
2610 val
* var605
/* : String */;
2611 val
* var607
/* : String */;
2612 static val
* varonce608
;
2613 val
* var609
/* : String */;
2614 char* var610
/* : NativeString */;
2615 long var611
/* : Int */;
2616 val
* var612
/* : FlatString */;
2617 short int var613
/* : Bool */;
2618 short int var615
/* : Bool */;
2619 short int var616
/* : Bool */;
2620 val
* var617
/* : SeparateCompilerVisitor */;
2621 static val
* varonce618
;
2622 val
* var619
/* : String */;
2623 char* var620
/* : NativeString */;
2624 long var621
/* : Int */;
2625 val
* var622
/* : FlatString */;
2626 val
* var623
/* : Array[Object] */;
2627 long var624
/* : Int */;
2628 val
* var625
/* : NativeArray[Object] */;
2629 val
* var626
/* : String */;
2630 val
* var627
/* : String */;
2631 static val
* varonce628
;
2632 val
* var629
/* : String */;
2633 char* var630
/* : NativeString */;
2634 long var631
/* : Int */;
2635 val
* var632
/* : FlatString */;
2636 static val
* varonce633
;
2637 val
* var634
/* : String */;
2638 char* var635
/* : NativeString */;
2639 long var636
/* : Int */;
2640 val
* var637
/* : FlatString */;
2641 val
* var638
/* : Array[Object] */;
2642 long var639
/* : Int */;
2643 val
* var640
/* : NativeArray[Object] */;
2644 val
* var641
/* : String */;
2645 static val
* varonce642
;
2646 val
* var643
/* : String */;
2647 char* var644
/* : NativeString */;
2648 long var645
/* : Int */;
2649 val
* var646
/* : FlatString */;
2650 static val
* varonce647
;
2651 val
* var648
/* : String */;
2652 char* var649
/* : NativeString */;
2653 long var650
/* : Int */;
2654 val
* var651
/* : FlatString */;
2655 val
* var652
/* : Array[Object] */;
2656 long var653
/* : Int */;
2657 val
* var654
/* : NativeArray[Object] */;
2658 val
* var655
/* : String */;
2659 val
* var656
/* : String */;
2660 static val
* varonce657
;
2661 val
* var658
/* : String */;
2662 char* var659
/* : NativeString */;
2663 long var660
/* : Int */;
2664 val
* var661
/* : FlatString */;
2665 static val
* varonce662
;
2666 val
* var663
/* : String */;
2667 char* var664
/* : NativeString */;
2668 long var665
/* : Int */;
2669 val
* var666
/* : FlatString */;
2670 val
* var667
/* : Array[Object] */;
2671 long var668
/* : Int */;
2672 val
* var669
/* : NativeArray[Object] */;
2673 val
* var670
/* : String */;
2674 static val
* varonce671
;
2675 val
* var672
/* : String */;
2676 char* var673
/* : NativeString */;
2677 long var674
/* : Int */;
2678 val
* var675
/* : FlatString */;
2679 val
* var676
/* : Array[Object] */;
2680 long var677
/* : Int */;
2681 val
* var678
/* : NativeArray[Object] */;
2682 val
* var679
/* : String */;
2683 static val
* varonce680
;
2684 val
* var681
/* : String */;
2685 char* var682
/* : NativeString */;
2686 long var683
/* : Int */;
2687 val
* var684
/* : FlatString */;
2688 val
* var685
/* : RuntimeVariable */;
2689 val
* var_res
/* var res: RuntimeVariable */;
2690 short int var686
/* : Bool */;
2691 static val
* varonce688
;
2692 val
* var689
/* : String */;
2693 char* var690
/* : NativeString */;
2694 long var691
/* : Int */;
2695 val
* var692
/* : FlatString */;
2696 val
* var693
/* : String */;
2697 static val
* varonce694
;
2698 val
* var695
/* : String */;
2699 char* var696
/* : NativeString */;
2700 long var697
/* : Int */;
2701 val
* var698
/* : FlatString */;
2702 val
* var699
/* : Array[Object] */;
2703 long var700
/* : Int */;
2704 val
* var701
/* : NativeArray[Object] */;
2705 val
* var702
/* : String */;
2706 static val
* varonce703
;
2707 val
* var704
/* : String */;
2708 char* var705
/* : NativeString */;
2709 long var706
/* : Int */;
2710 val
* var707
/* : FlatString */;
2711 val
* var708
/* : Array[Object] */;
2712 long var709
/* : Int */;
2713 val
* var710
/* : NativeArray[Object] */;
2714 val
* var711
/* : String */;
2715 static val
* varonce712
;
2716 val
* var713
/* : String */;
2717 char* var714
/* : NativeString */;
2718 long var715
/* : Int */;
2719 val
* var716
/* : FlatString */;
2720 static val
* varonce717
;
2721 val
* var718
/* : String */;
2722 char* var719
/* : NativeString */;
2723 long var720
/* : Int */;
2724 val
* var721
/* : FlatString */;
2725 val
* var722
/* : Array[Object] */;
2726 long var723
/* : Int */;
2727 val
* var724
/* : NativeArray[Object] */;
2728 val
* var725
/* : String */;
2729 static val
* varonce726
;
2730 val
* var727
/* : String */;
2731 char* var728
/* : NativeString */;
2732 long var729
/* : Int */;
2733 val
* var730
/* : FlatString */;
2734 val
* var731
/* : String */;
2735 static val
* varonce732
;
2736 val
* var733
/* : String */;
2737 char* var734
/* : NativeString */;
2738 long var735
/* : Int */;
2739 val
* var736
/* : FlatString */;
2740 static val
* varonce737
;
2741 val
* var738
/* : String */;
2742 char* var739
/* : NativeString */;
2743 long var740
/* : Int */;
2744 val
* var741
/* : FlatString */;
2745 val
* var742
/* : Array[Object] */;
2746 long var743
/* : Int */;
2747 val
* var744
/* : NativeArray[Object] */;
2748 val
* var745
/* : String */;
2749 static val
* varonce746
;
2750 val
* var747
/* : String */;
2751 char* var748
/* : NativeString */;
2752 long var749
/* : Int */;
2753 val
* var750
/* : FlatString */;
2754 static val
* varonce751
;
2755 val
* var752
/* : String */;
2756 char* var753
/* : NativeString */;
2757 long var754
/* : Int */;
2758 val
* var755
/* : FlatString */;
2759 val
* var756
/* : Array[Object] */;
2760 long var757
/* : Int */;
2761 val
* var758
/* : NativeArray[Object] */;
2762 val
* var759
/* : String */;
2763 static val
* varonce760
;
2764 val
* var761
/* : String */;
2765 char* var762
/* : NativeString */;
2766 long var763
/* : Int */;
2767 val
* var764
/* : FlatString */;
2768 val
* var765
/* : String */;
2769 val
* var767
/* : String */;
2770 static val
* varonce768
;
2771 val
* var769
/* : String */;
2772 char* var770
/* : NativeString */;
2773 long var771
/* : Int */;
2774 val
* var772
/* : FlatString */;
2775 short int var773
/* : Bool */;
2776 val
* var774
/* : CodeWriter */;
2777 val
* var776
/* : CodeWriter */;
2778 static val
* varonce777
;
2779 val
* var778
/* : String */;
2780 char* var779
/* : NativeString */;
2781 long var780
/* : Int */;
2782 val
* var781
/* : FlatString */;
2783 static val
* varonce782
;
2784 val
* var783
/* : String */;
2785 char* var784
/* : NativeString */;
2786 long var785
/* : Int */;
2787 val
* var786
/* : FlatString */;
2788 val
* var787
/* : Array[Object] */;
2789 long var788
/* : Int */;
2790 val
* var789
/* : NativeArray[Object] */;
2791 val
* var790
/* : String */;
2792 val
* var791
/* : CodeWriter */;
2793 val
* var793
/* : CodeWriter */;
2794 static val
* varonce794
;
2795 val
* var795
/* : String */;
2796 char* var796
/* : NativeString */;
2797 long var797
/* : Int */;
2798 val
* var798
/* : FlatString */;
2799 val
* var799
/* : CodeWriter */;
2800 val
* var801
/* : CodeWriter */;
2801 static val
* varonce802
;
2802 val
* var803
/* : String */;
2803 char* var804
/* : NativeString */;
2804 long var805
/* : Int */;
2805 val
* var806
/* : FlatString */;
2806 val
* var807
/* : CodeWriter */;
2807 val
* var809
/* : CodeWriter */;
2808 static val
* varonce810
;
2809 val
* var811
/* : String */;
2810 char* var812
/* : NativeString */;
2811 long var813
/* : Int */;
2812 val
* var814
/* : FlatString */;
2813 val
* var815
/* : CodeWriter */;
2814 val
* var817
/* : CodeWriter */;
2815 static val
* varonce818
;
2816 val
* var819
/* : String */;
2817 char* var820
/* : NativeString */;
2818 long var821
/* : Int */;
2819 val
* var822
/* : FlatString */;
2820 static val
* varonce823
;
2821 val
* var824
/* : String */;
2822 char* var825
/* : NativeString */;
2823 long var826
/* : Int */;
2824 val
* var827
/* : FlatString */;
2825 val
* var828
/* : Array[Object] */;
2826 long var829
/* : Int */;
2827 val
* var830
/* : NativeArray[Object] */;
2828 val
* var831
/* : String */;
2829 val
* var832
/* : String */;
2830 static val
* varonce833
;
2831 val
* var834
/* : String */;
2832 char* var835
/* : NativeString */;
2833 long var836
/* : Int */;
2834 val
* var837
/* : FlatString */;
2835 static val
* varonce838
;
2836 val
* var839
/* : String */;
2837 char* var840
/* : NativeString */;
2838 long var841
/* : Int */;
2839 val
* var842
/* : FlatString */;
2840 val
* var843
/* : Array[Object] */;
2841 long var844
/* : Int */;
2842 val
* var845
/* : NativeArray[Object] */;
2843 val
* var846
/* : String */;
2844 static val
* varonce847
;
2845 val
* var848
/* : String */;
2846 char* var849
/* : NativeString */;
2847 long var850
/* : Int */;
2848 val
* var851
/* : FlatString */;
2849 static val
* varonce852
;
2850 val
* var853
/* : String */;
2851 char* var854
/* : NativeString */;
2852 long var855
/* : Int */;
2853 val
* var856
/* : FlatString */;
2854 val
* var857
/* : Array[Object] */;
2855 long var858
/* : Int */;
2856 val
* var859
/* : NativeArray[Object] */;
2857 val
* var860
/* : String */;
2858 val
* var861
/* : String */;
2859 static val
* varonce862
;
2860 val
* var863
/* : String */;
2861 char* var864
/* : NativeString */;
2862 long var865
/* : Int */;
2863 val
* var866
/* : FlatString */;
2864 static val
* varonce867
;
2865 val
* var868
/* : String */;
2866 char* var869
/* : NativeString */;
2867 long var870
/* : Int */;
2868 val
* var871
/* : FlatString */;
2869 val
* var872
/* : Array[Object] */;
2870 long var873
/* : Int */;
2871 val
* var874
/* : NativeArray[Object] */;
2872 val
* var875
/* : String */;
2873 static val
* varonce876
;
2874 val
* var877
/* : String */;
2875 char* var878
/* : NativeString */;
2876 long var879
/* : Int */;
2877 val
* var880
/* : FlatString */;
2878 val
* var881
/* : String */;
2879 val
* var_res882
/* var res: String */;
2880 static val
* varonce883
;
2881 val
* var884
/* : String */;
2882 char* var885
/* : NativeString */;
2883 long var886
/* : Int */;
2884 val
* var887
/* : FlatString */;
2885 static val
* varonce888
;
2886 val
* var889
/* : String */;
2887 char* var890
/* : NativeString */;
2888 long var891
/* : Int */;
2889 val
* var892
/* : FlatString */;
2890 static val
* varonce893
;
2891 val
* var894
/* : String */;
2892 char* var895
/* : NativeString */;
2893 long var896
/* : Int */;
2894 val
* var897
/* : FlatString */;
2895 val
* var898
/* : Array[Object] */;
2896 long var899
/* : Int */;
2897 val
* var900
/* : NativeArray[Object] */;
2898 val
* var901
/* : String */;
2899 val
* var902
/* : Array[MType] */;
2900 val
* var903
/* : nullable Object */;
2901 val
* var_mtype_elt
/* var mtype_elt: MType */;
2902 static val
* varonce904
;
2903 val
* var905
/* : String */;
2904 char* var906
/* : NativeString */;
2905 long var907
/* : Int */;
2906 val
* var908
/* : FlatString */;
2907 static val
* varonce909
;
2908 val
* var910
/* : String */;
2909 char* var911
/* : NativeString */;
2910 long var912
/* : Int */;
2911 val
* var913
/* : FlatString */;
2912 val
* var914
/* : String */;
2913 static val
* varonce915
;
2914 val
* var916
/* : String */;
2915 char* var917
/* : NativeString */;
2916 long var918
/* : Int */;
2917 val
* var919
/* : FlatString */;
2918 val
* var920
/* : Array[Object] */;
2919 long var921
/* : Int */;
2920 val
* var922
/* : NativeArray[Object] */;
2921 val
* var923
/* : String */;
2922 static val
* varonce924
;
2923 val
* var925
/* : String */;
2924 char* var926
/* : NativeString */;
2925 long var927
/* : Int */;
2926 val
* var928
/* : FlatString */;
2927 val
* var929
/* : Array[Object] */;
2928 long var930
/* : Int */;
2929 val
* var931
/* : NativeArray[Object] */;
2930 val
* var932
/* : String */;
2931 static val
* varonce933
;
2932 val
* var934
/* : String */;
2933 char* var935
/* : NativeString */;
2934 long var936
/* : Int */;
2935 val
* var937
/* : FlatString */;
2936 static val
* varonce938
;
2937 val
* var939
/* : String */;
2938 char* var940
/* : NativeString */;
2939 long var941
/* : Int */;
2940 val
* var942
/* : FlatString */;
2941 val
* var943
/* : Array[Object] */;
2942 long var944
/* : Int */;
2943 val
* var945
/* : NativeArray[Object] */;
2944 val
* var946
/* : String */;
2945 static val
* varonce947
;
2946 val
* var948
/* : String */;
2947 char* var949
/* : NativeString */;
2948 long var950
/* : Int */;
2949 val
* var951
/* : FlatString */;
2950 val
* var952
/* : Array[Object] */;
2951 long var953
/* : Int */;
2952 val
* var954
/* : NativeArray[Object] */;
2953 val
* var955
/* : String */;
2954 static val
* varonce956
;
2955 val
* var957
/* : String */;
2956 char* var958
/* : NativeString */;
2957 long var959
/* : Int */;
2958 val
* var960
/* : FlatString */;
2959 static val
* varonce961
;
2960 val
* var962
/* : String */;
2961 char* var963
/* : NativeString */;
2962 long var964
/* : Int */;
2963 val
* var965
/* : FlatString */;
2964 val
* var966
/* : Array[Object] */;
2965 long var967
/* : Int */;
2966 val
* var968
/* : NativeArray[Object] */;
2967 val
* var969
/* : String */;
2968 static val
* varonce970
;
2969 val
* var971
/* : String */;
2970 char* var972
/* : NativeString */;
2971 long var973
/* : Int */;
2972 val
* var974
/* : FlatString */;
2973 short int var975
/* : Bool */;
2974 val
* var976
/* : MClass */;
2975 val
* var978
/* : MClass */;
2976 val
* var979
/* : MClassKind */;
2977 val
* var981
/* : MClassKind */;
2978 val
* var982
/* : MClassKind */;
2979 short int var983
/* : Bool */;
2980 short int var985
/* : Bool */;
2981 short int var987
/* : Bool */;
2982 short int var_988
/* var : Bool */;
2983 val
* var989
/* : MClass */;
2984 val
* var991
/* : MClass */;
2985 val
* var992
/* : String */;
2986 val
* var994
/* : String */;
2987 static val
* varonce995
;
2988 val
* var996
/* : String */;
2989 char* var997
/* : NativeString */;
2990 long var998
/* : Int */;
2991 val
* var999
/* : FlatString */;
2992 short int var1000
/* : Bool */;
2993 short int var1002
/* : Bool */;
2994 short int var1003
/* : Bool */;
2995 val
* var1004
/* : MModule */;
2996 val
* var1006
/* : MModule */;
2997 val
* var1007
/* : MClassType */;
2998 val
* var_pointer_type
/* var pointer_type: MClassType */;
2999 static val
* varonce1008
;
3000 val
* var1009
/* : String */;
3001 char* var1010
/* : NativeString */;
3002 long var1011
/* : Int */;
3003 val
* var1012
/* : FlatString */;
3004 val
* var1013
/* : Array[Object] */;
3005 long var1014
/* : Int */;
3006 val
* var1015
/* : NativeArray[Object] */;
3007 val
* var1016
/* : String */;
3008 val
* var1017
/* : String */;
3009 static val
* varonce1018
;
3010 val
* var1019
/* : String */;
3011 char* var1020
/* : NativeString */;
3012 long var1021
/* : Int */;
3013 val
* var1022
/* : FlatString */;
3014 static val
* varonce1023
;
3015 val
* var1024
/* : String */;
3016 char* var1025
/* : NativeString */;
3017 long var1026
/* : Int */;
3018 val
* var1027
/* : FlatString */;
3019 val
* var1028
/* : Array[Object] */;
3020 long var1029
/* : Int */;
3021 val
* var1030
/* : NativeArray[Object] */;
3022 val
* var1031
/* : String */;
3023 static val
* varonce1032
;
3024 val
* var1033
/* : String */;
3025 char* var1034
/* : NativeString */;
3026 long var1035
/* : Int */;
3027 val
* var1036
/* : FlatString */;
3028 static val
* varonce1037
;
3029 val
* var1038
/* : String */;
3030 char* var1039
/* : NativeString */;
3031 long var1040
/* : Int */;
3032 val
* var1041
/* : FlatString */;
3033 val
* var1042
/* : Array[Object] */;
3034 long var1043
/* : Int */;
3035 val
* var1044
/* : NativeArray[Object] */;
3036 val
* var1045
/* : String */;
3037 val
* var1046
/* : String */;
3038 static val
* varonce1047
;
3039 val
* var1048
/* : String */;
3040 char* var1049
/* : NativeString */;
3041 long var1050
/* : Int */;
3042 val
* var1051
/* : FlatString */;
3043 static val
* varonce1052
;
3044 val
* var1053
/* : String */;
3045 char* var1054
/* : NativeString */;
3046 long var1055
/* : Int */;
3047 val
* var1056
/* : FlatString */;
3048 val
* var1057
/* : Array[Object] */;
3049 long var1058
/* : Int */;
3050 val
* var1059
/* : NativeArray[Object] */;
3051 val
* var1060
/* : String */;
3052 static val
* varonce1061
;
3053 val
* var1062
/* : String */;
3054 char* var1063
/* : NativeString */;
3055 long var1064
/* : Int */;
3056 val
* var1065
/* : FlatString */;
3057 val
* var1066
/* : Array[Object] */;
3058 long var1067
/* : Int */;
3059 val
* var1068
/* : NativeArray[Object] */;
3060 val
* var1069
/* : String */;
3061 static val
* varonce1070
;
3062 val
* var1071
/* : String */;
3063 char* var1072
/* : NativeString */;
3064 long var1073
/* : Int */;
3065 val
* var1074
/* : FlatString */;
3066 val
* var1075
/* : RuntimeVariable */;
3067 val
* var_res1076
/* var res: RuntimeVariable */;
3068 short int var1077
/* : Bool */;
3069 static val
* varonce1079
;
3070 val
* var1080
/* : String */;
3071 char* var1081
/* : NativeString */;
3072 long var1082
/* : Int */;
3073 val
* var1083
/* : FlatString */;
3074 val
* var1084
/* : String */;
3075 static val
* varonce1085
;
3076 val
* var1086
/* : String */;
3077 char* var1087
/* : NativeString */;
3078 long var1088
/* : Int */;
3079 val
* var1089
/* : FlatString */;
3080 val
* var1090
/* : Array[Object] */;
3081 long var1091
/* : Int */;
3082 val
* var1092
/* : NativeArray[Object] */;
3083 val
* var1093
/* : String */;
3084 static val
* varonce1094
;
3085 val
* var1095
/* : String */;
3086 char* var1096
/* : NativeString */;
3087 long var1097
/* : Int */;
3088 val
* var1098
/* : FlatString */;
3089 val
* var1099
/* : Array[Object] */;
3090 long var1100
/* : Int */;
3091 val
* var1101
/* : NativeArray[Object] */;
3092 val
* var1102
/* : String */;
3093 static val
* varonce1103
;
3094 val
* var1104
/* : String */;
3095 char* var1105
/* : NativeString */;
3096 long var1106
/* : Int */;
3097 val
* var1107
/* : FlatString */;
3098 static val
* varonce1108
;
3099 val
* var1109
/* : String */;
3100 char* var1110
/* : NativeString */;
3101 long var1111
/* : Int */;
3102 val
* var1112
/* : FlatString */;
3103 val
* var1113
/* : Array[Object] */;
3104 long var1114
/* : Int */;
3105 val
* var1115
/* : NativeArray[Object] */;
3106 val
* var1116
/* : String */;
3107 static val
* varonce1117
;
3108 val
* var1118
/* : String */;
3109 char* var1119
/* : NativeString */;
3110 long var1120
/* : Int */;
3111 val
* var1121
/* : FlatString */;
3112 val
* var1122
/* : String */;
3113 static val
* varonce1123
;
3114 val
* var1124
/* : String */;
3115 char* var1125
/* : NativeString */;
3116 long var1126
/* : Int */;
3117 val
* var1127
/* : FlatString */;
3118 static val
* varonce1128
;
3119 val
* var1129
/* : String */;
3120 char* var1130
/* : NativeString */;
3121 long var1131
/* : Int */;
3122 val
* var1132
/* : FlatString */;
3123 val
* var1133
/* : Array[Object] */;
3124 long var1134
/* : Int */;
3125 val
* var1135
/* : NativeArray[Object] */;
3126 val
* var1136
/* : String */;
3127 static val
* varonce1137
;
3128 val
* var1138
/* : String */;
3129 char* var1139
/* : NativeString */;
3130 long var1140
/* : Int */;
3131 val
* var1141
/* : FlatString */;
3132 static val
* varonce1142
;
3133 val
* var1143
/* : String */;
3134 char* var1144
/* : NativeString */;
3135 long var1145
/* : Int */;
3136 val
* var1146
/* : FlatString */;
3137 val
* var1147
/* : Array[Object] */;
3138 long var1148
/* : Int */;
3139 val
* var1149
/* : NativeArray[Object] */;
3140 val
* var1150
/* : String */;
3141 static val
* varonce1151
;
3142 val
* var1152
/* : String */;
3143 char* var1153
/* : NativeString */;
3144 long var1154
/* : Int */;
3145 val
* var1155
/* : FlatString */;
3146 static val
* varonce1156
;
3147 val
* var1157
/* : String */;
3148 char* var1158
/* : NativeString */;
3149 long var1159
/* : Int */;
3150 val
* var1160
/* : FlatString */;
3151 val
* var1161
/* : Array[Object] */;
3152 long var1162
/* : Int */;
3153 val
* var1163
/* : NativeArray[Object] */;
3154 val
* var1164
/* : String */;
3155 val
* var1165
/* : String */;
3156 static val
* varonce1166
;
3157 val
* var1167
/* : String */;
3158 char* var1168
/* : NativeString */;
3159 long var1169
/* : Int */;
3160 val
* var1170
/* : FlatString */;
3161 static val
* varonce1171
;
3162 val
* var1172
/* : String */;
3163 char* var1173
/* : NativeString */;
3164 long var1174
/* : Int */;
3165 val
* var1175
/* : FlatString */;
3166 val
* var1176
/* : Array[Object] */;
3167 long var1177
/* : Int */;
3168 val
* var1178
/* : NativeArray[Object] */;
3169 val
* var1179
/* : String */;
3170 static val
* varonce1180
;
3171 val
* var1181
/* : String */;
3172 char* var1182
/* : NativeString */;
3173 long var1183
/* : Int */;
3174 val
* var1184
/* : FlatString */;
3175 static val
* varonce1185
;
3176 val
* var1186
/* : String */;
3177 char* var1187
/* : NativeString */;
3178 long var1188
/* : Int */;
3179 val
* var1189
/* : FlatString */;
3180 val
* var1190
/* : Array[Object] */;
3181 long var1191
/* : Int */;
3182 val
* var1192
/* : NativeArray[Object] */;
3183 val
* var1193
/* : String */;
3184 val
* var1194
/* : String */;
3185 static val
* varonce1195
;
3186 val
* var1196
/* : String */;
3187 char* var1197
/* : NativeString */;
3188 long var1198
/* : Int */;
3189 val
* var1199
/* : FlatString */;
3190 static val
* varonce1200
;
3191 val
* var1201
/* : String */;
3192 char* var1202
/* : NativeString */;
3193 long var1203
/* : Int */;
3194 val
* var1204
/* : FlatString */;
3195 val
* var1205
/* : Array[Object] */;
3196 long var1206
/* : Int */;
3197 val
* var1207
/* : NativeArray[Object] */;
3198 val
* var1208
/* : String */;
3199 static val
* varonce1209
;
3200 val
* var1210
/* : String */;
3201 char* var1211
/* : NativeString */;
3202 long var1212
/* : Int */;
3203 val
* var1213
/* : FlatString */;
3204 val
* var1214
/* : Array[Object] */;
3205 long var1215
/* : Int */;
3206 val
* var1216
/* : NativeArray[Object] */;
3207 val
* var1217
/* : String */;
3208 static val
* varonce1218
;
3209 val
* var1219
/* : String */;
3210 char* var1220
/* : NativeString */;
3211 long var1221
/* : Int */;
3212 val
* var1222
/* : FlatString */;
3213 val
* var1223
/* : RuntimeVariable */;
3214 val
* var_res1224
/* var res: RuntimeVariable */;
3215 short int var1225
/* : Bool */;
3216 static val
* varonce1227
;
3217 val
* var1228
/* : String */;
3218 char* var1229
/* : NativeString */;
3219 long var1230
/* : Int */;
3220 val
* var1231
/* : FlatString */;
3221 long var1232
/* : Int */;
3222 long var1234
/* : Int */;
3223 static val
* varonce1235
;
3224 val
* var1236
/* : String */;
3225 char* var1237
/* : NativeString */;
3226 long var1238
/* : Int */;
3227 val
* var1239
/* : FlatString */;
3228 val
* var1240
/* : Array[Object] */;
3229 long var1241
/* : Int */;
3230 val
* var1242
/* : NativeArray[Object] */;
3231 val
* var1243
/* : Object */;
3232 val
* var1244
/* : String */;
3233 static val
* varonce1245
;
3234 val
* var1246
/* : String */;
3235 char* var1247
/* : NativeString */;
3236 long var1248
/* : Int */;
3237 val
* var1249
/* : FlatString */;
3238 val
* var1250
/* : Array[Object] */;
3239 long var1251
/* : Int */;
3240 val
* var1252
/* : NativeArray[Object] */;
3241 val
* var1253
/* : String */;
3242 static val
* varonce1254
;
3243 val
* var1255
/* : String */;
3244 char* var1256
/* : NativeString */;
3245 long var1257
/* : Int */;
3246 val
* var1258
/* : FlatString */;
3247 static val
* varonce1259
;
3248 val
* var1260
/* : String */;
3249 char* var1261
/* : NativeString */;
3250 long var1262
/* : Int */;
3251 val
* var1263
/* : FlatString */;
3252 val
* var1264
/* : Array[Object] */;
3253 long var1265
/* : Int */;
3254 val
* var1266
/* : NativeArray[Object] */;
3255 val
* var1267
/* : String */;
3256 static val
* varonce1268
;
3257 val
* var1269
/* : String */;
3258 char* var1270
/* : NativeString */;
3259 long var1271
/* : Int */;
3260 val
* var1272
/* : FlatString */;
3261 static val
* varonce1273
;
3262 val
* var1274
/* : String */;
3263 char* var1275
/* : NativeString */;
3264 long var1276
/* : Int */;
3265 val
* var1277
/* : FlatString */;
3266 val
* var1278
/* : Array[Object] */;
3267 long var1279
/* : Int */;
3268 val
* var1280
/* : NativeArray[Object] */;
3269 val
* var1281
/* : String */;
3270 static val
* varonce1282
;
3271 val
* var1283
/* : String */;
3272 char* var1284
/* : NativeString */;
3273 long var1285
/* : Int */;
3274 val
* var1286
/* : FlatString */;
3277 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:MClass> */
3278 var2
= var_mclass
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var_mclass:MClass> */
3279 if (unlikely(var2
== NULL
)) {
3280 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
3281 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 423);
3289 { /* Inline model#MClassDef#bound_mtype (var) on <var:MClassDef> */
3290 var5
= var
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var:MClassDef> */
3291 if (unlikely(var5
== NULL
)) {
3292 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3293 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 495);
3302 var6
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass
);
3306 { /* Inline separate_compiler#SeparateCompiler#method_tables (self) on <self:SeparateErasureCompiler> */
3307 var9
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___method_tables
].val
; /* _method_tables on <self:SeparateErasureCompiler> */
3308 if (unlikely(var9
== NULL
)) {
3309 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
3310 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 856);
3318 var10
= ((val
* (*)(val
* self
, val
* p0
))(var7
->class->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var7
, var_mclass
) /* [] on <var7:Map[MClass, Array[nullable MPropDef]]>*/;
3322 { /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on <self:SeparateErasureCompiler> */
3323 var13
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___attr_tables
].val
; /* _attr_tables on <self:SeparateErasureCompiler> */
3324 if (unlikely(var13
== NULL
)) {
3325 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
3326 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 857);
3330 RET_LABEL12
:(void)0;
3334 var14
= ((val
* (*)(val
* self
, val
* p0
))(var11
->class->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var11
, var_mclass
) /* [] on <var11:Map[MClass, Array[nullable MPropDef]]>*/;
3338 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables (self) on <self:SeparateErasureCompiler> */
3339 var17
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
; /* _class_tables on <self:SeparateErasureCompiler> */
3340 if (unlikely(var17
== NULL
)) {
3341 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables");
3342 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 416);
3346 RET_LABEL16
:(void)0;
3350 var18
= ((val
* (*)(val
* self
, val
* p0
))(var15
->class->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var15
, var_mclass
) /* [] on <var15:Map[MClass, Array[nullable MClass]]>*/;
3352 var_class_table
= var18
;
3354 var19
= nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__new_visitor(self
);
3358 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateErasureCompiler> */
3359 var22
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateErasureCompiler> */
3361 RET_LABEL21
:(void)0;
3366 var_is_dead
= var23
;
3367 var28
= !var_is_dead
;
3371 if (var_rta
== NULL
) {
3372 var30
= 0; /* is null */
3374 var30
= 1; /* arg is null and recv is not */
3377 { /* Inline kernel#Object#!= (var_rta,var29) on <var_rta:nullable RapidTypeAnalysis> */
3380 var33
= ((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)>*/;
3385 RET_LABEL32
:(void)0;
3396 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
3397 var38
= var_rta
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
3398 if (unlikely(var38
== NULL
)) {
3399 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
3400 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 62);
3404 RET_LABEL37
:(void)0;
3408 var39
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var36
, var_mclass
);
3418 var42
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
3425 var46
= standard___standard__NativeString___to_s_with_length(var44
, var45
);
3430 var47
= ((short int (*)(val
* self
, val
* p0
))(var42
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var42
, var43
) /* == on <var42:String>*/;
3439 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
3440 var51
= var_mclass
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
3441 if (unlikely(var51
== NULL
)) {
3442 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3443 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 348);
3447 RET_LABEL50
:(void)0;
3453 var54
= "NativeArray";
3455 var56
= standard___standard__NativeString___to_s_with_length(var54
, var55
);
3460 { /* Inline kernel#Object#!= (var49,var53) on <var49:String> */
3463 var59
= ((short int (*)(val
* self
, val
* p0
))(var49
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var49
, var_other
) /* == on <var49:String>*/;
3468 RET_LABEL58
:(void)0;
3477 var_is_dead
= var61
;
3483 var64
= "/* runtime class ";
3485 var66
= standard___standard__NativeString___to_s_with_length(var64
, var65
);
3494 var71
= standard___standard__NativeString___to_s_with_length(var69
, var70
);
3498 var72
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3499 { /* var72 = array_instance Array[Object] */
3501 var74
= NEW_standard__NativeArray(var73
, &type_standard__NativeArray__standard__Object
);
3502 ((struct instance_standard__NativeArray
*)var74
)->values
[0] = (val
*) var63
;
3503 ((struct instance_standard__NativeArray
*)var74
)->values
[1] = (val
*) var_c_name
;
3504 ((struct instance_standard__NativeArray
*)var74
)->values
[2] = (val
*) var68
;
3506 ((void (*)(val
* self
, val
* p0
, long p1
))(var72
->class->vft
[COLOR_standard__array__Array__with_native
]))(var72
, var74
, var73
) /* with_native on <var72:Array[Object]>*/;
3510 var75
= ((val
* (*)(val
* self
))(var72
->class->vft
[COLOR_standard__string__Object__to_s
]))(var72
) /* to_s on <var72:Array[Object]>*/;
3513 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var75
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3520 var80
= standard___standard__NativeString___to_s_with_length(var78
, var79
);
3524 var81
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3525 { /* var81 = array_instance Array[Object] */
3527 var83
= NEW_standard__NativeArray(var82
, &type_standard__NativeArray__standard__Object
);
3528 ((struct instance_standard__NativeArray
*)var83
)->values
[0] = (val
*) var77
;
3529 ((struct instance_standard__NativeArray
*)var83
)->values
[1] = (val
*) var_c_name
;
3531 ((void (*)(val
* self
, val
* p0
, long p1
))(var81
->class->vft
[COLOR_standard__array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
3535 var84
= ((val
* (*)(val
* self
))(var81
->class->vft
[COLOR_standard__string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
3540 var87
= "extern const struct class class_";
3542 var89
= standard___standard__NativeString___to_s_with_length(var87
, var88
);
3551 var94
= standard___standard__NativeString___to_s_with_length(var92
, var93
);
3555 var95
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3556 { /* var95 = array_instance Array[Object] */
3558 var97
= NEW_standard__NativeArray(var96
, &type_standard__NativeArray__standard__Object
);
3559 ((struct instance_standard__NativeArray
*)var97
)->values
[0] = (val
*) var86
;
3560 ((struct instance_standard__NativeArray
*)var97
)->values
[1] = (val
*) var_c_name
;
3561 ((struct instance_standard__NativeArray
*)var97
)->values
[2] = (val
*) var91
;
3563 ((void (*)(val
* self
, val
* p0
, long p1
))(var95
->class->vft
[COLOR_standard__array__Array__with_native
]))(var95
, var97
, var96
) /* with_native on <var95:Array[Object]>*/;
3567 var98
= ((val
* (*)(val
* self
))(var95
->class->vft
[COLOR_standard__string__Object__to_s
]))(var95
) /* to_s on <var95:Array[Object]>*/;
3570 nit___nit__AbstractCompiler___provide_declaration(self
, var84
, var98
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
3575 var101
= "extern const struct type_table type_table_";
3577 var103
= standard___standard__NativeString___to_s_with_length(var101
, var102
);
3582 var105
= varonce104
;
3586 var108
= standard___standard__NativeString___to_s_with_length(var106
, var107
);
3588 varonce104
= var105
;
3590 var109
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3591 { /* var109 = array_instance Array[Object] */
3593 var111
= NEW_standard__NativeArray(var110
, &type_standard__NativeArray__standard__Object
);
3594 ((struct instance_standard__NativeArray
*)var111
)->values
[0] = (val
*) var100
;
3595 ((struct instance_standard__NativeArray
*)var111
)->values
[1] = (val
*) var_c_name
;
3596 ((struct instance_standard__NativeArray
*)var111
)->values
[2] = (val
*) var105
;
3598 ((void (*)(val
* self
, val
* p0
, long p1
))(var109
->class->vft
[COLOR_standard__array__Array__with_native
]))(var109
, var111
, var110
) /* with_native on <var109:Array[Object]>*/;
3602 var112
= ((val
* (*)(val
* self
))(var109
->class->vft
[COLOR_standard__string__Object__to_s
]))(var109
) /* to_s on <var109:Array[Object]>*/;
3605 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var112
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3608 var114
= varonce113
;
3610 var115
= "const struct class class_";
3612 var117
= standard___standard__NativeString___to_s_with_length(var115
, var116
);
3614 varonce113
= var114
;
3617 var119
= varonce118
;
3621 var122
= standard___standard__NativeString___to_s_with_length(var120
, var121
);
3623 varonce118
= var119
;
3625 var123
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3626 { /* var123 = array_instance Array[Object] */
3628 var125
= NEW_standard__NativeArray(var124
, &type_standard__NativeArray__standard__Object
);
3629 ((struct instance_standard__NativeArray
*)var125
)->values
[0] = (val
*) var114
;
3630 ((struct instance_standard__NativeArray
*)var125
)->values
[1] = (val
*) var_c_name
;
3631 ((struct instance_standard__NativeArray
*)var125
)->values
[2] = (val
*) var119
;
3633 ((void (*)(val
* self
, val
* p0
, long p1
))(var123
->class->vft
[COLOR_standard__array__Array__with_native
]))(var123
, var125
, var124
) /* with_native on <var123:Array[Object]>*/;
3637 var126
= ((val
* (*)(val
* self
))(var123
->class->vft
[COLOR_standard__string__Object__to_s
]))(var123
) /* to_s on <var123:Array[Object]>*/;
3640 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var126
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3643 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids (self) on <self:SeparateErasureCompiler> */
3644 var129
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
; /* _class_ids on <self:SeparateErasureCompiler> */
3645 if (unlikely(var129
== NULL
)) {
3646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids");
3647 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 79);
3651 RET_LABEL128
:(void)0;
3655 var130
= ((val
* (*)(val
* self
, val
* p0
))(var127
->class->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var127
, var_mclass
) /* [] on <var127:Map[MClass, Int]>*/;
3658 var132
= varonce131
;
3662 var135
= standard___standard__NativeString___to_s_with_length(var133
, var134
);
3664 varonce131
= var132
;
3666 var136
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3667 { /* var136 = array_instance Array[Object] */
3669 var138
= NEW_standard__NativeArray(var137
, &type_standard__NativeArray__standard__Object
);
3670 ((struct instance_standard__NativeArray
*)var138
)->values
[0] = (val
*) var130
;
3671 ((struct instance_standard__NativeArray
*)var138
)->values
[1] = (val
*) var132
;
3673 ((void (*)(val
* self
, val
* p0
, long p1
))(var136
->class->vft
[COLOR_standard__array__Array__with_native
]))(var136
, var138
, var137
) /* with_native on <var136:Array[Object]>*/;
3677 var139
= ((val
* (*)(val
* self
))(var136
->class->vft
[COLOR_standard__string__Object__to_s
]))(var136
) /* to_s on <var136:Array[Object]>*/;
3680 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var139
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3683 var141
= varonce140
;
3687 var144
= standard___standard__NativeString___to_s_with_length(var142
, var143
);
3689 varonce140
= var141
;
3692 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
3693 var147
= var_mclass
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
3694 if (unlikely(var147
== NULL
)) {
3695 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3696 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 348);
3700 RET_LABEL146
:(void)0;
3704 var149
= varonce148
;
3706 var150
= "\", /* class_name_string */";
3708 var152
= standard___standard__NativeString___to_s_with_length(var150
, var151
);
3710 varonce148
= var149
;
3712 var153
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3713 { /* var153 = array_instance Array[Object] */
3715 var155
= NEW_standard__NativeArray(var154
, &type_standard__NativeArray__standard__Object
);
3716 ((struct instance_standard__NativeArray
*)var155
)->values
[0] = (val
*) var141
;
3717 ((struct instance_standard__NativeArray
*)var155
)->values
[1] = (val
*) var145
;
3718 ((struct instance_standard__NativeArray
*)var155
)->values
[2] = (val
*) var149
;
3720 ((void (*)(val
* self
, val
* p0
, long p1
))(var153
->class->vft
[COLOR_standard__array__Array__with_native
]))(var153
, var155
, var154
) /* with_native on <var153:Array[Object]>*/;
3724 var156
= ((val
* (*)(val
* self
))(var153
->class->vft
[COLOR_standard__string__Object__to_s
]))(var153
) /* to_s on <var153:Array[Object]>*/;
3727 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var156
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3730 var157
= nit___nit__SeparateCompiler___box_kind_of(self
, var_mclass
);
3733 var159
= varonce158
;
3735 var160
= ", /* box_kind */";
3737 var162
= standard___standard__NativeString___to_s_with_length(var160
, var161
);
3739 varonce158
= var159
;
3741 var163
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3742 { /* var163 = array_instance Array[Object] */
3744 var165
= NEW_standard__NativeArray(var164
, &type_standard__NativeArray__standard__Object
);
3745 var166
= BOX_standard__Int(var157
); /* autobox from Int to Object */
3746 ((struct instance_standard__NativeArray
*)var165
)->values
[0] = (val
*) var166
;
3747 ((struct instance_standard__NativeArray
*)var165
)->values
[1] = (val
*) var159
;
3749 ((void (*)(val
* self
, val
* p0
, long p1
))(var163
->class->vft
[COLOR_standard__array__Array__with_native
]))(var163
, var165
, var164
) /* with_native on <var163:Array[Object]>*/;
3753 var167
= ((val
* (*)(val
* self
))(var163
->class->vft
[COLOR_standard__string__Object__to_s
]))(var163
) /* to_s on <var163:Array[Object]>*/;
3756 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var167
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3759 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_colors (self) on <self:SeparateErasureCompiler> */
3760 var170
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
; /* _class_colors on <self:SeparateErasureCompiler> */
3761 if (unlikely(var170
== NULL
)) {
3762 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors");
3763 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 80);
3767 RET_LABEL169
:(void)0;
3771 var171
= ((val
* (*)(val
* self
, val
* p0
))(var168
->class->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var168
, var_mclass
) /* [] on <var168:Map[MClass, Int]>*/;
3774 var173
= varonce172
;
3778 var176
= standard___standard__NativeString___to_s_with_length(var174
, var175
);
3780 varonce172
= var173
;
3782 var177
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3783 { /* var177 = array_instance Array[Object] */
3785 var179
= NEW_standard__NativeArray(var178
, &type_standard__NativeArray__standard__Object
);
3786 ((struct instance_standard__NativeArray
*)var179
)->values
[0] = (val
*) var171
;
3787 ((struct instance_standard__NativeArray
*)var179
)->values
[1] = (val
*) var173
;
3789 ((void (*)(val
* self
, val
* p0
, long p1
))(var177
->class->vft
[COLOR_standard__array__Array__with_native
]))(var177
, var179
, var178
) /* with_native on <var177:Array[Object]>*/;
3793 var180
= ((val
* (*)(val
* self
))(var177
->class->vft
[COLOR_standard__string__Object__to_s
]))(var177
) /* to_s on <var177:Array[Object]>*/;
3796 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var180
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3798 var181
= !var_is_dead
;
3801 var182
= nit___nit__SeparateErasureCompiler___build_class_vts_table(self
, var_mclass
);
3805 var184
= varonce183
;
3807 var185
= "vts_table_";
3809 var187
= standard___standard__NativeString___to_s_with_length(var185
, var186
);
3811 varonce183
= var184
;
3813 var188
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3814 { /* var188 = array_instance Array[Object] */
3816 var190
= NEW_standard__NativeArray(var189
, &type_standard__NativeArray__standard__Object
);
3817 ((struct instance_standard__NativeArray
*)var190
)->values
[0] = (val
*) var184
;
3818 ((struct instance_standard__NativeArray
*)var190
)->values
[1] = (val
*) var_c_name
;
3820 ((void (*)(val
* self
, val
* p0
, long p1
))(var188
->class->vft
[COLOR_standard__array__Array__with_native
]))(var188
, var190
, var189
) /* with_native on <var188:Array[Object]>*/;
3824 var191
= ((val
* (*)(val
* self
))(var188
->class->vft
[COLOR_standard__string__Object__to_s
]))(var188
) /* to_s on <var188:Array[Object]>*/;
3827 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var191
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
3830 var193
= varonce192
;
3832 var194
= "&vts_table_";
3834 var196
= standard___standard__NativeString___to_s_with_length(var194
, var195
);
3836 varonce192
= var193
;
3839 var198
= varonce197
;
3843 var201
= standard___standard__NativeString___to_s_with_length(var199
, var200
);
3845 varonce197
= var198
;
3847 var202
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3848 { /* var202 = array_instance Array[Object] */
3850 var204
= NEW_standard__NativeArray(var203
, &type_standard__NativeArray__standard__Object
);
3851 ((struct instance_standard__NativeArray
*)var204
)->values
[0] = (val
*) var193
;
3852 ((struct instance_standard__NativeArray
*)var204
)->values
[1] = (val
*) var_c_name
;
3853 ((struct instance_standard__NativeArray
*)var204
)->values
[2] = (val
*) var198
;
3855 ((void (*)(val
* self
, val
* p0
, long p1
))(var202
->class->vft
[COLOR_standard__array__Array__with_native
]))(var202
, var204
, var203
) /* with_native on <var202:Array[Object]>*/;
3859 var205
= ((val
* (*)(val
* self
))(var202
->class->vft
[COLOR_standard__string__Object__to_s
]))(var202
) /* to_s on <var202:Array[Object]>*/;
3862 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var205
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3866 var207
= varonce206
;
3870 var210
= standard___standard__NativeString___to_s_with_length(var208
, var209
);
3872 varonce206
= var207
;
3875 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var207
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3879 var212
= varonce211
;
3881 var213
= "&type_table_";
3883 var215
= standard___standard__NativeString___to_s_with_length(var213
, var214
);
3885 varonce211
= var212
;
3888 var217
= varonce216
;
3892 var220
= standard___standard__NativeString___to_s_with_length(var218
, var219
);
3894 varonce216
= var217
;
3896 var221
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3897 { /* var221 = array_instance Array[Object] */
3899 var223
= NEW_standard__NativeArray(var222
, &type_standard__NativeArray__standard__Object
);
3900 ((struct instance_standard__NativeArray
*)var223
)->values
[0] = (val
*) var212
;
3901 ((struct instance_standard__NativeArray
*)var223
)->values
[1] = (val
*) var_c_name
;
3902 ((struct instance_standard__NativeArray
*)var223
)->values
[2] = (val
*) var217
;
3904 ((void (*)(val
* self
, val
* p0
, long p1
))(var221
->class->vft
[COLOR_standard__array__Array__with_native
]))(var221
, var223
, var222
) /* with_native on <var221:Array[Object]>*/;
3908 var224
= ((val
* (*)(val
* self
))(var221
->class->vft
[COLOR_standard__string__Object__to_s
]))(var221
) /* to_s on <var221:Array[Object]>*/;
3911 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var224
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3914 var226
= varonce225
;
3918 var229
= standard___standard__NativeString___to_s_with_length(var227
, var228
);
3920 varonce225
= var226
;
3923 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var226
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3928 { /* Inline array#AbstractArrayRead#length (var_vft) on <var_vft:Array[nullable MPropDef]> */
3929 var233
= var_vft
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_vft:Array[nullable MPropDef]> */
3931 RET_LABEL232
:(void)0;
3937 { /* Inline kernel#Int#< (var_i,var_234) on <var_i:Int> */
3938 /* Covariant cast for argument 0 (i) <var_234:Int> isa OTHER */
3939 /* <var_234:Int> isa OTHER */
3940 var237
= 1; /* easy <var_234:Int> isa OTHER*/
3941 if (unlikely(!var237
)) {
3942 var_class_name
= type_standard__Int
.name
;
3943 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3944 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 410);
3947 var238
= var_i
< var_234
;
3950 RET_LABEL236
:(void)0;
3955 var239
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_vft
, var_i
);
3957 var_mpropdef
= var239
;
3959 if (var_mpropdef
== NULL
) {
3960 var241
= 1; /* is null */
3962 var241
= 0; /* arg is null but recv is not */
3965 { /* Inline kernel#Object#== (var_mpropdef,var240) on <var_mpropdef:nullable MPropDef> */
3966 var_other244
= var240
;
3968 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other244) on <var_mpropdef:nullable MPropDef(MPropDef)> */
3969 var247
= var_mpropdef
== var_other244
;
3972 RET_LABEL246
:(void)0;
3977 RET_LABEL243
:(void)0;
3983 var249
= varonce248
;
3985 var250
= "NULL, /* empty */";
3987 var252
= standard___standard__NativeString___to_s_with_length(var250
, var251
);
3989 varonce248
= var249
;
3992 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var249
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
3995 /* <var_mpropdef:nullable MPropDef(MPropDef)> isa MMethodDef */
3996 cltype254
= type_nit__MMethodDef
.color
;
3997 idtype255
= type_nit__MMethodDef
.id
;
3998 if(cltype254
>= var_mpropdef
->type
->table_size
) {
4001 var253
= var_mpropdef
->type
->type_table
[cltype254
] == idtype255
;
4003 if (unlikely(!var253
)) {
4004 PRINT_ERROR("Runtime error: %s", "Assert failed");
4005 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 233);
4009 if (var_rta
== NULL
) {
4010 var258
= 0; /* is null */
4012 var258
= 1; /* arg is null and recv is not */
4015 { /* Inline kernel#Object#!= (var_rta,var257) on <var_rta:nullable RapidTypeAnalysis> */
4018 var261
= ((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)>*/;
4023 RET_LABEL260
:(void)0;
4030 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4031 var266
= var_rta
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4032 if (unlikely(var266
== NULL
)) {
4033 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
4034 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 72);
4038 RET_LABEL265
:(void)0;
4042 var267
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var264
, var_mpropdef
);
4051 var270
= varonce269
;
4053 var271
= "NULL, /* DEAD ";
4055 var273
= standard___standard__NativeString___to_s_with_length(var271
, var272
);
4057 varonce269
= var270
;
4060 { /* Inline model#MClass#intro_mmodule (var_mclass) on <var_mclass:MClass> */
4061 var276
= var_mclass
->attrs
[COLOR_nit__model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var_mclass:MClass> */
4062 if (unlikely(var276
== NULL
)) {
4063 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4064 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 343);
4068 RET_LABEL275
:(void)0;
4072 var278
= varonce277
;
4076 var281
= standard___standard__NativeString___to_s_with_length(var279
, var280
);
4078 varonce277
= var278
;
4081 var283
= varonce282
;
4085 var286
= standard___standard__NativeString___to_s_with_length(var284
, var285
);
4087 varonce282
= var283
;
4090 var288
= varonce287
;
4094 var291
= standard___standard__NativeString___to_s_with_length(var289
, var290
);
4096 varonce287
= var288
;
4098 var292
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4099 { /* var292 = array_instance Array[Object] */
4101 var294
= NEW_standard__NativeArray(var293
, &type_standard__NativeArray__standard__Object
);
4102 ((struct instance_standard__NativeArray
*)var294
)->values
[0] = (val
*) var270
;
4103 ((struct instance_standard__NativeArray
*)var294
)->values
[1] = (val
*) var274
;
4104 ((struct instance_standard__NativeArray
*)var294
)->values
[2] = (val
*) var278
;
4105 ((struct instance_standard__NativeArray
*)var294
)->values
[3] = (val
*) var_mclass
;
4106 ((struct instance_standard__NativeArray
*)var294
)->values
[4] = (val
*) var283
;
4107 ((struct instance_standard__NativeArray
*)var294
)->values
[5] = (val
*) var_mpropdef
;
4108 ((struct instance_standard__NativeArray
*)var294
)->values
[6] = (val
*) var288
;
4110 ((void (*)(val
* self
, val
* p0
, long p1
))(var292
->class->vft
[COLOR_standard__array__Array__with_native
]))(var292
, var294
, var293
) /* with_native on <var292:Array[Object]>*/;
4114 var295
= ((val
* (*)(val
* self
))(var292
->class->vft
[COLOR_standard__string__Object__to_s
]))(var292
) /* to_s on <var292:Array[Object]>*/;
4117 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var295
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4123 var296
= nit__separate_compiler___MMethodDef___virtual_runtime_function(var_mpropdef
);
4127 var297
= nit___nit__AbstractRuntimeFunction___c_name(var_rf
);
4130 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var297
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
4133 var299
= varonce298
;
4135 var300
= "(nitmethod_t)";
4137 var302
= standard___standard__NativeString___to_s_with_length(var300
, var301
);
4139 varonce298
= var299
;
4142 var303
= nit___nit__AbstractRuntimeFunction___c_name(var_rf
);
4145 var305
= varonce304
;
4147 var306
= ", /* pointer to ";
4149 var308
= standard___standard__NativeString___to_s_with_length(var306
, var307
);
4151 varonce304
= var305
;
4154 var309
= nit___nit__MPropDef___nit__model_base__MEntity__full_name(var_mpropdef
);
4157 var311
= varonce310
;
4161 var314
= standard___standard__NativeString___to_s_with_length(var312
, var313
);
4163 varonce310
= var311
;
4165 var315
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4166 { /* var315 = array_instance Array[Object] */
4168 var317
= NEW_standard__NativeArray(var316
, &type_standard__NativeArray__standard__Object
);
4169 ((struct instance_standard__NativeArray
*)var317
)->values
[0] = (val
*) var299
;
4170 ((struct instance_standard__NativeArray
*)var317
)->values
[1] = (val
*) var303
;
4171 ((struct instance_standard__NativeArray
*)var317
)->values
[2] = (val
*) var305
;
4172 ((struct instance_standard__NativeArray
*)var317
)->values
[3] = (val
*) var309
;
4173 ((struct instance_standard__NativeArray
*)var317
)->values
[4] = (val
*) var311
;
4175 ((void (*)(val
* self
, val
* p0
, long p1
))(var315
->class->vft
[COLOR_standard__array__Array__with_native
]))(var315
, var317
, var316
) /* with_native on <var315:Array[Object]>*/;
4179 var318
= ((val
* (*)(val
* self
))(var315
->class->vft
[COLOR_standard__string__Object__to_s
]))(var315
) /* to_s on <var315:Array[Object]>*/;
4182 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var318
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4185 BREAK_label
: (void)0;
4188 var320
= standard___standard__Int___Discrete__successor(var_i
, var319
);
4192 goto BREAK_label321
;
4195 BREAK_label321
: (void)0;
4197 var323
= varonce322
;
4201 var326
= standard___standard__NativeString___to_s_with_length(var324
, var325
);
4203 varonce322
= var323
;
4206 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var323
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4211 var328
= varonce327
;
4215 var331
= standard___standard__NativeString___to_s_with_length(var329
, var330
);
4217 varonce327
= var328
;
4220 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var328
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4223 var333
= varonce332
;
4225 var334
= "const struct type_table type_table_";
4227 var336
= standard___standard__NativeString___to_s_with_length(var334
, var335
);
4229 varonce332
= var333
;
4232 var338
= varonce337
;
4236 var341
= standard___standard__NativeString___to_s_with_length(var339
, var340
);
4238 varonce337
= var338
;
4240 var342
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4241 { /* var342 = array_instance Array[Object] */
4243 var344
= NEW_standard__NativeArray(var343
, &type_standard__NativeArray__standard__Object
);
4244 ((struct instance_standard__NativeArray
*)var344
)->values
[0] = (val
*) var333
;
4245 ((struct instance_standard__NativeArray
*)var344
)->values
[1] = (val
*) var_c_name
;
4246 ((struct instance_standard__NativeArray
*)var344
)->values
[2] = (val
*) var338
;
4248 ((void (*)(val
* self
, val
* p0
, long p1
))(var342
->class->vft
[COLOR_standard__array__Array__with_native
]))(var342
, var344
, var343
) /* with_native on <var342:Array[Object]>*/;
4252 var345
= ((val
* (*)(val
* self
))(var342
->class->vft
[COLOR_standard__string__Object__to_s
]))(var342
) /* to_s on <var342:Array[Object]>*/;
4255 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var345
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4258 { /* Inline array#AbstractArrayRead#length (var_class_table) on <var_class_table:Array[nullable MClass]> */
4259 var348
= var_class_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_class_table:Array[nullable MClass]> */
4261 RET_LABEL347
:(void)0;
4265 var350
= varonce349
;
4269 var353
= standard___standard__NativeString___to_s_with_length(var351
, var352
);
4271 varonce349
= var350
;
4273 var354
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4274 { /* var354 = array_instance Array[Object] */
4276 var356
= NEW_standard__NativeArray(var355
, &type_standard__NativeArray__standard__Object
);
4277 var357
= BOX_standard__Int(var346
); /* autobox from Int to Object */
4278 ((struct instance_standard__NativeArray
*)var356
)->values
[0] = (val
*) var357
;
4279 ((struct instance_standard__NativeArray
*)var356
)->values
[1] = (val
*) var350
;
4281 ((void (*)(val
* self
, val
* p0
, long p1
))(var354
->class->vft
[COLOR_standard__array__Array__with_native
]))(var354
, var356
, var355
) /* with_native on <var354:Array[Object]>*/;
4285 var358
= ((val
* (*)(val
* self
))(var354
->class->vft
[COLOR_standard__string__Object__to_s
]))(var354
) /* to_s on <var354:Array[Object]>*/;
4288 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var358
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4291 var360
= varonce359
;
4295 var363
= standard___standard__NativeString___to_s_with_length(var361
, var362
);
4297 varonce359
= var360
;
4300 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var360
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4302 var_364
= var_class_table
;
4304 var365
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_364
);
4309 var367
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_366
);
4313 var368
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_366
);
4315 var_msuper
= var368
;
4317 if (var_msuper
== NULL
) {
4318 var370
= 1; /* is null */
4320 var370
= 0; /* arg is null but recv is not */
4323 { /* Inline kernel#Object#== (var_msuper,var369) on <var_msuper:nullable MClass> */
4324 var_other244
= var369
;
4326 { /* Inline kernel#Object#is_same_instance (var_msuper,var_other244) on <var_msuper:nullable MClass(MClass)> */
4327 var375
= var_msuper
== var_other244
;
4330 RET_LABEL374
:(void)0;
4335 RET_LABEL372
:(void)0;
4341 var377
= varonce376
;
4343 var378
= "-1, /* empty */";
4345 var380
= standard___standard__NativeString___to_s_with_length(var378
, var379
);
4347 varonce376
= var377
;
4350 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var377
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4354 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids (self) on <self:SeparateErasureCompiler> */
4355 var383
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
; /* _class_ids on <self:SeparateErasureCompiler> */
4356 if (unlikely(var383
== NULL
)) {
4357 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids");
4358 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 79);
4362 RET_LABEL382
:(void)0;
4366 var384
= ((val
* (*)(val
* self
, val
* p0
))(var381
->class->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var381
, var_msuper
) /* [] on <var381:Map[MClass, Int]>*/;
4369 var386
= varonce385
;
4373 var389
= standard___standard__NativeString___to_s_with_length(var387
, var388
);
4375 varonce385
= var386
;
4378 var391
= varonce390
;
4382 var394
= standard___standard__NativeString___to_s_with_length(var392
, var393
);
4384 varonce390
= var391
;
4386 var395
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4387 { /* var395 = array_instance Array[Object] */
4389 var397
= NEW_standard__NativeArray(var396
, &type_standard__NativeArray__standard__Object
);
4390 ((struct instance_standard__NativeArray
*)var397
)->values
[0] = (val
*) var384
;
4391 ((struct instance_standard__NativeArray
*)var397
)->values
[1] = (val
*) var386
;
4392 ((struct instance_standard__NativeArray
*)var397
)->values
[2] = (val
*) var_msuper
;
4393 ((struct instance_standard__NativeArray
*)var397
)->values
[3] = (val
*) var391
;
4395 ((void (*)(val
* self
, val
* p0
, long p1
))(var395
->class->vft
[COLOR_standard__array__Array__with_native
]))(var395
, var397
, var396
) /* with_native on <var395:Array[Object]>*/;
4399 var398
= ((val
* (*)(val
* self
))(var395
->class->vft
[COLOR_standard__string__Object__to_s
]))(var395
) /* to_s on <var395:Array[Object]>*/;
4402 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var398
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4406 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_366
); /* Direct call array#ArrayIterator#next on <var_366:ArrayIterator[nullable MClass]>*/
4409 goto BREAK_label399
;
4412 BREAK_label399
: (void)0;
4414 { /* Inline abstract_collection#Iterator#finish (var_366) on <var_366:ArrayIterator[nullable MClass]> */
4415 RET_LABEL400
:(void)0;
4419 var402
= varonce401
;
4423 var405
= standard___standard__NativeString___to_s_with_length(var403
, var404
);
4425 varonce401
= var402
;
4428 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var402
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4431 var407
= varonce406
;
4435 var410
= standard___standard__NativeString___to_s_with_length(var408
, var409
);
4437 varonce406
= var407
;
4440 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var407
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4443 var412
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
4446 var414
= varonce413
;
4450 var417
= standard___standard__NativeString___to_s_with_length(var415
, var416
);
4452 varonce413
= var414
;
4455 { /* Inline kernel#Object#!= (var412,var414) on <var412:String> */
4458 var420
= ((short int (*)(val
* self
, val
* p0
))(var412
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var412
, var_other
) /* == on <var412:String>*/;
4463 RET_LABEL419
:(void)0;
4471 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
4472 var425
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
4473 if (unlikely(var425
== NULL
)) {
4474 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4475 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
4479 RET_LABEL424
:(void)0;
4483 { /* Inline model#MClass#name (var423) on <var423:MClass> */
4484 var428
= var423
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var423:MClass> */
4485 if (unlikely(var428
== NULL
)) {
4486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4487 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 348);
4491 RET_LABEL427
:(void)0;
4495 var430
= varonce429
;
4499 var433
= standard___standard__NativeString___to_s_with_length(var431
, var432
);
4501 varonce429
= var430
;
4504 var434
= ((short int (*)(val
* self
, val
* p0
))(var426
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var426
, var430
) /* == on <var426:String>*/;
4510 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
4511 var437
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
4512 if (unlikely(var437
== NULL
)) {
4513 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4514 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 523);
4518 RET_LABEL436
:(void)0;
4522 var439
= varonce438
;
4524 var440
= "struct instance_";
4526 var442
= standard___standard__NativeString___to_s_with_length(var440
, var441
);
4528 varonce438
= var439
;
4531 var444
= varonce443
;
4535 var447
= standard___standard__NativeString___to_s_with_length(var445
, var446
);
4537 varonce443
= var444
;
4539 var448
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4540 { /* var448 = array_instance Array[Object] */
4542 var450
= NEW_standard__NativeArray(var449
, &type_standard__NativeArray__standard__Object
);
4543 ((struct instance_standard__NativeArray
*)var450
)->values
[0] = (val
*) var439
;
4544 ((struct instance_standard__NativeArray
*)var450
)->values
[1] = (val
*) var_c_name
;
4545 ((struct instance_standard__NativeArray
*)var450
)->values
[2] = (val
*) var444
;
4547 ((void (*)(val
* self
, val
* p0
, long p1
))(var448
->class->vft
[COLOR_standard__array__Array__with_native
]))(var448
, var450
, var449
) /* with_native on <var448:Array[Object]>*/;
4551 var451
= ((val
* (*)(val
* self
))(var448
->class->vft
[COLOR_standard__string__Object__to_s
]))(var448
) /* to_s on <var448:Array[Object]>*/;
4554 nit___nit__CodeWriter___add_decl(var435
, var451
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var435:CodeWriter>*/
4557 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
4558 var454
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
4559 if (unlikely(var454
== NULL
)) {
4560 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4561 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 523);
4565 RET_LABEL453
:(void)0;
4569 var456
= varonce455
;
4571 var457
= "const struct class *class;";
4573 var459
= standard___standard__NativeString___to_s_with_length(var457
, var458
);
4575 varonce455
= var456
;
4578 nit___nit__CodeWriter___add_decl(var452
, var456
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var452:CodeWriter>*/
4581 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
4582 var462
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
4583 if (unlikely(var462
== NULL
)) {
4584 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4585 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 523);
4589 RET_LABEL461
:(void)0;
4593 var463
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
4596 var465
= varonce464
;
4600 var468
= standard___standard__NativeString___to_s_with_length(var466
, var467
);
4602 varonce464
= var465
;
4604 var469
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4605 { /* var469 = array_instance Array[Object] */
4607 var471
= NEW_standard__NativeArray(var470
, &type_standard__NativeArray__standard__Object
);
4608 ((struct instance_standard__NativeArray
*)var471
)->values
[0] = (val
*) var463
;
4609 ((struct instance_standard__NativeArray
*)var471
)->values
[1] = (val
*) var465
;
4611 ((void (*)(val
* self
, val
* p0
, long p1
))(var469
->class->vft
[COLOR_standard__array__Array__with_native
]))(var469
, var471
, var470
) /* with_native on <var469:Array[Object]>*/;
4615 var472
= ((val
* (*)(val
* self
))(var469
->class->vft
[COLOR_standard__string__Object__to_s
]))(var469
) /* to_s on <var469:Array[Object]>*/;
4618 nit___nit__CodeWriter___add_decl(var460
, var472
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var460:CodeWriter>*/
4621 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
4622 var475
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
4623 if (unlikely(var475
== NULL
)) {
4624 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4625 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 523);
4629 RET_LABEL474
:(void)0;
4633 var477
= varonce476
;
4637 var480
= standard___standard__NativeString___to_s_with_length(var478
, var479
);
4639 varonce476
= var477
;
4642 nit___nit__CodeWriter___add_decl(var473
, var477
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var473:CodeWriter>*/
4645 var482
= varonce481
;
4649 var485
= standard___standard__NativeString___to_s_with_length(var483
, var484
);
4651 varonce481
= var482
;
4653 var486
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4654 { /* var486 = array_instance Array[Object] */
4656 var488
= NEW_standard__NativeArray(var487
, &type_standard__NativeArray__standard__Object
);
4657 ((struct instance_standard__NativeArray
*)var488
)->values
[0] = (val
*) var482
;
4658 ((struct instance_standard__NativeArray
*)var488
)->values
[1] = (val
*) var_c_name
;
4660 ((void (*)(val
* self
, val
* p0
, long p1
))(var486
->class->vft
[COLOR_standard__array__Array__with_native
]))(var486
, var488
, var487
) /* with_native on <var486:Array[Object]>*/;
4664 var489
= ((val
* (*)(val
* self
))(var486
->class->vft
[COLOR_standard__string__Object__to_s
]))(var486
) /* to_s on <var486:Array[Object]>*/;
4667 var491
= varonce490
;
4669 var492
= "val* BOX_";
4671 var494
= standard___standard__NativeString___to_s_with_length(var492
, var493
);
4673 varonce490
= var491
;
4676 var496
= varonce495
;
4680 var499
= standard___standard__NativeString___to_s_with_length(var497
, var498
);
4682 varonce495
= var496
;
4685 var500
= nit__abstract_compiler___MClassType___MType__ctype_extern(var_mtype
);
4688 var502
= varonce501
;
4692 var505
= standard___standard__NativeString___to_s_with_length(var503
, var504
);
4694 varonce501
= var502
;
4696 var506
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4697 { /* var506 = array_instance Array[Object] */
4699 var508
= NEW_standard__NativeArray(var507
, &type_standard__NativeArray__standard__Object
);
4700 ((struct instance_standard__NativeArray
*)var508
)->values
[0] = (val
*) var491
;
4701 ((struct instance_standard__NativeArray
*)var508
)->values
[1] = (val
*) var_c_name
;
4702 ((struct instance_standard__NativeArray
*)var508
)->values
[2] = (val
*) var496
;
4703 ((struct instance_standard__NativeArray
*)var508
)->values
[3] = (val
*) var500
;
4704 ((struct instance_standard__NativeArray
*)var508
)->values
[4] = (val
*) var502
;
4706 ((void (*)(val
* self
, val
* p0
, long p1
))(var506
->class->vft
[COLOR_standard__array__Array__with_native
]))(var506
, var508
, var507
) /* with_native on <var506:Array[Object]>*/;
4710 var509
= ((val
* (*)(val
* self
))(var506
->class->vft
[COLOR_standard__string__Object__to_s
]))(var506
) /* to_s on <var506:Array[Object]>*/;
4713 nit___nit__AbstractCompiler___provide_declaration(self
, var489
, var509
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
4716 var511
= varonce510
;
4718 var512
= "/* allocate ";
4720 var514
= standard___standard__NativeString___to_s_with_length(var512
, var513
);
4722 varonce510
= var511
;
4725 var516
= varonce515
;
4729 var519
= standard___standard__NativeString___to_s_with_length(var517
, var518
);
4731 varonce515
= var516
;
4733 var520
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4734 { /* var520 = array_instance Array[Object] */
4736 var522
= NEW_standard__NativeArray(var521
, &type_standard__NativeArray__standard__Object
);
4737 ((struct instance_standard__NativeArray
*)var522
)->values
[0] = (val
*) var511
;
4738 ((struct instance_standard__NativeArray
*)var522
)->values
[1] = (val
*) var_mtype
;
4739 ((struct instance_standard__NativeArray
*)var522
)->values
[2] = (val
*) var516
;
4741 ((void (*)(val
* self
, val
* p0
, long p1
))(var520
->class->vft
[COLOR_standard__array__Array__with_native
]))(var520
, var522
, var521
) /* with_native on <var520:Array[Object]>*/;
4745 var523
= ((val
* (*)(val
* self
))(var520
->class->vft
[COLOR_standard__string__Object__to_s
]))(var520
) /* to_s on <var520:Array[Object]>*/;
4748 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var523
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4751 var525
= varonce524
;
4753 var526
= "val* BOX_";
4755 var528
= standard___standard__NativeString___to_s_with_length(var526
, var527
);
4757 varonce524
= var525
;
4760 var529
= ((val
* (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model_base__MEntity__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
4763 var531
= varonce530
;
4767 var534
= standard___standard__NativeString___to_s_with_length(var532
, var533
);
4769 varonce530
= var531
;
4772 var535
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
4775 var537
= varonce536
;
4777 var538
= " value) {";
4779 var540
= standard___standard__NativeString___to_s_with_length(var538
, var539
);
4781 varonce536
= var537
;
4783 var541
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4784 { /* var541 = array_instance Array[Object] */
4786 var543
= NEW_standard__NativeArray(var542
, &type_standard__NativeArray__standard__Object
);
4787 ((struct instance_standard__NativeArray
*)var543
)->values
[0] = (val
*) var525
;
4788 ((struct instance_standard__NativeArray
*)var543
)->values
[1] = (val
*) var529
;
4789 ((struct instance_standard__NativeArray
*)var543
)->values
[2] = (val
*) var531
;
4790 ((struct instance_standard__NativeArray
*)var543
)->values
[3] = (val
*) var535
;
4791 ((struct instance_standard__NativeArray
*)var543
)->values
[4] = (val
*) var537
;
4793 ((void (*)(val
* self
, val
* p0
, long p1
))(var541
->class->vft
[COLOR_standard__array__Array__with_native
]))(var541
, var543
, var542
) /* with_native on <var541:Array[Object]>*/;
4797 var544
= ((val
* (*)(val
* self
))(var541
->class->vft
[COLOR_standard__string__Object__to_s
]))(var541
) /* to_s on <var541:Array[Object]>*/;
4800 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var544
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4803 var546
= varonce545
;
4805 var547
= "struct instance_";
4807 var549
= standard___standard__NativeString___to_s_with_length(var547
, var548
);
4809 varonce545
= var546
;
4812 var551
= varonce550
;
4814 var552
= "*res = nit_alloc(sizeof(struct instance_";
4816 var554
= standard___standard__NativeString___to_s_with_length(var552
, var553
);
4818 varonce550
= var551
;
4821 var556
= varonce555
;
4825 var559
= standard___standard__NativeString___to_s_with_length(var557
, var558
);
4827 varonce555
= var556
;
4829 var560
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4830 { /* var560 = array_instance Array[Object] */
4832 var562
= NEW_standard__NativeArray(var561
, &type_standard__NativeArray__standard__Object
);
4833 ((struct instance_standard__NativeArray
*)var562
)->values
[0] = (val
*) var546
;
4834 ((struct instance_standard__NativeArray
*)var562
)->values
[1] = (val
*) var_c_name
;
4835 ((struct instance_standard__NativeArray
*)var562
)->values
[2] = (val
*) var551
;
4836 ((struct instance_standard__NativeArray
*)var562
)->values
[3] = (val
*) var_c_name
;
4837 ((struct instance_standard__NativeArray
*)var562
)->values
[4] = (val
*) var556
;
4839 ((void (*)(val
* self
, val
* p0
, long p1
))(var560
->class->vft
[COLOR_standard__array__Array__with_native
]))(var560
, var562
, var561
) /* with_native on <var560:Array[Object]>*/;
4843 var563
= ((val
* (*)(val
* self
))(var560
->class->vft
[COLOR_standard__string__Object__to_s
]))(var560
) /* to_s on <var560:Array[Object]>*/;
4846 nit___nit__AbstractCompilerVisitor___add(var_v
, var563
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4849 var565
= varonce564
;
4853 var568
= standard___standard__NativeString___to_s_with_length(var566
, var567
);
4855 varonce564
= var565
;
4857 var569
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4858 { /* var569 = array_instance Array[Object] */
4860 var571
= NEW_standard__NativeArray(var570
, &type_standard__NativeArray__standard__Object
);
4861 ((struct instance_standard__NativeArray
*)var571
)->values
[0] = (val
*) var565
;
4862 ((struct instance_standard__NativeArray
*)var571
)->values
[1] = (val
*) var_c_name
;
4864 ((void (*)(val
* self
, val
* p0
, long p1
))(var569
->class->vft
[COLOR_standard__array__Array__with_native
]))(var569
, var571
, var570
) /* with_native on <var569:Array[Object]>*/;
4868 var572
= ((val
* (*)(val
* self
))(var569
->class->vft
[COLOR_standard__string__Object__to_s
]))(var569
) /* to_s on <var569:Array[Object]>*/;
4871 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var572
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
4874 var574
= varonce573
;
4876 var575
= "res->class = &class_";
4878 var577
= standard___standard__NativeString___to_s_with_length(var575
, var576
);
4880 varonce573
= var574
;
4883 var579
= varonce578
;
4887 var582
= standard___standard__NativeString___to_s_with_length(var580
, var581
);
4889 varonce578
= var579
;
4891 var583
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4892 { /* var583 = array_instance Array[Object] */
4894 var585
= NEW_standard__NativeArray(var584
, &type_standard__NativeArray__standard__Object
);
4895 ((struct instance_standard__NativeArray
*)var585
)->values
[0] = (val
*) var574
;
4896 ((struct instance_standard__NativeArray
*)var585
)->values
[1] = (val
*) var_c_name
;
4897 ((struct instance_standard__NativeArray
*)var585
)->values
[2] = (val
*) var579
;
4899 ((void (*)(val
* self
, val
* p0
, long p1
))(var583
->class->vft
[COLOR_standard__array__Array__with_native
]))(var583
, var585
, var584
) /* with_native on <var583:Array[Object]>*/;
4903 var586
= ((val
* (*)(val
* self
))(var583
->class->vft
[COLOR_standard__string__Object__to_s
]))(var583
) /* to_s on <var583:Array[Object]>*/;
4906 nit___nit__AbstractCompilerVisitor___add(var_v
, var586
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4909 var588
= varonce587
;
4911 var589
= "res->value = value;";
4913 var591
= standard___standard__NativeString___to_s_with_length(var589
, var590
);
4915 varonce587
= var588
;
4918 nit___nit__AbstractCompilerVisitor___add(var_v
, var588
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4921 var593
= varonce592
;
4923 var594
= "return (val*)res;";
4925 var596
= standard___standard__NativeString___to_s_with_length(var594
, var595
);
4927 varonce592
= var593
;
4930 nit___nit__AbstractCompilerVisitor___add(var_v
, var593
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4933 var598
= varonce597
;
4937 var601
= standard___standard__NativeString___to_s_with_length(var599
, var600
);
4939 varonce597
= var598
;
4942 nit___nit__AbstractCompilerVisitor___add(var_v
, var598
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
4945 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
4946 var604
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
4947 if (unlikely(var604
== NULL
)) {
4948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4949 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
4953 RET_LABEL603
:(void)0;
4957 { /* Inline model#MClass#name (var602) on <var602:MClass> */
4958 var607
= var602
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var602:MClass> */
4959 if (unlikely(var607
== NULL
)) {
4960 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4961 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 348);
4965 RET_LABEL606
:(void)0;
4969 var609
= varonce608
;
4973 var612
= standard___standard__NativeString___to_s_with_length(var610
, var611
);
4975 varonce608
= var609
;
4978 { /* Inline kernel#Object#!= (var605,var609) on <var605:String> */
4981 var615
= ((short int (*)(val
* self
, val
* p0
))(var605
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var605
, var_other
) /* == on <var605:String>*/;
4986 RET_LABEL614
:(void)0;
4994 var617
= nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__new_visitor(self
);
4998 var619
= varonce618
;
5002 var622
= standard___standard__NativeString___to_s_with_length(var620
, var621
);
5004 varonce618
= var619
;
5006 var623
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5007 { /* var623 = array_instance Array[Object] */
5009 var625
= NEW_standard__NativeArray(var624
, &type_standard__NativeArray__standard__Object
);
5010 ((struct instance_standard__NativeArray
*)var625
)->values
[0] = (val
*) var619
;
5011 ((struct instance_standard__NativeArray
*)var625
)->values
[1] = (val
*) var_c_name
;
5013 ((void (*)(val
* self
, val
* p0
, long p1
))(var623
->class->vft
[COLOR_standard__array__Array__with_native
]))(var623
, var625
, var624
) /* with_native on <var623:Array[Object]>*/;
5017 var626
= ((val
* (*)(val
* self
))(var623
->class->vft
[COLOR_standard__string__Object__to_s
]))(var623
) /* to_s on <var623:Array[Object]>*/;
5020 var627
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
5023 var629
= varonce628
;
5027 var632
= standard___standard__NativeString___to_s_with_length(var630
, var631
);
5029 varonce628
= var629
;
5032 var634
= varonce633
;
5036 var637
= standard___standard__NativeString___to_s_with_length(var635
, var636
);
5038 varonce633
= var634
;
5040 var638
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5041 { /* var638 = array_instance Array[Object] */
5043 var640
= NEW_standard__NativeArray(var639
, &type_standard__NativeArray__standard__Object
);
5044 ((struct instance_standard__NativeArray
*)var640
)->values
[0] = (val
*) var627
;
5045 ((struct instance_standard__NativeArray
*)var640
)->values
[1] = (val
*) var629
;
5046 ((struct instance_standard__NativeArray
*)var640
)->values
[2] = (val
*) var_c_name
;
5047 ((struct instance_standard__NativeArray
*)var640
)->values
[3] = (val
*) var634
;
5049 ((void (*)(val
* self
, val
* p0
, long p1
))(var638
->class->vft
[COLOR_standard__array__Array__with_native
]))(var638
, var640
, var639
) /* with_native on <var638:Array[Object]>*/;
5053 var641
= ((val
* (*)(val
* self
))(var638
->class->vft
[COLOR_standard__string__Object__to_s
]))(var638
) /* to_s on <var638:Array[Object]>*/;
5056 nit___nit__AbstractCompiler___provide_declaration(self
, var626
, var641
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
5059 var643
= varonce642
;
5061 var644
= "/* allocate ";
5063 var646
= standard___standard__NativeString___to_s_with_length(var644
, var645
);
5065 varonce642
= var643
;
5068 var648
= varonce647
;
5072 var651
= standard___standard__NativeString___to_s_with_length(var649
, var650
);
5074 varonce647
= var648
;
5076 var652
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5077 { /* var652 = array_instance Array[Object] */
5079 var654
= NEW_standard__NativeArray(var653
, &type_standard__NativeArray__standard__Object
);
5080 ((struct instance_standard__NativeArray
*)var654
)->values
[0] = (val
*) var643
;
5081 ((struct instance_standard__NativeArray
*)var654
)->values
[1] = (val
*) var_mtype
;
5082 ((struct instance_standard__NativeArray
*)var654
)->values
[2] = (val
*) var648
;
5084 ((void (*)(val
* self
, val
* p0
, long p1
))(var652
->class->vft
[COLOR_standard__array__Array__with_native
]))(var652
, var654
, var653
) /* with_native on <var652:Array[Object]>*/;
5088 var655
= ((val
* (*)(val
* self
))(var652
->class->vft
[COLOR_standard__string__Object__to_s
]))(var652
) /* to_s on <var652:Array[Object]>*/;
5091 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var655
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5094 var656
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
5097 var658
= varonce657
;
5101 var661
= standard___standard__NativeString___to_s_with_length(var659
, var660
);
5103 varonce657
= var658
;
5106 var663
= varonce662
;
5110 var666
= standard___standard__NativeString___to_s_with_length(var664
, var665
);
5112 varonce662
= var663
;
5114 var667
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5115 { /* var667 = array_instance Array[Object] */
5117 var669
= NEW_standard__NativeArray(var668
, &type_standard__NativeArray__standard__Object
);
5118 ((struct instance_standard__NativeArray
*)var669
)->values
[0] = (val
*) var656
;
5119 ((struct instance_standard__NativeArray
*)var669
)->values
[1] = (val
*) var658
;
5120 ((struct instance_standard__NativeArray
*)var669
)->values
[2] = (val
*) var_c_name
;
5121 ((struct instance_standard__NativeArray
*)var669
)->values
[3] = (val
*) var663
;
5123 ((void (*)(val
* self
, val
* p0
, long p1
))(var667
->class->vft
[COLOR_standard__array__Array__with_native
]))(var667
, var669
, var668
) /* with_native on <var667:Array[Object]>*/;
5127 var670
= ((val
* (*)(val
* self
))(var667
->class->vft
[COLOR_standard__string__Object__to_s
]))(var667
) /* to_s on <var667:Array[Object]>*/;
5130 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var670
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5134 var672
= varonce671
;
5136 var673
= " is DEAD";
5138 var675
= standard___standard__NativeString___to_s_with_length(var673
, var674
);
5140 varonce671
= var672
;
5142 var676
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5143 { /* var676 = array_instance Array[Object] */
5145 var678
= NEW_standard__NativeArray(var677
, &type_standard__NativeArray__standard__Object
);
5146 ((struct instance_standard__NativeArray
*)var678
)->values
[0] = (val
*) var_mclass
;
5147 ((struct instance_standard__NativeArray
*)var678
)->values
[1] = (val
*) var672
;
5149 ((void (*)(val
* self
, val
* p0
, long p1
))(var676
->class->vft
[COLOR_standard__array__Array__with_native
]))(var676
, var678
, var677
) /* with_native on <var676:Array[Object]>*/;
5153 var679
= ((val
* (*)(val
* self
))(var676
->class->vft
[COLOR_standard__string__Object__to_s
]))(var676
) /* to_s on <var676:Array[Object]>*/;
5156 nit___nit__AbstractCompilerVisitor___add_abort(var_v
, var679
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:SeparateCompilerVisitor>*/
5160 var681
= varonce680
;
5164 var684
= standard___standard__NativeString___to_s_with_length(var682
, var683
);
5166 varonce680
= var681
;
5169 var685
= nit___nit__AbstractCompilerVisitor___new_named_var(var_v
, var_mtype
, var681
);
5174 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res,var686) on <var_res:RuntimeVariable> */
5175 var_res
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact
].s
= var686
; /* _is_exact on <var_res:RuntimeVariable> */
5176 RET_LABEL687
:(void)0;
5180 var689
= varonce688
;
5182 var690
= " = nit_alloc(sizeof(struct instance_";
5184 var692
= standard___standard__NativeString___to_s_with_length(var690
, var691
);
5186 varonce688
= var689
;
5189 var693
= ((val
* (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model_base__MEntity__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
5192 var695
= varonce694
;
5196 var698
= standard___standard__NativeString___to_s_with_length(var696
, var697
);
5198 varonce694
= var695
;
5200 var699
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5201 { /* var699 = array_instance Array[Object] */
5203 var701
= NEW_standard__NativeArray(var700
, &type_standard__NativeArray__standard__Object
);
5204 ((struct instance_standard__NativeArray
*)var701
)->values
[0] = (val
*) var_res
;
5205 ((struct instance_standard__NativeArray
*)var701
)->values
[1] = (val
*) var689
;
5206 ((struct instance_standard__NativeArray
*)var701
)->values
[2] = (val
*) var693
;
5207 ((struct instance_standard__NativeArray
*)var701
)->values
[3] = (val
*) var695
;
5209 ((void (*)(val
* self
, val
* p0
, long p1
))(var699
->class->vft
[COLOR_standard__array__Array__with_native
]))(var699
, var701
, var700
) /* with_native on <var699:Array[Object]>*/;
5213 var702
= ((val
* (*)(val
* self
))(var699
->class->vft
[COLOR_standard__string__Object__to_s
]))(var699
) /* to_s on <var699:Array[Object]>*/;
5216 nit___nit__AbstractCompilerVisitor___add(var_v
, var702
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5219 var704
= varonce703
;
5223 var707
= standard___standard__NativeString___to_s_with_length(var705
, var706
);
5225 varonce703
= var704
;
5227 var708
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5228 { /* var708 = array_instance Array[Object] */
5230 var710
= NEW_standard__NativeArray(var709
, &type_standard__NativeArray__standard__Object
);
5231 ((struct instance_standard__NativeArray
*)var710
)->values
[0] = (val
*) var704
;
5232 ((struct instance_standard__NativeArray
*)var710
)->values
[1] = (val
*) var_c_name
;
5234 ((void (*)(val
* self
, val
* p0
, long p1
))(var708
->class->vft
[COLOR_standard__array__Array__with_native
]))(var708
, var710
, var709
) /* with_native on <var708:Array[Object]>*/;
5238 var711
= ((val
* (*)(val
* self
))(var708
->class->vft
[COLOR_standard__string__Object__to_s
]))(var708
) /* to_s on <var708:Array[Object]>*/;
5241 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var711
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
5244 var713
= varonce712
;
5246 var714
= "->class = &class_";
5248 var716
= standard___standard__NativeString___to_s_with_length(var714
, var715
);
5250 varonce712
= var713
;
5253 var718
= varonce717
;
5257 var721
= standard___standard__NativeString___to_s_with_length(var719
, var720
);
5259 varonce717
= var718
;
5261 var722
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5262 { /* var722 = array_instance Array[Object] */
5264 var724
= NEW_standard__NativeArray(var723
, &type_standard__NativeArray__standard__Object
);
5265 ((struct instance_standard__NativeArray
*)var724
)->values
[0] = (val
*) var_res
;
5266 ((struct instance_standard__NativeArray
*)var724
)->values
[1] = (val
*) var713
;
5267 ((struct instance_standard__NativeArray
*)var724
)->values
[2] = (val
*) var_c_name
;
5268 ((struct instance_standard__NativeArray
*)var724
)->values
[3] = (val
*) var718
;
5270 ((void (*)(val
* self
, val
* p0
, long p1
))(var722
->class->vft
[COLOR_standard__array__Array__with_native
]))(var722
, var724
, var723
) /* with_native on <var722:Array[Object]>*/;
5274 var725
= ((val
* (*)(val
* self
))(var722
->class->vft
[COLOR_standard__string__Object__to_s
]))(var722
) /* to_s on <var722:Array[Object]>*/;
5277 nit___nit__AbstractCompilerVisitor___add(var_v
, var725
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5280 var727
= varonce726
;
5282 var728
= "((struct instance_";
5284 var730
= standard___standard__NativeString___to_s_with_length(var728
, var729
);
5286 varonce726
= var727
;
5289 var731
= ((val
* (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model_base__MEntity__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
5292 var733
= varonce732
;
5296 var736
= standard___standard__NativeString___to_s_with_length(var734
, var735
);
5298 varonce732
= var733
;
5301 var738
= varonce737
;
5303 var739
= ")->value = NULL;";
5305 var741
= standard___standard__NativeString___to_s_with_length(var739
, var740
);
5307 varonce737
= var738
;
5309 var742
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5310 { /* var742 = array_instance Array[Object] */
5312 var744
= NEW_standard__NativeArray(var743
, &type_standard__NativeArray__standard__Object
);
5313 ((struct instance_standard__NativeArray
*)var744
)->values
[0] = (val
*) var727
;
5314 ((struct instance_standard__NativeArray
*)var744
)->values
[1] = (val
*) var731
;
5315 ((struct instance_standard__NativeArray
*)var744
)->values
[2] = (val
*) var733
;
5316 ((struct instance_standard__NativeArray
*)var744
)->values
[3] = (val
*) var_res
;
5317 ((struct instance_standard__NativeArray
*)var744
)->values
[4] = (val
*) var738
;
5319 ((void (*)(val
* self
, val
* p0
, long p1
))(var742
->class->vft
[COLOR_standard__array__Array__with_native
]))(var742
, var744
, var743
) /* with_native on <var742:Array[Object]>*/;
5323 var745
= ((val
* (*)(val
* self
))(var742
->class->vft
[COLOR_standard__string__Object__to_s
]))(var742
) /* to_s on <var742:Array[Object]>*/;
5326 nit___nit__AbstractCompilerVisitor___add(var_v
, var745
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5329 var747
= varonce746
;
5333 var750
= standard___standard__NativeString___to_s_with_length(var748
, var749
);
5335 varonce746
= var747
;
5338 var752
= varonce751
;
5342 var755
= standard___standard__NativeString___to_s_with_length(var753
, var754
);
5344 varonce751
= var752
;
5346 var756
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5347 { /* var756 = array_instance Array[Object] */
5349 var758
= NEW_standard__NativeArray(var757
, &type_standard__NativeArray__standard__Object
);
5350 ((struct instance_standard__NativeArray
*)var758
)->values
[0] = (val
*) var747
;
5351 ((struct instance_standard__NativeArray
*)var758
)->values
[1] = (val
*) var_res
;
5352 ((struct instance_standard__NativeArray
*)var758
)->values
[2] = (val
*) var752
;
5354 ((void (*)(val
* self
, val
* p0
, long p1
))(var756
->class->vft
[COLOR_standard__array__Array__with_native
]))(var756
, var758
, var757
) /* with_native on <var756:Array[Object]>*/;
5358 var759
= ((val
* (*)(val
* self
))(var756
->class->vft
[COLOR_standard__string__Object__to_s
]))(var756
) /* to_s on <var756:Array[Object]>*/;
5361 nit___nit__AbstractCompilerVisitor___add(var_v
, var759
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5365 var761
= varonce760
;
5369 var764
= standard___standard__NativeString___to_s_with_length(var762
, var763
);
5371 varonce760
= var761
;
5374 nit___nit__AbstractCompilerVisitor___add(var_v
, var761
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5379 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
5380 var767
= var_mclass
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
5381 if (unlikely(var767
== NULL
)) {
5382 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5383 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 348);
5387 RET_LABEL766
:(void)0;
5391 var769
= varonce768
;
5393 var770
= "NativeArray";
5395 var772
= standard___standard__NativeString___to_s_with_length(var770
, var771
);
5397 varonce768
= var769
;
5400 var773
= ((short int (*)(val
* self
, val
* p0
))(var765
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var765
, var769
) /* == on <var765:String>*/;
5404 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5405 var776
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5406 if (unlikely(var776
== NULL
)) {
5407 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5408 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 523);
5412 RET_LABEL775
:(void)0;
5416 var778
= varonce777
;
5418 var779
= "struct instance_";
5420 var781
= standard___standard__NativeString___to_s_with_length(var779
, var780
);
5422 varonce777
= var778
;
5425 var783
= varonce782
;
5429 var786
= standard___standard__NativeString___to_s_with_length(var784
, var785
);
5431 varonce782
= var783
;
5433 var787
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5434 { /* var787 = array_instance Array[Object] */
5436 var789
= NEW_standard__NativeArray(var788
, &type_standard__NativeArray__standard__Object
);
5437 ((struct instance_standard__NativeArray
*)var789
)->values
[0] = (val
*) var778
;
5438 ((struct instance_standard__NativeArray
*)var789
)->values
[1] = (val
*) var_c_name
;
5439 ((struct instance_standard__NativeArray
*)var789
)->values
[2] = (val
*) var783
;
5441 ((void (*)(val
* self
, val
* p0
, long p1
))(var787
->class->vft
[COLOR_standard__array__Array__with_native
]))(var787
, var789
, var788
) /* with_native on <var787:Array[Object]>*/;
5445 var790
= ((val
* (*)(val
* self
))(var787
->class->vft
[COLOR_standard__string__Object__to_s
]))(var787
) /* to_s on <var787:Array[Object]>*/;
5448 nit___nit__CodeWriter___add_decl(var774
, var790
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var774:CodeWriter>*/
5451 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5452 var793
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5453 if (unlikely(var793
== NULL
)) {
5454 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5455 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 523);
5459 RET_LABEL792
:(void)0;
5463 var795
= varonce794
;
5465 var796
= "const struct class *class;";
5467 var798
= standard___standard__NativeString___to_s_with_length(var796
, var797
);
5469 varonce794
= var795
;
5472 nit___nit__CodeWriter___add_decl(var791
, var795
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var791:CodeWriter>*/
5475 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5476 var801
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5477 if (unlikely(var801
== NULL
)) {
5478 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5479 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 523);
5483 RET_LABEL800
:(void)0;
5487 var803
= varonce802
;
5489 var804
= "int length;";
5491 var806
= standard___standard__NativeString___to_s_with_length(var804
, var805
);
5493 varonce802
= var803
;
5496 nit___nit__CodeWriter___add_decl(var799
, var803
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var799:CodeWriter>*/
5499 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5500 var809
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5501 if (unlikely(var809
== NULL
)) {
5502 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5503 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 523);
5507 RET_LABEL808
:(void)0;
5511 var811
= varonce810
;
5513 var812
= "val* values[];";
5515 var814
= standard___standard__NativeString___to_s_with_length(var812
, var813
);
5517 varonce810
= var811
;
5520 nit___nit__CodeWriter___add_decl(var807
, var811
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var807:CodeWriter>*/
5523 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5524 var817
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5525 if (unlikely(var817
== NULL
)) {
5526 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5527 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 523);
5531 RET_LABEL816
:(void)0;
5535 var819
= varonce818
;
5539 var822
= standard___standard__NativeString___to_s_with_length(var820
, var821
);
5541 varonce818
= var819
;
5544 nit___nit__CodeWriter___add_decl(var815
, var819
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var815:CodeWriter>*/
5547 var824
= varonce823
;
5551 var827
= standard___standard__NativeString___to_s_with_length(var825
, var826
);
5553 varonce823
= var824
;
5555 var828
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5556 { /* var828 = array_instance Array[Object] */
5558 var830
= NEW_standard__NativeArray(var829
, &type_standard__NativeArray__standard__Object
);
5559 ((struct instance_standard__NativeArray
*)var830
)->values
[0] = (val
*) var824
;
5560 ((struct instance_standard__NativeArray
*)var830
)->values
[1] = (val
*) var_c_name
;
5562 ((void (*)(val
* self
, val
* p0
, long p1
))(var828
->class->vft
[COLOR_standard__array__Array__with_native
]))(var828
, var830
, var829
) /* with_native on <var828:Array[Object]>*/;
5566 var831
= ((val
* (*)(val
* self
))(var828
->class->vft
[COLOR_standard__string__Object__to_s
]))(var828
) /* to_s on <var828:Array[Object]>*/;
5569 var832
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
5572 var834
= varonce833
;
5576 var837
= standard___standard__NativeString___to_s_with_length(var835
, var836
);
5578 varonce833
= var834
;
5581 var839
= varonce838
;
5583 var840
= "(int length);";
5585 var842
= standard___standard__NativeString___to_s_with_length(var840
, var841
);
5587 varonce838
= var839
;
5589 var843
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5590 { /* var843 = array_instance Array[Object] */
5592 var845
= NEW_standard__NativeArray(var844
, &type_standard__NativeArray__standard__Object
);
5593 ((struct instance_standard__NativeArray
*)var845
)->values
[0] = (val
*) var832
;
5594 ((struct instance_standard__NativeArray
*)var845
)->values
[1] = (val
*) var834
;
5595 ((struct instance_standard__NativeArray
*)var845
)->values
[2] = (val
*) var_c_name
;
5596 ((struct instance_standard__NativeArray
*)var845
)->values
[3] = (val
*) var839
;
5598 ((void (*)(val
* self
, val
* p0
, long p1
))(var843
->class->vft
[COLOR_standard__array__Array__with_native
]))(var843
, var845
, var844
) /* with_native on <var843:Array[Object]>*/;
5602 var846
= ((val
* (*)(val
* self
))(var843
->class->vft
[COLOR_standard__string__Object__to_s
]))(var843
) /* to_s on <var843:Array[Object]>*/;
5605 nit___nit__AbstractCompiler___provide_declaration(self
, var831
, var846
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
5608 var848
= varonce847
;
5610 var849
= "/* allocate ";
5612 var851
= standard___standard__NativeString___to_s_with_length(var849
, var850
);
5614 varonce847
= var848
;
5617 var853
= varonce852
;
5621 var856
= standard___standard__NativeString___to_s_with_length(var854
, var855
);
5623 varonce852
= var853
;
5625 var857
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5626 { /* var857 = array_instance Array[Object] */
5628 var859
= NEW_standard__NativeArray(var858
, &type_standard__NativeArray__standard__Object
);
5629 ((struct instance_standard__NativeArray
*)var859
)->values
[0] = (val
*) var848
;
5630 ((struct instance_standard__NativeArray
*)var859
)->values
[1] = (val
*) var_mtype
;
5631 ((struct instance_standard__NativeArray
*)var859
)->values
[2] = (val
*) var853
;
5633 ((void (*)(val
* self
, val
* p0
, long p1
))(var857
->class->vft
[COLOR_standard__array__Array__with_native
]))(var857
, var859
, var858
) /* with_native on <var857:Array[Object]>*/;
5637 var860
= ((val
* (*)(val
* self
))(var857
->class->vft
[COLOR_standard__string__Object__to_s
]))(var857
) /* to_s on <var857:Array[Object]>*/;
5640 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var860
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5643 var861
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
5646 var863
= varonce862
;
5650 var866
= standard___standard__NativeString___to_s_with_length(var864
, var865
);
5652 varonce862
= var863
;
5655 var868
= varonce867
;
5657 var869
= "(int length) {";
5659 var871
= standard___standard__NativeString___to_s_with_length(var869
, var870
);
5661 varonce867
= var868
;
5663 var872
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5664 { /* var872 = array_instance Array[Object] */
5666 var874
= NEW_standard__NativeArray(var873
, &type_standard__NativeArray__standard__Object
);
5667 ((struct instance_standard__NativeArray
*)var874
)->values
[0] = (val
*) var861
;
5668 ((struct instance_standard__NativeArray
*)var874
)->values
[1] = (val
*) var863
;
5669 ((struct instance_standard__NativeArray
*)var874
)->values
[2] = (val
*) var_c_name
;
5670 ((struct instance_standard__NativeArray
*)var874
)->values
[3] = (val
*) var868
;
5672 ((void (*)(val
* self
, val
* p0
, long p1
))(var872
->class->vft
[COLOR_standard__array__Array__with_native
]))(var872
, var874
, var873
) /* with_native on <var872:Array[Object]>*/;
5676 var875
= ((val
* (*)(val
* self
))(var872
->class->vft
[COLOR_standard__string__Object__to_s
]))(var872
) /* to_s on <var872:Array[Object]>*/;
5679 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var875
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5682 var877
= varonce876
;
5686 var880
= standard___standard__NativeString___to_s_with_length(var878
, var879
);
5688 varonce876
= var877
;
5691 var881
= nit___nit__AbstractCompilerVisitor___get_name(var_v
, var877
);
5693 var_res882
= var881
;
5695 var884
= varonce883
;
5697 var885
= "struct instance_";
5699 var887
= standard___standard__NativeString___to_s_with_length(var885
, var886
);
5701 varonce883
= var884
;
5704 var889
= varonce888
;
5708 var892
= standard___standard__NativeString___to_s_with_length(var890
, var891
);
5710 varonce888
= var889
;
5713 var894
= varonce893
;
5717 var897
= standard___standard__NativeString___to_s_with_length(var895
, var896
);
5719 varonce893
= var894
;
5721 var898
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5722 { /* var898 = array_instance Array[Object] */
5724 var900
= NEW_standard__NativeArray(var899
, &type_standard__NativeArray__standard__Object
);
5725 ((struct instance_standard__NativeArray
*)var900
)->values
[0] = (val
*) var884
;
5726 ((struct instance_standard__NativeArray
*)var900
)->values
[1] = (val
*) var_c_name
;
5727 ((struct instance_standard__NativeArray
*)var900
)->values
[2] = (val
*) var889
;
5728 ((struct instance_standard__NativeArray
*)var900
)->values
[3] = (val
*) var_res882
;
5729 ((struct instance_standard__NativeArray
*)var900
)->values
[4] = (val
*) var894
;
5731 ((void (*)(val
* self
, val
* p0
, long p1
))(var898
->class->vft
[COLOR_standard__array__Array__with_native
]))(var898
, var900
, var899
) /* with_native on <var898:Array[Object]>*/;
5735 var901
= ((val
* (*)(val
* self
))(var898
->class->vft
[COLOR_standard__string__Object__to_s
]))(var898
) /* to_s on <var898:Array[Object]>*/;
5738 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var901
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5741 var902
= ((val
* (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
5744 var903
= standard___standard__SequenceRead___Collection__first(var902
);
5746 var_mtype_elt
= var903
;
5748 var905
= varonce904
;
5750 var906
= " = nit_alloc(sizeof(struct instance_";
5752 var908
= standard___standard__NativeString___to_s_with_length(var906
, var907
);
5754 varonce904
= var905
;
5757 var910
= varonce909
;
5759 var911
= ") + length*sizeof(";
5761 var913
= standard___standard__NativeString___to_s_with_length(var911
, var912
);
5763 varonce909
= var910
;
5766 var914
= ((val
* (*)(val
* self
))(var_mtype_elt
->class->vft
[COLOR_nit__abstract_compiler__MType__ctype
]))(var_mtype_elt
) /* ctype on <var_mtype_elt:MType>*/;
5769 var916
= varonce915
;
5773 var919
= standard___standard__NativeString___to_s_with_length(var917
, var918
);
5775 varonce915
= var916
;
5777 var920
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5778 { /* var920 = array_instance Array[Object] */
5780 var922
= NEW_standard__NativeArray(var921
, &type_standard__NativeArray__standard__Object
);
5781 ((struct instance_standard__NativeArray
*)var922
)->values
[0] = (val
*) var_res882
;
5782 ((struct instance_standard__NativeArray
*)var922
)->values
[1] = (val
*) var905
;
5783 ((struct instance_standard__NativeArray
*)var922
)->values
[2] = (val
*) var_c_name
;
5784 ((struct instance_standard__NativeArray
*)var922
)->values
[3] = (val
*) var910
;
5785 ((struct instance_standard__NativeArray
*)var922
)->values
[4] = (val
*) var914
;
5786 ((struct instance_standard__NativeArray
*)var922
)->values
[5] = (val
*) var916
;
5788 ((void (*)(val
* self
, val
* p0
, long p1
))(var920
->class->vft
[COLOR_standard__array__Array__with_native
]))(var920
, var922
, var921
) /* with_native on <var920:Array[Object]>*/;
5792 var923
= ((val
* (*)(val
* self
))(var920
->class->vft
[COLOR_standard__string__Object__to_s
]))(var920
) /* to_s on <var920:Array[Object]>*/;
5795 nit___nit__AbstractCompilerVisitor___add(var_v
, var923
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5798 var925
= varonce924
;
5802 var928
= standard___standard__NativeString___to_s_with_length(var926
, var927
);
5804 varonce924
= var925
;
5806 var929
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5807 { /* var929 = array_instance Array[Object] */
5809 var931
= NEW_standard__NativeArray(var930
, &type_standard__NativeArray__standard__Object
);
5810 ((struct instance_standard__NativeArray
*)var931
)->values
[0] = (val
*) var925
;
5811 ((struct instance_standard__NativeArray
*)var931
)->values
[1] = (val
*) var_c_name
;
5813 ((void (*)(val
* self
, val
* p0
, long p1
))(var929
->class->vft
[COLOR_standard__array__Array__with_native
]))(var929
, var931
, var930
) /* with_native on <var929:Array[Object]>*/;
5817 var932
= ((val
* (*)(val
* self
))(var929
->class->vft
[COLOR_standard__string__Object__to_s
]))(var929
) /* to_s on <var929:Array[Object]>*/;
5820 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var932
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
5823 var934
= varonce933
;
5825 var935
= "->class = &class_";
5827 var937
= standard___standard__NativeString___to_s_with_length(var935
, var936
);
5829 varonce933
= var934
;
5832 var939
= varonce938
;
5836 var942
= standard___standard__NativeString___to_s_with_length(var940
, var941
);
5838 varonce938
= var939
;
5840 var943
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5841 { /* var943 = array_instance Array[Object] */
5843 var945
= NEW_standard__NativeArray(var944
, &type_standard__NativeArray__standard__Object
);
5844 ((struct instance_standard__NativeArray
*)var945
)->values
[0] = (val
*) var_res882
;
5845 ((struct instance_standard__NativeArray
*)var945
)->values
[1] = (val
*) var934
;
5846 ((struct instance_standard__NativeArray
*)var945
)->values
[2] = (val
*) var_c_name
;
5847 ((struct instance_standard__NativeArray
*)var945
)->values
[3] = (val
*) var939
;
5849 ((void (*)(val
* self
, val
* p0
, long p1
))(var943
->class->vft
[COLOR_standard__array__Array__with_native
]))(var943
, var945
, var944
) /* with_native on <var943:Array[Object]>*/;
5853 var946
= ((val
* (*)(val
* self
))(var943
->class->vft
[COLOR_standard__string__Object__to_s
]))(var943
) /* to_s on <var943:Array[Object]>*/;
5856 nit___nit__AbstractCompilerVisitor___add(var_v
, var946
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5859 var948
= varonce947
;
5861 var949
= "->length = length;";
5863 var951
= standard___standard__NativeString___to_s_with_length(var949
, var950
);
5865 varonce947
= var948
;
5867 var952
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5868 { /* var952 = array_instance Array[Object] */
5870 var954
= NEW_standard__NativeArray(var953
, &type_standard__NativeArray__standard__Object
);
5871 ((struct instance_standard__NativeArray
*)var954
)->values
[0] = (val
*) var_res882
;
5872 ((struct instance_standard__NativeArray
*)var954
)->values
[1] = (val
*) var948
;
5874 ((void (*)(val
* self
, val
* p0
, long p1
))(var952
->class->vft
[COLOR_standard__array__Array__with_native
]))(var952
, var954
, var953
) /* with_native on <var952:Array[Object]>*/;
5878 var955
= ((val
* (*)(val
* self
))(var952
->class->vft
[COLOR_standard__string__Object__to_s
]))(var952
) /* to_s on <var952:Array[Object]>*/;
5881 nit___nit__AbstractCompilerVisitor___add(var_v
, var955
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5884 var957
= varonce956
;
5886 var958
= "return (val*)";
5888 var960
= standard___standard__NativeString___to_s_with_length(var958
, var959
);
5890 varonce956
= var957
;
5893 var962
= varonce961
;
5897 var965
= standard___standard__NativeString___to_s_with_length(var963
, var964
);
5899 varonce961
= var962
;
5901 var966
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5902 { /* var966 = array_instance Array[Object] */
5904 var968
= NEW_standard__NativeArray(var967
, &type_standard__NativeArray__standard__Object
);
5905 ((struct instance_standard__NativeArray
*)var968
)->values
[0] = (val
*) var957
;
5906 ((struct instance_standard__NativeArray
*)var968
)->values
[1] = (val
*) var_res882
;
5907 ((struct instance_standard__NativeArray
*)var968
)->values
[2] = (val
*) var962
;
5909 ((void (*)(val
* self
, val
* p0
, long p1
))(var966
->class->vft
[COLOR_standard__array__Array__with_native
]))(var966
, var968
, var967
) /* with_native on <var966:Array[Object]>*/;
5913 var969
= ((val
* (*)(val
* self
))(var966
->class->vft
[COLOR_standard__string__Object__to_s
]))(var966
) /* to_s on <var966:Array[Object]>*/;
5916 nit___nit__AbstractCompilerVisitor___add(var_v
, var969
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5919 var971
= varonce970
;
5923 var974
= standard___standard__NativeString___to_s_with_length(var972
, var973
);
5925 varonce970
= var971
;
5928 nit___nit__AbstractCompilerVisitor___add(var_v
, var971
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5933 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
5934 var978
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
5935 if (unlikely(var978
== NULL
)) {
5936 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5937 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
5941 RET_LABEL977
:(void)0;
5945 { /* Inline model#MClass#kind (var976) on <var976:MClass> */
5946 var981
= var976
->attrs
[COLOR_nit__model__MClass___kind
].val
; /* _kind on <var976:MClass> */
5947 if (unlikely(var981
== NULL
)) {
5948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
5949 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 399);
5953 RET_LABEL980
:(void)0;
5957 var982
= nit__model___standard__Object___extern_kind(self
);
5960 { /* Inline kernel#Object#== (var979,var982) on <var979:MClassKind> */
5961 var_other244
= var982
;
5963 { /* Inline kernel#Object#is_same_instance (var979,var_other244) on <var979:MClassKind> */
5964 var987
= var979
== var_other244
;
5967 RET_LABEL986
:(void)0;
5972 RET_LABEL984
:(void)0;
5978 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
5979 var991
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
5980 if (unlikely(var991
== NULL
)) {
5981 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5982 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
5986 RET_LABEL990
:(void)0;
5990 { /* Inline model#MClass#name (var989) on <var989:MClass> */
5991 var994
= var989
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var989:MClass> */
5992 if (unlikely(var994
== NULL
)) {
5993 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5994 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 348);
5998 RET_LABEL993
:(void)0;
6002 var996
= varonce995
;
6004 var997
= "NativeString";
6006 var999
= standard___standard__NativeString___to_s_with_length(var997
, var998
);
6008 varonce995
= var996
;
6011 { /* Inline kernel#Object#!= (var992,var996) on <var992:String> */
6014 var1002
= ((short int (*)(val
* self
, val
* p0
))(var992
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var992
, var_other
) /* == on <var992:String>*/;
6019 RET_LABEL1001
:(void)0;
6028 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
6029 var1006
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
6030 if (unlikely(var1006
== NULL
)) {
6031 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6032 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 474);
6036 RET_LABEL1005
:(void)0;
6040 var1007
= nit__model___MModule___pointer_type(var1004
);
6042 var_pointer_type
= var1007
;
6044 var1009
= varonce1008
;
6048 var1012
= standard___standard__NativeString___to_s_with_length(var1010
, var1011
);
6050 varonce1008
= var1009
;
6052 var1013
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6053 { /* var1013 = array_instance Array[Object] */
6055 var1015
= NEW_standard__NativeArray(var1014
, &type_standard__NativeArray__standard__Object
);
6056 ((struct instance_standard__NativeArray
*)var1015
)->values
[0] = (val
*) var1009
;
6057 ((struct instance_standard__NativeArray
*)var1015
)->values
[1] = (val
*) var_c_name
;
6059 ((void (*)(val
* self
, val
* p0
, long p1
))(var1013
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1013
, var1015
, var1014
) /* with_native on <var1013:Array[Object]>*/;
6063 var1016
= ((val
* (*)(val
* self
))(var1013
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1013
) /* to_s on <var1013:Array[Object]>*/;
6066 var1017
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
6069 var1019
= varonce1018
;
6073 var1022
= standard___standard__NativeString___to_s_with_length(var1020
, var1021
);
6075 varonce1018
= var1019
;
6078 var1024
= varonce1023
;
6082 var1027
= standard___standard__NativeString___to_s_with_length(var1025
, var1026
);
6084 varonce1023
= var1024
;
6086 var1028
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6087 { /* var1028 = array_instance Array[Object] */
6089 var1030
= NEW_standard__NativeArray(var1029
, &type_standard__NativeArray__standard__Object
);
6090 ((struct instance_standard__NativeArray
*)var1030
)->values
[0] = (val
*) var1017
;
6091 ((struct instance_standard__NativeArray
*)var1030
)->values
[1] = (val
*) var1019
;
6092 ((struct instance_standard__NativeArray
*)var1030
)->values
[2] = (val
*) var_c_name
;
6093 ((struct instance_standard__NativeArray
*)var1030
)->values
[3] = (val
*) var1024
;
6095 ((void (*)(val
* self
, val
* p0
, long p1
))(var1028
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1028
, var1030
, var1029
) /* with_native on <var1028:Array[Object]>*/;
6099 var1031
= ((val
* (*)(val
* self
))(var1028
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1028
) /* to_s on <var1028:Array[Object]>*/;
6102 nit___nit__AbstractCompiler___provide_declaration(self
, var1016
, var1031
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
6105 var1033
= varonce1032
;
6107 var1034
= "/* allocate ";
6109 var1036
= standard___standard__NativeString___to_s_with_length(var1034
, var1035
);
6111 varonce1032
= var1033
;
6114 var1038
= varonce1037
;
6118 var1041
= standard___standard__NativeString___to_s_with_length(var1039
, var1040
);
6120 varonce1037
= var1038
;
6122 var1042
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6123 { /* var1042 = array_instance Array[Object] */
6125 var1044
= NEW_standard__NativeArray(var1043
, &type_standard__NativeArray__standard__Object
);
6126 ((struct instance_standard__NativeArray
*)var1044
)->values
[0] = (val
*) var1033
;
6127 ((struct instance_standard__NativeArray
*)var1044
)->values
[1] = (val
*) var_mtype
;
6128 ((struct instance_standard__NativeArray
*)var1044
)->values
[2] = (val
*) var1038
;
6130 ((void (*)(val
* self
, val
* p0
, long p1
))(var1042
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1042
, var1044
, var1043
) /* with_native on <var1042:Array[Object]>*/;
6134 var1045
= ((val
* (*)(val
* self
))(var1042
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1042
) /* to_s on <var1042:Array[Object]>*/;
6137 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var1045
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6140 var1046
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
6143 var1048
= varonce1047
;
6147 var1051
= standard___standard__NativeString___to_s_with_length(var1049
, var1050
);
6149 varonce1047
= var1048
;
6152 var1053
= varonce1052
;
6156 var1056
= standard___standard__NativeString___to_s_with_length(var1054
, var1055
);
6158 varonce1052
= var1053
;
6160 var1057
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6161 { /* var1057 = array_instance Array[Object] */
6163 var1059
= NEW_standard__NativeArray(var1058
, &type_standard__NativeArray__standard__Object
);
6164 ((struct instance_standard__NativeArray
*)var1059
)->values
[0] = (val
*) var1046
;
6165 ((struct instance_standard__NativeArray
*)var1059
)->values
[1] = (val
*) var1048
;
6166 ((struct instance_standard__NativeArray
*)var1059
)->values
[2] = (val
*) var_c_name
;
6167 ((struct instance_standard__NativeArray
*)var1059
)->values
[3] = (val
*) var1053
;
6169 ((void (*)(val
* self
, val
* p0
, long p1
))(var1057
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1057
, var1059
, var1058
) /* with_native on <var1057:Array[Object]>*/;
6173 var1060
= ((val
* (*)(val
* self
))(var1057
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1057
) /* to_s on <var1057:Array[Object]>*/;
6176 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var1060
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6180 var1062
= varonce1061
;
6182 var1063
= " is DEAD";
6184 var1065
= standard___standard__NativeString___to_s_with_length(var1063
, var1064
);
6186 varonce1061
= var1062
;
6188 var1066
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6189 { /* var1066 = array_instance Array[Object] */
6191 var1068
= NEW_standard__NativeArray(var1067
, &type_standard__NativeArray__standard__Object
);
6192 ((struct instance_standard__NativeArray
*)var1068
)->values
[0] = (val
*) var_mclass
;
6193 ((struct instance_standard__NativeArray
*)var1068
)->values
[1] = (val
*) var1062
;
6195 ((void (*)(val
* self
, val
* p0
, long p1
))(var1066
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1066
, var1068
, var1067
) /* with_native on <var1066:Array[Object]>*/;
6199 var1069
= ((val
* (*)(val
* self
))(var1066
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1066
) /* to_s on <var1066:Array[Object]>*/;
6202 nit___nit__AbstractCompilerVisitor___add_abort(var_v
, var1069
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:SeparateCompilerVisitor>*/
6206 var1071
= varonce1070
;
6210 var1074
= standard___standard__NativeString___to_s_with_length(var1072
, var1073
);
6212 varonce1070
= var1071
;
6215 var1075
= nit___nit__AbstractCompilerVisitor___new_named_var(var_v
, var_mtype
, var1071
);
6217 var_res1076
= var1075
;
6220 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res1076,var1077) on <var_res1076:RuntimeVariable> */
6221 var_res1076
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact
].s
= var1077
; /* _is_exact on <var_res1076:RuntimeVariable> */
6222 RET_LABEL1078
:(void)0;
6226 var1080
= varonce1079
;
6228 var1081
= " = nit_alloc(sizeof(struct instance_";
6230 var1083
= standard___standard__NativeString___to_s_with_length(var1081
, var1082
);
6232 varonce1079
= var1080
;
6235 var1084
= ((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>*/;
6238 var1086
= varonce1085
;
6242 var1089
= standard___standard__NativeString___to_s_with_length(var1087
, var1088
);
6244 varonce1085
= var1086
;
6246 var1090
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6247 { /* var1090 = array_instance Array[Object] */
6249 var1092
= NEW_standard__NativeArray(var1091
, &type_standard__NativeArray__standard__Object
);
6250 ((struct instance_standard__NativeArray
*)var1092
)->values
[0] = (val
*) var_res1076
;
6251 ((struct instance_standard__NativeArray
*)var1092
)->values
[1] = (val
*) var1080
;
6252 ((struct instance_standard__NativeArray
*)var1092
)->values
[2] = (val
*) var1084
;
6253 ((struct instance_standard__NativeArray
*)var1092
)->values
[3] = (val
*) var1086
;
6255 ((void (*)(val
* self
, val
* p0
, long p1
))(var1090
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1090
, var1092
, var1091
) /* with_native on <var1090:Array[Object]>*/;
6259 var1093
= ((val
* (*)(val
* self
))(var1090
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1090
) /* to_s on <var1090:Array[Object]>*/;
6262 nit___nit__AbstractCompilerVisitor___add(var_v
, var1093
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6265 var1095
= varonce1094
;
6269 var1098
= standard___standard__NativeString___to_s_with_length(var1096
, var1097
);
6271 varonce1094
= var1095
;
6273 var1099
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6274 { /* var1099 = array_instance Array[Object] */
6276 var1101
= NEW_standard__NativeArray(var1100
, &type_standard__NativeArray__standard__Object
);
6277 ((struct instance_standard__NativeArray
*)var1101
)->values
[0] = (val
*) var1095
;
6278 ((struct instance_standard__NativeArray
*)var1101
)->values
[1] = (val
*) var_c_name
;
6280 ((void (*)(val
* self
, val
* p0
, long p1
))(var1099
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1099
, var1101
, var1100
) /* with_native on <var1099:Array[Object]>*/;
6284 var1102
= ((val
* (*)(val
* self
))(var1099
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1099
) /* to_s on <var1099:Array[Object]>*/;
6287 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var1102
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
6290 var1104
= varonce1103
;
6292 var1105
= "->class = &class_";
6294 var1107
= standard___standard__NativeString___to_s_with_length(var1105
, var1106
);
6296 varonce1103
= var1104
;
6299 var1109
= varonce1108
;
6303 var1112
= standard___standard__NativeString___to_s_with_length(var1110
, var1111
);
6305 varonce1108
= var1109
;
6307 var1113
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6308 { /* var1113 = array_instance Array[Object] */
6310 var1115
= NEW_standard__NativeArray(var1114
, &type_standard__NativeArray__standard__Object
);
6311 ((struct instance_standard__NativeArray
*)var1115
)->values
[0] = (val
*) var_res1076
;
6312 ((struct instance_standard__NativeArray
*)var1115
)->values
[1] = (val
*) var1104
;
6313 ((struct instance_standard__NativeArray
*)var1115
)->values
[2] = (val
*) var_c_name
;
6314 ((struct instance_standard__NativeArray
*)var1115
)->values
[3] = (val
*) var1109
;
6316 ((void (*)(val
* self
, val
* p0
, long p1
))(var1113
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1113
, var1115
, var1114
) /* with_native on <var1113:Array[Object]>*/;
6320 var1116
= ((val
* (*)(val
* self
))(var1113
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1113
) /* to_s on <var1113:Array[Object]>*/;
6323 nit___nit__AbstractCompilerVisitor___add(var_v
, var1116
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6326 var1118
= varonce1117
;
6328 var1119
= "((struct instance_";
6330 var1121
= standard___standard__NativeString___to_s_with_length(var1119
, var1120
);
6332 varonce1117
= var1118
;
6335 var1122
= ((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>*/;
6338 var1124
= varonce1123
;
6342 var1127
= standard___standard__NativeString___to_s_with_length(var1125
, var1126
);
6344 varonce1123
= var1124
;
6347 var1129
= varonce1128
;
6349 var1130
= ")->value = NULL;";
6351 var1132
= standard___standard__NativeString___to_s_with_length(var1130
, var1131
);
6353 varonce1128
= var1129
;
6355 var1133
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6356 { /* var1133 = array_instance Array[Object] */
6358 var1135
= NEW_standard__NativeArray(var1134
, &type_standard__NativeArray__standard__Object
);
6359 ((struct instance_standard__NativeArray
*)var1135
)->values
[0] = (val
*) var1118
;
6360 ((struct instance_standard__NativeArray
*)var1135
)->values
[1] = (val
*) var1122
;
6361 ((struct instance_standard__NativeArray
*)var1135
)->values
[2] = (val
*) var1124
;
6362 ((struct instance_standard__NativeArray
*)var1135
)->values
[3] = (val
*) var_res1076
;
6363 ((struct instance_standard__NativeArray
*)var1135
)->values
[4] = (val
*) var1129
;
6365 ((void (*)(val
* self
, val
* p0
, long p1
))(var1133
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1133
, var1135
, var1134
) /* with_native on <var1133:Array[Object]>*/;
6369 var1136
= ((val
* (*)(val
* self
))(var1133
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1133
) /* to_s on <var1133:Array[Object]>*/;
6372 nit___nit__AbstractCompilerVisitor___add(var_v
, var1136
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6375 var1138
= varonce1137
;
6377 var1139
= "return ";
6379 var1141
= standard___standard__NativeString___to_s_with_length(var1139
, var1140
);
6381 varonce1137
= var1138
;
6384 var1143
= varonce1142
;
6388 var1146
= standard___standard__NativeString___to_s_with_length(var1144
, var1145
);
6390 varonce1142
= var1143
;
6392 var1147
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6393 { /* var1147 = array_instance Array[Object] */
6395 var1149
= NEW_standard__NativeArray(var1148
, &type_standard__NativeArray__standard__Object
);
6396 ((struct instance_standard__NativeArray
*)var1149
)->values
[0] = (val
*) var1138
;
6397 ((struct instance_standard__NativeArray
*)var1149
)->values
[1] = (val
*) var_res1076
;
6398 ((struct instance_standard__NativeArray
*)var1149
)->values
[2] = (val
*) var1143
;
6400 ((void (*)(val
* self
, val
* p0
, long p1
))(var1147
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1147
, var1149
, var1148
) /* with_native on <var1147:Array[Object]>*/;
6404 var1150
= ((val
* (*)(val
* self
))(var1147
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1147
) /* to_s on <var1147:Array[Object]>*/;
6407 nit___nit__AbstractCompilerVisitor___add(var_v
, var1150
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6411 var1152
= varonce1151
;
6415 var1155
= standard___standard__NativeString___to_s_with_length(var1153
, var1154
);
6417 varonce1151
= var1152
;
6420 nit___nit__AbstractCompilerVisitor___add(var_v
, var1152
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6428 var1157
= varonce1156
;
6432 var1160
= standard___standard__NativeString___to_s_with_length(var1158
, var1159
);
6434 varonce1156
= var1157
;
6436 var1161
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6437 { /* var1161 = array_instance Array[Object] */
6439 var1163
= NEW_standard__NativeArray(var1162
, &type_standard__NativeArray__standard__Object
);
6440 ((struct instance_standard__NativeArray
*)var1163
)->values
[0] = (val
*) var1157
;
6441 ((struct instance_standard__NativeArray
*)var1163
)->values
[1] = (val
*) var_c_name
;
6443 ((void (*)(val
* self
, val
* p0
, long p1
))(var1161
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1161
, var1163
, var1162
) /* with_native on <var1161:Array[Object]>*/;
6447 var1164
= ((val
* (*)(val
* self
))(var1161
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1161
) /* to_s on <var1161:Array[Object]>*/;
6450 var1165
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
6453 var1167
= varonce1166
;
6457 var1170
= standard___standard__NativeString___to_s_with_length(var1168
, var1169
);
6459 varonce1166
= var1167
;
6462 var1172
= varonce1171
;
6464 var1173
= "(void);";
6466 var1175
= standard___standard__NativeString___to_s_with_length(var1173
, var1174
);
6468 varonce1171
= var1172
;
6470 var1176
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6471 { /* var1176 = array_instance Array[Object] */
6473 var1178
= NEW_standard__NativeArray(var1177
, &type_standard__NativeArray__standard__Object
);
6474 ((struct instance_standard__NativeArray
*)var1178
)->values
[0] = (val
*) var1165
;
6475 ((struct instance_standard__NativeArray
*)var1178
)->values
[1] = (val
*) var1167
;
6476 ((struct instance_standard__NativeArray
*)var1178
)->values
[2] = (val
*) var_c_name
;
6477 ((struct instance_standard__NativeArray
*)var1178
)->values
[3] = (val
*) var1172
;
6479 ((void (*)(val
* self
, val
* p0
, long p1
))(var1176
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1176
, var1178
, var1177
) /* with_native on <var1176:Array[Object]>*/;
6483 var1179
= ((val
* (*)(val
* self
))(var1176
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1176
) /* to_s on <var1176:Array[Object]>*/;
6486 nit___nit__AbstractCompiler___provide_declaration(self
, var1164
, var1179
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
6489 var1181
= varonce1180
;
6491 var1182
= "/* allocate ";
6493 var1184
= standard___standard__NativeString___to_s_with_length(var1182
, var1183
);
6495 varonce1180
= var1181
;
6498 var1186
= varonce1185
;
6502 var1189
= standard___standard__NativeString___to_s_with_length(var1187
, var1188
);
6504 varonce1185
= var1186
;
6506 var1190
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6507 { /* var1190 = array_instance Array[Object] */
6509 var1192
= NEW_standard__NativeArray(var1191
, &type_standard__NativeArray__standard__Object
);
6510 ((struct instance_standard__NativeArray
*)var1192
)->values
[0] = (val
*) var1181
;
6511 ((struct instance_standard__NativeArray
*)var1192
)->values
[1] = (val
*) var_mtype
;
6512 ((struct instance_standard__NativeArray
*)var1192
)->values
[2] = (val
*) var1186
;
6514 ((void (*)(val
* self
, val
* p0
, long p1
))(var1190
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1190
, var1192
, var1191
) /* with_native on <var1190:Array[Object]>*/;
6518 var1193
= ((val
* (*)(val
* self
))(var1190
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1190
) /* to_s on <var1190:Array[Object]>*/;
6521 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var1193
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6524 var1194
= nit__abstract_compiler___MClassType___MType__ctype(var_mtype
);
6527 var1196
= varonce1195
;
6531 var1199
= standard___standard__NativeString___to_s_with_length(var1197
, var1198
);
6533 varonce1195
= var1196
;
6536 var1201
= varonce1200
;
6538 var1202
= "(void) {";
6540 var1204
= standard___standard__NativeString___to_s_with_length(var1202
, var1203
);
6542 varonce1200
= var1201
;
6544 var1205
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6545 { /* var1205 = array_instance Array[Object] */
6547 var1207
= NEW_standard__NativeArray(var1206
, &type_standard__NativeArray__standard__Object
);
6548 ((struct instance_standard__NativeArray
*)var1207
)->values
[0] = (val
*) var1194
;
6549 ((struct instance_standard__NativeArray
*)var1207
)->values
[1] = (val
*) var1196
;
6550 ((struct instance_standard__NativeArray
*)var1207
)->values
[2] = (val
*) var_c_name
;
6551 ((struct instance_standard__NativeArray
*)var1207
)->values
[3] = (val
*) var1201
;
6553 ((void (*)(val
* self
, val
* p0
, long p1
))(var1205
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1205
, var1207
, var1206
) /* with_native on <var1205:Array[Object]>*/;
6557 var1208
= ((val
* (*)(val
* self
))(var1205
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1205
) /* to_s on <var1205:Array[Object]>*/;
6560 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var1208
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6564 var1210
= varonce1209
;
6566 var1211
= " is DEAD";
6568 var1213
= standard___standard__NativeString___to_s_with_length(var1211
, var1212
);
6570 varonce1209
= var1210
;
6572 var1214
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6573 { /* var1214 = array_instance Array[Object] */
6575 var1216
= NEW_standard__NativeArray(var1215
, &type_standard__NativeArray__standard__Object
);
6576 ((struct instance_standard__NativeArray
*)var1216
)->values
[0] = (val
*) var_mclass
;
6577 ((struct instance_standard__NativeArray
*)var1216
)->values
[1] = (val
*) var1210
;
6579 ((void (*)(val
* self
, val
* p0
, long p1
))(var1214
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1214
, var1216
, var1215
) /* with_native on <var1214:Array[Object]>*/;
6583 var1217
= ((val
* (*)(val
* self
))(var1214
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1214
) /* to_s on <var1214:Array[Object]>*/;
6586 nit___nit__AbstractCompilerVisitor___add_abort(var_v
, var1217
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:SeparateCompilerVisitor>*/
6590 var1219
= varonce1218
;
6594 var1222
= standard___standard__NativeString___to_s_with_length(var1220
, var1221
);
6596 varonce1218
= var1219
;
6599 var1223
= nit___nit__AbstractCompilerVisitor___new_named_var(var_v
, var_mtype
, var1219
);
6601 var_res1224
= var1223
;
6604 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res1224,var1225) on <var_res1224:RuntimeVariable> */
6605 var_res1224
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact
].s
= var1225
; /* _is_exact on <var_res1224:RuntimeVariable> */
6606 RET_LABEL1226
:(void)0;
6610 var1228
= varonce1227
;
6612 var1229
= " = nit_alloc(sizeof(struct instance) + ";
6614 var1231
= standard___standard__NativeString___to_s_with_length(var1229
, var1230
);
6616 varonce1227
= var1228
;
6619 { /* Inline array#AbstractArrayRead#length (var_attrs) on <var_attrs:Array[nullable MPropDef]> */
6620 var1234
= var_attrs
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_attrs:Array[nullable MPropDef]> */
6622 RET_LABEL1233
:(void)0;
6626 var1236
= varonce1235
;
6628 var1237
= "*sizeof(nitattribute_t));";
6630 var1239
= standard___standard__NativeString___to_s_with_length(var1237
, var1238
);
6632 varonce1235
= var1236
;
6634 var1240
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6635 { /* var1240 = array_instance Array[Object] */
6637 var1242
= NEW_standard__NativeArray(var1241
, &type_standard__NativeArray__standard__Object
);
6638 ((struct instance_standard__NativeArray
*)var1242
)->values
[0] = (val
*) var_res1224
;
6639 ((struct instance_standard__NativeArray
*)var1242
)->values
[1] = (val
*) var1228
;
6640 var1243
= BOX_standard__Int(var1232
); /* autobox from Int to Object */
6641 ((struct instance_standard__NativeArray
*)var1242
)->values
[2] = (val
*) var1243
;
6642 ((struct instance_standard__NativeArray
*)var1242
)->values
[3] = (val
*) var1236
;
6644 ((void (*)(val
* self
, val
* p0
, long p1
))(var1240
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1240
, var1242
, var1241
) /* with_native on <var1240:Array[Object]>*/;
6648 var1244
= ((val
* (*)(val
* self
))(var1240
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1240
) /* to_s on <var1240:Array[Object]>*/;
6651 nit___nit__AbstractCompilerVisitor___add(var_v
, var1244
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6654 var1246
= varonce1245
;
6658 var1249
= standard___standard__NativeString___to_s_with_length(var1247
, var1248
);
6660 varonce1245
= var1246
;
6662 var1250
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6663 { /* var1250 = array_instance Array[Object] */
6665 var1252
= NEW_standard__NativeArray(var1251
, &type_standard__NativeArray__standard__Object
);
6666 ((struct instance_standard__NativeArray
*)var1252
)->values
[0] = (val
*) var1246
;
6667 ((struct instance_standard__NativeArray
*)var1252
)->values
[1] = (val
*) var_c_name
;
6669 ((void (*)(val
* self
, val
* p0
, long p1
))(var1250
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1250
, var1252
, var1251
) /* with_native on <var1250:Array[Object]>*/;
6673 var1253
= ((val
* (*)(val
* self
))(var1250
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1250
) /* to_s on <var1250:Array[Object]>*/;
6676 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var1253
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
6679 var1255
= varonce1254
;
6681 var1256
= "->class = &class_";
6683 var1258
= standard___standard__NativeString___to_s_with_length(var1256
, var1257
);
6685 varonce1254
= var1255
;
6688 var1260
= varonce1259
;
6692 var1263
= standard___standard__NativeString___to_s_with_length(var1261
, var1262
);
6694 varonce1259
= var1260
;
6696 var1264
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6697 { /* var1264 = array_instance Array[Object] */
6699 var1266
= NEW_standard__NativeArray(var1265
, &type_standard__NativeArray__standard__Object
);
6700 ((struct instance_standard__NativeArray
*)var1266
)->values
[0] = (val
*) var_res1224
;
6701 ((struct instance_standard__NativeArray
*)var1266
)->values
[1] = (val
*) var1255
;
6702 ((struct instance_standard__NativeArray
*)var1266
)->values
[2] = (val
*) var_c_name
;
6703 ((struct instance_standard__NativeArray
*)var1266
)->values
[3] = (val
*) var1260
;
6705 ((void (*)(val
* self
, val
* p0
, long p1
))(var1264
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1264
, var1266
, var1265
) /* with_native on <var1264:Array[Object]>*/;
6709 var1267
= ((val
* (*)(val
* self
))(var1264
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1264
) /* to_s on <var1264:Array[Object]>*/;
6712 nit___nit__AbstractCompilerVisitor___add(var_v
, var1267
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6715 nit___nit__AbstractCompiler___generate_init_attr(self
, var_v
, var_res1224
, var_mtype
); /* Direct call abstract_compiler#AbstractCompiler#generate_init_attr on <self:SeparateErasureCompiler>*/
6718 nit___nit__AbstractCompilerVisitor___set_finalizer(var_v
, var_res1224
); /* Direct call abstract_compiler#AbstractCompilerVisitor#set_finalizer on <var_v:SeparateCompilerVisitor>*/
6721 var1269
= varonce1268
;
6723 var1270
= "return ";
6725 var1272
= standard___standard__NativeString___to_s_with_length(var1270
, var1271
);
6727 varonce1268
= var1269
;
6730 var1274
= varonce1273
;
6734 var1277
= standard___standard__NativeString___to_s_with_length(var1275
, var1276
);
6736 varonce1273
= var1274
;
6738 var1278
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6739 { /* var1278 = array_instance Array[Object] */
6741 var1280
= NEW_standard__NativeArray(var1279
, &type_standard__NativeArray__standard__Object
);
6742 ((struct instance_standard__NativeArray
*)var1280
)->values
[0] = (val
*) var1269
;
6743 ((struct instance_standard__NativeArray
*)var1280
)->values
[1] = (val
*) var_res1224
;
6744 ((struct instance_standard__NativeArray
*)var1280
)->values
[2] = (val
*) var1274
;
6746 ((void (*)(val
* self
, val
* p0
, long p1
))(var1278
->class->vft
[COLOR_standard__array__Array__with_native
]))(var1278
, var1280
, var1279
) /* with_native on <var1278:Array[Object]>*/;
6750 var1281
= ((val
* (*)(val
* self
))(var1278
->class->vft
[COLOR_standard__string__Object__to_s
]))(var1278
) /* to_s on <var1278:Array[Object]>*/;
6753 nit___nit__AbstractCompilerVisitor___add(var_v
, var1281
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6757 var1283
= varonce1282
;
6761 var1286
= standard___standard__NativeString___to_s_with_length(var1284
, var1285
);
6763 varonce1282
= var1283
;
6766 nit___nit__AbstractCompilerVisitor___add(var_v
, var1283
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6770 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_vts_table for (self: SeparateErasureCompiler, MClass): Bool */
6771 short int nit___nit__SeparateErasureCompiler___build_class_vts_table(val
* self
, val
* p0
) {
6772 short int var
/* : Bool */;
6773 val
* var_mclass
/* var mclass: MClass */;
6774 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
6775 val
* var3
/* : Map[MClass, Array[nullable MPropDef]] */;
6776 val
* var4
/* : nullable Object */;
6777 short int var5
/* : Bool */;
6778 short int var6
/* : Bool */;
6779 static val
* varonce
;
6780 val
* var7
/* : String */;
6781 char* var8
/* : NativeString */;
6782 long var9
/* : Int */;
6783 val
* var10
/* : FlatString */;
6784 val
* var11
/* : String */;
6785 val
* var12
/* : Array[Object] */;
6786 long var13
/* : Int */;
6787 val
* var14
/* : NativeArray[Object] */;
6788 val
* var15
/* : String */;
6789 static val
* varonce16
;
6790 val
* var17
/* : String */;
6791 char* var18
/* : NativeString */;
6792 long var19
/* : Int */;
6793 val
* var20
/* : FlatString */;
6794 val
* var21
/* : String */;
6795 static val
* varonce22
;
6796 val
* var23
/* : String */;
6797 char* var24
/* : NativeString */;
6798 long var25
/* : Int */;
6799 val
* var26
/* : FlatString */;
6800 val
* var27
/* : Array[Object] */;
6801 long var28
/* : Int */;
6802 val
* var29
/* : NativeArray[Object] */;
6803 val
* var30
/* : String */;
6804 val
* var31
/* : SeparateCompilerVisitor */;
6805 val
* var_v
/* var v: SeparateCompilerVisitor */;
6806 static val
* varonce32
;
6807 val
* var33
/* : String */;
6808 char* var34
/* : NativeString */;
6809 long var35
/* : Int */;
6810 val
* var36
/* : FlatString */;
6811 val
* var37
/* : String */;
6812 static val
* varonce38
;
6813 val
* var39
/* : String */;
6814 char* var40
/* : NativeString */;
6815 long var41
/* : Int */;
6816 val
* var42
/* : FlatString */;
6817 val
* var43
/* : Array[Object] */;
6818 long var44
/* : Int */;
6819 val
* var45
/* : NativeArray[Object] */;
6820 val
* var46
/* : String */;
6821 static val
* varonce47
;
6822 val
* var48
/* : String */;
6823 char* var49
/* : NativeString */;
6824 long var50
/* : Int */;
6825 val
* var51
/* : FlatString */;
6826 static val
* varonce52
;
6827 val
* var53
/* : String */;
6828 char* var54
/* : NativeString */;
6829 long var55
/* : Int */;
6830 val
* var56
/* : FlatString */;
6831 val
* var57
/* : Map[MClass, Array[nullable MPropDef]] */;
6832 val
* var59
/* : Map[MClass, Array[nullable MPropDef]] */;
6833 val
* var60
/* : nullable Object */;
6834 val
* var_
/* var : Array[nullable MPropDef] */;
6835 val
* var61
/* : ArrayIterator[nullable Object] */;
6836 val
* var_62
/* var : ArrayIterator[nullable MPropDef] */;
6837 short int var63
/* : Bool */;
6838 val
* var64
/* : nullable Object */;
6839 val
* var_vt
/* var vt: nullable MPropDef */;
6840 val
* var65
/* : null */;
6841 short int var66
/* : Bool */;
6842 short int var67
/* : Bool */;
6843 val
* var_other
/* var other: nullable Object */;
6844 short int var69
/* : Bool */;
6845 short int var71
/* : Bool */;
6846 static val
* varonce72
;
6847 val
* var73
/* : String */;
6848 char* var74
/* : NativeString */;
6849 long var75
/* : Int */;
6850 val
* var76
/* : FlatString */;
6851 long var77
/* : Int */;
6852 long var_is_null
/* var is_null: Int */;
6853 val
* var78
/* : MClassDef */;
6854 val
* var80
/* : MClassDef */;
6855 val
* var81
/* : MClassType */;
6856 val
* var83
/* : MClassType */;
6857 short int var84
/* : Bool */;
6860 const char* var_class_name
;
6861 val
* var85
/* : nullable MType */;
6862 val
* var87
/* : nullable MType */;
6863 val
* var88
/* : MType */;
6864 val
* var_bound
/* var bound: MType */;
6865 short int var89
/* : Bool */;
6868 val
* var92
/* : MClassDef */;
6869 val
* var94
/* : MClassDef */;
6870 val
* var95
/* : MClassType */;
6871 val
* var97
/* : MClassType */;
6872 val
* var98
/* : MType */;
6873 val
* var100
/* : MType */;
6874 val
* var101
/* : MType */;
6875 long var102
/* : Int */;
6876 short int var103
/* : Bool */;
6879 const char* var_class_name106
;
6880 val
* var107
/* : MClass */;
6881 val
* var109
/* : MClass */;
6882 val
* var_vtclass
/* var vtclass: MClass */;
6883 static val
* varonce110
;
6884 val
* var111
/* : String */;
6885 char* var112
/* : NativeString */;
6886 long var113
/* : Int */;
6887 val
* var114
/* : FlatString */;
6888 val
* var115
/* : String */;
6889 val
* var116
/* : Array[Object] */;
6890 long var117
/* : Int */;
6891 val
* var118
/* : NativeArray[Object] */;
6892 val
* var119
/* : String */;
6893 static val
* varonce120
;
6894 val
* var121
/* : String */;
6895 char* var122
/* : NativeString */;
6896 long var123
/* : Int */;
6897 val
* var124
/* : FlatString */;
6898 static val
* varonce125
;
6899 val
* var126
/* : String */;
6900 char* var127
/* : NativeString */;
6901 long var128
/* : Int */;
6902 val
* var129
/* : FlatString */;
6903 val
* var130
/* : String */;
6904 static val
* varonce131
;
6905 val
* var132
/* : String */;
6906 char* var133
/* : NativeString */;
6907 long var134
/* : Int */;
6908 val
* var135
/* : FlatString */;
6909 static val
* varonce136
;
6910 val
* var137
/* : String */;
6911 char* var138
/* : NativeString */;
6912 long var139
/* : Int */;
6913 val
* var140
/* : FlatString */;
6914 val
* var141
/* : Array[Object] */;
6915 long var142
/* : Int */;
6916 val
* var143
/* : NativeArray[Object] */;
6917 val
* var144
/* : Object */;
6918 val
* var145
/* : String */;
6919 static val
* varonce148
;
6920 val
* var149
/* : String */;
6921 char* var150
/* : NativeString */;
6922 long var151
/* : Int */;
6923 val
* var152
/* : FlatString */;
6924 static val
* varonce153
;
6925 val
* var154
/* : String */;
6926 char* var155
/* : NativeString */;
6927 long var156
/* : Int */;
6928 val
* var157
/* : FlatString */;
6929 short int var158
/* : Bool */;
6932 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on <self:SeparateErasureCompiler> */
6933 var3
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
6934 if (unlikely(var3
== NULL
)) {
6935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
6936 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 417);
6944 var4
= ((val
* (*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var1
, var_mclass
) /* [] on <var1:Map[MClass, Array[nullable MPropDef]]>*/;
6947 var5
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var4
);
6958 var8
= "vts_table_";
6960 var10
= standard___standard__NativeString___to_s_with_length(var8
, var9
);
6965 var11
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass
);
6967 var12
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6968 { /* var12 = array_instance Array[Object] */
6970 var14
= NEW_standard__NativeArray(var13
, &type_standard__NativeArray__standard__Object
);
6971 ((struct instance_standard__NativeArray
*)var14
)->values
[0] = (val
*) var7
;
6972 ((struct instance_standard__NativeArray
*)var14
)->values
[1] = (val
*) var11
;
6974 ((void (*)(val
* self
, val
* p0
, long p1
))(var12
->class->vft
[COLOR_standard__array__Array__with_native
]))(var12
, var14
, var13
) /* with_native on <var12:Array[Object]>*/;
6978 var15
= ((val
* (*)(val
* self
))(var12
->class->vft
[COLOR_standard__string__Object__to_s
]))(var12
) /* to_s on <var12:Array[Object]>*/;
6983 var18
= "extern const struct vts_table vts_table_";
6985 var20
= standard___standard__NativeString___to_s_with_length(var18
, var19
);
6990 var21
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass
);
6997 var26
= standard___standard__NativeString___to_s_with_length(var24
, var25
);
7001 var27
= NEW_standard__Array(&type_standard__Array__standard__Object
);
7002 { /* var27 = array_instance Array[Object] */
7004 var29
= NEW_standard__NativeArray(var28
, &type_standard__NativeArray__standard__Object
);
7005 ((struct instance_standard__NativeArray
*)var29
)->values
[0] = (val
*) var17
;
7006 ((struct instance_standard__NativeArray
*)var29
)->values
[1] = (val
*) var21
;
7007 ((struct instance_standard__NativeArray
*)var29
)->values
[2] = (val
*) var23
;
7009 ((void (*)(val
* self
, val
* p0
, long p1
))(var27
->class->vft
[COLOR_standard__array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
7013 var30
= ((val
* (*)(val
* self
))(var27
->class->vft
[COLOR_standard__string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
7016 nit___nit__AbstractCompiler___provide_declaration(self
, var15
, var30
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
7019 var31
= nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__new_visitor(self
);
7025 var34
= "const struct vts_table vts_table_";
7027 var36
= standard___standard__NativeString___to_s_with_length(var34
, var35
);
7032 var37
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass
);
7039 var42
= standard___standard__NativeString___to_s_with_length(var40
, var41
);
7043 var43
= NEW_standard__Array(&type_standard__Array__standard__Object
);
7044 { /* var43 = array_instance Array[Object] */
7046 var45
= NEW_standard__NativeArray(var44
, &type_standard__NativeArray__standard__Object
);
7047 ((struct instance_standard__NativeArray
*)var45
)->values
[0] = (val
*) var33
;
7048 ((struct instance_standard__NativeArray
*)var45
)->values
[1] = (val
*) var37
;
7049 ((struct instance_standard__NativeArray
*)var45
)->values
[2] = (val
*) var39
;
7051 ((void (*)(val
* self
, val
* p0
, long p1
))(var43
->class->vft
[COLOR_standard__array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[Object]>*/;
7055 var46
= ((val
* (*)(val
* self
))(var43
->class->vft
[COLOR_standard__string__Object__to_s
]))(var43
) /* to_s on <var43:Array[Object]>*/;
7058 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var46
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7063 var49
= "0, /* dummy */";
7065 var51
= standard___standard__NativeString___to_s_with_length(var49
, var50
);
7070 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var48
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7077 var56
= standard___standard__NativeString___to_s_with_length(var54
, var55
);
7082 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var53
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7085 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on <self:SeparateErasureCompiler> */
7086 var59
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
7087 if (unlikely(var59
== NULL
)) {
7088 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
7089 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 417);
7093 RET_LABEL58
:(void)0;
7097 var60
= ((val
* (*)(val
* self
, val
* p0
))(var57
->class->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var57
, var_mclass
) /* [] on <var57:Map[MClass, Array[nullable MPropDef]]>*/;
7101 var61
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
7106 var63
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_62
);
7110 var64
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_62
);
7114 if (var_vt
== NULL
) {
7115 var66
= 1; /* is null */
7117 var66
= 0; /* arg is null but recv is not */
7120 { /* Inline kernel#Object#== (var_vt,var65) on <var_vt:nullable MPropDef> */
7123 { /* Inline kernel#Object#is_same_instance (var_vt,var_other) on <var_vt:nullable MPropDef(MPropDef)> */
7124 var71
= var_vt
== var_other
;
7127 RET_LABEL70
:(void)0;
7132 RET_LABEL68
:(void)0;
7140 var74
= "{-1, NULL}, /* empty */";
7142 var76
= standard___standard__NativeString___to_s_with_length(var74
, var75
);
7147 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var73
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7151 var_is_null
= var77
;
7153 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:MClass> */
7154 var80
= var_mclass
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var_mclass:MClass> */
7155 if (unlikely(var80
== NULL
)) {
7156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
7157 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 423);
7161 RET_LABEL79
:(void)0;
7165 { /* Inline model#MClassDef#bound_mtype (var78) on <var78:MClassDef> */
7166 var83
= var78
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var78:MClassDef> */
7167 if (unlikely(var83
== NULL
)) {
7168 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
7169 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 495);
7173 RET_LABEL82
:(void)0;
7176 /* <var_vt:nullable MPropDef(MPropDef)> isa MVirtualTypeDef */
7177 cltype
= type_nit__MVirtualTypeDef
.color
;
7178 idtype
= type_nit__MVirtualTypeDef
.id
;
7179 if(cltype
>= var_vt
->type
->table_size
) {
7182 var84
= var_vt
->type
->type_table
[cltype
] == idtype
;
7184 if (unlikely(!var84
)) {
7185 var_class_name
= var_vt
== NULL ?
"null" : var_vt
->type
->name
;
7186 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name
);
7187 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 378);
7191 { /* Inline model#MVirtualTypeDef#bound (var_vt) on <var_vt:MPropDef(MVirtualTypeDef)> */
7192 var87
= var_vt
->attrs
[COLOR_nit__model__MVirtualTypeDef___bound
].val
; /* _bound on <var_vt:MPropDef(MVirtualTypeDef)> */
7194 RET_LABEL86
:(void)0;
7198 var88
= nit___nit__SeparateErasureCompiler___retrieve_vt_bound(self
, var81
, var85
);
7202 /* <var_bound:MType> isa MNullableType */
7203 cltype90
= type_nit__MNullableType
.color
;
7204 idtype91
= type_nit__MNullableType
.id
;
7205 if(cltype90
>= var_bound
->type
->table_size
) {
7208 var89
= var_bound
->type
->type_table
[cltype90
] == idtype91
;
7212 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:MClass> */
7213 var94
= var_mclass
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var_mclass:MClass> */
7214 if (unlikely(var94
== NULL
)) {
7215 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
7216 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 423);
7220 RET_LABEL93
:(void)0;
7224 { /* Inline model#MClassDef#bound_mtype (var92) on <var92:MClassDef> */
7225 var97
= var92
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var92:MClassDef> */
7226 if (unlikely(var97
== NULL
)) {
7227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
7228 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 495);
7232 RET_LABEL96
:(void)0;
7236 { /* Inline model#MNullableType#mtype (var_bound) on <var_bound:MType(MNullableType)> */
7237 var100
= var_bound
->attrs
[COLOR_nit__model__MNullableType___mtype
].val
; /* _mtype on <var_bound:MType(MNullableType)> */
7238 if (unlikely(var100
== NULL
)) {
7239 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7240 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1506);
7244 RET_LABEL99
:(void)0;
7248 var101
= nit___nit__SeparateErasureCompiler___retrieve_vt_bound(self
, var95
, var98
);
7252 var_is_null
= var102
;
7257 BREAK_label
: (void)0;
7258 /* <var_bound:MType> isa MClassType */
7259 cltype104
= type_nit__MClassType
.color
;
7260 idtype105
= type_nit__MClassType
.id
;
7261 if(cltype104
>= var_bound
->type
->table_size
) {
7264 var103
= var_bound
->type
->type_table
[cltype104
] == idtype105
;
7266 if (unlikely(!var103
)) {
7267 var_class_name106
= var_bound
== NULL ?
"null" : var_bound
->type
->name
;
7268 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name106
);
7269 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 383);
7273 { /* Inline model#MClassType#mclass (var_bound) on <var_bound:MType(MClassType)> */
7274 var109
= var_bound
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_bound:MType(MClassType)> */
7275 if (unlikely(var109
== NULL
)) {
7276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7277 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
7281 RET_LABEL108
:(void)0;
7284 var_vtclass
= var107
;
7286 var111
= varonce110
;
7290 var114
= standard___standard__NativeString___to_s_with_length(var112
, var113
);
7292 varonce110
= var111
;
7295 var115
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_vtclass
);
7297 var116
= NEW_standard__Array(&type_standard__Array__standard__Object
);
7298 { /* var116 = array_instance Array[Object] */
7300 var118
= NEW_standard__NativeArray(var117
, &type_standard__NativeArray__standard__Object
);
7301 ((struct instance_standard__NativeArray
*)var118
)->values
[0] = (val
*) var111
;
7302 ((struct instance_standard__NativeArray
*)var118
)->values
[1] = (val
*) var115
;
7304 ((void (*)(val
* self
, val
* p0
, long p1
))(var116
->class->vft
[COLOR_standard__array__Array__with_native
]))(var116
, var118
, var117
) /* with_native on <var116:Array[Object]>*/;
7308 var119
= ((val
* (*)(val
* self
))(var116
->class->vft
[COLOR_standard__string__Object__to_s
]))(var116
) /* to_s on <var116:Array[Object]>*/;
7311 nit___nit__AbstractCompilerVisitor___require_declaration(var_v
, var119
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
7314 var121
= varonce120
;
7318 var124
= standard___standard__NativeString___to_s_with_length(var122
, var123
);
7320 varonce120
= var121
;
7323 var126
= varonce125
;
7325 var127
= ", &class_";
7327 var129
= standard___standard__NativeString___to_s_with_length(var127
, var128
);
7329 varonce125
= var126
;
7332 var130
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_vtclass
);
7335 var132
= varonce131
;
7339 var135
= standard___standard__NativeString___to_s_with_length(var133
, var134
);
7341 varonce131
= var132
;
7344 var137
= varonce136
;
7348 var140
= standard___standard__NativeString___to_s_with_length(var138
, var139
);
7350 varonce136
= var137
;
7352 var141
= NEW_standard__Array(&type_standard__Array__standard__Object
);
7353 { /* var141 = array_instance Array[Object] */
7355 var143
= NEW_standard__NativeArray(var142
, &type_standard__NativeArray__standard__Object
);
7356 ((struct instance_standard__NativeArray
*)var143
)->values
[0] = (val
*) var121
;
7357 var144
= BOX_standard__Int(var_is_null
); /* autobox from Int to Object */
7358 ((struct instance_standard__NativeArray
*)var143
)->values
[1] = (val
*) var144
;
7359 ((struct instance_standard__NativeArray
*)var143
)->values
[2] = (val
*) var126
;
7360 ((struct instance_standard__NativeArray
*)var143
)->values
[3] = (val
*) var130
;
7361 ((struct instance_standard__NativeArray
*)var143
)->values
[4] = (val
*) var132
;
7362 ((struct instance_standard__NativeArray
*)var143
)->values
[5] = (val
*) var_vt
;
7363 ((struct instance_standard__NativeArray
*)var143
)->values
[6] = (val
*) var137
;
7365 ((void (*)(val
* self
, val
* p0
, long p1
))(var141
->class->vft
[COLOR_standard__array__Array__with_native
]))(var141
, var143
, var142
) /* with_native on <var141:Array[Object]>*/;
7369 var145
= ((val
* (*)(val
* self
))(var141
->class->vft
[COLOR_standard__string__Object__to_s
]))(var141
) /* to_s on <var141:Array[Object]>*/;
7372 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var145
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7376 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_62
); /* Direct call array#ArrayIterator#next on <var_62:ArrayIterator[nullable MPropDef]>*/
7379 goto BREAK_label146
;
7382 BREAK_label146
: (void)0;
7384 { /* Inline abstract_collection#Iterator#finish (var_62) on <var_62:ArrayIterator[nullable MPropDef]> */
7385 RET_LABEL147
:(void)0;
7389 var149
= varonce148
;
7393 var152
= standard___standard__NativeString___to_s_with_length(var150
, var151
);
7395 varonce148
= var149
;
7398 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var149
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7401 var154
= varonce153
;
7405 var157
= standard___standard__NativeString___to_s_with_length(var155
, var156
);
7407 varonce153
= var154
;
7410 nit___nit__AbstractCompilerVisitor___add_decl(var_v
, var154
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7418 /* method separate_erasure_compiler#SeparateErasureCompiler#retrieve_vt_bound for (self: SeparateErasureCompiler, MClassType, nullable MType): MType */
7419 val
* nit___nit__SeparateErasureCompiler___retrieve_vt_bound(val
* self
, val
* p0
, val
* p1
) {
7420 val
* var
/* : MType */;
7421 val
* var_anchor
/* var anchor: MClassType */;
7422 val
* var_mtype
/* var mtype: nullable MType */;
7423 val
* var1
/* : null */;
7424 short int var2
/* : Bool */;
7425 short int var3
/* : Bool */;
7426 val
* var_other
/* var other: nullable Object */;
7427 short int var5
/* : Bool */;
7428 short int var7
/* : Bool */;
7429 static val
* varonce
;
7430 val
* var8
/* : String */;
7431 char* var9
/* : NativeString */;
7432 long var10
/* : Int */;
7433 val
* var11
/* : FlatString */;
7434 short int var12
/* : Bool */;
7437 val
* var13
/* : MModule */;
7438 val
* var15
/* : MModule */;
7439 val
* var16
/* : MType */;
7440 short int var17
/* : Bool */;
7443 val
* var20
/* : MModule */;
7444 val
* var22
/* : MModule */;
7445 val
* var23
/* : MType */;
7449 if (var_mtype
== NULL
) {
7450 var2
= 1; /* is null */
7452 var2
= 0; /* arg is null but recv is not */
7455 { /* Inline kernel#Object#== (var_mtype,var1) on <var_mtype:nullable MType> */
7458 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
7459 var7
= var_mtype
== var_other
;
7475 var9
= "NOT YET IMPLEMENTED: retrieve_vt_bound on null";
7477 var11
= standard___standard__NativeString___to_s_with_length(var9
, var10
);
7482 standard__file___Object___print(self
, var8
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
7484 PRINT_ERROR("Runtime error: %s", "Aborted");
7485 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 396);
7489 /* <var_mtype:nullable MType(MType)> isa MVirtualType */
7490 cltype
= type_nit__MVirtualType
.color
;
7491 idtype
= type_nit__MVirtualType
.id
;
7492 if(cltype
>= var_mtype
->type
->table_size
) {
7495 var12
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7499 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
7500 var15
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
7501 if (unlikely(var15
== NULL
)) {
7502 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7503 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 474);
7507 RET_LABEL14
:(void)0;
7511 var16
= nit___nit__MType___anchor_to(var_mtype
, var13
, var_anchor
);
7516 /* <var_mtype:nullable MType(MType)> isa MParameterType */
7517 cltype18
= type_nit__MParameterType
.color
;
7518 idtype19
= type_nit__MParameterType
.id
;
7519 if(cltype18
>= var_mtype
->type
->table_size
) {
7522 var17
= var_mtype
->type
->type_table
[cltype18
] == idtype19
;
7526 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
7527 var22
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
7528 if (unlikely(var22
== NULL
)) {
7529 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7530 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 474);
7534 RET_LABEL21
:(void)0;
7538 var23
= nit___nit__MType___anchor_to(var_mtype
, var20
, var_anchor
);
7550 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_types for (self: SeparateErasureCompiler) */
7551 void nit___nit__SeparateErasureCompiler___nit__separate_compiler__SeparateCompiler__compile_types(val
* self
) {
7552 val
* var
/* : Map[MVirtualTypeProp, Int] */;
7553 val
* var2
/* : Map[MVirtualTypeProp, Int] */;
7555 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors (self) on <self:SeparateErasureCompiler> */
7556 var2
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:SeparateErasureCompiler> */
7557 if (unlikely(var2
== NULL
)) {
7558 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
7559 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 81);
7567 nit___nit__SeparateCompiler___compile_color_consts(self
, var
); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <self:SeparateErasureCompiler>*/
7571 /* method separate_erasure_compiler#SeparateErasureCompiler#new_visitor for (self: SeparateErasureCompiler): SeparateCompilerVisitor */
7572 val
* nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__new_visitor(val
* self
) {
7573 val
* var
/* : SeparateCompilerVisitor */;
7574 val
* var1
/* : SeparateErasureCompilerVisitor */;
7575 short int var2
/* : Bool */;
7578 const struct type
* type_struct
;
7579 const char* var_class_name
;
7580 var1
= NEW_nit__SeparateErasureCompilerVisitor(&type_nit__SeparateErasureCompilerVisitor
);
7582 ((void (*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compiler_61d
]))(var1
, self
) /* compiler= on <var1:SeparateErasureCompilerVisitor>*/;
7585 ((void (*)(val
* self
))(var1
->class->vft
[COLOR_standard__kernel__Object__init
]))(var1
) /* init on <var1:SeparateErasureCompilerVisitor>*/;
7587 /* <var1:SeparateErasureCompilerVisitor> isa VISITOR */
7588 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__abstract_compiler__AbstractCompiler__VISITOR
];
7589 cltype
= type_struct
->color
;
7590 idtype
= type_struct
->id
;
7591 if(cltype
>= var1
->type
->table_size
) {
7594 var2
= var1
->type
->type_table
[cltype
] == idtype
;
7596 if (unlikely(!var2
)) {
7597 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
7598 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
7599 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 412);
7607 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables for (self: SeparateErasureCompiler): Map[MClass, Array[nullable MClass]] */
7608 val
* nit___nit__SeparateErasureCompiler___class_tables(val
* self
) {
7609 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
7610 val
* var1
/* : Map[MClass, Array[nullable MClass]] */;
7611 var1
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
; /* _class_tables on <self:SeparateErasureCompiler> */
7612 if (unlikely(var1
== NULL
)) {
7613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables");
7614 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 416);
7621 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables= for (self: SeparateErasureCompiler, Map[MClass, Array[nullable MClass]]) */
7622 void nit___nit__SeparateErasureCompiler___class_tables_61d(val
* self
, val
* p0
) {
7623 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
= p0
; /* _class_tables on <self:SeparateErasureCompiler> */
7626 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables for (self: SeparateErasureCompiler): Map[MClass, Array[nullable MPropDef]] */
7627 val
* nit___nit__SeparateErasureCompiler___vt_tables(val
* self
) {
7628 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
7629 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
7630 var1
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
7631 if (unlikely(var1
== NULL
)) {
7632 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
7633 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 417);
7640 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables= for (self: SeparateErasureCompiler, Map[MClass, Array[nullable MPropDef]]) */
7641 void nit___nit__SeparateErasureCompiler___vt_tables_61d(val
* self
, val
* p0
) {
7642 self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
= p0
; /* _vt_tables on <self:SeparateErasureCompiler> */
7645 /* method separate_erasure_compiler#SeparateErasureCompiler#display_sizes for (self: SeparateErasureCompiler) */
7646 void nit___nit__SeparateErasureCompiler___nit__separate_compiler__SeparateCompiler__display_sizes(val
* self
) {
7647 static val
* varonce
;
7648 val
* var
/* : String */;
7649 char* var1
/* : NativeString */;
7650 long var2
/* : Int */;
7651 val
* var3
/* : FlatString */;
7652 static val
* varonce4
;
7653 val
* var5
/* : String */;
7654 char* var6
/* : NativeString */;
7655 long var7
/* : Int */;
7656 val
* var8
/* : FlatString */;
7657 long var9
/* : Int */;
7658 long var_total
/* var total: Int */;
7659 long var10
/* : Int */;
7660 long var_holes
/* var holes: Int */;
7661 val
* var11
/* : Map[MClass, Array[nullable MClass]] */;
7662 val
* var13
/* : Map[MClass, Array[nullable MClass]] */;
7663 val
* var_
/* var : Map[MClass, Array[nullable MClass]] */;
7664 val
* var14
/* : MapIterator[nullable Object, nullable Object] */;
7665 val
* var_15
/* var : MapIterator[MClass, Array[nullable MClass]] */;
7666 short int var16
/* : Bool */;
7667 val
* var17
/* : nullable Object */;
7668 val
* var_t
/* var t: MClass */;
7669 val
* var18
/* : nullable Object */;
7670 val
* var_table
/* var table: Array[nullable MClass] */;
7671 long var19
/* : Int */;
7672 long var21
/* : Int */;
7673 long var22
/* : Int */;
7674 short int var24
/* : Bool */;
7677 const char* var_class_name
;
7678 long var25
/* : Int */;
7679 val
* var_26
/* var : Array[nullable MClass] */;
7680 val
* var27
/* : ArrayIterator[nullable Object] */;
7681 val
* var_28
/* var : ArrayIterator[nullable MClass] */;
7682 short int var29
/* : Bool */;
7683 val
* var30
/* : nullable Object */;
7684 val
* var_e
/* var e: nullable MClass */;
7685 val
* var31
/* : null */;
7686 short int var32
/* : Bool */;
7687 short int var33
/* : Bool */;
7688 val
* var_other
/* var other: nullable Object */;
7689 short int var35
/* : Bool */;
7690 short int var37
/* : Bool */;
7691 long var38
/* : Int */;
7692 long var39
/* : Int */;
7693 short int var41
/* : Bool */;
7696 const char* var_class_name44
;
7697 long var45
/* : Int */;
7698 static val
* varonce49
;
7699 val
* var50
/* : String */;
7700 char* var51
/* : NativeString */;
7701 long var52
/* : Int */;
7702 val
* var53
/* : FlatString */;
7703 static val
* varonce54
;
7704 val
* var55
/* : String */;
7705 char* var56
/* : NativeString */;
7706 long var57
/* : Int */;
7707 val
* var58
/* : FlatString */;
7708 val
* var59
/* : Array[Object] */;
7709 long var60
/* : Int */;
7710 val
* var61
/* : NativeArray[Object] */;
7711 val
* var62
/* : Object */;
7712 val
* var63
/* : Object */;
7713 val
* var64
/* : String */;
7714 static val
* varonce65
;
7715 val
* var66
/* : String */;
7716 char* var67
/* : NativeString */;
7717 long var68
/* : Int */;
7718 val
* var69
/* : FlatString */;
7719 static val
* varonce70
;
7720 val
* var71
/* : String */;
7721 char* var72
/* : NativeString */;
7722 long var73
/* : Int */;
7723 val
* var74
/* : FlatString */;
7724 long var75
/* : Int */;
7725 long var76
/* : Int */;
7726 val
* var77
/* : Map[MClass, Array[nullable MPropDef]] */;
7727 val
* var79
/* : Map[MClass, Array[nullable MPropDef]] */;
7728 val
* var_80
/* var : Map[MClass, Array[nullable MPropDef]] */;
7729 val
* var81
/* : MapIterator[nullable Object, nullable Object] */;
7730 val
* var_82
/* var : MapIterator[MClass, Array[nullable MPropDef]] */;
7731 short int var83
/* : Bool */;
7732 val
* var84
/* : nullable Object */;
7733 val
* var_t85
/* var t: MClass */;
7734 val
* var86
/* : nullable Object */;
7735 val
* var_table87
/* var table: Array[nullable MPropDef] */;
7736 long var88
/* : Int */;
7737 long var90
/* : Int */;
7738 long var91
/* : Int */;
7739 short int var93
/* : Bool */;
7742 const char* var_class_name96
;
7743 long var97
/* : Int */;
7744 val
* var_98
/* var : Array[nullable MPropDef] */;
7745 val
* var99
/* : ArrayIterator[nullable Object] */;
7746 val
* var_100
/* var : ArrayIterator[nullable MPropDef] */;
7747 short int var101
/* : Bool */;
7748 val
* var102
/* : nullable Object */;
7749 val
* var_e103
/* var e: nullable MPropDef */;
7750 val
* var104
/* : null */;
7751 short int var105
/* : Bool */;
7752 short int var106
/* : Bool */;
7753 short int var108
/* : Bool */;
7754 short int var110
/* : Bool */;
7755 long var111
/* : Int */;
7756 long var112
/* : Int */;
7757 short int var114
/* : Bool */;
7760 const char* var_class_name117
;
7761 long var118
/* : Int */;
7762 static val
* varonce123
;
7763 val
* var124
/* : String */;
7764 char* var125
/* : NativeString */;
7765 long var126
/* : Int */;
7766 val
* var127
/* : FlatString */;
7767 static val
* varonce128
;
7768 val
* var129
/* : String */;
7769 char* var130
/* : NativeString */;
7770 long var131
/* : Int */;
7771 val
* var132
/* : FlatString */;
7772 val
* var133
/* : Array[Object] */;
7773 long var134
/* : Int */;
7774 val
* var135
/* : NativeArray[Object] */;
7775 val
* var136
/* : Object */;
7776 val
* var137
/* : Object */;
7777 val
* var138
/* : String */;
7778 static val
* varonce139
;
7779 val
* var140
/* : String */;
7780 char* var141
/* : NativeString */;
7781 long var142
/* : Int */;
7782 val
* var143
/* : FlatString */;
7783 static val
* varonce144
;
7784 val
* var145
/* : String */;
7785 char* var146
/* : NativeString */;
7786 long var147
/* : Int */;
7787 val
* var148
/* : FlatString */;
7788 long var149
/* : Int */;
7789 long var150
/* : Int */;
7790 val
* var151
/* : Map[MClass, Array[nullable MPropDef]] */;
7791 val
* var153
/* : Map[MClass, Array[nullable MPropDef]] */;
7792 val
* var_154
/* var : Map[MClass, Array[nullable MPropDef]] */;
7793 val
* var155
/* : MapIterator[nullable Object, nullable Object] */;
7794 val
* var_156
/* var : MapIterator[MClass, Array[nullable MPropDef]] */;
7795 short int var157
/* : Bool */;
7796 val
* var158
/* : nullable Object */;
7797 val
* var_t159
/* var t: MClass */;
7798 val
* var160
/* : nullable Object */;
7799 val
* var_table161
/* var table: Array[nullable MPropDef] */;
7800 long var162
/* : Int */;
7801 long var164
/* : Int */;
7802 long var165
/* : Int */;
7803 short int var167
/* : Bool */;
7806 const char* var_class_name170
;
7807 long var171
/* : Int */;
7808 val
* var_172
/* var : Array[nullable MPropDef] */;
7809 val
* var173
/* : ArrayIterator[nullable Object] */;
7810 val
* var_174
/* var : ArrayIterator[nullable MPropDef] */;
7811 short int var175
/* : Bool */;
7812 val
* var176
/* : nullable Object */;
7813 val
* var_e177
/* var e: nullable MPropDef */;
7814 val
* var178
/* : null */;
7815 short int var179
/* : Bool */;
7816 short int var180
/* : Bool */;
7817 short int var182
/* : Bool */;
7818 short int var184
/* : Bool */;
7819 long var185
/* : Int */;
7820 long var186
/* : Int */;
7821 short int var188
/* : Bool */;
7824 const char* var_class_name191
;
7825 long var192
/* : Int */;
7826 static val
* varonce197
;
7827 val
* var198
/* : String */;
7828 char* var199
/* : NativeString */;
7829 long var200
/* : Int */;
7830 val
* var201
/* : FlatString */;
7831 static val
* varonce202
;
7832 val
* var203
/* : String */;
7833 char* var204
/* : NativeString */;
7834 long var205
/* : Int */;
7835 val
* var206
/* : FlatString */;
7836 val
* var207
/* : Array[Object] */;
7837 long var208
/* : Int */;
7838 val
* var209
/* : NativeArray[Object] */;
7839 val
* var210
/* : Object */;
7840 val
* var211
/* : Object */;
7841 val
* var212
/* : String */;
7842 static val
* varonce213
;
7843 val
* var214
/* : String */;
7844 char* var215
/* : NativeString */;
7845 long var216
/* : Int */;
7846 val
* var217
/* : FlatString */;
7847 static val
* varonce218
;
7848 val
* var219
/* : String */;
7849 char* var220
/* : NativeString */;
7850 long var221
/* : Int */;
7851 val
* var222
/* : FlatString */;
7852 long var223
/* : Int */;
7853 long var224
/* : Int */;
7854 val
* var225
/* : Map[MClass, Array[nullable MPropDef]] */;
7855 val
* var227
/* : Map[MClass, Array[nullable MPropDef]] */;
7856 val
* var_228
/* var : Map[MClass, Array[nullable MPropDef]] */;
7857 val
* var229
/* : MapIterator[nullable Object, nullable Object] */;
7858 val
* var_230
/* var : MapIterator[MClass, Array[nullable MPropDef]] */;
7859 short int var231
/* : Bool */;
7860 val
* var232
/* : nullable Object */;
7861 val
* var_t233
/* var t: MClass */;
7862 val
* var234
/* : nullable Object */;
7863 val
* var_table235
/* var table: Array[nullable MPropDef] */;
7864 long var236
/* : Int */;
7865 long var238
/* : Int */;
7866 long var239
/* : Int */;
7867 short int var241
/* : Bool */;
7870 const char* var_class_name244
;
7871 long var245
/* : Int */;
7872 val
* var_246
/* var : Array[nullable MPropDef] */;
7873 val
* var247
/* : ArrayIterator[nullable Object] */;
7874 val
* var_248
/* var : ArrayIterator[nullable MPropDef] */;
7875 short int var249
/* : Bool */;
7876 val
* var250
/* : nullable Object */;
7877 val
* var_e251
/* var e: nullable MPropDef */;
7878 val
* var252
/* : null */;
7879 short int var253
/* : Bool */;
7880 short int var254
/* : Bool */;
7881 short int var256
/* : Bool */;
7882 short int var258
/* : Bool */;
7883 long var259
/* : Int */;
7884 long var260
/* : Int */;
7885 short int var262
/* : Bool */;
7888 const char* var_class_name265
;
7889 long var266
/* : Int */;
7890 static val
* varonce271
;
7891 val
* var272
/* : String */;
7892 char* var273
/* : NativeString */;
7893 long var274
/* : Int */;
7894 val
* var275
/* : FlatString */;
7895 static val
* varonce276
;
7896 val
* var277
/* : String */;
7897 char* var278
/* : NativeString */;
7898 long var279
/* : Int */;
7899 val
* var280
/* : FlatString */;
7900 val
* var281
/* : Array[Object] */;
7901 long var282
/* : Int */;
7902 val
* var283
/* : NativeArray[Object] */;
7903 val
* var284
/* : Object */;
7904 val
* var285
/* : Object */;
7905 val
* var286
/* : String */;
7909 var1
= "# size of subtyping tables";
7911 var3
= standard___standard__NativeString___to_s_with_length(var1
, var2
);
7916 standard__file___Object___print(self
, var
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
7921 var6
= "\11total \11holes";
7923 var8
= standard___standard__NativeString___to_s_with_length(var6
, var7
);
7928 standard__file___Object___print(self
, var5
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
7935 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables (self) on <self:SeparateErasureCompiler> */
7936 var13
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
; /* _class_tables on <self:SeparateErasureCompiler> */
7937 if (unlikely(var13
== NULL
)) {
7938 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables");
7939 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 416);
7943 RET_LABEL12
:(void)0;
7948 var14
= ((val
* (*)(val
* self
))(var_
->class->vft
[COLOR_standard__abstract_collection__MapRead__iterator
]))(var_
) /* iterator on <var_:Map[MClass, Array[nullable MClass]]>*/;
7953 var16
= ((short int (*)(val
* self
))(var_15
->class->vft
[COLOR_standard__abstract_collection__MapIterator__is_ok
]))(var_15
) /* is_ok on <var_15:MapIterator[MClass, Array[nullable MClass]]>*/;
7957 var17
= ((val
* (*)(val
* self
))(var_15
->class->vft
[COLOR_standard__abstract_collection__MapIterator__key
]))(var_15
) /* key on <var_15:MapIterator[MClass, Array[nullable MClass]]>*/;
7961 var18
= ((val
* (*)(val
* self
))(var_15
->class->vft
[COLOR_standard__abstract_collection__MapIterator__item
]))(var_15
) /* item on <var_15:MapIterator[MClass, Array[nullable MClass]]>*/;
7965 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MClass]> */
7966 var21
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MClass]> */
7968 RET_LABEL20
:(void)0;
7972 { /* Inline kernel#Int#+ (var_total,var19) on <var_total:Int> */
7973 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
7974 /* <var19:Int> isa OTHER */
7975 var24
= 1; /* easy <var19:Int> isa OTHER*/
7976 if (unlikely(!var24
)) {
7977 var_class_name
= type_standard__Int
.name
;
7978 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
7979 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
7982 var25
= var_total
+ var19
;
7985 RET_LABEL23
:(void)0;
7991 var27
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_26
);
7996 var29
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_28
);
8000 var30
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_28
);
8004 if (var_e
== NULL
) {
8005 var32
= 1; /* is null */
8007 var32
= 0; /* arg is null but recv is not */
8010 { /* Inline kernel#Object#== (var_e,var31) on <var_e:nullable MClass> */
8013 { /* Inline kernel#Object#is_same_instance (var_e,var_other) on <var_e:nullable MClass(MClass)> */
8014 var37
= var_e
== var_other
;
8017 RET_LABEL36
:(void)0;
8022 RET_LABEL34
:(void)0;
8029 { /* Inline kernel#Int#+ (var_holes,var38) on <var_holes:Int> */
8030 /* Covariant cast for argument 0 (i) <var38:Int> isa OTHER */
8031 /* <var38:Int> isa OTHER */
8032 var41
= 1; /* easy <var38:Int> isa OTHER*/
8033 if (unlikely(!var41
)) {
8034 var_class_name44
= type_standard__Int
.name
;
8035 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44
);
8036 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
8039 var45
= var_holes
+ var38
;
8042 RET_LABEL40
:(void)0;
8049 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_28
); /* Direct call array#ArrayIterator#next on <var_28:ArrayIterator[nullable MClass]>*/
8055 BREAK_label
: (void)0;
8057 { /* Inline abstract_collection#Iterator#finish (var_28) on <var_28:ArrayIterator[nullable MClass]> */
8058 RET_LABEL46
:(void)0;
8062 ((void (*)(val
* self
))(var_15
->class->vft
[COLOR_standard__abstract_collection__MapIterator__next
]))(var_15
) /* next on <var_15:MapIterator[MClass, Array[nullable MClass]]>*/;
8068 BREAK_label47
: (void)0;
8070 { /* Inline abstract_collection#MapIterator#finish (var_15) on <var_15:MapIterator[MClass, Array[nullable MClass]]> */
8071 RET_LABEL48
:(void)0;
8079 var53
= standard___standard__NativeString___to_s_with_length(var51
, var52
);
8088 var58
= standard___standard__NativeString___to_s_with_length(var56
, var57
);
8092 var59
= NEW_standard__Array(&type_standard__Array__standard__Object
);
8093 { /* var59 = array_instance Array[Object] */
8095 var61
= NEW_standard__NativeArray(var60
, &type_standard__NativeArray__standard__Object
);
8096 ((struct instance_standard__NativeArray
*)var61
)->values
[0] = (val
*) var50
;
8097 var62
= BOX_standard__Int(var_total
); /* autobox from Int to Object */
8098 ((struct instance_standard__NativeArray
*)var61
)->values
[1] = (val
*) var62
;
8099 ((struct instance_standard__NativeArray
*)var61
)->values
[2] = (val
*) var55
;
8100 var63
= BOX_standard__Int(var_holes
); /* autobox from Int to Object */
8101 ((struct instance_standard__NativeArray
*)var61
)->values
[3] = (val
*) var63
;
8103 ((void (*)(val
* self
, val
* p0
, long p1
))(var59
->class->vft
[COLOR_standard__array__Array__with_native
]))(var59
, var61
, var60
) /* with_native on <var59:Array[Object]>*/;
8107 var64
= ((val
* (*)(val
* self
))(var59
->class->vft
[COLOR_standard__string__Object__to_s
]))(var59
) /* to_s on <var59:Array[Object]>*/;
8110 standard__file___Object___print(self
, var64
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
8115 var67
= "# size of resolution tables";
8117 var69
= standard___standard__NativeString___to_s_with_length(var67
, var68
);
8122 standard__file___Object___print(self
, var66
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
8127 var72
= "\11total \11holes";
8129 var74
= standard___standard__NativeString___to_s_with_length(var72
, var73
);
8134 standard__file___Object___print(self
, var71
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
8141 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on <self:SeparateErasureCompiler> */
8142 var79
= self
->attrs
[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
8143 if (unlikely(var79
== NULL
)) {
8144 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
8145 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 417);
8149 RET_LABEL78
:(void)0;
8154 var81
= ((val
* (*)(val
* self
))(var_80
->class->vft
[COLOR_standard__abstract_collection__MapRead__iterator
]))(var_80
) /* iterator on <var_80:Map[MClass, Array[nullable MPropDef]]>*/;
8159 var83
= ((short int (*)(val
* self
))(var_82
->class->vft
[COLOR_standard__abstract_collection__MapIterator__is_ok
]))(var_82
) /* is_ok on <var_82:MapIterator[MClass, Array[nullable MPropDef]]>*/;
8163 var84
= ((val
* (*)(val
* self
))(var_82
->class->vft
[COLOR_standard__abstract_collection__MapIterator__key
]))(var_82
) /* key on <var_82:MapIterator[MClass, Array[nullable MPropDef]]>*/;
8167 var86
= ((val
* (*)(val
* self
))(var_82
->class->vft
[COLOR_standard__abstract_collection__MapIterator__item
]))(var_82
) /* item on <var_82:MapIterator[MClass, Array[nullable MPropDef]]>*/;
8169 var_table87
= var86
;
8171 { /* Inline array#AbstractArrayRead#length (var_table87) on <var_table87:Array[nullable MPropDef]> */
8172 var90
= var_table87
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table87:Array[nullable MPropDef]> */
8174 RET_LABEL89
:(void)0;
8178 { /* Inline kernel#Int#+ (var_total,var88) on <var_total:Int> */
8179 /* Covariant cast for argument 0 (i) <var88:Int> isa OTHER */
8180 /* <var88:Int> isa OTHER */
8181 var93
= 1; /* easy <var88:Int> isa OTHER*/
8182 if (unlikely(!var93
)) {
8183 var_class_name96
= type_standard__Int
.name
;
8184 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name96
);
8185 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
8188 var97
= var_total
+ var88
;
8191 RET_LABEL92
:(void)0;
8195 var_98
= var_table87
;
8197 var99
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_98
);
8202 var101
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_100
);
8206 var102
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_100
);
8210 if (var_e103
== NULL
) {
8211 var105
= 1; /* is null */
8213 var105
= 0; /* arg is null but recv is not */
8216 { /* Inline kernel#Object#== (var_e103,var104) on <var_e103:nullable MPropDef> */
8219 { /* Inline kernel#Object#is_same_instance (var_e103,var_other) on <var_e103:nullable MPropDef(MPropDef)> */
8220 var110
= var_e103
== var_other
;
8223 RET_LABEL109
:(void)0;
8228 RET_LABEL107
:(void)0;
8235 { /* Inline kernel#Int#+ (var_holes,var111) on <var_holes:Int> */
8236 /* Covariant cast for argument 0 (i) <var111:Int> isa OTHER */
8237 /* <var111:Int> isa OTHER */
8238 var114
= 1; /* easy <var111:Int> isa OTHER*/
8239 if (unlikely(!var114
)) {
8240 var_class_name117
= type_standard__Int
.name
;
8241 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name117
);
8242 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
8245 var118
= var_holes
+ var111
;
8248 RET_LABEL113
:(void)0;
8255 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_100
); /* Direct call array#ArrayIterator#next on <var_100:ArrayIterator[nullable MPropDef]>*/
8258 goto BREAK_label119
;
8261 BREAK_label119
: (void)0;
8263 { /* Inline abstract_collection#Iterator#finish (var_100) on <var_100:ArrayIterator[nullable MPropDef]> */
8264 RET_LABEL120
:(void)0;
8268 ((void (*)(val
* self
))(var_82
->class->vft
[COLOR_standard__abstract_collection__MapIterator__next
]))(var_82
) /* next on <var_82:MapIterator[MClass, Array[nullable MPropDef]]>*/;
8271 goto BREAK_label121
;
8274 BREAK_label121
: (void)0;
8276 { /* Inline abstract_collection#MapIterator#finish (var_82) on <var_82:MapIterator[MClass, Array[nullable MPropDef]]> */
8277 RET_LABEL122
:(void)0;
8281 var124
= varonce123
;
8285 var127
= standard___standard__NativeString___to_s_with_length(var125
, var126
);
8287 varonce123
= var124
;
8290 var129
= varonce128
;
8294 var132
= standard___standard__NativeString___to_s_with_length(var130
, var131
);
8296 varonce128
= var129
;
8298 var133
= NEW_standard__Array(&type_standard__Array__standard__Object
);
8299 { /* var133 = array_instance Array[Object] */
8301 var135
= NEW_standard__NativeArray(var134
, &type_standard__NativeArray__standard__Object
);
8302 ((struct instance_standard__NativeArray
*)var135
)->values
[0] = (val
*) var124
;
8303 var136
= BOX_standard__Int(var_total
); /* autobox from Int to Object */
8304 ((struct instance_standard__NativeArray
*)var135
)->values
[1] = (val
*) var136
;
8305 ((struct instance_standard__NativeArray
*)var135
)->values
[2] = (val
*) var129
;
8306 var137
= BOX_standard__Int(var_holes
); /* autobox from Int to Object */
8307 ((struct instance_standard__NativeArray
*)var135
)->values
[3] = (val
*) var137
;
8309 ((void (*)(val
* self
, val
* p0
, long p1
))(var133
->class->vft
[COLOR_standard__array__Array__with_native
]))(var133
, var135
, var134
) /* with_native on <var133:Array[Object]>*/;
8313 var138
= ((val
* (*)(val
* self
))(var133
->class->vft
[COLOR_standard__string__Object__to_s
]))(var133
) /* to_s on <var133:Array[Object]>*/;
8316 standard__file___Object___print(self
, var138
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
8319 var140
= varonce139
;
8321 var141
= "# size of methods tables";
8323 var143
= standard___standard__NativeString___to_s_with_length(var141
, var142
);
8325 varonce139
= var140
;
8328 standard__file___Object___print(self
, var140
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
8331 var145
= varonce144
;
8333 var146
= "\11total \11holes";
8335 var148
= standard___standard__NativeString___to_s_with_length(var146
, var147
);
8337 varonce144
= var145
;
8340 standard__file___Object___print(self
, var145
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
8347 { /* Inline separate_compiler#SeparateCompiler#method_tables (self) on <self:SeparateErasureCompiler> */
8348 var153
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___method_tables
].val
; /* _method_tables on <self:SeparateErasureCompiler> */
8349 if (unlikely(var153
== NULL
)) {
8350 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
8351 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 856);
8355 RET_LABEL152
:(void)0;
8360 var155
= ((val
* (*)(val
* self
))(var_154
->class->vft
[COLOR_standard__abstract_collection__MapRead__iterator
]))(var_154
) /* iterator on <var_154:Map[MClass, Array[nullable MPropDef]]>*/;
8365 var157
= ((short int (*)(val
* self
))(var_156
->class->vft
[COLOR_standard__abstract_collection__MapIterator__is_ok
]))(var_156
) /* is_ok on <var_156:MapIterator[MClass, Array[nullable MPropDef]]>*/;
8369 var158
= ((val
* (*)(val
* self
))(var_156
->class->vft
[COLOR_standard__abstract_collection__MapIterator__key
]))(var_156
) /* key on <var_156:MapIterator[MClass, Array[nullable MPropDef]]>*/;
8373 var160
= ((val
* (*)(val
* self
))(var_156
->class->vft
[COLOR_standard__abstract_collection__MapIterator__item
]))(var_156
) /* item on <var_156:MapIterator[MClass, Array[nullable MPropDef]]>*/;
8375 var_table161
= var160
;
8377 { /* Inline array#AbstractArrayRead#length (var_table161) on <var_table161:Array[nullable MPropDef]> */
8378 var164
= var_table161
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table161:Array[nullable MPropDef]> */
8380 RET_LABEL163
:(void)0;
8384 { /* Inline kernel#Int#+ (var_total,var162) on <var_total:Int> */
8385 /* Covariant cast for argument 0 (i) <var162:Int> isa OTHER */
8386 /* <var162:Int> isa OTHER */
8387 var167
= 1; /* easy <var162:Int> isa OTHER*/
8388 if (unlikely(!var167
)) {
8389 var_class_name170
= type_standard__Int
.name
;
8390 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name170
);
8391 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
8394 var171
= var_total
+ var162
;
8397 RET_LABEL166
:(void)0;
8401 var_172
= var_table161
;
8403 var173
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_172
);
8408 var175
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_174
);
8412 var176
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_174
);
8416 if (var_e177
== NULL
) {
8417 var179
= 1; /* is null */
8419 var179
= 0; /* arg is null but recv is not */
8422 { /* Inline kernel#Object#== (var_e177,var178) on <var_e177:nullable MPropDef> */
8425 { /* Inline kernel#Object#is_same_instance (var_e177,var_other) on <var_e177:nullable MPropDef(MPropDef)> */
8426 var184
= var_e177
== var_other
;
8429 RET_LABEL183
:(void)0;
8434 RET_LABEL181
:(void)0;
8441 { /* Inline kernel#Int#+ (var_holes,var185) on <var_holes:Int> */
8442 /* Covariant cast for argument 0 (i) <var185:Int> isa OTHER */
8443 /* <var185:Int> isa OTHER */
8444 var188
= 1; /* easy <var185:Int> isa OTHER*/
8445 if (unlikely(!var188
)) {
8446 var_class_name191
= type_standard__Int
.name
;
8447 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name191
);
8448 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
8451 var192
= var_holes
+ var185
;
8454 RET_LABEL187
:(void)0;
8461 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_174
); /* Direct call array#ArrayIterator#next on <var_174:ArrayIterator[nullable MPropDef]>*/
8464 goto BREAK_label193
;
8467 BREAK_label193
: (void)0;
8469 { /* Inline abstract_collection#Iterator#finish (var_174) on <var_174:ArrayIterator[nullable MPropDef]> */
8470 RET_LABEL194
:(void)0;
8474 ((void (*)(val
* self
))(var_156
->class->vft
[COLOR_standard__abstract_collection__MapIterator__next
]))(var_156
) /* next on <var_156:MapIterator[MClass, Array[nullable MPropDef]]>*/;
8477 goto BREAK_label195
;
8480 BREAK_label195
: (void)0;
8482 { /* Inline abstract_collection#MapIterator#finish (var_156) on <var_156:MapIterator[MClass, Array[nullable MPropDef]]> */
8483 RET_LABEL196
:(void)0;
8487 var198
= varonce197
;
8491 var201
= standard___standard__NativeString___to_s_with_length(var199
, var200
);
8493 varonce197
= var198
;
8496 var203
= varonce202
;
8500 var206
= standard___standard__NativeString___to_s_with_length(var204
, var205
);
8502 varonce202
= var203
;
8504 var207
= NEW_standard__Array(&type_standard__Array__standard__Object
);
8505 { /* var207 = array_instance Array[Object] */
8507 var209
= NEW_standard__NativeArray(var208
, &type_standard__NativeArray__standard__Object
);
8508 ((struct instance_standard__NativeArray
*)var209
)->values
[0] = (val
*) var198
;
8509 var210
= BOX_standard__Int(var_total
); /* autobox from Int to Object */
8510 ((struct instance_standard__NativeArray
*)var209
)->values
[1] = (val
*) var210
;
8511 ((struct instance_standard__NativeArray
*)var209
)->values
[2] = (val
*) var203
;
8512 var211
= BOX_standard__Int(var_holes
); /* autobox from Int to Object */
8513 ((struct instance_standard__NativeArray
*)var209
)->values
[3] = (val
*) var211
;
8515 ((void (*)(val
* self
, val
* p0
, long p1
))(var207
->class->vft
[COLOR_standard__array__Array__with_native
]))(var207
, var209
, var208
) /* with_native on <var207:Array[Object]>*/;
8519 var212
= ((val
* (*)(val
* self
))(var207
->class->vft
[COLOR_standard__string__Object__to_s
]))(var207
) /* to_s on <var207:Array[Object]>*/;
8522 standard__file___Object___print(self
, var212
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
8525 var214
= varonce213
;
8527 var215
= "# size of attributes tables";
8529 var217
= standard___standard__NativeString___to_s_with_length(var215
, var216
);
8531 varonce213
= var214
;
8534 standard__file___Object___print(self
, var214
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
8537 var219
= varonce218
;
8539 var220
= "\11total \11holes";
8541 var222
= standard___standard__NativeString___to_s_with_length(var220
, var221
);
8543 varonce218
= var219
;
8546 standard__file___Object___print(self
, var219
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
8553 { /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on <self:SeparateErasureCompiler> */
8554 var227
= self
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___attr_tables
].val
; /* _attr_tables on <self:SeparateErasureCompiler> */
8555 if (unlikely(var227
== NULL
)) {
8556 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
8557 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler
, 857);
8561 RET_LABEL226
:(void)0;
8566 var229
= ((val
* (*)(val
* self
))(var_228
->class->vft
[COLOR_standard__abstract_collection__MapRead__iterator
]))(var_228
) /* iterator on <var_228:Map[MClass, Array[nullable MPropDef]]>*/;
8571 var231
= ((short int (*)(val
* self
))(var_230
->class->vft
[COLOR_standard__abstract_collection__MapIterator__is_ok
]))(var_230
) /* is_ok on <var_230:MapIterator[MClass, Array[nullable MPropDef]]>*/;
8575 var232
= ((val
* (*)(val
* self
))(var_230
->class->vft
[COLOR_standard__abstract_collection__MapIterator__key
]))(var_230
) /* key on <var_230:MapIterator[MClass, Array[nullable MPropDef]]>*/;
8579 var234
= ((val
* (*)(val
* self
))(var_230
->class->vft
[COLOR_standard__abstract_collection__MapIterator__item
]))(var_230
) /* item on <var_230:MapIterator[MClass, Array[nullable MPropDef]]>*/;
8581 var_table235
= var234
;
8583 { /* Inline array#AbstractArrayRead#length (var_table235) on <var_table235:Array[nullable MPropDef]> */
8584 var238
= var_table235
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table235:Array[nullable MPropDef]> */
8586 RET_LABEL237
:(void)0;
8590 { /* Inline kernel#Int#+ (var_total,var236) on <var_total:Int> */
8591 /* Covariant cast for argument 0 (i) <var236:Int> isa OTHER */
8592 /* <var236:Int> isa OTHER */
8593 var241
= 1; /* easy <var236:Int> isa OTHER*/
8594 if (unlikely(!var241
)) {
8595 var_class_name244
= type_standard__Int
.name
;
8596 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name244
);
8597 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
8600 var245
= var_total
+ var236
;
8603 RET_LABEL240
:(void)0;
8607 var_246
= var_table235
;
8609 var247
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_246
);
8614 var249
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_248
);
8618 var250
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_248
);
8622 if (var_e251
== NULL
) {
8623 var253
= 1; /* is null */
8625 var253
= 0; /* arg is null but recv is not */
8628 { /* Inline kernel#Object#== (var_e251,var252) on <var_e251:nullable MPropDef> */
8631 { /* Inline kernel#Object#is_same_instance (var_e251,var_other) on <var_e251:nullable MPropDef(MPropDef)> */
8632 var258
= var_e251
== var_other
;
8635 RET_LABEL257
:(void)0;
8640 RET_LABEL255
:(void)0;
8647 { /* Inline kernel#Int#+ (var_holes,var259) on <var_holes:Int> */
8648 /* Covariant cast for argument 0 (i) <var259:Int> isa OTHER */
8649 /* <var259:Int> isa OTHER */
8650 var262
= 1; /* easy <var259:Int> isa OTHER*/
8651 if (unlikely(!var262
)) {
8652 var_class_name265
= type_standard__Int
.name
;
8653 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name265
);
8654 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
8657 var266
= var_holes
+ var259
;
8660 RET_LABEL261
:(void)0;
8667 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_248
); /* Direct call array#ArrayIterator#next on <var_248:ArrayIterator[nullable MPropDef]>*/
8670 goto BREAK_label267
;
8673 BREAK_label267
: (void)0;
8675 { /* Inline abstract_collection#Iterator#finish (var_248) on <var_248:ArrayIterator[nullable MPropDef]> */
8676 RET_LABEL268
:(void)0;
8680 ((void (*)(val
* self
))(var_230
->class->vft
[COLOR_standard__abstract_collection__MapIterator__next
]))(var_230
) /* next on <var_230:MapIterator[MClass, Array[nullable MPropDef]]>*/;
8683 goto BREAK_label269
;
8686 BREAK_label269
: (void)0;
8688 { /* Inline abstract_collection#MapIterator#finish (var_230) on <var_230:MapIterator[MClass, Array[nullable MPropDef]]> */
8689 RET_LABEL270
:(void)0;
8693 var272
= varonce271
;
8697 var275
= standard___standard__NativeString___to_s_with_length(var273
, var274
);
8699 varonce271
= var272
;
8702 var277
= varonce276
;
8706 var280
= standard___standard__NativeString___to_s_with_length(var278
, var279
);
8708 varonce276
= var277
;
8710 var281
= NEW_standard__Array(&type_standard__Array__standard__Object
);
8711 { /* var281 = array_instance Array[Object] */
8713 var283
= NEW_standard__NativeArray(var282
, &type_standard__NativeArray__standard__Object
);
8714 ((struct instance_standard__NativeArray
*)var283
)->values
[0] = (val
*) var272
;
8715 var284
= BOX_standard__Int(var_total
); /* autobox from Int to Object */
8716 ((struct instance_standard__NativeArray
*)var283
)->values
[1] = (val
*) var284
;
8717 ((struct instance_standard__NativeArray
*)var283
)->values
[2] = (val
*) var277
;
8718 var285
= BOX_standard__Int(var_holes
); /* autobox from Int to Object */
8719 ((struct instance_standard__NativeArray
*)var283
)->values
[3] = (val
*) var285
;
8721 ((void (*)(val
* self
, val
* p0
, long p1
))(var281
->class->vft
[COLOR_standard__array__Array__with_native
]))(var281
, var283
, var282
) /* with_native on <var281:Array[Object]>*/;
8725 var286
= ((val
* (*)(val
* self
))(var281
->class->vft
[COLOR_standard__string__Object__to_s
]))(var281
) /* to_s on <var281:Array[Object]>*/;
8728 standard__file___Object___print(self
, var286
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
8732 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#compile_callsite for (self: SeparateErasureCompilerVisitor, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
8733 val
* nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite(val
* self
, val
* p0
, val
* p1
) {
8734 val
* var
/* : nullable RuntimeVariable */;
8735 val
* var_callsite
/* var callsite: CallSite */;
8736 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
8737 val
* var1
/* : nullable RuntimeVariable */;
8738 val
* var_res
/* var res: nullable RuntimeVariable */;
8739 short int var2
/* : Bool */;
8740 short int var3
/* : Bool */;
8741 short int var5
/* : Bool */;
8742 short int var_
/* var : Bool */;
8743 val
* var6
/* : AbstractCompiler */;
8744 val
* var8
/* : AbstractCompiler */;
8745 short int var9
/* : Bool */;
8748 const char* var_class_name
;
8749 val
* var10
/* : ModelBuilder */;
8750 val
* var12
/* : ModelBuilder */;
8751 val
* var13
/* : ToolContext */;
8752 val
* var15
/* : ToolContext */;
8753 val
* var16
/* : OptionBool */;
8754 val
* var18
/* : OptionBool */;
8755 val
* var19
/* : nullable Object */;
8756 val
* var21
/* : nullable Object */;
8757 short int var22
/* : Bool */;
8758 short int var23
/* : Bool */;
8759 val
* var24
/* : null */;
8760 short int var25
/* : Bool */;
8761 short int var26
/* : Bool */;
8762 val
* var_other
/* var other: nullable Object */;
8763 short int var28
/* : Bool */;
8764 short int var29
/* : Bool */;
8765 val
* var30
/* : MSignature */;
8766 val
* var32
/* : MSignature */;
8767 val
* var33
/* : nullable MType */;
8768 val
* var35
/* : nullable MType */;
8769 val
* var_mtype
/* var mtype: nullable MType */;
8770 val
* var36
/* : null */;
8771 short int var37
/* : Bool */;
8772 short int var38
/* : Bool */;
8773 short int var40
/* : Bool */;
8774 short int var41
/* : Bool */;
8775 static val
* varonce
;
8776 val
* var42
/* : String */;
8777 char* var43
/* : NativeString */;
8778 long var44
/* : Int */;
8779 val
* var45
/* : FlatString */;
8780 static val
* varonce46
;
8781 val
* var47
/* : String */;
8782 char* var48
/* : NativeString */;
8783 long var49
/* : Int */;
8784 val
* var50
/* : FlatString */;
8785 static val
* varonce51
;
8786 val
* var52
/* : String */;
8787 char* var53
/* : NativeString */;
8788 long var54
/* : Int */;
8789 val
* var55
/* : FlatString */;
8790 val
* var56
/* : Array[Object] */;
8791 long var57
/* : Int */;
8792 val
* var58
/* : NativeArray[Object] */;
8793 val
* var59
/* : String */;
8794 static val
* varonce60
;
8795 val
* var61
/* : String */;
8796 char* var62
/* : NativeString */;
8797 long var63
/* : Int */;
8798 val
* var64
/* : FlatString */;
8799 val
* var65
/* : RuntimeVariable */;
8800 val
* var_cond
/* var cond: RuntimeVariable */;
8801 static val
* varonce66
;
8802 val
* var67
/* : String */;
8803 char* var68
/* : NativeString */;
8804 long var69
/* : Int */;
8805 val
* var70
/* : FlatString */;
8806 static val
* varonce71
;
8807 val
* var72
/* : String */;
8808 char* var73
/* : NativeString */;
8809 long var74
/* : Int */;
8810 val
* var75
/* : FlatString */;
8811 val
* var76
/* : Array[Object] */;
8812 long var77
/* : Int */;
8813 val
* var78
/* : NativeArray[Object] */;
8814 val
* var79
/* : String */;
8815 static val
* varonce80
;
8816 val
* var81
/* : String */;
8817 char* var82
/* : NativeString */;
8818 long var83
/* : Int */;
8819 val
* var84
/* : FlatString */;
8820 static val
* varonce85
;
8821 val
* var86
/* : String */;
8822 char* var87
/* : NativeString */;
8823 long var88
/* : Int */;
8824 val
* var89
/* : FlatString */;
8828 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>*/;
8832 { /* Inline typing#CallSite#erasure_cast (var_callsite) on <var_callsite:CallSite> */
8833 var5
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___erasure_cast
].s
; /* _erasure_cast on <var_callsite:CallSite> */
8841 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
8842 var8
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
8843 if (unlikely(var8
== NULL
)) {
8844 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
8845 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1059);
8852 /* <var6:AbstractCompiler(SeparateCompiler)> isa SeparateErasureCompiler */
8853 cltype
= type_nit__SeparateErasureCompiler
.color
;
8854 idtype
= type_nit__SeparateErasureCompiler
.id
;
8855 if(cltype
>= var6
->type
->table_size
) {
8858 var9
= var6
->type
->type_table
[cltype
] == idtype
;
8860 if (unlikely(!var9
)) {
8861 var_class_name
= var6
== NULL ?
"null" : var6
->type
->name
;
8862 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SeparateErasureCompiler", var_class_name
);
8863 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 469);
8867 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var6) on <var6:SeparateCompiler(SeparateErasureCompiler)> */
8868 var12
= var6
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var6:SeparateCompiler(SeparateErasureCompiler)> */
8869 if (unlikely(var12
== NULL
)) {
8870 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
8871 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 481);
8875 RET_LABEL11
:(void)0;
8879 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var10) on <var10:ModelBuilder> */
8880 var15
= var10
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var10:ModelBuilder> */
8881 if (unlikely(var15
== NULL
)) {
8882 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
8883 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
8887 RET_LABEL14
:(void)0;
8891 { /* Inline separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast (var13) on <var13:ToolContext> */
8892 var18
= var13
->attrs
[COLOR_nit__separate_erasure_compiler__ToolContext___opt_no_check_erasure_cast
].val
; /* _opt_no_check_erasure_cast on <var13:ToolContext> */
8893 if (unlikely(var18
== NULL
)) {
8894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast");
8895 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 26);
8899 RET_LABEL17
:(void)0;
8903 { /* Inline opts#Option#value (var16) on <var16:OptionBool> */
8904 var21
= var16
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var16:OptionBool> */
8906 RET_LABEL20
:(void)0;
8909 var22
= ((struct instance_standard__Bool
*)var19
)->value
; /* autounbox from nullable Object to Bool */;
8917 if (var_res
== NULL
) {
8918 var25
= 0; /* is null */
8920 var25
= 1; /* arg is null and recv is not */
8923 { /* Inline kernel#Object#!= (var_res,var24) on <var_res:nullable RuntimeVariable> */
8926 var28
= ((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)>*/;
8931 RET_LABEL27
:(void)0;
8935 if (unlikely(!var25
)) {
8936 PRINT_ERROR("Runtime error: %s", "Assert failed");
8937 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 470);
8941 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:CallSite> */
8942 var32
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
; /* _msignature on <var_callsite:CallSite> */
8943 if (unlikely(var32
== NULL
)) {
8944 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
8945 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 494);
8949 RET_LABEL31
:(void)0;
8953 { /* Inline model#MSignature#return_mtype (var30) on <var30:MSignature> */
8954 var35
= var30
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var30:MSignature> */
8956 RET_LABEL34
:(void)0;
8961 if (var_mtype
== NULL
) {
8962 var37
= 0; /* is null */
8964 var37
= 1; /* arg is null and recv is not */
8967 { /* Inline kernel#Object#!= (var_mtype,var36) on <var_mtype:nullable MType> */
8970 var40
= ((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)>*/;
8975 RET_LABEL39
:(void)0;
8979 if (unlikely(!var37
)) {
8980 PRINT_ERROR("Runtime error: %s", "Assert failed");
8981 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 472);
8987 var43
= "/* Erasure cast for return ";
8989 var45
= standard___standard__NativeString___to_s_with_length(var43
, var44
);
8998 var50
= standard___standard__NativeString___to_s_with_length(var48
, var49
);
9007 var55
= standard___standard__NativeString___to_s_with_length(var53
, var54
);
9011 var56
= NEW_standard__Array(&type_standard__Array__standard__Object
);
9012 { /* var56 = array_instance Array[Object] */
9014 var58
= NEW_standard__NativeArray(var57
, &type_standard__NativeArray__standard__Object
);
9015 ((struct instance_standard__NativeArray
*)var58
)->values
[0] = (val
*) var42
;
9016 ((struct instance_standard__NativeArray
*)var58
)->values
[1] = (val
*) var_res
;
9017 ((struct instance_standard__NativeArray
*)var58
)->values
[2] = (val
*) var47
;
9018 ((struct instance_standard__NativeArray
*)var58
)->values
[3] = (val
*) var_mtype
;
9019 ((struct instance_standard__NativeArray
*)var58
)->values
[4] = (val
*) var52
;
9021 ((void (*)(val
* self
, val
* p0
, long p1
))(var56
->class->vft
[COLOR_standard__array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
9025 var59
= ((val
* (*)(val
* self
))(var56
->class->vft
[COLOR_standard__string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
9028 nit___nit__AbstractCompilerVisitor___add(self
, var59
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
9035 var64
= standard___standard__NativeString___to_s_with_length(var62
, var63
);
9040 var65
= nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__type_test(self
, var_res
, var_mtype
, var61
);
9048 var70
= standard___standard__NativeString___to_s_with_length(var68
, var69
);
9057 var75
= standard___standard__NativeString___to_s_with_length(var73
, var74
);
9061 var76
= NEW_standard__Array(&type_standard__Array__standard__Object
);
9062 { /* var76 = array_instance Array[Object] */
9064 var78
= NEW_standard__NativeArray(var77
, &type_standard__NativeArray__standard__Object
);
9065 ((struct instance_standard__NativeArray
*)var78
)->values
[0] = (val
*) var67
;
9066 ((struct instance_standard__NativeArray
*)var78
)->values
[1] = (val
*) var_cond
;
9067 ((struct instance_standard__NativeArray
*)var78
)->values
[2] = (val
*) var72
;
9069 ((void (*)(val
* self
, val
* p0
, long p1
))(var76
->class->vft
[COLOR_standard__array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
9073 var79
= ((val
* (*)(val
* self
))(var76
->class->vft
[COLOR_standard__string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
9076 nit___nit__AbstractCompilerVisitor___add(self
, var79
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
9081 var82
= "Cast failed";
9083 var84
= standard___standard__NativeString___to_s_with_length(var82
, var83
);
9088 nit___nit__AbstractCompilerVisitor___add_abort(self
, var81
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <self:SeparateErasureCompilerVisitor>*/
9095 var89
= standard___standard__NativeString___to_s_with_length(var87
, var88
);
9100 nit___nit__AbstractCompilerVisitor___add(self
, var86
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
9109 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#init_instance for (self: SeparateErasureCompilerVisitor, MClassType): RuntimeVariable */
9110 val
* nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__init_instance(val
* self
, val
* p0
) {
9111 val
* var
/* : RuntimeVariable */;
9112 val
* var_mtype
/* var mtype: MClassType */;
9113 static val
* varonce
;
9114 val
* var1
/* : String */;
9115 char* var2
/* : NativeString */;
9116 long var3
/* : Int */;
9117 val
* var4
/* : FlatString */;
9118 val
* var5
/* : MClass */;
9119 val
* var7
/* : MClass */;
9120 val
* var8
/* : String */;
9121 val
* var9
/* : Array[Object] */;
9122 long var10
/* : Int */;
9123 val
* var11
/* : NativeArray[Object] */;
9124 val
* var12
/* : String */;
9125 static val
* varonce13
;
9126 val
* var14
/* : String */;
9127 char* var15
/* : NativeString */;
9128 long var16
/* : Int */;
9129 val
* var17
/* : FlatString */;
9130 val
* var18
/* : MClass */;
9131 val
* var20
/* : MClass */;
9132 val
* var21
/* : String */;
9133 static val
* varonce22
;
9134 val
* var23
/* : String */;
9135 char* var24
/* : NativeString */;
9136 long var25
/* : Int */;
9137 val
* var26
/* : FlatString */;
9138 val
* var27
/* : Array[Object] */;
9139 long var28
/* : Int */;
9140 val
* var29
/* : NativeArray[Object] */;
9141 val
* var30
/* : String */;
9142 val
* var31
/* : RuntimeVariable */;
9149 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
9154 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
9155 var7
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
9156 if (unlikely(var7
== NULL
)) {
9157 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9158 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
9166 var8
= nit___nit__MClass___nit__model_base__MEntity__c_name(var5
);
9168 var9
= NEW_standard__Array(&type_standard__Array__standard__Object
);
9169 { /* var9 = array_instance Array[Object] */
9171 var11
= NEW_standard__NativeArray(var10
, &type_standard__NativeArray__standard__Object
);
9172 ((struct instance_standard__NativeArray
*)var11
)->values
[0] = (val
*) var1
;
9173 ((struct instance_standard__NativeArray
*)var11
)->values
[1] = (val
*) var8
;
9175 ((void (*)(val
* self
, val
* p0
, long p1
))(var9
->class->vft
[COLOR_standard__array__Array__with_native
]))(var9
, var11
, var10
) /* with_native on <var9:Array[Object]>*/;
9179 var12
= ((val
* (*)(val
* self
))(var9
->class->vft
[COLOR_standard__string__Object__to_s
]))(var9
) /* to_s on <var9:Array[Object]>*/;
9182 nit___nit__AbstractCompilerVisitor___require_declaration(self
, var12
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
9189 var17
= standard___standard__NativeString___to_s_with_length(var15
, var16
);
9194 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
9195 var20
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
9196 if (unlikely(var20
== NULL
)) {
9197 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9198 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
9202 RET_LABEL19
:(void)0;
9206 var21
= nit___nit__MClass___nit__model_base__MEntity__c_name(var18
);
9213 var26
= standard___standard__NativeString___to_s_with_length(var24
, var25
);
9217 var27
= NEW_standard__Array(&type_standard__Array__standard__Object
);
9218 { /* var27 = array_instance Array[Object] */
9220 var29
= NEW_standard__NativeArray(var28
, &type_standard__NativeArray__standard__Object
);
9221 ((struct instance_standard__NativeArray
*)var29
)->values
[0] = (val
*) var14
;
9222 ((struct instance_standard__NativeArray
*)var29
)->values
[1] = (val
*) var21
;
9223 ((struct instance_standard__NativeArray
*)var29
)->values
[2] = (val
*) var23
;
9225 ((void (*)(val
* self
, val
* p0
, long p1
))(var27
->class->vft
[COLOR_standard__array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
9229 var30
= ((val
* (*)(val
* self
))(var27
->class->vft
[COLOR_standard__string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
9232 var31
= nit___nit__AbstractCompilerVisitor___new_expr(self
, var30
, var_mtype
);