1 #include "separate_erasure_compiler.sep.0.h"
2 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#compile_callsite for (self: SeparateErasureCompilerVisitor, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
3 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite(val
* self
, val
* p0
, val
* p1
) {
4 val
* var
/* : nullable RuntimeVariable */;
5 val
* var_callsite
/* var callsite: CallSite */;
6 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
7 val
* var1
/* : nullable RuntimeVariable */;
8 val
* var_res
/* var res: nullable RuntimeVariable */;
9 short int var2
/* : Bool */;
10 short int var3
/* : Bool */;
11 short int var5
/* : Bool */;
12 short int var_
/* var : Bool */;
13 val
* var6
/* : AbstractCompiler */;
14 val
* var8
/* : AbstractCompiler */;
15 short int var9
/* : Bool */;
18 const char* var_class_name
;
19 val
* var10
/* : ModelBuilder */;
20 val
* var12
/* : ModelBuilder */;
21 val
* var13
/* : ToolContext */;
22 val
* var15
/* : ToolContext */;
23 val
* var16
/* : OptionBool */;
24 val
* var18
/* : OptionBool */;
25 val
* var19
/* : nullable Object */;
26 val
* var21
/* : nullable Object */;
27 short int var22
/* : Bool */;
28 short int var23
/* : Bool */;
29 val
* var24
/* : null */;
30 short int var25
/* : Bool */;
31 short int var26
/* : Bool */;
32 val
* var_other
/* var other: nullable Object */;
33 short int var28
/* : Bool */;
34 short int var29
/* : Bool */;
35 short int var30
/* : Bool */;
36 val
* var31
/* : MSignature */;
37 val
* var33
/* : MSignature */;
38 val
* var34
/* : nullable MType */;
39 val
* var36
/* : nullable MType */;
40 val
* var_mtype
/* var mtype: nullable MType */;
41 val
* var37
/* : null */;
42 short int var38
/* : Bool */;
43 short int var39
/* : Bool */;
44 short int var41
/* : Bool */;
45 short int var42
/* : Bool */;
46 short int var43
/* : Bool */;
48 val
* var44
/* : String */;
49 char* var45
/* : NativeString */;
50 long var46
/* : Int */;
51 val
* var47
/* : FlatString */;
52 static val
* varonce48
;
53 val
* var49
/* : String */;
54 char* var50
/* : NativeString */;
55 long var51
/* : Int */;
56 val
* var52
/* : FlatString */;
57 static val
* varonce53
;
58 val
* var54
/* : String */;
59 char* var55
/* : NativeString */;
60 long var56
/* : Int */;
61 val
* var57
/* : FlatString */;
62 val
* var58
/* : Array[Object] */;
63 long var59
/* : Int */;
64 val
* var60
/* : NativeArray[Object] */;
65 val
* var61
/* : String */;
66 static val
* varonce62
;
67 val
* var63
/* : String */;
68 char* var64
/* : NativeString */;
69 long var65
/* : Int */;
70 val
* var66
/* : FlatString */;
71 val
* var67
/* : RuntimeVariable */;
72 val
* var_cond
/* var cond: RuntimeVariable */;
73 static val
* varonce68
;
74 val
* var69
/* : String */;
75 char* var70
/* : NativeString */;
76 long var71
/* : Int */;
77 val
* var72
/* : FlatString */;
78 static val
* varonce73
;
79 val
* var74
/* : String */;
80 char* var75
/* : NativeString */;
81 long var76
/* : Int */;
82 val
* var77
/* : FlatString */;
83 val
* var78
/* : Array[Object] */;
84 long var79
/* : Int */;
85 val
* var80
/* : NativeArray[Object] */;
86 val
* var81
/* : String */;
87 static val
* varonce82
;
88 val
* var83
/* : String */;
89 char* var84
/* : NativeString */;
90 long var85
/* : Int */;
91 val
* var86
/* : FlatString */;
92 static val
* varonce87
;
93 val
* var88
/* : String */;
94 char* var89
/* : NativeString */;
95 long var90
/* : Int */;
96 val
* var91
/* : FlatString */;
100 var1
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite
]))(self
, p0
, p1
) /* compile_callsite on <self:SeparateErasureCompilerVisitor>*/;
104 { /* Inline typing#CallSite#erasure_cast (var_callsite) on <var_callsite:CallSite> */
105 var5
= var_callsite
->attrs
[COLOR_typing__CallSite___erasure_cast
].s
; /* _erasure_cast on <var_callsite:CallSite> */
113 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
114 var8
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
115 if (unlikely(var8
== NULL
)) {
116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
117 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
124 /* <var6:AbstractCompiler(SeparateCompiler)> isa SeparateErasureCompiler */
125 cltype
= type_separate_erasure_compiler__SeparateErasureCompiler
.color
;
126 idtype
= type_separate_erasure_compiler__SeparateErasureCompiler
.id
;
127 if(cltype
>= var6
->type
->table_size
) {
130 var9
= var6
->type
->type_table
[cltype
] == idtype
;
132 if (unlikely(!var9
)) {
133 var_class_name
= var6
== NULL ?
"null" : var6
->type
->name
;
134 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SeparateErasureCompiler", var_class_name
);
135 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 494);
139 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var6) on <var6:SeparateCompiler(SeparateErasureCompiler)> */
140 var12
= var6
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var6:SeparateCompiler(SeparateErasureCompiler)> */
141 if (unlikely(var12
== NULL
)) {
142 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
143 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
151 { /* Inline modelbuilder#ModelBuilder#toolcontext (var10) on <var10:ModelBuilder> */
152 var15
= var10
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var10:ModelBuilder> */
153 if (unlikely(var15
== NULL
)) {
154 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
155 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
163 { /* Inline separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast (var13) on <var13:ToolContext> */
164 var18
= var13
->attrs
[COLOR_separate_erasure_compiler__ToolContext___opt_no_check_erasure_cast
].val
; /* _opt_no_check_erasure_cast on <var13:ToolContext> */
165 if (unlikely(var18
== NULL
)) {
166 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast");
167 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 26);
175 { /* Inline opts#Option#value (var16) on <var16:OptionBool> */
176 var21
= var16
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var16:OptionBool> */
181 var22
= ((struct instance_kernel__Bool
*)var19
)->value
; /* autounbox from nullable Object to Bool */;
189 if (var_res
== NULL
) {
190 var25
= 0; /* is null */
192 var25
= 1; /* arg is null and recv is not */
195 { /* Inline kernel#Object#!= (var_res,var24) on <var_res:nullable RuntimeVariable> */
198 var29
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/;
208 if (unlikely(!var25
)) {
209 PRINT_ERROR("Runtime error: %s", "Assert failed");
210 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 495);
214 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:CallSite> */
215 var33
= var_callsite
->attrs
[COLOR_typing__CallSite___msignature
].val
; /* _msignature on <var_callsite:CallSite> */
216 if (unlikely(var33
== NULL
)) {
217 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
218 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 490);
226 { /* Inline model#MSignature#return_mtype (var31) on <var31:MSignature> */
227 var36
= var31
->attrs
[COLOR_model__MSignature___return_mtype
].val
; /* _return_mtype on <var31:MSignature> */
234 if (var_mtype
== NULL
) {
235 var38
= 0; /* is null */
237 var38
= 1; /* arg is null and recv is not */
240 { /* Inline kernel#Object#!= (var_mtype,var37) on <var_mtype:nullable MType> */
243 var42
= ((short int (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mtype
, var_other
) /* == on <var_mtype:nullable MType(MType)>*/;
253 if (unlikely(!var38
)) {
254 PRINT_ERROR("Runtime error: %s", "Assert failed");
255 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 497);
261 var45
= "/* Erasure cast for return ";
263 var47
= string__NativeString__to_s_with_length(var45
, var46
);
272 var52
= string__NativeString__to_s_with_length(var50
, var51
);
281 var57
= string__NativeString__to_s_with_length(var55
, var56
);
285 var58
= NEW_array__Array(&type_array__Arraykernel__Object
);
286 { /* var58 = array_instance Array[Object] */
288 var60
= NEW_array__NativeArray(var59
, &type_array__NativeArraykernel__Object
);
289 ((struct instance_array__NativeArray
*)var60
)->values
[0] = (val
*) var44
;
290 ((struct instance_array__NativeArray
*)var60
)->values
[1] = (val
*) var_res
;
291 ((struct instance_array__NativeArray
*)var60
)->values
[2] = (val
*) var49
;
292 ((struct instance_array__NativeArray
*)var60
)->values
[3] = (val
*) var_mtype
;
293 ((struct instance_array__NativeArray
*)var60
)->values
[4] = (val
*) var54
;
295 ((void (*)(val
*, val
*, long))(var58
->class->vft
[COLOR_array__Array__with_native
]))(var58
, var60
, var59
) /* with_native on <var58:Array[Object]>*/;
299 var61
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_string__Object__to_s
]))(var58
) /* to_s on <var58:Array[Object]>*/;
302 abstract_compiler__AbstractCompilerVisitor__add(self
, var61
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
309 var66
= string__NativeString__to_s_with_length(var64
, var65
);
314 var67
= separate_erasure_compiler__SeparateErasureCompilerVisitor__type_test(self
, var_res
, var_mtype
, var63
);
322 var72
= string__NativeString__to_s_with_length(var70
, var71
);
331 var77
= string__NativeString__to_s_with_length(var75
, var76
);
335 var78
= NEW_array__Array(&type_array__Arraykernel__Object
);
336 { /* var78 = array_instance Array[Object] */
338 var80
= NEW_array__NativeArray(var79
, &type_array__NativeArraykernel__Object
);
339 ((struct instance_array__NativeArray
*)var80
)->values
[0] = (val
*) var69
;
340 ((struct instance_array__NativeArray
*)var80
)->values
[1] = (val
*) var_cond
;
341 ((struct instance_array__NativeArray
*)var80
)->values
[2] = (val
*) var74
;
343 ((void (*)(val
*, val
*, long))(var78
->class->vft
[COLOR_array__Array__with_native
]))(var78
, var80
, var79
) /* with_native on <var78:Array[Object]>*/;
347 var81
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_string__Object__to_s
]))(var78
) /* to_s on <var78:Array[Object]>*/;
350 abstract_compiler__AbstractCompilerVisitor__add(self
, var81
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
355 var84
= "Cast failed";
357 var86
= string__NativeString__to_s_with_length(var84
, var85
);
362 abstract_compiler__AbstractCompilerVisitor__add_abort(self
, var83
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <self:SeparateErasureCompilerVisitor>*/
369 var91
= string__NativeString__to_s_with_length(var89
, var90
);
374 abstract_compiler__AbstractCompilerVisitor__add(self
, var88
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
383 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#compile_callsite for (self: Object, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
384 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite(val
* self
, val
* p0
, val
* p1
) {
385 val
* var
/* : nullable RuntimeVariable */;
386 val
* var1
/* : nullable RuntimeVariable */;
387 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__compile_callsite(self
, p0
, p1
);
392 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#init_instance for (self: SeparateErasureCompilerVisitor, MClassType): RuntimeVariable */
393 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__init_instance(val
* self
, val
* p0
) {
394 val
* var
/* : RuntimeVariable */;
395 val
* var_mtype
/* var mtype: MClassType */;
397 val
* var1
/* : String */;
398 char* var2
/* : NativeString */;
399 long var3
/* : Int */;
400 val
* var4
/* : FlatString */;
401 val
* var5
/* : MClass */;
402 val
* var7
/* : MClass */;
403 val
* var8
/* : String */;
404 val
* var9
/* : Array[Object] */;
405 long var10
/* : Int */;
406 val
* var11
/* : NativeArray[Object] */;
407 val
* var12
/* : String */;
408 static val
* varonce13
;
409 val
* var14
/* : String */;
410 char* var15
/* : NativeString */;
411 long var16
/* : Int */;
412 val
* var17
/* : FlatString */;
413 val
* var18
/* : MClass */;
414 val
* var20
/* : MClass */;
415 val
* var21
/* : String */;
416 static val
* varonce22
;
417 val
* var23
/* : String */;
418 char* var24
/* : NativeString */;
419 long var25
/* : Int */;
420 val
* var26
/* : FlatString */;
421 val
* var27
/* : Array[Object] */;
422 long var28
/* : Int */;
423 val
* var29
/* : NativeArray[Object] */;
424 val
* var30
/* : String */;
425 val
* var31
/* : RuntimeVariable */;
432 var4
= string__NativeString__to_s_with_length(var2
, var3
);
437 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
438 var7
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
439 if (unlikely(var7
== NULL
)) {
440 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
441 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
449 var8
= abstract_compiler__MClass__c_name(var5
);
451 var9
= NEW_array__Array(&type_array__Arraykernel__Object
);
452 { /* var9 = array_instance Array[Object] */
454 var11
= NEW_array__NativeArray(var10
, &type_array__NativeArraykernel__Object
);
455 ((struct instance_array__NativeArray
*)var11
)->values
[0] = (val
*) var1
;
456 ((struct instance_array__NativeArray
*)var11
)->values
[1] = (val
*) var8
;
458 ((void (*)(val
*, val
*, long))(var9
->class->vft
[COLOR_array__Array__with_native
]))(var9
, var11
, var10
) /* with_native on <var9:Array[Object]>*/;
462 var12
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_string__Object__to_s
]))(var9
) /* to_s on <var9:Array[Object]>*/;
465 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var12
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
472 var17
= string__NativeString__to_s_with_length(var15
, var16
);
477 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
478 var20
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
479 if (unlikely(var20
== NULL
)) {
480 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
481 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
489 var21
= abstract_compiler__MClass__c_name(var18
);
496 var26
= string__NativeString__to_s_with_length(var24
, var25
);
500 var27
= NEW_array__Array(&type_array__Arraykernel__Object
);
501 { /* var27 = array_instance Array[Object] */
503 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraykernel__Object
);
504 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var14
;
505 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var21
;
506 ((struct instance_array__NativeArray
*)var29
)->values
[2] = (val
*) var23
;
508 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
512 var30
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
515 var31
= abstract_compiler__AbstractCompilerVisitor__new_expr(self
, var30
, var_mtype
);
522 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#init_instance for (self: Object, MClassType): RuntimeVariable */
523 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__init_instance(val
* self
, val
* p0
) {
524 val
* var
/* : RuntimeVariable */;
525 val
* var1
/* : RuntimeVariable */;
526 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__init_instance(self
, p0
);
531 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#type_test for (self: SeparateErasureCompilerVisitor, RuntimeVariable, MType, String): RuntimeVariable */
532 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
533 val
* var
/* : RuntimeVariable */;
534 val
* var_value
/* var value: RuntimeVariable */;
535 val
* var_mtype
/* var mtype: MType */;
536 val
* var_tag
/* var tag: String */;
538 val
* var1
/* : String */;
539 char* var2
/* : NativeString */;
540 long var3
/* : Int */;
541 val
* var4
/* : FlatString */;
542 val
* var5
/* : String */;
543 static val
* varonce6
;
544 val
* var7
/* : String */;
545 char* var8
/* : NativeString */;
546 long var9
/* : Int */;
547 val
* var10
/* : FlatString */;
548 static val
* varonce11
;
549 val
* var12
/* : String */;
550 char* var13
/* : NativeString */;
551 long var14
/* : Int */;
552 val
* var15
/* : FlatString */;
553 val
* var16
/* : Array[Object] */;
554 long var17
/* : Int */;
555 val
* var18
/* : NativeArray[Object] */;
556 val
* var19
/* : String */;
557 val
* var20
/* : MClassType */;
558 val
* var21
/* : RuntimeVariable */;
559 val
* var_res
/* var res: RuntimeVariable */;
560 static val
* varonce22
;
561 val
* var23
/* : String */;
562 char* var24
/* : NativeString */;
563 long var25
/* : Int */;
564 val
* var26
/* : FlatString */;
565 val
* var27
/* : String */;
566 val
* var_cltype
/* var cltype: String */;
567 static val
* varonce28
;
568 val
* var29
/* : String */;
569 char* var30
/* : NativeString */;
570 long var31
/* : Int */;
571 val
* var32
/* : FlatString */;
572 static val
* varonce33
;
573 val
* var34
/* : String */;
574 char* var35
/* : NativeString */;
575 long var36
/* : Int */;
576 val
* var37
/* : FlatString */;
577 val
* var38
/* : Array[Object] */;
578 long var39
/* : Int */;
579 val
* var40
/* : NativeArray[Object] */;
580 val
* var41
/* : String */;
581 static val
* varonce42
;
582 val
* var43
/* : String */;
583 char* var44
/* : NativeString */;
584 long var45
/* : Int */;
585 val
* var46
/* : FlatString */;
586 val
* var47
/* : String */;
587 val
* var_idtype
/* var idtype: String */;
588 static val
* varonce48
;
589 val
* var49
/* : String */;
590 char* var50
/* : NativeString */;
591 long var51
/* : Int */;
592 val
* var52
/* : FlatString */;
593 static val
* varonce53
;
594 val
* var54
/* : String */;
595 char* var55
/* : NativeString */;
596 long var56
/* : Int */;
597 val
* var57
/* : FlatString */;
598 val
* var58
/* : Array[Object] */;
599 long var59
/* : Int */;
600 val
* var60
/* : NativeArray[Object] */;
601 val
* var61
/* : String */;
602 short int var62
/* : Bool */;
603 short int var_maybe_null
/* var maybe_null: Bool */;
604 static val
* varonce63
;
605 val
* var64
/* : String */;
606 char* var65
/* : NativeString */;
607 long var66
/* : Int */;
608 val
* var67
/* : FlatString */;
609 val
* var_accept_null
/* var accept_null: String */;
610 short int var68
/* : Bool */;
613 val
* var69
/* : MType */;
614 val
* var71
/* : MType */;
615 static val
* varonce72
;
616 val
* var73
/* : String */;
617 char* var74
/* : NativeString */;
618 long var75
/* : Int */;
619 val
* var76
/* : FlatString */;
620 short int var77
/* : Bool */;
623 val
* var80
/* : nullable Frame */;
624 val
* var82
/* : nullable Frame */;
625 val
* var83
/* : MPropDef */;
626 val
* var85
/* : MPropDef */;
627 val
* var86
/* : MClassDef */;
628 val
* var88
/* : MClassDef */;
629 val
* var89
/* : MClassType */;
630 val
* var91
/* : MClassType */;
631 val
* var92
/* : nullable Frame */;
632 val
* var94
/* : nullable Frame */;
633 val
* var95
/* : MPropDef */;
634 val
* var97
/* : MPropDef */;
635 val
* var98
/* : MClassDef */;
636 val
* var100
/* : MClassDef */;
637 val
* var101
/* : MClassType */;
638 val
* var103
/* : MClassType */;
639 val
* var104
/* : nullable Frame */;
640 val
* var106
/* : nullable Frame */;
641 val
* var107
/* : MPropDef */;
642 val
* var109
/* : MPropDef */;
643 val
* var110
/* : MClassDef */;
644 val
* var112
/* : MClassDef */;
645 val
* var113
/* : MModule */;
646 val
* var115
/* : MModule */;
647 short int var116
/* : Bool */;
648 val
* var117
/* : MType */;
649 short int var118
/* : Bool */;
652 val
* var121
/* : MType */;
653 val
* var123
/* : MType */;
654 static val
* varonce124
;
655 val
* var125
/* : String */;
656 char* var126
/* : NativeString */;
657 long var127
/* : Int */;
658 val
* var128
/* : FlatString */;
659 val
* var129
/* : MType */;
660 val
* var131
/* : MType */;
661 val
* var132
/* : nullable Frame */;
662 val
* var134
/* : nullable Frame */;
663 val
* var135
/* : MPropDef */;
664 val
* var137
/* : MPropDef */;
665 val
* var138
/* : MClassDef */;
666 val
* var140
/* : MClassDef */;
667 val
* var141
/* : MModule */;
668 val
* var143
/* : MModule */;
669 val
* var144
/* : nullable Frame */;
670 val
* var146
/* : nullable Frame */;
671 val
* var147
/* : MPropDef */;
672 val
* var149
/* : MPropDef */;
673 val
* var150
/* : MClassDef */;
674 val
* var152
/* : MClassDef */;
675 val
* var153
/* : MClassType */;
676 val
* var155
/* : MClassType */;
677 short int var156
/* : Bool */;
678 static val
* varonce157
;
679 val
* var158
/* : String */;
680 char* var159
/* : NativeString */;
681 long var160
/* : Int */;
682 val
* var161
/* : FlatString */;
683 val
* var162
/* : String */;
684 static val
* varonce163
;
685 val
* var164
/* : String */;
686 char* var165
/* : NativeString */;
687 long var166
/* : Int */;
688 val
* var167
/* : FlatString */;
689 static val
* varonce168
;
690 val
* var169
/* : String */;
691 char* var170
/* : NativeString */;
692 long var171
/* : Int */;
693 val
* var172
/* : FlatString */;
694 val
* var173
/* : Array[Object] */;
695 long var174
/* : Int */;
696 val
* var175
/* : NativeArray[Object] */;
697 val
* var176
/* : String */;
698 val
* var177
/* : AbstractCompiler */;
699 val
* var179
/* : AbstractCompiler */;
700 val
* var180
/* : ModelBuilder */;
701 val
* var182
/* : ModelBuilder */;
702 val
* var183
/* : ToolContext */;
703 val
* var185
/* : ToolContext */;
704 val
* var186
/* : OptionBool */;
705 val
* var188
/* : OptionBool */;
706 val
* var189
/* : nullable Object */;
707 val
* var191
/* : nullable Object */;
708 short int var192
/* : Bool */;
709 val
* var193
/* : AbstractCompiler */;
710 val
* var195
/* : AbstractCompiler */;
711 val
* var196
/* : HashMap[String, Int] */;
712 val
* var198
/* : HashMap[String, Int] */;
713 val
* var_
/* var : HashMap[String, Int] */;
714 val
* var_199
/* var : String */;
715 val
* var200
/* : nullable Object */;
716 long var201
/* : Int */;
717 long var202
/* : Int */;
718 short int var204
/* : Bool */;
721 const char* var_class_name
;
722 long var207
/* : Int */;
723 long var208
/* : Int */;
724 val
* var209
/* : nullable Object */;
725 static val
* varonce210
;
726 val
* var211
/* : String */;
727 char* var212
/* : NativeString */;
728 long var213
/* : Int */;
729 val
* var214
/* : FlatString */;
730 static val
* varonce215
;
731 val
* var216
/* : String */;
732 char* var217
/* : NativeString */;
733 long var218
/* : Int */;
734 val
* var219
/* : FlatString */;
735 val
* var220
/* : Array[Object] */;
736 long var221
/* : Int */;
737 val
* var222
/* : NativeArray[Object] */;
738 val
* var223
/* : String */;
739 val
* var224
/* : MType */;
740 val
* var226
/* : MType */;
741 val
* var227
/* : String */;
742 static val
* varonce228
;
743 val
* var229
/* : String */;
744 char* var230
/* : NativeString */;
745 long var231
/* : Int */;
746 val
* var232
/* : FlatString */;
747 short int var233
/* : Bool */;
748 short int var234
/* : Bool */;
749 static val
* varonce235
;
750 val
* var236
/* : String */;
751 char* var237
/* : NativeString */;
752 long var238
/* : Int */;
753 val
* var239
/* : FlatString */;
754 val
* var240
/* : Array[Object] */;
755 long var241
/* : Int */;
756 val
* var242
/* : NativeArray[Object] */;
757 val
* var243
/* : String */;
758 val
* var_class_ptr
/* var class_ptr: nullable Object */;
759 val
* var244
/* : MType */;
760 val
* var246
/* : MType */;
761 short int var247
/* : Bool */;
764 const char* var_class_name250
;
765 val
* var251
/* : MClass */;
766 val
* var253
/* : MClass */;
767 val
* var_mclass
/* var mclass: MClass */;
768 static val
* varonce254
;
769 val
* var255
/* : String */;
770 char* var256
/* : NativeString */;
771 long var257
/* : Int */;
772 val
* var258
/* : FlatString */;
773 val
* var259
/* : String */;
774 val
* var260
/* : Array[Object] */;
775 long var261
/* : Int */;
776 val
* var262
/* : NativeArray[Object] */;
777 val
* var263
/* : String */;
778 static val
* varonce264
;
779 val
* var265
/* : String */;
780 char* var266
/* : NativeString */;
781 long var267
/* : Int */;
782 val
* var268
/* : FlatString */;
783 val
* var269
/* : String */;
784 static val
* varonce270
;
785 val
* var271
/* : String */;
786 char* var272
/* : NativeString */;
787 long var273
/* : Int */;
788 val
* var274
/* : FlatString */;
789 val
* var275
/* : Array[Object] */;
790 long var276
/* : Int */;
791 val
* var277
/* : NativeArray[Object] */;
792 val
* var278
/* : String */;
793 short int var279
/* : Bool */;
796 static val
* varonce282
;
797 val
* var283
/* : String */;
798 char* var284
/* : NativeString */;
799 long var285
/* : Int */;
800 val
* var286
/* : FlatString */;
801 val
* var287
/* : MClass */;
802 val
* var289
/* : MClass */;
803 val
* var290
/* : String */;
804 val
* var291
/* : Array[Object] */;
805 long var292
/* : Int */;
806 val
* var293
/* : NativeArray[Object] */;
807 val
* var294
/* : String */;
808 static val
* varonce295
;
809 val
* var296
/* : String */;
810 char* var297
/* : NativeString */;
811 long var298
/* : Int */;
812 val
* var299
/* : FlatString */;
813 val
* var300
/* : MClass */;
814 val
* var302
/* : MClass */;
815 val
* var303
/* : String */;
816 static val
* varonce304
;
817 val
* var305
/* : String */;
818 char* var306
/* : NativeString */;
819 long var307
/* : Int */;
820 val
* var308
/* : FlatString */;
821 val
* var309
/* : Array[Object] */;
822 long var310
/* : Int */;
823 val
* var311
/* : NativeArray[Object] */;
824 val
* var312
/* : String */;
825 static val
* varonce313
;
826 val
* var314
/* : String */;
827 char* var315
/* : NativeString */;
828 long var316
/* : Int */;
829 val
* var317
/* : FlatString */;
830 val
* var318
/* : MClass */;
831 val
* var320
/* : MClass */;
832 val
* var321
/* : String */;
833 static val
* varonce322
;
834 val
* var323
/* : String */;
835 char* var324
/* : NativeString */;
836 long var325
/* : Int */;
837 val
* var326
/* : FlatString */;
838 val
* var327
/* : Array[Object] */;
839 long var328
/* : Int */;
840 val
* var329
/* : NativeArray[Object] */;
841 val
* var330
/* : String */;
842 val
* var331
/* : AbstractCompiler */;
843 val
* var333
/* : AbstractCompiler */;
844 val
* var334
/* : ModelBuilder */;
845 val
* var336
/* : ModelBuilder */;
846 val
* var337
/* : ToolContext */;
847 val
* var339
/* : ToolContext */;
848 val
* var340
/* : OptionBool */;
849 val
* var342
/* : OptionBool */;
850 val
* var343
/* : nullable Object */;
851 val
* var345
/* : nullable Object */;
852 short int var346
/* : Bool */;
853 val
* var347
/* : AbstractCompiler */;
854 val
* var349
/* : AbstractCompiler */;
855 val
* var350
/* : HashMap[String, Int] */;
856 val
* var352
/* : HashMap[String, Int] */;
857 val
* var_353
/* var : HashMap[String, Int] */;
858 val
* var_354
/* var : String */;
859 val
* var355
/* : nullable Object */;
860 long var356
/* : Int */;
861 long var357
/* : Int */;
862 short int var359
/* : Bool */;
865 const char* var_class_name362
;
866 long var363
/* : Int */;
867 long var364
/* : Int */;
868 val
* var365
/* : nullable Object */;
869 static val
* varonce366
;
870 val
* var367
/* : String */;
871 char* var368
/* : NativeString */;
872 long var369
/* : Int */;
873 val
* var370
/* : FlatString */;
874 static val
* varonce371
;
875 val
* var372
/* : String */;
876 char* var373
/* : NativeString */;
877 long var374
/* : Int */;
878 val
* var375
/* : FlatString */;
879 val
* var376
/* : Array[Object] */;
880 long var377
/* : Int */;
881 val
* var378
/* : NativeArray[Object] */;
882 val
* var379
/* : String */;
883 short int var380
/* : Bool */;
886 val
* var383
/* : nullable Frame */;
887 val
* var385
/* : nullable Frame */;
888 val
* var386
/* : Array[RuntimeVariable] */;
889 val
* var388
/* : Array[RuntimeVariable] */;
890 val
* var389
/* : nullable Object */;
891 val
* var_recv
/* var recv: RuntimeVariable */;
892 val
* var390
/* : MType */;
893 val
* var392
/* : MType */;
894 val
* var393
/* : String */;
895 static val
* varonce394
;
896 val
* var395
/* : String */;
897 char* var396
/* : NativeString */;
898 long var397
/* : Int */;
899 val
* var398
/* : FlatString */;
900 short int var399
/* : Bool */;
901 short int var400
/* : Bool */;
902 static val
* varonce401
;
903 val
* var402
/* : String */;
904 char* var403
/* : NativeString */;
905 long var404
/* : Int */;
906 val
* var405
/* : FlatString */;
907 val
* var406
/* : Array[Object] */;
908 long var407
/* : Int */;
909 val
* var408
/* : NativeArray[Object] */;
910 val
* var409
/* : String */;
911 val
* var_recv_ptr
/* var recv_ptr: nullable Object */;
912 val
* var410
/* : MType */;
913 val
* var412
/* : MType */;
914 short int var413
/* : Bool */;
917 const char* var_class_name416
;
918 val
* var417
/* : MClass */;
919 val
* var419
/* : MClass */;
920 val
* var_mclass420
/* var mclass: MClass */;
921 static val
* varonce421
;
922 val
* var422
/* : String */;
923 char* var423
/* : NativeString */;
924 long var424
/* : Int */;
925 val
* var425
/* : FlatString */;
926 val
* var426
/* : String */;
927 val
* var427
/* : Array[Object] */;
928 long var428
/* : Int */;
929 val
* var429
/* : NativeArray[Object] */;
930 val
* var430
/* : String */;
931 static val
* varonce431
;
932 val
* var432
/* : String */;
933 char* var433
/* : NativeString */;
934 long var434
/* : Int */;
935 val
* var435
/* : FlatString */;
936 val
* var436
/* : String */;
937 static val
* varonce437
;
938 val
* var438
/* : String */;
939 char* var439
/* : NativeString */;
940 long var440
/* : Int */;
941 val
* var441
/* : FlatString */;
942 val
* var442
/* : Array[Object] */;
943 long var443
/* : Int */;
944 val
* var444
/* : NativeArray[Object] */;
945 val
* var445
/* : String */;
946 static val
* varonce446
;
947 val
* var447
/* : String */;
948 char* var448
/* : NativeString */;
949 long var449
/* : Int */;
950 val
* var450
/* : FlatString */;
951 val
* var451
/* : String */;
952 val
* var_entry
/* var entry: String */;
953 static val
* varonce452
;
954 val
* var453
/* : String */;
955 char* var454
/* : NativeString */;
956 long var455
/* : Int */;
957 val
* var456
/* : FlatString */;
958 static val
* varonce457
;
959 val
* var458
/* : String */;
960 char* var459
/* : NativeString */;
961 long var460
/* : Int */;
962 val
* var461
/* : FlatString */;
963 val
* var462
/* : Array[Object] */;
964 long var463
/* : Int */;
965 val
* var464
/* : NativeArray[Object] */;
966 val
* var465
/* : String */;
967 val
* var466
/* : MProperty */;
968 val
* var468
/* : MProperty */;
969 val
* var469
/* : String */;
970 static val
* varonce470
;
971 val
* var471
/* : String */;
972 char* var472
/* : NativeString */;
973 long var473
/* : Int */;
974 val
* var474
/* : FlatString */;
975 static val
* varonce475
;
976 val
* var476
/* : String */;
977 char* var477
/* : NativeString */;
978 long var478
/* : Int */;
979 val
* var479
/* : FlatString */;
980 val
* var480
/* : MProperty */;
981 val
* var482
/* : MProperty */;
982 val
* var483
/* : String */;
983 static val
* varonce484
;
984 val
* var485
/* : String */;
985 char* var486
/* : NativeString */;
986 long var487
/* : Int */;
987 val
* var488
/* : FlatString */;
988 val
* var489
/* : Array[Object] */;
989 long var490
/* : Int */;
990 val
* var491
/* : NativeArray[Object] */;
991 val
* var492
/* : String */;
992 static val
* varonce493
;
993 val
* var494
/* : String */;
994 char* var495
/* : NativeString */;
995 long var496
/* : Int */;
996 val
* var497
/* : FlatString */;
997 static val
* varonce498
;
998 val
* var499
/* : String */;
999 char* var500
/* : NativeString */;
1000 long var501
/* : Int */;
1001 val
* var502
/* : FlatString */;
1002 val
* var503
/* : Array[Object] */;
1003 long var504
/* : Int */;
1004 val
* var505
/* : NativeArray[Object] */;
1005 val
* var506
/* : String */;
1006 static val
* varonce507
;
1007 val
* var508
/* : String */;
1008 char* var509
/* : NativeString */;
1009 long var510
/* : Int */;
1010 val
* var511
/* : FlatString */;
1011 static val
* varonce512
;
1012 val
* var513
/* : String */;
1013 char* var514
/* : NativeString */;
1014 long var515
/* : Int */;
1015 val
* var516
/* : FlatString */;
1016 val
* var517
/* : Array[Object] */;
1017 long var518
/* : Int */;
1018 val
* var519
/* : NativeArray[Object] */;
1019 val
* var520
/* : String */;
1020 short int var521
/* : Bool */;
1021 short int var_522
/* var : Bool */;
1022 static val
* varonce523
;
1023 val
* var524
/* : String */;
1024 char* var525
/* : NativeString */;
1025 long var526
/* : Int */;
1026 val
* var527
/* : FlatString */;
1027 short int var528
/* : Bool */;
1028 short int var529
/* : Bool */;
1029 static val
* varonce530
;
1030 val
* var531
/* : String */;
1031 char* var532
/* : NativeString */;
1032 long var533
/* : Int */;
1033 val
* var534
/* : FlatString */;
1034 val
* var535
/* : String */;
1035 val
* var_is_nullable
/* var is_nullable: String */;
1036 static val
* varonce536
;
1037 val
* var537
/* : String */;
1038 char* var538
/* : NativeString */;
1039 long var539
/* : Int */;
1040 val
* var540
/* : FlatString */;
1041 static val
* varonce541
;
1042 val
* var542
/* : String */;
1043 char* var543
/* : NativeString */;
1044 long var544
/* : Int */;
1045 val
* var545
/* : FlatString */;
1046 val
* var546
/* : Array[Object] */;
1047 long var547
/* : Int */;
1048 val
* var548
/* : NativeArray[Object] */;
1049 val
* var549
/* : String */;
1050 static val
* varonce550
;
1051 val
* var551
/* : String */;
1052 char* var552
/* : NativeString */;
1053 long var553
/* : Int */;
1054 val
* var554
/* : FlatString */;
1055 static val
* varonce555
;
1056 val
* var556
/* : String */;
1057 char* var557
/* : NativeString */;
1058 long var558
/* : Int */;
1059 val
* var559
/* : FlatString */;
1060 val
* var560
/* : Array[Object] */;
1061 long var561
/* : Int */;
1062 val
* var562
/* : NativeArray[Object] */;
1063 val
* var563
/* : String */;
1064 val
* var564
/* : String */;
1065 val
* var565
/* : AbstractCompiler */;
1066 val
* var567
/* : AbstractCompiler */;
1067 val
* var568
/* : ModelBuilder */;
1068 val
* var570
/* : ModelBuilder */;
1069 val
* var571
/* : ToolContext */;
1070 val
* var573
/* : ToolContext */;
1071 val
* var574
/* : OptionBool */;
1072 val
* var576
/* : OptionBool */;
1073 val
* var577
/* : nullable Object */;
1074 val
* var579
/* : nullable Object */;
1075 short int var580
/* : Bool */;
1076 val
* var581
/* : AbstractCompiler */;
1077 val
* var583
/* : AbstractCompiler */;
1078 val
* var584
/* : HashMap[String, Int] */;
1079 val
* var586
/* : HashMap[String, Int] */;
1080 val
* var_587
/* var : HashMap[String, Int] */;
1081 val
* var_588
/* var : String */;
1082 val
* var589
/* : nullable Object */;
1083 long var590
/* : Int */;
1084 long var591
/* : Int */;
1085 short int var593
/* : Bool */;
1088 const char* var_class_name596
;
1089 long var597
/* : Int */;
1090 long var598
/* : Int */;
1091 val
* var599
/* : nullable Object */;
1092 static val
* varonce600
;
1093 val
* var601
/* : String */;
1094 char* var602
/* : NativeString */;
1095 long var603
/* : Int */;
1096 val
* var604
/* : FlatString */;
1097 static val
* varonce605
;
1098 val
* var606
/* : String */;
1099 char* var607
/* : NativeString */;
1100 long var608
/* : Int */;
1101 val
* var609
/* : FlatString */;
1102 val
* var610
/* : Array[Object] */;
1103 long var611
/* : Int */;
1104 val
* var612
/* : NativeArray[Object] */;
1105 val
* var613
/* : String */;
1106 static val
* varonce614
;
1107 val
* var615
/* : String */;
1108 char* var616
/* : NativeString */;
1109 long var617
/* : Int */;
1110 val
* var618
/* : FlatString */;
1111 val
* var619
/* : String */;
1112 static val
* varonce620
;
1113 val
* var621
/* : String */;
1114 char* var622
/* : NativeString */;
1115 long var623
/* : Int */;
1116 val
* var624
/* : FlatString */;
1117 static val
* varonce625
;
1118 val
* var626
/* : String */;
1119 char* var627
/* : NativeString */;
1120 long var628
/* : Int */;
1121 val
* var629
/* : FlatString */;
1122 val
* var630
/* : Array[Object] */;
1123 long var631
/* : Int */;
1124 val
* var632
/* : NativeArray[Object] */;
1125 val
* var633
/* : String */;
1126 static val
* varonce634
;
1127 val
* var635
/* : String */;
1128 char* var636
/* : NativeString */;
1129 long var637
/* : Int */;
1130 val
* var638
/* : FlatString */;
1131 static val
* varonce639
;
1132 val
* var640
/* : String */;
1133 char* var641
/* : NativeString */;
1134 long var642
/* : Int */;
1135 val
* var643
/* : FlatString */;
1136 val
* var644
/* : Array[Object] */;
1137 long var645
/* : Int */;
1138 val
* var646
/* : NativeArray[Object] */;
1139 val
* var647
/* : String */;
1140 static val
* varonce648
;
1141 val
* var649
/* : String */;
1142 char* var650
/* : NativeString */;
1143 long var651
/* : Int */;
1144 val
* var652
/* : FlatString */;
1145 static val
* varonce653
;
1146 val
* var654
/* : String */;
1147 char* var655
/* : NativeString */;
1148 long var656
/* : Int */;
1149 val
* var657
/* : FlatString */;
1150 val
* var658
/* : Array[Object] */;
1151 long var659
/* : Int */;
1152 val
* var660
/* : NativeArray[Object] */;
1153 val
* var661
/* : String */;
1154 static val
* varonce662
;
1155 val
* var663
/* : String */;
1156 char* var664
/* : NativeString */;
1157 long var665
/* : Int */;
1158 val
* var666
/* : FlatString */;
1159 static val
* varonce667
;
1160 val
* var668
/* : String */;
1161 char* var669
/* : NativeString */;
1162 long var670
/* : Int */;
1163 val
* var671
/* : FlatString */;
1164 static val
* varonce672
;
1165 val
* var673
/* : String */;
1166 char* var674
/* : NativeString */;
1167 long var675
/* : Int */;
1168 val
* var676
/* : FlatString */;
1169 static val
* varonce677
;
1170 val
* var678
/* : String */;
1171 char* var679
/* : NativeString */;
1172 long var680
/* : Int */;
1173 val
* var681
/* : FlatString */;
1174 val
* var682
/* : Array[Object] */;
1175 long var683
/* : Int */;
1176 val
* var684
/* : NativeArray[Object] */;
1177 val
* var685
/* : String */;
1178 static val
* varonce686
;
1179 val
* var687
/* : String */;
1180 char* var688
/* : NativeString */;
1181 long var689
/* : Int */;
1182 val
* var690
/* : FlatString */;
1183 val
* var691
/* : Array[Object] */;
1184 long var692
/* : Int */;
1185 val
* var693
/* : NativeArray[Object] */;
1186 val
* var694
/* : String */;
1187 static val
* varonce695
;
1188 val
* var696
/* : String */;
1189 char* var697
/* : NativeString */;
1190 long var698
/* : Int */;
1191 val
* var699
/* : FlatString */;
1192 static val
* varonce700
;
1193 val
* var701
/* : String */;
1194 char* var702
/* : NativeString */;
1195 long var703
/* : Int */;
1196 val
* var704
/* : FlatString */;
1197 static val
* varonce705
;
1198 val
* var706
/* : String */;
1199 char* var707
/* : NativeString */;
1200 long var708
/* : Int */;
1201 val
* var709
/* : FlatString */;
1202 static val
* varonce710
;
1203 val
* var711
/* : String */;
1204 char* var712
/* : NativeString */;
1205 long var713
/* : Int */;
1206 val
* var714
/* : FlatString */;
1207 static val
* varonce715
;
1208 val
* var716
/* : String */;
1209 char* var717
/* : NativeString */;
1210 long var718
/* : Int */;
1211 val
* var719
/* : FlatString */;
1212 val
* var720
/* : Array[Object] */;
1213 long var721
/* : Int */;
1214 val
* var722
/* : NativeArray[Object] */;
1215 val
* var723
/* : String */;
1216 static val
* varonce724
;
1217 val
* var725
/* : String */;
1218 char* var726
/* : NativeString */;
1219 long var727
/* : Int */;
1220 val
* var728
/* : FlatString */;
1221 static val
* varonce729
;
1222 val
* var730
/* : String */;
1223 char* var731
/* : NativeString */;
1224 long var732
/* : Int */;
1225 val
* var733
/* : FlatString */;
1232 var2
= "/* type test for ";
1234 var4
= string__NativeString__to_s_with_length(var2
, var3
);
1239 var5
= abstract_compiler__RuntimeVariable__inspect(var_value
);
1246 var10
= string__NativeString__to_s_with_length(var8
, var9
);
1255 var15
= string__NativeString__to_s_with_length(var13
, var14
);
1259 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
1260 { /* var16 = array_instance Array[Object] */
1262 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
1263 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var1
;
1264 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var5
;
1265 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var7
;
1266 ((struct instance_array__NativeArray
*)var18
)->values
[3] = (val
*) var_mtype
;
1267 ((struct instance_array__NativeArray
*)var18
)->values
[4] = (val
*) var12
;
1269 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
1273 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
1276 abstract_compiler__AbstractCompilerVisitor__add(self
, var19
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
1279 var20
= abstract_compiler__AbstractCompilerVisitor__bool_type(self
);
1282 var21
= abstract_compiler__AbstractCompilerVisitor__new_var(self
, var20
);
1290 var26
= string__NativeString__to_s_with_length(var24
, var25
);
1295 var27
= abstract_compiler__AbstractCompilerVisitor__get_name(self
, var23
);
1303 var32
= string__NativeString__to_s_with_length(var30
, var31
);
1312 var37
= string__NativeString__to_s_with_length(var35
, var36
);
1316 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
1317 { /* var38 = array_instance Array[Object] */
1319 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
1320 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var29
;
1321 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var_cltype
;
1322 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var34
;
1324 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
1328 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
1331 abstract_compiler__AbstractCompilerVisitor__add_decl(self
, var41
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateErasureCompilerVisitor>*/
1338 var46
= string__NativeString__to_s_with_length(var44
, var45
);
1343 var47
= abstract_compiler__AbstractCompilerVisitor__get_name(self
, var43
);
1351 var52
= string__NativeString__to_s_with_length(var50
, var51
);
1360 var57
= string__NativeString__to_s_with_length(var55
, var56
);
1364 var58
= NEW_array__Array(&type_array__Arraykernel__Object
);
1365 { /* var58 = array_instance Array[Object] */
1367 var60
= NEW_array__NativeArray(var59
, &type_array__NativeArraykernel__Object
);
1368 ((struct instance_array__NativeArray
*)var60
)->values
[0] = (val
*) var49
;
1369 ((struct instance_array__NativeArray
*)var60
)->values
[1] = (val
*) var_idtype
;
1370 ((struct instance_array__NativeArray
*)var60
)->values
[2] = (val
*) var54
;
1372 ((void (*)(val
*, val
*, long))(var58
->class->vft
[COLOR_array__Array__with_native
]))(var58
, var60
, var59
) /* with_native on <var58:Array[Object]>*/;
1376 var61
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_string__Object__to_s
]))(var58
) /* to_s on <var58:Array[Object]>*/;
1379 abstract_compiler__AbstractCompilerVisitor__add_decl(self
, var61
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateErasureCompilerVisitor>*/
1382 var62
= separate_compiler__SeparateCompilerVisitor__maybe_null(self
, var_value
);
1384 var_maybe_null
= var62
;
1390 var67
= string__NativeString__to_s_with_length(var65
, var66
);
1394 var_accept_null
= var64
;
1395 /* <var_mtype:MType> isa MNullableType */
1396 cltype
= type_model__MNullableType
.color
;
1397 idtype
= type_model__MNullableType
.id
;
1398 if(cltype
>= var_mtype
->type
->table_size
) {
1401 var68
= var_mtype
->type
->type_table
[cltype
] == idtype
;
1405 { /* Inline model#MNullableType#mtype (var_mtype) on <var_mtype:MType(MNullableType)> */
1406 var71
= var_mtype
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_mtype:MType(MNullableType)> */
1407 if (unlikely(var71
== NULL
)) {
1408 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1409 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
1413 RET_LABEL70
:(void)0;
1422 var76
= string__NativeString__to_s_with_length(var74
, var75
);
1426 var_accept_null
= var73
;
1429 /* <var_mtype:MType> isa MParameterType */
1430 cltype78
= type_model__MParameterType
.color
;
1431 idtype79
= type_model__MParameterType
.id
;
1432 if(cltype78
>= var_mtype
->type
->table_size
) {
1435 var77
= var_mtype
->type
->type_table
[cltype78
] == idtype79
;
1439 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
1440 var82
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateErasureCompilerVisitor> */
1442 RET_LABEL81
:(void)0;
1445 if (var80
== NULL
) {
1446 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1447 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 535);
1450 { /* Inline abstract_compiler#Frame#mpropdef (var80) on <var80:nullable Frame> */
1451 if (unlikely(var80
== NULL
)) {
1452 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1453 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
1456 var85
= var80
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var80:nullable Frame> */
1457 if (unlikely(var85
== NULL
)) {
1458 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1459 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
1463 RET_LABEL84
:(void)0;
1467 { /* Inline model#MPropDef#mclassdef (var83) on <var83:MPropDef> */
1468 var88
= var83
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var83:MPropDef> */
1469 if (unlikely(var88
== NULL
)) {
1470 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1471 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
1475 RET_LABEL87
:(void)0;
1479 { /* Inline model#MClassDef#bound_mtype (var86) on <var86:MClassDef> */
1480 var91
= var86
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var86:MClassDef> */
1481 if (unlikely(var91
== NULL
)) {
1482 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1483 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
1487 RET_LABEL90
:(void)0;
1491 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
1492 var94
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateErasureCompilerVisitor> */
1494 RET_LABEL93
:(void)0;
1497 if (var92
== NULL
) {
1498 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1499 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 535);
1502 { /* Inline abstract_compiler#Frame#mpropdef (var92) on <var92:nullable Frame> */
1503 if (unlikely(var92
== NULL
)) {
1504 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1505 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
1508 var97
= var92
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var92:nullable Frame> */
1509 if (unlikely(var97
== NULL
)) {
1510 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1511 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
1515 RET_LABEL96
:(void)0;
1519 { /* Inline model#MPropDef#mclassdef (var95) on <var95:MPropDef> */
1520 var100
= var95
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var95:MPropDef> */
1521 if (unlikely(var100
== NULL
)) {
1522 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1523 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
1527 RET_LABEL99
:(void)0;
1531 { /* Inline model#MClassDef#bound_mtype (var98) on <var98:MClassDef> */
1532 var103
= var98
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var98:MClassDef> */
1533 if (unlikely(var103
== NULL
)) {
1534 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1535 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
1539 RET_LABEL102
:(void)0;
1543 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
1544 var106
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateErasureCompilerVisitor> */
1546 RET_LABEL105
:(void)0;
1549 if (var104
== NULL
) {
1550 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1551 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 535);
1554 { /* Inline abstract_compiler#Frame#mpropdef (var104) on <var104:nullable Frame> */
1555 if (unlikely(var104
== NULL
)) {
1556 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1557 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
1560 var109
= var104
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var104:nullable Frame> */
1561 if (unlikely(var109
== NULL
)) {
1562 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1563 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
1567 RET_LABEL108
:(void)0;
1571 { /* Inline model#MPropDef#mclassdef (var107) on <var107:MPropDef> */
1572 var112
= var107
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var107:MPropDef> */
1573 if (unlikely(var112
== NULL
)) {
1574 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1575 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
1579 RET_LABEL111
:(void)0;
1583 { /* Inline model#MClassDef#mmodule (var110) on <var110:MClassDef> */
1584 var115
= var110
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var110:MClassDef> */
1585 if (unlikely(var115
== NULL
)) {
1586 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1587 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
1591 RET_LABEL114
:(void)0;
1596 var117
= model__MParameterType__resolve_for(var_mtype
, var89
, var101
, var113
, var116
);
1599 /* <var_mtype:MType> isa MNullableType */
1600 cltype119
= type_model__MNullableType
.color
;
1601 idtype120
= type_model__MNullableType
.id
;
1602 if(cltype119
>= var_mtype
->type
->table_size
) {
1605 var118
= var_mtype
->type
->type_table
[cltype119
] == idtype120
;
1609 { /* Inline model#MNullableType#mtype (var_mtype) on <var_mtype:MType(MNullableType)> */
1610 var123
= var_mtype
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_mtype:MType(MNullableType)> */
1611 if (unlikely(var123
== NULL
)) {
1612 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1613 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
1617 RET_LABEL122
:(void)0;
1622 var125
= varonce124
;
1626 var128
= string__NativeString__to_s_with_length(var126
, var127
);
1628 varonce124
= var125
;
1630 var_accept_null
= var125
;
1636 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value) on <var_value:RuntimeVariable> */
1637 var131
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_value:RuntimeVariable> */
1638 if (unlikely(var131
== NULL
)) {
1639 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
1640 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1637);
1644 RET_LABEL130
:(void)0;
1648 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
1649 var134
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateErasureCompilerVisitor> */
1651 RET_LABEL133
:(void)0;
1654 if (var132
== NULL
) {
1655 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1656 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 542);
1659 { /* Inline abstract_compiler#Frame#mpropdef (var132) on <var132:nullable Frame> */
1660 if (unlikely(var132
== NULL
)) {
1661 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1662 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
1665 var137
= var132
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var132:nullable Frame> */
1666 if (unlikely(var137
== NULL
)) {
1667 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1668 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
1672 RET_LABEL136
:(void)0;
1676 { /* Inline model#MPropDef#mclassdef (var135) on <var135:MPropDef> */
1677 var140
= var135
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var135:MPropDef> */
1678 if (unlikely(var140
== NULL
)) {
1679 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1680 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
1684 RET_LABEL139
:(void)0;
1688 { /* Inline model#MClassDef#mmodule (var138) on <var138:MClassDef> */
1689 var143
= var138
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var138:MClassDef> */
1690 if (unlikely(var143
== NULL
)) {
1691 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1692 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
1696 RET_LABEL142
:(void)0;
1700 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
1701 var146
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateErasureCompilerVisitor> */
1703 RET_LABEL145
:(void)0;
1706 if (var144
== NULL
) {
1707 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1708 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 542);
1711 { /* Inline abstract_compiler#Frame#mpropdef (var144) on <var144:nullable Frame> */
1712 if (unlikely(var144
== NULL
)) {
1713 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1714 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
1717 var149
= var144
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var144:nullable Frame> */
1718 if (unlikely(var149
== NULL
)) {
1719 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1720 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
1724 RET_LABEL148
:(void)0;
1728 { /* Inline model#MPropDef#mclassdef (var147) on <var147:MPropDef> */
1729 var152
= var147
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var147:MPropDef> */
1730 if (unlikely(var152
== NULL
)) {
1731 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1732 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
1736 RET_LABEL151
:(void)0;
1740 { /* Inline model#MClassDef#bound_mtype (var150) on <var150:MClassDef> */
1741 var155
= var150
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var150:MClassDef> */
1742 if (unlikely(var155
== NULL
)) {
1743 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1744 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
1748 RET_LABEL154
:(void)0;
1752 var156
= model__MType__is_subtype(var129
, var141
, var153
, var_mtype
);
1756 var158
= varonce157
;
1758 var159
= " = 1; /* easy ";
1760 var161
= string__NativeString__to_s_with_length(var159
, var160
);
1762 varonce157
= var158
;
1765 var162
= abstract_compiler__RuntimeVariable__inspect(var_value
);
1768 var164
= varonce163
;
1772 var167
= string__NativeString__to_s_with_length(var165
, var166
);
1774 varonce163
= var164
;
1777 var169
= varonce168
;
1781 var172
= string__NativeString__to_s_with_length(var170
, var171
);
1783 varonce168
= var169
;
1785 var173
= NEW_array__Array(&type_array__Arraykernel__Object
);
1786 { /* var173 = array_instance Array[Object] */
1788 var175
= NEW_array__NativeArray(var174
, &type_array__NativeArraykernel__Object
);
1789 ((struct instance_array__NativeArray
*)var175
)->values
[0] = (val
*) var_res
;
1790 ((struct instance_array__NativeArray
*)var175
)->values
[1] = (val
*) var158
;
1791 ((struct instance_array__NativeArray
*)var175
)->values
[2] = (val
*) var162
;
1792 ((struct instance_array__NativeArray
*)var175
)->values
[3] = (val
*) var164
;
1793 ((struct instance_array__NativeArray
*)var175
)->values
[4] = (val
*) var_mtype
;
1794 ((struct instance_array__NativeArray
*)var175
)->values
[5] = (val
*) var169
;
1796 ((void (*)(val
*, val
*, long))(var173
->class->vft
[COLOR_array__Array__with_native
]))(var173
, var175
, var174
) /* with_native on <var173:Array[Object]>*/;
1800 var176
= ((val
* (*)(val
*))(var173
->class->vft
[COLOR_string__Object__to_s
]))(var173
) /* to_s on <var173:Array[Object]>*/;
1803 abstract_compiler__AbstractCompilerVisitor__add(self
, var176
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
1806 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
1807 var179
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
1808 if (unlikely(var179
== NULL
)) {
1809 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1810 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
1814 RET_LABEL178
:(void)0;
1818 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var177) on <var177:AbstractCompiler(SeparateCompiler)> */
1819 var182
= var177
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var177:AbstractCompiler(SeparateCompiler)> */
1820 if (unlikely(var182
== NULL
)) {
1821 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1822 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
1826 RET_LABEL181
:(void)0;
1830 { /* Inline modelbuilder#ModelBuilder#toolcontext (var180) on <var180:ModelBuilder> */
1831 var185
= var180
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var180:ModelBuilder> */
1832 if (unlikely(var185
== NULL
)) {
1833 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1834 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
1838 RET_LABEL184
:(void)0;
1842 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var183) on <var183:ToolContext> */
1843 var188
= var183
->attrs
[COLOR_abstract_compiler__ToolContext___opt_typing_test_metrics
].val
; /* _opt_typing_test_metrics on <var183:ToolContext> */
1844 if (unlikely(var188
== NULL
)) {
1845 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
1846 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 61);
1850 RET_LABEL187
:(void)0;
1854 { /* Inline opts#Option#value (var186) on <var186:OptionBool> */
1855 var191
= var186
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var186:OptionBool> */
1857 RET_LABEL190
:(void)0;
1860 var192
= ((struct instance_kernel__Bool
*)var189
)->value
; /* autounbox from nullable Object to Bool */;
1863 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
1864 var195
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
1865 if (unlikely(var195
== NULL
)) {
1866 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1867 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
1871 RET_LABEL194
:(void)0;
1875 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_skipped (var193) on <var193:AbstractCompiler(SeparateCompiler)> */
1876 var198
= var193
->attrs
[COLOR_abstract_compiler__AbstractCompiler___count_type_test_skipped
].val
; /* _count_type_test_skipped on <var193:AbstractCompiler(SeparateCompiler)> */
1877 if (unlikely(var198
== NULL
)) {
1878 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_skipped");
1879 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 947);
1883 RET_LABEL197
:(void)0;
1889 var200
= hash_collection__HashMap___91d_93d(var_
, var_199
);
1893 { /* Inline kernel#Int#+ (var200,var201) on <var200:nullable Object(Int)> */
1894 /* Covariant cast for argument 0 (i) <var201:Int> isa OTHER */
1895 /* <var201:Int> isa OTHER */
1896 var204
= 1; /* easy <var201:Int> isa OTHER*/
1897 if (unlikely(!var204
)) {
1898 var_class_name
= type_kernel__Int
.name
;
1899 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1900 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
1903 var207
= ((struct instance_kernel__Int
*)var200
)->value
; /* autounbox from nullable Object to Int */;
1904 var208
= var207
+ var201
;
1907 RET_LABEL203
:(void)0;
1911 var209
= BOX_kernel__Int(var202
); /* autobox from Int to nullable Object */
1912 hash_collection__HashMap___91d_93d_61d(var_
, var_199
, var209
); /* Direct call hash_collection#HashMap#[]= on <var_:HashMap[String, Int]>*/
1915 var211
= varonce210
;
1917 var212
= "count_type_test_skipped_";
1919 var214
= string__NativeString__to_s_with_length(var212
, var213
);
1921 varonce210
= var211
;
1924 var216
= varonce215
;
1928 var219
= string__NativeString__to_s_with_length(var217
, var218
);
1930 varonce215
= var216
;
1932 var220
= NEW_array__Array(&type_array__Arraykernel__Object
);
1933 { /* var220 = array_instance Array[Object] */
1935 var222
= NEW_array__NativeArray(var221
, &type_array__NativeArraykernel__Object
);
1936 ((struct instance_array__NativeArray
*)var222
)->values
[0] = (val
*) var211
;
1937 ((struct instance_array__NativeArray
*)var222
)->values
[1] = (val
*) var_tag
;
1938 ((struct instance_array__NativeArray
*)var222
)->values
[2] = (val
*) var216
;
1940 ((void (*)(val
*, val
*, long))(var220
->class->vft
[COLOR_array__Array__with_native
]))(var220
, var222
, var221
) /* with_native on <var220:Array[Object]>*/;
1944 var223
= ((val
* (*)(val
*))(var220
->class->vft
[COLOR_string__Object__to_s
]))(var220
) /* to_s on <var220:Array[Object]>*/;
1947 abstract_compiler__AbstractCompilerVisitor__add(self
, var223
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
1956 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
1957 var226
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
1958 if (unlikely(var226
== NULL
)) {
1959 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1960 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
1964 RET_LABEL225
:(void)0;
1968 var227
= ((val
* (*)(val
*))(var224
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var224
) /* ctype on <var224:MType>*/;
1971 var229
= varonce228
;
1975 var232
= string__NativeString__to_s_with_length(var230
, var231
);
1977 varonce228
= var229
;
1980 var234
= string__FlatString___61d_61d(var227
, var229
);
1985 var236
= varonce235
;
1987 var237
= "->class->";
1989 var239
= string__NativeString__to_s_with_length(var237
, var238
);
1991 varonce235
= var236
;
1993 var240
= NEW_array__Array(&type_array__Arraykernel__Object
);
1994 { /* var240 = array_instance Array[Object] */
1996 var242
= NEW_array__NativeArray(var241
, &type_array__NativeArraykernel__Object
);
1997 ((struct instance_array__NativeArray
*)var242
)->values
[0] = (val
*) var_value
;
1998 ((struct instance_array__NativeArray
*)var242
)->values
[1] = (val
*) var236
;
2000 ((void (*)(val
*, val
*, long))(var240
->class->vft
[COLOR_array__Array__with_native
]))(var240
, var242
, var241
) /* with_native on <var240:Array[Object]>*/;
2004 var243
= ((val
* (*)(val
*))(var240
->class->vft
[COLOR_string__Object__to_s
]))(var240
) /* to_s on <var240:Array[Object]>*/;
2006 var_class_ptr
= var243
;
2009 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
2010 var246
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
2011 if (unlikely(var246
== NULL
)) {
2012 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2013 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
2017 RET_LABEL245
:(void)0;
2020 /* <var244:MType> isa MClassType */
2021 cltype248
= type_model__MClassType
.color
;
2022 idtype249
= type_model__MClassType
.id
;
2023 if(cltype248
>= var244
->type
->table_size
) {
2026 var247
= var244
->type
->type_table
[cltype248
] == idtype249
;
2028 if (unlikely(!var247
)) {
2029 var_class_name250
= var244
== NULL ?
"null" : var244
->type
->name
;
2030 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name250
);
2031 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 555);
2035 { /* Inline model#MClassType#mclass (var244) on <var244:MType(MClassType)> */
2036 var253
= var244
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var244:MType(MClassType)> */
2037 if (unlikely(var253
== NULL
)) {
2038 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2039 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
2043 RET_LABEL252
:(void)0;
2046 var_mclass
= var251
;
2048 var255
= varonce254
;
2052 var258
= string__NativeString__to_s_with_length(var256
, var257
);
2054 varonce254
= var255
;
2057 var259
= abstract_compiler__MClass__c_name(var_mclass
);
2059 var260
= NEW_array__Array(&type_array__Arraykernel__Object
);
2060 { /* var260 = array_instance Array[Object] */
2062 var262
= NEW_array__NativeArray(var261
, &type_array__NativeArraykernel__Object
);
2063 ((struct instance_array__NativeArray
*)var262
)->values
[0] = (val
*) var255
;
2064 ((struct instance_array__NativeArray
*)var262
)->values
[1] = (val
*) var259
;
2066 ((void (*)(val
*, val
*, long))(var260
->class->vft
[COLOR_array__Array__with_native
]))(var260
, var262
, var261
) /* with_native on <var260:Array[Object]>*/;
2070 var263
= ((val
* (*)(val
*))(var260
->class->vft
[COLOR_string__Object__to_s
]))(var260
) /* to_s on <var260:Array[Object]>*/;
2073 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var263
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
2076 var265
= varonce264
;
2080 var268
= string__NativeString__to_s_with_length(var266
, var267
);
2082 varonce264
= var265
;
2085 var269
= abstract_compiler__MClass__c_name(var_mclass
);
2088 var271
= varonce270
;
2092 var274
= string__NativeString__to_s_with_length(var272
, var273
);
2094 varonce270
= var271
;
2096 var275
= NEW_array__Array(&type_array__Arraykernel__Object
);
2097 { /* var275 = array_instance Array[Object] */
2099 var277
= NEW_array__NativeArray(var276
, &type_array__NativeArraykernel__Object
);
2100 ((struct instance_array__NativeArray
*)var277
)->values
[0] = (val
*) var265
;
2101 ((struct instance_array__NativeArray
*)var277
)->values
[1] = (val
*) var269
;
2102 ((struct instance_array__NativeArray
*)var277
)->values
[2] = (val
*) var271
;
2104 ((void (*)(val
*, val
*, long))(var275
->class->vft
[COLOR_array__Array__with_native
]))(var275
, var277
, var276
) /* with_native on <var275:Array[Object]>*/;
2108 var278
= ((val
* (*)(val
*))(var275
->class->vft
[COLOR_string__Object__to_s
]))(var275
) /* to_s on <var275:Array[Object]>*/;
2110 var_class_ptr
= var278
;
2112 /* <var_mtype:MType> isa MClassType */
2113 cltype280
= type_model__MClassType
.color
;
2114 idtype281
= type_model__MClassType
.id
;
2115 if(cltype280
>= var_mtype
->type
->table_size
) {
2118 var279
= var_mtype
->type
->type_table
[cltype280
] == idtype281
;
2122 var283
= varonce282
;
2126 var286
= string__NativeString__to_s_with_length(var284
, var285
);
2128 varonce282
= var283
;
2131 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
2132 var289
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
2133 if (unlikely(var289
== NULL
)) {
2134 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2135 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
2139 RET_LABEL288
:(void)0;
2143 var290
= abstract_compiler__MClass__c_name(var287
);
2145 var291
= NEW_array__Array(&type_array__Arraykernel__Object
);
2146 { /* var291 = array_instance Array[Object] */
2148 var293
= NEW_array__NativeArray(var292
, &type_array__NativeArraykernel__Object
);
2149 ((struct instance_array__NativeArray
*)var293
)->values
[0] = (val
*) var283
;
2150 ((struct instance_array__NativeArray
*)var293
)->values
[1] = (val
*) var290
;
2152 ((void (*)(val
*, val
*, long))(var291
->class->vft
[COLOR_array__Array__with_native
]))(var291
, var293
, var292
) /* with_native on <var291:Array[Object]>*/;
2156 var294
= ((val
* (*)(val
*))(var291
->class->vft
[COLOR_string__Object__to_s
]))(var291
) /* to_s on <var291:Array[Object]>*/;
2159 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var294
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
2162 var296
= varonce295
;
2164 var297
= " = class_";
2166 var299
= string__NativeString__to_s_with_length(var297
, var298
);
2168 varonce295
= var296
;
2171 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
2172 var302
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
2173 if (unlikely(var302
== NULL
)) {
2174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2175 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
2179 RET_LABEL301
:(void)0;
2183 var303
= abstract_compiler__MClass__c_name(var300
);
2186 var305
= varonce304
;
2190 var308
= string__NativeString__to_s_with_length(var306
, var307
);
2192 varonce304
= var305
;
2194 var309
= NEW_array__Array(&type_array__Arraykernel__Object
);
2195 { /* var309 = array_instance Array[Object] */
2197 var311
= NEW_array__NativeArray(var310
, &type_array__NativeArraykernel__Object
);
2198 ((struct instance_array__NativeArray
*)var311
)->values
[0] = (val
*) var_cltype
;
2199 ((struct instance_array__NativeArray
*)var311
)->values
[1] = (val
*) var296
;
2200 ((struct instance_array__NativeArray
*)var311
)->values
[2] = (val
*) var303
;
2201 ((struct instance_array__NativeArray
*)var311
)->values
[3] = (val
*) var305
;
2203 ((void (*)(val
*, val
*, long))(var309
->class->vft
[COLOR_array__Array__with_native
]))(var309
, var311
, var310
) /* with_native on <var309:Array[Object]>*/;
2207 var312
= ((val
* (*)(val
*))(var309
->class->vft
[COLOR_string__Object__to_s
]))(var309
) /* to_s on <var309:Array[Object]>*/;
2210 abstract_compiler__AbstractCompilerVisitor__add(self
, var312
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2213 var314
= varonce313
;
2215 var315
= " = class_";
2217 var317
= string__NativeString__to_s_with_length(var315
, var316
);
2219 varonce313
= var314
;
2222 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
2223 var320
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
2224 if (unlikely(var320
== NULL
)) {
2225 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2226 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
2230 RET_LABEL319
:(void)0;
2234 var321
= abstract_compiler__MClass__c_name(var318
);
2237 var323
= varonce322
;
2241 var326
= string__NativeString__to_s_with_length(var324
, var325
);
2243 varonce322
= var323
;
2245 var327
= NEW_array__Array(&type_array__Arraykernel__Object
);
2246 { /* var327 = array_instance Array[Object] */
2248 var329
= NEW_array__NativeArray(var328
, &type_array__NativeArraykernel__Object
);
2249 ((struct instance_array__NativeArray
*)var329
)->values
[0] = (val
*) var_idtype
;
2250 ((struct instance_array__NativeArray
*)var329
)->values
[1] = (val
*) var314
;
2251 ((struct instance_array__NativeArray
*)var329
)->values
[2] = (val
*) var321
;
2252 ((struct instance_array__NativeArray
*)var329
)->values
[3] = (val
*) var323
;
2254 ((void (*)(val
*, val
*, long))(var327
->class->vft
[COLOR_array__Array__with_native
]))(var327
, var329
, var328
) /* with_native on <var327:Array[Object]>*/;
2258 var330
= ((val
* (*)(val
*))(var327
->class->vft
[COLOR_string__Object__to_s
]))(var327
) /* to_s on <var327:Array[Object]>*/;
2261 abstract_compiler__AbstractCompilerVisitor__add(self
, var330
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2264 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
2265 var333
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
2266 if (unlikely(var333
== NULL
)) {
2267 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2268 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
2272 RET_LABEL332
:(void)0;
2276 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var331) on <var331:AbstractCompiler(SeparateCompiler)> */
2277 var336
= var331
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var331:AbstractCompiler(SeparateCompiler)> */
2278 if (unlikely(var336
== NULL
)) {
2279 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2280 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
2284 RET_LABEL335
:(void)0;
2288 { /* Inline modelbuilder#ModelBuilder#toolcontext (var334) on <var334:ModelBuilder> */
2289 var339
= var334
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var334:ModelBuilder> */
2290 if (unlikely(var339
== NULL
)) {
2291 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2292 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
2296 RET_LABEL338
:(void)0;
2300 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var337) on <var337:ToolContext> */
2301 var342
= var337
->attrs
[COLOR_abstract_compiler__ToolContext___opt_typing_test_metrics
].val
; /* _opt_typing_test_metrics on <var337:ToolContext> */
2302 if (unlikely(var342
== NULL
)) {
2303 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
2304 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 61);
2308 RET_LABEL341
:(void)0;
2312 { /* Inline opts#Option#value (var340) on <var340:OptionBool> */
2313 var345
= var340
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var340:OptionBool> */
2315 RET_LABEL344
:(void)0;
2318 var346
= ((struct instance_kernel__Bool
*)var343
)->value
; /* autounbox from nullable Object to Bool */;
2321 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
2322 var349
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
2323 if (unlikely(var349
== NULL
)) {
2324 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2325 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
2329 RET_LABEL348
:(void)0;
2333 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_resolved (var347) on <var347:AbstractCompiler(SeparateCompiler)> */
2334 var352
= var347
->attrs
[COLOR_abstract_compiler__AbstractCompiler___count_type_test_resolved
].val
; /* _count_type_test_resolved on <var347:AbstractCompiler(SeparateCompiler)> */
2335 if (unlikely(var352
== NULL
)) {
2336 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_resolved");
2337 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 945);
2341 RET_LABEL351
:(void)0;
2347 var355
= hash_collection__HashMap___91d_93d(var_353
, var_354
);
2351 { /* Inline kernel#Int#+ (var355,var356) on <var355:nullable Object(Int)> */
2352 /* Covariant cast for argument 0 (i) <var356:Int> isa OTHER */
2353 /* <var356:Int> isa OTHER */
2354 var359
= 1; /* easy <var356:Int> isa OTHER*/
2355 if (unlikely(!var359
)) {
2356 var_class_name362
= type_kernel__Int
.name
;
2357 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name362
);
2358 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
2361 var363
= ((struct instance_kernel__Int
*)var355
)->value
; /* autounbox from nullable Object to Int */;
2362 var364
= var363
+ var356
;
2365 RET_LABEL358
:(void)0;
2369 var365
= BOX_kernel__Int(var357
); /* autobox from Int to nullable Object */
2370 hash_collection__HashMap___91d_93d_61d(var_353
, var_354
, var365
); /* Direct call hash_collection#HashMap#[]= on <var_353:HashMap[String, Int]>*/
2373 var367
= varonce366
;
2375 var368
= "count_type_test_resolved_";
2377 var370
= string__NativeString__to_s_with_length(var368
, var369
);
2379 varonce366
= var367
;
2382 var372
= varonce371
;
2386 var375
= string__NativeString__to_s_with_length(var373
, var374
);
2388 varonce371
= var372
;
2390 var376
= NEW_array__Array(&type_array__Arraykernel__Object
);
2391 { /* var376 = array_instance Array[Object] */
2393 var378
= NEW_array__NativeArray(var377
, &type_array__NativeArraykernel__Object
);
2394 ((struct instance_array__NativeArray
*)var378
)->values
[0] = (val
*) var367
;
2395 ((struct instance_array__NativeArray
*)var378
)->values
[1] = (val
*) var_tag
;
2396 ((struct instance_array__NativeArray
*)var378
)->values
[2] = (val
*) var372
;
2398 ((void (*)(val
*, val
*, long))(var376
->class->vft
[COLOR_array__Array__with_native
]))(var376
, var378
, var377
) /* with_native on <var376:Array[Object]>*/;
2402 var379
= ((val
* (*)(val
*))(var376
->class->vft
[COLOR_string__Object__to_s
]))(var376
) /* to_s on <var376:Array[Object]>*/;
2405 abstract_compiler__AbstractCompilerVisitor__add(self
, var379
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2410 /* <var_mtype:MType> isa MVirtualType */
2411 cltype381
= type_model__MVirtualType
.color
;
2412 idtype382
= type_model__MVirtualType
.id
;
2413 if(cltype381
>= var_mtype
->type
->table_size
) {
2416 var380
= var_mtype
->type
->type_table
[cltype381
] == idtype382
;
2420 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
2421 var385
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateErasureCompilerVisitor> */
2423 RET_LABEL384
:(void)0;
2426 if (var383
== NULL
) {
2427 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2428 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 569);
2431 { /* Inline abstract_compiler#Frame#arguments (var383) on <var383:nullable Frame> */
2432 if (unlikely(var383
== NULL
)) {
2433 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2434 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1688);
2437 var388
= var383
->attrs
[COLOR_abstract_compiler__Frame___arguments
].val
; /* _arguments on <var383:nullable Frame> */
2438 if (unlikely(var388
== NULL
)) {
2439 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
2440 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1688);
2444 RET_LABEL387
:(void)0;
2448 var389
= abstract_collection__SequenceRead__first(var386
);
2452 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_recv) on <var_recv:RuntimeVariable> */
2453 var392
= var_recv
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_recv:RuntimeVariable> */
2454 if (unlikely(var392
== NULL
)) {
2455 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2456 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
2460 RET_LABEL391
:(void)0;
2464 var393
= ((val
* (*)(val
*))(var390
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var390
) /* ctype on <var390:MType>*/;
2467 var395
= varonce394
;
2471 var398
= string__NativeString__to_s_with_length(var396
, var397
);
2473 varonce394
= var395
;
2476 var400
= string__FlatString___61d_61d(var393
, var395
);
2481 var402
= varonce401
;
2483 var403
= "->class->";
2485 var405
= string__NativeString__to_s_with_length(var403
, var404
);
2487 varonce401
= var402
;
2489 var406
= NEW_array__Array(&type_array__Arraykernel__Object
);
2490 { /* var406 = array_instance Array[Object] */
2492 var408
= NEW_array__NativeArray(var407
, &type_array__NativeArraykernel__Object
);
2493 ((struct instance_array__NativeArray
*)var408
)->values
[0] = (val
*) var_recv
;
2494 ((struct instance_array__NativeArray
*)var408
)->values
[1] = (val
*) var402
;
2496 ((void (*)(val
*, val
*, long))(var406
->class->vft
[COLOR_array__Array__with_native
]))(var406
, var408
, var407
) /* with_native on <var406:Array[Object]>*/;
2500 var409
= ((val
* (*)(val
*))(var406
->class->vft
[COLOR_string__Object__to_s
]))(var406
) /* to_s on <var406:Array[Object]>*/;
2502 var_recv_ptr
= var409
;
2505 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_recv) on <var_recv:RuntimeVariable> */
2506 var412
= var_recv
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_recv:RuntimeVariable> */
2507 if (unlikely(var412
== NULL
)) {
2508 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2509 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
2513 RET_LABEL411
:(void)0;
2516 /* <var410:MType> isa MClassType */
2517 cltype414
= type_model__MClassType
.color
;
2518 idtype415
= type_model__MClassType
.id
;
2519 if(cltype414
>= var410
->type
->table_size
) {
2522 var413
= var410
->type
->type_table
[cltype414
] == idtype415
;
2524 if (unlikely(!var413
)) {
2525 var_class_name416
= var410
== NULL ?
"null" : var410
->type
->name
;
2526 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name416
);
2527 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 574);
2531 { /* Inline model#MClassType#mclass (var410) on <var410:MType(MClassType)> */
2532 var419
= var410
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var410:MType(MClassType)> */
2533 if (unlikely(var419
== NULL
)) {
2534 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2535 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
2539 RET_LABEL418
:(void)0;
2542 var_mclass420
= var417
;
2544 var422
= varonce421
;
2548 var425
= string__NativeString__to_s_with_length(var423
, var424
);
2550 varonce421
= var422
;
2553 var426
= abstract_compiler__MClass__c_name(var_mclass420
);
2555 var427
= NEW_array__Array(&type_array__Arraykernel__Object
);
2556 { /* var427 = array_instance Array[Object] */
2558 var429
= NEW_array__NativeArray(var428
, &type_array__NativeArraykernel__Object
);
2559 ((struct instance_array__NativeArray
*)var429
)->values
[0] = (val
*) var422
;
2560 ((struct instance_array__NativeArray
*)var429
)->values
[1] = (val
*) var426
;
2562 ((void (*)(val
*, val
*, long))(var427
->class->vft
[COLOR_array__Array__with_native
]))(var427
, var429
, var428
) /* with_native on <var427:Array[Object]>*/;
2566 var430
= ((val
* (*)(val
*))(var427
->class->vft
[COLOR_string__Object__to_s
]))(var427
) /* to_s on <var427:Array[Object]>*/;
2569 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var430
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
2572 var432
= varonce431
;
2576 var435
= string__NativeString__to_s_with_length(var433
, var434
);
2578 varonce431
= var432
;
2581 var436
= abstract_compiler__MClass__c_name(var_mclass420
);
2584 var438
= varonce437
;
2588 var441
= string__NativeString__to_s_with_length(var439
, var440
);
2590 varonce437
= var438
;
2592 var442
= NEW_array__Array(&type_array__Arraykernel__Object
);
2593 { /* var442 = array_instance Array[Object] */
2595 var444
= NEW_array__NativeArray(var443
, &type_array__NativeArraykernel__Object
);
2596 ((struct instance_array__NativeArray
*)var444
)->values
[0] = (val
*) var432
;
2597 ((struct instance_array__NativeArray
*)var444
)->values
[1] = (val
*) var436
;
2598 ((struct instance_array__NativeArray
*)var444
)->values
[2] = (val
*) var438
;
2600 ((void (*)(val
*, val
*, long))(var442
->class->vft
[COLOR_array__Array__with_native
]))(var442
, var444
, var443
) /* with_native on <var442:Array[Object]>*/;
2604 var445
= ((val
* (*)(val
*))(var442
->class->vft
[COLOR_string__Object__to_s
]))(var442
) /* to_s on <var442:Array[Object]>*/;
2606 var_recv_ptr
= var445
;
2609 var447
= varonce446
;
2613 var450
= string__NativeString__to_s_with_length(var448
, var449
);
2615 varonce446
= var447
;
2618 var451
= abstract_compiler__AbstractCompilerVisitor__get_name(self
, var447
);
2622 var453
= varonce452
;
2624 var454
= "struct vts_entry ";
2626 var456
= string__NativeString__to_s_with_length(var454
, var455
);
2628 varonce452
= var453
;
2631 var458
= varonce457
;
2635 var461
= string__NativeString__to_s_with_length(var459
, var460
);
2637 varonce457
= var458
;
2639 var462
= NEW_array__Array(&type_array__Arraykernel__Object
);
2640 { /* var462 = array_instance Array[Object] */
2642 var464
= NEW_array__NativeArray(var463
, &type_array__NativeArraykernel__Object
);
2643 ((struct instance_array__NativeArray
*)var464
)->values
[0] = (val
*) var453
;
2644 ((struct instance_array__NativeArray
*)var464
)->values
[1] = (val
*) var_entry
;
2645 ((struct instance_array__NativeArray
*)var464
)->values
[2] = (val
*) var458
;
2647 ((void (*)(val
*, val
*, long))(var462
->class->vft
[COLOR_array__Array__with_native
]))(var462
, var464
, var463
) /* with_native on <var462:Array[Object]>*/;
2651 var465
= ((val
* (*)(val
*))(var462
->class->vft
[COLOR_string__Object__to_s
]))(var462
) /* to_s on <var462:Array[Object]>*/;
2654 abstract_compiler__AbstractCompilerVisitor__add(self
, var465
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2657 { /* Inline model#MVirtualType#mproperty (var_mtype) on <var_mtype:MType(MVirtualType)> */
2658 var468
= var_mtype
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <var_mtype:MType(MVirtualType)> */
2659 if (unlikely(var468
== NULL
)) {
2660 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2661 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
2665 RET_LABEL467
:(void)0;
2669 var469
= separate_compiler__MProperty__const_color(var466
);
2672 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var469
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
2675 var471
= varonce470
;
2679 var474
= string__NativeString__to_s_with_length(var472
, var473
);
2681 varonce470
= var471
;
2684 var476
= varonce475
;
2686 var477
= "vts_table->vts[";
2688 var479
= string__NativeString__to_s_with_length(var477
, var478
);
2690 varonce475
= var476
;
2693 { /* Inline model#MVirtualType#mproperty (var_mtype) on <var_mtype:MType(MVirtualType)> */
2694 var482
= var_mtype
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <var_mtype:MType(MVirtualType)> */
2695 if (unlikely(var482
== NULL
)) {
2696 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2697 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
2701 RET_LABEL481
:(void)0;
2705 var483
= separate_compiler__MProperty__const_color(var480
);
2708 var485
= varonce484
;
2712 var488
= string__NativeString__to_s_with_length(var486
, var487
);
2714 varonce484
= var485
;
2716 var489
= NEW_array__Array(&type_array__Arraykernel__Object
);
2717 { /* var489 = array_instance Array[Object] */
2719 var491
= NEW_array__NativeArray(var490
, &type_array__NativeArraykernel__Object
);
2720 ((struct instance_array__NativeArray
*)var491
)->values
[0] = (val
*) var_entry
;
2721 ((struct instance_array__NativeArray
*)var491
)->values
[1] = (val
*) var471
;
2722 ((struct instance_array__NativeArray
*)var491
)->values
[2] = (val
*) var_recv_ptr
;
2723 ((struct instance_array__NativeArray
*)var491
)->values
[3] = (val
*) var476
;
2724 ((struct instance_array__NativeArray
*)var491
)->values
[4] = (val
*) var483
;
2725 ((struct instance_array__NativeArray
*)var491
)->values
[5] = (val
*) var485
;
2727 ((void (*)(val
*, val
*, long))(var489
->class->vft
[COLOR_array__Array__with_native
]))(var489
, var491
, var490
) /* with_native on <var489:Array[Object]>*/;
2731 var492
= ((val
* (*)(val
*))(var489
->class->vft
[COLOR_string__Object__to_s
]))(var489
) /* to_s on <var489:Array[Object]>*/;
2734 abstract_compiler__AbstractCompilerVisitor__add(self
, var492
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2737 var494
= varonce493
;
2741 var497
= string__NativeString__to_s_with_length(var495
, var496
);
2743 varonce493
= var494
;
2746 var499
= varonce498
;
2748 var500
= ".class->color;";
2750 var502
= string__NativeString__to_s_with_length(var500
, var501
);
2752 varonce498
= var499
;
2754 var503
= NEW_array__Array(&type_array__Arraykernel__Object
);
2755 { /* var503 = array_instance Array[Object] */
2757 var505
= NEW_array__NativeArray(var504
, &type_array__NativeArraykernel__Object
);
2758 ((struct instance_array__NativeArray
*)var505
)->values
[0] = (val
*) var_cltype
;
2759 ((struct instance_array__NativeArray
*)var505
)->values
[1] = (val
*) var494
;
2760 ((struct instance_array__NativeArray
*)var505
)->values
[2] = (val
*) var_entry
;
2761 ((struct instance_array__NativeArray
*)var505
)->values
[3] = (val
*) var499
;
2763 ((void (*)(val
*, val
*, long))(var503
->class->vft
[COLOR_array__Array__with_native
]))(var503
, var505
, var504
) /* with_native on <var503:Array[Object]>*/;
2767 var506
= ((val
* (*)(val
*))(var503
->class->vft
[COLOR_string__Object__to_s
]))(var503
) /* to_s on <var503:Array[Object]>*/;
2770 abstract_compiler__AbstractCompilerVisitor__add(self
, var506
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2773 var508
= varonce507
;
2777 var511
= string__NativeString__to_s_with_length(var509
, var510
);
2779 varonce507
= var508
;
2782 var513
= varonce512
;
2784 var514
= ".class->id;";
2786 var516
= string__NativeString__to_s_with_length(var514
, var515
);
2788 varonce512
= var513
;
2790 var517
= NEW_array__Array(&type_array__Arraykernel__Object
);
2791 { /* var517 = array_instance Array[Object] */
2793 var519
= NEW_array__NativeArray(var518
, &type_array__NativeArraykernel__Object
);
2794 ((struct instance_array__NativeArray
*)var519
)->values
[0] = (val
*) var_idtype
;
2795 ((struct instance_array__NativeArray
*)var519
)->values
[1] = (val
*) var508
;
2796 ((struct instance_array__NativeArray
*)var519
)->values
[2] = (val
*) var_entry
;
2797 ((struct instance_array__NativeArray
*)var519
)->values
[3] = (val
*) var513
;
2799 ((void (*)(val
*, val
*, long))(var517
->class->vft
[COLOR_array__Array__with_native
]))(var517
, var519
, var518
) /* with_native on <var517:Array[Object]>*/;
2803 var520
= ((val
* (*)(val
*))(var517
->class->vft
[COLOR_string__Object__to_s
]))(var517
) /* to_s on <var517:Array[Object]>*/;
2806 abstract_compiler__AbstractCompilerVisitor__add(self
, var520
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2808 var_522
= var_maybe_null
;
2809 if (var_maybe_null
){
2811 var524
= varonce523
;
2815 var527
= string__NativeString__to_s_with_length(var525
, var526
);
2817 varonce523
= var524
;
2820 var529
= string__FlatString___61d_61d(var_accept_null
, var524
);
2829 var531
= varonce530
;
2831 var532
= "is_nullable";
2833 var534
= string__NativeString__to_s_with_length(var532
, var533
);
2835 varonce530
= var531
;
2838 var535
= abstract_compiler__AbstractCompilerVisitor__get_name(self
, var531
);
2840 var_is_nullable
= var535
;
2842 var537
= varonce536
;
2844 var538
= "short int ";
2846 var540
= string__NativeString__to_s_with_length(var538
, var539
);
2848 varonce536
= var537
;
2851 var542
= varonce541
;
2855 var545
= string__NativeString__to_s_with_length(var543
, var544
);
2857 varonce541
= var542
;
2859 var546
= NEW_array__Array(&type_array__Arraykernel__Object
);
2860 { /* var546 = array_instance Array[Object] */
2862 var548
= NEW_array__NativeArray(var547
, &type_array__NativeArraykernel__Object
);
2863 ((struct instance_array__NativeArray
*)var548
)->values
[0] = (val
*) var537
;
2864 ((struct instance_array__NativeArray
*)var548
)->values
[1] = (val
*) var_is_nullable
;
2865 ((struct instance_array__NativeArray
*)var548
)->values
[2] = (val
*) var542
;
2867 ((void (*)(val
*, val
*, long))(var546
->class->vft
[COLOR_array__Array__with_native
]))(var546
, var548
, var547
) /* with_native on <var546:Array[Object]>*/;
2871 var549
= ((val
* (*)(val
*))(var546
->class->vft
[COLOR_string__Object__to_s
]))(var546
) /* to_s on <var546:Array[Object]>*/;
2874 abstract_compiler__AbstractCompilerVisitor__add_decl(self
, var549
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateErasureCompilerVisitor>*/
2877 var551
= varonce550
;
2881 var554
= string__NativeString__to_s_with_length(var552
, var553
);
2883 varonce550
= var551
;
2886 var556
= varonce555
;
2888 var557
= ".is_nullable;";
2890 var559
= string__NativeString__to_s_with_length(var557
, var558
);
2892 varonce555
= var556
;
2894 var560
= NEW_array__Array(&type_array__Arraykernel__Object
);
2895 { /* var560 = array_instance Array[Object] */
2897 var562
= NEW_array__NativeArray(var561
, &type_array__NativeArraykernel__Object
);
2898 ((struct instance_array__NativeArray
*)var562
)->values
[0] = (val
*) var_is_nullable
;
2899 ((struct instance_array__NativeArray
*)var562
)->values
[1] = (val
*) var551
;
2900 ((struct instance_array__NativeArray
*)var562
)->values
[2] = (val
*) var_entry
;
2901 ((struct instance_array__NativeArray
*)var562
)->values
[3] = (val
*) var556
;
2903 ((void (*)(val
*, val
*, long))(var560
->class->vft
[COLOR_array__Array__with_native
]))(var560
, var562
, var561
) /* with_native on <var560:Array[Object]>*/;
2907 var563
= ((val
* (*)(val
*))(var560
->class->vft
[COLOR_string__Object__to_s
]))(var560
) /* to_s on <var560:Array[Object]>*/;
2910 abstract_compiler__AbstractCompilerVisitor__add(self
, var563
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2913 var564
= string__String__to_s(var_is_nullable
);
2915 var_accept_null
= var564
;
2919 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
2920 var567
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
2921 if (unlikely(var567
== NULL
)) {
2922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2923 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
2927 RET_LABEL566
:(void)0;
2931 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var565) on <var565:AbstractCompiler(SeparateCompiler)> */
2932 var570
= var565
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var565:AbstractCompiler(SeparateCompiler)> */
2933 if (unlikely(var570
== NULL
)) {
2934 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2935 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
2939 RET_LABEL569
:(void)0;
2943 { /* Inline modelbuilder#ModelBuilder#toolcontext (var568) on <var568:ModelBuilder> */
2944 var573
= var568
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var568:ModelBuilder> */
2945 if (unlikely(var573
== NULL
)) {
2946 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2947 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
2951 RET_LABEL572
:(void)0;
2955 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var571) on <var571:ToolContext> */
2956 var576
= var571
->attrs
[COLOR_abstract_compiler__ToolContext___opt_typing_test_metrics
].val
; /* _opt_typing_test_metrics on <var571:ToolContext> */
2957 if (unlikely(var576
== NULL
)) {
2958 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
2959 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 61);
2963 RET_LABEL575
:(void)0;
2967 { /* Inline opts#Option#value (var574) on <var574:OptionBool> */
2968 var579
= var574
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var574:OptionBool> */
2970 RET_LABEL578
:(void)0;
2973 var580
= ((struct instance_kernel__Bool
*)var577
)->value
; /* autounbox from nullable Object to Bool */;
2976 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
2977 var583
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
2978 if (unlikely(var583
== NULL
)) {
2979 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2980 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
2984 RET_LABEL582
:(void)0;
2988 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_unresolved (var581) on <var581:AbstractCompiler(SeparateCompiler)> */
2989 var586
= var581
->attrs
[COLOR_abstract_compiler__AbstractCompiler___count_type_test_unresolved
].val
; /* _count_type_test_unresolved on <var581:AbstractCompiler(SeparateCompiler)> */
2990 if (unlikely(var586
== NULL
)) {
2991 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_unresolved");
2992 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 946);
2996 RET_LABEL585
:(void)0;
3002 var589
= hash_collection__HashMap___91d_93d(var_587
, var_588
);
3006 { /* Inline kernel#Int#+ (var589,var590) on <var589:nullable Object(Int)> */
3007 /* Covariant cast for argument 0 (i) <var590:Int> isa OTHER */
3008 /* <var590:Int> isa OTHER */
3009 var593
= 1; /* easy <var590:Int> isa OTHER*/
3010 if (unlikely(!var593
)) {
3011 var_class_name596
= type_kernel__Int
.name
;
3012 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name596
);
3013 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
3016 var597
= ((struct instance_kernel__Int
*)var589
)->value
; /* autounbox from nullable Object to Int */;
3017 var598
= var597
+ var590
;
3020 RET_LABEL592
:(void)0;
3024 var599
= BOX_kernel__Int(var591
); /* autobox from Int to nullable Object */
3025 hash_collection__HashMap___91d_93d_61d(var_587
, var_588
, var599
); /* Direct call hash_collection#HashMap#[]= on <var_587:HashMap[String, Int]>*/
3028 var601
= varonce600
;
3030 var602
= "count_type_test_unresolved_";
3032 var604
= string__NativeString__to_s_with_length(var602
, var603
);
3034 varonce600
= var601
;
3037 var606
= varonce605
;
3041 var609
= string__NativeString__to_s_with_length(var607
, var608
);
3043 varonce605
= var606
;
3045 var610
= NEW_array__Array(&type_array__Arraykernel__Object
);
3046 { /* var610 = array_instance Array[Object] */
3048 var612
= NEW_array__NativeArray(var611
, &type_array__NativeArraykernel__Object
);
3049 ((struct instance_array__NativeArray
*)var612
)->values
[0] = (val
*) var601
;
3050 ((struct instance_array__NativeArray
*)var612
)->values
[1] = (val
*) var_tag
;
3051 ((struct instance_array__NativeArray
*)var612
)->values
[2] = (val
*) var606
;
3053 ((void (*)(val
*, val
*, long))(var610
->class->vft
[COLOR_array__Array__with_native
]))(var610
, var612
, var611
) /* with_native on <var610:Array[Object]>*/;
3057 var613
= ((val
* (*)(val
*))(var610
->class->vft
[COLOR_string__Object__to_s
]))(var610
) /* to_s on <var610:Array[Object]>*/;
3060 abstract_compiler__AbstractCompilerVisitor__add(self
, var613
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3066 var615
= varonce614
;
3068 var616
= "type_test(";
3070 var618
= string__NativeString__to_s_with_length(var616
, var617
);
3072 varonce614
= var615
;
3075 var619
= abstract_compiler__RuntimeVariable__inspect(var_value
);
3078 var621
= varonce620
;
3082 var624
= string__NativeString__to_s_with_length(var622
, var623
);
3084 varonce620
= var621
;
3087 var626
= varonce625
;
3091 var629
= string__NativeString__to_s_with_length(var627
, var628
);
3093 varonce625
= var626
;
3095 var630
= NEW_array__Array(&type_array__Arraykernel__Object
);
3096 { /* var630 = array_instance Array[Object] */
3098 var632
= NEW_array__NativeArray(var631
, &type_array__NativeArraykernel__Object
);
3099 ((struct instance_array__NativeArray
*)var632
)->values
[0] = (val
*) var615
;
3100 ((struct instance_array__NativeArray
*)var632
)->values
[1] = (val
*) var619
;
3101 ((struct instance_array__NativeArray
*)var632
)->values
[2] = (val
*) var621
;
3102 ((struct instance_array__NativeArray
*)var632
)->values
[3] = (val
*) var_mtype
;
3103 ((struct instance_array__NativeArray
*)var632
)->values
[4] = (val
*) var626
;
3105 ((void (*)(val
*, val
*, long))(var630
->class->vft
[COLOR_array__Array__with_native
]))(var630
, var632
, var631
) /* with_native on <var630:Array[Object]>*/;
3109 var633
= ((val
* (*)(val
*))(var630
->class->vft
[COLOR_string__Object__to_s
]))(var630
) /* to_s on <var630:Array[Object]>*/;
3112 abstract_compiler__AbstractCompilerVisitor__debug(self
, var633
); /* Direct call abstract_compiler#AbstractCompilerVisitor#debug on <self:SeparateErasureCompilerVisitor>*/
3114 PRINT_ERROR("Runtime error: %s", "Aborted");
3115 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 596);
3119 if (var_maybe_null
){
3121 var635
= varonce634
;
3125 var638
= string__NativeString__to_s_with_length(var636
, var637
);
3127 varonce634
= var635
;
3130 var640
= varonce639
;
3132 var641
= " == NULL) {";
3134 var643
= string__NativeString__to_s_with_length(var641
, var642
);
3136 varonce639
= var640
;
3138 var644
= NEW_array__Array(&type_array__Arraykernel__Object
);
3139 { /* var644 = array_instance Array[Object] */
3141 var646
= NEW_array__NativeArray(var645
, &type_array__NativeArraykernel__Object
);
3142 ((struct instance_array__NativeArray
*)var646
)->values
[0] = (val
*) var635
;
3143 ((struct instance_array__NativeArray
*)var646
)->values
[1] = (val
*) var_value
;
3144 ((struct instance_array__NativeArray
*)var646
)->values
[2] = (val
*) var640
;
3146 ((void (*)(val
*, val
*, long))(var644
->class->vft
[COLOR_array__Array__with_native
]))(var644
, var646
, var645
) /* with_native on <var644:Array[Object]>*/;
3150 var647
= ((val
* (*)(val
*))(var644
->class->vft
[COLOR_string__Object__to_s
]))(var644
) /* to_s on <var644:Array[Object]>*/;
3153 abstract_compiler__AbstractCompilerVisitor__add(self
, var647
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3156 var649
= varonce648
;
3160 var652
= string__NativeString__to_s_with_length(var650
, var651
);
3162 varonce648
= var649
;
3165 var654
= varonce653
;
3169 var657
= string__NativeString__to_s_with_length(var655
, var656
);
3171 varonce653
= var654
;
3173 var658
= NEW_array__Array(&type_array__Arraykernel__Object
);
3174 { /* var658 = array_instance Array[Object] */
3176 var660
= NEW_array__NativeArray(var659
, &type_array__NativeArraykernel__Object
);
3177 ((struct instance_array__NativeArray
*)var660
)->values
[0] = (val
*) var_res
;
3178 ((struct instance_array__NativeArray
*)var660
)->values
[1] = (val
*) var649
;
3179 ((struct instance_array__NativeArray
*)var660
)->values
[2] = (val
*) var_accept_null
;
3180 ((struct instance_array__NativeArray
*)var660
)->values
[3] = (val
*) var654
;
3182 ((void (*)(val
*, val
*, long))(var658
->class->vft
[COLOR_array__Array__with_native
]))(var658
, var660
, var659
) /* with_native on <var658:Array[Object]>*/;
3186 var661
= ((val
* (*)(val
*))(var658
->class->vft
[COLOR_string__Object__to_s
]))(var658
) /* to_s on <var658:Array[Object]>*/;
3189 abstract_compiler__AbstractCompilerVisitor__add(self
, var661
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3192 var663
= varonce662
;
3194 var664
= "} else {";
3196 var666
= string__NativeString__to_s_with_length(var664
, var665
);
3198 varonce662
= var663
;
3201 abstract_compiler__AbstractCompilerVisitor__add(self
, var663
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3206 var668
= varonce667
;
3210 var671
= string__NativeString__to_s_with_length(var669
, var670
);
3212 varonce667
= var668
;
3215 var673
= varonce672
;
3219 var676
= string__NativeString__to_s_with_length(var674
, var675
);
3221 varonce672
= var673
;
3224 var678
= varonce677
;
3226 var679
= "type_table->size) {";
3228 var681
= string__NativeString__to_s_with_length(var679
, var680
);
3230 varonce677
= var678
;
3232 var682
= NEW_array__Array(&type_array__Arraykernel__Object
);
3233 { /* var682 = array_instance Array[Object] */
3235 var684
= NEW_array__NativeArray(var683
, &type_array__NativeArraykernel__Object
);
3236 ((struct instance_array__NativeArray
*)var684
)->values
[0] = (val
*) var668
;
3237 ((struct instance_array__NativeArray
*)var684
)->values
[1] = (val
*) var_cltype
;
3238 ((struct instance_array__NativeArray
*)var684
)->values
[2] = (val
*) var673
;
3239 ((struct instance_array__NativeArray
*)var684
)->values
[3] = (val
*) var_class_ptr
;
3240 ((struct instance_array__NativeArray
*)var684
)->values
[4] = (val
*) var678
;
3242 ((void (*)(val
*, val
*, long))(var682
->class->vft
[COLOR_array__Array__with_native
]))(var682
, var684
, var683
) /* with_native on <var682:Array[Object]>*/;
3246 var685
= ((val
* (*)(val
*))(var682
->class->vft
[COLOR_string__Object__to_s
]))(var682
) /* to_s on <var682:Array[Object]>*/;
3249 abstract_compiler__AbstractCompilerVisitor__add(self
, var685
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3252 var687
= varonce686
;
3256 var690
= string__NativeString__to_s_with_length(var688
, var689
);
3258 varonce686
= var687
;
3260 var691
= NEW_array__Array(&type_array__Arraykernel__Object
);
3261 { /* var691 = array_instance Array[Object] */
3263 var693
= NEW_array__NativeArray(var692
, &type_array__NativeArraykernel__Object
);
3264 ((struct instance_array__NativeArray
*)var693
)->values
[0] = (val
*) var_res
;
3265 ((struct instance_array__NativeArray
*)var693
)->values
[1] = (val
*) var687
;
3267 ((void (*)(val
*, val
*, long))(var691
->class->vft
[COLOR_array__Array__with_native
]))(var691
, var693
, var692
) /* with_native on <var691:Array[Object]>*/;
3271 var694
= ((val
* (*)(val
*))(var691
->class->vft
[COLOR_string__Object__to_s
]))(var691
) /* to_s on <var691:Array[Object]>*/;
3274 abstract_compiler__AbstractCompilerVisitor__add(self
, var694
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3277 var696
= varonce695
;
3279 var697
= "} else {";
3281 var699
= string__NativeString__to_s_with_length(var697
, var698
);
3283 varonce695
= var696
;
3286 abstract_compiler__AbstractCompilerVisitor__add(self
, var696
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3289 var701
= varonce700
;
3293 var704
= string__NativeString__to_s_with_length(var702
, var703
);
3295 varonce700
= var701
;
3298 var706
= varonce705
;
3300 var707
= "type_table->table[";
3302 var709
= string__NativeString__to_s_with_length(var707
, var708
);
3304 varonce705
= var706
;
3307 var711
= varonce710
;
3311 var714
= string__NativeString__to_s_with_length(var712
, var713
);
3313 varonce710
= var711
;
3316 var716
= varonce715
;
3320 var719
= string__NativeString__to_s_with_length(var717
, var718
);
3322 varonce715
= var716
;
3324 var720
= NEW_array__Array(&type_array__Arraykernel__Object
);
3325 { /* var720 = array_instance Array[Object] */
3327 var722
= NEW_array__NativeArray(var721
, &type_array__NativeArraykernel__Object
);
3328 ((struct instance_array__NativeArray
*)var722
)->values
[0] = (val
*) var_res
;
3329 ((struct instance_array__NativeArray
*)var722
)->values
[1] = (val
*) var701
;
3330 ((struct instance_array__NativeArray
*)var722
)->values
[2] = (val
*) var_class_ptr
;
3331 ((struct instance_array__NativeArray
*)var722
)->values
[3] = (val
*) var706
;
3332 ((struct instance_array__NativeArray
*)var722
)->values
[4] = (val
*) var_cltype
;
3333 ((struct instance_array__NativeArray
*)var722
)->values
[5] = (val
*) var711
;
3334 ((struct instance_array__NativeArray
*)var722
)->values
[6] = (val
*) var_idtype
;
3335 ((struct instance_array__NativeArray
*)var722
)->values
[7] = (val
*) var716
;
3337 ((void (*)(val
*, val
*, long))(var720
->class->vft
[COLOR_array__Array__with_native
]))(var720
, var722
, var721
) /* with_native on <var720:Array[Object]>*/;
3341 var723
= ((val
* (*)(val
*))(var720
->class->vft
[COLOR_string__Object__to_s
]))(var720
) /* to_s on <var720:Array[Object]>*/;
3344 abstract_compiler__AbstractCompilerVisitor__add(self
, var723
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3347 var725
= varonce724
;
3351 var728
= string__NativeString__to_s_with_length(var726
, var727
);
3353 varonce724
= var725
;
3356 abstract_compiler__AbstractCompilerVisitor__add(self
, var725
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3358 if (var_maybe_null
){
3360 var730
= varonce729
;
3364 var733
= string__NativeString__to_s_with_length(var731
, var732
);
3366 varonce729
= var730
;
3369 abstract_compiler__AbstractCompilerVisitor__add(self
, var730
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3378 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#type_test for (self: Object, RuntimeVariable, MType, String): RuntimeVariable */
3379 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3380 val
* var
/* : RuntimeVariable */;
3381 val
* var1
/* : RuntimeVariable */;
3382 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__type_test(self
, p0
, p1
, p2
);
3387 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#unbox_extern for (self: SeparateErasureCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
3388 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__unbox_extern(val
* self
, val
* p0
, val
* p1
) {
3389 val
* var
/* : RuntimeVariable */;
3390 val
* var_value
/* var value: RuntimeVariable */;
3391 val
* var_mtype
/* var mtype: MType */;
3392 short int var1
/* : Bool */;
3393 short int var2
/* : Bool */;
3394 short int var3
/* : Bool */;
3397 short int var_
/* var : Bool */;
3398 val
* var4
/* : MClass */;
3399 val
* var6
/* : MClass */;
3400 val
* var7
/* : MClassKind */;
3401 val
* var9
/* : MClassKind */;
3402 val
* var10
/* : MClassKind */;
3403 short int var11
/* : Bool */;
3404 short int var12
/* : Bool */;
3405 val
* var_other
/* var other: nullable Object */;
3406 short int var14
/* : Bool */;
3407 short int var16
/* : Bool */;
3408 short int var_17
/* var : Bool */;
3409 val
* var18
/* : MClass */;
3410 val
* var20
/* : MClass */;
3411 val
* var21
/* : String */;
3412 val
* var23
/* : String */;
3413 static val
* varonce
;
3414 val
* var24
/* : String */;
3415 char* var25
/* : NativeString */;
3416 long var26
/* : Int */;
3417 val
* var27
/* : FlatString */;
3418 short int var28
/* : Bool */;
3419 short int var29
/* : Bool */;
3420 val
* var_other31
/* var other: nullable Object */;
3421 short int var32
/* : Bool */;
3422 short int var33
/* : Bool */;
3423 short int var34
/* : Bool */;
3424 val
* var35
/* : AbstractCompiler */;
3425 val
* var37
/* : AbstractCompiler */;
3426 val
* var38
/* : MModule */;
3427 val
* var40
/* : MModule */;
3428 val
* var41
/* : MClassType */;
3429 short int var43
/* : Bool */;
3430 val
* var44
/* : MClassType */;
3431 static val
* varonce45
;
3432 val
* var46
/* : String */;
3433 char* var47
/* : NativeString */;
3434 long var48
/* : Int */;
3435 val
* var49
/* : FlatString */;
3436 val
* var50
/* : MClass */;
3437 val
* var51
/* : MClassType */;
3438 val
* var53
/* : MClassType */;
3439 val
* var_pointer_type
/* var pointer_type: MClassType */;
3440 val
* var54
/* : RuntimeVariable */;
3441 val
* var_res
/* var res: RuntimeVariable */;
3442 static val
* varonce55
;
3443 val
* var56
/* : String */;
3444 char* var57
/* : NativeString */;
3445 long var58
/* : Int */;
3446 val
* var59
/* : FlatString */;
3447 val
* var60
/* : String */;
3448 static val
* varonce61
;
3449 val
* var62
/* : String */;
3450 char* var63
/* : NativeString */;
3451 long var64
/* : Int */;
3452 val
* var65
/* : FlatString */;
3453 static val
* varonce66
;
3454 val
* var67
/* : String */;
3455 char* var68
/* : NativeString */;
3456 long var69
/* : Int */;
3457 val
* var70
/* : FlatString */;
3458 val
* var71
/* : MType */;
3459 val
* var73
/* : MType */;
3460 static val
* varonce74
;
3461 val
* var75
/* : String */;
3462 char* var76
/* : NativeString */;
3463 long var77
/* : Int */;
3464 val
* var78
/* : FlatString */;
3465 val
* var79
/* : Array[Object] */;
3466 long var80
/* : Int */;
3467 val
* var81
/* : NativeArray[Object] */;
3468 val
* var82
/* : String */;
3471 /* <var_mtype:MType> isa MClassType */
3472 cltype
= type_model__MClassType
.color
;
3473 idtype
= type_model__MClassType
.id
;
3474 if(cltype
>= var_mtype
->type
->table_size
) {
3477 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
3482 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
3483 var6
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
3484 if (unlikely(var6
== NULL
)) {
3485 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3486 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
3494 { /* Inline model#MClass#kind (var4) on <var4:MClass> */
3495 var9
= var4
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var4:MClass> */
3496 if (unlikely(var9
== NULL
)) {
3497 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3498 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
3506 var10
= model__Object__extern_kind(self
);
3509 { /* Inline kernel#Object#== (var7,var10) on <var7:MClassKind> */
3512 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:MClassKind> */
3513 var16
= var7
== var_other
;
3516 RET_LABEL15
:(void)0;
3521 RET_LABEL13
:(void)0;
3532 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
3533 var20
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
3534 if (unlikely(var20
== NULL
)) {
3535 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3536 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
3540 RET_LABEL19
:(void)0;
3544 { /* Inline model#MClass#name (var18) on <var18:MClass> */
3545 var23
= var18
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var18:MClass> */
3546 if (unlikely(var23
== NULL
)) {
3547 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3548 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
3552 RET_LABEL22
:(void)0;
3558 var25
= "NativeString";
3560 var27
= string__NativeString__to_s_with_length(var25
, var26
);
3565 { /* Inline kernel#Object#!= (var21,var24) on <var21:String> */
3566 var_other31
= var24
;
3568 var33
= ((short int (*)(val
*, val
*))(var21
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var21
, var_other31
) /* == on <var21:String>*/;
3574 RET_LABEL30
:(void)0;
3584 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
3585 var37
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
3586 if (unlikely(var37
== NULL
)) {
3587 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3588 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
3592 RET_LABEL36
:(void)0;
3596 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var35) on <var35:AbstractCompiler(SeparateCompiler)> */
3597 var40
= var35
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var35:AbstractCompiler(SeparateCompiler)> */
3598 if (unlikely(var40
== NULL
)) {
3599 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3600 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
3604 RET_LABEL39
:(void)0;
3608 { /* Inline model#MModule#pointer_type (var38) on <var38:MModule> */
3609 var43
= var38
->attrs
[COLOR_model__MModule___pointer_type
].val
!= NULL
; /* _pointer_type on <var38:MModule> */
3611 var44
= var38
->attrs
[COLOR_model__MModule___pointer_type
].val
; /* _pointer_type on <var38:MModule> */
3612 if (unlikely(var44
== NULL
)) {
3613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pointer_type");
3614 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 217);
3623 var49
= string__NativeString__to_s_with_length(var47
, var48
);
3628 var50
= model__MModule__get_primitive_class(var38
, var46
);
3631 { /* Inline model#MClass#mclass_type (var50) on <var50:MClass> */
3632 var53
= var50
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var50:MClass> */
3633 if (unlikely(var53
== NULL
)) {
3634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3635 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
3639 RET_LABEL52
:(void)0;
3642 var38
->attrs
[COLOR_model__MModule___pointer_type
].val
= var51
; /* _pointer_type on <var38:MModule> */
3646 RET_LABEL42
:(void)0;
3649 var_pointer_type
= var41
;
3651 var54
= abstract_compiler__AbstractCompilerVisitor__new_var_extern(self
, var_mtype
);
3657 var57
= " = ((struct instance_";
3659 var59
= string__NativeString__to_s_with_length(var57
, var58
);
3664 var60
= ((val
* (*)(val
*))(var_pointer_type
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_pointer_type
) /* c_name on <var_pointer_type:MClassType>*/;
3671 var65
= string__NativeString__to_s_with_length(var63
, var64
);
3678 var68
= ")->value; /* unboxing ";
3680 var70
= string__NativeString__to_s_with_length(var68
, var69
);
3685 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3686 var73
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
3687 if (unlikely(var73
== NULL
)) {
3688 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3689 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
3693 RET_LABEL72
:(void)0;
3701 var78
= string__NativeString__to_s_with_length(var76
, var77
);
3705 var79
= NEW_array__Array(&type_array__Arraykernel__Object
);
3706 { /* var79 = array_instance Array[Object] */
3708 var81
= NEW_array__NativeArray(var80
, &type_array__NativeArraykernel__Object
);
3709 ((struct instance_array__NativeArray
*)var81
)->values
[0] = (val
*) var_res
;
3710 ((struct instance_array__NativeArray
*)var81
)->values
[1] = (val
*) var56
;
3711 ((struct instance_array__NativeArray
*)var81
)->values
[2] = (val
*) var60
;
3712 ((struct instance_array__NativeArray
*)var81
)->values
[3] = (val
*) var62
;
3713 ((struct instance_array__NativeArray
*)var81
)->values
[4] = (val
*) var_value
;
3714 ((struct instance_array__NativeArray
*)var81
)->values
[5] = (val
*) var67
;
3715 ((struct instance_array__NativeArray
*)var81
)->values
[6] = (val
*) var71
;
3716 ((struct instance_array__NativeArray
*)var81
)->values
[7] = (val
*) var75
;
3718 ((void (*)(val
*, val
*, long))(var79
->class->vft
[COLOR_array__Array__with_native
]))(var79
, var81
, var80
) /* with_native on <var79:Array[Object]>*/;
3722 var82
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_string__Object__to_s
]))(var79
) /* to_s on <var79:Array[Object]>*/;
3725 abstract_compiler__AbstractCompilerVisitor__add(self
, var82
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3736 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#unbox_extern for (self: Object, RuntimeVariable, MType): RuntimeVariable */
3737 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__unbox_extern(val
* self
, val
* p0
, val
* p1
) {
3738 val
* var
/* : RuntimeVariable */;
3739 val
* var1
/* : RuntimeVariable */;
3740 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__unbox_extern(self
, p0
, p1
);
3745 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#box_extern for (self: SeparateErasureCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
3746 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__box_extern(val
* self
, val
* p0
, val
* p1
) {
3747 val
* var
/* : RuntimeVariable */;
3748 val
* var_value
/* var value: RuntimeVariable */;
3749 val
* var_mtype
/* var mtype: MType */;
3750 short int var1
/* : Bool */;
3751 short int var2
/* : Bool */;
3752 short int var3
/* : Bool */;
3755 short int var_
/* var : Bool */;
3756 val
* var4
/* : MClass */;
3757 val
* var6
/* : MClass */;
3758 val
* var7
/* : MClassKind */;
3759 val
* var9
/* : MClassKind */;
3760 val
* var10
/* : MClassKind */;
3761 short int var11
/* : Bool */;
3762 short int var12
/* : Bool */;
3763 val
* var_other
/* var other: nullable Object */;
3764 short int var14
/* : Bool */;
3765 short int var16
/* : Bool */;
3766 short int var_17
/* var : Bool */;
3767 val
* var18
/* : MClass */;
3768 val
* var20
/* : MClass */;
3769 val
* var21
/* : String */;
3770 val
* var23
/* : String */;
3771 static val
* varonce
;
3772 val
* var24
/* : String */;
3773 char* var25
/* : NativeString */;
3774 long var26
/* : Int */;
3775 val
* var27
/* : FlatString */;
3776 short int var28
/* : Bool */;
3777 short int var29
/* : Bool */;
3778 val
* var_other31
/* var other: nullable Object */;
3779 short int var32
/* : Bool */;
3780 short int var33
/* : Bool */;
3781 short int var34
/* : Bool */;
3782 val
* var35
/* : AbstractCompiler */;
3783 val
* var37
/* : AbstractCompiler */;
3784 val
* var38
/* : MModule */;
3785 val
* var40
/* : MModule */;
3786 val
* var41
/* : MClassType */;
3787 short int var43
/* : Bool */;
3788 val
* var44
/* : MClassType */;
3789 static val
* varonce45
;
3790 val
* var46
/* : String */;
3791 char* var47
/* : NativeString */;
3792 long var48
/* : Int */;
3793 val
* var49
/* : FlatString */;
3794 val
* var50
/* : MClass */;
3795 val
* var51
/* : MClassType */;
3796 val
* var53
/* : MClassType */;
3797 val
* var_valtype
/* var valtype: MClassType */;
3798 val
* var54
/* : RuntimeVariable */;
3799 val
* var_res
/* var res: RuntimeVariable */;
3800 short int var55
/* : Bool */;
3801 val
* var56
/* : AbstractCompiler */;
3802 val
* var58
/* : AbstractCompiler */;
3803 val
* var59
/* : nullable RapidTypeAnalysis */;
3804 val
* var61
/* : nullable RapidTypeAnalysis */;
3805 val
* var62
/* : null */;
3806 short int var63
/* : Bool */;
3807 short int var64
/* : Bool */;
3808 short int var66
/* : Bool */;
3809 short int var67
/* : Bool */;
3810 short int var68
/* : Bool */;
3811 short int var_69
/* var : Bool */;
3812 val
* var70
/* : AbstractCompiler */;
3813 val
* var72
/* : AbstractCompiler */;
3814 val
* var73
/* : nullable RapidTypeAnalysis */;
3815 val
* var75
/* : nullable RapidTypeAnalysis */;
3816 val
* var76
/* : HashSet[MClassType] */;
3817 val
* var78
/* : HashSet[MClassType] */;
3818 val
* var79
/* : MType */;
3819 val
* var81
/* : MType */;
3820 short int var82
/* : Bool */;
3823 const char* var_class_name
;
3824 short int var85
/* : Bool */;
3825 short int var86
/* : Bool */;
3826 static val
* varonce87
;
3827 val
* var88
/* : String */;
3828 char* var89
/* : NativeString */;
3829 long var90
/* : Int */;
3830 val
* var91
/* : FlatString */;
3831 val
* var92
/* : MType */;
3832 val
* var94
/* : MType */;
3833 static val
* varonce95
;
3834 val
* var96
/* : String */;
3835 char* var97
/* : NativeString */;
3836 long var98
/* : Int */;
3837 val
* var99
/* : FlatString */;
3838 val
* var100
/* : MType */;
3839 val
* var102
/* : MType */;
3840 static val
* varonce103
;
3841 val
* var104
/* : String */;
3842 char* var105
/* : NativeString */;
3843 long var106
/* : Int */;
3844 val
* var107
/* : FlatString */;
3845 val
* var108
/* : Array[Object] */;
3846 long var109
/* : Int */;
3847 val
* var110
/* : NativeArray[Object] */;
3848 val
* var111
/* : String */;
3849 static val
* varonce112
;
3850 val
* var113
/* : String */;
3851 char* var114
/* : NativeString */;
3852 long var115
/* : Int */;
3853 val
* var116
/* : FlatString */;
3854 static val
* varonce117
;
3855 val
* var118
/* : String */;
3856 char* var119
/* : NativeString */;
3857 long var120
/* : Int */;
3858 val
* var121
/* : FlatString */;
3859 val
* var122
/* : String */;
3860 val
* var123
/* : Array[Object] */;
3861 long var124
/* : Int */;
3862 val
* var125
/* : NativeArray[Object] */;
3863 val
* var126
/* : String */;
3864 static val
* varonce127
;
3865 val
* var128
/* : String */;
3866 char* var129
/* : NativeString */;
3867 long var130
/* : Int */;
3868 val
* var131
/* : FlatString */;
3869 val
* var132
/* : String */;
3870 static val
* varonce133
;
3871 val
* var134
/* : String */;
3872 char* var135
/* : NativeString */;
3873 long var136
/* : Int */;
3874 val
* var137
/* : FlatString */;
3875 static val
* varonce138
;
3876 val
* var139
/* : String */;
3877 char* var140
/* : NativeString */;
3878 long var141
/* : Int */;
3879 val
* var142
/* : FlatString */;
3880 val
* var143
/* : MType */;
3881 val
* var145
/* : MType */;
3882 static val
* varonce146
;
3883 val
* var147
/* : String */;
3884 char* var148
/* : NativeString */;
3885 long var149
/* : Int */;
3886 val
* var150
/* : FlatString */;
3887 val
* var151
/* : Array[Object] */;
3888 long var152
/* : Int */;
3889 val
* var153
/* : NativeArray[Object] */;
3890 val
* var154
/* : String */;
3891 static val
* varonce155
;
3892 val
* var156
/* : String */;
3893 char* var157
/* : NativeString */;
3894 long var158
/* : Int */;
3895 val
* var159
/* : FlatString */;
3896 val
* var160
/* : String */;
3897 val
* var161
/* : Array[Object] */;
3898 long var162
/* : Int */;
3899 val
* var163
/* : NativeArray[Object] */;
3900 val
* var164
/* : String */;
3901 static val
* varonce165
;
3902 val
* var166
/* : String */;
3903 char* var167
/* : NativeString */;
3904 long var168
/* : Int */;
3905 val
* var169
/* : FlatString */;
3906 val
* var170
/* : String */;
3907 static val
* varonce171
;
3908 val
* var172
/* : String */;
3909 char* var173
/* : NativeString */;
3910 long var174
/* : Int */;
3911 val
* var175
/* : FlatString */;
3912 val
* var176
/* : Array[Object] */;
3913 long var177
/* : Int */;
3914 val
* var178
/* : NativeArray[Object] */;
3915 val
* var179
/* : String */;
3918 /* <var_mtype:MType> isa MClassType */
3919 cltype
= type_model__MClassType
.color
;
3920 idtype
= type_model__MClassType
.id
;
3921 if(cltype
>= var_mtype
->type
->table_size
) {
3924 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
3929 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
3930 var6
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
3931 if (unlikely(var6
== NULL
)) {
3932 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3933 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
3941 { /* Inline model#MClass#kind (var4) on <var4:MClass> */
3942 var9
= var4
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var4:MClass> */
3943 if (unlikely(var9
== NULL
)) {
3944 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3945 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
3953 var10
= model__Object__extern_kind(self
);
3956 { /* Inline kernel#Object#== (var7,var10) on <var7:MClassKind> */
3959 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:MClassKind> */
3960 var16
= var7
== var_other
;
3963 RET_LABEL15
:(void)0;
3968 RET_LABEL13
:(void)0;
3979 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
3980 var20
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
3981 if (unlikely(var20
== NULL
)) {
3982 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3983 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
3987 RET_LABEL19
:(void)0;
3991 { /* Inline model#MClass#name (var18) on <var18:MClass> */
3992 var23
= var18
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var18:MClass> */
3993 if (unlikely(var23
== NULL
)) {
3994 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3995 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
3999 RET_LABEL22
:(void)0;
4005 var25
= "NativeString";
4007 var27
= string__NativeString__to_s_with_length(var25
, var26
);
4012 { /* Inline kernel#Object#!= (var21,var24) on <var21:String> */
4013 var_other31
= var24
;
4015 var33
= ((short int (*)(val
*, val
*))(var21
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var21
, var_other31
) /* == on <var21:String>*/;
4021 RET_LABEL30
:(void)0;
4031 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
4032 var37
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
4033 if (unlikely(var37
== NULL
)) {
4034 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
4035 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
4039 RET_LABEL36
:(void)0;
4043 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var35) on <var35:AbstractCompiler(SeparateCompiler)> */
4044 var40
= var35
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var35:AbstractCompiler(SeparateCompiler)> */
4045 if (unlikely(var40
== NULL
)) {
4046 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4047 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 463);
4051 RET_LABEL39
:(void)0;
4055 { /* Inline model#MModule#pointer_type (var38) on <var38:MModule> */
4056 var43
= var38
->attrs
[COLOR_model__MModule___pointer_type
].val
!= NULL
; /* _pointer_type on <var38:MModule> */
4058 var44
= var38
->attrs
[COLOR_model__MModule___pointer_type
].val
; /* _pointer_type on <var38:MModule> */
4059 if (unlikely(var44
== NULL
)) {
4060 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pointer_type");
4061 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 217);
4070 var49
= string__NativeString__to_s_with_length(var47
, var48
);
4075 var50
= model__MModule__get_primitive_class(var38
, var46
);
4078 { /* Inline model#MClass#mclass_type (var50) on <var50:MClass> */
4079 var53
= var50
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var50:MClass> */
4080 if (unlikely(var53
== NULL
)) {
4081 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
4082 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
4086 RET_LABEL52
:(void)0;
4089 var38
->attrs
[COLOR_model__MModule___pointer_type
].val
= var51
; /* _pointer_type on <var38:MModule> */
4093 RET_LABEL42
:(void)0;
4096 var_valtype
= var41
;
4098 var54
= abstract_compiler__AbstractCompilerVisitor__new_var(self
, var_mtype
);
4102 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
4103 var58
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
4104 if (unlikely(var58
== NULL
)) {
4105 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
4106 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
4110 RET_LABEL57
:(void)0;
4114 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (var56) on <var56:AbstractCompiler(SeparateCompiler)> */
4115 var61
= var56
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <var56:AbstractCompiler(SeparateCompiler)> */
4117 RET_LABEL60
:(void)0;
4121 if (var59
== NULL
) {
4122 var63
= 0; /* is null */
4124 var63
= 1; /* arg is null and recv is not */
4127 { /* Inline kernel#Object#!= (var59,var62) on <var59:nullable RapidTypeAnalysis> */
4128 var_other31
= var62
;
4130 var67
= ((short int (*)(val
*, val
*))(var59
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var59
, var_other31
) /* == on <var59:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/;
4136 RET_LABEL65
:(void)0;
4143 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
4144 var72
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
4145 if (unlikely(var72
== NULL
)) {
4146 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
4147 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
4151 RET_LABEL71
:(void)0;
4155 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (var70) on <var70:AbstractCompiler(SeparateCompiler)> */
4156 var75
= var70
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <var70:AbstractCompiler(SeparateCompiler)> */
4158 RET_LABEL74
:(void)0;
4161 if (var73
== NULL
) {
4162 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4163 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 636);
4166 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var73) on <var73:nullable RapidTypeAnalysis> */
4167 if (unlikely(var73
== NULL
)) {
4168 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4169 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
4172 var78
= var73
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <var73:nullable RapidTypeAnalysis> */
4173 if (unlikely(var78
== NULL
)) {
4174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
4175 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
4179 RET_LABEL77
:(void)0;
4183 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
4184 var81
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
4185 if (unlikely(var81
== NULL
)) {
4186 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4187 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4191 RET_LABEL80
:(void)0;
4194 /* <var79:MType> isa MClassType */
4195 cltype83
= type_model__MClassType
.color
;
4196 idtype84
= type_model__MClassType
.id
;
4197 if(cltype83
>= var79
->type
->table_size
) {
4200 var82
= var79
->type
->type_table
[cltype83
] == idtype84
;
4202 if (unlikely(!var82
)) {
4203 var_class_name
= var79
== NULL ?
"null" : var79
->type
->name
;
4204 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
4205 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 636);
4209 var85
= hash_collection__HashSet__has(var76
, var79
);
4220 var89
= "/*no boxing of ";
4222 var91
= string__NativeString__to_s_with_length(var89
, var90
);
4227 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
4228 var94
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
4229 if (unlikely(var94
== NULL
)) {
4230 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4231 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4235 RET_LABEL93
:(void)0;
4243 var99
= string__NativeString__to_s_with_length(var97
, var98
);
4248 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
4249 var102
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
4250 if (unlikely(var102
== NULL
)) {
4251 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4252 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4256 RET_LABEL101
:(void)0;
4260 var104
= varonce103
;
4262 var105
= " is not live! */";
4264 var107
= string__NativeString__to_s_with_length(var105
, var106
);
4266 varonce103
= var104
;
4268 var108
= NEW_array__Array(&type_array__Arraykernel__Object
);
4269 { /* var108 = array_instance Array[Object] */
4271 var110
= NEW_array__NativeArray(var109
, &type_array__NativeArraykernel__Object
);
4272 ((struct instance_array__NativeArray
*)var110
)->values
[0] = (val
*) var88
;
4273 ((struct instance_array__NativeArray
*)var110
)->values
[1] = (val
*) var92
;
4274 ((struct instance_array__NativeArray
*)var110
)->values
[2] = (val
*) var96
;
4275 ((struct instance_array__NativeArray
*)var110
)->values
[3] = (val
*) var100
;
4276 ((struct instance_array__NativeArray
*)var110
)->values
[4] = (val
*) var104
;
4278 ((void (*)(val
*, val
*, long))(var108
->class->vft
[COLOR_array__Array__with_native
]))(var108
, var110
, var109
) /* with_native on <var108:Array[Object]>*/;
4282 var111
= ((val
* (*)(val
*))(var108
->class->vft
[COLOR_string__Object__to_s
]))(var108
) /* to_s on <var108:Array[Object]>*/;
4285 abstract_compiler__AbstractCompilerVisitor__add(self
, var111
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
4288 var113
= varonce112
;
4290 var114
= "PRINT_ERROR(\"Dead code executed!\\n\"); show_backtrace(1);";
4292 var116
= string__NativeString__to_s_with_length(var114
, var115
);
4294 varonce112
= var113
;
4297 abstract_compiler__AbstractCompilerVisitor__add(self
, var113
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
4304 var118
= varonce117
;
4308 var121
= string__NativeString__to_s_with_length(var119
, var120
);
4310 varonce117
= var118
;
4313 var122
= ((val
* (*)(val
*))(var_valtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_valtype
) /* c_name on <var_valtype:MClassType>*/;
4315 var123
= NEW_array__Array(&type_array__Arraykernel__Object
);
4316 { /* var123 = array_instance Array[Object] */
4318 var125
= NEW_array__NativeArray(var124
, &type_array__NativeArraykernel__Object
);
4319 ((struct instance_array__NativeArray
*)var125
)->values
[0] = (val
*) var118
;
4320 ((struct instance_array__NativeArray
*)var125
)->values
[1] = (val
*) var122
;
4322 ((void (*)(val
*, val
*, long))(var123
->class->vft
[COLOR_array__Array__with_native
]))(var123
, var125
, var124
) /* with_native on <var123:Array[Object]>*/;
4326 var126
= ((val
* (*)(val
*))(var123
->class->vft
[COLOR_string__Object__to_s
]))(var123
) /* to_s on <var123:Array[Object]>*/;
4329 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var126
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
4332 var128
= varonce127
;
4336 var131
= string__NativeString__to_s_with_length(var129
, var130
);
4338 varonce127
= var128
;
4341 var132
= ((val
* (*)(val
*))(var_valtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_valtype
) /* c_name on <var_valtype:MClassType>*/;
4344 var134
= varonce133
;
4348 var137
= string__NativeString__to_s_with_length(var135
, var136
);
4350 varonce133
= var134
;
4353 var139
= varonce138
;
4355 var140
= "); /* boxing ";
4357 var142
= string__NativeString__to_s_with_length(var140
, var141
);
4359 varonce138
= var139
;
4362 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
4363 var145
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
4364 if (unlikely(var145
== NULL
)) {
4365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4366 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4370 RET_LABEL144
:(void)0;
4374 var147
= varonce146
;
4378 var150
= string__NativeString__to_s_with_length(var148
, var149
);
4380 varonce146
= var147
;
4382 var151
= NEW_array__Array(&type_array__Arraykernel__Object
);
4383 { /* var151 = array_instance Array[Object] */
4385 var153
= NEW_array__NativeArray(var152
, &type_array__NativeArraykernel__Object
);
4386 ((struct instance_array__NativeArray
*)var153
)->values
[0] = (val
*) var_res
;
4387 ((struct instance_array__NativeArray
*)var153
)->values
[1] = (val
*) var128
;
4388 ((struct instance_array__NativeArray
*)var153
)->values
[2] = (val
*) var132
;
4389 ((struct instance_array__NativeArray
*)var153
)->values
[3] = (val
*) var134
;
4390 ((struct instance_array__NativeArray
*)var153
)->values
[4] = (val
*) var_value
;
4391 ((struct instance_array__NativeArray
*)var153
)->values
[5] = (val
*) var139
;
4392 ((struct instance_array__NativeArray
*)var153
)->values
[6] = (val
*) var143
;
4393 ((struct instance_array__NativeArray
*)var153
)->values
[7] = (val
*) var147
;
4395 ((void (*)(val
*, val
*, long))(var151
->class->vft
[COLOR_array__Array__with_native
]))(var151
, var153
, var152
) /* with_native on <var151:Array[Object]>*/;
4399 var154
= ((val
* (*)(val
*))(var151
->class->vft
[COLOR_string__Object__to_s
]))(var151
) /* to_s on <var151:Array[Object]>*/;
4402 abstract_compiler__AbstractCompilerVisitor__add(self
, var154
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
4405 var156
= varonce155
;
4409 var159
= string__NativeString__to_s_with_length(var157
, var158
);
4411 varonce155
= var156
;
4414 var160
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType(MClassType)>*/;
4416 var161
= NEW_array__Array(&type_array__Arraykernel__Object
);
4417 { /* var161 = array_instance Array[Object] */
4419 var163
= NEW_array__NativeArray(var162
, &type_array__NativeArraykernel__Object
);
4420 ((struct instance_array__NativeArray
*)var163
)->values
[0] = (val
*) var156
;
4421 ((struct instance_array__NativeArray
*)var163
)->values
[1] = (val
*) var160
;
4423 ((void (*)(val
*, val
*, long))(var161
->class->vft
[COLOR_array__Array__with_native
]))(var161
, var163
, var162
) /* with_native on <var161:Array[Object]>*/;
4427 var164
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_string__Object__to_s
]))(var161
) /* to_s on <var161:Array[Object]>*/;
4430 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var164
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
4433 var166
= varonce165
;
4435 var167
= "->class = &class_";
4437 var169
= string__NativeString__to_s_with_length(var167
, var168
);
4439 varonce165
= var166
;
4442 var170
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType(MClassType)>*/;
4445 var172
= varonce171
;
4449 var175
= string__NativeString__to_s_with_length(var173
, var174
);
4451 varonce171
= var172
;
4453 var176
= NEW_array__Array(&type_array__Arraykernel__Object
);
4454 { /* var176 = array_instance Array[Object] */
4456 var178
= NEW_array__NativeArray(var177
, &type_array__NativeArraykernel__Object
);
4457 ((struct instance_array__NativeArray
*)var178
)->values
[0] = (val
*) var_res
;
4458 ((struct instance_array__NativeArray
*)var178
)->values
[1] = (val
*) var166
;
4459 ((struct instance_array__NativeArray
*)var178
)->values
[2] = (val
*) var170
;
4460 ((struct instance_array__NativeArray
*)var178
)->values
[3] = (val
*) var172
;
4462 ((void (*)(val
*, val
*, long))(var176
->class->vft
[COLOR_array__Array__with_native
]))(var176
, var178
, var177
) /* with_native on <var176:Array[Object]>*/;
4466 var179
= ((val
* (*)(val
*))(var176
->class->vft
[COLOR_string__Object__to_s
]))(var176
) /* to_s on <var176:Array[Object]>*/;
4469 abstract_compiler__AbstractCompilerVisitor__add(self
, var179
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
4480 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#box_extern for (self: Object, RuntimeVariable, MType): RuntimeVariable */
4481 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__box_extern(val
* self
, val
* p0
, val
* p1
) {
4482 val
* var
/* : RuntimeVariable */;
4483 val
* var1
/* : RuntimeVariable */;
4484 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__box_extern(self
, p0
, p1
);
4489 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#class_name_string for (self: SeparateErasureCompilerVisitor, RuntimeVariable): String */
4490 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
4491 val
* var
/* : String */;
4492 val
* var_value
/* var value: RuntimeVariable */;
4493 static val
* varonce
;
4494 val
* var1
/* : String */;
4495 char* var2
/* : NativeString */;
4496 long var3
/* : Int */;
4497 val
* var4
/* : FlatString */;
4498 val
* var5
/* : String */;
4499 val
* var_res
/* var res: String */;
4500 static val
* varonce6
;
4501 val
* var7
/* : String */;
4502 char* var8
/* : NativeString */;
4503 long var9
/* : Int */;
4504 val
* var10
/* : FlatString */;
4505 static val
* varonce11
;
4506 val
* var12
/* : String */;
4507 char* var13
/* : NativeString */;
4508 long var14
/* : Int */;
4509 val
* var15
/* : FlatString */;
4510 val
* var16
/* : Array[Object] */;
4511 long var17
/* : Int */;
4512 val
* var18
/* : NativeArray[Object] */;
4513 val
* var19
/* : String */;
4514 val
* var20
/* : MType */;
4515 val
* var22
/* : MType */;
4516 val
* var23
/* : String */;
4517 static val
* varonce24
;
4518 val
* var25
/* : String */;
4519 char* var26
/* : NativeString */;
4520 long var27
/* : Int */;
4521 val
* var28
/* : FlatString */;
4522 short int var29
/* : Bool */;
4523 short int var30
/* : Bool */;
4524 static val
* varonce31
;
4525 val
* var32
/* : String */;
4526 char* var33
/* : NativeString */;
4527 long var34
/* : Int */;
4528 val
* var35
/* : FlatString */;
4529 static val
* varonce36
;
4530 val
* var37
/* : String */;
4531 char* var38
/* : NativeString */;
4532 long var39
/* : Int */;
4533 val
* var40
/* : FlatString */;
4534 static val
* varonce41
;
4535 val
* var42
/* : String */;
4536 char* var43
/* : NativeString */;
4537 long var44
/* : Int */;
4538 val
* var45
/* : FlatString */;
4539 val
* var46
/* : Array[Object] */;
4540 long var47
/* : Int */;
4541 val
* var48
/* : NativeArray[Object] */;
4542 val
* var49
/* : String */;
4543 static val
* varonce50
;
4544 val
* var51
/* : String */;
4545 char* var52
/* : NativeString */;
4546 long var53
/* : Int */;
4547 val
* var54
/* : FlatString */;
4548 val
* var55
/* : MType */;
4549 val
* var57
/* : MType */;
4550 val
* var58
/* : String */;
4551 val
* var59
/* : Array[Object] */;
4552 long var60
/* : Int */;
4553 val
* var61
/* : NativeArray[Object] */;
4554 val
* var62
/* : String */;
4555 static val
* varonce63
;
4556 val
* var64
/* : String */;
4557 char* var65
/* : NativeString */;
4558 long var66
/* : Int */;
4559 val
* var67
/* : FlatString */;
4560 val
* var68
/* : MType */;
4561 val
* var70
/* : MType */;
4562 val
* var71
/* : String */;
4563 static val
* varonce72
;
4564 val
* var73
/* : String */;
4565 char* var74
/* : NativeString */;
4566 long var75
/* : Int */;
4567 val
* var76
/* : FlatString */;
4568 val
* var77
/* : Array[Object] */;
4569 long var78
/* : Int */;
4570 val
* var79
/* : NativeArray[Object] */;
4571 val
* var80
/* : String */;
4576 var2
= "var_class_name";
4578 var4
= string__NativeString__to_s_with_length(var2
, var3
);
4583 var5
= abstract_compiler__AbstractCompilerVisitor__get_name(self
, var1
);
4589 var8
= "const char* ";
4591 var10
= string__NativeString__to_s_with_length(var8
, var9
);
4600 var15
= string__NativeString__to_s_with_length(var13
, var14
);
4604 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
4605 { /* var16 = array_instance Array[Object] */
4607 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
4608 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
4609 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var_res
;
4610 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
4612 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
4616 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
4619 abstract_compiler__AbstractCompilerVisitor__add_decl(self
, var19
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateErasureCompilerVisitor>*/
4622 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
4623 var22
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
4624 if (unlikely(var22
== NULL
)) {
4625 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4626 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4630 RET_LABEL21
:(void)0;
4634 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var20
) /* ctype on <var20:MType>*/;
4641 var28
= string__NativeString__to_s_with_length(var26
, var27
);
4646 var30
= string__FlatString___61d_61d(var23
, var25
);
4655 var35
= string__NativeString__to_s_with_length(var33
, var34
);
4662 var38
= " == NULL ? \"null\" : ";
4664 var40
= string__NativeString__to_s_with_length(var38
, var39
);
4671 var43
= "->class->name;";
4673 var45
= string__NativeString__to_s_with_length(var43
, var44
);
4677 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
4678 { /* var46 = array_instance Array[Object] */
4680 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
4681 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var_res
;
4682 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var32
;
4683 ((struct instance_array__NativeArray
*)var48
)->values
[2] = (val
*) var_value
;
4684 ((struct instance_array__NativeArray
*)var48
)->values
[3] = (val
*) var37
;
4685 ((struct instance_array__NativeArray
*)var48
)->values
[4] = (val
*) var_value
;
4686 ((struct instance_array__NativeArray
*)var48
)->values
[5] = (val
*) var42
;
4688 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
4692 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
4695 abstract_compiler__AbstractCompilerVisitor__add(self
, var49
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
4703 var54
= string__NativeString__to_s_with_length(var52
, var53
);
4708 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
4709 var57
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
4710 if (unlikely(var57
== NULL
)) {
4711 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4712 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4716 RET_LABEL56
:(void)0;
4720 var58
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var55
) /* c_name on <var55:MType>*/;
4722 var59
= NEW_array__Array(&type_array__Arraykernel__Object
);
4723 { /* var59 = array_instance Array[Object] */
4725 var61
= NEW_array__NativeArray(var60
, &type_array__NativeArraykernel__Object
);
4726 ((struct instance_array__NativeArray
*)var61
)->values
[0] = (val
*) var51
;
4727 ((struct instance_array__NativeArray
*)var61
)->values
[1] = (val
*) var58
;
4729 ((void (*)(val
*, val
*, long))(var59
->class->vft
[COLOR_array__Array__with_native
]))(var59
, var61
, var60
) /* with_native on <var59:Array[Object]>*/;
4733 var62
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_string__Object__to_s
]))(var59
) /* to_s on <var59:Array[Object]>*/;
4736 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var62
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
4741 var65
= " = class_";
4743 var67
= string__NativeString__to_s_with_length(var65
, var66
);
4748 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
4749 var70
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
4750 if (unlikely(var70
== NULL
)) {
4751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4752 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4756 RET_LABEL69
:(void)0;
4760 var71
= ((val
* (*)(val
*))(var68
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var68
) /* c_name on <var68:MType>*/;
4767 var76
= string__NativeString__to_s_with_length(var74
, var75
);
4771 var77
= NEW_array__Array(&type_array__Arraykernel__Object
);
4772 { /* var77 = array_instance Array[Object] */
4774 var79
= NEW_array__NativeArray(var78
, &type_array__NativeArraykernel__Object
);
4775 ((struct instance_array__NativeArray
*)var79
)->values
[0] = (val
*) var_res
;
4776 ((struct instance_array__NativeArray
*)var79
)->values
[1] = (val
*) var64
;
4777 ((struct instance_array__NativeArray
*)var79
)->values
[2] = (val
*) var71
;
4778 ((struct instance_array__NativeArray
*)var79
)->values
[3] = (val
*) var73
;
4780 ((void (*)(val
*, val
*, long))(var77
->class->vft
[COLOR_array__Array__with_native
]))(var77
, var79
, var78
) /* with_native on <var77:Array[Object]>*/;
4784 var80
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_string__Object__to_s
]))(var77
) /* to_s on <var77:Array[Object]>*/;
4787 abstract_compiler__AbstractCompilerVisitor__add(self
, var80
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
4795 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#class_name_string for (self: Object, RuntimeVariable): String */
4796 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
4797 val
* var
/* : String */;
4798 val
* var1
/* : String */;
4799 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__class_name_string(self
, p0
);
4804 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#native_array_instance for (self: SeparateErasureCompilerVisitor, MType, RuntimeVariable): RuntimeVariable */
4805 val
* separate_erasure_compiler__SeparateErasureCompilerVisitor__native_array_instance(val
* self
, val
* p0
, val
* p1
) {
4806 val
* var
/* : RuntimeVariable */;
4807 val
* var_elttype
/* var elttype: MType */;
4808 val
* var_length
/* var length: RuntimeVariable */;
4809 static val
* varonce
;
4810 val
* var1
/* : String */;
4811 char* var2
/* : NativeString */;
4812 long var3
/* : Int */;
4813 val
* var4
/* : FlatString */;
4814 val
* var5
/* : MClass */;
4815 val
* var_nclass
/* var nclass: MClass */;
4816 val
* var6
/* : Array[MType] */;
4817 long var7
/* : Int */;
4818 val
* var_
/* var : Array[MType] */;
4819 val
* var8
/* : MClassType */;
4820 val
* var_mtype
/* var mtype: MClassType */;
4821 val
* var9
/* : RuntimeVariable */;
4822 val
* var_res
/* var res: RuntimeVariable */;
4823 short int var10
/* : Bool */;
4824 static val
* varonce12
;
4825 val
* var13
/* : String */;
4826 char* var14
/* : NativeString */;
4827 long var15
/* : Int */;
4828 val
* var16
/* : FlatString */;
4829 val
* var17
/* : String */;
4830 val
* var18
/* : Array[Object] */;
4831 long var19
/* : Int */;
4832 val
* var20
/* : NativeArray[Object] */;
4833 val
* var21
/* : String */;
4834 static val
* varonce22
;
4835 val
* var23
/* : String */;
4836 char* var24
/* : NativeString */;
4837 long var25
/* : Int */;
4838 val
* var26
/* : FlatString */;
4839 val
* var27
/* : String */;
4840 static val
* varonce28
;
4841 val
* var29
/* : String */;
4842 char* var30
/* : NativeString */;
4843 long var31
/* : Int */;
4844 val
* var32
/* : FlatString */;
4845 static val
* varonce33
;
4846 val
* var34
/* : String */;
4847 char* var35
/* : NativeString */;
4848 long var36
/* : Int */;
4849 val
* var37
/* : FlatString */;
4850 val
* var38
/* : Array[Object] */;
4851 long var39
/* : Int */;
4852 val
* var40
/* : NativeArray[Object] */;
4853 val
* var41
/* : String */;
4859 var2
= "NativeArray";
4861 var4
= string__NativeString__to_s_with_length(var2
, var3
);
4866 var5
= abstract_compiler__AbstractCompilerVisitor__get_class(self
, var1
);
4869 var6
= NEW_array__Array(&type_array__Arraymodel__MType
);
4872 array__Array__with_capacity(var6
, var7
); /* Direct call array#Array#with_capacity on <var6:Array[MType]>*/
4876 array__AbstractArray__push(var_
, var_elttype
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
4879 var8
= model__MClass__get_mtype(var_nclass
, var_
);
4883 var9
= abstract_compiler__AbstractCompilerVisitor__new_var(self
, var_mtype
);
4888 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res,var10) on <var_res:RuntimeVariable> */
4889 var_res
->attrs
[COLOR_abstract_compiler__RuntimeVariable___is_exact
].s
= var10
; /* _is_exact on <var_res:RuntimeVariable> */
4890 RET_LABEL11
:(void)0;
4898 var16
= string__NativeString__to_s_with_length(var14
, var15
);
4903 var17
= abstract_compiler__MClass__c_name(var_nclass
);
4905 var18
= NEW_array__Array(&type_array__Arraykernel__Object
);
4906 { /* var18 = array_instance Array[Object] */
4908 var20
= NEW_array__NativeArray(var19
, &type_array__NativeArraykernel__Object
);
4909 ((struct instance_array__NativeArray
*)var20
)->values
[0] = (val
*) var13
;
4910 ((struct instance_array__NativeArray
*)var20
)->values
[1] = (val
*) var17
;
4912 ((void (*)(val
*, val
*, long))(var18
->class->vft
[COLOR_array__Array__with_native
]))(var18
, var20
, var19
) /* with_native on <var18:Array[Object]>*/;
4916 var21
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_string__Object__to_s
]))(var18
) /* to_s on <var18:Array[Object]>*/;
4919 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var21
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
4926 var26
= string__NativeString__to_s_with_length(var24
, var25
);
4931 var27
= abstract_compiler__MClass__c_name(var_nclass
);
4938 var32
= string__NativeString__to_s_with_length(var30
, var31
);
4947 var37
= string__NativeString__to_s_with_length(var35
, var36
);
4951 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
4952 { /* var38 = array_instance Array[Object] */
4954 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
4955 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var_res
;
4956 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var23
;
4957 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var27
;
4958 ((struct instance_array__NativeArray
*)var40
)->values
[3] = (val
*) var29
;
4959 ((struct instance_array__NativeArray
*)var40
)->values
[4] = (val
*) var_length
;
4960 ((struct instance_array__NativeArray
*)var40
)->values
[5] = (val
*) var34
;
4962 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
4966 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
4969 abstract_compiler__AbstractCompilerVisitor__add(self
, var41
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
4976 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#native_array_instance for (self: Object, MType, RuntimeVariable): RuntimeVariable */
4977 val
* VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__native_array_instance(val
* self
, val
* p0
, val
* p1
) {
4978 val
* var
/* : RuntimeVariable */;
4979 val
* var1
/* : RuntimeVariable */;
4980 var1
= separate_erasure_compiler__SeparateErasureCompilerVisitor__native_array_instance(self
, p0
, p1
);
4985 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#calloc_array for (self: SeparateErasureCompilerVisitor, MType, Array[RuntimeVariable]) */
4986 void separate_erasure_compiler__SeparateErasureCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
4987 val
* var_ret_type
/* var ret_type: MType */;
4988 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
4989 short int var
/* : Bool */;
4992 const char* var_class_name
;
4993 val
* var_ret
/* var ret: MClassType */;
4994 static val
* varonce
;
4995 val
* var1
/* : String */;
4996 char* var2
/* : NativeString */;
4997 long var3
/* : Int */;
4998 val
* var4
/* : FlatString */;
4999 val
* var5
/* : MClass */;
5000 val
* var7
/* : MClass */;
5001 val
* var8
/* : String */;
5002 val
* var9
/* : Array[Object] */;
5003 long var10
/* : Int */;
5004 val
* var11
/* : NativeArray[Object] */;
5005 val
* var12
/* : String */;
5006 static val
* varonce13
;
5007 val
* var14
/* : String */;
5008 char* var15
/* : NativeString */;
5009 long var16
/* : Int */;
5010 val
* var17
/* : FlatString */;
5011 val
* var18
/* : MClass */;
5012 val
* var20
/* : MClass */;
5013 val
* var21
/* : String */;
5014 static val
* varonce22
;
5015 val
* var23
/* : String */;
5016 char* var24
/* : NativeString */;
5017 long var25
/* : Int */;
5018 val
* var26
/* : FlatString */;
5019 long var27
/* : Int */;
5020 val
* var28
/* : nullable Object */;
5021 static val
* varonce29
;
5022 val
* var30
/* : String */;
5023 char* var31
/* : NativeString */;
5024 long var32
/* : Int */;
5025 val
* var33
/* : FlatString */;
5026 val
* var34
/* : Array[Object] */;
5027 long var35
/* : Int */;
5028 val
* var36
/* : NativeArray[Object] */;
5029 val
* var37
/* : String */;
5030 val
* var38
/* : RuntimeVariable */;
5033 /* <var_ret_type:MType> isa MClassType */
5034 cltype
= type_model__MClassType
.color
;
5035 idtype
= type_model__MClassType
.id
;
5036 if(cltype
>= var_ret_type
->type
->table_size
) {
5039 var
= var_ret_type
->type
->type_table
[cltype
] == idtype
;
5041 if (unlikely(!var
)) {
5042 var_class_name
= var_ret_type
== NULL ?
"null" : var_ret_type
->type
->name
;
5043 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5044 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_erasure_compiler.nit", 677);
5047 var_ret
= var_ret_type
;
5053 var4
= string__NativeString__to_s_with_length(var2
, var3
);
5058 { /* Inline model#MClassType#mclass (var_ret) on <var_ret:MClassType> */
5059 var7
= var_ret
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_ret:MClassType> */
5060 if (unlikely(var7
== NULL
)) {
5061 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5062 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5070 var8
= abstract_compiler__MClass__c_name(var5
);
5072 var9
= NEW_array__Array(&type_array__Arraykernel__Object
);
5073 { /* var9 = array_instance Array[Object] */
5075 var11
= NEW_array__NativeArray(var10
, &type_array__NativeArraykernel__Object
);
5076 ((struct instance_array__NativeArray
*)var11
)->values
[0] = (val
*) var1
;
5077 ((struct instance_array__NativeArray
*)var11
)->values
[1] = (val
*) var8
;
5079 ((void (*)(val
*, val
*, long))(var9
->class->vft
[COLOR_array__Array__with_native
]))(var9
, var11
, var10
) /* with_native on <var9:Array[Object]>*/;
5083 var12
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_string__Object__to_s
]))(var9
) /* to_s on <var9:Array[Object]>*/;
5086 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var12
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
5093 var17
= string__NativeString__to_s_with_length(var15
, var16
);
5098 { /* Inline model#MClassType#mclass (var_ret) on <var_ret:MClassType> */
5099 var20
= var_ret
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_ret:MClassType> */
5100 if (unlikely(var20
== NULL
)) {
5101 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5102 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5106 RET_LABEL19
:(void)0;
5110 var21
= abstract_compiler__MClass__c_name(var18
);
5117 var26
= string__NativeString__to_s_with_length(var24
, var25
);
5123 var28
= array__Array___91d_93d(var_arguments
, var27
);
5130 var33
= string__NativeString__to_s_with_length(var31
, var32
);
5134 var34
= NEW_array__Array(&type_array__Arraykernel__Object
);
5135 { /* var34 = array_instance Array[Object] */
5137 var36
= NEW_array__NativeArray(var35
, &type_array__NativeArraykernel__Object
);
5138 ((struct instance_array__NativeArray
*)var36
)->values
[0] = (val
*) var14
;
5139 ((struct instance_array__NativeArray
*)var36
)->values
[1] = (val
*) var21
;
5140 ((struct instance_array__NativeArray
*)var36
)->values
[2] = (val
*) var23
;
5141 ((struct instance_array__NativeArray
*)var36
)->values
[3] = (val
*) var28
;
5142 ((struct instance_array__NativeArray
*)var36
)->values
[4] = (val
*) var30
;
5144 ((void (*)(val
*, val
*, long))(var34
->class->vft
[COLOR_array__Array__with_native
]))(var34
, var36
, var35
) /* with_native on <var34:Array[Object]>*/;
5148 var37
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_string__Object__to_s
]))(var34
) /* to_s on <var34:Array[Object]>*/;
5151 var38
= abstract_compiler__AbstractCompilerVisitor__new_expr(self
, var37
, var_ret_type
);
5154 abstract_compiler__AbstractCompilerVisitor__ret(self
, var38
); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <self:SeparateErasureCompilerVisitor>*/
5158 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#calloc_array for (self: Object, MType, Array[RuntimeVariable]) */
5159 void VIRTUAL_separate_erasure_compiler__SeparateErasureCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
5160 separate_erasure_compiler__SeparateErasureCompilerVisitor__calloc_array(self
, p0
, p1
); /* Direct call separate_erasure_compiler#SeparateErasureCompilerVisitor#calloc_array on <self:Object(SeparateErasureCompilerVisitor)>*/