1 #include "separate_erasure_compiler.sep.0.h"
2 /* method separate_erasure_compiler#ToolContext#opt_erasure for (self: ToolContext): OptionBool */
3 val
* separate_erasure_compiler__ToolContext__opt_erasure(val
* self
) {
4 val
* var
/* : OptionBool */;
5 val
* var1
/* : OptionBool */;
6 var1
= self
->attrs
[COLOR_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", "compiler/separate_erasure_compiler.nit", 22);
16 /* method separate_erasure_compiler#ToolContext#opt_erasure for (self: Object): OptionBool */
17 val
* VIRTUAL_separate_erasure_compiler__ToolContext__opt_erasure(val
* self
) {
18 val
* var
/* : OptionBool */;
19 val
* var1
/* : OptionBool */;
20 val
* var3
/* : OptionBool */;
21 { /* Inline separate_erasure_compiler#ToolContext#opt_erasure (self) on <self:Object(ToolContext)> */
22 var3
= self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___opt_erasure
].val
; /* _opt_erasure on <self:Object(ToolContext)> */
23 if (unlikely(var3
== NULL
)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_erasure");
25 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 22);
35 /* method separate_erasure_compiler#ToolContext#opt_rta for (self: ToolContext): OptionBool */
36 val
* separate_erasure_compiler__ToolContext__opt_rta(val
* self
) {
37 val
* var
/* : OptionBool */;
38 val
* var1
/* : OptionBool */;
39 var1
= self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___opt_rta
].val
; /* _opt_rta on <self:ToolContext> */
40 if (unlikely(var1
== NULL
)) {
41 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_rta");
42 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 24);
49 /* method separate_erasure_compiler#ToolContext#opt_rta for (self: Object): OptionBool */
50 val
* VIRTUAL_separate_erasure_compiler__ToolContext__opt_rta(val
* self
) {
51 val
* var
/* : OptionBool */;
52 val
* var1
/* : OptionBool */;
53 val
* var3
/* : OptionBool */;
54 { /* Inline separate_erasure_compiler#ToolContext#opt_rta (self) on <self:Object(ToolContext)> */
55 var3
= self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___opt_rta
].val
; /* _opt_rta on <self:Object(ToolContext)> */
56 if (unlikely(var3
== NULL
)) {
57 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_rta");
58 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 24);
68 /* method separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast for (self: ToolContext): OptionBool */
69 val
* separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast(val
* self
) {
70 val
* var
/* : OptionBool */;
71 val
* var1
/* : OptionBool */;
72 var1
= self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___opt_no_check_erasure_cast
].val
; /* _opt_no_check_erasure_cast on <self:ToolContext> */
73 if (unlikely(var1
== NULL
)) {
74 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast");
75 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 26);
82 /* method separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast for (self: Object): OptionBool */
83 val
* VIRTUAL_separate_erasure_compiler__ToolContext__opt_no_check_erasure_cast(val
* self
) {
84 val
* var
/* : OptionBool */;
85 val
* var1
/* : OptionBool */;
86 val
* var3
/* : OptionBool */;
87 { /* Inline separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast (self) on <self:Object(ToolContext)> */
88 var3
= self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___opt_no_check_erasure_cast
].val
; /* _opt_no_check_erasure_cast on <self:Object(ToolContext)> */
89 if (unlikely(var3
== NULL
)) {
90 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast");
91 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 26);
101 /* method separate_erasure_compiler#ToolContext#init for (self: ToolContext) */
102 void separate_erasure_compiler__ToolContext__init(val
* self
) {
103 val
* var
/* : OptionContext */;
104 val
* var2
/* : OptionContext */;
105 val
* var3
/* : OptionBool */;
106 val
* var5
/* : OptionBool */;
107 val
* var6
/* : OptionBool */;
108 val
* var8
/* : OptionBool */;
109 val
* var9
/* : OptionBool */;
110 val
* var11
/* : OptionBool */;
111 val
* var12
/* : Array[Option] */;
112 long var13
/* : Int */;
113 val
* var14
/* : NativeArray[Option] */;
115 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__ToolContext__init
]))(self
) /* init on <self:ToolContext>*/;
118 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
119 var2
= self
->attrs
[COLOR_toolcontext__ToolContext___option_context
].val
; /* _option_context on <self:ToolContext> */
120 if (unlikely(var2
== NULL
)) {
121 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
122 PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
130 { /* Inline separate_erasure_compiler#ToolContext#opt_erasure (self) on <self:ToolContext> */
131 var5
= self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___opt_erasure
].val
; /* _opt_erasure on <self:ToolContext> */
132 if (unlikely(var5
== NULL
)) {
133 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_erasure");
134 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 22);
142 { /* Inline separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast (self) on <self:ToolContext> */
143 var8
= self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___opt_no_check_erasure_cast
].val
; /* _opt_no_check_erasure_cast on <self:ToolContext> */
144 if (unlikely(var8
== NULL
)) {
145 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast");
146 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 26);
154 { /* Inline separate_erasure_compiler#ToolContext#opt_rta (self) on <self:ToolContext> */
155 var11
= self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___opt_rta
].val
; /* _opt_rta on <self:ToolContext> */
156 if (unlikely(var11
== NULL
)) {
157 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_rta");
158 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 24);
165 var12
= NEW_array__Array(&type_array__Arrayopts__Option
);
166 { /* var12 = array_instance Array[Option] */
168 var14
= NEW_array__NativeArray(var13
, &type_array__NativeArrayopts__Option
);
169 ((struct instance_array__NativeArray
*)var14
)->values
[0] = (val
*) var3
;
170 ((struct instance_array__NativeArray
*)var14
)->values
[1] = (val
*) var6
;
171 ((struct instance_array__NativeArray
*)var14
)->values
[2] = (val
*) var9
;
173 ((void (*)(val
*, val
*, long))(var12
->class->vft
[COLOR_array__Array__with_native
]))(var12
, var14
, var13
) /* with_native on <var12:Array[Option]>*/;
177 opts__OptionContext__add_option(var
, var12
); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
181 /* method separate_erasure_compiler#ToolContext#init for (self: Object) */
182 void VIRTUAL_separate_erasure_compiler__ToolContext__init(val
* self
) {
183 separate_erasure_compiler__ToolContext__init(self
); /* Direct call separate_erasure_compiler#ToolContext#init on <self:Object(ToolContext)>*/
186 /* method separate_erasure_compiler#ToolContext#process_options for (self: ToolContext, Sequence[String]) */
187 void separate_erasure_compiler__ToolContext__process_options(val
* self
, val
* p0
) {
188 val
* var_args
/* var args: Sequence[String] */;
189 val
* var
/* : OptionBool */;
190 val
* var2
/* : OptionBool */;
191 val
* var3
/* : nullable Object */;
192 val
* var5
/* : nullable Object */;
193 short int var6
/* : Bool */;
194 val
* var7
/* : OptionBool */;
195 val
* var9
/* : OptionBool */;
196 short int var10
/* : Bool */;
197 short int var12
/* : Bool */;
200 const struct type
* type_struct
;
201 const char* var_class_name
;
202 val
* var13
/* : nullable Object */;
205 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__ToolContext__process_options
]))(self
, p0
) /* process_options on <self:ToolContext>*/;
208 { /* Inline abstract_compiler#ToolContext#opt_no_check_all (self) on <self:ToolContext> */
209 var2
= self
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_all
].val
; /* _opt_no_check_all on <self:ToolContext> */
210 if (unlikely(var2
== NULL
)) {
211 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_all");
212 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 59);
220 { /* Inline opts#Option#value (var) on <var:OptionBool> */
221 var5
= var
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var:OptionBool> */
226 var6
= ((struct instance_kernel__Bool
*)var3
)->value
; /* autounbox from nullable Object to Bool */;
229 { /* Inline separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast (self) on <self:ToolContext> */
230 var9
= self
->attrs
[COLOR_separate_erasure_compiler__ToolContext___opt_no_check_erasure_cast
].val
; /* _opt_no_check_erasure_cast on <self:ToolContext> */
231 if (unlikely(var9
== NULL
)) {
232 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast");
233 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 26);
242 { /* Inline opts#Option#value= (var7,var10) on <var7:OptionBool> */
243 /* Covariant cast for argument 0 (value) <var10:Bool> isa VALUE */
244 /* <var10:Bool> isa VALUE */
245 type_struct
= var7
->type
->resolution_table
->types
[COLOR_opts__Option_VTVALUE
];
246 cltype
= type_struct
->color
;
247 idtype
= type_struct
->id
;
248 if(cltype
>= (&type_kernel__Bool
)->table_size
) {
251 var12
= (&type_kernel__Bool
)->type_table
[cltype
] == idtype
;
253 if (unlikely(!var12
)) {
254 var_class_name
= type_kernel__Bool
.name
;
255 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name
);
256 PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40);
259 var13
= BOX_kernel__Bool(var10
); /* autobox from Bool to nullable Object */
260 var7
->attrs
[COLOR_opts__Option___value
].val
= var13
; /* _value on <var7:OptionBool> */
268 /* method separate_erasure_compiler#ToolContext#process_options for (self: Object, Sequence[String]) */
269 void VIRTUAL_separate_erasure_compiler__ToolContext__process_options(val
* self
, val
* p0
) {
270 separate_erasure_compiler__ToolContext__process_options(self
, p0
); /* Direct call separate_erasure_compiler#ToolContext#process_options on <self:Object(ToolContext)>*/
273 /* method separate_erasure_compiler#ErasureCompilerPhase#process_mainmodule for (self: ErasureCompilerPhase, MModule, SequenceRead[MModule]) */
274 void separate_erasure_compiler__ErasureCompilerPhase__process_mainmodule(val
* self
, val
* p0
, val
* p1
) {
275 val
* var_mainmodule
/* var mainmodule: MModule */;
276 val
* var_given_mmodules
/* var given_mmodules: SequenceRead[MModule] */;
277 val
* var
/* : ToolContext */;
278 val
* var2
/* : ToolContext */;
279 val
* var3
/* : OptionBool */;
280 val
* var5
/* : OptionBool */;
281 val
* var6
/* : nullable Object */;
282 val
* var8
/* : nullable Object */;
283 short int var9
/* : Bool */;
284 short int var10
/* : Bool */;
285 val
* var11
/* : ToolContext */;
286 val
* var13
/* : ToolContext */;
287 val
* var14
/* : ModelBuilder */;
288 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
289 val
* var15
/* : null */;
290 val
* var_analysis
/* var analysis: nullable Object */;
291 val
* var16
/* : ToolContext */;
292 val
* var18
/* : ToolContext */;
293 val
* var19
/* : OptionBool */;
294 val
* var21
/* : OptionBool */;
295 val
* var22
/* : nullable Object */;
296 val
* var24
/* : nullable Object */;
297 short int var25
/* : Bool */;
298 val
* var26
/* : RapidTypeAnalysis */;
300 var_given_mmodules
= p1
;
302 { /* Inline phase#Phase#toolcontext (self) on <self:ErasureCompilerPhase> */
303 var2
= self
->attrs
[COLOR_phase__Phase___toolcontext
].val
; /* _toolcontext on <self:ErasureCompilerPhase> */
304 if (unlikely(var2
== NULL
)) {
305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
306 PRINT_ERROR(" (%s:%d)\n", "phase.nit", 162);
314 { /* Inline separate_erasure_compiler#ToolContext#opt_erasure (var) on <var:ToolContext> */
315 var5
= var
->attrs
[COLOR_separate_erasure_compiler__ToolContext___opt_erasure
].val
; /* _opt_erasure on <var:ToolContext> */
316 if (unlikely(var5
== NULL
)) {
317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_erasure");
318 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 22);
326 { /* Inline opts#Option#value (var3) on <var3:OptionBool> */
327 var8
= var3
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var3:OptionBool> */
332 var9
= ((struct instance_kernel__Bool
*)var6
)->value
; /* autounbox from nullable Object to Bool */;
339 { /* Inline phase#Phase#toolcontext (self) on <self:ErasureCompilerPhase> */
340 var13
= self
->attrs
[COLOR_phase__Phase___toolcontext
].val
; /* _toolcontext on <self:ErasureCompilerPhase> */
341 if (unlikely(var13
== NULL
)) {
342 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
343 PRINT_ERROR(" (%s:%d)\n", "phase.nit", 162);
351 var14
= modelbuilder__ToolContext__modelbuilder(var11
);
353 var_modelbuilder
= var14
;
355 var_analysis
= var15
;
357 { /* Inline phase#Phase#toolcontext (self) on <self:ErasureCompilerPhase> */
358 var18
= self
->attrs
[COLOR_phase__Phase___toolcontext
].val
; /* _toolcontext on <self:ErasureCompilerPhase> */
359 if (unlikely(var18
== NULL
)) {
360 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
361 PRINT_ERROR(" (%s:%d)\n", "phase.nit", 162);
369 { /* Inline separate_erasure_compiler#ToolContext#opt_rta (var16) on <var16:ToolContext> */
370 var21
= var16
->attrs
[COLOR_separate_erasure_compiler__ToolContext___opt_rta
].val
; /* _opt_rta on <var16:ToolContext> */
371 if (unlikely(var21
== NULL
)) {
372 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_rta");
373 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 24);
381 { /* Inline opts#Option#value (var19) on <var19:OptionBool> */
382 var24
= var19
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var19:OptionBool> */
387 var25
= ((struct instance_kernel__Bool
*)var22
)->value
; /* autounbox from nullable Object to Bool */;
390 var26
= rapid_type_analysis__ModelBuilder__do_rapid_type_analysis(var_modelbuilder
, var_mainmodule
);
392 var_analysis
= var26
;
396 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>*/
400 /* method separate_erasure_compiler#ErasureCompilerPhase#process_mainmodule for (self: Object, MModule, SequenceRead[MModule]) */
401 void VIRTUAL_separate_erasure_compiler__ErasureCompilerPhase__process_mainmodule(val
* self
, val
* p0
, val
* p1
) {
402 separate_erasure_compiler__ErasureCompilerPhase__process_mainmodule(self
, p0
, p1
); /* Direct call separate_erasure_compiler#ErasureCompilerPhase#process_mainmodule on <self:Object(ErasureCompilerPhase)>*/
405 /* method separate_erasure_compiler#ModelBuilder#run_separate_erasure_compiler for (self: ModelBuilder, MModule, nullable RapidTypeAnalysis) */
406 void separate_erasure_compiler__ModelBuilder__run_separate_erasure_compiler(val
* self
, val
* p0
, val
* p1
) {
407 val
* var_mainmodule
/* var mainmodule: MModule */;
408 val
* var_runtime_type_analysis
/* var runtime_type_analysis: nullable RapidTypeAnalysis */;
409 long var
/* : Int */;
410 long var2
/* : Int for extern */;
411 long var_time0
/* var time0: Int */;
412 val
* var3
/* : ToolContext */;
413 val
* var5
/* : ToolContext */;
415 val
* var6
/* : String */;
416 char* var7
/* : NativeString */;
417 long var8
/* : Int */;
418 val
* var9
/* : FlatString */;
419 long var10
/* : Int */;
420 val
* var11
/* : SeparateErasureCompiler */;
421 val
* var_compiler
/* var compiler: SeparateErasureCompiler */;
422 val
* var12
/* : ToolContext */;
423 val
* var14
/* : ToolContext */;
424 static val
* varonce15
;
425 val
* var16
/* : String */;
426 char* var17
/* : NativeString */;
427 long var18
/* : Int */;
428 val
* var19
/* : FlatString */;
429 long var20
/* : Int */;
430 val
* var21
/* : String */;
431 val
* var23
/* : String */;
432 static val
* varonce24
;
433 val
* var25
/* : String */;
434 char* var26
/* : NativeString */;
435 long var27
/* : Int */;
436 val
* var28
/* : FlatString */;
437 val
* var29
/* : Array[Object] */;
438 long var30
/* : Int */;
439 val
* var31
/* : NativeArray[Object] */;
440 val
* var32
/* : String */;
441 val
* var33
/* : CodeFile */;
442 val
* var34
/* : POSetElement[MModule] */;
443 val
* var36
/* : POSetElement[MModule] */;
444 val
* var37
/* : Collection[Object] */;
445 val
* var_
/* var : Collection[MModule] */;
446 val
* var38
/* : Iterator[nullable Object] */;
447 val
* var_39
/* var : Iterator[MModule] */;
448 short int var40
/* : Bool */;
449 val
* var41
/* : nullable Object */;
450 val
* var_m
/* var m: MModule */;
451 val
* var42
/* : Array[MClass] */;
452 val
* var44
/* : Array[MClass] */;
453 val
* var_45
/* var : Array[MClass] */;
454 val
* var46
/* : ArrayIterator[nullable Object] */;
455 val
* var_47
/* var : ArrayIterator[MClass] */;
456 short int var48
/* : Bool */;
457 val
* var49
/* : nullable Object */;
458 val
* var_mclass
/* var mclass: MClass */;
459 val
* var53
/* : Map[MVirtualTypeProp, Int] */;
460 val
* var55
/* : Map[MVirtualTypeProp, Int] */;
461 val
* var56
/* : String */;
462 val
* var58
/* : String */;
463 static val
* varonce59
;
464 val
* var60
/* : String */;
465 char* var61
/* : NativeString */;
466 long var62
/* : Int */;
467 val
* var63
/* : FlatString */;
468 val
* var64
/* : Array[Object] */;
469 long var65
/* : Int */;
470 val
* var66
/* : NativeArray[Object] */;
471 val
* var67
/* : String */;
472 val
* var68
/* : CodeFile */;
473 val
* var69
/* : POSetElement[MModule] */;
474 val
* var71
/* : POSetElement[MModule] */;
475 val
* var72
/* : Collection[Object] */;
476 val
* var_73
/* var : Collection[MModule] */;
477 val
* var74
/* : Iterator[nullable Object] */;
478 val
* var_75
/* var : Iterator[MModule] */;
479 short int var76
/* : Bool */;
480 val
* var77
/* : nullable Object */;
481 val
* var_m78
/* var m: MModule */;
482 val
* var79
/* : ToolContext */;
483 val
* var81
/* : ToolContext */;
484 static val
* varonce82
;
485 val
* var83
/* : String */;
486 char* var84
/* : NativeString */;
487 long var85
/* : Int */;
488 val
* var86
/* : FlatString */;
489 val
* var87
/* : Array[Object] */;
490 long var88
/* : Int */;
491 val
* var89
/* : NativeArray[Object] */;
492 val
* var90
/* : String */;
493 long var91
/* : Int */;
494 val
* var92
/* : String */;
495 val
* var94
/* : String */;
496 static val
* varonce95
;
497 val
* var96
/* : String */;
498 char* var97
/* : NativeString */;
499 long var98
/* : Int */;
500 val
* var99
/* : FlatString */;
501 val
* var100
/* : Array[Object] */;
502 long var101
/* : Int */;
503 val
* var102
/* : NativeArray[Object] */;
504 val
* var103
/* : String */;
505 val
* var104
/* : CodeFile */;
506 long var107
/* : Int */;
507 long var109
/* : Int for extern */;
508 long var_time1
/* var time1: Int */;
509 val
* var110
/* : ToolContext */;
510 val
* var112
/* : ToolContext */;
511 static val
* varonce113
;
512 val
* var114
/* : String */;
513 char* var115
/* : NativeString */;
514 long var116
/* : Int */;
515 val
* var117
/* : FlatString */;
516 long var118
/* : Int */;
517 short int var120
/* : Bool */;
520 const char* var_class_name
;
521 long var121
/* : Int */;
522 static val
* varonce122
;
523 val
* var123
/* : String */;
524 char* var124
/* : NativeString */;
525 long var125
/* : Int */;
526 val
* var126
/* : FlatString */;
527 val
* var127
/* : Array[Object] */;
528 long var128
/* : Int */;
529 val
* var129
/* : NativeArray[Object] */;
530 val
* var130
/* : Object */;
531 val
* var131
/* : String */;
532 long var132
/* : Int */;
534 var_runtime_type_analysis
= p1
;
536 { /* Inline time#Object#get_time (self) on <self:ModelBuilder> */
537 var2
= kernel_Any_Any_get_time_0(self
);
545 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
546 var5
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
547 if (unlikely(var5
== NULL
)) {
548 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
549 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
559 var7
= "*** GENERATING C ***";
561 var9
= string__NativeString__to_s_with_length(var7
, var8
);
567 toolcontext__ToolContext__info(var3
, var6
, var10
); /* Direct call toolcontext#ToolContext#info on <var3:ToolContext>*/
569 var11
= NEW_separate_erasure_compiler__SeparateErasureCompiler(&type_separate_erasure_compiler__SeparateErasureCompiler
);
571 separate_erasure_compiler__SeparateErasureCompiler__init(var11
, var_mainmodule
, self
, var_runtime_type_analysis
); /* Direct call separate_erasure_compiler#SeparateErasureCompiler#init on <var11:SeparateErasureCompiler>*/
573 var_compiler
= var11
;
575 abstract_compiler__AbstractCompiler__compile_header(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#compile_header on <var_compiler:SeparateErasureCompiler>*/
578 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
579 var14
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
580 if (unlikely(var14
== NULL
)) {
581 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
582 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
592 var17
= "Property coloring";
594 var19
= string__NativeString__to_s_with_length(var17
, var18
);
600 toolcontext__ToolContext__info(var12
, var16
, var20
); /* Direct call toolcontext#ToolContext#info on <var12:ToolContext>*/
603 { /* Inline mmodule#MModule#name (var_mainmodule) on <var_mainmodule:MModule> */
604 var23
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var_mainmodule:MModule> */
605 if (unlikely(var23
== NULL
)) {
606 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
607 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78);
619 var28
= string__NativeString__to_s_with_length(var26
, var27
);
623 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
624 { /* var29 = array_instance Array[Object] */
626 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
627 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var21
;
628 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var25
;
630 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
634 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
637 var33
= abstract_compiler__AbstractCompiler__new_file(var_compiler
, var32
);
640 separate_compiler__SeparateCompiler__do_property_coloring(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#do_property_coloring on <var_compiler:SeparateErasureCompiler>*/
643 { /* Inline mmodule#MModule#in_importation (var_mainmodule) on <var_mainmodule:MModule> */
644 var36
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var_mainmodule:MModule> */
645 if (unlikely(var36
== NULL
)) {
646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
647 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
655 var37
= poset__POSetElement__greaters(var34
);
659 var38
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Collection[MModule]>*/;
664 var40
= ((short int (*)(val
*))(var_39
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_39
) /* is_ok on <var_39:Iterator[MModule]>*/;
668 var41
= ((val
* (*)(val
*))(var_39
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_39
) /* item on <var_39:Iterator[MModule]>*/;
672 { /* Inline model#MModule#intro_mclasses (var_m) on <var_m:MModule> */
673 var44
= var_m
->attrs
[COLOR_model__MModule___intro_mclasses
].val
; /* _intro_mclasses on <var_m:MModule> */
674 if (unlikely(var44
== NULL
)) {
675 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclasses");
676 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 136);
685 var46
= array__AbstractArrayRead__iterator(var_45
);
690 var48
= array__ArrayIterator__is_ok(var_47
);
694 var49
= array__ArrayIterator__item(var_47
);
698 separate_erasure_compiler__SeparateErasureCompiler__compile_class_to_c(var_compiler
, var_mclass
); /* Direct call separate_erasure_compiler#SeparateErasureCompiler#compile_class_to_c on <var_compiler:SeparateErasureCompiler>*/
701 array__ArrayIterator__next(var_47
); /* Direct call array#ArrayIterator#next on <var_47:ArrayIterator[MClass]>*/
707 BREAK_label
: (void)0;
709 { /* Inline abstract_collection#Iterator#finish (var_47) on <var_47:ArrayIterator[MClass]> */
714 ((void (*)(val
*))(var_39
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_39
) /* next on <var_39:Iterator[MModule]>*/;
720 BREAK_label51
: (void)0;
722 { /* Inline abstract_collection#Iterator#finish (var_39) on <var_39:Iterator[MModule]> */
727 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors (var_compiler) on <var_compiler:SeparateErasureCompiler> */
728 var55
= var_compiler
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <var_compiler:SeparateErasureCompiler> */
729 if (unlikely(var55
== NULL
)) {
730 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
731 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 106);
739 separate_compiler__SeparateCompiler__compile_color_consts(var_compiler
, var53
); /* Direct call separate_compiler#SeparateCompiler#compile_color_consts on <var_compiler:SeparateErasureCompiler>*/
742 { /* Inline mmodule#MModule#name (var_mainmodule) on <var_mainmodule:MModule> */
743 var58
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var_mainmodule:MModule> */
744 if (unlikely(var58
== NULL
)) {
745 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
746 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78);
758 var63
= string__NativeString__to_s_with_length(var61
, var62
);
762 var64
= NEW_array__Array(&type_array__Arraykernel__Object
);
763 { /* var64 = array_instance Array[Object] */
765 var66
= NEW_array__NativeArray(var65
, &type_array__NativeArraykernel__Object
);
766 ((struct instance_array__NativeArray
*)var66
)->values
[0] = (val
*) var56
;
767 ((struct instance_array__NativeArray
*)var66
)->values
[1] = (val
*) var60
;
769 ((void (*)(val
*, val
*, long))(var64
->class->vft
[COLOR_array__Array__with_native
]))(var64
, var66
, var65
) /* with_native on <var64:Array[Object]>*/;
773 var67
= ((val
* (*)(val
*))(var64
->class->vft
[COLOR_string__Object__to_s
]))(var64
) /* to_s on <var64:Array[Object]>*/;
776 var68
= abstract_compiler__AbstractCompiler__new_file(var_compiler
, var67
);
779 abstract_compiler__AbstractCompiler__compile_nitni_global_ref_functions(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#compile_nitni_global_ref_functions on <var_compiler:SeparateErasureCompiler>*/
782 abstract_compiler__AbstractCompiler__compile_main_function(var_compiler
); /* Direct call abstract_compiler#AbstractCompiler#compile_main_function on <var_compiler:SeparateErasureCompiler>*/
785 { /* Inline mmodule#MModule#in_importation (var_mainmodule) on <var_mainmodule:MModule> */
786 var71
= var_mainmodule
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var_mainmodule:MModule> */
787 if (unlikely(var71
== NULL
)) {
788 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
789 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
797 var72
= poset__POSetElement__greaters(var69
);
801 var74
= ((val
* (*)(val
*))(var_73
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_73
) /* iterator on <var_73:Collection[MModule]>*/;
806 var76
= ((short int (*)(val
*))(var_75
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_75
) /* is_ok on <var_75:Iterator[MModule]>*/;
810 var77
= ((val
* (*)(val
*))(var_75
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_75
) /* item on <var_75:Iterator[MModule]>*/;
814 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
815 var81
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
816 if (unlikely(var81
== NULL
)) {
817 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
818 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
828 var84
= "Generate C for module ";
830 var86
= string__NativeString__to_s_with_length(var84
, var85
);
834 var87
= NEW_array__Array(&type_array__Arraykernel__Object
);
835 { /* var87 = array_instance Array[Object] */
837 var89
= NEW_array__NativeArray(var88
, &type_array__NativeArraykernel__Object
);
838 ((struct instance_array__NativeArray
*)var89
)->values
[0] = (val
*) var83
;
839 ((struct instance_array__NativeArray
*)var89
)->values
[1] = (val
*) var_m78
;
841 ((void (*)(val
*, val
*, long))(var87
->class->vft
[COLOR_array__Array__with_native
]))(var87
, var89
, var88
) /* with_native on <var87:Array[Object]>*/;
845 var90
= ((val
* (*)(val
*))(var87
->class->vft
[COLOR_string__Object__to_s
]))(var87
) /* to_s on <var87:Array[Object]>*/;
849 toolcontext__ToolContext__info(var79
, var90
, var91
); /* Direct call toolcontext#ToolContext#info on <var79:ToolContext>*/
852 { /* Inline mmodule#MModule#name (var_m78) on <var_m78:MModule> */
853 var94
= var_m78
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var_m78:MModule> */
854 if (unlikely(var94
== NULL
)) {
855 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
856 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78);
868 var99
= string__NativeString__to_s_with_length(var97
, var98
);
872 var100
= NEW_array__Array(&type_array__Arraykernel__Object
);
873 { /* var100 = array_instance Array[Object] */
875 var102
= NEW_array__NativeArray(var101
, &type_array__NativeArraykernel__Object
);
876 ((struct instance_array__NativeArray
*)var102
)->values
[0] = (val
*) var92
;
877 ((struct instance_array__NativeArray
*)var102
)->values
[1] = (val
*) var96
;
879 ((void (*)(val
*, val
*, long))(var100
->class->vft
[COLOR_array__Array__with_native
]))(var100
, var102
, var101
) /* with_native on <var100:Array[Object]>*/;
883 var103
= ((val
* (*)(val
*))(var100
->class->vft
[COLOR_string__Object__to_s
]))(var100
) /* to_s on <var100:Array[Object]>*/;
886 var104
= abstract_compiler__AbstractCompiler__new_file(var_compiler
, var103
);
889 separate_compiler__SeparateCompiler__compile_module_to_c(var_compiler
, var_m78
); /* Direct call separate_compiler#SeparateCompiler#compile_module_to_c on <var_compiler:SeparateErasureCompiler>*/
892 ((void (*)(val
*))(var_75
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_75
) /* next on <var_75:Iterator[MModule]>*/;
898 BREAK_label105
: (void)0;
900 { /* Inline abstract_collection#Iterator#finish (var_75) on <var_75:Iterator[MModule]> */
901 RET_LABEL106
:(void)0;
905 separate_compiler__SeparateCompiler__display_stats(var_compiler
); /* Direct call separate_compiler#SeparateCompiler#display_stats on <var_compiler:SeparateErasureCompiler>*/
908 { /* Inline time#Object#get_time (self) on <self:ModelBuilder> */
909 var109
= kernel_Any_Any_get_time_0(self
);
912 RET_LABEL108
:(void)0;
917 { /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
918 var112
= self
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
919 if (unlikely(var112
== NULL
)) {
920 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
921 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
925 RET_LABEL111
:(void)0;
931 var115
= "*** END GENERATING C: ";
933 var117
= string__NativeString__to_s_with_length(var115
, var116
);
938 { /* Inline kernel#Int#- (var_time1,var_time0) on <var_time1:Int> */
939 /* Covariant cast for argument 0 (i) <var_time0:Int> isa OTHER */
940 /* <var_time0:Int> isa OTHER */
941 var120
= 1; /* easy <var_time0:Int> isa OTHER*/
942 if (unlikely(!var120
)) {
943 var_class_name
= type_kernel__Int
.name
;
944 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
945 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
948 var121
= var_time1
- var_time0
;
951 RET_LABEL119
:(void)0;
959 var126
= string__NativeString__to_s_with_length(var124
, var125
);
963 var127
= NEW_array__Array(&type_array__Arraykernel__Object
);
964 { /* var127 = array_instance Array[Object] */
966 var129
= NEW_array__NativeArray(var128
, &type_array__NativeArraykernel__Object
);
967 ((struct instance_array__NativeArray
*)var129
)->values
[0] = (val
*) var114
;
968 var130
= BOX_kernel__Int(var118
); /* autobox from Int to Object */
969 ((struct instance_array__NativeArray
*)var129
)->values
[1] = (val
*) var130
;
970 ((struct instance_array__NativeArray
*)var129
)->values
[2] = (val
*) var123
;
972 ((void (*)(val
*, val
*, long))(var127
->class->vft
[COLOR_array__Array__with_native
]))(var127
, var129
, var128
) /* with_native on <var127:Array[Object]>*/;
976 var131
= ((val
* (*)(val
*))(var127
->class->vft
[COLOR_string__Object__to_s
]))(var127
) /* to_s on <var127:Array[Object]>*/;
980 toolcontext__ToolContext__info(var110
, var131
, var132
); /* Direct call toolcontext#ToolContext#info on <var110:ToolContext>*/
983 abstract_compiler__ModelBuilder__write_and_make(self
, var_compiler
); /* Direct call abstract_compiler#ModelBuilder#write_and_make on <self:ModelBuilder>*/
987 /* method separate_erasure_compiler#ModelBuilder#run_separate_erasure_compiler for (self: Object, MModule, nullable RapidTypeAnalysis) */
988 void VIRTUAL_separate_erasure_compiler__ModelBuilder__run_separate_erasure_compiler(val
* self
, val
* p0
, val
* p1
) {
989 separate_erasure_compiler__ModelBuilder__run_separate_erasure_compiler(self
, p0
, p1
); /* Direct call separate_erasure_compiler#ModelBuilder#run_separate_erasure_compiler on <self:Object(ModelBuilder)>*/
992 /* method separate_erasure_compiler#SeparateErasureCompiler#class_ids for (self: SeparateErasureCompiler): Map[MClass, Int] */
993 val
* separate_erasure_compiler__SeparateErasureCompiler__class_ids(val
* self
) {
994 val
* var
/* : Map[MClass, Int] */;
995 val
* var1
/* : Map[MClass, Int] */;
996 var1
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
; /* _class_ids on <self:SeparateErasureCompiler> */
997 if (unlikely(var1
== NULL
)) {
998 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids");
999 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 104);
1006 /* method separate_erasure_compiler#SeparateErasureCompiler#class_ids for (self: Object): Map[MClass, Int] */
1007 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_ids(val
* self
) {
1008 val
* var
/* : Map[MClass, Int] */;
1009 val
* var1
/* : Map[MClass, Int] */;
1010 val
* var3
/* : Map[MClass, Int] */;
1011 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids (self) on <self:Object(SeparateErasureCompiler)> */
1012 var3
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
; /* _class_ids on <self:Object(SeparateErasureCompiler)> */
1013 if (unlikely(var3
== NULL
)) {
1014 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids");
1015 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 104);
1025 /* method separate_erasure_compiler#SeparateErasureCompiler#class_ids= for (self: SeparateErasureCompiler, Map[MClass, Int]) */
1026 void separate_erasure_compiler__SeparateErasureCompiler__class_ids_61d(val
* self
, val
* p0
) {
1027 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
= p0
; /* _class_ids on <self:SeparateErasureCompiler> */
1030 /* method separate_erasure_compiler#SeparateErasureCompiler#class_ids= for (self: Object, Map[MClass, Int]) */
1031 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_ids_61d(val
* self
, val
* p0
) {
1032 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids= (self,p0) on <self:Object(SeparateErasureCompiler)> */
1033 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
= p0
; /* _class_ids on <self:Object(SeparateErasureCompiler)> */
1038 /* method separate_erasure_compiler#SeparateErasureCompiler#class_colors for (self: SeparateErasureCompiler): Map[MClass, Int] */
1039 val
* separate_erasure_compiler__SeparateErasureCompiler__class_colors(val
* self
) {
1040 val
* var
/* : Map[MClass, Int] */;
1041 val
* var1
/* : Map[MClass, Int] */;
1042 var1
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
; /* _class_colors on <self:SeparateErasureCompiler> */
1043 if (unlikely(var1
== NULL
)) {
1044 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors");
1045 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 105);
1052 /* method separate_erasure_compiler#SeparateErasureCompiler#class_colors for (self: Object): Map[MClass, Int] */
1053 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_colors(val
* self
) {
1054 val
* var
/* : Map[MClass, Int] */;
1055 val
* var1
/* : Map[MClass, Int] */;
1056 val
* var3
/* : Map[MClass, Int] */;
1057 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_colors (self) on <self:Object(SeparateErasureCompiler)> */
1058 var3
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
; /* _class_colors on <self:Object(SeparateErasureCompiler)> */
1059 if (unlikely(var3
== NULL
)) {
1060 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors");
1061 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 105);
1071 /* method separate_erasure_compiler#SeparateErasureCompiler#class_colors= for (self: SeparateErasureCompiler, Map[MClass, Int]) */
1072 void separate_erasure_compiler__SeparateErasureCompiler__class_colors_61d(val
* self
, val
* p0
) {
1073 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
= p0
; /* _class_colors on <self:SeparateErasureCompiler> */
1076 /* method separate_erasure_compiler#SeparateErasureCompiler#class_colors= for (self: Object, Map[MClass, Int]) */
1077 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_colors_61d(val
* self
, val
* p0
) {
1078 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_colors= (self,p0) on <self:Object(SeparateErasureCompiler)> */
1079 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
= p0
; /* _class_colors on <self:Object(SeparateErasureCompiler)> */
1084 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_colors for (self: SeparateErasureCompiler): Map[MVirtualTypeProp, Int] */
1085 val
* separate_erasure_compiler__SeparateErasureCompiler__vt_colors(val
* self
) {
1086 val
* var
/* : Map[MVirtualTypeProp, Int] */;
1087 val
* var1
/* : Map[MVirtualTypeProp, Int] */;
1088 var1
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:SeparateErasureCompiler> */
1089 if (unlikely(var1
== NULL
)) {
1090 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
1091 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 106);
1098 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_colors for (self: Object): Map[MVirtualTypeProp, Int] */
1099 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__vt_colors(val
* self
) {
1100 val
* var
/* : Map[MVirtualTypeProp, Int] */;
1101 val
* var1
/* : Map[MVirtualTypeProp, Int] */;
1102 val
* var3
/* : Map[MVirtualTypeProp, Int] */;
1103 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors (self) on <self:Object(SeparateErasureCompiler)> */
1104 var3
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:Object(SeparateErasureCompiler)> */
1105 if (unlikely(var3
== NULL
)) {
1106 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
1107 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 106);
1117 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_colors= for (self: SeparateErasureCompiler, Map[MVirtualTypeProp, Int]) */
1118 void separate_erasure_compiler__SeparateErasureCompiler__vt_colors_61d(val
* self
, val
* p0
) {
1119 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
= p0
; /* _vt_colors on <self:SeparateErasureCompiler> */
1122 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_colors= for (self: Object, Map[MVirtualTypeProp, Int]) */
1123 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__vt_colors_61d(val
* self
, val
* p0
) {
1124 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors= (self,p0) on <self:Object(SeparateErasureCompiler)> */
1125 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
= p0
; /* _vt_colors on <self:Object(SeparateErasureCompiler)> */
1130 /* method separate_erasure_compiler#SeparateErasureCompiler#init for (self: SeparateErasureCompiler, MModule, ModelBuilder, nullable RapidTypeAnalysis) */
1131 void separate_erasure_compiler__SeparateErasureCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1132 val
* var_mainmodule
/* var mainmodule: MModule */;
1133 val
* var_mmbuilder
/* var mmbuilder: ModelBuilder */;
1134 val
* var_runtime_type_analysis
/* var runtime_type_analysis: nullable RapidTypeAnalysis */;
1135 val
* var
/* : POSet[MClass] */;
1136 val
* var_poset
/* var poset: POSet[MClass] */;
1137 val
* var1
/* : HashSet[MClass] */;
1138 val
* var_mclasses
/* var mclasses: HashSet[MClass] */;
1139 val
* var2
/* : POSetColorer[MClass] */;
1140 val
* var_colorer
/* var colorer: POSetColorer[MClass] */;
1141 val
* var3
/* : Map[Object, Int] */;
1142 val
* var5
/* : Map[Object, Int] */;
1143 val
* var7
/* : Map[MClass, Array[nullable MClass]] */;
1144 val
* var9
/* : HashMap[MClass, Set[MVirtualTypeProp]] */;
1145 val
* var_vts
/* var vts: HashMap[MClass, Set[MVirtualTypeProp]] */;
1146 val
* var_
/* var : HashSet[MClass] */;
1147 val
* var10
/* : Iterator[Object] */;
1148 val
* var_11
/* var : Iterator[MClass] */;
1149 short int var12
/* : Bool */;
1150 val
* var13
/* : nullable Object */;
1151 val
* var_mclass
/* var mclass: MClass */;
1152 val
* var14
/* : HashSet[MVirtualTypeProp] */;
1153 val
* var15
/* : MModule */;
1154 val
* var17
/* : MModule */;
1155 val
* var18
/* : Set[MProperty] */;
1156 val
* var_19
/* var : Set[MProperty] */;
1157 val
* var20
/* : Iterator[nullable Object] */;
1158 val
* var_21
/* var : Iterator[MProperty] */;
1159 short int var22
/* : Bool */;
1160 val
* var23
/* : nullable Object */;
1161 val
* var_mprop
/* var mprop: MProperty */;
1162 short int var24
/* : Bool */;
1165 val
* var25
/* : nullable Object */;
1166 val
* var29
/* : POSetBucketsColorer[MClass, MVirtualTypeProp] */;
1167 val
* var30
/* : Map[Object, Set[Object]] */;
1168 val
* var_vt_colorer
/* var vt_colorer: POSetBucketsColorer[MClass, MVirtualTypeProp] */;
1169 val
* var31
/* : Map[Object, Int] */;
1170 val
* var33
/* : Map[MClass, Array[nullable MPropDef]] */;
1171 var_mainmodule
= p0
;
1173 var_runtime_type_analysis
= p2
;
1175 separate_compiler__SeparateCompiler__init(self
, p0
, p1
, p2
); /* Direct call separate_compiler#SeparateCompiler#init on <self:SeparateErasureCompiler>*/
1178 var
= model__MModule__flatten_mclass_hierarchy(var_mainmodule
);
1181 var1
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass
);
1183 hash_collection__HashSet__from(var1
, var_poset
); /* Direct call hash_collection#HashSet#from on <var1:HashSet[MClass]>*/
1185 var_mclasses
= var1
;
1186 var2
= NEW_coloring__POSetColorer(&type_coloring__POSetColorermodel__MClass
);
1188 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:POSetColorer[MClass]>*/;
1192 coloring__POSetColorer__colorize(var_colorer
, var_poset
); /* Direct call coloring#POSetColorer#colorize on <var_colorer:POSetColorer[MClass]>*/
1195 var3
= coloring__POSetColorer__ids(var_colorer
);
1198 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids= (self,var3) on <self:SeparateErasureCompiler> */
1199 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
= var3
; /* _class_ids on <self:SeparateErasureCompiler> */
1204 var5
= coloring__POSetColorer__colors(var_colorer
);
1207 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_colors= (self,var5) on <self:SeparateErasureCompiler> */
1208 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
= var5
; /* _class_colors on <self:SeparateErasureCompiler> */
1213 var7
= separate_erasure_compiler__SeparateErasureCompiler__build_class_typing_tables(self
, var_mclasses
);
1216 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables= (self,var7) on <self:SeparateErasureCompiler> */
1217 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
= var7
; /* _class_tables on <self:SeparateErasureCompiler> */
1221 var9
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp
);
1223 ((void (*)(val
*))(var9
->class->vft
[COLOR_kernel__Object__init
]))(var9
) /* init on <var9:HashMap[MClass, Set[MVirtualTypeProp]]>*/;
1226 var_
= var_mclasses
;
1228 var10
= hash_collection__HashSet__iterator(var_
);
1233 var12
= ((short int (*)(val
*))(var_11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_11
) /* is_ok on <var_11:Iterator[MClass]>*/;
1237 var13
= ((val
* (*)(val
*))(var_11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_11
) /* item on <var_11:Iterator[MClass]>*/;
1240 var14
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MVirtualTypeProp
);
1242 ((void (*)(val
*))(var14
->class->vft
[COLOR_kernel__Object__init
]))(var14
) /* init on <var14:HashSet[MVirtualTypeProp]>*/;
1245 hash_collection__HashMap___91d_93d_61d(var_vts
, var_mclass
, var14
); /* Direct call hash_collection#HashMap#[]= on <var_vts:HashMap[MClass, Set[MVirtualTypeProp]]>*/
1248 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1249 var17
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1250 if (unlikely(var17
== NULL
)) {
1251 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1252 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
1256 RET_LABEL16
:(void)0;
1260 var18
= abstract_compiler__MModule__properties(var15
, var_mclass
);
1264 var20
= ((val
* (*)(val
*))(var_19
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_19
) /* iterator on <var_19:Set[MProperty]>*/;
1269 var22
= ((short int (*)(val
*))(var_21
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_21
) /* is_ok on <var_21:Iterator[MProperty]>*/;
1273 var23
= ((val
* (*)(val
*))(var_21
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_21
) /* item on <var_21:Iterator[MProperty]>*/;
1276 /* <var_mprop:MProperty> isa MVirtualTypeProp */
1277 cltype
= type_model__MVirtualTypeProp
.color
;
1278 idtype
= type_model__MVirtualTypeProp
.id
;
1279 if(cltype
>= var_mprop
->type
->table_size
) {
1282 var24
= var_mprop
->type
->type_table
[cltype
] == idtype
;
1286 var25
= hash_collection__HashMap___91d_93d(var_vts
, var_mclass
);
1289 ((void (*)(val
*, val
*))(var25
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var25
, var_mprop
) /* add on <var25:nullable Object(Set[MVirtualTypeProp])>*/;
1294 ((void (*)(val
*))(var_21
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_21
) /* next on <var_21:Iterator[MProperty]>*/;
1300 BREAK_label
: (void)0;
1302 { /* Inline abstract_collection#Iterator#finish (var_21) on <var_21:Iterator[MProperty]> */
1303 RET_LABEL26
:(void)0;
1307 ((void (*)(val
*))(var_11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_11
) /* next on <var_11:Iterator[MClass]>*/;
1313 BREAK_label27
: (void)0;
1315 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:Iterator[MClass]> */
1316 RET_LABEL28
:(void)0;
1319 var29
= NEW_coloring__POSetBucketsColorer(&type_coloring__POSetBucketsColorermodel__MClassmodel__MVirtualTypeProp
);
1321 var30
= coloring__POSetColorer__conflicts(var_colorer
);
1324 coloring__POSetBucketsColorer__init(var29
, var_poset
, var30
); /* Direct call coloring#POSetBucketsColorer#init on <var29:POSetBucketsColorer[MClass, MVirtualTypeProp]>*/
1326 var_vt_colorer
= var29
;
1328 var31
= coloring__POSetBucketsColorer__colorize(var_vt_colorer
, var_vts
);
1331 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors= (self,var31) on <self:SeparateErasureCompiler> */
1332 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
= var31
; /* _vt_colors on <self:SeparateErasureCompiler> */
1333 RET_LABEL32
:(void)0;
1337 var33
= separate_erasure_compiler__SeparateErasureCompiler__build_vt_tables(self
, var_mclasses
);
1340 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables= (self,var33) on <self:SeparateErasureCompiler> */
1341 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
= var33
; /* _vt_tables on <self:SeparateErasureCompiler> */
1342 RET_LABEL34
:(void)0;
1347 /* method separate_erasure_compiler#SeparateErasureCompiler#init for (self: Object, MModule, ModelBuilder, nullable RapidTypeAnalysis) */
1348 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1349 separate_erasure_compiler__SeparateErasureCompiler__init(self
, p0
, p1
, p2
); /* Direct call separate_erasure_compiler#SeparateErasureCompiler#init on <self:Object(SeparateErasureCompiler)>*/
1352 /* method separate_erasure_compiler#SeparateErasureCompiler#build_vt_tables for (self: SeparateErasureCompiler, Set[MClass]): Map[MClass, Array[nullable MPropDef]] */
1353 val
* separate_erasure_compiler__SeparateErasureCompiler__build_vt_tables(val
* self
, val
* p0
) {
1354 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
1355 val
* var_mclasses
/* var mclasses: Set[MClass] */;
1356 val
* var1
/* : HashMap[MClass, Array[nullable MPropDef]] */;
1357 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MPropDef]] */;
1358 val
* var_
/* var : Set[MClass] */;
1359 val
* var2
/* : Iterator[nullable Object] */;
1360 val
* var_3
/* var : Iterator[MClass] */;
1361 short int var4
/* : Bool */;
1362 val
* var5
/* : nullable Object */;
1363 val
* var_mclass
/* var mclass: MClass */;
1364 val
* var6
/* : Array[nullable MPropDef] */;
1365 val
* var_table
/* var table: Array[nullable MPropDef] */;
1366 val
* var7
/* : Array[MClass] */;
1367 val
* var_parents
/* var parents: Array[MClass] */;
1368 val
* var8
/* : MModule */;
1369 val
* var10
/* : MModule */;
1370 val
* var11
/* : POSet[MClass] */;
1371 short int var12
/* : Bool */;
1372 val
* var13
/* : MModule */;
1373 val
* var15
/* : MModule */;
1374 val
* var16
/* : POSetElement[MClass] */;
1375 val
* var17
/* : Collection[Object] */;
1376 val
* var18
/* : Array[nullable Object] */;
1377 val
* var19
/* : MModule */;
1378 val
* var21
/* : MModule */;
1379 val
* var_22
/* var : Array[MClass] */;
1380 val
* var23
/* : ArrayIterator[nullable Object] */;
1381 val
* var_24
/* var : ArrayIterator[MClass] */;
1382 short int var25
/* : Bool */;
1383 val
* var26
/* : nullable Object */;
1384 val
* var_parent
/* var parent: MClass */;
1385 short int var27
/* : Bool */;
1386 short int var28
/* : Bool */;
1387 val
* var_other
/* var other: nullable Object */;
1388 short int var30
/* : Bool */;
1389 short int var32
/* : Bool */;
1390 val
* var33
/* : MModule */;
1391 val
* var35
/* : MModule */;
1392 val
* var36
/* : Set[MProperty] */;
1393 val
* var_37
/* var : Set[MProperty] */;
1394 val
* var38
/* : Iterator[nullable Object] */;
1395 val
* var_39
/* var : Iterator[MProperty] */;
1396 short int var40
/* : Bool */;
1397 val
* var41
/* : nullable Object */;
1398 val
* var_mproperty
/* var mproperty: MProperty */;
1399 short int var42
/* : Bool */;
1402 short int var43
/* : Bool */;
1403 val
* var45
/* : Map[MVirtualTypeProp, Int] */;
1404 val
* var47
/* : Map[MVirtualTypeProp, Int] */;
1405 val
* var48
/* : nullable Object */;
1406 long var49
/* : Int */;
1407 long var_color
/* var color: Int */;
1408 long var50
/* : Int */;
1409 long var52
/* : Int */;
1410 short int var53
/* : Bool */;
1411 short int var55
/* : Bool */;
1414 const char* var_class_name
;
1415 short int var58
/* : Bool */;
1416 long var59
/* : Int */;
1417 long var61
/* : Int */;
1418 long var_i
/* var i: Int */;
1419 long var_62
/* var : Int */;
1420 short int var63
/* : Bool */;
1421 short int var65
/* : Bool */;
1424 const char* var_class_name68
;
1425 short int var69
/* : Bool */;
1426 val
* var70
/* : null */;
1427 long var71
/* : Int */;
1428 long var72
/* : Int */;
1429 val
* var74
/* : Array[MPropDef] */;
1430 val
* var76
/* : Array[MPropDef] */;
1431 val
* var_77
/* var : Array[MVirtualTypeDef] */;
1432 val
* var78
/* : ArrayIterator[nullable Object] */;
1433 val
* var_79
/* var : ArrayIterator[MVirtualTypeDef] */;
1434 short int var80
/* : Bool */;
1435 val
* var81
/* : nullable Object */;
1436 val
* var_mpropdef
/* var mpropdef: MVirtualTypeDef */;
1437 val
* var82
/* : MClassDef */;
1438 val
* var84
/* : MClassDef */;
1439 val
* var85
/* : MClass */;
1440 val
* var87
/* : MClass */;
1441 short int var88
/* : Bool */;
1442 short int var89
/* : Bool */;
1443 short int var91
/* : Bool */;
1444 short int var93
/* : Bool */;
1445 val
* var100
/* : MModule */;
1446 val
* var102
/* : MModule */;
1447 val
* var103
/* : Set[MProperty] */;
1448 val
* var_104
/* var : Set[MProperty] */;
1449 val
* var105
/* : Iterator[nullable Object] */;
1450 val
* var_106
/* var : Iterator[MProperty] */;
1451 short int var107
/* : Bool */;
1452 val
* var108
/* : nullable Object */;
1453 val
* var_mproperty109
/* var mproperty: MProperty */;
1454 short int var110
/* : Bool */;
1457 short int var113
/* : Bool */;
1458 val
* var115
/* : Map[MVirtualTypeProp, Int] */;
1459 val
* var117
/* : Map[MVirtualTypeProp, Int] */;
1460 val
* var118
/* : nullable Object */;
1461 long var119
/* : Int */;
1462 long var_color120
/* var color: Int */;
1463 long var121
/* : Int */;
1464 long var123
/* : Int */;
1465 short int var124
/* : Bool */;
1466 short int var126
/* : Bool */;
1469 const char* var_class_name129
;
1470 short int var130
/* : Bool */;
1471 long var131
/* : Int */;
1472 long var133
/* : Int */;
1473 long var_i134
/* var i: Int */;
1474 long var_135
/* var : Int */;
1475 short int var136
/* : Bool */;
1476 short int var138
/* : Bool */;
1479 const char* var_class_name141
;
1480 short int var142
/* : Bool */;
1481 val
* var143
/* : null */;
1482 long var144
/* : Int */;
1483 long var145
/* : Int */;
1484 val
* var147
/* : Array[MPropDef] */;
1485 val
* var149
/* : Array[MPropDef] */;
1486 val
* var_150
/* var : Array[MVirtualTypeDef] */;
1487 val
* var151
/* : ArrayIterator[nullable Object] */;
1488 val
* var_152
/* var : ArrayIterator[MVirtualTypeDef] */;
1489 short int var153
/* : Bool */;
1490 val
* var154
/* : nullable Object */;
1491 val
* var_mpropdef155
/* var mpropdef: MVirtualTypeDef */;
1492 val
* var156
/* : MClassDef */;
1493 val
* var158
/* : MClassDef */;
1494 val
* var159
/* : MClass */;
1495 val
* var161
/* : MClass */;
1496 short int var162
/* : Bool */;
1497 short int var163
/* : Bool */;
1498 short int var165
/* : Bool */;
1499 short int var167
/* : Bool */;
1501 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef
);
1503 ((void (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__init
]))(var1
) /* init on <var1:HashMap[MClass, Array[nullable MPropDef]]>*/;
1506 var_
= var_mclasses
;
1508 var2
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Set[MClass]>*/;
1513 var4
= ((short int (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_3
) /* is_ok on <var_3:Iterator[MClass]>*/;
1517 var5
= ((val
* (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_3
) /* item on <var_3:Iterator[MClass]>*/;
1520 var6
= NEW_array__Array(&type_array__Arraynullable_model__MPropDef
);
1522 ((void (*)(val
*))(var6
->class->vft
[COLOR_kernel__Object__init
]))(var6
) /* init on <var6:Array[nullable MPropDef]>*/;
1525 var7
= NEW_array__Array(&type_array__Arraymodel__MClass
);
1527 ((void (*)(val
*))(var7
->class->vft
[COLOR_kernel__Object__init
]))(var7
) /* init on <var7:Array[MClass]>*/;
1531 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1532 var10
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1533 if (unlikely(var10
== NULL
)) {
1534 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1535 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
1543 var11
= model__MModule__flatten_mclass_hierarchy(var8
);
1546 var12
= poset__POSet__has(var11
, var_mclass
);
1550 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1551 var15
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1552 if (unlikely(var15
== NULL
)) {
1553 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1554 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
1558 RET_LABEL14
:(void)0;
1562 var16
= model__MClass__in_hierarchy(var_mclass
, var13
);
1565 var17
= poset__POSetElement__greaters(var16
);
1568 var18
= array__Collection__to_a(var17
);
1570 var_parents
= var18
;
1572 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1573 var21
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1574 if (unlikely(var21
== NULL
)) {
1575 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1576 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
1580 RET_LABEL20
:(void)0;
1584 model__MModule__linearize_mclasses(var19
, var_parents
); /* Direct call model#MModule#linearize_mclasses on <var19:MModule>*/
1588 var_22
= var_parents
;
1590 var23
= array__AbstractArrayRead__iterator(var_22
);
1595 var25
= array__ArrayIterator__is_ok(var_24
);
1599 var26
= array__ArrayIterator__item(var_24
);
1603 { /* Inline kernel#Object#== (var_parent,var_mclass) on <var_parent:MClass> */
1604 var_other
= var_mclass
;
1606 { /* Inline kernel#Object#is_same_instance (var_parent,var_other) on <var_parent:MClass> */
1607 var32
= var_parent
== var_other
;
1610 RET_LABEL31
:(void)0;
1615 RET_LABEL29
:(void)0;
1624 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1625 var35
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1626 if (unlikely(var35
== NULL
)) {
1627 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1628 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
1632 RET_LABEL34
:(void)0;
1636 var36
= abstract_compiler__MModule__properties(var33
, var_parent
);
1640 var38
= ((val
* (*)(val
*))(var_37
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_37
) /* iterator on <var_37:Set[MProperty]>*/;
1645 var40
= ((short int (*)(val
*))(var_39
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_39
) /* is_ok on <var_39:Iterator[MProperty]>*/;
1649 var41
= ((val
* (*)(val
*))(var_39
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_39
) /* item on <var_39:Iterator[MProperty]>*/;
1651 var_mproperty
= var41
;
1652 /* <var_mproperty:MProperty> isa MVirtualTypeProp */
1653 cltype
= type_model__MVirtualTypeProp
.color
;
1654 idtype
= type_model__MVirtualTypeProp
.id
;
1655 if(cltype
>= var_mproperty
->type
->table_size
) {
1658 var42
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
1666 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors (self) on <self:SeparateErasureCompiler> */
1667 var47
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:SeparateErasureCompiler> */
1668 if (unlikely(var47
== NULL
)) {
1669 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
1670 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 106);
1674 RET_LABEL46
:(void)0;
1678 var48
= ((val
* (*)(val
*, val
*))(var45
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var45
, var_mproperty
) /* [] on <var45:Map[MVirtualTypeProp, Int]>*/;
1680 var49
= ((struct instance_kernel__Int
*)var48
)->value
; /* autounbox from nullable Object to Int */;
1683 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1684 var52
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1686 RET_LABEL51
:(void)0;
1690 { /* Inline kernel#Int#<= (var50,var_color) on <var50:Int> */
1691 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
1692 /* <var_color:Int> isa OTHER */
1693 var55
= 1; /* easy <var_color:Int> isa OTHER*/
1694 if (unlikely(!var55
)) {
1695 var_class_name
= type_kernel__Int
.name
;
1696 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1697 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
1700 var58
= var50
<= var_color
;
1703 RET_LABEL54
:(void)0;
1708 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1709 var61
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1711 RET_LABEL60
:(void)0;
1718 { /* Inline kernel#Int#< (var_i,var_62) on <var_i:Int> */
1719 /* Covariant cast for argument 0 (i) <var_62:Int> isa OTHER */
1720 /* <var_62:Int> isa OTHER */
1721 var65
= 1; /* easy <var_62:Int> isa OTHER*/
1722 if (unlikely(!var65
)) {
1723 var_class_name68
= type_kernel__Int
.name
;
1724 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68
);
1725 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
1728 var69
= var_i
< var_62
;
1731 RET_LABEL64
:(void)0;
1737 array__Array___91d_93d_61d(var_table
, var_i
, var70
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
1741 var72
= kernel__Int__successor(var_i
, var71
);
1748 BREAK_label73
: (void)0;
1752 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MProperty(MVirtualTypeProp)> */
1753 var76
= var_mproperty
->attrs
[COLOR_model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MProperty(MVirtualTypeProp)> */
1754 if (unlikely(var76
== NULL
)) {
1755 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
1756 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1644);
1760 RET_LABEL75
:(void)0;
1765 var78
= array__AbstractArrayRead__iterator(var_77
);
1770 var80
= array__ArrayIterator__is_ok(var_79
);
1774 var81
= array__ArrayIterator__item(var_79
);
1776 var_mpropdef
= var81
;
1778 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MVirtualTypeDef> */
1779 var84
= var_mpropdef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:MVirtualTypeDef> */
1780 if (unlikely(var84
== NULL
)) {
1781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1782 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
1786 RET_LABEL83
:(void)0;
1790 { /* Inline model#MClassDef#mclass (var82) on <var82:MClassDef> */
1791 var87
= var82
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var82:MClassDef> */
1792 if (unlikely(var87
== NULL
)) {
1793 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1794 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
1798 RET_LABEL86
:(void)0;
1802 { /* Inline kernel#Object#== (var85,var_parent) on <var85:MClass> */
1803 var_other
= var_parent
;
1805 { /* Inline kernel#Object#is_same_instance (var85,var_other) on <var85:MClass> */
1806 var93
= var85
== var_other
;
1809 RET_LABEL92
:(void)0;
1814 RET_LABEL90
:(void)0;
1820 array__Array___91d_93d_61d(var_table
, var_color
, var_mpropdef
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
1825 array__ArrayIterator__next(var_79
); /* Direct call array#ArrayIterator#next on <var_79:ArrayIterator[MVirtualTypeDef]>*/
1831 BREAK_label94
: (void)0;
1833 { /* Inline abstract_collection#Iterator#finish (var_79) on <var_79:ArrayIterator[MVirtualTypeDef]> */
1834 RET_LABEL95
:(void)0;
1837 BREAK_label44
: (void)0;
1839 ((void (*)(val
*))(var_39
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_39
) /* next on <var_39:Iterator[MProperty]>*/;
1845 BREAK_label96
: (void)0;
1847 { /* Inline abstract_collection#Iterator#finish (var_39) on <var_39:Iterator[MProperty]> */
1848 RET_LABEL97
:(void)0;
1851 BREAK_label
: (void)0;
1853 array__ArrayIterator__next(var_24
); /* Direct call array#ArrayIterator#next on <var_24:ArrayIterator[MClass]>*/
1859 BREAK_label98
: (void)0;
1861 { /* Inline abstract_collection#Iterator#finish (var_24) on <var_24:ArrayIterator[MClass]> */
1862 RET_LABEL99
:(void)0;
1866 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
1867 var102
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
1868 if (unlikely(var102
== NULL
)) {
1869 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1870 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
1874 RET_LABEL101
:(void)0;
1878 var103
= abstract_compiler__MModule__properties(var100
, var_mclass
);
1882 var105
= ((val
* (*)(val
*))(var_104
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_104
) /* iterator on <var_104:Set[MProperty]>*/;
1887 var107
= ((short int (*)(val
*))(var_106
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_106
) /* is_ok on <var_106:Iterator[MProperty]>*/;
1891 var108
= ((val
* (*)(val
*))(var_106
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_106
) /* item on <var_106:Iterator[MProperty]>*/;
1893 var_mproperty109
= var108
;
1894 /* <var_mproperty109:MProperty> isa MVirtualTypeProp */
1895 cltype111
= type_model__MVirtualTypeProp
.color
;
1896 idtype112
= type_model__MVirtualTypeProp
.id
;
1897 if(cltype111
>= var_mproperty109
->type
->table_size
) {
1900 var110
= var_mproperty109
->type
->type_table
[cltype111
] == idtype112
;
1904 goto BREAK_label114
;
1908 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors (self) on <self:SeparateErasureCompiler> */
1909 var117
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_colors
].val
; /* _vt_colors on <self:SeparateErasureCompiler> */
1910 if (unlikely(var117
== NULL
)) {
1911 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors");
1912 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 106);
1916 RET_LABEL116
:(void)0;
1920 var118
= ((val
* (*)(val
*, val
*))(var115
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var115
, var_mproperty109
) /* [] on <var115:Map[MVirtualTypeProp, Int]>*/;
1922 var119
= ((struct instance_kernel__Int
*)var118
)->value
; /* autounbox from nullable Object to Int */;
1923 var_color120
= var119
;
1925 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1926 var123
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1928 RET_LABEL122
:(void)0;
1932 { /* Inline kernel#Int#<= (var121,var_color120) on <var121:Int> */
1933 /* Covariant cast for argument 0 (i) <var_color120:Int> isa OTHER */
1934 /* <var_color120:Int> isa OTHER */
1935 var126
= 1; /* easy <var_color120:Int> isa OTHER*/
1936 if (unlikely(!var126
)) {
1937 var_class_name129
= type_kernel__Int
.name
;
1938 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name129
);
1939 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
1942 var130
= var121
<= var_color120
;
1945 RET_LABEL125
:(void)0;
1950 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MPropDef]> */
1951 var133
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MPropDef]> */
1953 RET_LABEL132
:(void)0;
1957 var_135
= var_color120
;
1960 { /* Inline kernel#Int#< (var_i134,var_135) on <var_i134:Int> */
1961 /* Covariant cast for argument 0 (i) <var_135:Int> isa OTHER */
1962 /* <var_135:Int> isa OTHER */
1963 var138
= 1; /* easy <var_135:Int> isa OTHER*/
1964 if (unlikely(!var138
)) {
1965 var_class_name141
= type_kernel__Int
.name
;
1966 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name141
);
1967 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
1970 var142
= var_i134
< var_135
;
1973 RET_LABEL137
:(void)0;
1979 array__Array___91d_93d_61d(var_table
, var_i134
, var143
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
1983 var145
= kernel__Int__successor(var_i134
, var144
);
1987 goto BREAK_label146
;
1990 BREAK_label146
: (void)0;
1994 { /* Inline model#MProperty#mpropdefs (var_mproperty109) on <var_mproperty109:MProperty(MVirtualTypeProp)> */
1995 var149
= var_mproperty109
->attrs
[COLOR_model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty109:MProperty(MVirtualTypeProp)> */
1996 if (unlikely(var149
== NULL
)) {
1997 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
1998 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1644);
2002 RET_LABEL148
:(void)0;
2007 var151
= array__AbstractArrayRead__iterator(var_150
);
2012 var153
= array__ArrayIterator__is_ok(var_152
);
2016 var154
= array__ArrayIterator__item(var_152
);
2018 var_mpropdef155
= var154
;
2020 { /* Inline model#MPropDef#mclassdef (var_mpropdef155) on <var_mpropdef155:MVirtualTypeDef> */
2021 var158
= var_mpropdef155
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef155:MVirtualTypeDef> */
2022 if (unlikely(var158
== NULL
)) {
2023 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
2024 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
2028 RET_LABEL157
:(void)0;
2032 { /* Inline model#MClassDef#mclass (var156) on <var156:MClassDef> */
2033 var161
= var156
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var156:MClassDef> */
2034 if (unlikely(var161
== NULL
)) {
2035 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2036 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
2040 RET_LABEL160
:(void)0;
2044 { /* Inline kernel#Object#== (var159,var_mclass) on <var159:MClass> */
2045 var_other
= var_mclass
;
2047 { /* Inline kernel#Object#is_same_instance (var159,var_other) on <var159:MClass> */
2048 var167
= var159
== var_other
;
2051 RET_LABEL166
:(void)0;
2056 RET_LABEL164
:(void)0;
2062 array__Array___91d_93d_61d(var_table
, var_color120
, var_mpropdef155
); /* Direct call array#Array#[]= on <var_table:Array[nullable MPropDef]>*/
2067 array__ArrayIterator__next(var_152
); /* Direct call array#ArrayIterator#next on <var_152:ArrayIterator[MVirtualTypeDef]>*/
2070 goto BREAK_label168
;
2073 BREAK_label168
: (void)0;
2075 { /* Inline abstract_collection#Iterator#finish (var_152) on <var_152:ArrayIterator[MVirtualTypeDef]> */
2076 RET_LABEL169
:(void)0;
2079 BREAK_label114
: (void)0;
2081 ((void (*)(val
*))(var_106
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_106
) /* next on <var_106:Iterator[MProperty]>*/;
2084 goto BREAK_label170
;
2087 BREAK_label170
: (void)0;
2089 { /* Inline abstract_collection#Iterator#finish (var_106) on <var_106:Iterator[MProperty]> */
2090 RET_LABEL171
:(void)0;
2094 hash_collection__HashMap___91d_93d_61d(var_tables
, var_mclass
, var_table
); /* Direct call hash_collection#HashMap#[]= on <var_tables:HashMap[MClass, Array[nullable MPropDef]]>*/
2097 ((void (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_3
) /* next on <var_3:Iterator[MClass]>*/;
2100 goto BREAK_label172
;
2103 BREAK_label172
: (void)0;
2105 { /* Inline abstract_collection#Iterator#finish (var_3) on <var_3:Iterator[MClass]> */
2106 RET_LABEL173
:(void)0;
2114 /* method separate_erasure_compiler#SeparateErasureCompiler#build_vt_tables for (self: Object, Set[MClass]): Map[MClass, Array[nullable MPropDef]] */
2115 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__build_vt_tables(val
* self
, val
* p0
) {
2116 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
2117 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
2118 var1
= separate_erasure_compiler__SeparateErasureCompiler__build_vt_tables(self
, p0
);
2123 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_typing_tables for (self: SeparateErasureCompiler, Set[MClass]): Map[MClass, Array[nullable MClass]] */
2124 val
* separate_erasure_compiler__SeparateErasureCompiler__build_class_typing_tables(val
* self
, val
* p0
) {
2125 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
2126 val
* var_mclasses
/* var mclasses: Set[MClass] */;
2127 val
* var1
/* : HashMap[MClass, Array[nullable MClass]] */;
2128 val
* var_tables
/* var tables: HashMap[MClass, Array[nullable MClass]] */;
2129 val
* var_
/* var : Set[MClass] */;
2130 val
* var2
/* : Iterator[nullable Object] */;
2131 val
* var_3
/* var : Iterator[MClass] */;
2132 short int var4
/* : Bool */;
2133 val
* var5
/* : nullable Object */;
2134 val
* var_mclass
/* var mclass: MClass */;
2135 val
* var6
/* : Array[nullable MClass] */;
2136 val
* var_table
/* var table: Array[nullable MClass] */;
2137 val
* var7
/* : Array[MClass] */;
2138 val
* var_supers
/* var supers: Array[MClass] */;
2139 val
* var8
/* : MModule */;
2140 val
* var10
/* : MModule */;
2141 val
* var11
/* : POSet[MClass] */;
2142 short int var12
/* : Bool */;
2143 val
* var13
/* : MModule */;
2144 val
* var15
/* : MModule */;
2145 val
* var16
/* : POSetElement[MClass] */;
2146 val
* var17
/* : Collection[Object] */;
2147 val
* var18
/* : Array[nullable Object] */;
2148 val
* var_19
/* var : Array[MClass] */;
2149 val
* var20
/* : ArrayIterator[nullable Object] */;
2150 val
* var_21
/* var : ArrayIterator[MClass] */;
2151 short int var22
/* : Bool */;
2152 val
* var23
/* : nullable Object */;
2153 val
* var_sup
/* var sup: MClass */;
2154 val
* var24
/* : Map[MClass, Int] */;
2155 val
* var26
/* : Map[MClass, Int] */;
2156 val
* var27
/* : nullable Object */;
2157 long var28
/* : Int */;
2158 long var_color
/* var color: Int */;
2159 long var29
/* : Int */;
2160 long var31
/* : Int */;
2161 short int var32
/* : Bool */;
2162 short int var34
/* : Bool */;
2165 const char* var_class_name
;
2166 short int var35
/* : Bool */;
2167 long var36
/* : Int */;
2168 long var38
/* : Int */;
2169 long var_i
/* var i: Int */;
2170 long var_39
/* var : Int */;
2171 short int var40
/* : Bool */;
2172 short int var42
/* : Bool */;
2175 const char* var_class_name45
;
2176 short int var46
/* : Bool */;
2177 val
* var47
/* : null */;
2178 long var48
/* : Int */;
2179 long var49
/* : Int */;
2181 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MClass
);
2183 ((void (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__init
]))(var1
) /* init on <var1:HashMap[MClass, Array[nullable MClass]]>*/;
2186 var_
= var_mclasses
;
2188 var2
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Set[MClass]>*/;
2193 var4
= ((short int (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_3
) /* is_ok on <var_3:Iterator[MClass]>*/;
2197 var5
= ((val
* (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_3
) /* item on <var_3:Iterator[MClass]>*/;
2200 var6
= NEW_array__Array(&type_array__Arraynullable_model__MClass
);
2202 ((void (*)(val
*))(var6
->class->vft
[COLOR_kernel__Object__init
]))(var6
) /* init on <var6:Array[nullable MClass]>*/;
2205 var7
= NEW_array__Array(&type_array__Arraymodel__MClass
);
2207 ((void (*)(val
*))(var7
->class->vft
[COLOR_kernel__Object__init
]))(var7
) /* init on <var7:Array[MClass]>*/;
2211 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
2212 var10
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
2213 if (unlikely(var10
== NULL
)) {
2214 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2215 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
2223 var11
= model__MModule__flatten_mclass_hierarchy(var8
);
2226 var12
= poset__POSet__has(var11
, var_mclass
);
2230 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
2231 var15
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
2232 if (unlikely(var15
== NULL
)) {
2233 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2234 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
2238 RET_LABEL14
:(void)0;
2242 var16
= model__MClass__in_hierarchy(var_mclass
, var13
);
2245 var17
= poset__POSetElement__greaters(var16
);
2248 var18
= array__Collection__to_a(var17
);
2253 var_19
= var_supers
;
2255 var20
= array__AbstractArrayRead__iterator(var_19
);
2260 var22
= array__ArrayIterator__is_ok(var_21
);
2264 var23
= array__ArrayIterator__item(var_21
);
2268 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_colors (self) on <self:SeparateErasureCompiler> */
2269 var26
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
; /* _class_colors on <self:SeparateErasureCompiler> */
2270 if (unlikely(var26
== NULL
)) {
2271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors");
2272 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 105);
2276 RET_LABEL25
:(void)0;
2280 var27
= ((val
* (*)(val
*, val
*))(var24
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var24
, var_sup
) /* [] on <var24:Map[MClass, Int]>*/;
2282 var28
= ((struct instance_kernel__Int
*)var27
)->value
; /* autounbox from nullable Object to Int */;
2285 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MClass]> */
2286 var31
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MClass]> */
2288 RET_LABEL30
:(void)0;
2292 { /* Inline kernel#Int#<= (var29,var_color) on <var29:Int> */
2293 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
2294 /* <var_color:Int> isa OTHER */
2295 var34
= 1; /* easy <var_color:Int> isa OTHER*/
2296 if (unlikely(!var34
)) {
2297 var_class_name
= type_kernel__Int
.name
;
2298 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2299 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
2302 var35
= var29
<= var_color
;
2305 RET_LABEL33
:(void)0;
2310 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MClass]> */
2311 var38
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MClass]> */
2313 RET_LABEL37
:(void)0;
2320 { /* Inline kernel#Int#< (var_i,var_39) on <var_i:Int> */
2321 /* Covariant cast for argument 0 (i) <var_39:Int> isa OTHER */
2322 /* <var_39:Int> isa OTHER */
2323 var42
= 1; /* easy <var_39:Int> isa OTHER*/
2324 if (unlikely(!var42
)) {
2325 var_class_name45
= type_kernel__Int
.name
;
2326 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45
);
2327 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
2330 var46
= var_i
< var_39
;
2333 RET_LABEL41
:(void)0;
2339 array__Array___91d_93d_61d(var_table
, var_i
, var47
); /* Direct call array#Array#[]= on <var_table:Array[nullable MClass]>*/
2343 var49
= kernel__Int__successor(var_i
, var48
);
2350 BREAK_label
: (void)0;
2354 array__Array___91d_93d_61d(var_table
, var_color
, var_sup
); /* Direct call array#Array#[]= on <var_table:Array[nullable MClass]>*/
2357 array__ArrayIterator__next(var_21
); /* Direct call array#ArrayIterator#next on <var_21:ArrayIterator[MClass]>*/
2363 BREAK_label50
: (void)0;
2365 { /* Inline abstract_collection#Iterator#finish (var_21) on <var_21:ArrayIterator[MClass]> */
2366 RET_LABEL51
:(void)0;
2370 hash_collection__HashMap___91d_93d_61d(var_tables
, var_mclass
, var_table
); /* Direct call hash_collection#HashMap#[]= on <var_tables:HashMap[MClass, Array[nullable MClass]]>*/
2373 ((void (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_3
) /* next on <var_3:Iterator[MClass]>*/;
2379 BREAK_label52
: (void)0;
2381 { /* Inline abstract_collection#Iterator#finish (var_3) on <var_3:Iterator[MClass]> */
2382 RET_LABEL53
:(void)0;
2390 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_typing_tables for (self: Object, Set[MClass]): Map[MClass, Array[nullable MClass]] */
2391 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__build_class_typing_tables(val
* self
, val
* p0
) {
2392 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
2393 val
* var1
/* : Map[MClass, Array[nullable MClass]] */;
2394 var1
= separate_erasure_compiler__SeparateErasureCompiler__build_class_typing_tables(self
, p0
);
2399 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_header_structs for (self: SeparateErasureCompiler) */
2400 void separate_erasure_compiler__SeparateErasureCompiler__compile_header_structs(val
* self
) {
2401 val
* var
/* : CodeWriter */;
2402 val
* var2
/* : CodeWriter */;
2403 static val
* varonce
;
2404 val
* var3
/* : String */;
2405 char* var4
/* : NativeString */;
2406 long var5
/* : Int */;
2407 val
* var6
/* : FlatString */;
2408 val
* var7
/* : CodeWriter */;
2409 val
* var9
/* : CodeWriter */;
2410 static val
* varonce10
;
2411 val
* var11
/* : String */;
2412 char* var12
/* : NativeString */;
2413 long var13
/* : Int */;
2414 val
* var14
/* : FlatString */;
2415 val
* var15
/* : CodeWriter */;
2416 val
* var17
/* : CodeWriter */;
2417 static val
* varonce18
;
2418 val
* var19
/* : String */;
2419 char* var20
/* : NativeString */;
2420 long var21
/* : Int */;
2421 val
* var22
/* : FlatString */;
2422 val
* var23
/* : CodeWriter */;
2423 val
* var25
/* : CodeWriter */;
2424 static val
* varonce26
;
2425 val
* var27
/* : String */;
2426 char* var28
/* : NativeString */;
2427 long var29
/* : Int */;
2428 val
* var30
/* : FlatString */;
2429 val
* var31
/* : CodeWriter */;
2430 val
* var33
/* : CodeWriter */;
2431 static val
* varonce34
;
2432 val
* var35
/* : String */;
2433 char* var36
/* : NativeString */;
2434 long var37
/* : Int */;
2435 val
* var38
/* : FlatString */;
2436 val
* var39
/* : CodeWriter */;
2437 val
* var41
/* : CodeWriter */;
2438 static val
* varonce42
;
2439 val
* var43
/* : String */;
2440 char* var44
/* : NativeString */;
2441 long var45
/* : Int */;
2442 val
* var46
/* : FlatString */;
2444 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
2445 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
2446 if (unlikely(var2
== NULL
)) {
2447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2448 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2458 var4
= "typedef void(*nitmethod_t)(void); /* general C type representing a Nit method. */";
2460 var6
= string__NativeString__to_s_with_length(var4
, var5
);
2465 abstract_compiler__CodeWriter__add_decl(var
, var3
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var:CodeWriter>*/
2468 separate_compiler__SeparateCompiler__compile_header_attribute_structs(self
); /* Direct call separate_compiler#SeparateCompiler#compile_header_attribute_structs on <self:SeparateErasureCompiler>*/
2471 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
2472 var9
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
2473 if (unlikely(var9
== NULL
)) {
2474 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2475 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2485 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. */";
2487 var14
= string__NativeString__to_s_with_length(var12
, var13
);
2492 abstract_compiler__CodeWriter__add_decl(var7
, var11
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var7:CodeWriter>*/
2495 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
2496 var17
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
2497 if (unlikely(var17
== NULL
)) {
2498 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2499 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2503 RET_LABEL16
:(void)0;
2509 var20
= "struct type_table { int size; int table[]; }; /* colorized type table. */";
2511 var22
= string__NativeString__to_s_with_length(var20
, var21
);
2516 abstract_compiler__CodeWriter__add_decl(var15
, var19
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var15:CodeWriter>*/
2519 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
2520 var25
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
2521 if (unlikely(var25
== NULL
)) {
2522 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2523 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2527 RET_LABEL24
:(void)0;
2533 var28
= "struct vts_entry { short int is_nullable; const struct class *class; }; /* link (nullable or not) between the vts and is bound. */";
2535 var30
= string__NativeString__to_s_with_length(var28
, var29
);
2540 abstract_compiler__CodeWriter__add_decl(var23
, var27
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var23:CodeWriter>*/
2543 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
2544 var33
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
2545 if (unlikely(var33
== NULL
)) {
2546 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2547 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2551 RET_LABEL32
:(void)0;
2557 var36
= "struct vts_table { int dummy; const struct vts_entry vts[]; }; /* vts list of a C type representation. */";
2559 var38
= string__NativeString__to_s_with_length(var36
, var37
);
2564 abstract_compiler__CodeWriter__add_decl(var31
, var35
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var31:CodeWriter>*/
2567 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
2568 var41
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
2569 if (unlikely(var41
== NULL
)) {
2570 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2571 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
2575 RET_LABEL40
:(void)0;
2581 var44
= "typedef struct instance { const struct class *class; nitattribute_t attrs[1]; } val; /* general C type representing a Nit instance. */";
2583 var46
= string__NativeString__to_s_with_length(var44
, var45
);
2588 abstract_compiler__CodeWriter__add_decl(var39
, var43
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var39:CodeWriter>*/
2592 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_header_structs for (self: Object) */
2593 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__compile_header_structs(val
* self
) {
2594 separate_erasure_compiler__SeparateErasureCompiler__compile_header_structs(self
); /* Direct call separate_erasure_compiler#SeparateErasureCompiler#compile_header_structs on <self:Object(SeparateErasureCompiler)>*/
2597 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_class_to_c for (self: SeparateErasureCompiler, MClass) */
2598 void separate_erasure_compiler__SeparateErasureCompiler__compile_class_to_c(val
* self
, val
* p0
) {
2599 val
* var_mclass
/* var mclass: MClass */;
2600 val
* var
/* : MClassDef */;
2601 val
* var2
/* : MClassDef */;
2602 val
* var3
/* : MClassType */;
2603 val
* var5
/* : MClassType */;
2604 val
* var_mtype
/* var mtype: MClassType */;
2605 val
* var6
/* : String */;
2606 val
* var_c_name
/* var c_name: String */;
2607 val
* var7
/* : Map[MClass, Array[nullable MPropDef]] */;
2608 val
* var9
/* : Map[MClass, Array[nullable MPropDef]] */;
2609 val
* var10
/* : nullable Object */;
2610 val
* var_vft
/* var vft: Array[nullable MPropDef] */;
2611 val
* var11
/* : Map[MClass, Array[nullable MPropDef]] */;
2612 val
* var13
/* : Map[MClass, Array[nullable MPropDef]] */;
2613 val
* var14
/* : nullable Object */;
2614 val
* var_attrs
/* var attrs: Array[nullable MPropDef] */;
2615 val
* var15
/* : Map[MClass, Array[nullable MClass]] */;
2616 val
* var17
/* : Map[MClass, Array[nullable MClass]] */;
2617 val
* var18
/* : nullable Object */;
2618 val
* var_class_table
/* var class_table: Array[nullable MClass] */;
2619 val
* var19
/* : SeparateCompilerVisitor */;
2620 val
* var_v
/* var v: SeparateCompilerVisitor */;
2621 val
* var20
/* : nullable RapidTypeAnalysis */;
2622 val
* var22
/* : nullable RapidTypeAnalysis */;
2623 val
* var_rta
/* var rta: nullable RapidTypeAnalysis */;
2624 short int var23
/* : Bool */;
2625 short int var_is_dead
/* var is_dead: Bool */;
2626 short int var24
/* : Bool */;
2627 short int var25
/* : Bool */;
2628 short int var26
/* : Bool */;
2629 short int var27
/* : Bool */;
2630 short int var28
/* : Bool */;
2631 short int var_
/* var : Bool */;
2632 val
* var29
/* : null */;
2633 short int var30
/* : Bool */;
2634 short int var31
/* : Bool */;
2635 val
* var_other
/* var other: nullable Object */;
2636 short int var33
/* : Bool */;
2637 short int var34
/* : Bool */;
2638 short int var35
/* : Bool */;
2639 short int var_36
/* var : Bool */;
2640 val
* var37
/* : HashSet[MClass] */;
2641 val
* var39
/* : HashSet[MClass] */;
2642 short int var40
/* : Bool */;
2643 short int var41
/* : Bool */;
2644 short int var_42
/* var : Bool */;
2645 val
* var43
/* : String */;
2646 static val
* varonce
;
2647 val
* var44
/* : String */;
2648 char* var45
/* : NativeString */;
2649 long var46
/* : Int */;
2650 val
* var47
/* : FlatString */;
2651 short int var48
/* : Bool */;
2652 short int var49
/* : Bool */;
2653 short int var_50
/* var : Bool */;
2654 val
* var51
/* : String */;
2655 val
* var53
/* : String */;
2656 static val
* varonce54
;
2657 val
* var55
/* : String */;
2658 char* var56
/* : NativeString */;
2659 long var57
/* : Int */;
2660 val
* var58
/* : FlatString */;
2661 short int var59
/* : Bool */;
2662 short int var60
/* : Bool */;
2663 short int var62
/* : Bool */;
2664 short int var63
/* : Bool */;
2665 short int var64
/* : Bool */;
2666 short int var65
/* : Bool */;
2667 static val
* varonce66
;
2668 val
* var67
/* : String */;
2669 char* var68
/* : NativeString */;
2670 long var69
/* : Int */;
2671 val
* var70
/* : FlatString */;
2672 static val
* varonce71
;
2673 val
* var72
/* : String */;
2674 char* var73
/* : NativeString */;
2675 long var74
/* : Int */;
2676 val
* var75
/* : FlatString */;
2677 val
* var76
/* : Array[Object] */;
2678 long var77
/* : Int */;
2679 val
* var78
/* : NativeArray[Object] */;
2680 val
* var79
/* : String */;
2681 static val
* varonce80
;
2682 val
* var81
/* : String */;
2683 char* var82
/* : NativeString */;
2684 long var83
/* : Int */;
2685 val
* var84
/* : FlatString */;
2686 val
* var85
/* : Array[Object] */;
2687 long var86
/* : Int */;
2688 val
* var87
/* : NativeArray[Object] */;
2689 val
* var88
/* : String */;
2690 static val
* varonce89
;
2691 val
* var90
/* : String */;
2692 char* var91
/* : NativeString */;
2693 long var92
/* : Int */;
2694 val
* var93
/* : FlatString */;
2695 static val
* varonce94
;
2696 val
* var95
/* : String */;
2697 char* var96
/* : NativeString */;
2698 long var97
/* : Int */;
2699 val
* var98
/* : FlatString */;
2700 val
* var99
/* : Array[Object] */;
2701 long var100
/* : Int */;
2702 val
* var101
/* : NativeArray[Object] */;
2703 val
* var102
/* : String */;
2704 static val
* varonce103
;
2705 val
* var104
/* : String */;
2706 char* var105
/* : NativeString */;
2707 long var106
/* : Int */;
2708 val
* var107
/* : FlatString */;
2709 static val
* varonce108
;
2710 val
* var109
/* : String */;
2711 char* var110
/* : NativeString */;
2712 long var111
/* : Int */;
2713 val
* var112
/* : FlatString */;
2714 val
* var113
/* : Array[Object] */;
2715 long var114
/* : Int */;
2716 val
* var115
/* : NativeArray[Object] */;
2717 val
* var116
/* : String */;
2718 static val
* varonce117
;
2719 val
* var118
/* : String */;
2720 char* var119
/* : NativeString */;
2721 long var120
/* : Int */;
2722 val
* var121
/* : FlatString */;
2723 static val
* varonce122
;
2724 val
* var123
/* : String */;
2725 char* var124
/* : NativeString */;
2726 long var125
/* : Int */;
2727 val
* var126
/* : FlatString */;
2728 val
* var127
/* : Array[Object] */;
2729 long var128
/* : Int */;
2730 val
* var129
/* : NativeArray[Object] */;
2731 val
* var130
/* : String */;
2732 val
* var131
/* : Map[MClass, Int] */;
2733 val
* var133
/* : Map[MClass, Int] */;
2734 val
* var134
/* : nullable Object */;
2735 static val
* varonce135
;
2736 val
* var136
/* : String */;
2737 char* var137
/* : NativeString */;
2738 long var138
/* : Int */;
2739 val
* var139
/* : FlatString */;
2740 val
* var140
/* : Array[Object] */;
2741 long var141
/* : Int */;
2742 val
* var142
/* : NativeArray[Object] */;
2743 val
* var143
/* : String */;
2744 static val
* varonce144
;
2745 val
* var145
/* : String */;
2746 char* var146
/* : NativeString */;
2747 long var147
/* : Int */;
2748 val
* var148
/* : FlatString */;
2749 val
* var149
/* : String */;
2750 val
* var151
/* : String */;
2751 static val
* varonce152
;
2752 val
* var153
/* : String */;
2753 char* var154
/* : NativeString */;
2754 long var155
/* : Int */;
2755 val
* var156
/* : FlatString */;
2756 val
* var157
/* : Array[Object] */;
2757 long var158
/* : Int */;
2758 val
* var159
/* : NativeArray[Object] */;
2759 val
* var160
/* : String */;
2760 long var161
/* : Int */;
2761 static val
* varonce162
;
2762 val
* var163
/* : String */;
2763 char* var164
/* : NativeString */;
2764 long var165
/* : Int */;
2765 val
* var166
/* : FlatString */;
2766 val
* var167
/* : Array[Object] */;
2767 long var168
/* : Int */;
2768 val
* var169
/* : NativeArray[Object] */;
2769 val
* var170
/* : Object */;
2770 val
* var171
/* : String */;
2771 val
* var172
/* : Map[MClass, Int] */;
2772 val
* var174
/* : Map[MClass, Int] */;
2773 val
* var175
/* : nullable Object */;
2774 static val
* varonce176
;
2775 val
* var177
/* : String */;
2776 char* var178
/* : NativeString */;
2777 long var179
/* : Int */;
2778 val
* var180
/* : FlatString */;
2779 val
* var181
/* : Array[Object] */;
2780 long var182
/* : Int */;
2781 val
* var183
/* : NativeArray[Object] */;
2782 val
* var184
/* : String */;
2783 short int var185
/* : Bool */;
2784 short int var186
/* : Bool */;
2785 static val
* varonce187
;
2786 val
* var188
/* : String */;
2787 char* var189
/* : NativeString */;
2788 long var190
/* : Int */;
2789 val
* var191
/* : FlatString */;
2790 val
* var192
/* : Array[Object] */;
2791 long var193
/* : Int */;
2792 val
* var194
/* : NativeArray[Object] */;
2793 val
* var195
/* : String */;
2794 static val
* varonce196
;
2795 val
* var197
/* : String */;
2796 char* var198
/* : NativeString */;
2797 long var199
/* : Int */;
2798 val
* var200
/* : FlatString */;
2799 static val
* varonce201
;
2800 val
* var202
/* : String */;
2801 char* var203
/* : NativeString */;
2802 long var204
/* : Int */;
2803 val
* var205
/* : FlatString */;
2804 val
* var206
/* : Array[Object] */;
2805 long var207
/* : Int */;
2806 val
* var208
/* : NativeArray[Object] */;
2807 val
* var209
/* : String */;
2808 static val
* varonce210
;
2809 val
* var211
/* : String */;
2810 char* var212
/* : NativeString */;
2811 long var213
/* : Int */;
2812 val
* var214
/* : FlatString */;
2813 static val
* varonce215
;
2814 val
* var216
/* : String */;
2815 char* var217
/* : NativeString */;
2816 long var218
/* : Int */;
2817 val
* var219
/* : FlatString */;
2818 static val
* varonce220
;
2819 val
* var221
/* : String */;
2820 char* var222
/* : NativeString */;
2821 long var223
/* : Int */;
2822 val
* var224
/* : FlatString */;
2823 val
* var225
/* : Array[Object] */;
2824 long var226
/* : Int */;
2825 val
* var227
/* : NativeArray[Object] */;
2826 val
* var228
/* : String */;
2827 static val
* varonce229
;
2828 val
* var230
/* : String */;
2829 char* var231
/* : NativeString */;
2830 long var232
/* : Int */;
2831 val
* var233
/* : FlatString */;
2832 long var234
/* : Int */;
2833 long var_i
/* var i: Int */;
2834 long var235
/* : Int */;
2835 long var237
/* : Int */;
2836 long var_238
/* var : Int */;
2837 short int var239
/* : Bool */;
2838 short int var241
/* : Bool */;
2841 const char* var_class_name
;
2842 short int var242
/* : Bool */;
2843 val
* var243
/* : nullable Object */;
2844 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
2845 val
* var244
/* : null */;
2846 short int var245
/* : Bool */;
2847 short int var246
/* : Bool */;
2848 val
* var_other248
/* var other: nullable Object */;
2849 short int var249
/* : Bool */;
2850 short int var251
/* : Bool */;
2851 static val
* varonce252
;
2852 val
* var253
/* : String */;
2853 char* var254
/* : NativeString */;
2854 long var255
/* : Int */;
2855 val
* var256
/* : FlatString */;
2856 short int var257
/* : Bool */;
2859 short int var260
/* : Bool */;
2860 val
* var261
/* : null */;
2861 short int var262
/* : Bool */;
2862 short int var263
/* : Bool */;
2863 short int var265
/* : Bool */;
2864 short int var266
/* : Bool */;
2865 short int var267
/* : Bool */;
2866 short int var_268
/* var : Bool */;
2867 val
* var269
/* : HashSet[MMethodDef] */;
2868 val
* var271
/* : HashSet[MMethodDef] */;
2869 short int var272
/* : Bool */;
2870 short int var273
/* : Bool */;
2871 static val
* varonce274
;
2872 val
* var275
/* : String */;
2873 char* var276
/* : NativeString */;
2874 long var277
/* : Int */;
2875 val
* var278
/* : FlatString */;
2876 val
* var279
/* : MModule */;
2877 val
* var281
/* : MModule */;
2878 static val
* varonce282
;
2879 val
* var283
/* : String */;
2880 char* var284
/* : NativeString */;
2881 long var285
/* : Int */;
2882 val
* var286
/* : FlatString */;
2883 static val
* varonce287
;
2884 val
* var288
/* : String */;
2885 char* var289
/* : NativeString */;
2886 long var290
/* : Int */;
2887 val
* var291
/* : FlatString */;
2888 static val
* varonce292
;
2889 val
* var293
/* : String */;
2890 char* var294
/* : NativeString */;
2891 long var295
/* : Int */;
2892 val
* var296
/* : FlatString */;
2893 val
* var297
/* : Array[Object] */;
2894 long var298
/* : Int */;
2895 val
* var299
/* : NativeArray[Object] */;
2896 val
* var300
/* : String */;
2897 short int var301
/* : Bool */;
2898 short int var302
/* : Bool */;
2899 short int var_303
/* var : Bool */;
2900 val
* var304
/* : MClassDef */;
2901 val
* var306
/* : MClassDef */;
2902 val
* var307
/* : MClassType */;
2903 val
* var309
/* : MClassType */;
2904 val
* var310
/* : String */;
2905 static val
* varonce311
;
2906 val
* var312
/* : String */;
2907 char* var313
/* : NativeString */;
2908 long var314
/* : Int */;
2909 val
* var315
/* : FlatString */;
2910 short int var316
/* : Bool */;
2911 short int var317
/* : Bool */;
2912 short int var319
/* : Bool */;
2913 short int var320
/* : Bool */;
2914 short int var321
/* : Bool */;
2915 static val
* varonce322
;
2916 val
* var323
/* : String */;
2917 char* var324
/* : NativeString */;
2918 long var325
/* : Int */;
2919 val
* var326
/* : FlatString */;
2920 val
* var327
/* : String */;
2921 val
* var328
/* : Array[Object] */;
2922 long var329
/* : Int */;
2923 val
* var330
/* : NativeArray[Object] */;
2924 val
* var331
/* : String */;
2925 static val
* varonce332
;
2926 val
* var333
/* : String */;
2927 char* var334
/* : NativeString */;
2928 long var335
/* : Int */;
2929 val
* var336
/* : FlatString */;
2930 val
* var337
/* : String */;
2931 static val
* varonce338
;
2932 val
* var339
/* : String */;
2933 char* var340
/* : NativeString */;
2934 long var341
/* : Int */;
2935 val
* var342
/* : FlatString */;
2936 val
* var343
/* : MModule */;
2937 val
* var345
/* : MModule */;
2938 static val
* varonce346
;
2939 val
* var347
/* : String */;
2940 char* var348
/* : NativeString */;
2941 long var349
/* : Int */;
2942 val
* var350
/* : FlatString */;
2943 static val
* varonce351
;
2944 val
* var352
/* : String */;
2945 char* var353
/* : NativeString */;
2946 long var354
/* : Int */;
2947 val
* var355
/* : FlatString */;
2948 static val
* varonce356
;
2949 val
* var357
/* : String */;
2950 char* var358
/* : NativeString */;
2951 long var359
/* : Int */;
2952 val
* var360
/* : FlatString */;
2953 val
* var361
/* : Array[Object] */;
2954 long var362
/* : Int */;
2955 val
* var363
/* : NativeArray[Object] */;
2956 val
* var364
/* : String */;
2957 val
* var365
/* : String */;
2958 val
* var366
/* : Array[Object] */;
2959 long var367
/* : Int */;
2960 val
* var368
/* : NativeArray[Object] */;
2961 val
* var369
/* : String */;
2962 static val
* varonce370
;
2963 val
* var371
/* : String */;
2964 char* var372
/* : NativeString */;
2965 long var373
/* : Int */;
2966 val
* var374
/* : FlatString */;
2967 val
* var375
/* : String */;
2968 static val
* varonce376
;
2969 val
* var377
/* : String */;
2970 char* var378
/* : NativeString */;
2971 long var379
/* : Int */;
2972 val
* var380
/* : FlatString */;
2973 val
* var381
/* : MModule */;
2974 val
* var383
/* : MModule */;
2975 static val
* varonce384
;
2976 val
* var385
/* : String */;
2977 char* var386
/* : NativeString */;
2978 long var387
/* : Int */;
2979 val
* var388
/* : FlatString */;
2980 static val
* varonce389
;
2981 val
* var390
/* : String */;
2982 char* var391
/* : NativeString */;
2983 long var392
/* : Int */;
2984 val
* var393
/* : FlatString */;
2985 static val
* varonce394
;
2986 val
* var395
/* : String */;
2987 char* var396
/* : NativeString */;
2988 long var397
/* : Int */;
2989 val
* var398
/* : FlatString */;
2990 val
* var399
/* : Array[Object] */;
2991 long var400
/* : Int */;
2992 val
* var401
/* : NativeArray[Object] */;
2993 val
* var402
/* : String */;
2994 long var403
/* : Int */;
2995 long var404
/* : Int */;
2996 static val
* varonce406
;
2997 val
* var407
/* : String */;
2998 char* var408
/* : NativeString */;
2999 long var409
/* : Int */;
3000 val
* var410
/* : FlatString */;
3001 static val
* varonce411
;
3002 val
* var412
/* : String */;
3003 char* var413
/* : NativeString */;
3004 long var414
/* : Int */;
3005 val
* var415
/* : FlatString */;
3006 static val
* varonce416
;
3007 val
* var417
/* : String */;
3008 char* var418
/* : NativeString */;
3009 long var419
/* : Int */;
3010 val
* var420
/* : FlatString */;
3011 static val
* varonce421
;
3012 val
* var422
/* : String */;
3013 char* var423
/* : NativeString */;
3014 long var424
/* : Int */;
3015 val
* var425
/* : FlatString */;
3016 val
* var426
/* : Array[Object] */;
3017 long var427
/* : Int */;
3018 val
* var428
/* : NativeArray[Object] */;
3019 val
* var429
/* : String */;
3020 long var430
/* : Int */;
3021 long var432
/* : Int */;
3022 static val
* varonce433
;
3023 val
* var434
/* : String */;
3024 char* var435
/* : NativeString */;
3025 long var436
/* : Int */;
3026 val
* var437
/* : FlatString */;
3027 val
* var438
/* : Array[Object] */;
3028 long var439
/* : Int */;
3029 val
* var440
/* : NativeArray[Object] */;
3030 val
* var441
/* : Object */;
3031 val
* var442
/* : String */;
3032 static val
* varonce443
;
3033 val
* var444
/* : String */;
3034 char* var445
/* : NativeString */;
3035 long var446
/* : Int */;
3036 val
* var447
/* : FlatString */;
3037 val
* var_448
/* var : Array[nullable MClass] */;
3038 val
* var449
/* : ArrayIterator[nullable Object] */;
3039 val
* var_450
/* var : ArrayIterator[nullable MClass] */;
3040 short int var451
/* : Bool */;
3041 val
* var452
/* : nullable Object */;
3042 val
* var_msuper
/* var msuper: nullable MClass */;
3043 val
* var453
/* : null */;
3044 short int var454
/* : Bool */;
3045 short int var455
/* : Bool */;
3046 short int var457
/* : Bool */;
3047 short int var459
/* : Bool */;
3048 static val
* varonce460
;
3049 val
* var461
/* : String */;
3050 char* var462
/* : NativeString */;
3051 long var463
/* : Int */;
3052 val
* var464
/* : FlatString */;
3053 val
* var465
/* : Map[MClass, Int] */;
3054 val
* var467
/* : Map[MClass, Int] */;
3055 val
* var468
/* : nullable Object */;
3056 static val
* varonce469
;
3057 val
* var470
/* : String */;
3058 char* var471
/* : NativeString */;
3059 long var472
/* : Int */;
3060 val
* var473
/* : FlatString */;
3061 static val
* varonce474
;
3062 val
* var475
/* : String */;
3063 char* var476
/* : NativeString */;
3064 long var477
/* : Int */;
3065 val
* var478
/* : FlatString */;
3066 val
* var479
/* : Array[Object] */;
3067 long var480
/* : Int */;
3068 val
* var481
/* : NativeArray[Object] */;
3069 val
* var482
/* : String */;
3070 static val
* varonce485
;
3071 val
* var486
/* : String */;
3072 char* var487
/* : NativeString */;
3073 long var488
/* : Int */;
3074 val
* var489
/* : FlatString */;
3075 static val
* varonce490
;
3076 val
* var491
/* : String */;
3077 char* var492
/* : NativeString */;
3078 long var493
/* : Int */;
3079 val
* var494
/* : FlatString */;
3080 short int var495
/* : Bool */;
3081 val
* var496
/* : String */;
3082 static val
* varonce497
;
3083 val
* var498
/* : String */;
3084 char* var499
/* : NativeString */;
3085 long var500
/* : Int */;
3086 val
* var501
/* : FlatString */;
3087 short int var502
/* : Bool */;
3088 short int var503
/* : Bool */;
3089 short int var505
/* : Bool */;
3090 short int var506
/* : Bool */;
3091 short int var507
/* : Bool */;
3092 short int var_508
/* var : Bool */;
3093 val
* var509
/* : MClass */;
3094 val
* var511
/* : MClass */;
3095 val
* var512
/* : String */;
3096 val
* var514
/* : String */;
3097 static val
* varonce515
;
3098 val
* var516
/* : String */;
3099 char* var517
/* : NativeString */;
3100 long var518
/* : Int */;
3101 val
* var519
/* : FlatString */;
3102 short int var520
/* : Bool */;
3103 short int var521
/* : Bool */;
3104 val
* var522
/* : CodeWriter */;
3105 val
* var524
/* : CodeWriter */;
3106 static val
* varonce525
;
3107 val
* var526
/* : String */;
3108 char* var527
/* : NativeString */;
3109 long var528
/* : Int */;
3110 val
* var529
/* : FlatString */;
3111 static val
* varonce530
;
3112 val
* var531
/* : String */;
3113 char* var532
/* : NativeString */;
3114 long var533
/* : Int */;
3115 val
* var534
/* : FlatString */;
3116 val
* var535
/* : Array[Object] */;
3117 long var536
/* : Int */;
3118 val
* var537
/* : NativeArray[Object] */;
3119 val
* var538
/* : String */;
3120 val
* var539
/* : CodeWriter */;
3121 val
* var541
/* : CodeWriter */;
3122 static val
* varonce542
;
3123 val
* var543
/* : String */;
3124 char* var544
/* : NativeString */;
3125 long var545
/* : Int */;
3126 val
* var546
/* : FlatString */;
3127 val
* var547
/* : CodeWriter */;
3128 val
* var549
/* : CodeWriter */;
3129 val
* var550
/* : String */;
3130 static val
* varonce551
;
3131 val
* var552
/* : String */;
3132 char* var553
/* : NativeString */;
3133 long var554
/* : Int */;
3134 val
* var555
/* : FlatString */;
3135 val
* var556
/* : Array[Object] */;
3136 long var557
/* : Int */;
3137 val
* var558
/* : NativeArray[Object] */;
3138 val
* var559
/* : String */;
3139 val
* var560
/* : CodeWriter */;
3140 val
* var562
/* : CodeWriter */;
3141 static val
* varonce563
;
3142 val
* var564
/* : String */;
3143 char* var565
/* : NativeString */;
3144 long var566
/* : Int */;
3145 val
* var567
/* : FlatString */;
3146 static val
* varonce568
;
3147 val
* var569
/* : String */;
3148 char* var570
/* : NativeString */;
3149 long var571
/* : Int */;
3150 val
* var572
/* : FlatString */;
3151 val
* var573
/* : Array[Object] */;
3152 long var574
/* : Int */;
3153 val
* var575
/* : NativeArray[Object] */;
3154 val
* var576
/* : String */;
3155 static val
* varonce577
;
3156 val
* var578
/* : String */;
3157 char* var579
/* : NativeString */;
3158 long var580
/* : Int */;
3159 val
* var581
/* : FlatString */;
3160 static val
* varonce582
;
3161 val
* var583
/* : String */;
3162 char* var584
/* : NativeString */;
3163 long var585
/* : Int */;
3164 val
* var586
/* : FlatString */;
3165 val
* var587
/* : String */;
3166 static val
* varonce588
;
3167 val
* var589
/* : String */;
3168 char* var590
/* : NativeString */;
3169 long var591
/* : Int */;
3170 val
* var592
/* : FlatString */;
3171 val
* var593
/* : Array[Object] */;
3172 long var594
/* : Int */;
3173 val
* var595
/* : NativeArray[Object] */;
3174 val
* var596
/* : String */;
3175 static val
* varonce597
;
3176 val
* var598
/* : String */;
3177 char* var599
/* : NativeString */;
3178 long var600
/* : Int */;
3179 val
* var601
/* : FlatString */;
3180 static val
* varonce602
;
3181 val
* var603
/* : String */;
3182 char* var604
/* : NativeString */;
3183 long var605
/* : Int */;
3184 val
* var606
/* : FlatString */;
3185 val
* var607
/* : Array[Object] */;
3186 long var608
/* : Int */;
3187 val
* var609
/* : NativeArray[Object] */;
3188 val
* var610
/* : String */;
3189 static val
* varonce611
;
3190 val
* var612
/* : String */;
3191 char* var613
/* : NativeString */;
3192 long var614
/* : Int */;
3193 val
* var615
/* : FlatString */;
3194 val
* var616
/* : String */;
3195 static val
* varonce617
;
3196 val
* var618
/* : String */;
3197 char* var619
/* : NativeString */;
3198 long var620
/* : Int */;
3199 val
* var621
/* : FlatString */;
3200 val
* var622
/* : String */;
3201 static val
* varonce623
;
3202 val
* var624
/* : String */;
3203 char* var625
/* : NativeString */;
3204 long var626
/* : Int */;
3205 val
* var627
/* : FlatString */;
3206 val
* var628
/* : Array[Object] */;
3207 long var629
/* : Int */;
3208 val
* var630
/* : NativeArray[Object] */;
3209 val
* var631
/* : String */;
3210 static val
* varonce632
;
3211 val
* var633
/* : String */;
3212 char* var634
/* : NativeString */;
3213 long var635
/* : Int */;
3214 val
* var636
/* : FlatString */;
3215 static val
* varonce637
;
3216 val
* var638
/* : String */;
3217 char* var639
/* : NativeString */;
3218 long var640
/* : Int */;
3219 val
* var641
/* : FlatString */;
3220 static val
* varonce642
;
3221 val
* var643
/* : String */;
3222 char* var644
/* : NativeString */;
3223 long var645
/* : Int */;
3224 val
* var646
/* : FlatString */;
3225 val
* var647
/* : Array[Object] */;
3226 long var648
/* : Int */;
3227 val
* var649
/* : NativeArray[Object] */;
3228 val
* var650
/* : String */;
3229 static val
* varonce651
;
3230 val
* var652
/* : String */;
3231 char* var653
/* : NativeString */;
3232 long var654
/* : Int */;
3233 val
* var655
/* : FlatString */;
3234 val
* var656
/* : Array[Object] */;
3235 long var657
/* : Int */;
3236 val
* var658
/* : NativeArray[Object] */;
3237 val
* var659
/* : String */;
3238 static val
* varonce660
;
3239 val
* var661
/* : String */;
3240 char* var662
/* : NativeString */;
3241 long var663
/* : Int */;
3242 val
* var664
/* : FlatString */;
3243 static val
* varonce665
;
3244 val
* var666
/* : String */;
3245 char* var667
/* : NativeString */;
3246 long var668
/* : Int */;
3247 val
* var669
/* : FlatString */;
3248 val
* var670
/* : Array[Object] */;
3249 long var671
/* : Int */;
3250 val
* var672
/* : NativeArray[Object] */;
3251 val
* var673
/* : String */;
3252 static val
* varonce674
;
3253 val
* var675
/* : String */;
3254 char* var676
/* : NativeString */;
3255 long var677
/* : Int */;
3256 val
* var678
/* : FlatString */;
3257 static val
* varonce679
;
3258 val
* var680
/* : String */;
3259 char* var681
/* : NativeString */;
3260 long var682
/* : Int */;
3261 val
* var683
/* : FlatString */;
3262 static val
* varonce684
;
3263 val
* var685
/* : String */;
3264 char* var686
/* : NativeString */;
3265 long var687
/* : Int */;
3266 val
* var688
/* : FlatString */;
3267 val
* var689
/* : MClass */;
3268 val
* var691
/* : MClass */;
3269 val
* var692
/* : String */;
3270 val
* var694
/* : String */;
3271 static val
* varonce695
;
3272 val
* var696
/* : String */;
3273 char* var697
/* : NativeString */;
3274 long var698
/* : Int */;
3275 val
* var699
/* : FlatString */;
3276 short int var700
/* : Bool */;
3277 short int var701
/* : Bool */;
3278 short int var703
/* : Bool */;
3279 short int var704
/* : Bool */;
3280 short int var705
/* : Bool */;
3281 val
* var706
/* : SeparateCompilerVisitor */;
3282 static val
* varonce707
;
3283 val
* var708
/* : String */;
3284 char* var709
/* : NativeString */;
3285 long var710
/* : Int */;
3286 val
* var711
/* : FlatString */;
3287 val
* var712
/* : Array[Object] */;
3288 long var713
/* : Int */;
3289 val
* var714
/* : NativeArray[Object] */;
3290 val
* var715
/* : String */;
3291 val
* var716
/* : String */;
3292 static val
* varonce717
;
3293 val
* var718
/* : String */;
3294 char* var719
/* : NativeString */;
3295 long var720
/* : Int */;
3296 val
* var721
/* : FlatString */;
3297 static val
* varonce722
;
3298 val
* var723
/* : String */;
3299 char* var724
/* : NativeString */;
3300 long var725
/* : Int */;
3301 val
* var726
/* : FlatString */;
3302 val
* var727
/* : Array[Object] */;
3303 long var728
/* : Int */;
3304 val
* var729
/* : NativeArray[Object] */;
3305 val
* var730
/* : String */;
3306 static val
* varonce731
;
3307 val
* var732
/* : String */;
3308 char* var733
/* : NativeString */;
3309 long var734
/* : Int */;
3310 val
* var735
/* : FlatString */;
3311 static val
* varonce736
;
3312 val
* var737
/* : String */;
3313 char* var738
/* : NativeString */;
3314 long var739
/* : Int */;
3315 val
* var740
/* : FlatString */;
3316 val
* var741
/* : Array[Object] */;
3317 long var742
/* : Int */;
3318 val
* var743
/* : NativeArray[Object] */;
3319 val
* var744
/* : String */;
3320 val
* var745
/* : String */;
3321 static val
* varonce746
;
3322 val
* var747
/* : String */;
3323 char* var748
/* : NativeString */;
3324 long var749
/* : Int */;
3325 val
* var750
/* : FlatString */;
3326 static val
* varonce751
;
3327 val
* var752
/* : String */;
3328 char* var753
/* : NativeString */;
3329 long var754
/* : Int */;
3330 val
* var755
/* : FlatString */;
3331 val
* var756
/* : Array[Object] */;
3332 long var757
/* : Int */;
3333 val
* var758
/* : NativeArray[Object] */;
3334 val
* var759
/* : String */;
3335 static val
* varonce760
;
3336 val
* var761
/* : String */;
3337 char* var762
/* : NativeString */;
3338 long var763
/* : Int */;
3339 val
* var764
/* : FlatString */;
3340 val
* var765
/* : Array[Object] */;
3341 long var766
/* : Int */;
3342 val
* var767
/* : NativeArray[Object] */;
3343 val
* var768
/* : String */;
3344 static val
* varonce769
;
3345 val
* var770
/* : String */;
3346 char* var771
/* : NativeString */;
3347 long var772
/* : Int */;
3348 val
* var773
/* : FlatString */;
3349 val
* var774
/* : RuntimeVariable */;
3350 val
* var_res
/* var res: RuntimeVariable */;
3351 short int var775
/* : Bool */;
3352 static val
* varonce777
;
3353 val
* var778
/* : String */;
3354 char* var779
/* : NativeString */;
3355 long var780
/* : Int */;
3356 val
* var781
/* : FlatString */;
3357 val
* var782
/* : String */;
3358 static val
* varonce783
;
3359 val
* var784
/* : String */;
3360 char* var785
/* : NativeString */;
3361 long var786
/* : Int */;
3362 val
* var787
/* : FlatString */;
3363 val
* var788
/* : Array[Object] */;
3364 long var789
/* : Int */;
3365 val
* var790
/* : NativeArray[Object] */;
3366 val
* var791
/* : String */;
3367 static val
* varonce792
;
3368 val
* var793
/* : String */;
3369 char* var794
/* : NativeString */;
3370 long var795
/* : Int */;
3371 val
* var796
/* : FlatString */;
3372 val
* var797
/* : Array[Object] */;
3373 long var798
/* : Int */;
3374 val
* var799
/* : NativeArray[Object] */;
3375 val
* var800
/* : String */;
3376 static val
* varonce801
;
3377 val
* var802
/* : String */;
3378 char* var803
/* : NativeString */;
3379 long var804
/* : Int */;
3380 val
* var805
/* : FlatString */;
3381 static val
* varonce806
;
3382 val
* var807
/* : String */;
3383 char* var808
/* : NativeString */;
3384 long var809
/* : Int */;
3385 val
* var810
/* : FlatString */;
3386 val
* var811
/* : Array[Object] */;
3387 long var812
/* : Int */;
3388 val
* var813
/* : NativeArray[Object] */;
3389 val
* var814
/* : String */;
3390 static val
* varonce815
;
3391 val
* var816
/* : String */;
3392 char* var817
/* : NativeString */;
3393 long var818
/* : Int */;
3394 val
* var819
/* : FlatString */;
3395 val
* var820
/* : String */;
3396 static val
* varonce821
;
3397 val
* var822
/* : String */;
3398 char* var823
/* : NativeString */;
3399 long var824
/* : Int */;
3400 val
* var825
/* : FlatString */;
3401 static val
* varonce826
;
3402 val
* var827
/* : String */;
3403 char* var828
/* : NativeString */;
3404 long var829
/* : Int */;
3405 val
* var830
/* : FlatString */;
3406 val
* var831
/* : Array[Object] */;
3407 long var832
/* : Int */;
3408 val
* var833
/* : NativeArray[Object] */;
3409 val
* var834
/* : String */;
3410 static val
* varonce835
;
3411 val
* var836
/* : String */;
3412 char* var837
/* : NativeString */;
3413 long var838
/* : Int */;
3414 val
* var839
/* : FlatString */;
3415 static val
* varonce840
;
3416 val
* var841
/* : String */;
3417 char* var842
/* : NativeString */;
3418 long var843
/* : Int */;
3419 val
* var844
/* : FlatString */;
3420 val
* var845
/* : Array[Object] */;
3421 long var846
/* : Int */;
3422 val
* var847
/* : NativeArray[Object] */;
3423 val
* var848
/* : String */;
3424 static val
* varonce849
;
3425 val
* var850
/* : String */;
3426 char* var851
/* : NativeString */;
3427 long var852
/* : Int */;
3428 val
* var853
/* : FlatString */;
3429 val
* var854
/* : String */;
3430 val
* var856
/* : String */;
3431 static val
* varonce857
;
3432 val
* var858
/* : String */;
3433 char* var859
/* : NativeString */;
3434 long var860
/* : Int */;
3435 val
* var861
/* : FlatString */;
3436 short int var862
/* : Bool */;
3437 short int var863
/* : Bool */;
3438 val
* var864
/* : CodeWriter */;
3439 val
* var866
/* : CodeWriter */;
3440 static val
* varonce867
;
3441 val
* var868
/* : String */;
3442 char* var869
/* : NativeString */;
3443 long var870
/* : Int */;
3444 val
* var871
/* : FlatString */;
3445 static val
* varonce872
;
3446 val
* var873
/* : String */;
3447 char* var874
/* : NativeString */;
3448 long var875
/* : Int */;
3449 val
* var876
/* : FlatString */;
3450 val
* var877
/* : Array[Object] */;
3451 long var878
/* : Int */;
3452 val
* var879
/* : NativeArray[Object] */;
3453 val
* var880
/* : String */;
3454 val
* var881
/* : CodeWriter */;
3455 val
* var883
/* : CodeWriter */;
3456 static val
* varonce884
;
3457 val
* var885
/* : String */;
3458 char* var886
/* : NativeString */;
3459 long var887
/* : Int */;
3460 val
* var888
/* : FlatString */;
3461 val
* var889
/* : CodeWriter */;
3462 val
* var891
/* : CodeWriter */;
3463 static val
* varonce892
;
3464 val
* var893
/* : String */;
3465 char* var894
/* : NativeString */;
3466 long var895
/* : Int */;
3467 val
* var896
/* : FlatString */;
3468 val
* var897
/* : CodeWriter */;
3469 val
* var899
/* : CodeWriter */;
3470 static val
* varonce900
;
3471 val
* var901
/* : String */;
3472 char* var902
/* : NativeString */;
3473 long var903
/* : Int */;
3474 val
* var904
/* : FlatString */;
3475 val
* var905
/* : CodeWriter */;
3476 val
* var907
/* : CodeWriter */;
3477 static val
* varonce908
;
3478 val
* var909
/* : String */;
3479 char* var910
/* : NativeString */;
3480 long var911
/* : Int */;
3481 val
* var912
/* : FlatString */;
3482 static val
* varonce913
;
3483 val
* var914
/* : String */;
3484 char* var915
/* : NativeString */;
3485 long var916
/* : Int */;
3486 val
* var917
/* : FlatString */;
3487 val
* var918
/* : Array[Object] */;
3488 long var919
/* : Int */;
3489 val
* var920
/* : NativeArray[Object] */;
3490 val
* var921
/* : String */;
3491 val
* var922
/* : String */;
3492 static val
* varonce923
;
3493 val
* var924
/* : String */;
3494 char* var925
/* : NativeString */;
3495 long var926
/* : Int */;
3496 val
* var927
/* : FlatString */;
3497 static val
* varonce928
;
3498 val
* var929
/* : String */;
3499 char* var930
/* : NativeString */;
3500 long var931
/* : Int */;
3501 val
* var932
/* : FlatString */;
3502 val
* var933
/* : Array[Object] */;
3503 long var934
/* : Int */;
3504 val
* var935
/* : NativeArray[Object] */;
3505 val
* var936
/* : String */;
3506 static val
* varonce937
;
3507 val
* var938
/* : String */;
3508 char* var939
/* : NativeString */;
3509 long var940
/* : Int */;
3510 val
* var941
/* : FlatString */;
3511 static val
* varonce942
;
3512 val
* var943
/* : String */;
3513 char* var944
/* : NativeString */;
3514 long var945
/* : Int */;
3515 val
* var946
/* : FlatString */;
3516 val
* var947
/* : Array[Object] */;
3517 long var948
/* : Int */;
3518 val
* var949
/* : NativeArray[Object] */;
3519 val
* var950
/* : String */;
3520 val
* var951
/* : String */;
3521 static val
* varonce952
;
3522 val
* var953
/* : String */;
3523 char* var954
/* : NativeString */;
3524 long var955
/* : Int */;
3525 val
* var956
/* : FlatString */;
3526 static val
* varonce957
;
3527 val
* var958
/* : String */;
3528 char* var959
/* : NativeString */;
3529 long var960
/* : Int */;
3530 val
* var961
/* : FlatString */;
3531 val
* var962
/* : Array[Object] */;
3532 long var963
/* : Int */;
3533 val
* var964
/* : NativeArray[Object] */;
3534 val
* var965
/* : String */;
3535 static val
* varonce966
;
3536 val
* var967
/* : String */;
3537 char* var968
/* : NativeString */;
3538 long var969
/* : Int */;
3539 val
* var970
/* : FlatString */;
3540 val
* var971
/* : String */;
3541 val
* var_res972
/* var res: String */;
3542 static val
* varonce973
;
3543 val
* var974
/* : String */;
3544 char* var975
/* : NativeString */;
3545 long var976
/* : Int */;
3546 val
* var977
/* : FlatString */;
3547 static val
* varonce978
;
3548 val
* var979
/* : String */;
3549 char* var980
/* : NativeString */;
3550 long var981
/* : Int */;
3551 val
* var982
/* : FlatString */;
3552 static val
* varonce983
;
3553 val
* var984
/* : String */;
3554 char* var985
/* : NativeString */;
3555 long var986
/* : Int */;
3556 val
* var987
/* : FlatString */;
3557 val
* var988
/* : Array[Object] */;
3558 long var989
/* : Int */;
3559 val
* var990
/* : NativeArray[Object] */;
3560 val
* var991
/* : String */;
3561 val
* var992
/* : Array[MType] */;
3562 val
* var994
/* : Array[MType] */;
3563 val
* var995
/* : nullable Object */;
3564 val
* var_mtype_elt
/* var mtype_elt: MType */;
3565 static val
* varonce996
;
3566 val
* var997
/* : String */;
3567 char* var998
/* : NativeString */;
3568 long var999
/* : Int */;
3569 val
* var1000
/* : FlatString */;
3570 static val
* varonce1001
;
3571 val
* var1002
/* : String */;
3572 char* var1003
/* : NativeString */;
3573 long var1004
/* : Int */;
3574 val
* var1005
/* : FlatString */;
3575 val
* var1006
/* : String */;
3576 static val
* varonce1007
;
3577 val
* var1008
/* : String */;
3578 char* var1009
/* : NativeString */;
3579 long var1010
/* : Int */;
3580 val
* var1011
/* : FlatString */;
3581 val
* var1012
/* : Array[Object] */;
3582 long var1013
/* : Int */;
3583 val
* var1014
/* : NativeArray[Object] */;
3584 val
* var1015
/* : String */;
3585 static val
* varonce1016
;
3586 val
* var1017
/* : String */;
3587 char* var1018
/* : NativeString */;
3588 long var1019
/* : Int */;
3589 val
* var1020
/* : FlatString */;
3590 val
* var1021
/* : Array[Object] */;
3591 long var1022
/* : Int */;
3592 val
* var1023
/* : NativeArray[Object] */;
3593 val
* var1024
/* : String */;
3594 static val
* varonce1025
;
3595 val
* var1026
/* : String */;
3596 char* var1027
/* : NativeString */;
3597 long var1028
/* : Int */;
3598 val
* var1029
/* : FlatString */;
3599 static val
* varonce1030
;
3600 val
* var1031
/* : String */;
3601 char* var1032
/* : NativeString */;
3602 long var1033
/* : Int */;
3603 val
* var1034
/* : FlatString */;
3604 val
* var1035
/* : Array[Object] */;
3605 long var1036
/* : Int */;
3606 val
* var1037
/* : NativeArray[Object] */;
3607 val
* var1038
/* : String */;
3608 static val
* varonce1039
;
3609 val
* var1040
/* : String */;
3610 char* var1041
/* : NativeString */;
3611 long var1042
/* : Int */;
3612 val
* var1043
/* : FlatString */;
3613 val
* var1044
/* : Array[Object] */;
3614 long var1045
/* : Int */;
3615 val
* var1046
/* : NativeArray[Object] */;
3616 val
* var1047
/* : String */;
3617 static val
* varonce1048
;
3618 val
* var1049
/* : String */;
3619 char* var1050
/* : NativeString */;
3620 long var1051
/* : Int */;
3621 val
* var1052
/* : FlatString */;
3622 static val
* varonce1053
;
3623 val
* var1054
/* : String */;
3624 char* var1055
/* : NativeString */;
3625 long var1056
/* : Int */;
3626 val
* var1057
/* : FlatString */;
3627 val
* var1058
/* : Array[Object] */;
3628 long var1059
/* : Int */;
3629 val
* var1060
/* : NativeArray[Object] */;
3630 val
* var1061
/* : String */;
3631 static val
* varonce1062
;
3632 val
* var1063
/* : String */;
3633 char* var1064
/* : NativeString */;
3634 long var1065
/* : Int */;
3635 val
* var1066
/* : FlatString */;
3636 short int var1067
/* : Bool */;
3637 val
* var1068
/* : MClass */;
3638 val
* var1070
/* : MClass */;
3639 val
* var1071
/* : MClassKind */;
3640 val
* var1073
/* : MClassKind */;
3641 val
* var1074
/* : MClassKind */;
3642 short int var1075
/* : Bool */;
3643 short int var1076
/* : Bool */;
3644 short int var1078
/* : Bool */;
3645 short int var1080
/* : Bool */;
3646 short int var_1081
/* var : Bool */;
3647 val
* var1082
/* : MClass */;
3648 val
* var1084
/* : MClass */;
3649 val
* var1085
/* : String */;
3650 val
* var1087
/* : String */;
3651 static val
* varonce1088
;
3652 val
* var1089
/* : String */;
3653 char* var1090
/* : NativeString */;
3654 long var1091
/* : Int */;
3655 val
* var1092
/* : FlatString */;
3656 short int var1093
/* : Bool */;
3657 short int var1094
/* : Bool */;
3658 short int var1096
/* : Bool */;
3659 short int var1097
/* : Bool */;
3660 short int var1098
/* : Bool */;
3661 val
* var1099
/* : MModule */;
3662 val
* var1101
/* : MModule */;
3663 val
* var1102
/* : MClassType */;
3664 short int var1104
/* : Bool */;
3665 val
* var1105
/* : MClassType */;
3666 static val
* varonce1106
;
3667 val
* var1107
/* : String */;
3668 char* var1108
/* : NativeString */;
3669 long var1109
/* : Int */;
3670 val
* var1110
/* : FlatString */;
3671 val
* var1111
/* : MClass */;
3672 val
* var1112
/* : MClassType */;
3673 val
* var1114
/* : MClassType */;
3674 val
* var_pointer_type
/* var pointer_type: MClassType */;
3675 static val
* varonce1115
;
3676 val
* var1116
/* : String */;
3677 char* var1117
/* : NativeString */;
3678 long var1118
/* : Int */;
3679 val
* var1119
/* : FlatString */;
3680 val
* var1120
/* : Array[Object] */;
3681 long var1121
/* : Int */;
3682 val
* var1122
/* : NativeArray[Object] */;
3683 val
* var1123
/* : String */;
3684 val
* var1124
/* : String */;
3685 static val
* varonce1125
;
3686 val
* var1126
/* : String */;
3687 char* var1127
/* : NativeString */;
3688 long var1128
/* : Int */;
3689 val
* var1129
/* : FlatString */;
3690 static val
* varonce1130
;
3691 val
* var1131
/* : String */;
3692 char* var1132
/* : NativeString */;
3693 long var1133
/* : Int */;
3694 val
* var1134
/* : FlatString */;
3695 val
* var1135
/* : Array[Object] */;
3696 long var1136
/* : Int */;
3697 val
* var1137
/* : NativeArray[Object] */;
3698 val
* var1138
/* : String */;
3699 static val
* varonce1139
;
3700 val
* var1140
/* : String */;
3701 char* var1141
/* : NativeString */;
3702 long var1142
/* : Int */;
3703 val
* var1143
/* : FlatString */;
3704 static val
* varonce1144
;
3705 val
* var1145
/* : String */;
3706 char* var1146
/* : NativeString */;
3707 long var1147
/* : Int */;
3708 val
* var1148
/* : FlatString */;
3709 val
* var1149
/* : Array[Object] */;
3710 long var1150
/* : Int */;
3711 val
* var1151
/* : NativeArray[Object] */;
3712 val
* var1152
/* : String */;
3713 val
* var1153
/* : String */;
3714 static val
* varonce1154
;
3715 val
* var1155
/* : String */;
3716 char* var1156
/* : NativeString */;
3717 long var1157
/* : Int */;
3718 val
* var1158
/* : FlatString */;
3719 static val
* varonce1159
;
3720 val
* var1160
/* : String */;
3721 char* var1161
/* : NativeString */;
3722 long var1162
/* : Int */;
3723 val
* var1163
/* : FlatString */;
3724 val
* var1164
/* : Array[Object] */;
3725 long var1165
/* : Int */;
3726 val
* var1166
/* : NativeArray[Object] */;
3727 val
* var1167
/* : String */;
3728 static val
* varonce1168
;
3729 val
* var1169
/* : String */;
3730 char* var1170
/* : NativeString */;
3731 long var1171
/* : Int */;
3732 val
* var1172
/* : FlatString */;
3733 val
* var1173
/* : Array[Object] */;
3734 long var1174
/* : Int */;
3735 val
* var1175
/* : NativeArray[Object] */;
3736 val
* var1176
/* : String */;
3737 static val
* varonce1177
;
3738 val
* var1178
/* : String */;
3739 char* var1179
/* : NativeString */;
3740 long var1180
/* : Int */;
3741 val
* var1181
/* : FlatString */;
3742 val
* var1182
/* : RuntimeVariable */;
3743 val
* var_res1183
/* var res: RuntimeVariable */;
3744 short int var1184
/* : Bool */;
3745 static val
* varonce1186
;
3746 val
* var1187
/* : String */;
3747 char* var1188
/* : NativeString */;
3748 long var1189
/* : Int */;
3749 val
* var1190
/* : FlatString */;
3750 val
* var1191
/* : String */;
3751 static val
* varonce1192
;
3752 val
* var1193
/* : String */;
3753 char* var1194
/* : NativeString */;
3754 long var1195
/* : Int */;
3755 val
* var1196
/* : FlatString */;
3756 val
* var1197
/* : Array[Object] */;
3757 long var1198
/* : Int */;
3758 val
* var1199
/* : NativeArray[Object] */;
3759 val
* var1200
/* : String */;
3760 static val
* varonce1201
;
3761 val
* var1202
/* : String */;
3762 char* var1203
/* : NativeString */;
3763 long var1204
/* : Int */;
3764 val
* var1205
/* : FlatString */;
3765 val
* var1206
/* : Array[Object] */;
3766 long var1207
/* : Int */;
3767 val
* var1208
/* : NativeArray[Object] */;
3768 val
* var1209
/* : String */;
3769 static val
* varonce1210
;
3770 val
* var1211
/* : String */;
3771 char* var1212
/* : NativeString */;
3772 long var1213
/* : Int */;
3773 val
* var1214
/* : FlatString */;
3774 static val
* varonce1215
;
3775 val
* var1216
/* : String */;
3776 char* var1217
/* : NativeString */;
3777 long var1218
/* : Int */;
3778 val
* var1219
/* : FlatString */;
3779 val
* var1220
/* : Array[Object] */;
3780 long var1221
/* : Int */;
3781 val
* var1222
/* : NativeArray[Object] */;
3782 val
* var1223
/* : String */;
3783 static val
* varonce1224
;
3784 val
* var1225
/* : String */;
3785 char* var1226
/* : NativeString */;
3786 long var1227
/* : Int */;
3787 val
* var1228
/* : FlatString */;
3788 val
* var1229
/* : String */;
3789 static val
* varonce1230
;
3790 val
* var1231
/* : String */;
3791 char* var1232
/* : NativeString */;
3792 long var1233
/* : Int */;
3793 val
* var1234
/* : FlatString */;
3794 static val
* varonce1235
;
3795 val
* var1236
/* : String */;
3796 char* var1237
/* : NativeString */;
3797 long var1238
/* : Int */;
3798 val
* var1239
/* : FlatString */;
3799 val
* var1240
/* : Array[Object] */;
3800 long var1241
/* : Int */;
3801 val
* var1242
/* : NativeArray[Object] */;
3802 val
* var1243
/* : String */;
3803 static val
* varonce1244
;
3804 val
* var1245
/* : String */;
3805 char* var1246
/* : NativeString */;
3806 long var1247
/* : Int */;
3807 val
* var1248
/* : FlatString */;
3808 static val
* varonce1249
;
3809 val
* var1250
/* : String */;
3810 char* var1251
/* : NativeString */;
3811 long var1252
/* : Int */;
3812 val
* var1253
/* : FlatString */;
3813 val
* var1254
/* : Array[Object] */;
3814 long var1255
/* : Int */;
3815 val
* var1256
/* : NativeArray[Object] */;
3816 val
* var1257
/* : String */;
3817 static val
* varonce1258
;
3818 val
* var1259
/* : String */;
3819 char* var1260
/* : NativeString */;
3820 long var1261
/* : Int */;
3821 val
* var1262
/* : FlatString */;
3822 static val
* varonce1263
;
3823 val
* var1264
/* : String */;
3824 char* var1265
/* : NativeString */;
3825 long var1266
/* : Int */;
3826 val
* var1267
/* : FlatString */;
3827 val
* var1268
/* : Array[Object] */;
3828 long var1269
/* : Int */;
3829 val
* var1270
/* : NativeArray[Object] */;
3830 val
* var1271
/* : String */;
3831 val
* var1272
/* : String */;
3832 static val
* varonce1273
;
3833 val
* var1274
/* : String */;
3834 char* var1275
/* : NativeString */;
3835 long var1276
/* : Int */;
3836 val
* var1277
/* : FlatString */;
3837 static val
* varonce1278
;
3838 val
* var1279
/* : String */;
3839 char* var1280
/* : NativeString */;
3840 long var1281
/* : Int */;
3841 val
* var1282
/* : FlatString */;
3842 val
* var1283
/* : Array[Object] */;
3843 long var1284
/* : Int */;
3844 val
* var1285
/* : NativeArray[Object] */;
3845 val
* var1286
/* : String */;
3846 static val
* varonce1287
;
3847 val
* var1288
/* : String */;
3848 char* var1289
/* : NativeString */;
3849 long var1290
/* : Int */;
3850 val
* var1291
/* : FlatString */;
3851 static val
* varonce1292
;
3852 val
* var1293
/* : String */;
3853 char* var1294
/* : NativeString */;
3854 long var1295
/* : Int */;
3855 val
* var1296
/* : FlatString */;
3856 val
* var1297
/* : Array[Object] */;
3857 long var1298
/* : Int */;
3858 val
* var1299
/* : NativeArray[Object] */;
3859 val
* var1300
/* : String */;
3860 val
* var1301
/* : String */;
3861 static val
* varonce1302
;
3862 val
* var1303
/* : String */;
3863 char* var1304
/* : NativeString */;
3864 long var1305
/* : Int */;
3865 val
* var1306
/* : FlatString */;
3866 static val
* varonce1307
;
3867 val
* var1308
/* : String */;
3868 char* var1309
/* : NativeString */;
3869 long var1310
/* : Int */;
3870 val
* var1311
/* : FlatString */;
3871 val
* var1312
/* : Array[Object] */;
3872 long var1313
/* : Int */;
3873 val
* var1314
/* : NativeArray[Object] */;
3874 val
* var1315
/* : String */;
3875 static val
* varonce1316
;
3876 val
* var1317
/* : String */;
3877 char* var1318
/* : NativeString */;
3878 long var1319
/* : Int */;
3879 val
* var1320
/* : FlatString */;
3880 val
* var1321
/* : Array[Object] */;
3881 long var1322
/* : Int */;
3882 val
* var1323
/* : NativeArray[Object] */;
3883 val
* var1324
/* : String */;
3884 static val
* varonce1325
;
3885 val
* var1326
/* : String */;
3886 char* var1327
/* : NativeString */;
3887 long var1328
/* : Int */;
3888 val
* var1329
/* : FlatString */;
3889 val
* var1330
/* : RuntimeVariable */;
3890 val
* var_res1331
/* var res: RuntimeVariable */;
3891 short int var1332
/* : Bool */;
3892 static val
* varonce1334
;
3893 val
* var1335
/* : String */;
3894 char* var1336
/* : NativeString */;
3895 long var1337
/* : Int */;
3896 val
* var1338
/* : FlatString */;
3897 long var1339
/* : Int */;
3898 long var1341
/* : Int */;
3899 static val
* varonce1342
;
3900 val
* var1343
/* : String */;
3901 char* var1344
/* : NativeString */;
3902 long var1345
/* : Int */;
3903 val
* var1346
/* : FlatString */;
3904 val
* var1347
/* : Array[Object] */;
3905 long var1348
/* : Int */;
3906 val
* var1349
/* : NativeArray[Object] */;
3907 val
* var1350
/* : Object */;
3908 val
* var1351
/* : String */;
3909 static val
* varonce1352
;
3910 val
* var1353
/* : String */;
3911 char* var1354
/* : NativeString */;
3912 long var1355
/* : Int */;
3913 val
* var1356
/* : FlatString */;
3914 val
* var1357
/* : Array[Object] */;
3915 long var1358
/* : Int */;
3916 val
* var1359
/* : NativeArray[Object] */;
3917 val
* var1360
/* : String */;
3918 static val
* varonce1361
;
3919 val
* var1362
/* : String */;
3920 char* var1363
/* : NativeString */;
3921 long var1364
/* : Int */;
3922 val
* var1365
/* : FlatString */;
3923 static val
* varonce1366
;
3924 val
* var1367
/* : String */;
3925 char* var1368
/* : NativeString */;
3926 long var1369
/* : Int */;
3927 val
* var1370
/* : FlatString */;
3928 val
* var1371
/* : Array[Object] */;
3929 long var1372
/* : Int */;
3930 val
* var1373
/* : NativeArray[Object] */;
3931 val
* var1374
/* : String */;
3932 static val
* varonce1375
;
3933 val
* var1376
/* : String */;
3934 char* var1377
/* : NativeString */;
3935 long var1378
/* : Int */;
3936 val
* var1379
/* : FlatString */;
3937 static val
* varonce1380
;
3938 val
* var1381
/* : String */;
3939 char* var1382
/* : NativeString */;
3940 long var1383
/* : Int */;
3941 val
* var1384
/* : FlatString */;
3942 val
* var1385
/* : Array[Object] */;
3943 long var1386
/* : Int */;
3944 val
* var1387
/* : NativeArray[Object] */;
3945 val
* var1388
/* : String */;
3946 static val
* varonce1389
;
3947 val
* var1390
/* : String */;
3948 char* var1391
/* : NativeString */;
3949 long var1392
/* : Int */;
3950 val
* var1393
/* : FlatString */;
3953 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:MClass> */
3954 var2
= var_mclass
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var_mclass:MClass> */
3955 if (unlikely(var2
== NULL
)) {
3956 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
3957 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
3965 { /* Inline model#MClassDef#bound_mtype (var) on <var:MClassDef> */
3966 var5
= var
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var:MClassDef> */
3967 if (unlikely(var5
== NULL
)) {
3968 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3969 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
3978 var6
= abstract_compiler__MClass__c_name(var_mclass
);
3982 { /* Inline separate_compiler#SeparateCompiler#method_tables (self) on <self:SeparateErasureCompiler> */
3983 var9
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_tables
].val
; /* _method_tables on <self:SeparateErasureCompiler> */
3984 if (unlikely(var9
== NULL
)) {
3985 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
3986 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 845);
3994 var10
= ((val
* (*)(val
*, val
*))(var7
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var7
, var_mclass
) /* [] on <var7:Map[MClass, Array[nullable MPropDef]]>*/;
3998 { /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on <self:SeparateErasureCompiler> */
3999 var13
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_tables
].val
; /* _attr_tables on <self:SeparateErasureCompiler> */
4000 if (unlikely(var13
== NULL
)) {
4001 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
4002 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 846);
4006 RET_LABEL12
:(void)0;
4010 var14
= ((val
* (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var11
, var_mclass
) /* [] on <var11:Map[MClass, Array[nullable MPropDef]]>*/;
4014 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables (self) on <self:SeparateErasureCompiler> */
4015 var17
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
; /* _class_tables on <self:SeparateErasureCompiler> */
4016 if (unlikely(var17
== NULL
)) {
4017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables");
4018 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 441);
4022 RET_LABEL16
:(void)0;
4026 var18
= ((val
* (*)(val
*, val
*))(var15
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var15
, var_mclass
) /* [] on <var15:Map[MClass, Array[nullable MClass]]>*/;
4028 var_class_table
= var18
;
4030 var19
= separate_erasure_compiler__SeparateErasureCompiler__new_visitor(self
);
4034 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateErasureCompiler> */
4035 var22
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateErasureCompiler> */
4037 RET_LABEL21
:(void)0;
4042 var_is_dead
= var23
;
4043 var28
= !var_is_dead
;
4047 if (var_rta
== NULL
) {
4048 var30
= 0; /* is null */
4050 var30
= 1; /* arg is null and recv is not */
4053 { /* Inline kernel#Object#!= (var_rta,var29) on <var_rta:nullable RapidTypeAnalysis> */
4056 var34
= ((short int (*)(val
*, val
*))(var_rta
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_rta
, var_other
) /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/;
4062 RET_LABEL32
:(void)0;
4073 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4074 var39
= var_rta
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4075 if (unlikely(var39
== NULL
)) {
4076 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
4077 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 62);
4081 RET_LABEL38
:(void)0;
4085 var40
= hash_collection__HashSet__has(var37
, var_mclass
);
4095 var43
= abstract_compiler__MClassType__ctype(var_mtype
);
4102 var47
= string__NativeString__to_s_with_length(var45
, var46
);
4107 var49
= string__FlatString___61d_61d(var43
, var44
);
4117 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
4118 var53
= var_mclass
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
4119 if (unlikely(var53
== NULL
)) {
4120 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4121 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
4125 RET_LABEL52
:(void)0;
4131 var56
= "NativeArray";
4133 var58
= string__NativeString__to_s_with_length(var56
, var57
);
4138 { /* Inline kernel#Object#!= (var51,var55) on <var51:String> */
4141 var63
= ((short int (*)(val
*, val
*))(var51
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var51
, var_other
) /* == on <var51:String>*/;
4147 RET_LABEL61
:(void)0;
4157 var_is_dead
= var65
;
4163 var68
= "/* runtime class ";
4165 var70
= string__NativeString__to_s_with_length(var68
, var69
);
4174 var75
= string__NativeString__to_s_with_length(var73
, var74
);
4178 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
4179 { /* var76 = array_instance Array[Object] */
4181 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
4182 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var67
;
4183 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var_c_name
;
4184 ((struct instance_array__NativeArray
*)var78
)->values
[2] = (val
*) var72
;
4186 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
4190 var79
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
4193 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var79
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4200 var84
= string__NativeString__to_s_with_length(var82
, var83
);
4204 var85
= NEW_array__Array(&type_array__Arraykernel__Object
);
4205 { /* var85 = array_instance Array[Object] */
4207 var87
= NEW_array__NativeArray(var86
, &type_array__NativeArraykernel__Object
);
4208 ((struct instance_array__NativeArray
*)var87
)->values
[0] = (val
*) var81
;
4209 ((struct instance_array__NativeArray
*)var87
)->values
[1] = (val
*) var_c_name
;
4211 ((void (*)(val
*, val
*, long))(var85
->class->vft
[COLOR_array__Array__with_native
]))(var85
, var87
, var86
) /* with_native on <var85:Array[Object]>*/;
4215 var88
= ((val
* (*)(val
*))(var85
->class->vft
[COLOR_string__Object__to_s
]))(var85
) /* to_s on <var85:Array[Object]>*/;
4220 var91
= "extern const struct class class_";
4222 var93
= string__NativeString__to_s_with_length(var91
, var92
);
4231 var98
= string__NativeString__to_s_with_length(var96
, var97
);
4235 var99
= NEW_array__Array(&type_array__Arraykernel__Object
);
4236 { /* var99 = array_instance Array[Object] */
4238 var101
= NEW_array__NativeArray(var100
, &type_array__NativeArraykernel__Object
);
4239 ((struct instance_array__NativeArray
*)var101
)->values
[0] = (val
*) var90
;
4240 ((struct instance_array__NativeArray
*)var101
)->values
[1] = (val
*) var_c_name
;
4241 ((struct instance_array__NativeArray
*)var101
)->values
[2] = (val
*) var95
;
4243 ((void (*)(val
*, val
*, long))(var99
->class->vft
[COLOR_array__Array__with_native
]))(var99
, var101
, var100
) /* with_native on <var99:Array[Object]>*/;
4247 var102
= ((val
* (*)(val
*))(var99
->class->vft
[COLOR_string__Object__to_s
]))(var99
) /* to_s on <var99:Array[Object]>*/;
4250 abstract_compiler__AbstractCompiler__provide_declaration(self
, var88
, var102
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
4253 var104
= varonce103
;
4255 var105
= "extern const struct type_table type_table_";
4257 var107
= string__NativeString__to_s_with_length(var105
, var106
);
4259 varonce103
= var104
;
4262 var109
= varonce108
;
4266 var112
= string__NativeString__to_s_with_length(var110
, var111
);
4268 varonce108
= var109
;
4270 var113
= NEW_array__Array(&type_array__Arraykernel__Object
);
4271 { /* var113 = array_instance Array[Object] */
4273 var115
= NEW_array__NativeArray(var114
, &type_array__NativeArraykernel__Object
);
4274 ((struct instance_array__NativeArray
*)var115
)->values
[0] = (val
*) var104
;
4275 ((struct instance_array__NativeArray
*)var115
)->values
[1] = (val
*) var_c_name
;
4276 ((struct instance_array__NativeArray
*)var115
)->values
[2] = (val
*) var109
;
4278 ((void (*)(val
*, val
*, long))(var113
->class->vft
[COLOR_array__Array__with_native
]))(var113
, var115
, var114
) /* with_native on <var113:Array[Object]>*/;
4282 var116
= ((val
* (*)(val
*))(var113
->class->vft
[COLOR_string__Object__to_s
]))(var113
) /* to_s on <var113:Array[Object]>*/;
4285 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var116
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4288 var118
= varonce117
;
4290 var119
= "const struct class class_";
4292 var121
= string__NativeString__to_s_with_length(var119
, var120
);
4294 varonce117
= var118
;
4297 var123
= varonce122
;
4301 var126
= string__NativeString__to_s_with_length(var124
, var125
);
4303 varonce122
= var123
;
4305 var127
= NEW_array__Array(&type_array__Arraykernel__Object
);
4306 { /* var127 = array_instance Array[Object] */
4308 var129
= NEW_array__NativeArray(var128
, &type_array__NativeArraykernel__Object
);
4309 ((struct instance_array__NativeArray
*)var129
)->values
[0] = (val
*) var118
;
4310 ((struct instance_array__NativeArray
*)var129
)->values
[1] = (val
*) var_c_name
;
4311 ((struct instance_array__NativeArray
*)var129
)->values
[2] = (val
*) var123
;
4313 ((void (*)(val
*, val
*, long))(var127
->class->vft
[COLOR_array__Array__with_native
]))(var127
, var129
, var128
) /* with_native on <var127:Array[Object]>*/;
4317 var130
= ((val
* (*)(val
*))(var127
->class->vft
[COLOR_string__Object__to_s
]))(var127
) /* to_s on <var127:Array[Object]>*/;
4320 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var130
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4323 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids (self) on <self:SeparateErasureCompiler> */
4324 var133
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
; /* _class_ids on <self:SeparateErasureCompiler> */
4325 if (unlikely(var133
== NULL
)) {
4326 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids");
4327 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 104);
4331 RET_LABEL132
:(void)0;
4335 var134
= ((val
* (*)(val
*, val
*))(var131
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var131
, var_mclass
) /* [] on <var131:Map[MClass, Int]>*/;
4338 var136
= varonce135
;
4342 var139
= string__NativeString__to_s_with_length(var137
, var138
);
4344 varonce135
= var136
;
4346 var140
= NEW_array__Array(&type_array__Arraykernel__Object
);
4347 { /* var140 = array_instance Array[Object] */
4349 var142
= NEW_array__NativeArray(var141
, &type_array__NativeArraykernel__Object
);
4350 ((struct instance_array__NativeArray
*)var142
)->values
[0] = (val
*) var134
;
4351 ((struct instance_array__NativeArray
*)var142
)->values
[1] = (val
*) var136
;
4353 ((void (*)(val
*, val
*, long))(var140
->class->vft
[COLOR_array__Array__with_native
]))(var140
, var142
, var141
) /* with_native on <var140:Array[Object]>*/;
4357 var143
= ((val
* (*)(val
*))(var140
->class->vft
[COLOR_string__Object__to_s
]))(var140
) /* to_s on <var140:Array[Object]>*/;
4360 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var143
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4363 var145
= varonce144
;
4367 var148
= string__NativeString__to_s_with_length(var146
, var147
);
4369 varonce144
= var145
;
4372 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
4373 var151
= var_mclass
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
4374 if (unlikely(var151
== NULL
)) {
4375 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4376 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
4380 RET_LABEL150
:(void)0;
4384 var153
= varonce152
;
4386 var154
= "\", /* class_name_string */";
4388 var156
= string__NativeString__to_s_with_length(var154
, var155
);
4390 varonce152
= var153
;
4392 var157
= NEW_array__Array(&type_array__Arraykernel__Object
);
4393 { /* var157 = array_instance Array[Object] */
4395 var159
= NEW_array__NativeArray(var158
, &type_array__NativeArraykernel__Object
);
4396 ((struct instance_array__NativeArray
*)var159
)->values
[0] = (val
*) var145
;
4397 ((struct instance_array__NativeArray
*)var159
)->values
[1] = (val
*) var149
;
4398 ((struct instance_array__NativeArray
*)var159
)->values
[2] = (val
*) var153
;
4400 ((void (*)(val
*, val
*, long))(var157
->class->vft
[COLOR_array__Array__with_native
]))(var157
, var159
, var158
) /* with_native on <var157:Array[Object]>*/;
4404 var160
= ((val
* (*)(val
*))(var157
->class->vft
[COLOR_string__Object__to_s
]))(var157
) /* to_s on <var157:Array[Object]>*/;
4407 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var160
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4410 var161
= separate_compiler__SeparateCompiler__box_kind_of(self
, var_mclass
);
4413 var163
= varonce162
;
4415 var164
= ", /* box_kind */";
4417 var166
= string__NativeString__to_s_with_length(var164
, var165
);
4419 varonce162
= var163
;
4421 var167
= NEW_array__Array(&type_array__Arraykernel__Object
);
4422 { /* var167 = array_instance Array[Object] */
4424 var169
= NEW_array__NativeArray(var168
, &type_array__NativeArraykernel__Object
);
4425 var170
= BOX_kernel__Int(var161
); /* autobox from Int to Object */
4426 ((struct instance_array__NativeArray
*)var169
)->values
[0] = (val
*) var170
;
4427 ((struct instance_array__NativeArray
*)var169
)->values
[1] = (val
*) var163
;
4429 ((void (*)(val
*, val
*, long))(var167
->class->vft
[COLOR_array__Array__with_native
]))(var167
, var169
, var168
) /* with_native on <var167:Array[Object]>*/;
4433 var171
= ((val
* (*)(val
*))(var167
->class->vft
[COLOR_string__Object__to_s
]))(var167
) /* to_s on <var167:Array[Object]>*/;
4436 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var171
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4439 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_colors (self) on <self:SeparateErasureCompiler> */
4440 var174
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_colors
].val
; /* _class_colors on <self:SeparateErasureCompiler> */
4441 if (unlikely(var174
== NULL
)) {
4442 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors");
4443 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 105);
4447 RET_LABEL173
:(void)0;
4451 var175
= ((val
* (*)(val
*, val
*))(var172
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var172
, var_mclass
) /* [] on <var172:Map[MClass, Int]>*/;
4454 var177
= varonce176
;
4458 var180
= string__NativeString__to_s_with_length(var178
, var179
);
4460 varonce176
= var177
;
4462 var181
= NEW_array__Array(&type_array__Arraykernel__Object
);
4463 { /* var181 = array_instance Array[Object] */
4465 var183
= NEW_array__NativeArray(var182
, &type_array__NativeArraykernel__Object
);
4466 ((struct instance_array__NativeArray
*)var183
)->values
[0] = (val
*) var175
;
4467 ((struct instance_array__NativeArray
*)var183
)->values
[1] = (val
*) var177
;
4469 ((void (*)(val
*, val
*, long))(var181
->class->vft
[COLOR_array__Array__with_native
]))(var181
, var183
, var182
) /* with_native on <var181:Array[Object]>*/;
4473 var184
= ((val
* (*)(val
*))(var181
->class->vft
[COLOR_string__Object__to_s
]))(var181
) /* to_s on <var181:Array[Object]>*/;
4476 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var184
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4478 var185
= !var_is_dead
;
4481 var186
= separate_erasure_compiler__SeparateErasureCompiler__build_class_vts_table(self
, var_mclass
);
4485 var188
= varonce187
;
4487 var189
= "vts_table_";
4489 var191
= string__NativeString__to_s_with_length(var189
, var190
);
4491 varonce187
= var188
;
4493 var192
= NEW_array__Array(&type_array__Arraykernel__Object
);
4494 { /* var192 = array_instance Array[Object] */
4496 var194
= NEW_array__NativeArray(var193
, &type_array__NativeArraykernel__Object
);
4497 ((struct instance_array__NativeArray
*)var194
)->values
[0] = (val
*) var188
;
4498 ((struct instance_array__NativeArray
*)var194
)->values
[1] = (val
*) var_c_name
;
4500 ((void (*)(val
*, val
*, long))(var192
->class->vft
[COLOR_array__Array__with_native
]))(var192
, var194
, var193
) /* with_native on <var192:Array[Object]>*/;
4504 var195
= ((val
* (*)(val
*))(var192
->class->vft
[COLOR_string__Object__to_s
]))(var192
) /* to_s on <var192:Array[Object]>*/;
4507 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var195
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
4510 var197
= varonce196
;
4512 var198
= "&vts_table_";
4514 var200
= string__NativeString__to_s_with_length(var198
, var199
);
4516 varonce196
= var197
;
4519 var202
= varonce201
;
4523 var205
= string__NativeString__to_s_with_length(var203
, var204
);
4525 varonce201
= var202
;
4527 var206
= NEW_array__Array(&type_array__Arraykernel__Object
);
4528 { /* var206 = array_instance Array[Object] */
4530 var208
= NEW_array__NativeArray(var207
, &type_array__NativeArraykernel__Object
);
4531 ((struct instance_array__NativeArray
*)var208
)->values
[0] = (val
*) var197
;
4532 ((struct instance_array__NativeArray
*)var208
)->values
[1] = (val
*) var_c_name
;
4533 ((struct instance_array__NativeArray
*)var208
)->values
[2] = (val
*) var202
;
4535 ((void (*)(val
*, val
*, long))(var206
->class->vft
[COLOR_array__Array__with_native
]))(var206
, var208
, var207
) /* with_native on <var206:Array[Object]>*/;
4539 var209
= ((val
* (*)(val
*))(var206
->class->vft
[COLOR_string__Object__to_s
]))(var206
) /* to_s on <var206:Array[Object]>*/;
4542 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var209
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4546 var211
= varonce210
;
4550 var214
= string__NativeString__to_s_with_length(var212
, var213
);
4552 varonce210
= var211
;
4555 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var211
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4559 var216
= varonce215
;
4561 var217
= "&type_table_";
4563 var219
= string__NativeString__to_s_with_length(var217
, var218
);
4565 varonce215
= var216
;
4568 var221
= varonce220
;
4572 var224
= string__NativeString__to_s_with_length(var222
, var223
);
4574 varonce220
= var221
;
4576 var225
= NEW_array__Array(&type_array__Arraykernel__Object
);
4577 { /* var225 = array_instance Array[Object] */
4579 var227
= NEW_array__NativeArray(var226
, &type_array__NativeArraykernel__Object
);
4580 ((struct instance_array__NativeArray
*)var227
)->values
[0] = (val
*) var216
;
4581 ((struct instance_array__NativeArray
*)var227
)->values
[1] = (val
*) var_c_name
;
4582 ((struct instance_array__NativeArray
*)var227
)->values
[2] = (val
*) var221
;
4584 ((void (*)(val
*, val
*, long))(var225
->class->vft
[COLOR_array__Array__with_native
]))(var225
, var227
, var226
) /* with_native on <var225:Array[Object]>*/;
4588 var228
= ((val
* (*)(val
*))(var225
->class->vft
[COLOR_string__Object__to_s
]))(var225
) /* to_s on <var225:Array[Object]>*/;
4591 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var228
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4594 var230
= varonce229
;
4598 var233
= string__NativeString__to_s_with_length(var231
, var232
);
4600 varonce229
= var230
;
4603 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var230
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4608 { /* Inline array#AbstractArrayRead#length (var_vft) on <var_vft:Array[nullable MPropDef]> */
4609 var237
= var_vft
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_vft:Array[nullable MPropDef]> */
4611 RET_LABEL236
:(void)0;
4617 { /* Inline kernel#Int#< (var_i,var_238) on <var_i:Int> */
4618 /* Covariant cast for argument 0 (i) <var_238:Int> isa OTHER */
4619 /* <var_238:Int> isa OTHER */
4620 var241
= 1; /* easy <var_238:Int> isa OTHER*/
4621 if (unlikely(!var241
)) {
4622 var_class_name
= type_kernel__Int
.name
;
4623 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
4624 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
4627 var242
= var_i
< var_238
;
4630 RET_LABEL240
:(void)0;
4635 var243
= array__Array___91d_93d(var_vft
, var_i
);
4637 var_mpropdef
= var243
;
4639 if (var_mpropdef
== NULL
) {
4640 var245
= 1; /* is null */
4642 var245
= 0; /* arg is null but recv is not */
4645 { /* Inline kernel#Object#== (var_mpropdef,var244) on <var_mpropdef:nullable MPropDef> */
4646 var_other248
= var244
;
4648 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other248) on <var_mpropdef:nullable MPropDef(MPropDef)> */
4649 var251
= var_mpropdef
== var_other248
;
4652 RET_LABEL250
:(void)0;
4657 RET_LABEL247
:(void)0;
4663 var253
= varonce252
;
4665 var254
= "NULL, /* empty */";
4667 var256
= string__NativeString__to_s_with_length(var254
, var255
);
4669 varonce252
= var253
;
4672 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var253
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4675 /* <var_mpropdef:nullable MPropDef(MPropDef)> isa MMethodDef */
4676 cltype258
= type_model__MMethodDef
.color
;
4677 idtype259
= type_model__MMethodDef
.id
;
4678 if(cltype258
>= var_mpropdef
->type
->table_size
) {
4681 var257
= var_mpropdef
->type
->type_table
[cltype258
] == idtype259
;
4683 if (unlikely(!var257
)) {
4684 PRINT_ERROR("Runtime error: %s", "Assert failed");
4685 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 259);
4689 if (var_rta
== NULL
) {
4690 var262
= 0; /* is null */
4692 var262
= 1; /* arg is null and recv is not */
4695 { /* Inline kernel#Object#!= (var_rta,var261) on <var_rta:nullable RapidTypeAnalysis> */
4698 var266
= ((short int (*)(val
*, val
*))(var_rta
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_rta
, var_other
) /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/;
4704 RET_LABEL264
:(void)0;
4711 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4712 var271
= var_rta
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4713 if (unlikely(var271
== NULL
)) {
4714 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
4715 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 72);
4719 RET_LABEL270
:(void)0;
4723 var272
= hash_collection__HashSet__has(var269
, var_mpropdef
);
4732 var275
= varonce274
;
4734 var276
= "NULL, /* DEAD ";
4736 var278
= string__NativeString__to_s_with_length(var276
, var277
);
4738 varonce274
= var275
;
4741 { /* Inline model#MClass#intro_mmodule (var_mclass) on <var_mclass:MClass> */
4742 var281
= var_mclass
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var_mclass:MClass> */
4743 if (unlikely(var281
== NULL
)) {
4744 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4745 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
4749 RET_LABEL280
:(void)0;
4753 var283
= varonce282
;
4757 var286
= string__NativeString__to_s_with_length(var284
, var285
);
4759 varonce282
= var283
;
4762 var288
= varonce287
;
4766 var291
= string__NativeString__to_s_with_length(var289
, var290
);
4768 varonce287
= var288
;
4771 var293
= varonce292
;
4775 var296
= string__NativeString__to_s_with_length(var294
, var295
);
4777 varonce292
= var293
;
4779 var297
= NEW_array__Array(&type_array__Arraykernel__Object
);
4780 { /* var297 = array_instance Array[Object] */
4782 var299
= NEW_array__NativeArray(var298
, &type_array__NativeArraykernel__Object
);
4783 ((struct instance_array__NativeArray
*)var299
)->values
[0] = (val
*) var275
;
4784 ((struct instance_array__NativeArray
*)var299
)->values
[1] = (val
*) var279
;
4785 ((struct instance_array__NativeArray
*)var299
)->values
[2] = (val
*) var283
;
4786 ((struct instance_array__NativeArray
*)var299
)->values
[3] = (val
*) var_mclass
;
4787 ((struct instance_array__NativeArray
*)var299
)->values
[4] = (val
*) var288
;
4788 ((struct instance_array__NativeArray
*)var299
)->values
[5] = (val
*) var_mpropdef
;
4789 ((struct instance_array__NativeArray
*)var299
)->values
[6] = (val
*) var293
;
4791 ((void (*)(val
*, val
*, long))(var297
->class->vft
[COLOR_array__Array__with_native
]))(var297
, var299
, var298
) /* with_native on <var297:Array[Object]>*/;
4795 var300
= ((val
* (*)(val
*))(var297
->class->vft
[COLOR_string__Object__to_s
]))(var297
) /* to_s on <var297:Array[Object]>*/;
4798 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var300
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4809 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
4810 var306
= var_mpropdef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:nullable MPropDef(MMethodDef)> */
4811 if (unlikely(var306
== NULL
)) {
4812 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4813 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
4817 RET_LABEL305
:(void)0;
4821 { /* Inline model#MClassDef#bound_mtype (var304) on <var304:MClassDef> */
4822 var309
= var304
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var304:MClassDef> */
4823 if (unlikely(var309
== NULL
)) {
4824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4825 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
4829 RET_LABEL308
:(void)0;
4833 var310
= abstract_compiler__MClassType__ctype(var307
);
4836 var312
= varonce311
;
4840 var315
= string__NativeString__to_s_with_length(var313
, var314
);
4842 varonce311
= var312
;
4845 { /* Inline kernel#Object#!= (var310,var312) on <var310:String> */
4848 var320
= ((short int (*)(val
*, val
*))(var310
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var310
, var_other
) /* == on <var310:String>*/;
4854 RET_LABEL318
:(void)0;
4862 var323
= varonce322
;
4864 var324
= "VIRTUAL_";
4866 var326
= string__NativeString__to_s_with_length(var324
, var325
);
4868 varonce322
= var323
;
4871 var327
= abstract_compiler__MPropDef__c_name(var_mpropdef
);
4873 var328
= NEW_array__Array(&type_array__Arraykernel__Object
);
4874 { /* var328 = array_instance Array[Object] */
4876 var330
= NEW_array__NativeArray(var329
, &type_array__NativeArraykernel__Object
);
4877 ((struct instance_array__NativeArray
*)var330
)->values
[0] = (val
*) var323
;
4878 ((struct instance_array__NativeArray
*)var330
)->values
[1] = (val
*) var327
;
4880 ((void (*)(val
*, val
*, long))(var328
->class->vft
[COLOR_array__Array__with_native
]))(var328
, var330
, var329
) /* with_native on <var328:Array[Object]>*/;
4884 var331
= ((val
* (*)(val
*))(var328
->class->vft
[COLOR_string__Object__to_s
]))(var328
) /* to_s on <var328:Array[Object]>*/;
4887 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var331
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
4890 var333
= varonce332
;
4892 var334
= "(nitmethod_t)VIRTUAL_";
4894 var336
= string__NativeString__to_s_with_length(var334
, var335
);
4896 varonce332
= var333
;
4899 var337
= abstract_compiler__MPropDef__c_name(var_mpropdef
);
4902 var339
= varonce338
;
4904 var340
= ", /* pointer to ";
4906 var342
= string__NativeString__to_s_with_length(var340
, var341
);
4908 varonce338
= var339
;
4911 { /* Inline model#MClass#intro_mmodule (var_mclass) on <var_mclass:MClass> */
4912 var345
= var_mclass
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var_mclass:MClass> */
4913 if (unlikely(var345
== NULL
)) {
4914 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4915 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
4919 RET_LABEL344
:(void)0;
4923 var347
= varonce346
;
4927 var350
= string__NativeString__to_s_with_length(var348
, var349
);
4929 varonce346
= var347
;
4932 var352
= varonce351
;
4936 var355
= string__NativeString__to_s_with_length(var353
, var354
);
4938 varonce351
= var352
;
4941 var357
= varonce356
;
4945 var360
= string__NativeString__to_s_with_length(var358
, var359
);
4947 varonce356
= var357
;
4949 var361
= NEW_array__Array(&type_array__Arraykernel__Object
);
4950 { /* var361 = array_instance Array[Object] */
4952 var363
= NEW_array__NativeArray(var362
, &type_array__NativeArraykernel__Object
);
4953 ((struct instance_array__NativeArray
*)var363
)->values
[0] = (val
*) var333
;
4954 ((struct instance_array__NativeArray
*)var363
)->values
[1] = (val
*) var337
;
4955 ((struct instance_array__NativeArray
*)var363
)->values
[2] = (val
*) var339
;
4956 ((struct instance_array__NativeArray
*)var363
)->values
[3] = (val
*) var343
;
4957 ((struct instance_array__NativeArray
*)var363
)->values
[4] = (val
*) var347
;
4958 ((struct instance_array__NativeArray
*)var363
)->values
[5] = (val
*) var_mclass
;
4959 ((struct instance_array__NativeArray
*)var363
)->values
[6] = (val
*) var352
;
4960 ((struct instance_array__NativeArray
*)var363
)->values
[7] = (val
*) var_mpropdef
;
4961 ((struct instance_array__NativeArray
*)var363
)->values
[8] = (val
*) var357
;
4963 ((void (*)(val
*, val
*, long))(var361
->class->vft
[COLOR_array__Array__with_native
]))(var361
, var363
, var362
) /* with_native on <var361:Array[Object]>*/;
4967 var364
= ((val
* (*)(val
*))(var361
->class->vft
[COLOR_string__Object__to_s
]))(var361
) /* to_s on <var361:Array[Object]>*/;
4970 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var364
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
4974 var365
= abstract_compiler__MPropDef__c_name(var_mpropdef
);
4976 var366
= NEW_array__Array(&type_array__Arraykernel__Object
);
4977 { /* var366 = array_instance Array[Object] */
4979 var368
= NEW_array__NativeArray(var367
, &type_array__NativeArraykernel__Object
);
4980 ((struct instance_array__NativeArray
*)var368
)->values
[0] = (val
*) var365
;
4982 ((void (*)(val
*, val
*, long))(var366
->class->vft
[COLOR_array__Array__with_native
]))(var366
, var368
, var367
) /* with_native on <var366:Array[Object]>*/;
4986 var369
= ((val
* (*)(val
*))(var366
->class->vft
[COLOR_string__Object__to_s
]))(var366
) /* to_s on <var366:Array[Object]>*/;
4989 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var369
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
4992 var371
= varonce370
;
4994 var372
= "(nitmethod_t)";
4996 var374
= string__NativeString__to_s_with_length(var372
, var373
);
4998 varonce370
= var371
;
5001 var375
= abstract_compiler__MPropDef__c_name(var_mpropdef
);
5004 var377
= varonce376
;
5006 var378
= ", /* pointer to ";
5008 var380
= string__NativeString__to_s_with_length(var378
, var379
);
5010 varonce376
= var377
;
5013 { /* Inline model#MClass#intro_mmodule (var_mclass) on <var_mclass:MClass> */
5014 var383
= var_mclass
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var_mclass:MClass> */
5015 if (unlikely(var383
== NULL
)) {
5016 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
5017 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
5021 RET_LABEL382
:(void)0;
5025 var385
= varonce384
;
5029 var388
= string__NativeString__to_s_with_length(var386
, var387
);
5031 varonce384
= var385
;
5034 var390
= varonce389
;
5038 var393
= string__NativeString__to_s_with_length(var391
, var392
);
5040 varonce389
= var390
;
5043 var395
= varonce394
;
5047 var398
= string__NativeString__to_s_with_length(var396
, var397
);
5049 varonce394
= var395
;
5051 var399
= NEW_array__Array(&type_array__Arraykernel__Object
);
5052 { /* var399 = array_instance Array[Object] */
5054 var401
= NEW_array__NativeArray(var400
, &type_array__NativeArraykernel__Object
);
5055 ((struct instance_array__NativeArray
*)var401
)->values
[0] = (val
*) var371
;
5056 ((struct instance_array__NativeArray
*)var401
)->values
[1] = (val
*) var375
;
5057 ((struct instance_array__NativeArray
*)var401
)->values
[2] = (val
*) var377
;
5058 ((struct instance_array__NativeArray
*)var401
)->values
[3] = (val
*) var381
;
5059 ((struct instance_array__NativeArray
*)var401
)->values
[4] = (val
*) var385
;
5060 ((struct instance_array__NativeArray
*)var401
)->values
[5] = (val
*) var_mclass
;
5061 ((struct instance_array__NativeArray
*)var401
)->values
[6] = (val
*) var390
;
5062 ((struct instance_array__NativeArray
*)var401
)->values
[7] = (val
*) var_mpropdef
;
5063 ((struct instance_array__NativeArray
*)var401
)->values
[8] = (val
*) var395
;
5065 ((void (*)(val
*, val
*, long))(var399
->class->vft
[COLOR_array__Array__with_native
]))(var399
, var401
, var400
) /* with_native on <var399:Array[Object]>*/;
5069 var402
= ((val
* (*)(val
*))(var399
->class->vft
[COLOR_string__Object__to_s
]))(var399
) /* to_s on <var399:Array[Object]>*/;
5072 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var402
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5076 BREAK_label
: (void)0;
5079 var404
= kernel__Int__successor(var_i
, var403
);
5083 goto BREAK_label405
;
5086 BREAK_label405
: (void)0;
5088 var407
= varonce406
;
5092 var410
= string__NativeString__to_s_with_length(var408
, var409
);
5094 varonce406
= var407
;
5097 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var407
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5102 var412
= varonce411
;
5106 var415
= string__NativeString__to_s_with_length(var413
, var414
);
5108 varonce411
= var412
;
5111 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var412
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5114 var417
= varonce416
;
5116 var418
= "const struct type_table type_table_";
5118 var420
= string__NativeString__to_s_with_length(var418
, var419
);
5120 varonce416
= var417
;
5123 var422
= varonce421
;
5127 var425
= string__NativeString__to_s_with_length(var423
, var424
);
5129 varonce421
= var422
;
5131 var426
= NEW_array__Array(&type_array__Arraykernel__Object
);
5132 { /* var426 = array_instance Array[Object] */
5134 var428
= NEW_array__NativeArray(var427
, &type_array__NativeArraykernel__Object
);
5135 ((struct instance_array__NativeArray
*)var428
)->values
[0] = (val
*) var417
;
5136 ((struct instance_array__NativeArray
*)var428
)->values
[1] = (val
*) var_c_name
;
5137 ((struct instance_array__NativeArray
*)var428
)->values
[2] = (val
*) var422
;
5139 ((void (*)(val
*, val
*, long))(var426
->class->vft
[COLOR_array__Array__with_native
]))(var426
, var428
, var427
) /* with_native on <var426:Array[Object]>*/;
5143 var429
= ((val
* (*)(val
*))(var426
->class->vft
[COLOR_string__Object__to_s
]))(var426
) /* to_s on <var426:Array[Object]>*/;
5146 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var429
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5149 { /* Inline array#AbstractArrayRead#length (var_class_table) on <var_class_table:Array[nullable MClass]> */
5150 var432
= var_class_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_class_table:Array[nullable MClass]> */
5152 RET_LABEL431
:(void)0;
5156 var434
= varonce433
;
5160 var437
= string__NativeString__to_s_with_length(var435
, var436
);
5162 varonce433
= var434
;
5164 var438
= NEW_array__Array(&type_array__Arraykernel__Object
);
5165 { /* var438 = array_instance Array[Object] */
5167 var440
= NEW_array__NativeArray(var439
, &type_array__NativeArraykernel__Object
);
5168 var441
= BOX_kernel__Int(var430
); /* autobox from Int to Object */
5169 ((struct instance_array__NativeArray
*)var440
)->values
[0] = (val
*) var441
;
5170 ((struct instance_array__NativeArray
*)var440
)->values
[1] = (val
*) var434
;
5172 ((void (*)(val
*, val
*, long))(var438
->class->vft
[COLOR_array__Array__with_native
]))(var438
, var440
, var439
) /* with_native on <var438:Array[Object]>*/;
5176 var442
= ((val
* (*)(val
*))(var438
->class->vft
[COLOR_string__Object__to_s
]))(var438
) /* to_s on <var438:Array[Object]>*/;
5179 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var442
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5182 var444
= varonce443
;
5186 var447
= string__NativeString__to_s_with_length(var445
, var446
);
5188 varonce443
= var444
;
5191 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var444
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5193 var_448
= var_class_table
;
5195 var449
= array__AbstractArrayRead__iterator(var_448
);
5200 var451
= array__ArrayIterator__is_ok(var_450
);
5204 var452
= array__ArrayIterator__item(var_450
);
5206 var_msuper
= var452
;
5208 if (var_msuper
== NULL
) {
5209 var454
= 1; /* is null */
5211 var454
= 0; /* arg is null but recv is not */
5214 { /* Inline kernel#Object#== (var_msuper,var453) on <var_msuper:nullable MClass> */
5215 var_other248
= var453
;
5217 { /* Inline kernel#Object#is_same_instance (var_msuper,var_other248) on <var_msuper:nullable MClass(MClass)> */
5218 var459
= var_msuper
== var_other248
;
5221 RET_LABEL458
:(void)0;
5226 RET_LABEL456
:(void)0;
5232 var461
= varonce460
;
5234 var462
= "-1, /* empty */";
5236 var464
= string__NativeString__to_s_with_length(var462
, var463
);
5238 varonce460
= var461
;
5241 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var461
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5245 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids (self) on <self:SeparateErasureCompiler> */
5246 var467
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_ids
].val
; /* _class_ids on <self:SeparateErasureCompiler> */
5247 if (unlikely(var467
== NULL
)) {
5248 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids");
5249 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 104);
5253 RET_LABEL466
:(void)0;
5257 var468
= ((val
* (*)(val
*, val
*))(var465
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var465
, var_msuper
) /* [] on <var465:Map[MClass, Int]>*/;
5260 var470
= varonce469
;
5264 var473
= string__NativeString__to_s_with_length(var471
, var472
);
5266 varonce469
= var470
;
5269 var475
= varonce474
;
5273 var478
= string__NativeString__to_s_with_length(var476
, var477
);
5275 varonce474
= var475
;
5277 var479
= NEW_array__Array(&type_array__Arraykernel__Object
);
5278 { /* var479 = array_instance Array[Object] */
5280 var481
= NEW_array__NativeArray(var480
, &type_array__NativeArraykernel__Object
);
5281 ((struct instance_array__NativeArray
*)var481
)->values
[0] = (val
*) var468
;
5282 ((struct instance_array__NativeArray
*)var481
)->values
[1] = (val
*) var470
;
5283 ((struct instance_array__NativeArray
*)var481
)->values
[2] = (val
*) var_msuper
;
5284 ((struct instance_array__NativeArray
*)var481
)->values
[3] = (val
*) var475
;
5286 ((void (*)(val
*, val
*, long))(var479
->class->vft
[COLOR_array__Array__with_native
]))(var479
, var481
, var480
) /* with_native on <var479:Array[Object]>*/;
5290 var482
= ((val
* (*)(val
*))(var479
->class->vft
[COLOR_string__Object__to_s
]))(var479
) /* to_s on <var479:Array[Object]>*/;
5293 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var482
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5297 array__ArrayIterator__next(var_450
); /* Direct call array#ArrayIterator#next on <var_450:ArrayIterator[nullable MClass]>*/
5300 goto BREAK_label483
;
5303 BREAK_label483
: (void)0;
5305 { /* Inline abstract_collection#Iterator#finish (var_450) on <var_450:ArrayIterator[nullable MClass]> */
5306 RET_LABEL484
:(void)0;
5310 var486
= varonce485
;
5314 var489
= string__NativeString__to_s_with_length(var487
, var488
);
5316 varonce485
= var486
;
5319 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var486
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5322 var491
= varonce490
;
5326 var494
= string__NativeString__to_s_with_length(var492
, var493
);
5328 varonce490
= var491
;
5331 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var491
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5334 var496
= abstract_compiler__MClassType__ctype(var_mtype
);
5337 var498
= varonce497
;
5341 var501
= string__NativeString__to_s_with_length(var499
, var500
);
5343 varonce497
= var498
;
5346 { /* Inline kernel#Object#!= (var496,var498) on <var496:String> */
5349 var506
= ((short int (*)(val
*, val
*))(var496
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var496
, var_other
) /* == on <var496:String>*/;
5355 RET_LABEL504
:(void)0;
5364 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
5365 var511
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
5366 if (unlikely(var511
== NULL
)) {
5367 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5368 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5372 RET_LABEL510
:(void)0;
5376 { /* Inline model#MClass#name (var509) on <var509:MClass> */
5377 var514
= var509
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var509:MClass> */
5378 if (unlikely(var514
== NULL
)) {
5379 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5380 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
5384 RET_LABEL513
:(void)0;
5388 var516
= varonce515
;
5392 var519
= string__NativeString__to_s_with_length(var517
, var518
);
5394 varonce515
= var516
;
5397 var521
= string__FlatString___61d_61d(var512
, var516
);
5404 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5405 var524
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5406 if (unlikely(var524
== NULL
)) {
5407 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5408 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
5412 RET_LABEL523
:(void)0;
5416 var526
= varonce525
;
5418 var527
= "struct instance_";
5420 var529
= string__NativeString__to_s_with_length(var527
, var528
);
5422 varonce525
= var526
;
5425 var531
= varonce530
;
5429 var534
= string__NativeString__to_s_with_length(var532
, var533
);
5431 varonce530
= var531
;
5433 var535
= NEW_array__Array(&type_array__Arraykernel__Object
);
5434 { /* var535 = array_instance Array[Object] */
5436 var537
= NEW_array__NativeArray(var536
, &type_array__NativeArraykernel__Object
);
5437 ((struct instance_array__NativeArray
*)var537
)->values
[0] = (val
*) var526
;
5438 ((struct instance_array__NativeArray
*)var537
)->values
[1] = (val
*) var_c_name
;
5439 ((struct instance_array__NativeArray
*)var537
)->values
[2] = (val
*) var531
;
5441 ((void (*)(val
*, val
*, long))(var535
->class->vft
[COLOR_array__Array__with_native
]))(var535
, var537
, var536
) /* with_native on <var535:Array[Object]>*/;
5445 var538
= ((val
* (*)(val
*))(var535
->class->vft
[COLOR_string__Object__to_s
]))(var535
) /* to_s on <var535:Array[Object]>*/;
5448 abstract_compiler__CodeWriter__add_decl(var522
, var538
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var522:CodeWriter>*/
5451 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5452 var541
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5453 if (unlikely(var541
== NULL
)) {
5454 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5455 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
5459 RET_LABEL540
:(void)0;
5463 var543
= varonce542
;
5465 var544
= "const struct class *class;";
5467 var546
= string__NativeString__to_s_with_length(var544
, var545
);
5469 varonce542
= var543
;
5472 abstract_compiler__CodeWriter__add_decl(var539
, var543
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var539:CodeWriter>*/
5475 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5476 var549
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5477 if (unlikely(var549
== NULL
)) {
5478 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5479 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
5483 RET_LABEL548
:(void)0;
5487 var550
= abstract_compiler__MClassType__ctype(var_mtype
);
5490 var552
= varonce551
;
5494 var555
= string__NativeString__to_s_with_length(var553
, var554
);
5496 varonce551
= var552
;
5498 var556
= NEW_array__Array(&type_array__Arraykernel__Object
);
5499 { /* var556 = array_instance Array[Object] */
5501 var558
= NEW_array__NativeArray(var557
, &type_array__NativeArraykernel__Object
);
5502 ((struct instance_array__NativeArray
*)var558
)->values
[0] = (val
*) var550
;
5503 ((struct instance_array__NativeArray
*)var558
)->values
[1] = (val
*) var552
;
5505 ((void (*)(val
*, val
*, long))(var556
->class->vft
[COLOR_array__Array__with_native
]))(var556
, var558
, var557
) /* with_native on <var556:Array[Object]>*/;
5509 var559
= ((val
* (*)(val
*))(var556
->class->vft
[COLOR_string__Object__to_s
]))(var556
) /* to_s on <var556:Array[Object]>*/;
5512 abstract_compiler__CodeWriter__add_decl(var547
, var559
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var547:CodeWriter>*/
5515 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
5516 var562
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
5517 if (unlikely(var562
== NULL
)) {
5518 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5519 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
5523 RET_LABEL561
:(void)0;
5527 var564
= varonce563
;
5531 var567
= string__NativeString__to_s_with_length(var565
, var566
);
5533 varonce563
= var564
;
5536 abstract_compiler__CodeWriter__add_decl(var560
, var564
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var560:CodeWriter>*/
5539 var569
= varonce568
;
5543 var572
= string__NativeString__to_s_with_length(var570
, var571
);
5545 varonce568
= var569
;
5547 var573
= NEW_array__Array(&type_array__Arraykernel__Object
);
5548 { /* var573 = array_instance Array[Object] */
5550 var575
= NEW_array__NativeArray(var574
, &type_array__NativeArraykernel__Object
);
5551 ((struct instance_array__NativeArray
*)var575
)->values
[0] = (val
*) var569
;
5552 ((struct instance_array__NativeArray
*)var575
)->values
[1] = (val
*) var_c_name
;
5554 ((void (*)(val
*, val
*, long))(var573
->class->vft
[COLOR_array__Array__with_native
]))(var573
, var575
, var574
) /* with_native on <var573:Array[Object]>*/;
5558 var576
= ((val
* (*)(val
*))(var573
->class->vft
[COLOR_string__Object__to_s
]))(var573
) /* to_s on <var573:Array[Object]>*/;
5561 var578
= varonce577
;
5563 var579
= "val* BOX_";
5565 var581
= string__NativeString__to_s_with_length(var579
, var580
);
5567 varonce577
= var578
;
5570 var583
= varonce582
;
5574 var586
= string__NativeString__to_s_with_length(var584
, var585
);
5576 varonce582
= var583
;
5579 var587
= abstract_compiler__MClassType__ctype(var_mtype
);
5582 var589
= varonce588
;
5586 var592
= string__NativeString__to_s_with_length(var590
, var591
);
5588 varonce588
= var589
;
5590 var593
= NEW_array__Array(&type_array__Arraykernel__Object
);
5591 { /* var593 = array_instance Array[Object] */
5593 var595
= NEW_array__NativeArray(var594
, &type_array__NativeArraykernel__Object
);
5594 ((struct instance_array__NativeArray
*)var595
)->values
[0] = (val
*) var578
;
5595 ((struct instance_array__NativeArray
*)var595
)->values
[1] = (val
*) var_c_name
;
5596 ((struct instance_array__NativeArray
*)var595
)->values
[2] = (val
*) var583
;
5597 ((struct instance_array__NativeArray
*)var595
)->values
[3] = (val
*) var587
;
5598 ((struct instance_array__NativeArray
*)var595
)->values
[4] = (val
*) var589
;
5600 ((void (*)(val
*, val
*, long))(var593
->class->vft
[COLOR_array__Array__with_native
]))(var593
, var595
, var594
) /* with_native on <var593:Array[Object]>*/;
5604 var596
= ((val
* (*)(val
*))(var593
->class->vft
[COLOR_string__Object__to_s
]))(var593
) /* to_s on <var593:Array[Object]>*/;
5607 abstract_compiler__AbstractCompiler__provide_declaration(self
, var576
, var596
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
5610 var598
= varonce597
;
5612 var599
= "/* allocate ";
5614 var601
= string__NativeString__to_s_with_length(var599
, var600
);
5616 varonce597
= var598
;
5619 var603
= varonce602
;
5623 var606
= string__NativeString__to_s_with_length(var604
, var605
);
5625 varonce602
= var603
;
5627 var607
= NEW_array__Array(&type_array__Arraykernel__Object
);
5628 { /* var607 = array_instance Array[Object] */
5630 var609
= NEW_array__NativeArray(var608
, &type_array__NativeArraykernel__Object
);
5631 ((struct instance_array__NativeArray
*)var609
)->values
[0] = (val
*) var598
;
5632 ((struct instance_array__NativeArray
*)var609
)->values
[1] = (val
*) var_mtype
;
5633 ((struct instance_array__NativeArray
*)var609
)->values
[2] = (val
*) var603
;
5635 ((void (*)(val
*, val
*, long))(var607
->class->vft
[COLOR_array__Array__with_native
]))(var607
, var609
, var608
) /* with_native on <var607:Array[Object]>*/;
5639 var610
= ((val
* (*)(val
*))(var607
->class->vft
[COLOR_string__Object__to_s
]))(var607
) /* to_s on <var607:Array[Object]>*/;
5642 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var610
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5645 var612
= varonce611
;
5647 var613
= "val* BOX_";
5649 var615
= string__NativeString__to_s_with_length(var613
, var614
);
5651 varonce611
= var612
;
5654 var616
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
5657 var618
= varonce617
;
5661 var621
= string__NativeString__to_s_with_length(var619
, var620
);
5663 varonce617
= var618
;
5666 var622
= abstract_compiler__MClassType__ctype(var_mtype
);
5669 var624
= varonce623
;
5671 var625
= " value) {";
5673 var627
= string__NativeString__to_s_with_length(var625
, var626
);
5675 varonce623
= var624
;
5677 var628
= NEW_array__Array(&type_array__Arraykernel__Object
);
5678 { /* var628 = array_instance Array[Object] */
5680 var630
= NEW_array__NativeArray(var629
, &type_array__NativeArraykernel__Object
);
5681 ((struct instance_array__NativeArray
*)var630
)->values
[0] = (val
*) var612
;
5682 ((struct instance_array__NativeArray
*)var630
)->values
[1] = (val
*) var616
;
5683 ((struct instance_array__NativeArray
*)var630
)->values
[2] = (val
*) var618
;
5684 ((struct instance_array__NativeArray
*)var630
)->values
[3] = (val
*) var622
;
5685 ((struct instance_array__NativeArray
*)var630
)->values
[4] = (val
*) var624
;
5687 ((void (*)(val
*, val
*, long))(var628
->class->vft
[COLOR_array__Array__with_native
]))(var628
, var630
, var629
) /* with_native on <var628:Array[Object]>*/;
5691 var631
= ((val
* (*)(val
*))(var628
->class->vft
[COLOR_string__Object__to_s
]))(var628
) /* to_s on <var628:Array[Object]>*/;
5694 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var631
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5697 var633
= varonce632
;
5699 var634
= "struct instance_";
5701 var636
= string__NativeString__to_s_with_length(var634
, var635
);
5703 varonce632
= var633
;
5706 var638
= varonce637
;
5708 var639
= "*res = nit_alloc(sizeof(struct instance_";
5710 var641
= string__NativeString__to_s_with_length(var639
, var640
);
5712 varonce637
= var638
;
5715 var643
= varonce642
;
5719 var646
= string__NativeString__to_s_with_length(var644
, var645
);
5721 varonce642
= var643
;
5723 var647
= NEW_array__Array(&type_array__Arraykernel__Object
);
5724 { /* var647 = array_instance Array[Object] */
5726 var649
= NEW_array__NativeArray(var648
, &type_array__NativeArraykernel__Object
);
5727 ((struct instance_array__NativeArray
*)var649
)->values
[0] = (val
*) var633
;
5728 ((struct instance_array__NativeArray
*)var649
)->values
[1] = (val
*) var_c_name
;
5729 ((struct instance_array__NativeArray
*)var649
)->values
[2] = (val
*) var638
;
5730 ((struct instance_array__NativeArray
*)var649
)->values
[3] = (val
*) var_c_name
;
5731 ((struct instance_array__NativeArray
*)var649
)->values
[4] = (val
*) var643
;
5733 ((void (*)(val
*, val
*, long))(var647
->class->vft
[COLOR_array__Array__with_native
]))(var647
, var649
, var648
) /* with_native on <var647:Array[Object]>*/;
5737 var650
= ((val
* (*)(val
*))(var647
->class->vft
[COLOR_string__Object__to_s
]))(var647
) /* to_s on <var647:Array[Object]>*/;
5740 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var650
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5743 var652
= varonce651
;
5747 var655
= string__NativeString__to_s_with_length(var653
, var654
);
5749 varonce651
= var652
;
5751 var656
= NEW_array__Array(&type_array__Arraykernel__Object
);
5752 { /* var656 = array_instance Array[Object] */
5754 var658
= NEW_array__NativeArray(var657
, &type_array__NativeArraykernel__Object
);
5755 ((struct instance_array__NativeArray
*)var658
)->values
[0] = (val
*) var652
;
5756 ((struct instance_array__NativeArray
*)var658
)->values
[1] = (val
*) var_c_name
;
5758 ((void (*)(val
*, val
*, long))(var656
->class->vft
[COLOR_array__Array__with_native
]))(var656
, var658
, var657
) /* with_native on <var656:Array[Object]>*/;
5762 var659
= ((val
* (*)(val
*))(var656
->class->vft
[COLOR_string__Object__to_s
]))(var656
) /* to_s on <var656:Array[Object]>*/;
5765 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var659
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
5768 var661
= varonce660
;
5770 var662
= "res->class = &class_";
5772 var664
= string__NativeString__to_s_with_length(var662
, var663
);
5774 varonce660
= var661
;
5777 var666
= varonce665
;
5781 var669
= string__NativeString__to_s_with_length(var667
, var668
);
5783 varonce665
= var666
;
5785 var670
= NEW_array__Array(&type_array__Arraykernel__Object
);
5786 { /* var670 = array_instance Array[Object] */
5788 var672
= NEW_array__NativeArray(var671
, &type_array__NativeArraykernel__Object
);
5789 ((struct instance_array__NativeArray
*)var672
)->values
[0] = (val
*) var661
;
5790 ((struct instance_array__NativeArray
*)var672
)->values
[1] = (val
*) var_c_name
;
5791 ((struct instance_array__NativeArray
*)var672
)->values
[2] = (val
*) var666
;
5793 ((void (*)(val
*, val
*, long))(var670
->class->vft
[COLOR_array__Array__with_native
]))(var670
, var672
, var671
) /* with_native on <var670:Array[Object]>*/;
5797 var673
= ((val
* (*)(val
*))(var670
->class->vft
[COLOR_string__Object__to_s
]))(var670
) /* to_s on <var670:Array[Object]>*/;
5800 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var673
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5803 var675
= varonce674
;
5805 var676
= "res->value = value;";
5807 var678
= string__NativeString__to_s_with_length(var676
, var677
);
5809 varonce674
= var675
;
5812 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var675
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5815 var680
= varonce679
;
5817 var681
= "return (val*)res;";
5819 var683
= string__NativeString__to_s_with_length(var681
, var682
);
5821 varonce679
= var680
;
5824 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var680
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5827 var685
= varonce684
;
5831 var688
= string__NativeString__to_s_with_length(var686
, var687
);
5833 varonce684
= var685
;
5836 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var685
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
5839 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
5840 var691
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
5841 if (unlikely(var691
== NULL
)) {
5842 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5843 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5847 RET_LABEL690
:(void)0;
5851 { /* Inline model#MClass#name (var689) on <var689:MClass> */
5852 var694
= var689
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var689:MClass> */
5853 if (unlikely(var694
== NULL
)) {
5854 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5855 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
5859 RET_LABEL693
:(void)0;
5863 var696
= varonce695
;
5867 var699
= string__NativeString__to_s_with_length(var697
, var698
);
5869 varonce695
= var696
;
5872 { /* Inline kernel#Object#!= (var692,var696) on <var692:String> */
5875 var704
= ((short int (*)(val
*, val
*))(var692
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var692
, var_other
) /* == on <var692:String>*/;
5881 RET_LABEL702
:(void)0;
5890 var706
= separate_erasure_compiler__SeparateErasureCompiler__new_visitor(self
);
5894 var708
= varonce707
;
5898 var711
= string__NativeString__to_s_with_length(var709
, var710
);
5900 varonce707
= var708
;
5902 var712
= NEW_array__Array(&type_array__Arraykernel__Object
);
5903 { /* var712 = array_instance Array[Object] */
5905 var714
= NEW_array__NativeArray(var713
, &type_array__NativeArraykernel__Object
);
5906 ((struct instance_array__NativeArray
*)var714
)->values
[0] = (val
*) var708
;
5907 ((struct instance_array__NativeArray
*)var714
)->values
[1] = (val
*) var_c_name
;
5909 ((void (*)(val
*, val
*, long))(var712
->class->vft
[COLOR_array__Array__with_native
]))(var712
, var714
, var713
) /* with_native on <var712:Array[Object]>*/;
5913 var715
= ((val
* (*)(val
*))(var712
->class->vft
[COLOR_string__Object__to_s
]))(var712
) /* to_s on <var712:Array[Object]>*/;
5916 var716
= abstract_compiler__MClassType__ctype(var_mtype
);
5919 var718
= varonce717
;
5923 var721
= string__NativeString__to_s_with_length(var719
, var720
);
5925 varonce717
= var718
;
5928 var723
= varonce722
;
5932 var726
= string__NativeString__to_s_with_length(var724
, var725
);
5934 varonce722
= var723
;
5936 var727
= NEW_array__Array(&type_array__Arraykernel__Object
);
5937 { /* var727 = array_instance Array[Object] */
5939 var729
= NEW_array__NativeArray(var728
, &type_array__NativeArraykernel__Object
);
5940 ((struct instance_array__NativeArray
*)var729
)->values
[0] = (val
*) var716
;
5941 ((struct instance_array__NativeArray
*)var729
)->values
[1] = (val
*) var718
;
5942 ((struct instance_array__NativeArray
*)var729
)->values
[2] = (val
*) var_c_name
;
5943 ((struct instance_array__NativeArray
*)var729
)->values
[3] = (val
*) var723
;
5945 ((void (*)(val
*, val
*, long))(var727
->class->vft
[COLOR_array__Array__with_native
]))(var727
, var729
, var728
) /* with_native on <var727:Array[Object]>*/;
5949 var730
= ((val
* (*)(val
*))(var727
->class->vft
[COLOR_string__Object__to_s
]))(var727
) /* to_s on <var727:Array[Object]>*/;
5952 abstract_compiler__AbstractCompiler__provide_declaration(self
, var715
, var730
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
5955 var732
= varonce731
;
5957 var733
= "/* allocate ";
5959 var735
= string__NativeString__to_s_with_length(var733
, var734
);
5961 varonce731
= var732
;
5964 var737
= varonce736
;
5968 var740
= string__NativeString__to_s_with_length(var738
, var739
);
5970 varonce736
= var737
;
5972 var741
= NEW_array__Array(&type_array__Arraykernel__Object
);
5973 { /* var741 = array_instance Array[Object] */
5975 var743
= NEW_array__NativeArray(var742
, &type_array__NativeArraykernel__Object
);
5976 ((struct instance_array__NativeArray
*)var743
)->values
[0] = (val
*) var732
;
5977 ((struct instance_array__NativeArray
*)var743
)->values
[1] = (val
*) var_mtype
;
5978 ((struct instance_array__NativeArray
*)var743
)->values
[2] = (val
*) var737
;
5980 ((void (*)(val
*, val
*, long))(var741
->class->vft
[COLOR_array__Array__with_native
]))(var741
, var743
, var742
) /* with_native on <var741:Array[Object]>*/;
5984 var744
= ((val
* (*)(val
*))(var741
->class->vft
[COLOR_string__Object__to_s
]))(var741
) /* to_s on <var741:Array[Object]>*/;
5987 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var744
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
5990 var745
= abstract_compiler__MClassType__ctype(var_mtype
);
5993 var747
= varonce746
;
5997 var750
= string__NativeString__to_s_with_length(var748
, var749
);
5999 varonce746
= var747
;
6002 var752
= varonce751
;
6006 var755
= string__NativeString__to_s_with_length(var753
, var754
);
6008 varonce751
= var752
;
6010 var756
= NEW_array__Array(&type_array__Arraykernel__Object
);
6011 { /* var756 = array_instance Array[Object] */
6013 var758
= NEW_array__NativeArray(var757
, &type_array__NativeArraykernel__Object
);
6014 ((struct instance_array__NativeArray
*)var758
)->values
[0] = (val
*) var745
;
6015 ((struct instance_array__NativeArray
*)var758
)->values
[1] = (val
*) var747
;
6016 ((struct instance_array__NativeArray
*)var758
)->values
[2] = (val
*) var_c_name
;
6017 ((struct instance_array__NativeArray
*)var758
)->values
[3] = (val
*) var752
;
6019 ((void (*)(val
*, val
*, long))(var756
->class->vft
[COLOR_array__Array__with_native
]))(var756
, var758
, var757
) /* with_native on <var756:Array[Object]>*/;
6023 var759
= ((val
* (*)(val
*))(var756
->class->vft
[COLOR_string__Object__to_s
]))(var756
) /* to_s on <var756:Array[Object]>*/;
6026 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var759
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6030 var761
= varonce760
;
6032 var762
= " is DEAD";
6034 var764
= string__NativeString__to_s_with_length(var762
, var763
);
6036 varonce760
= var761
;
6038 var765
= NEW_array__Array(&type_array__Arraykernel__Object
);
6039 { /* var765 = array_instance Array[Object] */
6041 var767
= NEW_array__NativeArray(var766
, &type_array__NativeArraykernel__Object
);
6042 ((struct instance_array__NativeArray
*)var767
)->values
[0] = (val
*) var_mclass
;
6043 ((struct instance_array__NativeArray
*)var767
)->values
[1] = (val
*) var761
;
6045 ((void (*)(val
*, val
*, long))(var765
->class->vft
[COLOR_array__Array__with_native
]))(var765
, var767
, var766
) /* with_native on <var765:Array[Object]>*/;
6049 var768
= ((val
* (*)(val
*))(var765
->class->vft
[COLOR_string__Object__to_s
]))(var765
) /* to_s on <var765:Array[Object]>*/;
6052 abstract_compiler__AbstractCompilerVisitor__add_abort(var_v
, var768
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:SeparateCompilerVisitor>*/
6056 var770
= varonce769
;
6060 var773
= string__NativeString__to_s_with_length(var771
, var772
);
6062 varonce769
= var770
;
6065 var774
= abstract_compiler__AbstractCompilerVisitor__new_named_var(var_v
, var_mtype
, var770
);
6070 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res,var775) on <var_res:RuntimeVariable> */
6071 var_res
->attrs
[COLOR_abstract_compiler__RuntimeVariable___is_exact
].s
= var775
; /* _is_exact on <var_res:RuntimeVariable> */
6072 RET_LABEL776
:(void)0;
6076 var778
= varonce777
;
6078 var779
= " = nit_alloc(sizeof(struct instance_";
6080 var781
= string__NativeString__to_s_with_length(var779
, var780
);
6082 varonce777
= var778
;
6085 var782
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
6088 var784
= varonce783
;
6092 var787
= string__NativeString__to_s_with_length(var785
, var786
);
6094 varonce783
= var784
;
6096 var788
= NEW_array__Array(&type_array__Arraykernel__Object
);
6097 { /* var788 = array_instance Array[Object] */
6099 var790
= NEW_array__NativeArray(var789
, &type_array__NativeArraykernel__Object
);
6100 ((struct instance_array__NativeArray
*)var790
)->values
[0] = (val
*) var_res
;
6101 ((struct instance_array__NativeArray
*)var790
)->values
[1] = (val
*) var778
;
6102 ((struct instance_array__NativeArray
*)var790
)->values
[2] = (val
*) var782
;
6103 ((struct instance_array__NativeArray
*)var790
)->values
[3] = (val
*) var784
;
6105 ((void (*)(val
*, val
*, long))(var788
->class->vft
[COLOR_array__Array__with_native
]))(var788
, var790
, var789
) /* with_native on <var788:Array[Object]>*/;
6109 var791
= ((val
* (*)(val
*))(var788
->class->vft
[COLOR_string__Object__to_s
]))(var788
) /* to_s on <var788:Array[Object]>*/;
6112 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var791
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6115 var793
= varonce792
;
6119 var796
= string__NativeString__to_s_with_length(var794
, var795
);
6121 varonce792
= var793
;
6123 var797
= NEW_array__Array(&type_array__Arraykernel__Object
);
6124 { /* var797 = array_instance Array[Object] */
6126 var799
= NEW_array__NativeArray(var798
, &type_array__NativeArraykernel__Object
);
6127 ((struct instance_array__NativeArray
*)var799
)->values
[0] = (val
*) var793
;
6128 ((struct instance_array__NativeArray
*)var799
)->values
[1] = (val
*) var_c_name
;
6130 ((void (*)(val
*, val
*, long))(var797
->class->vft
[COLOR_array__Array__with_native
]))(var797
, var799
, var798
) /* with_native on <var797:Array[Object]>*/;
6134 var800
= ((val
* (*)(val
*))(var797
->class->vft
[COLOR_string__Object__to_s
]))(var797
) /* to_s on <var797:Array[Object]>*/;
6137 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var800
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
6140 var802
= varonce801
;
6142 var803
= "->class = &class_";
6144 var805
= string__NativeString__to_s_with_length(var803
, var804
);
6146 varonce801
= var802
;
6149 var807
= varonce806
;
6153 var810
= string__NativeString__to_s_with_length(var808
, var809
);
6155 varonce806
= var807
;
6157 var811
= NEW_array__Array(&type_array__Arraykernel__Object
);
6158 { /* var811 = array_instance Array[Object] */
6160 var813
= NEW_array__NativeArray(var812
, &type_array__NativeArraykernel__Object
);
6161 ((struct instance_array__NativeArray
*)var813
)->values
[0] = (val
*) var_res
;
6162 ((struct instance_array__NativeArray
*)var813
)->values
[1] = (val
*) var802
;
6163 ((struct instance_array__NativeArray
*)var813
)->values
[2] = (val
*) var_c_name
;
6164 ((struct instance_array__NativeArray
*)var813
)->values
[3] = (val
*) var807
;
6166 ((void (*)(val
*, val
*, long))(var811
->class->vft
[COLOR_array__Array__with_native
]))(var811
, var813
, var812
) /* with_native on <var811:Array[Object]>*/;
6170 var814
= ((val
* (*)(val
*))(var811
->class->vft
[COLOR_string__Object__to_s
]))(var811
) /* to_s on <var811:Array[Object]>*/;
6173 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var814
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6176 var816
= varonce815
;
6178 var817
= "((struct instance_";
6180 var819
= string__NativeString__to_s_with_length(var817
, var818
);
6182 varonce815
= var816
;
6185 var820
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
6188 var822
= varonce821
;
6192 var825
= string__NativeString__to_s_with_length(var823
, var824
);
6194 varonce821
= var822
;
6197 var827
= varonce826
;
6199 var828
= ")->value = NULL;";
6201 var830
= string__NativeString__to_s_with_length(var828
, var829
);
6203 varonce826
= var827
;
6205 var831
= NEW_array__Array(&type_array__Arraykernel__Object
);
6206 { /* var831 = array_instance Array[Object] */
6208 var833
= NEW_array__NativeArray(var832
, &type_array__NativeArraykernel__Object
);
6209 ((struct instance_array__NativeArray
*)var833
)->values
[0] = (val
*) var816
;
6210 ((struct instance_array__NativeArray
*)var833
)->values
[1] = (val
*) var820
;
6211 ((struct instance_array__NativeArray
*)var833
)->values
[2] = (val
*) var822
;
6212 ((struct instance_array__NativeArray
*)var833
)->values
[3] = (val
*) var_res
;
6213 ((struct instance_array__NativeArray
*)var833
)->values
[4] = (val
*) var827
;
6215 ((void (*)(val
*, val
*, long))(var831
->class->vft
[COLOR_array__Array__with_native
]))(var831
, var833
, var832
) /* with_native on <var831:Array[Object]>*/;
6219 var834
= ((val
* (*)(val
*))(var831
->class->vft
[COLOR_string__Object__to_s
]))(var831
) /* to_s on <var831:Array[Object]>*/;
6222 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var834
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6225 var836
= varonce835
;
6229 var839
= string__NativeString__to_s_with_length(var837
, var838
);
6231 varonce835
= var836
;
6234 var841
= varonce840
;
6238 var844
= string__NativeString__to_s_with_length(var842
, var843
);
6240 varonce840
= var841
;
6242 var845
= NEW_array__Array(&type_array__Arraykernel__Object
);
6243 { /* var845 = array_instance Array[Object] */
6245 var847
= NEW_array__NativeArray(var846
, &type_array__NativeArraykernel__Object
);
6246 ((struct instance_array__NativeArray
*)var847
)->values
[0] = (val
*) var836
;
6247 ((struct instance_array__NativeArray
*)var847
)->values
[1] = (val
*) var_res
;
6248 ((struct instance_array__NativeArray
*)var847
)->values
[2] = (val
*) var841
;
6250 ((void (*)(val
*, val
*, long))(var845
->class->vft
[COLOR_array__Array__with_native
]))(var845
, var847
, var846
) /* with_native on <var845:Array[Object]>*/;
6254 var848
= ((val
* (*)(val
*))(var845
->class->vft
[COLOR_string__Object__to_s
]))(var845
) /* to_s on <var845:Array[Object]>*/;
6257 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var848
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6261 var850
= varonce849
;
6265 var853
= string__NativeString__to_s_with_length(var851
, var852
);
6267 varonce849
= var850
;
6270 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var850
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6275 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
6276 var856
= var_mclass
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
6277 if (unlikely(var856
== NULL
)) {
6278 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6279 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
6283 RET_LABEL855
:(void)0;
6287 var858
= varonce857
;
6289 var859
= "NativeArray";
6291 var861
= string__NativeString__to_s_with_length(var859
, var860
);
6293 varonce857
= var858
;
6296 var863
= string__FlatString___61d_61d(var854
, var858
);
6301 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
6302 var866
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
6303 if (unlikely(var866
== NULL
)) {
6304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
6305 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
6309 RET_LABEL865
:(void)0;
6313 var868
= varonce867
;
6315 var869
= "struct instance_";
6317 var871
= string__NativeString__to_s_with_length(var869
, var870
);
6319 varonce867
= var868
;
6322 var873
= varonce872
;
6326 var876
= string__NativeString__to_s_with_length(var874
, var875
);
6328 varonce872
= var873
;
6330 var877
= NEW_array__Array(&type_array__Arraykernel__Object
);
6331 { /* var877 = array_instance Array[Object] */
6333 var879
= NEW_array__NativeArray(var878
, &type_array__NativeArraykernel__Object
);
6334 ((struct instance_array__NativeArray
*)var879
)->values
[0] = (val
*) var868
;
6335 ((struct instance_array__NativeArray
*)var879
)->values
[1] = (val
*) var_c_name
;
6336 ((struct instance_array__NativeArray
*)var879
)->values
[2] = (val
*) var873
;
6338 ((void (*)(val
*, val
*, long))(var877
->class->vft
[COLOR_array__Array__with_native
]))(var877
, var879
, var878
) /* with_native on <var877:Array[Object]>*/;
6342 var880
= ((val
* (*)(val
*))(var877
->class->vft
[COLOR_string__Object__to_s
]))(var877
) /* to_s on <var877:Array[Object]>*/;
6345 abstract_compiler__CodeWriter__add_decl(var864
, var880
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var864:CodeWriter>*/
6348 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
6349 var883
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
6350 if (unlikely(var883
== NULL
)) {
6351 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
6352 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
6356 RET_LABEL882
:(void)0;
6360 var885
= varonce884
;
6362 var886
= "const struct class *class;";
6364 var888
= string__NativeString__to_s_with_length(var886
, var887
);
6366 varonce884
= var885
;
6369 abstract_compiler__CodeWriter__add_decl(var881
, var885
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var881:CodeWriter>*/
6372 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
6373 var891
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
6374 if (unlikely(var891
== NULL
)) {
6375 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
6376 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
6380 RET_LABEL890
:(void)0;
6384 var893
= varonce892
;
6386 var894
= "int length;";
6388 var896
= string__NativeString__to_s_with_length(var894
, var895
);
6390 varonce892
= var893
;
6393 abstract_compiler__CodeWriter__add_decl(var889
, var893
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var889:CodeWriter>*/
6396 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
6397 var899
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
6398 if (unlikely(var899
== NULL
)) {
6399 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
6400 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
6404 RET_LABEL898
:(void)0;
6408 var901
= varonce900
;
6410 var902
= "val* values[];";
6412 var904
= string__NativeString__to_s_with_length(var902
, var903
);
6414 varonce900
= var901
;
6417 abstract_compiler__CodeWriter__add_decl(var897
, var901
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var897:CodeWriter>*/
6420 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateErasureCompiler> */
6421 var907
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateErasureCompiler> */
6422 if (unlikely(var907
== NULL
)) {
6423 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
6424 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 506);
6428 RET_LABEL906
:(void)0;
6432 var909
= varonce908
;
6436 var912
= string__NativeString__to_s_with_length(var910
, var911
);
6438 varonce908
= var909
;
6441 abstract_compiler__CodeWriter__add_decl(var905
, var909
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var905:CodeWriter>*/
6444 var914
= varonce913
;
6448 var917
= string__NativeString__to_s_with_length(var915
, var916
);
6450 varonce913
= var914
;
6452 var918
= NEW_array__Array(&type_array__Arraykernel__Object
);
6453 { /* var918 = array_instance Array[Object] */
6455 var920
= NEW_array__NativeArray(var919
, &type_array__NativeArraykernel__Object
);
6456 ((struct instance_array__NativeArray
*)var920
)->values
[0] = (val
*) var914
;
6457 ((struct instance_array__NativeArray
*)var920
)->values
[1] = (val
*) var_c_name
;
6459 ((void (*)(val
*, val
*, long))(var918
->class->vft
[COLOR_array__Array__with_native
]))(var918
, var920
, var919
) /* with_native on <var918:Array[Object]>*/;
6463 var921
= ((val
* (*)(val
*))(var918
->class->vft
[COLOR_string__Object__to_s
]))(var918
) /* to_s on <var918:Array[Object]>*/;
6466 var922
= abstract_compiler__MClassType__ctype(var_mtype
);
6469 var924
= varonce923
;
6473 var927
= string__NativeString__to_s_with_length(var925
, var926
);
6475 varonce923
= var924
;
6478 var929
= varonce928
;
6480 var930
= "(int length);";
6482 var932
= string__NativeString__to_s_with_length(var930
, var931
);
6484 varonce928
= var929
;
6486 var933
= NEW_array__Array(&type_array__Arraykernel__Object
);
6487 { /* var933 = array_instance Array[Object] */
6489 var935
= NEW_array__NativeArray(var934
, &type_array__NativeArraykernel__Object
);
6490 ((struct instance_array__NativeArray
*)var935
)->values
[0] = (val
*) var922
;
6491 ((struct instance_array__NativeArray
*)var935
)->values
[1] = (val
*) var924
;
6492 ((struct instance_array__NativeArray
*)var935
)->values
[2] = (val
*) var_c_name
;
6493 ((struct instance_array__NativeArray
*)var935
)->values
[3] = (val
*) var929
;
6495 ((void (*)(val
*, val
*, long))(var933
->class->vft
[COLOR_array__Array__with_native
]))(var933
, var935
, var934
) /* with_native on <var933:Array[Object]>*/;
6499 var936
= ((val
* (*)(val
*))(var933
->class->vft
[COLOR_string__Object__to_s
]))(var933
) /* to_s on <var933:Array[Object]>*/;
6502 abstract_compiler__AbstractCompiler__provide_declaration(self
, var921
, var936
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
6505 var938
= varonce937
;
6507 var939
= "/* allocate ";
6509 var941
= string__NativeString__to_s_with_length(var939
, var940
);
6511 varonce937
= var938
;
6514 var943
= varonce942
;
6518 var946
= string__NativeString__to_s_with_length(var944
, var945
);
6520 varonce942
= var943
;
6522 var947
= NEW_array__Array(&type_array__Arraykernel__Object
);
6523 { /* var947 = array_instance Array[Object] */
6525 var949
= NEW_array__NativeArray(var948
, &type_array__NativeArraykernel__Object
);
6526 ((struct instance_array__NativeArray
*)var949
)->values
[0] = (val
*) var938
;
6527 ((struct instance_array__NativeArray
*)var949
)->values
[1] = (val
*) var_mtype
;
6528 ((struct instance_array__NativeArray
*)var949
)->values
[2] = (val
*) var943
;
6530 ((void (*)(val
*, val
*, long))(var947
->class->vft
[COLOR_array__Array__with_native
]))(var947
, var949
, var948
) /* with_native on <var947:Array[Object]>*/;
6534 var950
= ((val
* (*)(val
*))(var947
->class->vft
[COLOR_string__Object__to_s
]))(var947
) /* to_s on <var947:Array[Object]>*/;
6537 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var950
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6540 var951
= abstract_compiler__MClassType__ctype(var_mtype
);
6543 var953
= varonce952
;
6547 var956
= string__NativeString__to_s_with_length(var954
, var955
);
6549 varonce952
= var953
;
6552 var958
= varonce957
;
6554 var959
= "(int length) {";
6556 var961
= string__NativeString__to_s_with_length(var959
, var960
);
6558 varonce957
= var958
;
6560 var962
= NEW_array__Array(&type_array__Arraykernel__Object
);
6561 { /* var962 = array_instance Array[Object] */
6563 var964
= NEW_array__NativeArray(var963
, &type_array__NativeArraykernel__Object
);
6564 ((struct instance_array__NativeArray
*)var964
)->values
[0] = (val
*) var951
;
6565 ((struct instance_array__NativeArray
*)var964
)->values
[1] = (val
*) var953
;
6566 ((struct instance_array__NativeArray
*)var964
)->values
[2] = (val
*) var_c_name
;
6567 ((struct instance_array__NativeArray
*)var964
)->values
[3] = (val
*) var958
;
6569 ((void (*)(val
*, val
*, long))(var962
->class->vft
[COLOR_array__Array__with_native
]))(var962
, var964
, var963
) /* with_native on <var962:Array[Object]>*/;
6573 var965
= ((val
* (*)(val
*))(var962
->class->vft
[COLOR_string__Object__to_s
]))(var962
) /* to_s on <var962:Array[Object]>*/;
6576 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var965
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6579 var967
= varonce966
;
6583 var970
= string__NativeString__to_s_with_length(var968
, var969
);
6585 varonce966
= var967
;
6588 var971
= abstract_compiler__AbstractCompilerVisitor__get_name(var_v
, var967
);
6590 var_res972
= var971
;
6592 var974
= varonce973
;
6594 var975
= "struct instance_";
6596 var977
= string__NativeString__to_s_with_length(var975
, var976
);
6598 varonce973
= var974
;
6601 var979
= varonce978
;
6605 var982
= string__NativeString__to_s_with_length(var980
, var981
);
6607 varonce978
= var979
;
6610 var984
= varonce983
;
6614 var987
= string__NativeString__to_s_with_length(var985
, var986
);
6616 varonce983
= var984
;
6618 var988
= NEW_array__Array(&type_array__Arraykernel__Object
);
6619 { /* var988 = array_instance Array[Object] */
6621 var990
= NEW_array__NativeArray(var989
, &type_array__NativeArraykernel__Object
);
6622 ((struct instance_array__NativeArray
*)var990
)->values
[0] = (val
*) var974
;
6623 ((struct instance_array__NativeArray
*)var990
)->values
[1] = (val
*) var_c_name
;
6624 ((struct instance_array__NativeArray
*)var990
)->values
[2] = (val
*) var979
;
6625 ((struct instance_array__NativeArray
*)var990
)->values
[3] = (val
*) var_res972
;
6626 ((struct instance_array__NativeArray
*)var990
)->values
[4] = (val
*) var984
;
6628 ((void (*)(val
*, val
*, long))(var988
->class->vft
[COLOR_array__Array__with_native
]))(var988
, var990
, var989
) /* with_native on <var988:Array[Object]>*/;
6632 var991
= ((val
* (*)(val
*))(var988
->class->vft
[COLOR_string__Object__to_s
]))(var988
) /* to_s on <var988:Array[Object]>*/;
6635 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var991
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
6638 { /* Inline model#MClassType#arguments (var_mtype) on <var_mtype:MClassType> */
6639 var994
= var_mtype
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var_mtype:MClassType> */
6640 if (unlikely(var994
== NULL
)) {
6641 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
6642 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
6646 RET_LABEL993
:(void)0;
6650 var995
= abstract_collection__SequenceRead__first(var992
);
6652 var_mtype_elt
= var995
;
6654 var997
= varonce996
;
6656 var998
= " = nit_alloc(sizeof(struct instance_";
6658 var1000
= string__NativeString__to_s_with_length(var998
, var999
);
6660 varonce996
= var997
;
6663 var1002
= varonce1001
;
6665 var1003
= ") + length*sizeof(";
6667 var1005
= string__NativeString__to_s_with_length(var1003
, var1004
);
6669 varonce1001
= var1002
;
6672 var1006
= ((val
* (*)(val
*))(var_mtype_elt
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype_elt
) /* ctype on <var_mtype_elt:MType>*/;
6675 var1008
= varonce1007
;
6679 var1011
= string__NativeString__to_s_with_length(var1009
, var1010
);
6681 varonce1007
= var1008
;
6683 var1012
= NEW_array__Array(&type_array__Arraykernel__Object
);
6684 { /* var1012 = array_instance Array[Object] */
6686 var1014
= NEW_array__NativeArray(var1013
, &type_array__NativeArraykernel__Object
);
6687 ((struct instance_array__NativeArray
*)var1014
)->values
[0] = (val
*) var_res972
;
6688 ((struct instance_array__NativeArray
*)var1014
)->values
[1] = (val
*) var997
;
6689 ((struct instance_array__NativeArray
*)var1014
)->values
[2] = (val
*) var_c_name
;
6690 ((struct instance_array__NativeArray
*)var1014
)->values
[3] = (val
*) var1002
;
6691 ((struct instance_array__NativeArray
*)var1014
)->values
[4] = (val
*) var1006
;
6692 ((struct instance_array__NativeArray
*)var1014
)->values
[5] = (val
*) var1008
;
6694 ((void (*)(val
*, val
*, long))(var1012
->class->vft
[COLOR_array__Array__with_native
]))(var1012
, var1014
, var1013
) /* with_native on <var1012:Array[Object]>*/;
6698 var1015
= ((val
* (*)(val
*))(var1012
->class->vft
[COLOR_string__Object__to_s
]))(var1012
) /* to_s on <var1012:Array[Object]>*/;
6701 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var1015
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6704 var1017
= varonce1016
;
6708 var1020
= string__NativeString__to_s_with_length(var1018
, var1019
);
6710 varonce1016
= var1017
;
6712 var1021
= NEW_array__Array(&type_array__Arraykernel__Object
);
6713 { /* var1021 = array_instance Array[Object] */
6715 var1023
= NEW_array__NativeArray(var1022
, &type_array__NativeArraykernel__Object
);
6716 ((struct instance_array__NativeArray
*)var1023
)->values
[0] = (val
*) var1017
;
6717 ((struct instance_array__NativeArray
*)var1023
)->values
[1] = (val
*) var_c_name
;
6719 ((void (*)(val
*, val
*, long))(var1021
->class->vft
[COLOR_array__Array__with_native
]))(var1021
, var1023
, var1022
) /* with_native on <var1021:Array[Object]>*/;
6723 var1024
= ((val
* (*)(val
*))(var1021
->class->vft
[COLOR_string__Object__to_s
]))(var1021
) /* to_s on <var1021:Array[Object]>*/;
6726 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var1024
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
6729 var1026
= varonce1025
;
6731 var1027
= "->class = &class_";
6733 var1029
= string__NativeString__to_s_with_length(var1027
, var1028
);
6735 varonce1025
= var1026
;
6738 var1031
= varonce1030
;
6742 var1034
= string__NativeString__to_s_with_length(var1032
, var1033
);
6744 varonce1030
= var1031
;
6746 var1035
= NEW_array__Array(&type_array__Arraykernel__Object
);
6747 { /* var1035 = array_instance Array[Object] */
6749 var1037
= NEW_array__NativeArray(var1036
, &type_array__NativeArraykernel__Object
);
6750 ((struct instance_array__NativeArray
*)var1037
)->values
[0] = (val
*) var_res972
;
6751 ((struct instance_array__NativeArray
*)var1037
)->values
[1] = (val
*) var1026
;
6752 ((struct instance_array__NativeArray
*)var1037
)->values
[2] = (val
*) var_c_name
;
6753 ((struct instance_array__NativeArray
*)var1037
)->values
[3] = (val
*) var1031
;
6755 ((void (*)(val
*, val
*, long))(var1035
->class->vft
[COLOR_array__Array__with_native
]))(var1035
, var1037
, var1036
) /* with_native on <var1035:Array[Object]>*/;
6759 var1038
= ((val
* (*)(val
*))(var1035
->class->vft
[COLOR_string__Object__to_s
]))(var1035
) /* to_s on <var1035:Array[Object]>*/;
6762 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var1038
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6765 var1040
= varonce1039
;
6767 var1041
= "->length = length;";
6769 var1043
= string__NativeString__to_s_with_length(var1041
, var1042
);
6771 varonce1039
= var1040
;
6773 var1044
= NEW_array__Array(&type_array__Arraykernel__Object
);
6774 { /* var1044 = array_instance Array[Object] */
6776 var1046
= NEW_array__NativeArray(var1045
, &type_array__NativeArraykernel__Object
);
6777 ((struct instance_array__NativeArray
*)var1046
)->values
[0] = (val
*) var_res972
;
6778 ((struct instance_array__NativeArray
*)var1046
)->values
[1] = (val
*) var1040
;
6780 ((void (*)(val
*, val
*, long))(var1044
->class->vft
[COLOR_array__Array__with_native
]))(var1044
, var1046
, var1045
) /* with_native on <var1044:Array[Object]>*/;
6784 var1047
= ((val
* (*)(val
*))(var1044
->class->vft
[COLOR_string__Object__to_s
]))(var1044
) /* to_s on <var1044:Array[Object]>*/;
6787 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var1047
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6790 var1049
= varonce1048
;
6792 var1050
= "return (val*)";
6794 var1052
= string__NativeString__to_s_with_length(var1050
, var1051
);
6796 varonce1048
= var1049
;
6799 var1054
= varonce1053
;
6803 var1057
= string__NativeString__to_s_with_length(var1055
, var1056
);
6805 varonce1053
= var1054
;
6807 var1058
= NEW_array__Array(&type_array__Arraykernel__Object
);
6808 { /* var1058 = array_instance Array[Object] */
6810 var1060
= NEW_array__NativeArray(var1059
, &type_array__NativeArraykernel__Object
);
6811 ((struct instance_array__NativeArray
*)var1060
)->values
[0] = (val
*) var1049
;
6812 ((struct instance_array__NativeArray
*)var1060
)->values
[1] = (val
*) var_res972
;
6813 ((struct instance_array__NativeArray
*)var1060
)->values
[2] = (val
*) var1054
;
6815 ((void (*)(val
*, val
*, long))(var1058
->class->vft
[COLOR_array__Array__with_native
]))(var1058
, var1060
, var1059
) /* with_native on <var1058:Array[Object]>*/;
6819 var1061
= ((val
* (*)(val
*))(var1058
->class->vft
[COLOR_string__Object__to_s
]))(var1058
) /* to_s on <var1058:Array[Object]>*/;
6822 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var1061
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6825 var1063
= varonce1062
;
6829 var1066
= string__NativeString__to_s_with_length(var1064
, var1065
);
6831 varonce1062
= var1063
;
6834 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var1063
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
6839 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
6840 var1070
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
6841 if (unlikely(var1070
== NULL
)) {
6842 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6843 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
6847 RET_LABEL1069
:(void)0;
6851 { /* Inline model#MClass#kind (var1068) on <var1068:MClass> */
6852 var1073
= var1068
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var1068:MClass> */
6853 if (unlikely(var1073
== NULL
)) {
6854 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
6855 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
6859 RET_LABEL1072
:(void)0;
6863 var1074
= model__Object__extern_kind(self
);
6866 { /* Inline kernel#Object#== (var1071,var1074) on <var1071:MClassKind> */
6867 var_other248
= var1074
;
6869 { /* Inline kernel#Object#is_same_instance (var1071,var_other248) on <var1071:MClassKind> */
6870 var1080
= var1071
== var_other248
;
6873 RET_LABEL1079
:(void)0;
6878 RET_LABEL1077
:(void)0;
6885 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
6886 var1084
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
6887 if (unlikely(var1084
== NULL
)) {
6888 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6889 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
6893 RET_LABEL1083
:(void)0;
6897 { /* Inline model#MClass#name (var1082) on <var1082:MClass> */
6898 var1087
= var1082
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var1082:MClass> */
6899 if (unlikely(var1087
== NULL
)) {
6900 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6901 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
6905 RET_LABEL1086
:(void)0;
6909 var1089
= varonce1088
;
6911 var1090
= "NativeString";
6913 var1092
= string__NativeString__to_s_with_length(var1090
, var1091
);
6915 varonce1088
= var1089
;
6918 { /* Inline kernel#Object#!= (var1085,var1089) on <var1085:String> */
6919 var_other
= var1089
;
6921 var1097
= ((short int (*)(val
*, val
*))(var1085
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var1085
, var_other
) /* == on <var1085:String>*/;
6927 RET_LABEL1095
:(void)0;
6937 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
6938 var1101
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
6939 if (unlikely(var1101
== NULL
)) {
6940 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6941 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
6945 RET_LABEL1100
:(void)0;
6949 { /* Inline model#MModule#pointer_type (var1099) on <var1099:MModule> */
6950 var1104
= var1099
->attrs
[COLOR_model__MModule___pointer_type
].val
!= NULL
; /* _pointer_type on <var1099:MModule> */
6951 if(likely(var1104
)) {
6952 var1105
= var1099
->attrs
[COLOR_model__MModule___pointer_type
].val
; /* _pointer_type on <var1099:MModule> */
6953 if (unlikely(var1105
== NULL
)) {
6954 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pointer_type");
6955 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 217);
6960 var1107
= varonce1106
;
6962 var1108
= "Pointer";
6964 var1110
= string__NativeString__to_s_with_length(var1108
, var1109
);
6966 varonce1106
= var1107
;
6969 var1111
= model__MModule__get_primitive_class(var1099
, var1107
);
6972 { /* Inline model#MClass#mclass_type (var1111) on <var1111:MClass> */
6973 var1114
= var1111
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var1111:MClass> */
6974 if (unlikely(var1114
== NULL
)) {
6975 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
6976 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
6980 RET_LABEL1113
:(void)0;
6983 var1099
->attrs
[COLOR_model__MModule___pointer_type
].val
= var1112
; /* _pointer_type on <var1099:MModule> */
6987 RET_LABEL1103
:(void)0;
6990 var_pointer_type
= var1102
;
6992 var1116
= varonce1115
;
6996 var1119
= string__NativeString__to_s_with_length(var1117
, var1118
);
6998 varonce1115
= var1116
;
7000 var1120
= NEW_array__Array(&type_array__Arraykernel__Object
);
7001 { /* var1120 = array_instance Array[Object] */
7003 var1122
= NEW_array__NativeArray(var1121
, &type_array__NativeArraykernel__Object
);
7004 ((struct instance_array__NativeArray
*)var1122
)->values
[0] = (val
*) var1116
;
7005 ((struct instance_array__NativeArray
*)var1122
)->values
[1] = (val
*) var_c_name
;
7007 ((void (*)(val
*, val
*, long))(var1120
->class->vft
[COLOR_array__Array__with_native
]))(var1120
, var1122
, var1121
) /* with_native on <var1120:Array[Object]>*/;
7011 var1123
= ((val
* (*)(val
*))(var1120
->class->vft
[COLOR_string__Object__to_s
]))(var1120
) /* to_s on <var1120:Array[Object]>*/;
7014 var1124
= abstract_compiler__MClassType__ctype(var_mtype
);
7017 var1126
= varonce1125
;
7021 var1129
= string__NativeString__to_s_with_length(var1127
, var1128
);
7023 varonce1125
= var1126
;
7026 var1131
= varonce1130
;
7030 var1134
= string__NativeString__to_s_with_length(var1132
, var1133
);
7032 varonce1130
= var1131
;
7034 var1135
= NEW_array__Array(&type_array__Arraykernel__Object
);
7035 { /* var1135 = array_instance Array[Object] */
7037 var1137
= NEW_array__NativeArray(var1136
, &type_array__NativeArraykernel__Object
);
7038 ((struct instance_array__NativeArray
*)var1137
)->values
[0] = (val
*) var1124
;
7039 ((struct instance_array__NativeArray
*)var1137
)->values
[1] = (val
*) var1126
;
7040 ((struct instance_array__NativeArray
*)var1137
)->values
[2] = (val
*) var_c_name
;
7041 ((struct instance_array__NativeArray
*)var1137
)->values
[3] = (val
*) var1131
;
7043 ((void (*)(val
*, val
*, long))(var1135
->class->vft
[COLOR_array__Array__with_native
]))(var1135
, var1137
, var1136
) /* with_native on <var1135:Array[Object]>*/;
7047 var1138
= ((val
* (*)(val
*))(var1135
->class->vft
[COLOR_string__Object__to_s
]))(var1135
) /* to_s on <var1135:Array[Object]>*/;
7050 abstract_compiler__AbstractCompiler__provide_declaration(self
, var1123
, var1138
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
7053 var1140
= varonce1139
;
7055 var1141
= "/* allocate ";
7057 var1143
= string__NativeString__to_s_with_length(var1141
, var1142
);
7059 varonce1139
= var1140
;
7062 var1145
= varonce1144
;
7066 var1148
= string__NativeString__to_s_with_length(var1146
, var1147
);
7068 varonce1144
= var1145
;
7070 var1149
= NEW_array__Array(&type_array__Arraykernel__Object
);
7071 { /* var1149 = array_instance Array[Object] */
7073 var1151
= NEW_array__NativeArray(var1150
, &type_array__NativeArraykernel__Object
);
7074 ((struct instance_array__NativeArray
*)var1151
)->values
[0] = (val
*) var1140
;
7075 ((struct instance_array__NativeArray
*)var1151
)->values
[1] = (val
*) var_mtype
;
7076 ((struct instance_array__NativeArray
*)var1151
)->values
[2] = (val
*) var1145
;
7078 ((void (*)(val
*, val
*, long))(var1149
->class->vft
[COLOR_array__Array__with_native
]))(var1149
, var1151
, var1150
) /* with_native on <var1149:Array[Object]>*/;
7082 var1152
= ((val
* (*)(val
*))(var1149
->class->vft
[COLOR_string__Object__to_s
]))(var1149
) /* to_s on <var1149:Array[Object]>*/;
7085 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var1152
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7088 var1153
= abstract_compiler__MClassType__ctype(var_mtype
);
7091 var1155
= varonce1154
;
7095 var1158
= string__NativeString__to_s_with_length(var1156
, var1157
);
7097 varonce1154
= var1155
;
7100 var1160
= varonce1159
;
7104 var1163
= string__NativeString__to_s_with_length(var1161
, var1162
);
7106 varonce1159
= var1160
;
7108 var1164
= NEW_array__Array(&type_array__Arraykernel__Object
);
7109 { /* var1164 = array_instance Array[Object] */
7111 var1166
= NEW_array__NativeArray(var1165
, &type_array__NativeArraykernel__Object
);
7112 ((struct instance_array__NativeArray
*)var1166
)->values
[0] = (val
*) var1153
;
7113 ((struct instance_array__NativeArray
*)var1166
)->values
[1] = (val
*) var1155
;
7114 ((struct instance_array__NativeArray
*)var1166
)->values
[2] = (val
*) var_c_name
;
7115 ((struct instance_array__NativeArray
*)var1166
)->values
[3] = (val
*) var1160
;
7117 ((void (*)(val
*, val
*, long))(var1164
->class->vft
[COLOR_array__Array__with_native
]))(var1164
, var1166
, var1165
) /* with_native on <var1164:Array[Object]>*/;
7121 var1167
= ((val
* (*)(val
*))(var1164
->class->vft
[COLOR_string__Object__to_s
]))(var1164
) /* to_s on <var1164:Array[Object]>*/;
7124 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var1167
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7128 var1169
= varonce1168
;
7130 var1170
= " is DEAD";
7132 var1172
= string__NativeString__to_s_with_length(var1170
, var1171
);
7134 varonce1168
= var1169
;
7136 var1173
= NEW_array__Array(&type_array__Arraykernel__Object
);
7137 { /* var1173 = array_instance Array[Object] */
7139 var1175
= NEW_array__NativeArray(var1174
, &type_array__NativeArraykernel__Object
);
7140 ((struct instance_array__NativeArray
*)var1175
)->values
[0] = (val
*) var_mclass
;
7141 ((struct instance_array__NativeArray
*)var1175
)->values
[1] = (val
*) var1169
;
7143 ((void (*)(val
*, val
*, long))(var1173
->class->vft
[COLOR_array__Array__with_native
]))(var1173
, var1175
, var1174
) /* with_native on <var1173:Array[Object]>*/;
7147 var1176
= ((val
* (*)(val
*))(var1173
->class->vft
[COLOR_string__Object__to_s
]))(var1173
) /* to_s on <var1173:Array[Object]>*/;
7150 abstract_compiler__AbstractCompilerVisitor__add_abort(var_v
, var1176
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:SeparateCompilerVisitor>*/
7154 var1178
= varonce1177
;
7158 var1181
= string__NativeString__to_s_with_length(var1179
, var1180
);
7160 varonce1177
= var1178
;
7163 var1182
= abstract_compiler__AbstractCompilerVisitor__new_named_var(var_v
, var_mtype
, var1178
);
7165 var_res1183
= var1182
;
7168 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res1183,var1184) on <var_res1183:RuntimeVariable> */
7169 var_res1183
->attrs
[COLOR_abstract_compiler__RuntimeVariable___is_exact
].s
= var1184
; /* _is_exact on <var_res1183:RuntimeVariable> */
7170 RET_LABEL1185
:(void)0;
7174 var1187
= varonce1186
;
7176 var1188
= " = nit_alloc(sizeof(struct instance_";
7178 var1190
= string__NativeString__to_s_with_length(var1188
, var1189
);
7180 varonce1186
= var1187
;
7183 var1191
= ((val
* (*)(val
*))(var_pointer_type
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_pointer_type
) /* c_name on <var_pointer_type:MClassType>*/;
7186 var1193
= varonce1192
;
7190 var1196
= string__NativeString__to_s_with_length(var1194
, var1195
);
7192 varonce1192
= var1193
;
7194 var1197
= NEW_array__Array(&type_array__Arraykernel__Object
);
7195 { /* var1197 = array_instance Array[Object] */
7197 var1199
= NEW_array__NativeArray(var1198
, &type_array__NativeArraykernel__Object
);
7198 ((struct instance_array__NativeArray
*)var1199
)->values
[0] = (val
*) var_res1183
;
7199 ((struct instance_array__NativeArray
*)var1199
)->values
[1] = (val
*) var1187
;
7200 ((struct instance_array__NativeArray
*)var1199
)->values
[2] = (val
*) var1191
;
7201 ((struct instance_array__NativeArray
*)var1199
)->values
[3] = (val
*) var1193
;
7203 ((void (*)(val
*, val
*, long))(var1197
->class->vft
[COLOR_array__Array__with_native
]))(var1197
, var1199
, var1198
) /* with_native on <var1197:Array[Object]>*/;
7207 var1200
= ((val
* (*)(val
*))(var1197
->class->vft
[COLOR_string__Object__to_s
]))(var1197
) /* to_s on <var1197:Array[Object]>*/;
7210 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var1200
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
7213 var1202
= varonce1201
;
7217 var1205
= string__NativeString__to_s_with_length(var1203
, var1204
);
7219 varonce1201
= var1202
;
7221 var1206
= NEW_array__Array(&type_array__Arraykernel__Object
);
7222 { /* var1206 = array_instance Array[Object] */
7224 var1208
= NEW_array__NativeArray(var1207
, &type_array__NativeArraykernel__Object
);
7225 ((struct instance_array__NativeArray
*)var1208
)->values
[0] = (val
*) var1202
;
7226 ((struct instance_array__NativeArray
*)var1208
)->values
[1] = (val
*) var_c_name
;
7228 ((void (*)(val
*, val
*, long))(var1206
->class->vft
[COLOR_array__Array__with_native
]))(var1206
, var1208
, var1207
) /* with_native on <var1206:Array[Object]>*/;
7232 var1209
= ((val
* (*)(val
*))(var1206
->class->vft
[COLOR_string__Object__to_s
]))(var1206
) /* to_s on <var1206:Array[Object]>*/;
7235 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var1209
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
7238 var1211
= varonce1210
;
7240 var1212
= "->class = &class_";
7242 var1214
= string__NativeString__to_s_with_length(var1212
, var1213
);
7244 varonce1210
= var1211
;
7247 var1216
= varonce1215
;
7251 var1219
= string__NativeString__to_s_with_length(var1217
, var1218
);
7253 varonce1215
= var1216
;
7255 var1220
= NEW_array__Array(&type_array__Arraykernel__Object
);
7256 { /* var1220 = array_instance Array[Object] */
7258 var1222
= NEW_array__NativeArray(var1221
, &type_array__NativeArraykernel__Object
);
7259 ((struct instance_array__NativeArray
*)var1222
)->values
[0] = (val
*) var_res1183
;
7260 ((struct instance_array__NativeArray
*)var1222
)->values
[1] = (val
*) var1211
;
7261 ((struct instance_array__NativeArray
*)var1222
)->values
[2] = (val
*) var_c_name
;
7262 ((struct instance_array__NativeArray
*)var1222
)->values
[3] = (val
*) var1216
;
7264 ((void (*)(val
*, val
*, long))(var1220
->class->vft
[COLOR_array__Array__with_native
]))(var1220
, var1222
, var1221
) /* with_native on <var1220:Array[Object]>*/;
7268 var1223
= ((val
* (*)(val
*))(var1220
->class->vft
[COLOR_string__Object__to_s
]))(var1220
) /* to_s on <var1220:Array[Object]>*/;
7271 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var1223
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
7274 var1225
= varonce1224
;
7276 var1226
= "((struct instance_";
7278 var1228
= string__NativeString__to_s_with_length(var1226
, var1227
);
7280 varonce1224
= var1225
;
7283 var1229
= ((val
* (*)(val
*))(var_pointer_type
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_pointer_type
) /* c_name on <var_pointer_type:MClassType>*/;
7286 var1231
= varonce1230
;
7290 var1234
= string__NativeString__to_s_with_length(var1232
, var1233
);
7292 varonce1230
= var1231
;
7295 var1236
= varonce1235
;
7297 var1237
= ")->value = NULL;";
7299 var1239
= string__NativeString__to_s_with_length(var1237
, var1238
);
7301 varonce1235
= var1236
;
7303 var1240
= NEW_array__Array(&type_array__Arraykernel__Object
);
7304 { /* var1240 = array_instance Array[Object] */
7306 var1242
= NEW_array__NativeArray(var1241
, &type_array__NativeArraykernel__Object
);
7307 ((struct instance_array__NativeArray
*)var1242
)->values
[0] = (val
*) var1225
;
7308 ((struct instance_array__NativeArray
*)var1242
)->values
[1] = (val
*) var1229
;
7309 ((struct instance_array__NativeArray
*)var1242
)->values
[2] = (val
*) var1231
;
7310 ((struct instance_array__NativeArray
*)var1242
)->values
[3] = (val
*) var_res1183
;
7311 ((struct instance_array__NativeArray
*)var1242
)->values
[4] = (val
*) var1236
;
7313 ((void (*)(val
*, val
*, long))(var1240
->class->vft
[COLOR_array__Array__with_native
]))(var1240
, var1242
, var1241
) /* with_native on <var1240:Array[Object]>*/;
7317 var1243
= ((val
* (*)(val
*))(var1240
->class->vft
[COLOR_string__Object__to_s
]))(var1240
) /* to_s on <var1240:Array[Object]>*/;
7320 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var1243
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
7323 var1245
= varonce1244
;
7325 var1246
= "return ";
7327 var1248
= string__NativeString__to_s_with_length(var1246
, var1247
);
7329 varonce1244
= var1245
;
7332 var1250
= varonce1249
;
7336 var1253
= string__NativeString__to_s_with_length(var1251
, var1252
);
7338 varonce1249
= var1250
;
7340 var1254
= NEW_array__Array(&type_array__Arraykernel__Object
);
7341 { /* var1254 = array_instance Array[Object] */
7343 var1256
= NEW_array__NativeArray(var1255
, &type_array__NativeArraykernel__Object
);
7344 ((struct instance_array__NativeArray
*)var1256
)->values
[0] = (val
*) var1245
;
7345 ((struct instance_array__NativeArray
*)var1256
)->values
[1] = (val
*) var_res1183
;
7346 ((struct instance_array__NativeArray
*)var1256
)->values
[2] = (val
*) var1250
;
7348 ((void (*)(val
*, val
*, long))(var1254
->class->vft
[COLOR_array__Array__with_native
]))(var1254
, var1256
, var1255
) /* with_native on <var1254:Array[Object]>*/;
7352 var1257
= ((val
* (*)(val
*))(var1254
->class->vft
[COLOR_string__Object__to_s
]))(var1254
) /* to_s on <var1254:Array[Object]>*/;
7355 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var1257
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
7359 var1259
= varonce1258
;
7363 var1262
= string__NativeString__to_s_with_length(var1260
, var1261
);
7365 varonce1258
= var1259
;
7368 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var1259
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
7376 var1264
= varonce1263
;
7380 var1267
= string__NativeString__to_s_with_length(var1265
, var1266
);
7382 varonce1263
= var1264
;
7384 var1268
= NEW_array__Array(&type_array__Arraykernel__Object
);
7385 { /* var1268 = array_instance Array[Object] */
7387 var1270
= NEW_array__NativeArray(var1269
, &type_array__NativeArraykernel__Object
);
7388 ((struct instance_array__NativeArray
*)var1270
)->values
[0] = (val
*) var1264
;
7389 ((struct instance_array__NativeArray
*)var1270
)->values
[1] = (val
*) var_c_name
;
7391 ((void (*)(val
*, val
*, long))(var1268
->class->vft
[COLOR_array__Array__with_native
]))(var1268
, var1270
, var1269
) /* with_native on <var1268:Array[Object]>*/;
7395 var1271
= ((val
* (*)(val
*))(var1268
->class->vft
[COLOR_string__Object__to_s
]))(var1268
) /* to_s on <var1268:Array[Object]>*/;
7398 var1272
= abstract_compiler__MClassType__ctype(var_mtype
);
7401 var1274
= varonce1273
;
7405 var1277
= string__NativeString__to_s_with_length(var1275
, var1276
);
7407 varonce1273
= var1274
;
7410 var1279
= varonce1278
;
7412 var1280
= "(void);";
7414 var1282
= string__NativeString__to_s_with_length(var1280
, var1281
);
7416 varonce1278
= var1279
;
7418 var1283
= NEW_array__Array(&type_array__Arraykernel__Object
);
7419 { /* var1283 = array_instance Array[Object] */
7421 var1285
= NEW_array__NativeArray(var1284
, &type_array__NativeArraykernel__Object
);
7422 ((struct instance_array__NativeArray
*)var1285
)->values
[0] = (val
*) var1272
;
7423 ((struct instance_array__NativeArray
*)var1285
)->values
[1] = (val
*) var1274
;
7424 ((struct instance_array__NativeArray
*)var1285
)->values
[2] = (val
*) var_c_name
;
7425 ((struct instance_array__NativeArray
*)var1285
)->values
[3] = (val
*) var1279
;
7427 ((void (*)(val
*, val
*, long))(var1283
->class->vft
[COLOR_array__Array__with_native
]))(var1283
, var1285
, var1284
) /* with_native on <var1283:Array[Object]>*/;
7431 var1286
= ((val
* (*)(val
*))(var1283
->class->vft
[COLOR_string__Object__to_s
]))(var1283
) /* to_s on <var1283:Array[Object]>*/;
7434 abstract_compiler__AbstractCompiler__provide_declaration(self
, var1271
, var1286
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
7437 var1288
= varonce1287
;
7439 var1289
= "/* allocate ";
7441 var1291
= string__NativeString__to_s_with_length(var1289
, var1290
);
7443 varonce1287
= var1288
;
7446 var1293
= varonce1292
;
7450 var1296
= string__NativeString__to_s_with_length(var1294
, var1295
);
7452 varonce1292
= var1293
;
7454 var1297
= NEW_array__Array(&type_array__Arraykernel__Object
);
7455 { /* var1297 = array_instance Array[Object] */
7457 var1299
= NEW_array__NativeArray(var1298
, &type_array__NativeArraykernel__Object
);
7458 ((struct instance_array__NativeArray
*)var1299
)->values
[0] = (val
*) var1288
;
7459 ((struct instance_array__NativeArray
*)var1299
)->values
[1] = (val
*) var_mtype
;
7460 ((struct instance_array__NativeArray
*)var1299
)->values
[2] = (val
*) var1293
;
7462 ((void (*)(val
*, val
*, long))(var1297
->class->vft
[COLOR_array__Array__with_native
]))(var1297
, var1299
, var1298
) /* with_native on <var1297:Array[Object]>*/;
7466 var1300
= ((val
* (*)(val
*))(var1297
->class->vft
[COLOR_string__Object__to_s
]))(var1297
) /* to_s on <var1297:Array[Object]>*/;
7469 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var1300
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7472 var1301
= abstract_compiler__MClassType__ctype(var_mtype
);
7475 var1303
= varonce1302
;
7479 var1306
= string__NativeString__to_s_with_length(var1304
, var1305
);
7481 varonce1302
= var1303
;
7484 var1308
= varonce1307
;
7486 var1309
= "(void) {";
7488 var1311
= string__NativeString__to_s_with_length(var1309
, var1310
);
7490 varonce1307
= var1308
;
7492 var1312
= NEW_array__Array(&type_array__Arraykernel__Object
);
7493 { /* var1312 = array_instance Array[Object] */
7495 var1314
= NEW_array__NativeArray(var1313
, &type_array__NativeArraykernel__Object
);
7496 ((struct instance_array__NativeArray
*)var1314
)->values
[0] = (val
*) var1301
;
7497 ((struct instance_array__NativeArray
*)var1314
)->values
[1] = (val
*) var1303
;
7498 ((struct instance_array__NativeArray
*)var1314
)->values
[2] = (val
*) var_c_name
;
7499 ((struct instance_array__NativeArray
*)var1314
)->values
[3] = (val
*) var1308
;
7501 ((void (*)(val
*, val
*, long))(var1312
->class->vft
[COLOR_array__Array__with_native
]))(var1312
, var1314
, var1313
) /* with_native on <var1312:Array[Object]>*/;
7505 var1315
= ((val
* (*)(val
*))(var1312
->class->vft
[COLOR_string__Object__to_s
]))(var1312
) /* to_s on <var1312:Array[Object]>*/;
7508 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var1315
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
7512 var1317
= varonce1316
;
7514 var1318
= " is DEAD";
7516 var1320
= string__NativeString__to_s_with_length(var1318
, var1319
);
7518 varonce1316
= var1317
;
7520 var1321
= NEW_array__Array(&type_array__Arraykernel__Object
);
7521 { /* var1321 = array_instance Array[Object] */
7523 var1323
= NEW_array__NativeArray(var1322
, &type_array__NativeArraykernel__Object
);
7524 ((struct instance_array__NativeArray
*)var1323
)->values
[0] = (val
*) var_mclass
;
7525 ((struct instance_array__NativeArray
*)var1323
)->values
[1] = (val
*) var1317
;
7527 ((void (*)(val
*, val
*, long))(var1321
->class->vft
[COLOR_array__Array__with_native
]))(var1321
, var1323
, var1322
) /* with_native on <var1321:Array[Object]>*/;
7531 var1324
= ((val
* (*)(val
*))(var1321
->class->vft
[COLOR_string__Object__to_s
]))(var1321
) /* to_s on <var1321:Array[Object]>*/;
7534 abstract_compiler__AbstractCompilerVisitor__add_abort(var_v
, var1324
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:SeparateCompilerVisitor>*/
7538 var1326
= varonce1325
;
7542 var1329
= string__NativeString__to_s_with_length(var1327
, var1328
);
7544 varonce1325
= var1326
;
7547 var1330
= abstract_compiler__AbstractCompilerVisitor__new_named_var(var_v
, var_mtype
, var1326
);
7549 var_res1331
= var1330
;
7552 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res1331,var1332) on <var_res1331:RuntimeVariable> */
7553 var_res1331
->attrs
[COLOR_abstract_compiler__RuntimeVariable___is_exact
].s
= var1332
; /* _is_exact on <var_res1331:RuntimeVariable> */
7554 RET_LABEL1333
:(void)0;
7558 var1335
= varonce1334
;
7560 var1336
= " = nit_alloc(sizeof(struct instance) + ";
7562 var1338
= string__NativeString__to_s_with_length(var1336
, var1337
);
7564 varonce1334
= var1335
;
7567 { /* Inline array#AbstractArrayRead#length (var_attrs) on <var_attrs:Array[nullable MPropDef]> */
7568 var1341
= var_attrs
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_attrs:Array[nullable MPropDef]> */
7570 RET_LABEL1340
:(void)0;
7574 var1343
= varonce1342
;
7576 var1344
= "*sizeof(nitattribute_t));";
7578 var1346
= string__NativeString__to_s_with_length(var1344
, var1345
);
7580 varonce1342
= var1343
;
7582 var1347
= NEW_array__Array(&type_array__Arraykernel__Object
);
7583 { /* var1347 = array_instance Array[Object] */
7585 var1349
= NEW_array__NativeArray(var1348
, &type_array__NativeArraykernel__Object
);
7586 ((struct instance_array__NativeArray
*)var1349
)->values
[0] = (val
*) var_res1331
;
7587 ((struct instance_array__NativeArray
*)var1349
)->values
[1] = (val
*) var1335
;
7588 var1350
= BOX_kernel__Int(var1339
); /* autobox from Int to Object */
7589 ((struct instance_array__NativeArray
*)var1349
)->values
[2] = (val
*) var1350
;
7590 ((struct instance_array__NativeArray
*)var1349
)->values
[3] = (val
*) var1343
;
7592 ((void (*)(val
*, val
*, long))(var1347
->class->vft
[COLOR_array__Array__with_native
]))(var1347
, var1349
, var1348
) /* with_native on <var1347:Array[Object]>*/;
7596 var1351
= ((val
* (*)(val
*))(var1347
->class->vft
[COLOR_string__Object__to_s
]))(var1347
) /* to_s on <var1347:Array[Object]>*/;
7599 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var1351
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
7602 var1353
= varonce1352
;
7606 var1356
= string__NativeString__to_s_with_length(var1354
, var1355
);
7608 varonce1352
= var1353
;
7610 var1357
= NEW_array__Array(&type_array__Arraykernel__Object
);
7611 { /* var1357 = array_instance Array[Object] */
7613 var1359
= NEW_array__NativeArray(var1358
, &type_array__NativeArraykernel__Object
);
7614 ((struct instance_array__NativeArray
*)var1359
)->values
[0] = (val
*) var1353
;
7615 ((struct instance_array__NativeArray
*)var1359
)->values
[1] = (val
*) var_c_name
;
7617 ((void (*)(val
*, val
*, long))(var1357
->class->vft
[COLOR_array__Array__with_native
]))(var1357
, var1359
, var1358
) /* with_native on <var1357:Array[Object]>*/;
7621 var1360
= ((val
* (*)(val
*))(var1357
->class->vft
[COLOR_string__Object__to_s
]))(var1357
) /* to_s on <var1357:Array[Object]>*/;
7624 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var1360
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
7627 var1362
= varonce1361
;
7629 var1363
= "->class = &class_";
7631 var1365
= string__NativeString__to_s_with_length(var1363
, var1364
);
7633 varonce1361
= var1362
;
7636 var1367
= varonce1366
;
7640 var1370
= string__NativeString__to_s_with_length(var1368
, var1369
);
7642 varonce1366
= var1367
;
7644 var1371
= NEW_array__Array(&type_array__Arraykernel__Object
);
7645 { /* var1371 = array_instance Array[Object] */
7647 var1373
= NEW_array__NativeArray(var1372
, &type_array__NativeArraykernel__Object
);
7648 ((struct instance_array__NativeArray
*)var1373
)->values
[0] = (val
*) var_res1331
;
7649 ((struct instance_array__NativeArray
*)var1373
)->values
[1] = (val
*) var1362
;
7650 ((struct instance_array__NativeArray
*)var1373
)->values
[2] = (val
*) var_c_name
;
7651 ((struct instance_array__NativeArray
*)var1373
)->values
[3] = (val
*) var1367
;
7653 ((void (*)(val
*, val
*, long))(var1371
->class->vft
[COLOR_array__Array__with_native
]))(var1371
, var1373
, var1372
) /* with_native on <var1371:Array[Object]>*/;
7657 var1374
= ((val
* (*)(val
*))(var1371
->class->vft
[COLOR_string__Object__to_s
]))(var1371
) /* to_s on <var1371:Array[Object]>*/;
7660 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var1374
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
7663 abstract_compiler__AbstractCompiler__generate_init_attr(self
, var_v
, var_res1331
, var_mtype
); /* Direct call abstract_compiler#AbstractCompiler#generate_init_attr on <self:SeparateErasureCompiler>*/
7666 abstract_compiler__AbstractCompilerVisitor__set_finalizer(var_v
, var_res1331
); /* Direct call abstract_compiler#AbstractCompilerVisitor#set_finalizer on <var_v:SeparateCompilerVisitor>*/
7669 var1376
= varonce1375
;
7671 var1377
= "return ";
7673 var1379
= string__NativeString__to_s_with_length(var1377
, var1378
);
7675 varonce1375
= var1376
;
7678 var1381
= varonce1380
;
7682 var1384
= string__NativeString__to_s_with_length(var1382
, var1383
);
7684 varonce1380
= var1381
;
7686 var1385
= NEW_array__Array(&type_array__Arraykernel__Object
);
7687 { /* var1385 = array_instance Array[Object] */
7689 var1387
= NEW_array__NativeArray(var1386
, &type_array__NativeArraykernel__Object
);
7690 ((struct instance_array__NativeArray
*)var1387
)->values
[0] = (val
*) var1376
;
7691 ((struct instance_array__NativeArray
*)var1387
)->values
[1] = (val
*) var_res1331
;
7692 ((struct instance_array__NativeArray
*)var1387
)->values
[2] = (val
*) var1381
;
7694 ((void (*)(val
*, val
*, long))(var1385
->class->vft
[COLOR_array__Array__with_native
]))(var1385
, var1387
, var1386
) /* with_native on <var1385:Array[Object]>*/;
7698 var1388
= ((val
* (*)(val
*))(var1385
->class->vft
[COLOR_string__Object__to_s
]))(var1385
) /* to_s on <var1385:Array[Object]>*/;
7701 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var1388
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
7705 var1390
= varonce1389
;
7709 var1393
= string__NativeString__to_s_with_length(var1391
, var1392
);
7711 varonce1389
= var1390
;
7714 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var1390
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
7718 /* method separate_erasure_compiler#SeparateErasureCompiler#compile_class_to_c for (self: Object, MClass) */
7719 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__compile_class_to_c(val
* self
, val
* p0
) {
7720 separate_erasure_compiler__SeparateErasureCompiler__compile_class_to_c(self
, p0
); /* Direct call separate_erasure_compiler#SeparateErasureCompiler#compile_class_to_c on <self:Object(SeparateErasureCompiler)>*/
7723 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_vts_table for (self: SeparateErasureCompiler, MClass): Bool */
7724 short int separate_erasure_compiler__SeparateErasureCompiler__build_class_vts_table(val
* self
, val
* p0
) {
7725 short int var
/* : Bool */;
7726 val
* var_mclass
/* var mclass: MClass */;
7727 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
7728 val
* var3
/* : Map[MClass, Array[nullable MPropDef]] */;
7729 val
* var4
/* : nullable Object */;
7730 short int var5
/* : Bool */;
7731 short int var6
/* : Bool */;
7732 static val
* varonce
;
7733 val
* var7
/* : String */;
7734 char* var8
/* : NativeString */;
7735 long var9
/* : Int */;
7736 val
* var10
/* : FlatString */;
7737 val
* var11
/* : String */;
7738 val
* var12
/* : Array[Object] */;
7739 long var13
/* : Int */;
7740 val
* var14
/* : NativeArray[Object] */;
7741 val
* var15
/* : String */;
7742 static val
* varonce16
;
7743 val
* var17
/* : String */;
7744 char* var18
/* : NativeString */;
7745 long var19
/* : Int */;
7746 val
* var20
/* : FlatString */;
7747 val
* var21
/* : String */;
7748 static val
* varonce22
;
7749 val
* var23
/* : String */;
7750 char* var24
/* : NativeString */;
7751 long var25
/* : Int */;
7752 val
* var26
/* : FlatString */;
7753 val
* var27
/* : Array[Object] */;
7754 long var28
/* : Int */;
7755 val
* var29
/* : NativeArray[Object] */;
7756 val
* var30
/* : String */;
7757 val
* var31
/* : SeparateCompilerVisitor */;
7758 val
* var_v
/* var v: SeparateCompilerVisitor */;
7759 static val
* varonce32
;
7760 val
* var33
/* : String */;
7761 char* var34
/* : NativeString */;
7762 long var35
/* : Int */;
7763 val
* var36
/* : FlatString */;
7764 val
* var37
/* : String */;
7765 static val
* varonce38
;
7766 val
* var39
/* : String */;
7767 char* var40
/* : NativeString */;
7768 long var41
/* : Int */;
7769 val
* var42
/* : FlatString */;
7770 val
* var43
/* : Array[Object] */;
7771 long var44
/* : Int */;
7772 val
* var45
/* : NativeArray[Object] */;
7773 val
* var46
/* : String */;
7774 static val
* varonce47
;
7775 val
* var48
/* : String */;
7776 char* var49
/* : NativeString */;
7777 long var50
/* : Int */;
7778 val
* var51
/* : FlatString */;
7779 static val
* varonce52
;
7780 val
* var53
/* : String */;
7781 char* var54
/* : NativeString */;
7782 long var55
/* : Int */;
7783 val
* var56
/* : FlatString */;
7784 val
* var57
/* : Map[MClass, Array[nullable MPropDef]] */;
7785 val
* var59
/* : Map[MClass, Array[nullable MPropDef]] */;
7786 val
* var60
/* : nullable Object */;
7787 val
* var_
/* var : Array[nullable MPropDef] */;
7788 val
* var61
/* : ArrayIterator[nullable Object] */;
7789 val
* var_62
/* var : ArrayIterator[nullable MPropDef] */;
7790 short int var63
/* : Bool */;
7791 val
* var64
/* : nullable Object */;
7792 val
* var_vt
/* var vt: nullable MPropDef */;
7793 val
* var65
/* : null */;
7794 short int var66
/* : Bool */;
7795 short int var67
/* : Bool */;
7796 val
* var_other
/* var other: nullable Object */;
7797 short int var69
/* : Bool */;
7798 short int var71
/* : Bool */;
7799 static val
* varonce72
;
7800 val
* var73
/* : String */;
7801 char* var74
/* : NativeString */;
7802 long var75
/* : Int */;
7803 val
* var76
/* : FlatString */;
7804 long var77
/* : Int */;
7805 long var_is_null
/* var is_null: Int */;
7806 val
* var78
/* : MClassDef */;
7807 val
* var80
/* : MClassDef */;
7808 val
* var81
/* : MClassType */;
7809 val
* var83
/* : MClassType */;
7810 short int var84
/* : Bool */;
7813 const char* var_class_name
;
7814 val
* var85
/* : nullable MType */;
7815 val
* var87
/* : nullable MType */;
7816 val
* var88
/* : MType */;
7817 val
* var_bound
/* var bound: MType */;
7818 short int var89
/* : Bool */;
7821 val
* var92
/* : MClassDef */;
7822 val
* var94
/* : MClassDef */;
7823 val
* var95
/* : MClassType */;
7824 val
* var97
/* : MClassType */;
7825 val
* var98
/* : MType */;
7826 val
* var100
/* : MType */;
7827 val
* var101
/* : MType */;
7828 long var102
/* : Int */;
7829 short int var103
/* : Bool */;
7832 const char* var_class_name106
;
7833 val
* var107
/* : MClass */;
7834 val
* var109
/* : MClass */;
7835 val
* var_vtclass
/* var vtclass: MClass */;
7836 static val
* varonce110
;
7837 val
* var111
/* : String */;
7838 char* var112
/* : NativeString */;
7839 long var113
/* : Int */;
7840 val
* var114
/* : FlatString */;
7841 val
* var115
/* : String */;
7842 val
* var116
/* : Array[Object] */;
7843 long var117
/* : Int */;
7844 val
* var118
/* : NativeArray[Object] */;
7845 val
* var119
/* : String */;
7846 static val
* varonce120
;
7847 val
* var121
/* : String */;
7848 char* var122
/* : NativeString */;
7849 long var123
/* : Int */;
7850 val
* var124
/* : FlatString */;
7851 static val
* varonce125
;
7852 val
* var126
/* : String */;
7853 char* var127
/* : NativeString */;
7854 long var128
/* : Int */;
7855 val
* var129
/* : FlatString */;
7856 val
* var130
/* : String */;
7857 static val
* varonce131
;
7858 val
* var132
/* : String */;
7859 char* var133
/* : NativeString */;
7860 long var134
/* : Int */;
7861 val
* var135
/* : FlatString */;
7862 static val
* varonce136
;
7863 val
* var137
/* : String */;
7864 char* var138
/* : NativeString */;
7865 long var139
/* : Int */;
7866 val
* var140
/* : FlatString */;
7867 val
* var141
/* : Array[Object] */;
7868 long var142
/* : Int */;
7869 val
* var143
/* : NativeArray[Object] */;
7870 val
* var144
/* : Object */;
7871 val
* var145
/* : String */;
7872 static val
* varonce148
;
7873 val
* var149
/* : String */;
7874 char* var150
/* : NativeString */;
7875 long var151
/* : Int */;
7876 val
* var152
/* : FlatString */;
7877 static val
* varonce153
;
7878 val
* var154
/* : String */;
7879 char* var155
/* : NativeString */;
7880 long var156
/* : Int */;
7881 val
* var157
/* : FlatString */;
7882 short int var158
/* : Bool */;
7885 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on <self:SeparateErasureCompiler> */
7886 var3
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
7887 if (unlikely(var3
== NULL
)) {
7888 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
7889 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 442);
7897 var4
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var1
, var_mclass
) /* [] on <var1:Map[MClass, Array[nullable MPropDef]]>*/;
7900 var5
= array__AbstractArrayRead__is_empty(var4
);
7911 var8
= "vts_table_";
7913 var10
= string__NativeString__to_s_with_length(var8
, var9
);
7918 var11
= abstract_compiler__MClass__c_name(var_mclass
);
7920 var12
= NEW_array__Array(&type_array__Arraykernel__Object
);
7921 { /* var12 = array_instance Array[Object] */
7923 var14
= NEW_array__NativeArray(var13
, &type_array__NativeArraykernel__Object
);
7924 ((struct instance_array__NativeArray
*)var14
)->values
[0] = (val
*) var7
;
7925 ((struct instance_array__NativeArray
*)var14
)->values
[1] = (val
*) var11
;
7927 ((void (*)(val
*, val
*, long))(var12
->class->vft
[COLOR_array__Array__with_native
]))(var12
, var14
, var13
) /* with_native on <var12:Array[Object]>*/;
7931 var15
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_string__Object__to_s
]))(var12
) /* to_s on <var12:Array[Object]>*/;
7936 var18
= "extern const struct vts_table vts_table_";
7938 var20
= string__NativeString__to_s_with_length(var18
, var19
);
7943 var21
= abstract_compiler__MClass__c_name(var_mclass
);
7950 var26
= string__NativeString__to_s_with_length(var24
, var25
);
7954 var27
= NEW_array__Array(&type_array__Arraykernel__Object
);
7955 { /* var27 = array_instance Array[Object] */
7957 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraykernel__Object
);
7958 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var17
;
7959 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var21
;
7960 ((struct instance_array__NativeArray
*)var29
)->values
[2] = (val
*) var23
;
7962 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
7966 var30
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
7969 abstract_compiler__AbstractCompiler__provide_declaration(self
, var15
, var30
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateErasureCompiler>*/
7972 var31
= separate_erasure_compiler__SeparateErasureCompiler__new_visitor(self
);
7978 var34
= "const struct vts_table vts_table_";
7980 var36
= string__NativeString__to_s_with_length(var34
, var35
);
7985 var37
= abstract_compiler__MClass__c_name(var_mclass
);
7992 var42
= string__NativeString__to_s_with_length(var40
, var41
);
7996 var43
= NEW_array__Array(&type_array__Arraykernel__Object
);
7997 { /* var43 = array_instance Array[Object] */
7999 var45
= NEW_array__NativeArray(var44
, &type_array__NativeArraykernel__Object
);
8000 ((struct instance_array__NativeArray
*)var45
)->values
[0] = (val
*) var33
;
8001 ((struct instance_array__NativeArray
*)var45
)->values
[1] = (val
*) var37
;
8002 ((struct instance_array__NativeArray
*)var45
)->values
[2] = (val
*) var39
;
8004 ((void (*)(val
*, val
*, long))(var43
->class->vft
[COLOR_array__Array__with_native
]))(var43
, var45
, var44
) /* with_native on <var43:Array[Object]>*/;
8008 var46
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_string__Object__to_s
]))(var43
) /* to_s on <var43:Array[Object]>*/;
8011 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var46
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8016 var49
= "0, /* dummy */";
8018 var51
= string__NativeString__to_s_with_length(var49
, var50
);
8023 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var48
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8030 var56
= string__NativeString__to_s_with_length(var54
, var55
);
8035 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var53
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8038 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on <self:SeparateErasureCompiler> */
8039 var59
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
8040 if (unlikely(var59
== NULL
)) {
8041 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
8042 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 442);
8046 RET_LABEL58
:(void)0;
8050 var60
= ((val
* (*)(val
*, val
*))(var57
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var57
, var_mclass
) /* [] on <var57:Map[MClass, Array[nullable MPropDef]]>*/;
8054 var61
= array__AbstractArrayRead__iterator(var_
);
8059 var63
= array__ArrayIterator__is_ok(var_62
);
8063 var64
= array__ArrayIterator__item(var_62
);
8067 if (var_vt
== NULL
) {
8068 var66
= 1; /* is null */
8070 var66
= 0; /* arg is null but recv is not */
8073 { /* Inline kernel#Object#== (var_vt,var65) on <var_vt:nullable MPropDef> */
8076 { /* Inline kernel#Object#is_same_instance (var_vt,var_other) on <var_vt:nullable MPropDef(MPropDef)> */
8077 var71
= var_vt
== var_other
;
8080 RET_LABEL70
:(void)0;
8085 RET_LABEL68
:(void)0;
8093 var74
= "{-1, NULL}, /* empty */";
8095 var76
= string__NativeString__to_s_with_length(var74
, var75
);
8100 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var73
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8104 var_is_null
= var77
;
8106 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:MClass> */
8107 var80
= var_mclass
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var_mclass:MClass> */
8108 if (unlikely(var80
== NULL
)) {
8109 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
8110 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
8114 RET_LABEL79
:(void)0;
8118 { /* Inline model#MClassDef#bound_mtype (var78) on <var78:MClassDef> */
8119 var83
= var78
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var78:MClassDef> */
8120 if (unlikely(var83
== NULL
)) {
8121 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
8122 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
8126 RET_LABEL82
:(void)0;
8129 /* <var_vt:nullable MPropDef(MPropDef)> isa MVirtualTypeDef */
8130 cltype
= type_model__MVirtualTypeDef
.color
;
8131 idtype
= type_model__MVirtualTypeDef
.id
;
8132 if(cltype
>= var_vt
->type
->table_size
) {
8135 var84
= var_vt
->type
->type_table
[cltype
] == idtype
;
8137 if (unlikely(!var84
)) {
8138 var_class_name
= var_vt
== NULL ?
"null" : var_vt
->type
->name
;
8139 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name
);
8140 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 408);
8144 { /* Inline model#MVirtualTypeDef#bound (var_vt) on <var_vt:MPropDef(MVirtualTypeDef)> */
8145 var87
= var_vt
->attrs
[COLOR_model__MVirtualTypeDef___bound
].val
; /* _bound on <var_vt:MPropDef(MVirtualTypeDef)> */
8147 RET_LABEL86
:(void)0;
8151 var88
= separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound(self
, var81
, var85
);
8155 /* <var_bound:MType> isa MNullableType */
8156 cltype90
= type_model__MNullableType
.color
;
8157 idtype91
= type_model__MNullableType
.id
;
8158 if(cltype90
>= var_bound
->type
->table_size
) {
8161 var89
= var_bound
->type
->type_table
[cltype90
] == idtype91
;
8165 { /* Inline model#MClass#intro (var_mclass) on <var_mclass:MClass> */
8166 var94
= var_mclass
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var_mclass:MClass> */
8167 if (unlikely(var94
== NULL
)) {
8168 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
8169 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
8173 RET_LABEL93
:(void)0;
8177 { /* Inline model#MClassDef#bound_mtype (var92) on <var92:MClassDef> */
8178 var97
= var92
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var92:MClassDef> */
8179 if (unlikely(var97
== NULL
)) {
8180 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
8181 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
8185 RET_LABEL96
:(void)0;
8189 { /* Inline model#MNullableType#mtype (var_bound) on <var_bound:MType(MNullableType)> */
8190 var100
= var_bound
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_bound:MType(MNullableType)> */
8191 if (unlikely(var100
== NULL
)) {
8192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8193 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
8197 RET_LABEL99
:(void)0;
8201 var101
= separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound(self
, var95
, var98
);
8205 var_is_null
= var102
;
8210 BREAK_label
: (void)0;
8211 /* <var_bound:MType> isa MClassType */
8212 cltype104
= type_model__MClassType
.color
;
8213 idtype105
= type_model__MClassType
.id
;
8214 if(cltype104
>= var_bound
->type
->table_size
) {
8217 var103
= var_bound
->type
->type_table
[cltype104
] == idtype105
;
8219 if (unlikely(!var103
)) {
8220 var_class_name106
= var_bound
== NULL ?
"null" : var_bound
->type
->name
;
8221 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name106
);
8222 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 413);
8226 { /* Inline model#MClassType#mclass (var_bound) on <var_bound:MType(MClassType)> */
8227 var109
= var_bound
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_bound:MType(MClassType)> */
8228 if (unlikely(var109
== NULL
)) {
8229 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8230 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
8234 RET_LABEL108
:(void)0;
8237 var_vtclass
= var107
;
8239 var111
= varonce110
;
8243 var114
= string__NativeString__to_s_with_length(var112
, var113
);
8245 varonce110
= var111
;
8248 var115
= abstract_compiler__MClass__c_name(var_vtclass
);
8250 var116
= NEW_array__Array(&type_array__Arraykernel__Object
);
8251 { /* var116 = array_instance Array[Object] */
8253 var118
= NEW_array__NativeArray(var117
, &type_array__NativeArraykernel__Object
);
8254 ((struct instance_array__NativeArray
*)var118
)->values
[0] = (val
*) var111
;
8255 ((struct instance_array__NativeArray
*)var118
)->values
[1] = (val
*) var115
;
8257 ((void (*)(val
*, val
*, long))(var116
->class->vft
[COLOR_array__Array__with_native
]))(var116
, var118
, var117
) /* with_native on <var116:Array[Object]>*/;
8261 var119
= ((val
* (*)(val
*))(var116
->class->vft
[COLOR_string__Object__to_s
]))(var116
) /* to_s on <var116:Array[Object]>*/;
8264 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var119
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
8267 var121
= varonce120
;
8271 var124
= string__NativeString__to_s_with_length(var122
, var123
);
8273 varonce120
= var121
;
8276 var126
= varonce125
;
8278 var127
= ", &class_";
8280 var129
= string__NativeString__to_s_with_length(var127
, var128
);
8282 varonce125
= var126
;
8285 var130
= abstract_compiler__MClass__c_name(var_vtclass
);
8288 var132
= varonce131
;
8292 var135
= string__NativeString__to_s_with_length(var133
, var134
);
8294 varonce131
= var132
;
8297 var137
= varonce136
;
8301 var140
= string__NativeString__to_s_with_length(var138
, var139
);
8303 varonce136
= var137
;
8305 var141
= NEW_array__Array(&type_array__Arraykernel__Object
);
8306 { /* var141 = array_instance Array[Object] */
8308 var143
= NEW_array__NativeArray(var142
, &type_array__NativeArraykernel__Object
);
8309 ((struct instance_array__NativeArray
*)var143
)->values
[0] = (val
*) var121
;
8310 var144
= BOX_kernel__Int(var_is_null
); /* autobox from Int to Object */
8311 ((struct instance_array__NativeArray
*)var143
)->values
[1] = (val
*) var144
;
8312 ((struct instance_array__NativeArray
*)var143
)->values
[2] = (val
*) var126
;
8313 ((struct instance_array__NativeArray
*)var143
)->values
[3] = (val
*) var130
;
8314 ((struct instance_array__NativeArray
*)var143
)->values
[4] = (val
*) var132
;
8315 ((struct instance_array__NativeArray
*)var143
)->values
[5] = (val
*) var_vt
;
8316 ((struct instance_array__NativeArray
*)var143
)->values
[6] = (val
*) var137
;
8318 ((void (*)(val
*, val
*, long))(var141
->class->vft
[COLOR_array__Array__with_native
]))(var141
, var143
, var142
) /* with_native on <var141:Array[Object]>*/;
8322 var145
= ((val
* (*)(val
*))(var141
->class->vft
[COLOR_string__Object__to_s
]))(var141
) /* to_s on <var141:Array[Object]>*/;
8325 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var145
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8329 array__ArrayIterator__next(var_62
); /* Direct call array#ArrayIterator#next on <var_62:ArrayIterator[nullable MPropDef]>*/
8332 goto BREAK_label146
;
8335 BREAK_label146
: (void)0;
8337 { /* Inline abstract_collection#Iterator#finish (var_62) on <var_62:ArrayIterator[nullable MPropDef]> */
8338 RET_LABEL147
:(void)0;
8342 var149
= varonce148
;
8346 var152
= string__NativeString__to_s_with_length(var150
, var151
);
8348 varonce148
= var149
;
8351 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var149
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8354 var154
= varonce153
;
8358 var157
= string__NativeString__to_s_with_length(var155
, var156
);
8360 varonce153
= var154
;
8363 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var154
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
8371 /* method separate_erasure_compiler#SeparateErasureCompiler#build_class_vts_table for (self: Object, MClass): Bool */
8372 short int VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__build_class_vts_table(val
* self
, val
* p0
) {
8373 short int var
/* : Bool */;
8374 short int var1
/* : Bool */;
8375 var1
= separate_erasure_compiler__SeparateErasureCompiler__build_class_vts_table(self
, p0
);
8380 /* method separate_erasure_compiler#SeparateErasureCompiler#retrieve_vt_bound for (self: SeparateErasureCompiler, MClassType, nullable MType): MType */
8381 val
* separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound(val
* self
, val
* p0
, val
* p1
) {
8382 val
* var
/* : MType */;
8383 val
* var_anchor
/* var anchor: MClassType */;
8384 val
* var_mtype
/* var mtype: nullable MType */;
8385 val
* var1
/* : null */;
8386 short int var2
/* : Bool */;
8387 short int var3
/* : Bool */;
8388 val
* var_other
/* var other: nullable Object */;
8389 short int var5
/* : Bool */;
8390 short int var7
/* : Bool */;
8391 static val
* varonce
;
8392 val
* var8
/* : String */;
8393 char* var9
/* : NativeString */;
8394 long var10
/* : Int */;
8395 val
* var11
/* : FlatString */;
8396 short int var12
/* : Bool */;
8399 val
* var13
/* : MModule */;
8400 val
* var15
/* : MModule */;
8401 val
* var16
/* : MType */;
8402 short int var17
/* : Bool */;
8405 val
* var20
/* : MModule */;
8406 val
* var22
/* : MModule */;
8407 val
* var23
/* : MType */;
8411 if (var_mtype
== NULL
) {
8412 var2
= 1; /* is null */
8414 var2
= 0; /* arg is null but recv is not */
8417 { /* Inline kernel#Object#== (var_mtype,var1) on <var_mtype:nullable MType> */
8420 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
8421 var7
= var_mtype
== var_other
;
8437 var9
= "NOT YET IMPLEMENTED: retrieve_vt_bound on null";
8439 var11
= string__NativeString__to_s_with_length(var9
, var10
);
8444 file__Object__print(self
, var8
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
8446 PRINT_ERROR("Runtime error: %s", "Aborted");
8447 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 426);
8451 /* <var_mtype:nullable MType(MType)> isa MVirtualType */
8452 cltype
= type_model__MVirtualType
.color
;
8453 idtype
= type_model__MVirtualType
.id
;
8454 if(cltype
>= var_mtype
->type
->table_size
) {
8457 var12
= var_mtype
->type
->type_table
[cltype
] == idtype
;
8461 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
8462 var15
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
8463 if (unlikely(var15
== NULL
)) {
8464 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
8465 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
8469 RET_LABEL14
:(void)0;
8473 var16
= model__MType__anchor_to(var_mtype
, var13
, var_anchor
);
8478 /* <var_mtype:nullable MType(MType)> isa MParameterType */
8479 cltype18
= type_model__MParameterType
.color
;
8480 idtype19
= type_model__MParameterType
.id
;
8481 if(cltype18
>= var_mtype
->type
->table_size
) {
8484 var17
= var_mtype
->type
->type_table
[cltype18
] == idtype19
;
8488 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateErasureCompiler> */
8489 var22
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateErasureCompiler> */
8490 if (unlikely(var22
== NULL
)) {
8491 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
8492 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
8496 RET_LABEL21
:(void)0;
8500 var23
= model__MType__anchor_to(var_mtype
, var20
, var_anchor
);
8512 /* method separate_erasure_compiler#SeparateErasureCompiler#retrieve_vt_bound for (self: Object, MClassType, nullable MType): MType */
8513 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound(val
* self
, val
* p0
, val
* p1
) {
8514 val
* var
/* : MType */;
8515 val
* var1
/* : MType */;
8516 var1
= separate_erasure_compiler__SeparateErasureCompiler__retrieve_vt_bound(self
, p0
, p1
);
8521 /* method separate_erasure_compiler#SeparateErasureCompiler#new_visitor for (self: SeparateErasureCompiler): SeparateCompilerVisitor */
8522 val
* separate_erasure_compiler__SeparateErasureCompiler__new_visitor(val
* self
) {
8523 val
* var
/* : SeparateCompilerVisitor */;
8524 val
* var1
/* : SeparateErasureCompilerVisitor */;
8525 short int var2
/* : Bool */;
8528 const struct type
* type_struct
;
8529 const char* var_class_name
;
8530 var1
= NEW_separate_erasure_compiler__SeparateErasureCompilerVisitor(&type_separate_erasure_compiler__SeparateErasureCompilerVisitor
);
8532 abstract_compiler__AbstractCompilerVisitor__init(var1
, self
); /* Direct call abstract_compiler#AbstractCompilerVisitor#init on <var1:SeparateErasureCompilerVisitor>*/
8534 /* <var1:SeparateErasureCompilerVisitor> isa VISITOR */
8535 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
8536 cltype
= type_struct
->color
;
8537 idtype
= type_struct
->id
;
8538 if(cltype
>= var1
->type
->table_size
) {
8541 var2
= var1
->type
->type_table
[cltype
] == idtype
;
8543 if (unlikely(!var2
)) {
8544 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
8545 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
8546 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 437);
8554 /* method separate_erasure_compiler#SeparateErasureCompiler#new_visitor for (self: Object): AbstractCompilerVisitor */
8555 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__new_visitor(val
* self
) {
8556 val
* var
/* : AbstractCompilerVisitor */;
8557 val
* var1
/* : SeparateCompilerVisitor */;
8558 var1
= separate_erasure_compiler__SeparateErasureCompiler__new_visitor(self
);
8563 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables for (self: SeparateErasureCompiler): Map[MClass, Array[nullable MClass]] */
8564 val
* separate_erasure_compiler__SeparateErasureCompiler__class_tables(val
* self
) {
8565 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
8566 val
* var1
/* : Map[MClass, Array[nullable MClass]] */;
8567 var1
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
; /* _class_tables on <self:SeparateErasureCompiler> */
8568 if (unlikely(var1
== NULL
)) {
8569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables");
8570 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 441);
8577 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables for (self: Object): Map[MClass, Array[nullable MClass]] */
8578 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_tables(val
* self
) {
8579 val
* var
/* : Map[MClass, Array[nullable MClass]] */;
8580 val
* var1
/* : Map[MClass, Array[nullable MClass]] */;
8581 val
* var3
/* : Map[MClass, Array[nullable MClass]] */;
8582 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables (self) on <self:Object(SeparateErasureCompiler)> */
8583 var3
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
; /* _class_tables on <self:Object(SeparateErasureCompiler)> */
8584 if (unlikely(var3
== NULL
)) {
8585 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables");
8586 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 441);
8596 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables= for (self: SeparateErasureCompiler, Map[MClass, Array[nullable MClass]]) */
8597 void separate_erasure_compiler__SeparateErasureCompiler__class_tables_61d(val
* self
, val
* p0
) {
8598 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
= p0
; /* _class_tables on <self:SeparateErasureCompiler> */
8601 /* method separate_erasure_compiler#SeparateErasureCompiler#class_tables= for (self: Object, Map[MClass, Array[nullable MClass]]) */
8602 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_tables_61d(val
* self
, val
* p0
) {
8603 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables= (self,p0) on <self:Object(SeparateErasureCompiler)> */
8604 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
= p0
; /* _class_tables on <self:Object(SeparateErasureCompiler)> */
8609 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables for (self: SeparateErasureCompiler): Map[MClass, Array[nullable MPropDef]] */
8610 val
* separate_erasure_compiler__SeparateErasureCompiler__vt_tables(val
* self
) {
8611 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
8612 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
8613 var1
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
8614 if (unlikely(var1
== NULL
)) {
8615 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
8616 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 442);
8623 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables for (self: Object): Map[MClass, Array[nullable MPropDef]] */
8624 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__vt_tables(val
* self
) {
8625 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
8626 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
8627 val
* var3
/* : Map[MClass, Array[nullable MPropDef]] */;
8628 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on <self:Object(SeparateErasureCompiler)> */
8629 var3
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:Object(SeparateErasureCompiler)> */
8630 if (unlikely(var3
== NULL
)) {
8631 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
8632 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 442);
8642 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables= for (self: SeparateErasureCompiler, Map[MClass, Array[nullable MPropDef]]) */
8643 void separate_erasure_compiler__SeparateErasureCompiler__vt_tables_61d(val
* self
, val
* p0
) {
8644 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
= p0
; /* _vt_tables on <self:SeparateErasureCompiler> */
8647 /* method separate_erasure_compiler#SeparateErasureCompiler#vt_tables= for (self: Object, Map[MClass, Array[nullable MPropDef]]) */
8648 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__vt_tables_61d(val
* self
, val
* p0
) {
8649 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables= (self,p0) on <self:Object(SeparateErasureCompiler)> */
8650 self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
= p0
; /* _vt_tables on <self:Object(SeparateErasureCompiler)> */
8655 /* method separate_erasure_compiler#SeparateErasureCompiler#display_sizes for (self: SeparateErasureCompiler) */
8656 void separate_erasure_compiler__SeparateErasureCompiler__display_sizes(val
* self
) {
8657 static val
* varonce
;
8658 val
* var
/* : String */;
8659 char* var1
/* : NativeString */;
8660 long var2
/* : Int */;
8661 val
* var3
/* : FlatString */;
8662 static val
* varonce4
;
8663 val
* var5
/* : String */;
8664 char* var6
/* : NativeString */;
8665 long var7
/* : Int */;
8666 val
* var8
/* : FlatString */;
8667 long var9
/* : Int */;
8668 long var_total
/* var total: Int */;
8669 long var10
/* : Int */;
8670 long var_holes
/* var holes: Int */;
8671 val
* var11
/* : Map[MClass, Array[nullable MClass]] */;
8672 val
* var13
/* : Map[MClass, Array[nullable MClass]] */;
8673 val
* var_
/* var : Map[MClass, Array[nullable MClass]] */;
8674 val
* var14
/* : MapIterator[Object, nullable Object] */;
8675 val
* var_15
/* var : MapIterator[MClass, Array[nullable MClass]] */;
8676 short int var16
/* : Bool */;
8677 val
* var17
/* : Object */;
8678 val
* var_t
/* var t: MClass */;
8679 val
* var18
/* : nullable Object */;
8680 val
* var_table
/* var table: Array[nullable MClass] */;
8681 long var19
/* : Int */;
8682 long var21
/* : Int */;
8683 long var22
/* : Int */;
8684 short int var24
/* : Bool */;
8687 const char* var_class_name
;
8688 long var25
/* : Int */;
8689 val
* var_26
/* var : Array[nullable MClass] */;
8690 val
* var27
/* : ArrayIterator[nullable Object] */;
8691 val
* var_28
/* var : ArrayIterator[nullable MClass] */;
8692 short int var29
/* : Bool */;
8693 val
* var30
/* : nullable Object */;
8694 val
* var_e
/* var e: nullable MClass */;
8695 val
* var31
/* : null */;
8696 short int var32
/* : Bool */;
8697 short int var33
/* : Bool */;
8698 val
* var_other
/* var other: nullable Object */;
8699 short int var35
/* : Bool */;
8700 short int var37
/* : Bool */;
8701 long var38
/* : Int */;
8702 long var39
/* : Int */;
8703 short int var41
/* : Bool */;
8706 const char* var_class_name44
;
8707 long var45
/* : Int */;
8708 static val
* varonce49
;
8709 val
* var50
/* : String */;
8710 char* var51
/* : NativeString */;
8711 long var52
/* : Int */;
8712 val
* var53
/* : FlatString */;
8713 static val
* varonce54
;
8714 val
* var55
/* : String */;
8715 char* var56
/* : NativeString */;
8716 long var57
/* : Int */;
8717 val
* var58
/* : FlatString */;
8718 val
* var59
/* : Array[Object] */;
8719 long var60
/* : Int */;
8720 val
* var61
/* : NativeArray[Object] */;
8721 val
* var62
/* : Object */;
8722 val
* var63
/* : Object */;
8723 val
* var64
/* : String */;
8724 static val
* varonce65
;
8725 val
* var66
/* : String */;
8726 char* var67
/* : NativeString */;
8727 long var68
/* : Int */;
8728 val
* var69
/* : FlatString */;
8729 static val
* varonce70
;
8730 val
* var71
/* : String */;
8731 char* var72
/* : NativeString */;
8732 long var73
/* : Int */;
8733 val
* var74
/* : FlatString */;
8734 long var75
/* : Int */;
8735 long var76
/* : Int */;
8736 val
* var77
/* : Map[MClass, Array[nullable MPropDef]] */;
8737 val
* var79
/* : Map[MClass, Array[nullable MPropDef]] */;
8738 val
* var_80
/* var : Map[MClass, Array[nullable MPropDef]] */;
8739 val
* var81
/* : MapIterator[Object, nullable Object] */;
8740 val
* var_82
/* var : MapIterator[MClass, Array[nullable MPropDef]] */;
8741 short int var83
/* : Bool */;
8742 val
* var84
/* : Object */;
8743 val
* var_t85
/* var t: MClass */;
8744 val
* var86
/* : nullable Object */;
8745 val
* var_table87
/* var table: Array[nullable MPropDef] */;
8746 long var88
/* : Int */;
8747 long var90
/* : Int */;
8748 long var91
/* : Int */;
8749 short int var93
/* : Bool */;
8752 const char* var_class_name96
;
8753 long var97
/* : Int */;
8754 val
* var_98
/* var : Array[nullable MPropDef] */;
8755 val
* var99
/* : ArrayIterator[nullable Object] */;
8756 val
* var_100
/* var : ArrayIterator[nullable MPropDef] */;
8757 short int var101
/* : Bool */;
8758 val
* var102
/* : nullable Object */;
8759 val
* var_e103
/* var e: nullable MPropDef */;
8760 val
* var104
/* : null */;
8761 short int var105
/* : Bool */;
8762 short int var106
/* : Bool */;
8763 short int var108
/* : Bool */;
8764 short int var110
/* : Bool */;
8765 long var111
/* : Int */;
8766 long var112
/* : Int */;
8767 short int var114
/* : Bool */;
8770 const char* var_class_name117
;
8771 long var118
/* : Int */;
8772 static val
* varonce123
;
8773 val
* var124
/* : String */;
8774 char* var125
/* : NativeString */;
8775 long var126
/* : Int */;
8776 val
* var127
/* : FlatString */;
8777 static val
* varonce128
;
8778 val
* var129
/* : String */;
8779 char* var130
/* : NativeString */;
8780 long var131
/* : Int */;
8781 val
* var132
/* : FlatString */;
8782 val
* var133
/* : Array[Object] */;
8783 long var134
/* : Int */;
8784 val
* var135
/* : NativeArray[Object] */;
8785 val
* var136
/* : Object */;
8786 val
* var137
/* : Object */;
8787 val
* var138
/* : String */;
8788 static val
* varonce139
;
8789 val
* var140
/* : String */;
8790 char* var141
/* : NativeString */;
8791 long var142
/* : Int */;
8792 val
* var143
/* : FlatString */;
8793 static val
* varonce144
;
8794 val
* var145
/* : String */;
8795 char* var146
/* : NativeString */;
8796 long var147
/* : Int */;
8797 val
* var148
/* : FlatString */;
8798 long var149
/* : Int */;
8799 long var150
/* : Int */;
8800 val
* var151
/* : Map[MClass, Array[nullable MPropDef]] */;
8801 val
* var153
/* : Map[MClass, Array[nullable MPropDef]] */;
8802 val
* var_154
/* var : Map[MClass, Array[nullable MPropDef]] */;
8803 val
* var155
/* : MapIterator[Object, nullable Object] */;
8804 val
* var_156
/* var : MapIterator[MClass, Array[nullable MPropDef]] */;
8805 short int var157
/* : Bool */;
8806 val
* var158
/* : Object */;
8807 val
* var_t159
/* var t: MClass */;
8808 val
* var160
/* : nullable Object */;
8809 val
* var_table161
/* var table: Array[nullable MPropDef] */;
8810 long var162
/* : Int */;
8811 long var164
/* : Int */;
8812 long var165
/* : Int */;
8813 short int var167
/* : Bool */;
8816 const char* var_class_name170
;
8817 long var171
/* : Int */;
8818 val
* var_172
/* var : Array[nullable MPropDef] */;
8819 val
* var173
/* : ArrayIterator[nullable Object] */;
8820 val
* var_174
/* var : ArrayIterator[nullable MPropDef] */;
8821 short int var175
/* : Bool */;
8822 val
* var176
/* : nullable Object */;
8823 val
* var_e177
/* var e: nullable MPropDef */;
8824 val
* var178
/* : null */;
8825 short int var179
/* : Bool */;
8826 short int var180
/* : Bool */;
8827 short int var182
/* : Bool */;
8828 short int var184
/* : Bool */;
8829 long var185
/* : Int */;
8830 long var186
/* : Int */;
8831 short int var188
/* : Bool */;
8834 const char* var_class_name191
;
8835 long var192
/* : Int */;
8836 static val
* varonce197
;
8837 val
* var198
/* : String */;
8838 char* var199
/* : NativeString */;
8839 long var200
/* : Int */;
8840 val
* var201
/* : FlatString */;
8841 static val
* varonce202
;
8842 val
* var203
/* : String */;
8843 char* var204
/* : NativeString */;
8844 long var205
/* : Int */;
8845 val
* var206
/* : FlatString */;
8846 val
* var207
/* : Array[Object] */;
8847 long var208
/* : Int */;
8848 val
* var209
/* : NativeArray[Object] */;
8849 val
* var210
/* : Object */;
8850 val
* var211
/* : Object */;
8851 val
* var212
/* : String */;
8852 static val
* varonce213
;
8853 val
* var214
/* : String */;
8854 char* var215
/* : NativeString */;
8855 long var216
/* : Int */;
8856 val
* var217
/* : FlatString */;
8857 static val
* varonce218
;
8858 val
* var219
/* : String */;
8859 char* var220
/* : NativeString */;
8860 long var221
/* : Int */;
8861 val
* var222
/* : FlatString */;
8862 long var223
/* : Int */;
8863 long var224
/* : Int */;
8864 val
* var225
/* : Map[MClass, Array[nullable MPropDef]] */;
8865 val
* var227
/* : Map[MClass, Array[nullable MPropDef]] */;
8866 val
* var_228
/* var : Map[MClass, Array[nullable MPropDef]] */;
8867 val
* var229
/* : MapIterator[Object, nullable Object] */;
8868 val
* var_230
/* var : MapIterator[MClass, Array[nullable MPropDef]] */;
8869 short int var231
/* : Bool */;
8870 val
* var232
/* : Object */;
8871 val
* var_t233
/* var t: MClass */;
8872 val
* var234
/* : nullable Object */;
8873 val
* var_table235
/* var table: Array[nullable MPropDef] */;
8874 long var236
/* : Int */;
8875 long var238
/* : Int */;
8876 long var239
/* : Int */;
8877 short int var241
/* : Bool */;
8880 const char* var_class_name244
;
8881 long var245
/* : Int */;
8882 val
* var_246
/* var : Array[nullable MPropDef] */;
8883 val
* var247
/* : ArrayIterator[nullable Object] */;
8884 val
* var_248
/* var : ArrayIterator[nullable MPropDef] */;
8885 short int var249
/* : Bool */;
8886 val
* var250
/* : nullable Object */;
8887 val
* var_e251
/* var e: nullable MPropDef */;
8888 val
* var252
/* : null */;
8889 short int var253
/* : Bool */;
8890 short int var254
/* : Bool */;
8891 short int var256
/* : Bool */;
8892 short int var258
/* : Bool */;
8893 long var259
/* : Int */;
8894 long var260
/* : Int */;
8895 short int var262
/* : Bool */;
8898 const char* var_class_name265
;
8899 long var266
/* : Int */;
8900 static val
* varonce271
;
8901 val
* var272
/* : String */;
8902 char* var273
/* : NativeString */;
8903 long var274
/* : Int */;
8904 val
* var275
/* : FlatString */;
8905 static val
* varonce276
;
8906 val
* var277
/* : String */;
8907 char* var278
/* : NativeString */;
8908 long var279
/* : Int */;
8909 val
* var280
/* : FlatString */;
8910 val
* var281
/* : Array[Object] */;
8911 long var282
/* : Int */;
8912 val
* var283
/* : NativeArray[Object] */;
8913 val
* var284
/* : Object */;
8914 val
* var285
/* : Object */;
8915 val
* var286
/* : String */;
8919 var1
= "# size of subtyping tables";
8921 var3
= string__NativeString__to_s_with_length(var1
, var2
);
8926 file__Object__print(self
, var
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
8931 var6
= "\11total \11holes";
8933 var8
= string__NativeString__to_s_with_length(var6
, var7
);
8938 file__Object__print(self
, var5
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
8945 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables (self) on <self:SeparateErasureCompiler> */
8946 var13
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___class_tables
].val
; /* _class_tables on <self:SeparateErasureCompiler> */
8947 if (unlikely(var13
== NULL
)) {
8948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables");
8949 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 441);
8953 RET_LABEL12
:(void)0;
8958 var14
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_
) /* iterator on <var_:Map[MClass, Array[nullable MClass]]>*/;
8963 var16
= ((short int (*)(val
*))(var_15
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var_15
) /* is_ok on <var_15:MapIterator[MClass, Array[nullable MClass]]>*/;
8967 var17
= ((val
* (*)(val
*))(var_15
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var_15
) /* key on <var_15:MapIterator[MClass, Array[nullable MClass]]>*/;
8971 var18
= ((val
* (*)(val
*))(var_15
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var_15
) /* item on <var_15:MapIterator[MClass, Array[nullable MClass]]>*/;
8975 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MClass]> */
8976 var21
= var_table
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable MClass]> */
8978 RET_LABEL20
:(void)0;
8982 { /* Inline kernel#Int#+ (var_total,var19) on <var_total:Int> */
8983 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
8984 /* <var19:Int> isa OTHER */
8985 var24
= 1; /* easy <var19:Int> isa OTHER*/
8986 if (unlikely(!var24
)) {
8987 var_class_name
= type_kernel__Int
.name
;
8988 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
8989 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
8992 var25
= var_total
+ var19
;
8995 RET_LABEL23
:(void)0;
9001 var27
= array__AbstractArrayRead__iterator(var_26
);
9006 var29
= array__ArrayIterator__is_ok(var_28
);
9010 var30
= array__ArrayIterator__item(var_28
);
9014 if (var_e
== NULL
) {
9015 var32
= 1; /* is null */
9017 var32
= 0; /* arg is null but recv is not */
9020 { /* Inline kernel#Object#== (var_e,var31) on <var_e:nullable MClass> */
9023 { /* Inline kernel#Object#is_same_instance (var_e,var_other) on <var_e:nullable MClass(MClass)> */
9024 var37
= var_e
== var_other
;
9027 RET_LABEL36
:(void)0;
9032 RET_LABEL34
:(void)0;
9039 { /* Inline kernel#Int#+ (var_holes,var38) on <var_holes:Int> */
9040 /* Covariant cast for argument 0 (i) <var38:Int> isa OTHER */
9041 /* <var38:Int> isa OTHER */
9042 var41
= 1; /* easy <var38:Int> isa OTHER*/
9043 if (unlikely(!var41
)) {
9044 var_class_name44
= type_kernel__Int
.name
;
9045 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44
);
9046 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
9049 var45
= var_holes
+ var38
;
9052 RET_LABEL40
:(void)0;
9059 array__ArrayIterator__next(var_28
); /* Direct call array#ArrayIterator#next on <var_28:ArrayIterator[nullable MClass]>*/
9065 BREAK_label
: (void)0;
9067 { /* Inline abstract_collection#Iterator#finish (var_28) on <var_28:ArrayIterator[nullable MClass]> */
9068 RET_LABEL46
:(void)0;
9072 ((void (*)(val
*))(var_15
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var_15
) /* next on <var_15:MapIterator[MClass, Array[nullable MClass]]>*/;
9078 BREAK_label47
: (void)0;
9080 { /* Inline abstract_collection#MapIterator#finish (var_15) on <var_15:MapIterator[MClass, Array[nullable MClass]]> */
9081 RET_LABEL48
:(void)0;
9089 var53
= string__NativeString__to_s_with_length(var51
, var52
);
9098 var58
= string__NativeString__to_s_with_length(var56
, var57
);
9102 var59
= NEW_array__Array(&type_array__Arraykernel__Object
);
9103 { /* var59 = array_instance Array[Object] */
9105 var61
= NEW_array__NativeArray(var60
, &type_array__NativeArraykernel__Object
);
9106 ((struct instance_array__NativeArray
*)var61
)->values
[0] = (val
*) var50
;
9107 var62
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
9108 ((struct instance_array__NativeArray
*)var61
)->values
[1] = (val
*) var62
;
9109 ((struct instance_array__NativeArray
*)var61
)->values
[2] = (val
*) var55
;
9110 var63
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
9111 ((struct instance_array__NativeArray
*)var61
)->values
[3] = (val
*) var63
;
9113 ((void (*)(val
*, val
*, long))(var59
->class->vft
[COLOR_array__Array__with_native
]))(var59
, var61
, var60
) /* with_native on <var59:Array[Object]>*/;
9117 var64
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_string__Object__to_s
]))(var59
) /* to_s on <var59:Array[Object]>*/;
9120 file__Object__print(self
, var64
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
9125 var67
= "# size of resolution tables";
9127 var69
= string__NativeString__to_s_with_length(var67
, var68
);
9132 file__Object__print(self
, var66
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
9137 var72
= "\11total \11holes";
9139 var74
= string__NativeString__to_s_with_length(var72
, var73
);
9144 file__Object__print(self
, var71
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
9151 { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on <self:SeparateErasureCompiler> */
9152 var79
= self
->attrs
[COLOR_separate_erasure_compiler__SeparateErasureCompiler___vt_tables
].val
; /* _vt_tables on <self:SeparateErasureCompiler> */
9153 if (unlikely(var79
== NULL
)) {
9154 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
9155 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 442);
9159 RET_LABEL78
:(void)0;
9164 var81
= ((val
* (*)(val
*))(var_80
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_80
) /* iterator on <var_80:Map[MClass, Array[nullable MPropDef]]>*/;
9169 var83
= ((short int (*)(val
*))(var_82
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var_82
) /* is_ok on <var_82:MapIterator[MClass, Array[nullable MPropDef]]>*/;
9173 var84
= ((val
* (*)(val
*))(var_82
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var_82
) /* key on <var_82:MapIterator[MClass, Array[nullable MPropDef]]>*/;
9177 var86
= ((val
* (*)(val
*))(var_82
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var_82
) /* item on <var_82:MapIterator[MClass, Array[nullable MPropDef]]>*/;
9179 var_table87
= var86
;
9181 { /* Inline array#AbstractArrayRead#length (var_table87) on <var_table87:Array[nullable MPropDef]> */
9182 var90
= var_table87
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table87:Array[nullable MPropDef]> */
9184 RET_LABEL89
:(void)0;
9188 { /* Inline kernel#Int#+ (var_total,var88) on <var_total:Int> */
9189 /* Covariant cast for argument 0 (i) <var88:Int> isa OTHER */
9190 /* <var88:Int> isa OTHER */
9191 var93
= 1; /* easy <var88:Int> isa OTHER*/
9192 if (unlikely(!var93
)) {
9193 var_class_name96
= type_kernel__Int
.name
;
9194 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name96
);
9195 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
9198 var97
= var_total
+ var88
;
9201 RET_LABEL92
:(void)0;
9205 var_98
= var_table87
;
9207 var99
= array__AbstractArrayRead__iterator(var_98
);
9212 var101
= array__ArrayIterator__is_ok(var_100
);
9216 var102
= array__ArrayIterator__item(var_100
);
9220 if (var_e103
== NULL
) {
9221 var105
= 1; /* is null */
9223 var105
= 0; /* arg is null but recv is not */
9226 { /* Inline kernel#Object#== (var_e103,var104) on <var_e103:nullable MPropDef> */
9229 { /* Inline kernel#Object#is_same_instance (var_e103,var_other) on <var_e103:nullable MPropDef(MPropDef)> */
9230 var110
= var_e103
== var_other
;
9233 RET_LABEL109
:(void)0;
9238 RET_LABEL107
:(void)0;
9245 { /* Inline kernel#Int#+ (var_holes,var111) on <var_holes:Int> */
9246 /* Covariant cast for argument 0 (i) <var111:Int> isa OTHER */
9247 /* <var111:Int> isa OTHER */
9248 var114
= 1; /* easy <var111:Int> isa OTHER*/
9249 if (unlikely(!var114
)) {
9250 var_class_name117
= type_kernel__Int
.name
;
9251 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name117
);
9252 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
9255 var118
= var_holes
+ var111
;
9258 RET_LABEL113
:(void)0;
9265 array__ArrayIterator__next(var_100
); /* Direct call array#ArrayIterator#next on <var_100:ArrayIterator[nullable MPropDef]>*/
9268 goto BREAK_label119
;
9271 BREAK_label119
: (void)0;
9273 { /* Inline abstract_collection#Iterator#finish (var_100) on <var_100:ArrayIterator[nullable MPropDef]> */
9274 RET_LABEL120
:(void)0;
9278 ((void (*)(val
*))(var_82
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var_82
) /* next on <var_82:MapIterator[MClass, Array[nullable MPropDef]]>*/;
9281 goto BREAK_label121
;
9284 BREAK_label121
: (void)0;
9286 { /* Inline abstract_collection#MapIterator#finish (var_82) on <var_82:MapIterator[MClass, Array[nullable MPropDef]]> */
9287 RET_LABEL122
:(void)0;
9291 var124
= varonce123
;
9295 var127
= string__NativeString__to_s_with_length(var125
, var126
);
9297 varonce123
= var124
;
9300 var129
= varonce128
;
9304 var132
= string__NativeString__to_s_with_length(var130
, var131
);
9306 varonce128
= var129
;
9308 var133
= NEW_array__Array(&type_array__Arraykernel__Object
);
9309 { /* var133 = array_instance Array[Object] */
9311 var135
= NEW_array__NativeArray(var134
, &type_array__NativeArraykernel__Object
);
9312 ((struct instance_array__NativeArray
*)var135
)->values
[0] = (val
*) var124
;
9313 var136
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
9314 ((struct instance_array__NativeArray
*)var135
)->values
[1] = (val
*) var136
;
9315 ((struct instance_array__NativeArray
*)var135
)->values
[2] = (val
*) var129
;
9316 var137
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
9317 ((struct instance_array__NativeArray
*)var135
)->values
[3] = (val
*) var137
;
9319 ((void (*)(val
*, val
*, long))(var133
->class->vft
[COLOR_array__Array__with_native
]))(var133
, var135
, var134
) /* with_native on <var133:Array[Object]>*/;
9323 var138
= ((val
* (*)(val
*))(var133
->class->vft
[COLOR_string__Object__to_s
]))(var133
) /* to_s on <var133:Array[Object]>*/;
9326 file__Object__print(self
, var138
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
9329 var140
= varonce139
;
9331 var141
= "# size of methods tables";
9333 var143
= string__NativeString__to_s_with_length(var141
, var142
);
9335 varonce139
= var140
;
9338 file__Object__print(self
, var140
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
9341 var145
= varonce144
;
9343 var146
= "\11total \11holes";
9345 var148
= string__NativeString__to_s_with_length(var146
, var147
);
9347 varonce144
= var145
;
9350 file__Object__print(self
, var145
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
9357 { /* Inline separate_compiler#SeparateCompiler#method_tables (self) on <self:SeparateErasureCompiler> */
9358 var153
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_tables
].val
; /* _method_tables on <self:SeparateErasureCompiler> */
9359 if (unlikely(var153
== NULL
)) {
9360 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
9361 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 845);
9365 RET_LABEL152
:(void)0;
9370 var155
= ((val
* (*)(val
*))(var_154
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_154
) /* iterator on <var_154:Map[MClass, Array[nullable MPropDef]]>*/;
9375 var157
= ((short int (*)(val
*))(var_156
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var_156
) /* is_ok on <var_156:MapIterator[MClass, Array[nullable MPropDef]]>*/;
9379 var158
= ((val
* (*)(val
*))(var_156
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var_156
) /* key on <var_156:MapIterator[MClass, Array[nullable MPropDef]]>*/;
9383 var160
= ((val
* (*)(val
*))(var_156
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var_156
) /* item on <var_156:MapIterator[MClass, Array[nullable MPropDef]]>*/;
9385 var_table161
= var160
;
9387 { /* Inline array#AbstractArrayRead#length (var_table161) on <var_table161:Array[nullable MPropDef]> */
9388 var164
= var_table161
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table161:Array[nullable MPropDef]> */
9390 RET_LABEL163
:(void)0;
9394 { /* Inline kernel#Int#+ (var_total,var162) on <var_total:Int> */
9395 /* Covariant cast for argument 0 (i) <var162:Int> isa OTHER */
9396 /* <var162:Int> isa OTHER */
9397 var167
= 1; /* easy <var162:Int> isa OTHER*/
9398 if (unlikely(!var167
)) {
9399 var_class_name170
= type_kernel__Int
.name
;
9400 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name170
);
9401 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
9404 var171
= var_total
+ var162
;
9407 RET_LABEL166
:(void)0;
9411 var_172
= var_table161
;
9413 var173
= array__AbstractArrayRead__iterator(var_172
);
9418 var175
= array__ArrayIterator__is_ok(var_174
);
9422 var176
= array__ArrayIterator__item(var_174
);
9426 if (var_e177
== NULL
) {
9427 var179
= 1; /* is null */
9429 var179
= 0; /* arg is null but recv is not */
9432 { /* Inline kernel#Object#== (var_e177,var178) on <var_e177:nullable MPropDef> */
9435 { /* Inline kernel#Object#is_same_instance (var_e177,var_other) on <var_e177:nullable MPropDef(MPropDef)> */
9436 var184
= var_e177
== var_other
;
9439 RET_LABEL183
:(void)0;
9444 RET_LABEL181
:(void)0;
9451 { /* Inline kernel#Int#+ (var_holes,var185) on <var_holes:Int> */
9452 /* Covariant cast for argument 0 (i) <var185:Int> isa OTHER */
9453 /* <var185:Int> isa OTHER */
9454 var188
= 1; /* easy <var185:Int> isa OTHER*/
9455 if (unlikely(!var188
)) {
9456 var_class_name191
= type_kernel__Int
.name
;
9457 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name191
);
9458 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
9461 var192
= var_holes
+ var185
;
9464 RET_LABEL187
:(void)0;
9471 array__ArrayIterator__next(var_174
); /* Direct call array#ArrayIterator#next on <var_174:ArrayIterator[nullable MPropDef]>*/
9474 goto BREAK_label193
;
9477 BREAK_label193
: (void)0;
9479 { /* Inline abstract_collection#Iterator#finish (var_174) on <var_174:ArrayIterator[nullable MPropDef]> */
9480 RET_LABEL194
:(void)0;
9484 ((void (*)(val
*))(var_156
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var_156
) /* next on <var_156:MapIterator[MClass, Array[nullable MPropDef]]>*/;
9487 goto BREAK_label195
;
9490 BREAK_label195
: (void)0;
9492 { /* Inline abstract_collection#MapIterator#finish (var_156) on <var_156:MapIterator[MClass, Array[nullable MPropDef]]> */
9493 RET_LABEL196
:(void)0;
9497 var198
= varonce197
;
9501 var201
= string__NativeString__to_s_with_length(var199
, var200
);
9503 varonce197
= var198
;
9506 var203
= varonce202
;
9510 var206
= string__NativeString__to_s_with_length(var204
, var205
);
9512 varonce202
= var203
;
9514 var207
= NEW_array__Array(&type_array__Arraykernel__Object
);
9515 { /* var207 = array_instance Array[Object] */
9517 var209
= NEW_array__NativeArray(var208
, &type_array__NativeArraykernel__Object
);
9518 ((struct instance_array__NativeArray
*)var209
)->values
[0] = (val
*) var198
;
9519 var210
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
9520 ((struct instance_array__NativeArray
*)var209
)->values
[1] = (val
*) var210
;
9521 ((struct instance_array__NativeArray
*)var209
)->values
[2] = (val
*) var203
;
9522 var211
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
9523 ((struct instance_array__NativeArray
*)var209
)->values
[3] = (val
*) var211
;
9525 ((void (*)(val
*, val
*, long))(var207
->class->vft
[COLOR_array__Array__with_native
]))(var207
, var209
, var208
) /* with_native on <var207:Array[Object]>*/;
9529 var212
= ((val
* (*)(val
*))(var207
->class->vft
[COLOR_string__Object__to_s
]))(var207
) /* to_s on <var207:Array[Object]>*/;
9532 file__Object__print(self
, var212
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
9535 var214
= varonce213
;
9537 var215
= "# size of attributes tables";
9539 var217
= string__NativeString__to_s_with_length(var215
, var216
);
9541 varonce213
= var214
;
9544 file__Object__print(self
, var214
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
9547 var219
= varonce218
;
9549 var220
= "\11total \11holes";
9551 var222
= string__NativeString__to_s_with_length(var220
, var221
);
9553 varonce218
= var219
;
9556 file__Object__print(self
, var219
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
9563 { /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on <self:SeparateErasureCompiler> */
9564 var227
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_tables
].val
; /* _attr_tables on <self:SeparateErasureCompiler> */
9565 if (unlikely(var227
== NULL
)) {
9566 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
9567 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 846);
9571 RET_LABEL226
:(void)0;
9576 var229
= ((val
* (*)(val
*))(var_228
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_228
) /* iterator on <var_228:Map[MClass, Array[nullable MPropDef]]>*/;
9581 var231
= ((short int (*)(val
*))(var_230
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var_230
) /* is_ok on <var_230:MapIterator[MClass, Array[nullable MPropDef]]>*/;
9585 var232
= ((val
* (*)(val
*))(var_230
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var_230
) /* key on <var_230:MapIterator[MClass, Array[nullable MPropDef]]>*/;
9589 var234
= ((val
* (*)(val
*))(var_230
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var_230
) /* item on <var_230:MapIterator[MClass, Array[nullable MPropDef]]>*/;
9591 var_table235
= var234
;
9593 { /* Inline array#AbstractArrayRead#length (var_table235) on <var_table235:Array[nullable MPropDef]> */
9594 var238
= var_table235
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_table235:Array[nullable MPropDef]> */
9596 RET_LABEL237
:(void)0;
9600 { /* Inline kernel#Int#+ (var_total,var236) on <var_total:Int> */
9601 /* Covariant cast for argument 0 (i) <var236:Int> isa OTHER */
9602 /* <var236:Int> isa OTHER */
9603 var241
= 1; /* easy <var236:Int> isa OTHER*/
9604 if (unlikely(!var241
)) {
9605 var_class_name244
= type_kernel__Int
.name
;
9606 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name244
);
9607 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
9610 var245
= var_total
+ var236
;
9613 RET_LABEL240
:(void)0;
9617 var_246
= var_table235
;
9619 var247
= array__AbstractArrayRead__iterator(var_246
);
9624 var249
= array__ArrayIterator__is_ok(var_248
);
9628 var250
= array__ArrayIterator__item(var_248
);
9632 if (var_e251
== NULL
) {
9633 var253
= 1; /* is null */
9635 var253
= 0; /* arg is null but recv is not */
9638 { /* Inline kernel#Object#== (var_e251,var252) on <var_e251:nullable MPropDef> */
9641 { /* Inline kernel#Object#is_same_instance (var_e251,var_other) on <var_e251:nullable MPropDef(MPropDef)> */
9642 var258
= var_e251
== var_other
;
9645 RET_LABEL257
:(void)0;
9650 RET_LABEL255
:(void)0;
9657 { /* Inline kernel#Int#+ (var_holes,var259) on <var_holes:Int> */
9658 /* Covariant cast for argument 0 (i) <var259:Int> isa OTHER */
9659 /* <var259:Int> isa OTHER */
9660 var262
= 1; /* easy <var259:Int> isa OTHER*/
9661 if (unlikely(!var262
)) {
9662 var_class_name265
= type_kernel__Int
.name
;
9663 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name265
);
9664 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
9667 var266
= var_holes
+ var259
;
9670 RET_LABEL261
:(void)0;
9677 array__ArrayIterator__next(var_248
); /* Direct call array#ArrayIterator#next on <var_248:ArrayIterator[nullable MPropDef]>*/
9680 goto BREAK_label267
;
9683 BREAK_label267
: (void)0;
9685 { /* Inline abstract_collection#Iterator#finish (var_248) on <var_248:ArrayIterator[nullable MPropDef]> */
9686 RET_LABEL268
:(void)0;
9690 ((void (*)(val
*))(var_230
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var_230
) /* next on <var_230:MapIterator[MClass, Array[nullable MPropDef]]>*/;
9693 goto BREAK_label269
;
9696 BREAK_label269
: (void)0;
9698 { /* Inline abstract_collection#MapIterator#finish (var_230) on <var_230:MapIterator[MClass, Array[nullable MPropDef]]> */
9699 RET_LABEL270
:(void)0;
9703 var272
= varonce271
;
9707 var275
= string__NativeString__to_s_with_length(var273
, var274
);
9709 varonce271
= var272
;
9712 var277
= varonce276
;
9716 var280
= string__NativeString__to_s_with_length(var278
, var279
);
9718 varonce276
= var277
;
9720 var281
= NEW_array__Array(&type_array__Arraykernel__Object
);
9721 { /* var281 = array_instance Array[Object] */
9723 var283
= NEW_array__NativeArray(var282
, &type_array__NativeArraykernel__Object
);
9724 ((struct instance_array__NativeArray
*)var283
)->values
[0] = (val
*) var272
;
9725 var284
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
9726 ((struct instance_array__NativeArray
*)var283
)->values
[1] = (val
*) var284
;
9727 ((struct instance_array__NativeArray
*)var283
)->values
[2] = (val
*) var277
;
9728 var285
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
9729 ((struct instance_array__NativeArray
*)var283
)->values
[3] = (val
*) var285
;
9731 ((void (*)(val
*, val
*, long))(var281
->class->vft
[COLOR_array__Array__with_native
]))(var281
, var283
, var282
) /* with_native on <var281:Array[Object]>*/;
9735 var286
= ((val
* (*)(val
*))(var281
->class->vft
[COLOR_string__Object__to_s
]))(var281
) /* to_s on <var281:Array[Object]>*/;
9738 file__Object__print(self
, var286
); /* Direct call file#Object#print on <self:SeparateErasureCompiler>*/
9742 /* method separate_erasure_compiler#SeparateErasureCompiler#display_sizes for (self: Object) */
9743 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__display_sizes(val
* self
) {
9744 separate_erasure_compiler__SeparateErasureCompiler__display_sizes(self
); /* Direct call separate_erasure_compiler#SeparateErasureCompiler#display_sizes on <self:Object(SeparateErasureCompiler)>*/