1 #include "typing.sep.0.h"
2 /* method typing#ANotExpr#accept_typing for (self: ANotExpr, TypeVisitor) */
3 void typing__ANotExpr__accept_typing(val
* self
, val
* p0
) {
4 val
* var_v
/* var v: TypeVisitor */;
5 val
* var
/* : AExpr */;
6 val
* var1
/* : nullable MType */;
7 val
* var2
/* : nullable MType */;
10 var
= parser_nodes__ANotExpr__n_expr(self
);
13 var1
= typing__TypeVisitor__visit_expr_bool(var_v
, var
);
17 var2
= typing__TypeVisitor__type_bool(var_v
, self
);
20 { /* Inline typing#AExpr#mtype= (self,var2) on <self:ANotExpr> */
21 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var2
; /* _mtype on <self:ANotExpr> */
27 /* method typing#ANotExpr#accept_typing for (self: Object, TypeVisitor) */
28 void VIRTUAL_typing__ANotExpr__accept_typing(val
* self
, val
* p0
) {
29 typing__ANotExpr__accept_typing(self
, p0
); /* Direct call typing#ANotExpr#accept_typing on <self:Object(ANotExpr)>*/
32 /* method typing#AOrElseExpr#accept_typing for (self: AOrElseExpr, TypeVisitor) */
33 void typing__AOrElseExpr__accept_typing(val
* self
, val
* p0
) {
34 val
* var_v
/* var v: TypeVisitor */;
35 val
* var
/* : AExpr */;
36 val
* var1
/* : nullable MType */;
37 val
* var_t1
/* var t1: nullable MType */;
38 val
* var2
/* : AExpr */;
39 val
* var3
/* : nullable MType */;
40 val
* var_t2
/* var t2: nullable MType */;
41 short int var4
/* : Bool */;
42 val
* var5
/* : null */;
43 short int var6
/* : Bool */;
44 short int var7
/* : Bool */;
45 val
* var_other
/* var other: nullable Object */;
46 short int var9
/* : Bool */;
47 short int var11
/* : Bool */;
48 short int var_
/* var : Bool */;
49 val
* var12
/* : null */;
50 short int var13
/* : Bool */;
51 short int var14
/* : Bool */;
52 short int var16
/* : Bool */;
53 short int var18
/* : Bool */;
54 val
* var19
/* : MType */;
55 val
* var20
/* : Array[MType] */;
56 long var21
/* : Int */;
57 val
* var_22
/* var : Array[MType] */;
58 val
* var23
/* : nullable MType */;
59 val
* var_t
/* var t: nullable MType */;
60 val
* var24
/* : null */;
61 short int var25
/* : Bool */;
62 short int var26
/* : Bool */;
63 short int var28
/* : Bool */;
64 short int var30
/* : Bool */;
65 val
* var31
/* : MModule */;
66 val
* var33
/* : MModule */;
67 val
* var34
/* : MClassType */;
68 short int var35
/* : Bool */;
71 val
* var36
/* : MType */;
74 var
= parser_nodes__AOrElseExpr__n_expr(self
);
77 var1
= typing__TypeVisitor__visit_expr(var_v
, var
);
81 var2
= parser_nodes__AOrElseExpr__n_expr2(self
);
84 var3
= typing__TypeVisitor__visit_expr(var_v
, var2
);
89 var6
= 1; /* is null */
91 var6
= 0; /* arg is null but recv is not */
94 { /* Inline kernel#Object#== (var_t1,var5) on <var_t1:nullable MType> */
97 { /* Inline kernel#Object#is_same_instance (var_t1,var_other) on <var_t1:nullable MType(MType)> */
98 var11
= var_t1
== var_other
;
115 if (var_t2
== NULL
) {
116 var13
= 1; /* is null */
118 var13
= 0; /* arg is null but recv is not */
121 { /* Inline kernel#Object#== (var_t2,var12) on <var_t2:nullable MType> */
124 { /* Inline kernel#Object#is_same_instance (var_t2,var_other) on <var_t2:nullable MType(MType)> */
125 var18
= var_t2
== var_other
;
144 var19
= ((val
* (*)(val
*))(var_t1
->class->vft
[COLOR_model__MType__as_notnullable
]))(var_t1
) /* as_notnullable on <var_t1:nullable MType(MType)>*/;
147 var20
= NEW_array__Array(&type_array__Arraymodel__MType
);
150 array__Array__with_capacity(var20
, var21
); /* Direct call array#Array#with_capacity on <var20:Array[MType]>*/
154 array__AbstractArray__push(var_22
, var_t1
); /* Direct call array#AbstractArray#push on <var_22:Array[MType]>*/
157 array__AbstractArray__push(var_22
, var_t2
); /* Direct call array#AbstractArray#push on <var_22:Array[MType]>*/
160 var23
= typing__TypeVisitor__merge_types(var_v
, self
, var_22
);
165 var25
= 1; /* is null */
167 var25
= 0; /* arg is null but recv is not */
170 { /* Inline kernel#Object#== (var_t,var24) on <var_t:nullable MType> */
173 { /* Inline kernel#Object#is_same_instance (var_t,var_other) on <var_t:nullable MType(MType)> */
174 var30
= var_t
== var_other
;
188 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
189 var33
= var_v
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
190 if (unlikely(var33
== NULL
)) {
191 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
192 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 38);
200 var34
= model__MModule__object_type(var31
);
203 /* <var_t2:nullable MType(MType)> isa MNullableType */
204 cltype
= type_model__MNullableType
.color
;
205 idtype
= type_model__MNullableType
.id
;
206 if(cltype
>= var_t2
->type
->table_size
) {
209 var35
= var_t2
->type
->type_table
[cltype
] == idtype
;
213 var36
= model__MType__as_nullable(var_t
);
221 { /* Inline typing#AExpr#mtype= (self,var_t) on <self:AOrElseExpr> */
222 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var_t
; /* _mtype on <self:AOrElseExpr> */
228 /* method typing#AOrElseExpr#accept_typing for (self: Object, TypeVisitor) */
229 void VIRTUAL_typing__AOrElseExpr__accept_typing(val
* self
, val
* p0
) {
230 typing__AOrElseExpr__accept_typing(self
, p0
); /* Direct call typing#AOrElseExpr#accept_typing on <self:Object(AOrElseExpr)>*/
233 /* method typing#ATrueExpr#accept_typing for (self: ATrueExpr, TypeVisitor) */
234 void typing__ATrueExpr__accept_typing(val
* self
, val
* p0
) {
235 val
* var_v
/* var v: TypeVisitor */;
236 val
* var
/* : nullable MType */;
239 var
= typing__TypeVisitor__type_bool(var_v
, self
);
242 { /* Inline typing#AExpr#mtype= (self,var) on <self:ATrueExpr> */
243 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var
; /* _mtype on <self:ATrueExpr> */
249 /* method typing#ATrueExpr#accept_typing for (self: Object, TypeVisitor) */
250 void VIRTUAL_typing__ATrueExpr__accept_typing(val
* self
, val
* p0
) {
251 typing__ATrueExpr__accept_typing(self
, p0
); /* Direct call typing#ATrueExpr#accept_typing on <self:Object(ATrueExpr)>*/
254 /* method typing#AFalseExpr#accept_typing for (self: AFalseExpr, TypeVisitor) */
255 void typing__AFalseExpr__accept_typing(val
* self
, val
* p0
) {
256 val
* var_v
/* var v: TypeVisitor */;
257 val
* var
/* : nullable MType */;
260 var
= typing__TypeVisitor__type_bool(var_v
, self
);
263 { /* Inline typing#AExpr#mtype= (self,var) on <self:AFalseExpr> */
264 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var
; /* _mtype on <self:AFalseExpr> */
270 /* method typing#AFalseExpr#accept_typing for (self: Object, TypeVisitor) */
271 void VIRTUAL_typing__AFalseExpr__accept_typing(val
* self
, val
* p0
) {
272 typing__AFalseExpr__accept_typing(self
, p0
); /* Direct call typing#AFalseExpr#accept_typing on <self:Object(AFalseExpr)>*/
275 /* method typing#AIntExpr#accept_typing for (self: AIntExpr, TypeVisitor) */
276 void typing__AIntExpr__accept_typing(val
* self
, val
* p0
) {
277 val
* var_v
/* var v: TypeVisitor */;
279 val
* var
/* : String */;
280 char* var1
/* : NativeString */;
281 long var2
/* : Int */;
282 val
* var3
/* : FlatString */;
283 val
* var4
/* : nullable MClass */;
284 val
* var_mclass
/* var mclass: nullable MClass */;
285 val
* var5
/* : null */;
286 short int var6
/* : Bool */;
287 short int var7
/* : Bool */;
288 val
* var_other
/* var other: nullable Object */;
289 short int var9
/* : Bool */;
290 short int var11
/* : Bool */;
291 val
* var12
/* : MClassType */;
292 val
* var14
/* : MClassType */;
299 var3
= string__NativeString__to_s_with_length(var1
, var2
);
304 var4
= typing__TypeVisitor__get_mclass(var_v
, self
, var
);
308 if (var_mclass
== NULL
) {
309 var6
= 1; /* is null */
311 var6
= 0; /* arg is null but recv is not */
314 { /* Inline kernel#Object#== (var_mclass,var5) on <var_mclass:nullable MClass> */
317 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
318 var11
= var_mclass
== var_other
;
335 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
336 var14
= var_mclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
337 if (unlikely(var14
== NULL
)) {
338 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
339 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
347 { /* Inline typing#AExpr#mtype= (self,var12) on <self:AIntExpr> */
348 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var12
; /* _mtype on <self:AIntExpr> */
354 /* method typing#AIntExpr#accept_typing for (self: Object, TypeVisitor) */
355 void VIRTUAL_typing__AIntExpr__accept_typing(val
* self
, val
* p0
) {
356 typing__AIntExpr__accept_typing(self
, p0
); /* Direct call typing#AIntExpr#accept_typing on <self:Object(AIntExpr)>*/
359 /* method typing#AFloatExpr#accept_typing for (self: AFloatExpr, TypeVisitor) */
360 void typing__AFloatExpr__accept_typing(val
* self
, val
* p0
) {
361 val
* var_v
/* var v: TypeVisitor */;
363 val
* var
/* : String */;
364 char* var1
/* : NativeString */;
365 long var2
/* : Int */;
366 val
* var3
/* : FlatString */;
367 val
* var4
/* : nullable MClass */;
368 val
* var_mclass
/* var mclass: nullable MClass */;
369 val
* var5
/* : null */;
370 short int var6
/* : Bool */;
371 short int var7
/* : Bool */;
372 val
* var_other
/* var other: nullable Object */;
373 short int var9
/* : Bool */;
374 short int var11
/* : Bool */;
375 val
* var12
/* : MClassType */;
376 val
* var14
/* : MClassType */;
383 var3
= string__NativeString__to_s_with_length(var1
, var2
);
388 var4
= typing__TypeVisitor__get_mclass(var_v
, self
, var
);
392 if (var_mclass
== NULL
) {
393 var6
= 1; /* is null */
395 var6
= 0; /* arg is null but recv is not */
398 { /* Inline kernel#Object#== (var_mclass,var5) on <var_mclass:nullable MClass> */
401 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
402 var11
= var_mclass
== var_other
;
419 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
420 var14
= var_mclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
421 if (unlikely(var14
== NULL
)) {
422 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
423 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
431 { /* Inline typing#AExpr#mtype= (self,var12) on <self:AFloatExpr> */
432 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var12
; /* _mtype on <self:AFloatExpr> */
438 /* method typing#AFloatExpr#accept_typing for (self: Object, TypeVisitor) */
439 void VIRTUAL_typing__AFloatExpr__accept_typing(val
* self
, val
* p0
) {
440 typing__AFloatExpr__accept_typing(self
, p0
); /* Direct call typing#AFloatExpr#accept_typing on <self:Object(AFloatExpr)>*/
443 /* method typing#ACharExpr#accept_typing for (self: ACharExpr, TypeVisitor) */
444 void typing__ACharExpr__accept_typing(val
* self
, val
* p0
) {
445 val
* var_v
/* var v: TypeVisitor */;
447 val
* var
/* : String */;
448 char* var1
/* : NativeString */;
449 long var2
/* : Int */;
450 val
* var3
/* : FlatString */;
451 val
* var4
/* : nullable MClass */;
452 val
* var_mclass
/* var mclass: nullable MClass */;
453 val
* var5
/* : null */;
454 short int var6
/* : Bool */;
455 short int var7
/* : Bool */;
456 val
* var_other
/* var other: nullable Object */;
457 short int var9
/* : Bool */;
458 short int var11
/* : Bool */;
459 val
* var12
/* : MClassType */;
460 val
* var14
/* : MClassType */;
467 var3
= string__NativeString__to_s_with_length(var1
, var2
);
472 var4
= typing__TypeVisitor__get_mclass(var_v
, self
, var
);
476 if (var_mclass
== NULL
) {
477 var6
= 1; /* is null */
479 var6
= 0; /* arg is null but recv is not */
482 { /* Inline kernel#Object#== (var_mclass,var5) on <var_mclass:nullable MClass> */
485 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
486 var11
= var_mclass
== var_other
;
503 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
504 var14
= var_mclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
505 if (unlikely(var14
== NULL
)) {
506 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
507 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
515 { /* Inline typing#AExpr#mtype= (self,var12) on <self:ACharExpr> */
516 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var12
; /* _mtype on <self:ACharExpr> */
522 /* method typing#ACharExpr#accept_typing for (self: Object, TypeVisitor) */
523 void VIRTUAL_typing__ACharExpr__accept_typing(val
* self
, val
* p0
) {
524 typing__ACharExpr__accept_typing(self
, p0
); /* Direct call typing#ACharExpr#accept_typing on <self:Object(ACharExpr)>*/
527 /* method typing#AStringFormExpr#accept_typing for (self: AStringFormExpr, TypeVisitor) */
528 void typing__AStringFormExpr__accept_typing(val
* self
, val
* p0
) {
529 val
* var_v
/* var v: TypeVisitor */;
531 val
* var
/* : String */;
532 char* var1
/* : NativeString */;
533 long var2
/* : Int */;
534 val
* var3
/* : FlatString */;
535 val
* var4
/* : nullable MClass */;
536 val
* var_mclass
/* var mclass: nullable MClass */;
537 val
* var5
/* : null */;
538 short int var6
/* : Bool */;
539 short int var7
/* : Bool */;
540 val
* var_other
/* var other: nullable Object */;
541 short int var9
/* : Bool */;
542 short int var11
/* : Bool */;
543 val
* var12
/* : MClassType */;
544 val
* var14
/* : MClassType */;
551 var3
= string__NativeString__to_s_with_length(var1
, var2
);
556 var4
= typing__TypeVisitor__get_mclass(var_v
, self
, var
);
560 if (var_mclass
== NULL
) {
561 var6
= 1; /* is null */
563 var6
= 0; /* arg is null but recv is not */
566 { /* Inline kernel#Object#== (var_mclass,var5) on <var_mclass:nullable MClass> */
569 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
570 var11
= var_mclass
== var_other
;
587 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
588 var14
= var_mclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
589 if (unlikely(var14
== NULL
)) {
590 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
591 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
599 { /* Inline typing#AExpr#mtype= (self,var12) on <self:AStringFormExpr> */
600 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var12
; /* _mtype on <self:AStringFormExpr> */
606 /* method typing#AStringFormExpr#accept_typing for (self: Object, TypeVisitor) */
607 void VIRTUAL_typing__AStringFormExpr__accept_typing(val
* self
, val
* p0
) {
608 typing__AStringFormExpr__accept_typing(self
, p0
); /* Direct call typing#AStringFormExpr#accept_typing on <self:Object(AStringFormExpr)>*/
611 /* method typing#ASuperstringExpr#accept_typing for (self: ASuperstringExpr, TypeVisitor) */
612 void typing__ASuperstringExpr__accept_typing(val
* self
, val
* p0
) {
613 val
* var_v
/* var v: TypeVisitor */;
615 val
* var
/* : String */;
616 char* var1
/* : NativeString */;
617 long var2
/* : Int */;
618 val
* var3
/* : FlatString */;
619 val
* var4
/* : nullable MClass */;
620 val
* var_mclass
/* var mclass: nullable MClass */;
621 val
* var5
/* : null */;
622 short int var6
/* : Bool */;
623 short int var7
/* : Bool */;
624 val
* var_other
/* var other: nullable Object */;
625 short int var9
/* : Bool */;
626 short int var11
/* : Bool */;
627 val
* var12
/* : MClassType */;
628 val
* var14
/* : MClassType */;
629 val
* var16
/* : ANodes[AExpr] */;
630 val
* var18
/* : ANodes[AExpr] */;
631 val
* var19
/* : Iterator[ANode] */;
632 short int var20
/* : Bool */;
633 val
* var21
/* : nullable Object */;
634 val
* var_nexpr
/* var nexpr: AExpr */;
635 val
* var22
/* : MModule */;
636 val
* var24
/* : MModule */;
637 val
* var25
/* : MClassType */;
638 val
* var26
/* : nullable MType */;
645 var3
= string__NativeString__to_s_with_length(var1
, var2
);
650 var4
= typing__TypeVisitor__get_mclass(var_v
, self
, var
);
654 if (var_mclass
== NULL
) {
655 var6
= 1; /* is null */
657 var6
= 0; /* arg is null but recv is not */
660 { /* Inline kernel#Object#== (var_mclass,var5) on <var_mclass:nullable MClass> */
663 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
664 var11
= var_mclass
== var_other
;
681 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
682 var14
= var_mclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
683 if (unlikely(var14
== NULL
)) {
684 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
685 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
693 { /* Inline typing#AExpr#mtype= (self,var12) on <self:ASuperstringExpr> */
694 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var12
; /* _mtype on <self:ASuperstringExpr> */
699 { /* Inline parser_nodes#ASuperstringExpr#n_exprs (self) on <self:ASuperstringExpr> */
700 var18
= self
->attrs
[COLOR_parser_nodes__ASuperstringExpr___n_exprs
].val
; /* _n_exprs on <self:ASuperstringExpr> */
701 if (unlikely(var18
== NULL
)) {
702 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
703 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2180);
711 var19
= parser_nodes__ANodes__iterator(var16
);
715 var20
= ((short int (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var19
) /* is_ok on <var19:Iterator[ANode]>*/;
719 var21
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var19
) /* item on <var19:Iterator[ANode]>*/;
723 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
724 var24
= var_v
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
725 if (unlikely(var24
== NULL
)) {
726 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
727 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 38);
735 var25
= model__MModule__object_type(var22
);
738 var26
= typing__TypeVisitor__visit_expr_subtype(var_v
, var_nexpr
, var25
);
741 CONTINUE_label
: (void)0;
743 ((void (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var19
) /* next on <var19:Iterator[ANode]>*/;
746 BREAK_label
: (void)0;
749 /* method typing#ASuperstringExpr#accept_typing for (self: Object, TypeVisitor) */
750 void VIRTUAL_typing__ASuperstringExpr__accept_typing(val
* self
, val
* p0
) {
751 typing__ASuperstringExpr__accept_typing(self
, p0
); /* Direct call typing#ASuperstringExpr#accept_typing on <self:Object(ASuperstringExpr)>*/
754 /* method typing#AArrayExpr#with_capacity_callsite for (self: AArrayExpr): nullable CallSite */
755 val
* typing__AArrayExpr__with_capacity_callsite(val
* self
) {
756 val
* var
/* : nullable CallSite */;
757 val
* var1
/* : nullable CallSite */;
758 var1
= self
->attrs
[COLOR_typing__AArrayExpr___with_capacity_callsite
].val
; /* _with_capacity_callsite on <self:AArrayExpr> */
763 /* method typing#AArrayExpr#with_capacity_callsite for (self: Object): nullable CallSite */
764 val
* VIRTUAL_typing__AArrayExpr__with_capacity_callsite(val
* self
) {
765 val
* var
/* : nullable CallSite */;
766 val
* var1
/* : nullable CallSite */;
767 val
* var3
/* : nullable CallSite */;
768 { /* Inline typing#AArrayExpr#with_capacity_callsite (self) on <self:Object(AArrayExpr)> */
769 var3
= self
->attrs
[COLOR_typing__AArrayExpr___with_capacity_callsite
].val
; /* _with_capacity_callsite on <self:Object(AArrayExpr)> */
777 /* method typing#AArrayExpr#with_capacity_callsite= for (self: AArrayExpr, nullable CallSite) */
778 void typing__AArrayExpr__with_capacity_callsite_61d(val
* self
, val
* p0
) {
779 self
->attrs
[COLOR_typing__AArrayExpr___with_capacity_callsite
].val
= p0
; /* _with_capacity_callsite on <self:AArrayExpr> */
782 /* method typing#AArrayExpr#with_capacity_callsite= for (self: Object, nullable CallSite) */
783 void VIRTUAL_typing__AArrayExpr__with_capacity_callsite_61d(val
* self
, val
* p0
) {
784 { /* Inline typing#AArrayExpr#with_capacity_callsite= (self,p0) on <self:Object(AArrayExpr)> */
785 self
->attrs
[COLOR_typing__AArrayExpr___with_capacity_callsite
].val
= p0
; /* _with_capacity_callsite on <self:Object(AArrayExpr)> */
790 /* method typing#AArrayExpr#push_callsite for (self: AArrayExpr): nullable CallSite */
791 val
* typing__AArrayExpr__push_callsite(val
* self
) {
792 val
* var
/* : nullable CallSite */;
793 val
* var1
/* : nullable CallSite */;
794 var1
= self
->attrs
[COLOR_typing__AArrayExpr___push_callsite
].val
; /* _push_callsite on <self:AArrayExpr> */
799 /* method typing#AArrayExpr#push_callsite for (self: Object): nullable CallSite */
800 val
* VIRTUAL_typing__AArrayExpr__push_callsite(val
* self
) {
801 val
* var
/* : nullable CallSite */;
802 val
* var1
/* : nullable CallSite */;
803 val
* var3
/* : nullable CallSite */;
804 { /* Inline typing#AArrayExpr#push_callsite (self) on <self:Object(AArrayExpr)> */
805 var3
= self
->attrs
[COLOR_typing__AArrayExpr___push_callsite
].val
; /* _push_callsite on <self:Object(AArrayExpr)> */
813 /* method typing#AArrayExpr#push_callsite= for (self: AArrayExpr, nullable CallSite) */
814 void typing__AArrayExpr__push_callsite_61d(val
* self
, val
* p0
) {
815 self
->attrs
[COLOR_typing__AArrayExpr___push_callsite
].val
= p0
; /* _push_callsite on <self:AArrayExpr> */
818 /* method typing#AArrayExpr#push_callsite= for (self: Object, nullable CallSite) */
819 void VIRTUAL_typing__AArrayExpr__push_callsite_61d(val
* self
, val
* p0
) {
820 { /* Inline typing#AArrayExpr#push_callsite= (self,p0) on <self:Object(AArrayExpr)> */
821 self
->attrs
[COLOR_typing__AArrayExpr___push_callsite
].val
= p0
; /* _push_callsite on <self:Object(AArrayExpr)> */
826 /* method typing#AArrayExpr#accept_typing for (self: AArrayExpr, TypeVisitor) */
827 void typing__AArrayExpr__accept_typing(val
* self
, val
* p0
) {
828 val
* var_v
/* var v: TypeVisitor */;
829 val
* var
/* : Array[nullable MType] */;
830 val
* var_mtypes
/* var mtypes: Array[nullable MType] */;
831 val
* var1
/* : AExprs */;
832 val
* var2
/* : ANodes[AExpr] */;
833 val
* var4
/* : ANodes[AExpr] */;
834 val
* var5
/* : Iterator[ANode] */;
835 short int var6
/* : Bool */;
836 val
* var7
/* : nullable Object */;
837 val
* var_e
/* var e: AExpr */;
838 val
* var8
/* : nullable MType */;
839 val
* var_t
/* var t: nullable MType */;
840 val
* var9
/* : null */;
841 short int var10
/* : Bool */;
842 short int var11
/* : Bool */;
843 val
* var_other
/* var other: nullable Object */;
844 short int var13
/* : Bool */;
845 short int var15
/* : Bool */;
846 val
* var16
/* : nullable MType */;
847 val
* var_mtype
/* var mtype: nullable MType */;
848 val
* var17
/* : null */;
849 short int var18
/* : Bool */;
850 short int var19
/* : Bool */;
851 short int var21
/* : Bool */;
852 short int var23
/* : Bool */;
854 val
* var24
/* : String */;
855 char* var25
/* : NativeString */;
856 long var26
/* : Int */;
857 val
* var27
/* : FlatString */;
858 static val
* varonce28
;
859 val
* var29
/* : String */;
860 char* var30
/* : NativeString */;
861 long var31
/* : Int */;
862 val
* var32
/* : FlatString */;
863 val
* var33
/* : String */;
864 val
* var34
/* : Array[Object] */;
865 long var35
/* : Int */;
866 val
* var36
/* : NativeArray[Object] */;
867 val
* var37
/* : String */;
868 static val
* varonce38
;
869 val
* var39
/* : String */;
870 char* var40
/* : NativeString */;
871 long var41
/* : Int */;
872 val
* var42
/* : FlatString */;
873 val
* var43
/* : nullable MClass */;
874 val
* var_mclass
/* var mclass: nullable MClass */;
875 val
* var44
/* : null */;
876 short int var45
/* : Bool */;
877 short int var46
/* : Bool */;
878 short int var48
/* : Bool */;
879 short int var50
/* : Bool */;
880 val
* var51
/* : Array[MType] */;
881 long var52
/* : Int */;
882 val
* var_
/* var : Array[MType] */;
883 val
* var53
/* : MClassType */;
884 val
* var_array_mtype
/* var array_mtype: MClassType */;
885 static val
* varonce54
;
886 val
* var55
/* : String */;
887 char* var56
/* : NativeString */;
888 long var57
/* : Int */;
889 val
* var58
/* : FlatString */;
890 short int var59
/* : Bool */;
891 val
* var60
/* : nullable CallSite */;
892 static val
* varonce62
;
893 val
* var63
/* : String */;
894 char* var64
/* : NativeString */;
895 long var65
/* : Int */;
896 val
* var66
/* : FlatString */;
897 short int var67
/* : Bool */;
898 val
* var68
/* : nullable CallSite */;
900 var
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
902 array__Array__init(var
); /* Direct call array#Array#init on <var:Array[nullable MType]>*/
906 var1
= parser_nodes__AArrayExpr__n_exprs(self
);
909 { /* Inline parser_nodes#AExprs#n_exprs (var1) on <var1:AExprs> */
910 var4
= var1
->attrs
[COLOR_parser_nodes__AExprs___n_exprs
].val
; /* _n_exprs on <var1:AExprs> */
911 if (unlikely(var4
== NULL
)) {
912 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
913 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
921 var5
= parser_nodes__ANodes__iterator(var2
);
925 var6
= ((short int (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var5
) /* is_ok on <var5:Iterator[ANode]>*/;
929 var7
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var5
) /* item on <var5:Iterator[ANode]>*/;
933 var8
= typing__TypeVisitor__visit_expr(var_v
, var_e
);
938 var10
= 1; /* is null */
940 var10
= 0; /* arg is null but recv is not */
943 { /* Inline kernel#Object#== (var_t,var9) on <var_t:nullable MType> */
946 { /* Inline kernel#Object#is_same_instance (var_t,var_other) on <var_t:nullable MType(MType)> */
947 var15
= var_t
== var_other
;
964 array__Array__add(var_mtypes
, var_t
); /* Direct call array#Array#add on <var_mtypes:Array[nullable MType]>*/
966 CONTINUE_label
: (void)0;
968 ((void (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var5
) /* next on <var5:Iterator[ANode]>*/;
971 BREAK_label
: (void)0;
973 var16
= typing__TypeVisitor__merge_types(var_v
, self
, var_mtypes
);
977 if (var_mtype
== NULL
) {
978 var18
= 1; /* is null */
980 var18
= 0; /* arg is null but recv is not */
983 { /* Inline kernel#Object#== (var_mtype,var17) on <var_mtype:nullable MType> */
986 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
987 var23
= var_mtype
== var_other
;
1003 var25
= "Type Error: ambiguous array type ";
1005 var27
= string__NativeString__to_s_with_length(var25
, var26
);
1014 var32
= string__NativeString__to_s_with_length(var30
, var31
);
1019 var33
= string__Collection__join(var_mtypes
, var29
);
1021 var34
= NEW_array__Array(&type_array__Arraykernel__Object
);
1022 { /* var34 = array_instance Array[Object] */
1024 var36
= NEW_array__NativeArray(var35
, &type_array__NativeArraykernel__Object
);
1025 ((struct instance_array__NativeArray
*)var36
)->values
[0] = (val
*) var24
;
1026 ((struct instance_array__NativeArray
*)var36
)->values
[1] = (val
*) var33
;
1028 ((void (*)(val
*, val
*, long))(var34
->class->vft
[COLOR_array__Array__with_native
]))(var34
, var36
, var35
) /* with_native on <var34:Array[Object]>*/;
1032 var37
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_string__Object__to_s
]))(var34
) /* to_s on <var34:Array[Object]>*/;
1035 typing__TypeVisitor__error(var_v
, self
, var37
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
1045 var42
= string__NativeString__to_s_with_length(var40
, var41
);
1050 var43
= typing__TypeVisitor__get_mclass(var_v
, self
, var39
);
1054 if (var_mclass
== NULL
) {
1055 var45
= 1; /* is null */
1057 var45
= 0; /* arg is null but recv is not */
1060 { /* Inline kernel#Object#== (var_mclass,var44) on <var_mclass:nullable MClass> */
1063 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
1064 var50
= var_mclass
== var_other
;
1067 RET_LABEL49
:(void)0;
1072 RET_LABEL47
:(void)0;
1080 var51
= NEW_array__Array(&type_array__Arraymodel__MType
);
1083 array__Array__with_capacity(var51
, var52
); /* Direct call array#Array#with_capacity on <var51:Array[MType]>*/
1087 array__AbstractArray__push(var_
, var_mtype
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
1090 var53
= model__MClass__get_mtype(var_mclass
, var_
);
1092 var_array_mtype
= var53
;
1096 var56
= "with_capacity";
1098 var58
= string__NativeString__to_s_with_length(var56
, var57
);
1104 var60
= typing__TypeVisitor__get_method(var_v
, self
, var_array_mtype
, var55
, var59
);
1107 { /* Inline typing#AArrayExpr#with_capacity_callsite= (self,var60) on <self:AArrayExpr> */
1108 self
->attrs
[COLOR_typing__AArrayExpr___with_capacity_callsite
].val
= var60
; /* _with_capacity_callsite on <self:AArrayExpr> */
1109 RET_LABEL61
:(void)0;
1117 var66
= string__NativeString__to_s_with_length(var64
, var65
);
1123 var68
= typing__TypeVisitor__get_method(var_v
, self
, var_array_mtype
, var63
, var67
);
1126 { /* Inline typing#AArrayExpr#push_callsite= (self,var68) on <self:AArrayExpr> */
1127 self
->attrs
[COLOR_typing__AArrayExpr___push_callsite
].val
= var68
; /* _push_callsite on <self:AArrayExpr> */
1128 RET_LABEL69
:(void)0;
1132 { /* Inline typing#AExpr#mtype= (self,var_array_mtype) on <self:AArrayExpr> */
1133 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var_array_mtype
; /* _mtype on <self:AArrayExpr> */
1134 RET_LABEL70
:(void)0;
1139 /* method typing#AArrayExpr#accept_typing for (self: Object, TypeVisitor) */
1140 void VIRTUAL_typing__AArrayExpr__accept_typing(val
* self
, val
* p0
) {
1141 typing__AArrayExpr__accept_typing(self
, p0
); /* Direct call typing#AArrayExpr#accept_typing on <self:Object(AArrayExpr)>*/
1144 /* method typing#ARangeExpr#init_callsite for (self: ARangeExpr): nullable CallSite */
1145 val
* typing__ARangeExpr__init_callsite(val
* self
) {
1146 val
* var
/* : nullable CallSite */;
1147 val
* var1
/* : nullable CallSite */;
1148 var1
= self
->attrs
[COLOR_typing__ARangeExpr___init_callsite
].val
; /* _init_callsite on <self:ARangeExpr> */
1153 /* method typing#ARangeExpr#init_callsite for (self: Object): nullable CallSite */
1154 val
* VIRTUAL_typing__ARangeExpr__init_callsite(val
* self
) {
1155 val
* var
/* : nullable CallSite */;
1156 val
* var1
/* : nullable CallSite */;
1157 val
* var3
/* : nullable CallSite */;
1158 { /* Inline typing#ARangeExpr#init_callsite (self) on <self:Object(ARangeExpr)> */
1159 var3
= self
->attrs
[COLOR_typing__ARangeExpr___init_callsite
].val
; /* _init_callsite on <self:Object(ARangeExpr)> */
1167 /* method typing#ARangeExpr#init_callsite= for (self: ARangeExpr, nullable CallSite) */
1168 void typing__ARangeExpr__init_callsite_61d(val
* self
, val
* p0
) {
1169 self
->attrs
[COLOR_typing__ARangeExpr___init_callsite
].val
= p0
; /* _init_callsite on <self:ARangeExpr> */
1172 /* method typing#ARangeExpr#init_callsite= for (self: Object, nullable CallSite) */
1173 void VIRTUAL_typing__ARangeExpr__init_callsite_61d(val
* self
, val
* p0
) {
1174 { /* Inline typing#ARangeExpr#init_callsite= (self,p0) on <self:Object(ARangeExpr)> */
1175 self
->attrs
[COLOR_typing__ARangeExpr___init_callsite
].val
= p0
; /* _init_callsite on <self:Object(ARangeExpr)> */
1180 /* method typing#ARangeExpr#accept_typing for (self: ARangeExpr, TypeVisitor) */
1181 void typing__ARangeExpr__accept_typing(val
* self
, val
* p0
) {
1182 val
* var_v
/* var v: TypeVisitor */;
1183 static val
* varonce
;
1184 val
* var
/* : String */;
1185 char* var1
/* : NativeString */;
1186 long var2
/* : Int */;
1187 val
* var3
/* : FlatString */;
1188 val
* var4
/* : nullable MClass */;
1189 val
* var_discrete_class
/* var discrete_class: nullable MClass */;
1190 val
* var5
/* : null */;
1191 short int var6
/* : Bool */;
1192 short int var7
/* : Bool */;
1193 val
* var_other
/* var other: nullable Object */;
1194 short int var9
/* : Bool */;
1195 short int var11
/* : Bool */;
1196 val
* var12
/* : MClassDef */;
1197 val
* var13
/* : MClassType */;
1198 val
* var15
/* : MClassType */;
1199 val
* var_discrete_type
/* var discrete_type: MClassType */;
1200 val
* var16
/* : AExpr */;
1201 val
* var17
/* : nullable MType */;
1202 val
* var_t1
/* var t1: nullable MType */;
1203 val
* var18
/* : AExpr */;
1204 val
* var19
/* : nullable MType */;
1205 val
* var_t2
/* var t2: nullable MType */;
1206 short int var20
/* : Bool */;
1207 val
* var21
/* : null */;
1208 short int var22
/* : Bool */;
1209 short int var23
/* : Bool */;
1210 short int var25
/* : Bool */;
1211 short int var27
/* : Bool */;
1212 short int var_
/* var : Bool */;
1213 val
* var28
/* : null */;
1214 short int var29
/* : Bool */;
1215 short int var30
/* : Bool */;
1216 short int var32
/* : Bool */;
1217 short int var34
/* : Bool */;
1218 static val
* varonce35
;
1219 val
* var36
/* : String */;
1220 char* var37
/* : NativeString */;
1221 long var38
/* : Int */;
1222 val
* var39
/* : FlatString */;
1223 val
* var40
/* : nullable MClass */;
1224 val
* var_mclass
/* var mclass: nullable MClass */;
1225 val
* var41
/* : null */;
1226 short int var42
/* : Bool */;
1227 short int var43
/* : Bool */;
1228 short int var45
/* : Bool */;
1229 short int var47
/* : Bool */;
1230 short int var48
/* : Bool */;
1231 val
* var49
/* : Array[MType] */;
1232 long var50
/* : Int */;
1233 val
* var_51
/* var : Array[MType] */;
1234 val
* var52
/* : MClassType */;
1235 val
* var_mtype
/* var mtype: nullable Object */;
1236 short int var53
/* : Bool */;
1237 val
* var54
/* : Array[MType] */;
1238 long var55
/* : Int */;
1239 val
* var_56
/* var : Array[MType] */;
1240 val
* var57
/* : MClassType */;
1241 static val
* varonce58
;
1242 val
* var59
/* : String */;
1243 char* var60
/* : NativeString */;
1244 long var61
/* : Int */;
1245 val
* var62
/* : FlatString */;
1246 static val
* varonce63
;
1247 val
* var64
/* : String */;
1248 char* var65
/* : NativeString */;
1249 long var66
/* : Int */;
1250 val
* var67
/* : FlatString */;
1251 val
* var68
/* : Array[Object] */;
1252 long var69
/* : Int */;
1253 val
* var70
/* : NativeArray[Object] */;
1254 val
* var71
/* : String */;
1255 short int var73
/* : Bool */;
1258 static val
* varonce74
;
1259 val
* var75
/* : String */;
1260 char* var76
/* : NativeString */;
1261 long var77
/* : Int */;
1262 val
* var78
/* : FlatString */;
1263 short int var79
/* : Bool */;
1264 val
* var80
/* : nullable CallSite */;
1265 val
* var_callsite
/* var callsite: nullable Object */;
1266 short int var81
/* : Bool */;
1269 static val
* varonce84
;
1270 val
* var85
/* : String */;
1271 char* var86
/* : NativeString */;
1272 long var87
/* : Int */;
1273 val
* var88
/* : FlatString */;
1274 short int var89
/* : Bool */;
1275 val
* var90
/* : nullable CallSite */;
1282 var3
= string__NativeString__to_s_with_length(var1
, var2
);
1287 var4
= typing__TypeVisitor__get_mclass(var_v
, self
, var
);
1289 var_discrete_class
= var4
;
1291 if (var_discrete_class
== NULL
) {
1292 var6
= 1; /* is null */
1294 var6
= 0; /* arg is null but recv is not */
1297 { /* Inline kernel#Object#== (var_discrete_class,var5) on <var_discrete_class:nullable MClass> */
1300 { /* Inline kernel#Object#is_same_instance (var_discrete_class,var_other) on <var_discrete_class:nullable MClass(MClass)> */
1301 var11
= var_discrete_class
== var_other
;
1304 RET_LABEL10
:(void)0;
1318 var12
= model__MClass__intro(var_discrete_class
);
1321 { /* Inline model#MClassDef#bound_mtype (var12) on <var12:MClassDef> */
1322 var15
= var12
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var12:MClassDef> */
1323 if (unlikely(var15
== NULL
)) {
1324 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1325 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
1329 RET_LABEL14
:(void)0;
1332 var_discrete_type
= var13
;
1334 var16
= parser_nodes__ARangeExpr__n_expr(self
);
1337 var17
= typing__TypeVisitor__visit_expr_subtype(var_v
, var16
, var_discrete_type
);
1341 var18
= parser_nodes__ARangeExpr__n_expr2(self
);
1344 var19
= typing__TypeVisitor__visit_expr_subtype(var_v
, var18
, var_discrete_type
);
1348 if (var_t1
== NULL
) {
1349 var22
= 1; /* is null */
1351 var22
= 0; /* arg is null but recv is not */
1354 { /* Inline kernel#Object#== (var_t1,var21) on <var_t1:nullable MType> */
1357 { /* Inline kernel#Object#is_same_instance (var_t1,var_other) on <var_t1:nullable MType(MType)> */
1358 var27
= var_t1
== var_other
;
1361 RET_LABEL26
:(void)0;
1366 RET_LABEL24
:(void)0;
1375 if (var_t2
== NULL
) {
1376 var29
= 1; /* is null */
1378 var29
= 0; /* arg is null but recv is not */
1381 { /* Inline kernel#Object#== (var_t2,var28) on <var_t2:nullable MType> */
1384 { /* Inline kernel#Object#is_same_instance (var_t2,var_other) on <var_t2:nullable MType(MType)> */
1385 var34
= var_t2
== var_other
;
1388 RET_LABEL33
:(void)0;
1393 RET_LABEL31
:(void)0;
1408 var39
= string__NativeString__to_s_with_length(var37
, var38
);
1413 var40
= typing__TypeVisitor__get_mclass(var_v
, self
, var36
);
1417 if (var_mclass
== NULL
) {
1418 var42
= 1; /* is null */
1420 var42
= 0; /* arg is null but recv is not */
1423 { /* Inline kernel#Object#== (var_mclass,var41) on <var_mclass:nullable MClass> */
1426 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
1427 var47
= var_mclass
== var_other
;
1430 RET_LABEL46
:(void)0;
1435 RET_LABEL44
:(void)0;
1444 var48
= typing__TypeVisitor__is_subtype(var_v
, var_t1
, var_t2
);
1447 var49
= NEW_array__Array(&type_array__Arraymodel__MType
);
1450 array__Array__with_capacity(var49
, var50
); /* Direct call array#Array#with_capacity on <var49:Array[MType]>*/
1454 array__AbstractArray__push(var_51
, var_t2
); /* Direct call array#AbstractArray#push on <var_51:Array[MType]>*/
1457 var52
= model__MClass__get_mtype(var_mclass
, var_51
);
1462 var53
= typing__TypeVisitor__is_subtype(var_v
, var_t2
, var_t1
);
1465 var54
= NEW_array__Array(&type_array__Arraymodel__MType
);
1468 array__Array__with_capacity(var54
, var55
); /* Direct call array#Array#with_capacity on <var54:Array[MType]>*/
1472 array__AbstractArray__push(var_56
, var_t1
); /* Direct call array#AbstractArray#push on <var_56:Array[MType]>*/
1475 var57
= model__MClass__get_mtype(var_mclass
, var_56
);
1482 var60
= "Type Error: Cannot create range: ";
1484 var62
= string__NativeString__to_s_with_length(var60
, var61
);
1493 var67
= string__NativeString__to_s_with_length(var65
, var66
);
1497 var68
= NEW_array__Array(&type_array__Arraykernel__Object
);
1498 { /* var68 = array_instance Array[Object] */
1500 var70
= NEW_array__NativeArray(var69
, &type_array__NativeArraykernel__Object
);
1501 ((struct instance_array__NativeArray
*)var70
)->values
[0] = (val
*) var59
;
1502 ((struct instance_array__NativeArray
*)var70
)->values
[1] = (val
*) var_t1
;
1503 ((struct instance_array__NativeArray
*)var70
)->values
[2] = (val
*) var64
;
1504 ((struct instance_array__NativeArray
*)var70
)->values
[3] = (val
*) var_t2
;
1506 ((void (*)(val
*, val
*, long))(var68
->class->vft
[COLOR_array__Array__with_native
]))(var68
, var70
, var69
) /* with_native on <var68:Array[Object]>*/;
1510 var71
= ((val
* (*)(val
*))(var68
->class->vft
[COLOR_string__Object__to_s
]))(var68
) /* to_s on <var68:Array[Object]>*/;
1513 typing__TypeVisitor__error(var_v
, self
, var71
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
1519 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:ARangeExpr> */
1520 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var_mtype
; /* _mtype on <self:ARangeExpr> */
1521 RET_LABEL72
:(void)0;
1524 /* <self:ARangeExpr> isa ACrangeExpr */
1525 cltype
= type_parser_nodes__ACrangeExpr
.color
;
1526 idtype
= type_parser_nodes__ACrangeExpr
.id
;
1527 if(cltype
>= self
->type
->table_size
) {
1530 var73
= self
->type
->type_table
[cltype
] == idtype
;
1538 var78
= string__NativeString__to_s_with_length(var76
, var77
);
1544 var80
= typing__TypeVisitor__get_method(var_v
, self
, var_mtype
, var75
, var79
);
1546 var_callsite
= var80
;
1548 /* <self:ARangeExpr> isa AOrangeExpr */
1549 cltype82
= type_parser_nodes__AOrangeExpr
.color
;
1550 idtype83
= type_parser_nodes__AOrangeExpr
.id
;
1551 if(cltype82
>= self
->type
->table_size
) {
1554 var81
= self
->type
->type_table
[cltype82
] == idtype83
;
1560 var86
= "without_last";
1562 var88
= string__NativeString__to_s_with_length(var86
, var87
);
1568 var90
= typing__TypeVisitor__get_method(var_v
, self
, var_mtype
, var85
, var89
);
1570 var_callsite
= var90
;
1572 PRINT_ERROR("Runtime error: %s", "Aborted");
1573 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1149);
1578 { /* Inline typing#ARangeExpr#init_callsite= (self,var_callsite) on <self:ARangeExpr> */
1579 self
->attrs
[COLOR_typing__ARangeExpr___init_callsite
].val
= var_callsite
; /* _init_callsite on <self:ARangeExpr> */
1580 RET_LABEL91
:(void)0;
1585 /* method typing#ARangeExpr#accept_typing for (self: Object, TypeVisitor) */
1586 void VIRTUAL_typing__ARangeExpr__accept_typing(val
* self
, val
* p0
) {
1587 typing__ARangeExpr__accept_typing(self
, p0
); /* Direct call typing#ARangeExpr#accept_typing on <self:Object(ARangeExpr)>*/
1590 /* method typing#ANullExpr#accept_typing for (self: ANullExpr, TypeVisitor) */
1591 void typing__ANullExpr__accept_typing(val
* self
, val
* p0
) {
1592 val
* var_v
/* var v: TypeVisitor */;
1593 val
* var
/* : MModule */;
1594 val
* var2
/* : MModule */;
1595 val
* var3
/* : Model */;
1596 val
* var5
/* : Model */;
1597 val
* var6
/* : MNullType */;
1598 val
* var8
/* : MNullType */;
1601 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
1602 var2
= var_v
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
1603 if (unlikely(var2
== NULL
)) {
1604 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1605 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 38);
1613 { /* Inline mmodule#MModule#model (var) on <var:MModule> */
1614 var5
= var
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var:MModule> */
1615 if (unlikely(var5
== NULL
)) {
1616 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1617 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74);
1625 { /* Inline model#Model#null_type (var3) on <var3:Model> */
1626 var8
= var3
->attrs
[COLOR_model__Model___null_type
].val
; /* _null_type on <var3:Model> */
1627 if (unlikely(var8
== NULL
)) {
1628 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _null_type");
1629 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 104);
1637 { /* Inline typing#AExpr#mtype= (self,var6) on <self:ANullExpr> */
1638 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var6
; /* _mtype on <self:ANullExpr> */
1644 /* method typing#ANullExpr#accept_typing for (self: Object, TypeVisitor) */
1645 void VIRTUAL_typing__ANullExpr__accept_typing(val
* self
, val
* p0
) {
1646 typing__ANullExpr__accept_typing(self
, p0
); /* Direct call typing#ANullExpr#accept_typing on <self:Object(ANullExpr)>*/
1649 /* method typing#AIsaExpr#cast_type for (self: AIsaExpr): nullable MType */
1650 val
* typing__AIsaExpr__cast_type(val
* self
) {
1651 val
* var
/* : nullable MType */;
1652 val
* var1
/* : nullable MType */;
1653 var1
= self
->attrs
[COLOR_typing__AIsaExpr___cast_type
].val
; /* _cast_type on <self:AIsaExpr> */
1658 /* method typing#AIsaExpr#cast_type for (self: Object): nullable MType */
1659 val
* VIRTUAL_typing__AIsaExpr__cast_type(val
* self
) {
1660 val
* var
/* : nullable MType */;
1661 val
* var1
/* : nullable MType */;
1662 val
* var3
/* : nullable MType */;
1663 { /* Inline typing#AIsaExpr#cast_type (self) on <self:Object(AIsaExpr)> */
1664 var3
= self
->attrs
[COLOR_typing__AIsaExpr___cast_type
].val
; /* _cast_type on <self:Object(AIsaExpr)> */
1672 /* method typing#AIsaExpr#cast_type= for (self: AIsaExpr, nullable MType) */
1673 void typing__AIsaExpr__cast_type_61d(val
* self
, val
* p0
) {
1674 self
->attrs
[COLOR_typing__AIsaExpr___cast_type
].val
= p0
; /* _cast_type on <self:AIsaExpr> */
1677 /* method typing#AIsaExpr#cast_type= for (self: Object, nullable MType) */
1678 void VIRTUAL_typing__AIsaExpr__cast_type_61d(val
* self
, val
* p0
) {
1679 { /* Inline typing#AIsaExpr#cast_type= (self,p0) on <self:Object(AIsaExpr)> */
1680 self
->attrs
[COLOR_typing__AIsaExpr___cast_type
].val
= p0
; /* _cast_type on <self:Object(AIsaExpr)> */
1685 /* method typing#AIsaExpr#accept_typing for (self: AIsaExpr, TypeVisitor) */
1686 void typing__AIsaExpr__accept_typing(val
* self
, val
* p0
) {
1687 val
* var_v
/* var v: TypeVisitor */;
1688 val
* var
/* : AExpr */;
1689 val
* var1
/* : AType */;
1690 val
* var2
/* : nullable MType */;
1691 val
* var_mtype
/* var mtype: nullable MType */;
1692 val
* var4
/* : AExpr */;
1693 val
* var5
/* : nullable Variable */;
1694 val
* var_variable
/* var variable: nullable Variable */;
1695 val
* var6
/* : null */;
1696 short int var7
/* : Bool */;
1697 short int var8
/* : Bool */;
1698 val
* var_other
/* var other: nullable Object */;
1699 short int var10
/* : Bool */;
1700 short int var11
/* : Bool */;
1701 short int var12
/* : Bool */;
1702 val
* var13
/* : AExpr */;
1703 val
* var14
/* : nullable MType */;
1704 val
* var_orig
/* var orig: nullable MType */;
1705 val
* var15
/* : String */;
1706 val
* var16
/* : null */;
1707 short int var17
/* : Bool */;
1708 short int var18
/* : Bool */;
1709 short int var20
/* : Bool */;
1710 short int var21
/* : Bool */;
1711 short int var22
/* : Bool */;
1712 val
* var23
/* : String */;
1713 static val
* varonce
;
1714 val
* var24
/* : String */;
1715 char* var25
/* : NativeString */;
1716 long var26
/* : Int */;
1717 val
* var27
/* : FlatString */;
1718 val
* var_from
/* var from: String */;
1719 val
* var28
/* : String */;
1720 val
* var29
/* : null */;
1721 short int var30
/* : Bool */;
1722 short int var31
/* : Bool */;
1723 short int var33
/* : Bool */;
1724 short int var34
/* : Bool */;
1725 short int var35
/* : Bool */;
1726 val
* var36
/* : String */;
1727 static val
* varonce37
;
1728 val
* var38
/* : String */;
1729 char* var39
/* : NativeString */;
1730 long var40
/* : Int */;
1731 val
* var41
/* : FlatString */;
1732 val
* var_to
/* var to: String */;
1733 val
* var42
/* : nullable FlowContext */;
1734 val
* var44
/* : nullable FlowContext */;
1735 val
* var45
/* : FlowContext */;
1736 val
* var47
/* : FlowContext */;
1737 val
* var48
/* : nullable MType */;
1740 var
= parser_nodes__AIsaExpr__n_expr(self
);
1743 var1
= parser_nodes__AIsaExpr__n_type(self
);
1746 var2
= typing__TypeVisitor__visit_expr_cast(var_v
, self
, var
, var1
);
1750 { /* Inline typing#AIsaExpr#cast_type= (self,var_mtype) on <self:AIsaExpr> */
1751 self
->attrs
[COLOR_typing__AIsaExpr___cast_type
].val
= var_mtype
; /* _cast_type on <self:AIsaExpr> */
1756 var4
= parser_nodes__AIsaExpr__n_expr(self
);
1759 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var4
) /* its_variable on <var4:AExpr>*/;
1761 var_variable
= var5
;
1763 if (var_variable
== NULL
) {
1764 var7
= 0; /* is null */
1766 var7
= 1; /* arg is null and recv is not */
1769 { /* Inline kernel#Object#!= (var_variable,var6) on <var_variable:nullable Variable> */
1772 var11
= ((short int (*)(val
*, val
*))(var_variable
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_variable
, var_other
) /* == on <var_variable:nullable Variable(Variable)>*/;
1784 var13
= parser_nodes__AIsaExpr__n_expr(self
);
1787 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_typing__AExpr__mtype
]))(var13
) /* mtype on <var13:AExpr>*/;
1791 if (var_orig
== NULL
) {
1792 var17
= 0; /* is null */
1794 var17
= 1; /* arg is null and recv is not */
1797 { /* Inline kernel#Object#!= (var_orig,var16) on <var_orig:nullable MType> */
1800 var21
= ((short int (*)(val
*, val
*))(var_orig
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_orig
, var_other
) /* == on <var_orig:nullable MType(MType)>*/;
1806 RET_LABEL19
:(void)0;
1812 var23
= ((val
* (*)(val
*))(var_orig
->class->vft
[COLOR_string__Object__to_s
]))(var_orig
) /* to_s on <var_orig:nullable MType(MType)>*/;
1821 var27
= string__NativeString__to_s_with_length(var25
, var26
);
1829 if (var_mtype
== NULL
) {
1830 var30
= 0; /* is null */
1832 var30
= 1; /* arg is null and recv is not */
1835 { /* Inline kernel#Object#!= (var_mtype,var29) on <var_mtype:nullable MType> */
1838 var34
= ((short int (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mtype
, var_other
) /* == on <var_mtype:nullable MType(MType)>*/;
1844 RET_LABEL32
:(void)0;
1850 var36
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_string__Object__to_s
]))(var_mtype
) /* to_s on <var_mtype:nullable MType(MType)>*/;
1859 var41
= string__NativeString__to_s_with_length(var39
, var40
);
1867 { /* Inline flow#AExpr#after_flow_context (self) on <self:AIsaExpr> */
1868 var44
= self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AIsaExpr> */
1870 RET_LABEL43
:(void)0;
1873 if (var42
== NULL
) {
1874 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1875 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1177);
1878 { /* Inline flow#FlowContext#when_true (var42) on <var42:nullable FlowContext> */
1879 if (unlikely(var42
== NULL
)) {
1880 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1881 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
1884 var47
= var42
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var42:nullable FlowContext> */
1885 if (unlikely(var47
== NULL
)) {
1886 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
1887 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
1891 RET_LABEL46
:(void)0;
1895 typing__FlowContext__set_var(var45
, var_variable
, var_mtype
); /* Direct call typing#FlowContext#set_var on <var45:FlowContext>*/
1900 var48
= typing__TypeVisitor__type_bool(var_v
, self
);
1903 { /* Inline typing#AExpr#mtype= (self,var48) on <self:AIsaExpr> */
1904 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var48
; /* _mtype on <self:AIsaExpr> */
1905 RET_LABEL49
:(void)0;
1910 /* method typing#AIsaExpr#accept_typing for (self: Object, TypeVisitor) */
1911 void VIRTUAL_typing__AIsaExpr__accept_typing(val
* self
, val
* p0
) {
1912 typing__AIsaExpr__accept_typing(self
, p0
); /* Direct call typing#AIsaExpr#accept_typing on <self:Object(AIsaExpr)>*/
1915 /* method typing#AAsCastExpr#accept_typing for (self: AAsCastExpr, TypeVisitor) */
1916 void typing__AAsCastExpr__accept_typing(val
* self
, val
* p0
) {
1917 val
* var_v
/* var v: TypeVisitor */;
1918 val
* var
/* : AExpr */;
1919 val
* var1
/* : AType */;
1920 val
* var2
/* : nullable MType */;
1923 var
= parser_nodes__AAsCastExpr__n_expr(self
);
1926 var1
= parser_nodes__AAsCastExpr__n_type(self
);
1929 var2
= typing__TypeVisitor__visit_expr_cast(var_v
, self
, var
, var1
);
1932 { /* Inline typing#AExpr#mtype= (self,var2) on <self:AAsCastExpr> */
1933 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var2
; /* _mtype on <self:AAsCastExpr> */
1939 /* method typing#AAsCastExpr#accept_typing for (self: Object, TypeVisitor) */
1940 void VIRTUAL_typing__AAsCastExpr__accept_typing(val
* self
, val
* p0
) {
1941 typing__AAsCastExpr__accept_typing(self
, p0
); /* Direct call typing#AAsCastExpr#accept_typing on <self:Object(AAsCastExpr)>*/
1944 /* method typing#AAsNotnullExpr#accept_typing for (self: AAsNotnullExpr, TypeVisitor) */
1945 void typing__AAsNotnullExpr__accept_typing(val
* self
, val
* p0
) {
1946 val
* var_v
/* var v: TypeVisitor */;
1947 val
* var
/* : AExpr */;
1948 val
* var1
/* : nullable MType */;
1949 val
* var_mtype
/* var mtype: nullable MType */;
1950 val
* var2
/* : null */;
1951 short int var3
/* : Bool */;
1952 short int var4
/* : Bool */;
1953 val
* var_other
/* var other: nullable Object */;
1954 short int var6
/* : Bool */;
1955 short int var8
/* : Bool */;
1956 short int var9
/* : Bool */;
1959 static val
* varonce
;
1960 val
* var10
/* : String */;
1961 char* var11
/* : NativeString */;
1962 long var12
/* : Int */;
1963 val
* var13
/* : FlatString */;
1964 short int var14
/* : Bool */;
1967 val
* var17
/* : MType */;
1968 val
* var19
/* : MType */;
1969 short int var22
/* : Bool */;
1972 val
* var25
/* : ModelBuilder */;
1973 val
* var27
/* : ModelBuilder */;
1974 static val
* varonce28
;
1975 val
* var29
/* : String */;
1976 char* var30
/* : NativeString */;
1977 long var31
/* : Int */;
1978 val
* var32
/* : FlatString */;
1979 static val
* varonce33
;
1980 val
* var34
/* : String */;
1981 char* var35
/* : NativeString */;
1982 long var36
/* : Int */;
1983 val
* var37
/* : FlatString */;
1984 val
* var38
/* : Array[Object] */;
1985 long var39
/* : Int */;
1986 val
* var40
/* : NativeArray[Object] */;
1987 val
* var41
/* : String */;
1988 short int var42
/* : Bool */;
1989 val
* var43
/* : MType */;
1990 val
* var_u
/* var u: MType */;
1991 short int var44
/* : Bool */;
1994 short int var47
/* : Bool */;
1995 val
* var48
/* : ModelBuilder */;
1996 val
* var50
/* : ModelBuilder */;
1997 static val
* varonce51
;
1998 val
* var52
/* : String */;
1999 char* var53
/* : NativeString */;
2000 long var54
/* : Int */;
2001 val
* var55
/* : FlatString */;
2002 static val
* varonce56
;
2003 val
* var57
/* : String */;
2004 char* var58
/* : NativeString */;
2005 long var59
/* : Int */;
2006 val
* var60
/* : FlatString */;
2007 static val
* varonce61
;
2008 val
* var62
/* : String */;
2009 char* var63
/* : NativeString */;
2010 long var64
/* : Int */;
2011 val
* var65
/* : FlatString */;
2012 val
* var66
/* : Array[Object] */;
2013 long var67
/* : Int */;
2014 val
* var68
/* : NativeArray[Object] */;
2015 val
* var69
/* : String */;
2018 var
= parser_nodes__AAsNotnullExpr__n_expr(self
);
2021 var1
= typing__TypeVisitor__visit_expr(var_v
, var
);
2025 if (var_mtype
== NULL
) {
2026 var3
= 1; /* is null */
2028 var3
= 0; /* arg is null but recv is not */
2031 { /* Inline kernel#Object#== (var_mtype,var2) on <var_mtype:nullable MType> */
2034 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
2035 var8
= var_mtype
== var_other
;
2051 /* <var_mtype:nullable MType(MType)> isa MNullType */
2052 cltype
= type_model__MNullType
.color
;
2053 idtype
= type_model__MNullType
.id
;
2054 if(cltype
>= var_mtype
->type
->table_size
) {
2057 var9
= var_mtype
->type
->type_table
[cltype
] == idtype
;
2063 var11
= "Type error: as(not null) on null";
2065 var13
= string__NativeString__to_s_with_length(var11
, var12
);
2070 typing__TypeVisitor__error(var_v
, self
, var10
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
2075 /* <var_mtype:nullable MType(MType)> isa MNullableType */
2076 cltype15
= type_model__MNullableType
.color
;
2077 idtype16
= type_model__MNullableType
.id
;
2078 if(cltype15
>= var_mtype
->type
->table_size
) {
2081 var14
= var_mtype
->type
->type_table
[cltype15
] == idtype16
;
2085 { /* Inline model#MNullableType#mtype (var_mtype) on <var_mtype:nullable MType(MNullableType)> */
2086 var19
= var_mtype
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_mtype:nullable MType(MNullableType)> */
2087 if (unlikely(var19
== NULL
)) {
2088 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2089 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
2093 RET_LABEL18
:(void)0;
2097 { /* Inline typing#AExpr#mtype= (self,var17) on <self:AAsNotnullExpr> */
2098 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var17
; /* _mtype on <self:AAsNotnullExpr> */
2099 RET_LABEL20
:(void)0;
2106 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AAsNotnullExpr> */
2107 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var_mtype
; /* _mtype on <self:AAsNotnullExpr> */
2108 RET_LABEL21
:(void)0;
2111 /* <var_mtype:nullable MType(MType)> isa MClassType */
2112 cltype23
= type_model__MClassType
.color
;
2113 idtype24
= type_model__MClassType
.id
;
2114 if(cltype23
>= var_mtype
->type
->table_size
) {
2117 var22
= var_mtype
->type
->type_table
[cltype23
] == idtype24
;
2121 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
2122 var27
= var_v
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
2123 if (unlikely(var27
== NULL
)) {
2124 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2125 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 36);
2129 RET_LABEL26
:(void)0;
2135 var30
= "Warning: expression is already not null, since it is a `";
2137 var32
= string__NativeString__to_s_with_length(var30
, var31
);
2146 var37
= string__NativeString__to_s_with_length(var35
, var36
);
2150 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
2151 { /* var38 = array_instance Array[Object] */
2153 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
2154 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var29
;
2155 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var_mtype
;
2156 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var34
;
2158 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
2162 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
2165 modelbuilder__ModelBuilder__warning(var25
, self
, var41
); /* Direct call modelbuilder#ModelBuilder#warning on <var25:ModelBuilder>*/
2171 var42
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:nullable MType(MType)>*/;
2173 if (unlikely(!var42
)) {
2174 PRINT_ERROR("Runtime error: %s", "Assert failed");
2175 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1211);
2179 var43
= typing__TypeVisitor__anchor_to(var_v
, var_mtype
);
2182 /* <var_u:MType> isa MNullableType */
2183 cltype45
= type_model__MNullableType
.color
;
2184 idtype46
= type_model__MNullableType
.id
;
2185 if(cltype45
>= var_u
->type
->table_size
) {
2188 var44
= var_u
->type
->type_table
[cltype45
] == idtype46
;
2193 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
2194 var50
= var_v
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
2195 if (unlikely(var50
== NULL
)) {
2196 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2197 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 36);
2201 RET_LABEL49
:(void)0;
2207 var53
= "Warning: expression is already not null, since it is a `";
2209 var55
= string__NativeString__to_s_with_length(var53
, var54
);
2218 var60
= string__NativeString__to_s_with_length(var58
, var59
);
2227 var65
= string__NativeString__to_s_with_length(var63
, var64
);
2231 var66
= NEW_array__Array(&type_array__Arraykernel__Object
);
2232 { /* var66 = array_instance Array[Object] */
2234 var68
= NEW_array__NativeArray(var67
, &type_array__NativeArraykernel__Object
);
2235 ((struct instance_array__NativeArray
*)var68
)->values
[0] = (val
*) var52
;
2236 ((struct instance_array__NativeArray
*)var68
)->values
[1] = (val
*) var_mtype
;
2237 ((struct instance_array__NativeArray
*)var68
)->values
[2] = (val
*) var57
;
2238 ((struct instance_array__NativeArray
*)var68
)->values
[3] = (val
*) var_u
;
2239 ((struct instance_array__NativeArray
*)var68
)->values
[4] = (val
*) var62
;
2241 ((void (*)(val
*, val
*, long))(var66
->class->vft
[COLOR_array__Array__with_native
]))(var66
, var68
, var67
) /* with_native on <var66:Array[Object]>*/;
2245 var69
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_string__Object__to_s
]))(var66
) /* to_s on <var66:Array[Object]>*/;
2248 modelbuilder__ModelBuilder__warning(var48
, self
, var69
); /* Direct call modelbuilder#ModelBuilder#warning on <var48:ModelBuilder>*/
2255 /* method typing#AAsNotnullExpr#accept_typing for (self: Object, TypeVisitor) */
2256 void VIRTUAL_typing__AAsNotnullExpr__accept_typing(val
* self
, val
* p0
) {
2257 typing__AAsNotnullExpr__accept_typing(self
, p0
); /* Direct call typing#AAsNotnullExpr#accept_typing on <self:Object(AAsNotnullExpr)>*/
2260 /* method typing#AProxyExpr#accept_typing for (self: AProxyExpr, TypeVisitor) */
2261 void typing__AProxyExpr__accept_typing(val
* self
, val
* p0
) {
2262 val
* var_v
/* var v: TypeVisitor */;
2263 val
* var
/* : AExpr */;
2264 val
* var1
/* : nullable MType */;
2267 var
= parser_nodes__AProxyExpr__n_expr(self
);
2270 var1
= typing__TypeVisitor__visit_expr(var_v
, var
);
2273 { /* Inline typing#AExpr#mtype= (self,var1) on <self:AProxyExpr> */
2274 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var1
; /* _mtype on <self:AProxyExpr> */
2280 /* method typing#AProxyExpr#accept_typing for (self: Object, TypeVisitor) */
2281 void VIRTUAL_typing__AProxyExpr__accept_typing(val
* self
, val
* p0
) {
2282 typing__AProxyExpr__accept_typing(self
, p0
); /* Direct call typing#AProxyExpr#accept_typing on <self:Object(AProxyExpr)>*/
2285 /* method typing#ASelfExpr#its_variable for (self: ASelfExpr): nullable Variable */
2286 val
* typing__ASelfExpr__its_variable(val
* self
) {
2287 val
* var
/* : nullable Variable */;
2288 val
* var1
/* : nullable Variable */;
2289 var1
= self
->attrs
[COLOR_typing__ASelfExpr___its_variable
].val
; /* _its_variable on <self:ASelfExpr> */
2294 /* method typing#ASelfExpr#its_variable for (self: Object): nullable Variable */
2295 val
* VIRTUAL_typing__ASelfExpr__its_variable(val
* self
) {
2296 val
* var
/* : nullable Variable */;
2297 val
* var1
/* : nullable Variable */;
2298 val
* var3
/* : nullable Variable */;
2299 { /* Inline typing#ASelfExpr#its_variable (self) on <self:Object(ASelfExpr)> */
2300 var3
= self
->attrs
[COLOR_typing__ASelfExpr___its_variable
].val
; /* _its_variable on <self:Object(ASelfExpr)> */
2308 /* method typing#ASelfExpr#its_variable= for (self: ASelfExpr, nullable Variable) */
2309 void typing__ASelfExpr__its_variable_61d(val
* self
, val
* p0
) {
2310 self
->attrs
[COLOR_typing__ASelfExpr___its_variable
].val
= p0
; /* _its_variable on <self:ASelfExpr> */
2313 /* method typing#ASelfExpr#its_variable= for (self: Object, nullable Variable) */
2314 void VIRTUAL_typing__ASelfExpr__its_variable_61d(val
* self
, val
* p0
) {
2315 { /* Inline typing#ASelfExpr#its_variable= (self,p0) on <self:Object(ASelfExpr)> */
2316 self
->attrs
[COLOR_typing__ASelfExpr___its_variable
].val
= p0
; /* _its_variable on <self:Object(ASelfExpr)> */
2321 /* method typing#ASelfExpr#accept_typing for (self: ASelfExpr, TypeVisitor) */
2322 void typing__ASelfExpr__accept_typing(val
* self
, val
* p0
) {
2323 val
* var_v
/* var v: TypeVisitor */;
2324 short int var
/* : Bool */;
2325 short int var1
/* : Bool */;
2326 short int var3
/* : Bool */;
2327 short int var_
/* var : Bool */;
2328 short int var4
/* : Bool */;
2331 short int var5
/* : Bool */;
2332 static val
* varonce
;
2333 val
* var6
/* : String */;
2334 char* var7
/* : NativeString */;
2335 long var8
/* : Int */;
2336 val
* var9
/* : FlatString */;
2337 val
* var10
/* : Variable */;
2338 val
* var12
/* : Variable */;
2339 val
* var_variable
/* var variable: Variable */;
2340 val
* var14
/* : nullable MType */;
2343 { /* Inline typing#TypeVisitor#is_toplevel_context (var_v) on <var_v:TypeVisitor> */
2344 var3
= var_v
->attrs
[COLOR_typing__TypeVisitor___is_toplevel_context
].s
; /* _is_toplevel_context on <var_v:TypeVisitor> */
2351 /* <self:ASelfExpr> isa AImplicitSelfExpr */
2352 cltype
= type_parser_nodes__AImplicitSelfExpr
.color
;
2353 idtype
= type_parser_nodes__AImplicitSelfExpr
.id
;
2354 if(cltype
>= self
->type
->table_size
) {
2357 var4
= self
->type
->type_table
[cltype
] == idtype
;
2368 var7
= "Error: self cannot be used in top-level method.";
2370 var9
= string__NativeString__to_s_with_length(var7
, var8
);
2375 typing__TypeVisitor__error(var_v
, self
, var6
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
2380 { /* Inline typing#TypeVisitor#selfvariable (var_v) on <var_v:TypeVisitor> */
2381 var12
= var_v
->attrs
[COLOR_typing__TypeVisitor___selfvariable
].val
; /* _selfvariable on <var_v:TypeVisitor> */
2382 if (unlikely(var12
== NULL
)) {
2383 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
2384 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 52);
2388 RET_LABEL11
:(void)0;
2391 var_variable
= var10
;
2393 { /* Inline typing#ASelfExpr#its_variable= (self,var_variable) on <self:ASelfExpr> */
2394 self
->attrs
[COLOR_typing__ASelfExpr___its_variable
].val
= var_variable
; /* _its_variable on <self:ASelfExpr> */
2395 RET_LABEL13
:(void)0;
2399 var14
= typing__TypeVisitor__get_variable(var_v
, self
, var_variable
);
2402 { /* Inline typing#AExpr#mtype= (self,var14) on <self:ASelfExpr> */
2403 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var14
; /* _mtype on <self:ASelfExpr> */
2404 RET_LABEL15
:(void)0;
2409 /* method typing#ASelfExpr#accept_typing for (self: Object, TypeVisitor) */
2410 void VIRTUAL_typing__ASelfExpr__accept_typing(val
* self
, val
* p0
) {
2411 typing__ASelfExpr__accept_typing(self
, p0
); /* Direct call typing#ASelfExpr#accept_typing on <self:Object(ASelfExpr)>*/
2414 /* method typing#ASendExpr#callsite for (self: ASendExpr): nullable CallSite */
2415 val
* typing__ASendExpr__callsite(val
* self
) {
2416 val
* var
/* : nullable CallSite */;
2417 val
* var1
/* : nullable CallSite */;
2418 var1
= self
->attrs
[COLOR_typing__ASendExpr___callsite
].val
; /* _callsite on <self:ASendExpr> */
2423 /* method typing#ASendExpr#callsite for (self: Object): nullable CallSite */
2424 val
* VIRTUAL_typing__ASendExpr__callsite(val
* self
) {
2425 val
* var
/* : nullable CallSite */;
2426 val
* var1
/* : nullable CallSite */;
2427 val
* var3
/* : nullable CallSite */;
2428 { /* Inline typing#ASendExpr#callsite (self) on <self:Object(ASendExpr)> */
2429 var3
= self
->attrs
[COLOR_typing__ASendExpr___callsite
].val
; /* _callsite on <self:Object(ASendExpr)> */
2437 /* method typing#ASendExpr#callsite= for (self: ASendExpr, nullable CallSite) */
2438 void typing__ASendExpr__callsite_61d(val
* self
, val
* p0
) {
2439 self
->attrs
[COLOR_typing__ASendExpr___callsite
].val
= p0
; /* _callsite on <self:ASendExpr> */
2442 /* method typing#ASendExpr#callsite= for (self: Object, nullable CallSite) */
2443 void VIRTUAL_typing__ASendExpr__callsite_61d(val
* self
, val
* p0
) {
2444 { /* Inline typing#ASendExpr#callsite= (self,p0) on <self:Object(ASendExpr)> */
2445 self
->attrs
[COLOR_typing__ASendExpr___callsite
].val
= p0
; /* _callsite on <self:Object(ASendExpr)> */
2450 /* method typing#ASendExpr#accept_typing for (self: ASendExpr, TypeVisitor) */
2451 void typing__ASendExpr__accept_typing(val
* self
, val
* p0
) {
2452 val
* var_v
/* var v: TypeVisitor */;
2453 val
* var
/* : AExpr */;
2454 val
* var1
/* : nullable MType */;
2455 val
* var_recvtype
/* var recvtype: nullable MType */;
2456 val
* var2
/* : String */;
2457 val
* var_name
/* var name: String */;
2458 val
* var3
/* : null */;
2459 short int var4
/* : Bool */;
2460 short int var5
/* : Bool */;
2461 val
* var_other
/* var other: nullable Object */;
2462 short int var7
/* : Bool */;
2463 short int var9
/* : Bool */;
2464 short int var10
/* : Bool */;
2467 static val
* varonce
;
2468 val
* var11
/* : String */;
2469 char* var12
/* : NativeString */;
2470 long var13
/* : Int */;
2471 val
* var14
/* : FlatString */;
2472 static val
* varonce15
;
2473 val
* var16
/* : String */;
2474 char* var17
/* : NativeString */;
2475 long var18
/* : Int */;
2476 val
* var19
/* : FlatString */;
2477 val
* var20
/* : Array[Object] */;
2478 long var21
/* : Int */;
2479 val
* var22
/* : NativeArray[Object] */;
2480 val
* var23
/* : String */;
2481 val
* var24
/* : AExpr */;
2482 short int var25
/* : Bool */;
2485 val
* var28
/* : nullable CallSite */;
2486 val
* var_callsite
/* var callsite: nullable CallSite */;
2487 val
* var29
/* : null */;
2488 short int var30
/* : Bool */;
2489 short int var31
/* : Bool */;
2490 short int var33
/* : Bool */;
2491 short int var35
/* : Bool */;
2492 val
* var37
/* : MSignature */;
2493 val
* var39
/* : MSignature */;
2494 val
* var_msignature
/* var msignature: MSignature */;
2495 val
* var40
/* : Array[AExpr] */;
2496 val
* var_args
/* var args: Array[AExpr] */;
2497 short int var41
/* : Bool */;
2498 val
* var42
/* : MMethod */;
2499 val
* var44
/* : MMethod */;
2500 short int var45
/* : Bool */;
2501 short int var47
/* : Bool */;
2502 val
* var48
/* : nullable MPropDef */;
2503 val
* var50
/* : nullable MPropDef */;
2504 val
* var_vmpropdef
/* var vmpropdef: nullable MPropDef */;
2505 short int var51
/* : Bool */;
2506 short int var52
/* : Bool */;
2509 short int var_
/* var : Bool */;
2510 val
* var55
/* : MProperty */;
2511 val
* var57
/* : MProperty */;
2512 short int var58
/* : Bool */;
2513 short int var60
/* : Bool */;
2514 short int var61
/* : Bool */;
2515 static val
* varonce62
;
2516 val
* var63
/* : String */;
2517 char* var64
/* : NativeString */;
2518 long var65
/* : Int */;
2519 val
* var66
/* : FlatString */;
2520 val
* var67
/* : nullable MType */;
2521 val
* var69
/* : nullable MType */;
2522 val
* var_ret
/* var ret: nullable MType */;
2523 val
* var70
/* : null */;
2524 short int var71
/* : Bool */;
2525 short int var72
/* : Bool */;
2526 val
* var_other74
/* var other: nullable Object */;
2527 short int var75
/* : Bool */;
2528 short int var76
/* : Bool */;
2529 short int var77
/* : Bool */;
2530 short int var79
/* : Bool */;
2533 var
= parser_nodes__ASendExpr__n_expr(self
);
2536 var1
= typing__TypeVisitor__visit_expr(var_v
, var
);
2538 var_recvtype
= var1
;
2540 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__property_name
]))(self
) /* property_name on <self:ASendExpr>*/;
2544 if (var_recvtype
== NULL
) {
2545 var4
= 1; /* is null */
2547 var4
= 0; /* arg is null but recv is not */
2550 { /* Inline kernel#Object#== (var_recvtype,var3) on <var_recvtype:nullable MType> */
2553 { /* Inline kernel#Object#is_same_instance (var_recvtype,var_other) on <var_recvtype:nullable MType(MType)> */
2554 var9
= var_recvtype
== var_other
;
2570 /* <var_recvtype:nullable MType(MType)> isa MNullType */
2571 cltype
= type_model__MNullType
.color
;
2572 idtype
= type_model__MNullType
.id
;
2573 if(cltype
>= var_recvtype
->type
->table_size
) {
2576 var10
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
2582 var12
= "Error: Method \'";
2584 var14
= string__NativeString__to_s_with_length(var12
, var13
);
2591 var17
= "\' call on \'null\'.";
2593 var19
= string__NativeString__to_s_with_length(var17
, var18
);
2597 var20
= NEW_array__Array(&type_array__Arraykernel__Object
);
2598 { /* var20 = array_instance Array[Object] */
2600 var22
= NEW_array__NativeArray(var21
, &type_array__NativeArraykernel__Object
);
2601 ((struct instance_array__NativeArray
*)var22
)->values
[0] = (val
*) var11
;
2602 ((struct instance_array__NativeArray
*)var22
)->values
[1] = (val
*) var_name
;
2603 ((struct instance_array__NativeArray
*)var22
)->values
[2] = (val
*) var16
;
2605 ((void (*)(val
*, val
*, long))(var20
->class->vft
[COLOR_array__Array__with_native
]))(var20
, var22
, var21
) /* with_native on <var20:Array[Object]>*/;
2609 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_string__Object__to_s
]))(var20
) /* to_s on <var20:Array[Object]>*/;
2612 typing__TypeVisitor__error(var_v
, self
, var23
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
2618 var24
= parser_nodes__ASendExpr__n_expr(self
);
2620 /* <var24:AExpr> isa ASelfExpr */
2621 cltype26
= type_parser_nodes__ASelfExpr
.color
;
2622 idtype27
= type_parser_nodes__ASelfExpr
.id
;
2623 if(cltype26
>= var24
->type
->table_size
) {
2626 var25
= var24
->type
->type_table
[cltype26
] == idtype27
;
2629 var28
= typing__TypeVisitor__get_method(var_v
, self
, var_recvtype
, var_name
, var25
);
2631 var_callsite
= var28
;
2633 if (var_callsite
== NULL
) {
2634 var30
= 1; /* is null */
2636 var30
= 0; /* arg is null but recv is not */
2639 { /* Inline kernel#Object#== (var_callsite,var29) on <var_callsite:nullable CallSite> */
2642 { /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
2643 var35
= var_callsite
== var_other
;
2646 RET_LABEL34
:(void)0;
2651 RET_LABEL32
:(void)0;
2660 { /* Inline typing#ASendExpr#callsite= (self,var_callsite) on <self:ASendExpr> */
2661 self
->attrs
[COLOR_typing__ASendExpr___callsite
].val
= var_callsite
; /* _callsite on <self:ASendExpr> */
2662 RET_LABEL36
:(void)0;
2666 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
2667 var39
= var_callsite
->attrs
[COLOR_typing__CallSite___msignature
].val
; /* _msignature on <var_callsite:nullable CallSite(CallSite)> */
2668 if (unlikely(var39
== NULL
)) {
2669 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
2670 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 429);
2674 RET_LABEL38
:(void)0;
2677 var_msignature
= var37
;
2679 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__compute_raw_arguments
]))(self
) /* compute_raw_arguments on <self:ASendExpr>*/;
2683 var41
= typing__CallSite__check_signature(var_callsite
, var_v
, var_args
);
2687 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
2688 var44
= var_callsite
->attrs
[COLOR_typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
2689 if (unlikely(var44
== NULL
)) {
2690 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2691 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 422);
2695 RET_LABEL43
:(void)0;
2699 { /* Inline model#MMethod#is_init (var42) on <var42:MMethod> */
2700 var47
= var42
->attrs
[COLOR_model__MMethod___is_init
].s
; /* _is_init on <var42:MMethod> */
2702 RET_LABEL46
:(void)0;
2707 { /* Inline typing#TypeVisitor#mpropdef (var_v) on <var_v:TypeVisitor> */
2708 var50
= var_v
->attrs
[COLOR_typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <var_v:TypeVisitor> */
2710 RET_LABEL49
:(void)0;
2713 var_vmpropdef
= var48
;
2714 /* <var_vmpropdef:nullable MPropDef> isa MMethodDef */
2715 cltype53
= type_model__MMethodDef
.color
;
2716 idtype54
= type_model__MMethodDef
.id
;
2717 if(var_vmpropdef
== NULL
) {
2720 if(cltype53
>= var_vmpropdef
->type
->table_size
) {
2723 var52
= var_vmpropdef
->type
->type_table
[cltype53
] == idtype54
;
2729 { /* Inline model#MPropDef#mproperty (var_vmpropdef) on <var_vmpropdef:nullable MPropDef(MMethodDef)> */
2730 var57
= var_vmpropdef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_vmpropdef:nullable MPropDef(MMethodDef)> */
2731 if (unlikely(var57
== NULL
)) {
2732 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2733 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
2737 RET_LABEL56
:(void)0;
2741 { /* Inline model#MMethod#is_init (var55) on <var55:MProperty(MMethod)> */
2742 var60
= var55
->attrs
[COLOR_model__MMethod___is_init
].s
; /* _is_init on <var55:MProperty(MMethod)> */
2744 RET_LABEL59
:(void)0;
2756 var64
= "Can call a init only in another init";
2758 var66
= string__NativeString__to_s_with_length(var64
, var65
);
2763 typing__TypeVisitor__error(var_v
, self
, var63
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
2770 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:MSignature> */
2771 var69
= var_msignature
->attrs
[COLOR_model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:MSignature> */
2773 RET_LABEL68
:(void)0;
2778 if (var_ret
== NULL
) {
2779 var71
= 0; /* is null */
2781 var71
= 1; /* arg is null and recv is not */
2784 { /* Inline kernel#Object#!= (var_ret,var70) on <var_ret:nullable MType> */
2785 var_other74
= var70
;
2787 var76
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other74
) /* == on <var_ret:nullable MType(MType)>*/;
2793 RET_LABEL73
:(void)0;
2799 { /* Inline typing#AExpr#mtype= (self,var_ret) on <self:ASendExpr> */
2800 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var_ret
; /* _mtype on <self:ASendExpr> */
2801 RET_LABEL78
:(void)0;
2807 { /* Inline typing#AExpr#is_typed= (self,var79) on <self:ASendExpr> */
2808 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var79
; /* _is_typed on <self:ASendExpr> */
2809 RET_LABEL80
:(void)0;
2815 /* method typing#ASendExpr#accept_typing for (self: Object, TypeVisitor) */
2816 void VIRTUAL_typing__ASendExpr__accept_typing(val
* self
, val
* p0
) {
2817 typing__ASendExpr__accept_typing(self
, p0
); /* Direct call typing#ASendExpr#accept_typing on <self:Object(ASendExpr)>*/
2820 /* method typing#ASendExpr#raw_arguments for (self: ASendExpr): Array[AExpr] */
2821 val
* typing__ASendExpr__raw_arguments(val
* self
) {
2822 val
* var
/* : Array[AExpr] */;
2823 val
* var1
/* : Array[AExpr] */;
2825 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__compute_raw_arguments
]))(self
) /* compute_raw_arguments on <self:ASendExpr>*/;
2832 /* method typing#ASendExpr#raw_arguments for (self: Object): Array[AExpr] */
2833 val
* VIRTUAL_typing__ASendExpr__raw_arguments(val
* self
) {
2834 val
* var
/* : Array[AExpr] */;
2835 val
* var1
/* : Array[AExpr] */;
2836 var1
= typing__ASendExpr__raw_arguments(self
);
2841 /* method typing#ABinopExpr#compute_raw_arguments for (self: ABinopExpr): Array[AExpr] */
2842 val
* typing__ABinopExpr__compute_raw_arguments(val
* self
) {
2843 val
* var
/* : Array[AExpr] */;
2844 val
* var1
/* : Array[AExpr] */;
2845 long var2
/* : Int */;
2846 val
* var_
/* var : Array[AExpr] */;
2847 val
* var3
/* : AExpr */;
2848 var1
= NEW_array__Array(&type_array__Arrayparser_nodes__AExpr
);
2851 array__Array__with_capacity(var1
, var2
); /* Direct call array#Array#with_capacity on <var1:Array[AExpr]>*/
2855 var3
= parser_nodes__ABinopExpr__n_expr2(self
);
2858 array__AbstractArray__push(var_
, var3
); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
2865 /* method typing#ABinopExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
2866 val
* VIRTUAL_typing__ABinopExpr__compute_raw_arguments(val
* self
) {
2867 val
* var
/* : Array[AExpr] */;
2868 val
* var1
/* : Array[AExpr] */;
2869 var1
= typing__ABinopExpr__compute_raw_arguments(self
);
2874 /* method typing#AEqExpr#property_name for (self: AEqExpr): String */
2875 val
* typing__AEqExpr__property_name(val
* self
) {
2876 val
* var
/* : String */;
2877 static val
* varonce
;
2878 val
* var1
/* : String */;
2879 char* var2
/* : NativeString */;
2880 long var3
/* : Int */;
2881 val
* var4
/* : FlatString */;
2887 var4
= string__NativeString__to_s_with_length(var2
, var3
);
2896 /* method typing#AEqExpr#property_name for (self: Object): String */
2897 val
* VIRTUAL_typing__AEqExpr__property_name(val
* self
) {
2898 val
* var
/* : String */;
2899 val
* var1
/* : String */;
2900 var1
= typing__AEqExpr__property_name(self
);
2905 /* method typing#AEqExpr#accept_typing for (self: AEqExpr, TypeVisitor) */
2906 void typing__AEqExpr__accept_typing(val
* self
, val
* p0
) {
2907 val
* var_v
/* var v: TypeVisitor */;
2908 val
* var
/* : AExpr */;
2909 val
* var1
/* : nullable Variable */;
2910 val
* var_variable
/* var variable: nullable Variable */;
2911 val
* var2
/* : null */;
2912 short int var3
/* : Bool */;
2913 short int var4
/* : Bool */;
2914 val
* var_other
/* var other: nullable Object */;
2915 short int var6
/* : Bool */;
2916 short int var8
/* : Bool */;
2917 val
* var9
/* : AExpr */;
2918 val
* var10
/* : nullable MType */;
2919 val
* var_mtype
/* var mtype: nullable MType */;
2920 short int var11
/* : Bool */;
2923 short int var12
/* : Bool */;
2924 val
* var13
/* : nullable MType */;
2925 val
* var_vartype
/* var vartype: nullable MType */;
2926 short int var14
/* : Bool */;
2929 short int var17
/* : Bool */;
2930 val
* var18
/* : nullable FlowContext */;
2931 val
* var20
/* : nullable FlowContext */;
2932 val
* var21
/* : FlowContext */;
2933 val
* var23
/* : FlowContext */;
2934 val
* var24
/* : nullable FlowContext */;
2935 val
* var26
/* : nullable FlowContext */;
2936 val
* var27
/* : FlowContext */;
2937 val
* var29
/* : FlowContext */;
2938 val
* var30
/* : MType */;
2939 val
* var32
/* : MType */;
2942 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AEqExpr__accept_typing
]))(self
, p0
) /* accept_typing on <self:AEqExpr>*/;
2945 var
= parser_nodes__ASendExpr__n_expr(self
);
2948 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var
) /* its_variable on <var:AExpr>*/;
2950 var_variable
= var1
;
2952 if (var_variable
== NULL
) {
2953 var3
= 1; /* is null */
2955 var3
= 0; /* arg is null but recv is not */
2958 { /* Inline kernel#Object#== (var_variable,var2) on <var_variable:nullable Variable> */
2961 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
2962 var8
= var_variable
== var_other
;
2979 var9
= parser_nodes__ABinopExpr__n_expr2(self
);
2982 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_typing__AExpr__mtype
]))(var9
) /* mtype on <var9:AExpr>*/;
2985 /* <var_mtype:nullable MType> isa MNullType */
2986 cltype
= type_model__MNullType
.color
;
2987 idtype
= type_model__MNullType
.id
;
2988 if(var_mtype
== NULL
) {
2991 if(cltype
>= var_mtype
->type
->table_size
) {
2994 var11
= var_mtype
->type
->type_table
[cltype
] == idtype
;
3003 var13
= typing__TypeVisitor__get_variable(var_v
, self
, var_variable
);
3005 var_vartype
= var13
;
3006 /* <var_vartype:nullable MType> isa MNullableType */
3007 cltype15
= type_model__MNullableType
.color
;
3008 idtype16
= type_model__MNullableType
.id
;
3009 if(var_vartype
== NULL
) {
3012 if(cltype15
>= var_vartype
->type
->table_size
) {
3015 var14
= var_vartype
->type
->type_table
[cltype15
] == idtype16
;
3024 { /* Inline flow#AExpr#after_flow_context (self) on <self:AEqExpr> */
3025 var20
= self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AEqExpr> */
3027 RET_LABEL19
:(void)0;
3030 if (var18
== NULL
) {
3031 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3032 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1306);
3035 { /* Inline flow#FlowContext#when_true (var18) on <var18:nullable FlowContext> */
3036 if (unlikely(var18
== NULL
)) {
3037 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3038 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
3041 var23
= var18
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var18:nullable FlowContext> */
3042 if (unlikely(var23
== NULL
)) {
3043 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3044 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
3048 RET_LABEL22
:(void)0;
3052 typing__FlowContext__set_var(var21
, var_variable
, var_mtype
); /* Direct call typing#FlowContext#set_var on <var21:FlowContext>*/
3055 { /* Inline flow#AExpr#after_flow_context (self) on <self:AEqExpr> */
3056 var26
= self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AEqExpr> */
3058 RET_LABEL25
:(void)0;
3061 if (var24
== NULL
) {
3062 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3063 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1307);
3066 { /* Inline flow#FlowContext#when_false (var24) on <var24:nullable FlowContext> */
3067 if (unlikely(var24
== NULL
)) {
3068 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3069 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
3072 var29
= var24
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var24:nullable FlowContext> */
3073 if (unlikely(var29
== NULL
)) {
3074 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3075 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
3079 RET_LABEL28
:(void)0;
3083 { /* Inline model#MNullableType#mtype (var_vartype) on <var_vartype:nullable MType(MNullableType)> */
3084 var32
= var_vartype
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_vartype:nullable MType(MNullableType)> */
3085 if (unlikely(var32
== NULL
)) {
3086 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3087 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
3091 RET_LABEL31
:(void)0;
3095 typing__FlowContext__set_var(var27
, var_variable
, var30
); /* Direct call typing#FlowContext#set_var on <var27:FlowContext>*/
3099 /* method typing#AEqExpr#accept_typing for (self: Object, TypeVisitor) */
3100 void VIRTUAL_typing__AEqExpr__accept_typing(val
* self
, val
* p0
) {
3101 typing__AEqExpr__accept_typing(self
, p0
); /* Direct call typing#AEqExpr#accept_typing on <self:Object(AEqExpr)>*/
3104 /* method typing#ANeExpr#property_name for (self: ANeExpr): String */
3105 val
* typing__ANeExpr__property_name(val
* self
) {
3106 val
* var
/* : String */;
3107 static val
* varonce
;
3108 val
* var1
/* : String */;
3109 char* var2
/* : NativeString */;
3110 long var3
/* : Int */;
3111 val
* var4
/* : FlatString */;
3117 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3126 /* method typing#ANeExpr#property_name for (self: Object): String */
3127 val
* VIRTUAL_typing__ANeExpr__property_name(val
* self
) {
3128 val
* var
/* : String */;
3129 val
* var1
/* : String */;
3130 var1
= typing__ANeExpr__property_name(self
);
3135 /* method typing#ANeExpr#accept_typing for (self: ANeExpr, TypeVisitor) */
3136 void typing__ANeExpr__accept_typing(val
* self
, val
* p0
) {
3137 val
* var_v
/* var v: TypeVisitor */;
3138 val
* var
/* : AExpr */;
3139 val
* var1
/* : nullable Variable */;
3140 val
* var_variable
/* var variable: nullable Variable */;
3141 val
* var2
/* : null */;
3142 short int var3
/* : Bool */;
3143 short int var4
/* : Bool */;
3144 val
* var_other
/* var other: nullable Object */;
3145 short int var6
/* : Bool */;
3146 short int var8
/* : Bool */;
3147 val
* var9
/* : AExpr */;
3148 val
* var10
/* : nullable MType */;
3149 val
* var_mtype
/* var mtype: nullable MType */;
3150 short int var11
/* : Bool */;
3153 short int var12
/* : Bool */;
3154 val
* var13
/* : nullable MType */;
3155 val
* var_vartype
/* var vartype: nullable MType */;
3156 short int var14
/* : Bool */;
3159 short int var17
/* : Bool */;
3160 val
* var18
/* : nullable FlowContext */;
3161 val
* var20
/* : nullable FlowContext */;
3162 val
* var21
/* : FlowContext */;
3163 val
* var23
/* : FlowContext */;
3164 val
* var24
/* : nullable FlowContext */;
3165 val
* var26
/* : nullable FlowContext */;
3166 val
* var27
/* : FlowContext */;
3167 val
* var29
/* : FlowContext */;
3168 val
* var30
/* : MType */;
3169 val
* var32
/* : MType */;
3172 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ANeExpr__accept_typing
]))(self
, p0
) /* accept_typing on <self:ANeExpr>*/;
3175 var
= parser_nodes__ASendExpr__n_expr(self
);
3178 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var
) /* its_variable on <var:AExpr>*/;
3180 var_variable
= var1
;
3182 if (var_variable
== NULL
) {
3183 var3
= 1; /* is null */
3185 var3
= 0; /* arg is null but recv is not */
3188 { /* Inline kernel#Object#== (var_variable,var2) on <var_variable:nullable Variable> */
3191 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
3192 var8
= var_variable
== var_other
;
3209 var9
= parser_nodes__ABinopExpr__n_expr2(self
);
3212 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_typing__AExpr__mtype
]))(var9
) /* mtype on <var9:AExpr>*/;
3215 /* <var_mtype:nullable MType> isa MNullType */
3216 cltype
= type_model__MNullType
.color
;
3217 idtype
= type_model__MNullType
.id
;
3218 if(var_mtype
== NULL
) {
3221 if(cltype
>= var_mtype
->type
->table_size
) {
3224 var11
= var_mtype
->type
->type_table
[cltype
] == idtype
;
3233 var13
= typing__TypeVisitor__get_variable(var_v
, self
, var_variable
);
3235 var_vartype
= var13
;
3236 /* <var_vartype:nullable MType> isa MNullableType */
3237 cltype15
= type_model__MNullableType
.color
;
3238 idtype16
= type_model__MNullableType
.id
;
3239 if(var_vartype
== NULL
) {
3242 if(cltype15
>= var_vartype
->type
->table_size
) {
3245 var14
= var_vartype
->type
->type_table
[cltype15
] == idtype16
;
3254 { /* Inline flow#AExpr#after_flow_context (self) on <self:ANeExpr> */
3255 var20
= self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:ANeExpr> */
3257 RET_LABEL19
:(void)0;
3260 if (var18
== NULL
) {
3261 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3262 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1323);
3265 { /* Inline flow#FlowContext#when_false (var18) on <var18:nullable FlowContext> */
3266 if (unlikely(var18
== NULL
)) {
3267 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3268 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
3271 var23
= var18
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var18:nullable FlowContext> */
3272 if (unlikely(var23
== NULL
)) {
3273 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3274 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
3278 RET_LABEL22
:(void)0;
3282 typing__FlowContext__set_var(var21
, var_variable
, var_mtype
); /* Direct call typing#FlowContext#set_var on <var21:FlowContext>*/
3285 { /* Inline flow#AExpr#after_flow_context (self) on <self:ANeExpr> */
3286 var26
= self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:ANeExpr> */
3288 RET_LABEL25
:(void)0;
3291 if (var24
== NULL
) {
3292 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3293 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1324);
3296 { /* Inline flow#FlowContext#when_true (var24) on <var24:nullable FlowContext> */
3297 if (unlikely(var24
== NULL
)) {
3298 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3299 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
3302 var29
= var24
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var24:nullable FlowContext> */
3303 if (unlikely(var29
== NULL
)) {
3304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3305 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
3309 RET_LABEL28
:(void)0;
3313 { /* Inline model#MNullableType#mtype (var_vartype) on <var_vartype:nullable MType(MNullableType)> */
3314 var32
= var_vartype
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_vartype:nullable MType(MNullableType)> */
3315 if (unlikely(var32
== NULL
)) {
3316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3317 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
3321 RET_LABEL31
:(void)0;
3325 typing__FlowContext__set_var(var27
, var_variable
, var30
); /* Direct call typing#FlowContext#set_var on <var27:FlowContext>*/
3329 /* method typing#ANeExpr#accept_typing for (self: Object, TypeVisitor) */
3330 void VIRTUAL_typing__ANeExpr__accept_typing(val
* self
, val
* p0
) {
3331 typing__ANeExpr__accept_typing(self
, p0
); /* Direct call typing#ANeExpr#accept_typing on <self:Object(ANeExpr)>*/
3334 /* method typing#ALtExpr#property_name for (self: ALtExpr): String */
3335 val
* typing__ALtExpr__property_name(val
* self
) {
3336 val
* var
/* : String */;
3337 static val
* varonce
;
3338 val
* var1
/* : String */;
3339 char* var2
/* : NativeString */;
3340 long var3
/* : Int */;
3341 val
* var4
/* : FlatString */;
3347 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3356 /* method typing#ALtExpr#property_name for (self: Object): String */
3357 val
* VIRTUAL_typing__ALtExpr__property_name(val
* self
) {
3358 val
* var
/* : String */;
3359 val
* var1
/* : String */;
3360 var1
= typing__ALtExpr__property_name(self
);
3365 /* method typing#ALeExpr#property_name for (self: ALeExpr): String */
3366 val
* typing__ALeExpr__property_name(val
* self
) {
3367 val
* var
/* : String */;
3368 static val
* varonce
;
3369 val
* var1
/* : String */;
3370 char* var2
/* : NativeString */;
3371 long var3
/* : Int */;
3372 val
* var4
/* : FlatString */;
3378 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3387 /* method typing#ALeExpr#property_name for (self: Object): String */
3388 val
* VIRTUAL_typing__ALeExpr__property_name(val
* self
) {
3389 val
* var
/* : String */;
3390 val
* var1
/* : String */;
3391 var1
= typing__ALeExpr__property_name(self
);
3396 /* method typing#ALlExpr#property_name for (self: ALlExpr): String */
3397 val
* typing__ALlExpr__property_name(val
* self
) {
3398 val
* var
/* : String */;
3399 static val
* varonce
;
3400 val
* var1
/* : String */;
3401 char* var2
/* : NativeString */;
3402 long var3
/* : Int */;
3403 val
* var4
/* : FlatString */;
3409 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3418 /* method typing#ALlExpr#property_name for (self: Object): String */
3419 val
* VIRTUAL_typing__ALlExpr__property_name(val
* self
) {
3420 val
* var
/* : String */;
3421 val
* var1
/* : String */;
3422 var1
= typing__ALlExpr__property_name(self
);
3427 /* method typing#AGtExpr#property_name for (self: AGtExpr): String */
3428 val
* typing__AGtExpr__property_name(val
* self
) {
3429 val
* var
/* : String */;
3430 static val
* varonce
;
3431 val
* var1
/* : String */;
3432 char* var2
/* : NativeString */;
3433 long var3
/* : Int */;
3434 val
* var4
/* : FlatString */;
3440 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3449 /* method typing#AGtExpr#property_name for (self: Object): String */
3450 val
* VIRTUAL_typing__AGtExpr__property_name(val
* self
) {
3451 val
* var
/* : String */;
3452 val
* var1
/* : String */;
3453 var1
= typing__AGtExpr__property_name(self
);
3458 /* method typing#AGeExpr#property_name for (self: AGeExpr): String */
3459 val
* typing__AGeExpr__property_name(val
* self
) {
3460 val
* var
/* : String */;
3461 static val
* varonce
;
3462 val
* var1
/* : String */;
3463 char* var2
/* : NativeString */;
3464 long var3
/* : Int */;
3465 val
* var4
/* : FlatString */;
3471 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3480 /* method typing#AGeExpr#property_name for (self: Object): String */
3481 val
* VIRTUAL_typing__AGeExpr__property_name(val
* self
) {
3482 val
* var
/* : String */;
3483 val
* var1
/* : String */;
3484 var1
= typing__AGeExpr__property_name(self
);
3489 /* method typing#AGgExpr#property_name for (self: AGgExpr): String */
3490 val
* typing__AGgExpr__property_name(val
* self
) {
3491 val
* var
/* : String */;
3492 static val
* varonce
;
3493 val
* var1
/* : String */;
3494 char* var2
/* : NativeString */;
3495 long var3
/* : Int */;
3496 val
* var4
/* : FlatString */;
3502 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3511 /* method typing#AGgExpr#property_name for (self: Object): String */
3512 val
* VIRTUAL_typing__AGgExpr__property_name(val
* self
) {
3513 val
* var
/* : String */;
3514 val
* var1
/* : String */;
3515 var1
= typing__AGgExpr__property_name(self
);
3520 /* method typing#APlusExpr#property_name for (self: APlusExpr): String */
3521 val
* typing__APlusExpr__property_name(val
* self
) {
3522 val
* var
/* : String */;
3523 static val
* varonce
;
3524 val
* var1
/* : String */;
3525 char* var2
/* : NativeString */;
3526 long var3
/* : Int */;
3527 val
* var4
/* : FlatString */;
3533 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3542 /* method typing#APlusExpr#property_name for (self: Object): String */
3543 val
* VIRTUAL_typing__APlusExpr__property_name(val
* self
) {
3544 val
* var
/* : String */;
3545 val
* var1
/* : String */;
3546 var1
= typing__APlusExpr__property_name(self
);
3551 /* method typing#AMinusExpr#property_name for (self: AMinusExpr): String */
3552 val
* typing__AMinusExpr__property_name(val
* self
) {
3553 val
* var
/* : String */;
3554 static val
* varonce
;
3555 val
* var1
/* : String */;
3556 char* var2
/* : NativeString */;
3557 long var3
/* : Int */;
3558 val
* var4
/* : FlatString */;
3564 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3573 /* method typing#AMinusExpr#property_name for (self: Object): String */
3574 val
* VIRTUAL_typing__AMinusExpr__property_name(val
* self
) {
3575 val
* var
/* : String */;
3576 val
* var1
/* : String */;
3577 var1
= typing__AMinusExpr__property_name(self
);
3582 /* method typing#AStarshipExpr#property_name for (self: AStarshipExpr): String */
3583 val
* typing__AStarshipExpr__property_name(val
* self
) {
3584 val
* var
/* : String */;
3585 static val
* varonce
;
3586 val
* var1
/* : String */;
3587 char* var2
/* : NativeString */;
3588 long var3
/* : Int */;
3589 val
* var4
/* : FlatString */;
3595 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3604 /* method typing#AStarshipExpr#property_name for (self: Object): String */
3605 val
* VIRTUAL_typing__AStarshipExpr__property_name(val
* self
) {
3606 val
* var
/* : String */;
3607 val
* var1
/* : String */;
3608 var1
= typing__AStarshipExpr__property_name(self
);
3613 /* method typing#AStarExpr#property_name for (self: AStarExpr): String */
3614 val
* typing__AStarExpr__property_name(val
* self
) {
3615 val
* var
/* : String */;
3616 static val
* varonce
;
3617 val
* var1
/* : String */;
3618 char* var2
/* : NativeString */;
3619 long var3
/* : Int */;
3620 val
* var4
/* : FlatString */;
3626 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3635 /* method typing#AStarExpr#property_name for (self: Object): String */
3636 val
* VIRTUAL_typing__AStarExpr__property_name(val
* self
) {
3637 val
* var
/* : String */;
3638 val
* var1
/* : String */;
3639 var1
= typing__AStarExpr__property_name(self
);
3644 /* method typing#ASlashExpr#property_name for (self: ASlashExpr): String */
3645 val
* typing__ASlashExpr__property_name(val
* self
) {
3646 val
* var
/* : String */;
3647 static val
* varonce
;
3648 val
* var1
/* : String */;
3649 char* var2
/* : NativeString */;
3650 long var3
/* : Int */;
3651 val
* var4
/* : FlatString */;
3657 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3666 /* method typing#ASlashExpr#property_name for (self: Object): String */
3667 val
* VIRTUAL_typing__ASlashExpr__property_name(val
* self
) {
3668 val
* var
/* : String */;
3669 val
* var1
/* : String */;
3670 var1
= typing__ASlashExpr__property_name(self
);
3675 /* method typing#APercentExpr#property_name for (self: APercentExpr): String */
3676 val
* typing__APercentExpr__property_name(val
* self
) {
3677 val
* var
/* : String */;
3678 static val
* varonce
;
3679 val
* var1
/* : String */;
3680 char* var2
/* : NativeString */;
3681 long var3
/* : Int */;
3682 val
* var4
/* : FlatString */;
3688 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3697 /* method typing#APercentExpr#property_name for (self: Object): String */
3698 val
* VIRTUAL_typing__APercentExpr__property_name(val
* self
) {
3699 val
* var
/* : String */;
3700 val
* var1
/* : String */;
3701 var1
= typing__APercentExpr__property_name(self
);
3706 /* method typing#AUminusExpr#property_name for (self: AUminusExpr): String */
3707 val
* typing__AUminusExpr__property_name(val
* self
) {
3708 val
* var
/* : String */;
3709 static val
* varonce
;
3710 val
* var1
/* : String */;
3711 char* var2
/* : NativeString */;
3712 long var3
/* : Int */;
3713 val
* var4
/* : FlatString */;
3719 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3728 /* method typing#AUminusExpr#property_name for (self: Object): String */
3729 val
* VIRTUAL_typing__AUminusExpr__property_name(val
* self
) {
3730 val
* var
/* : String */;
3731 val
* var1
/* : String */;
3732 var1
= typing__AUminusExpr__property_name(self
);
3737 /* method typing#AUminusExpr#compute_raw_arguments for (self: AUminusExpr): Array[AExpr] */
3738 val
* typing__AUminusExpr__compute_raw_arguments(val
* self
) {
3739 val
* var
/* : Array[AExpr] */;
3740 val
* var1
/* : Array[AExpr] */;
3741 var1
= NEW_array__Array(&type_array__Arrayparser_nodes__AExpr
);
3743 array__Array__init(var1
); /* Direct call array#Array#init on <var1:Array[AExpr]>*/
3750 /* method typing#AUminusExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
3751 val
* VIRTUAL_typing__AUminusExpr__compute_raw_arguments(val
* self
) {
3752 val
* var
/* : Array[AExpr] */;
3753 val
* var1
/* : Array[AExpr] */;
3754 var1
= typing__AUminusExpr__compute_raw_arguments(self
);
3759 /* method typing#ACallExpr#property_name for (self: ACallExpr): String */
3760 val
* typing__ACallExpr__property_name(val
* self
) {
3761 val
* var
/* : String */;
3762 val
* var1
/* : TId */;
3763 val
* var2
/* : String */;
3765 var1
= parser_nodes__ACallFormExpr__n_id(self
);
3768 var2
= lexer_work__Token__text(var1
);
3775 /* method typing#ACallExpr#property_name for (self: Object): String */
3776 val
* VIRTUAL_typing__ACallExpr__property_name(val
* self
) {
3777 val
* var
/* : String */;
3778 val
* var1
/* : String */;
3779 var1
= typing__ACallExpr__property_name(self
);
3784 /* method typing#ACallExpr#compute_raw_arguments for (self: ACallExpr): Array[AExpr] */
3785 val
* typing__ACallExpr__compute_raw_arguments(val
* self
) {
3786 val
* var
/* : Array[AExpr] */;
3787 val
* var1
/* : AExprs */;
3788 val
* var2
/* : Array[AExpr] */;
3790 var1
= parser_nodes__ACallFormExpr__n_args(self
);
3793 var2
= typing__AExprs__to_a(var1
);
3800 /* method typing#ACallExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
3801 val
* VIRTUAL_typing__ACallExpr__compute_raw_arguments(val
* self
) {
3802 val
* var
/* : Array[AExpr] */;
3803 val
* var1
/* : Array[AExpr] */;
3804 var1
= typing__ACallExpr__compute_raw_arguments(self
);
3809 /* method typing#ACallAssignExpr#property_name for (self: ACallAssignExpr): String */
3810 val
* typing__ACallAssignExpr__property_name(val
* self
) {
3811 val
* var
/* : String */;
3812 val
* var1
/* : TId */;
3813 val
* var2
/* : String */;
3814 static val
* varonce
;
3815 val
* var3
/* : String */;
3816 char* var4
/* : NativeString */;
3817 long var5
/* : Int */;
3818 val
* var6
/* : FlatString */;
3819 val
* var7
/* : String */;
3821 var1
= parser_nodes__ACallFormExpr__n_id(self
);
3824 var2
= lexer_work__Token__text(var1
);
3831 var6
= string__NativeString__to_s_with_length(var4
, var5
);
3836 var7
= string__FlatString___43d(var2
, var3
);
3843 /* method typing#ACallAssignExpr#property_name for (self: Object): String */
3844 val
* VIRTUAL_typing__ACallAssignExpr__property_name(val
* self
) {
3845 val
* var
/* : String */;
3846 val
* var1
/* : String */;
3847 var1
= typing__ACallAssignExpr__property_name(self
);
3852 /* method typing#ACallAssignExpr#compute_raw_arguments for (self: ACallAssignExpr): Array[AExpr] */
3853 val
* typing__ACallAssignExpr__compute_raw_arguments(val
* self
) {
3854 val
* var
/* : Array[AExpr] */;
3855 val
* var1
/* : AExprs */;
3856 val
* var2
/* : Array[AExpr] */;
3857 val
* var_res
/* var res: Array[AExpr] */;
3858 val
* var3
/* : AExpr */;
3860 var1
= parser_nodes__ACallFormExpr__n_args(self
);
3863 var2
= typing__AExprs__to_a(var1
);
3867 var3
= parser_nodes__AAssignFormExpr__n_value(self
);
3870 array__Array__add(var_res
, var3
); /* Direct call array#Array#add on <var_res:Array[AExpr]>*/
3877 /* method typing#ACallAssignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
3878 val
* VIRTUAL_typing__ACallAssignExpr__compute_raw_arguments(val
* self
) {
3879 val
* var
/* : Array[AExpr] */;
3880 val
* var1
/* : Array[AExpr] */;
3881 var1
= typing__ACallAssignExpr__compute_raw_arguments(self
);
3886 /* method typing#ABraExpr#property_name for (self: ABraExpr): String */
3887 val
* typing__ABraExpr__property_name(val
* self
) {
3888 val
* var
/* : String */;
3889 static val
* varonce
;
3890 val
* var1
/* : String */;
3891 char* var2
/* : NativeString */;
3892 long var3
/* : Int */;
3893 val
* var4
/* : FlatString */;
3899 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3908 /* method typing#ABraExpr#property_name for (self: Object): String */
3909 val
* VIRTUAL_typing__ABraExpr__property_name(val
* self
) {
3910 val
* var
/* : String */;
3911 val
* var1
/* : String */;
3912 var1
= typing__ABraExpr__property_name(self
);
3917 /* method typing#ABraExpr#compute_raw_arguments for (self: ABraExpr): Array[AExpr] */
3918 val
* typing__ABraExpr__compute_raw_arguments(val
* self
) {
3919 val
* var
/* : Array[AExpr] */;
3920 val
* var1
/* : AExprs */;
3921 val
* var2
/* : Array[AExpr] */;
3923 var1
= parser_nodes__ABraFormExpr__n_args(self
);
3926 var2
= typing__AExprs__to_a(var1
);
3933 /* method typing#ABraExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
3934 val
* VIRTUAL_typing__ABraExpr__compute_raw_arguments(val
* self
) {
3935 val
* var
/* : Array[AExpr] */;
3936 val
* var1
/* : Array[AExpr] */;
3937 var1
= typing__ABraExpr__compute_raw_arguments(self
);
3942 /* method typing#ABraAssignExpr#property_name for (self: ABraAssignExpr): String */
3943 val
* typing__ABraAssignExpr__property_name(val
* self
) {
3944 val
* var
/* : String */;
3945 static val
* varonce
;
3946 val
* var1
/* : String */;
3947 char* var2
/* : NativeString */;
3948 long var3
/* : Int */;
3949 val
* var4
/* : FlatString */;
3955 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3964 /* method typing#ABraAssignExpr#property_name for (self: Object): String */
3965 val
* VIRTUAL_typing__ABraAssignExpr__property_name(val
* self
) {
3966 val
* var
/* : String */;
3967 val
* var1
/* : String */;
3968 var1
= typing__ABraAssignExpr__property_name(self
);
3973 /* method typing#ABraAssignExpr#compute_raw_arguments for (self: ABraAssignExpr): Array[AExpr] */
3974 val
* typing__ABraAssignExpr__compute_raw_arguments(val
* self
) {
3975 val
* var
/* : Array[AExpr] */;
3976 val
* var1
/* : AExprs */;
3977 val
* var2
/* : Array[AExpr] */;
3978 val
* var_res
/* var res: Array[AExpr] */;
3979 val
* var3
/* : AExpr */;
3981 var1
= parser_nodes__ABraFormExpr__n_args(self
);
3984 var2
= typing__AExprs__to_a(var1
);
3988 var3
= parser_nodes__AAssignFormExpr__n_value(self
);
3991 array__Array__add(var_res
, var3
); /* Direct call array#Array#add on <var_res:Array[AExpr]>*/
3998 /* method typing#ABraAssignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
3999 val
* VIRTUAL_typing__ABraAssignExpr__compute_raw_arguments(val
* self
) {
4000 val
* var
/* : Array[AExpr] */;
4001 val
* var1
/* : Array[AExpr] */;
4002 var1
= typing__ABraAssignExpr__compute_raw_arguments(self
);
4007 /* method typing#ASendReassignFormExpr#write_callsite for (self: ASendReassignFormExpr): nullable CallSite */
4008 val
* typing__ASendReassignFormExpr__write_callsite(val
* self
) {
4009 val
* var
/* : nullable CallSite */;
4010 val
* var1
/* : nullable CallSite */;
4011 var1
= self
->attrs
[COLOR_typing__ASendReassignFormExpr___write_callsite
].val
; /* _write_callsite on <self:ASendReassignFormExpr> */
4016 /* method typing#ASendReassignFormExpr#write_callsite for (self: Object): nullable CallSite */
4017 val
* VIRTUAL_typing__ASendReassignFormExpr__write_callsite(val
* self
) {
4018 val
* var
/* : nullable CallSite */;
4019 val
* var1
/* : nullable CallSite */;
4020 val
* var3
/* : nullable CallSite */;
4021 { /* Inline typing#ASendReassignFormExpr#write_callsite (self) on <self:Object(ASendReassignFormExpr)> */
4022 var3
= self
->attrs
[COLOR_typing__ASendReassignFormExpr___write_callsite
].val
; /* _write_callsite on <self:Object(ASendReassignFormExpr)> */
4030 /* method typing#ASendReassignFormExpr#write_callsite= for (self: ASendReassignFormExpr, nullable CallSite) */
4031 void typing__ASendReassignFormExpr__write_callsite_61d(val
* self
, val
* p0
) {
4032 self
->attrs
[COLOR_typing__ASendReassignFormExpr___write_callsite
].val
= p0
; /* _write_callsite on <self:ASendReassignFormExpr> */
4035 /* method typing#ASendReassignFormExpr#write_callsite= for (self: Object, nullable CallSite) */
4036 void VIRTUAL_typing__ASendReassignFormExpr__write_callsite_61d(val
* self
, val
* p0
) {
4037 { /* Inline typing#ASendReassignFormExpr#write_callsite= (self,p0) on <self:Object(ASendReassignFormExpr)> */
4038 self
->attrs
[COLOR_typing__ASendReassignFormExpr___write_callsite
].val
= p0
; /* _write_callsite on <self:Object(ASendReassignFormExpr)> */
4043 /* method typing#ASendReassignFormExpr#accept_typing for (self: ASendReassignFormExpr, TypeVisitor) */
4044 void typing__ASendReassignFormExpr__accept_typing(val
* self
, val
* p0
) {
4045 val
* var_v
/* var v: TypeVisitor */;
4046 val
* var
/* : AExpr */;
4047 val
* var1
/* : nullable MType */;
4048 val
* var_recvtype
/* var recvtype: nullable MType */;
4049 val
* var2
/* : String */;
4050 val
* var_name
/* var name: String */;
4051 val
* var3
/* : null */;
4052 short int var4
/* : Bool */;
4053 short int var5
/* : Bool */;
4054 val
* var_other
/* var other: nullable Object */;
4055 short int var7
/* : Bool */;
4056 short int var9
/* : Bool */;
4057 short int var10
/* : Bool */;
4060 static val
* varonce
;
4061 val
* var11
/* : String */;
4062 char* var12
/* : NativeString */;
4063 long var13
/* : Int */;
4064 val
* var14
/* : FlatString */;
4065 static val
* varonce15
;
4066 val
* var16
/* : String */;
4067 char* var17
/* : NativeString */;
4068 long var18
/* : Int */;
4069 val
* var19
/* : FlatString */;
4070 val
* var20
/* : Array[Object] */;
4071 long var21
/* : Int */;
4072 val
* var22
/* : NativeArray[Object] */;
4073 val
* var23
/* : String */;
4074 val
* var24
/* : AExpr */;
4075 short int var25
/* : Bool */;
4078 short int var_for_self
/* var for_self: Bool */;
4079 val
* var28
/* : nullable CallSite */;
4080 val
* var_callsite
/* var callsite: nullable CallSite */;
4081 val
* var29
/* : null */;
4082 short int var30
/* : Bool */;
4083 short int var31
/* : Bool */;
4084 short int var33
/* : Bool */;
4085 short int var35
/* : Bool */;
4086 val
* var37
/* : Array[AExpr] */;
4087 val
* var_args
/* var args: Array[AExpr] */;
4088 short int var38
/* : Bool */;
4089 val
* var39
/* : MSignature */;
4090 val
* var41
/* : MSignature */;
4091 val
* var42
/* : nullable MType */;
4092 val
* var44
/* : nullable MType */;
4093 val
* var_readtype
/* var readtype: nullable MType */;
4094 val
* var45
/* : null */;
4095 short int var46
/* : Bool */;
4096 short int var47
/* : Bool */;
4097 short int var49
/* : Bool */;
4098 short int var51
/* : Bool */;
4099 static val
* varonce52
;
4100 val
* var53
/* : String */;
4101 char* var54
/* : NativeString */;
4102 long var55
/* : Int */;
4103 val
* var56
/* : FlatString */;
4104 static val
* varonce57
;
4105 val
* var58
/* : String */;
4106 char* var59
/* : NativeString */;
4107 long var60
/* : Int */;
4108 val
* var61
/* : FlatString */;
4109 val
* var62
/* : Array[Object] */;
4110 long var63
/* : Int */;
4111 val
* var64
/* : NativeArray[Object] */;
4112 val
* var65
/* : String */;
4113 static val
* varonce66
;
4114 val
* var67
/* : String */;
4115 char* var68
/* : NativeString */;
4116 long var69
/* : Int */;
4117 val
* var70
/* : FlatString */;
4118 val
* var71
/* : String */;
4119 val
* var72
/* : AExpr */;
4120 short int var73
/* : Bool */;
4123 val
* var76
/* : nullable CallSite */;
4124 val
* var_wcallsite
/* var wcallsite: nullable CallSite */;
4125 val
* var77
/* : null */;
4126 short int var78
/* : Bool */;
4127 short int var79
/* : Bool */;
4128 short int var81
/* : Bool */;
4129 short int var83
/* : Bool */;
4130 val
* var85
/* : MSignature */;
4131 val
* var87
/* : MSignature */;
4132 val
* var88
/* : Array[MParameter] */;
4133 val
* var90
/* : Array[MParameter] */;
4134 val
* var91
/* : nullable Object */;
4135 val
* var92
/* : MType */;
4136 val
* var94
/* : MType */;
4137 val
* var95
/* : nullable MType */;
4138 val
* var_wtype
/* var wtype: nullable MType */;
4139 val
* var96
/* : null */;
4140 short int var97
/* : Bool */;
4141 short int var98
/* : Bool */;
4142 short int var100
/* : Bool */;
4143 short int var102
/* : Bool */;
4144 val
* var103
/* : Array[nullable Object] */;
4145 val
* var104
/* : AExpr */;
4146 short int var105
/* : Bool */;
4147 short int var106
/* : Bool */;
4150 var
= parser_nodes__ASendExpr__n_expr(self
);
4153 var1
= typing__TypeVisitor__visit_expr(var_v
, var
);
4155 var_recvtype
= var1
;
4157 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__property_name
]))(self
) /* property_name on <self:ASendReassignFormExpr>*/;
4161 if (var_recvtype
== NULL
) {
4162 var4
= 1; /* is null */
4164 var4
= 0; /* arg is null but recv is not */
4167 { /* Inline kernel#Object#== (var_recvtype,var3) on <var_recvtype:nullable MType> */
4170 { /* Inline kernel#Object#is_same_instance (var_recvtype,var_other) on <var_recvtype:nullable MType(MType)> */
4171 var9
= var_recvtype
== var_other
;
4187 /* <var_recvtype:nullable MType(MType)> isa MNullType */
4188 cltype
= type_model__MNullType
.color
;
4189 idtype
= type_model__MNullType
.id
;
4190 if(cltype
>= var_recvtype
->type
->table_size
) {
4193 var10
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
4199 var12
= "Error: Method \'";
4201 var14
= string__NativeString__to_s_with_length(var12
, var13
);
4208 var17
= "\' call on \'null\'.";
4210 var19
= string__NativeString__to_s_with_length(var17
, var18
);
4214 var20
= NEW_array__Array(&type_array__Arraykernel__Object
);
4215 { /* var20 = array_instance Array[Object] */
4217 var22
= NEW_array__NativeArray(var21
, &type_array__NativeArraykernel__Object
);
4218 ((struct instance_array__NativeArray
*)var22
)->values
[0] = (val
*) var11
;
4219 ((struct instance_array__NativeArray
*)var22
)->values
[1] = (val
*) var_name
;
4220 ((struct instance_array__NativeArray
*)var22
)->values
[2] = (val
*) var16
;
4222 ((void (*)(val
*, val
*, long))(var20
->class->vft
[COLOR_array__Array__with_native
]))(var20
, var22
, var21
) /* with_native on <var20:Array[Object]>*/;
4226 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_string__Object__to_s
]))(var20
) /* to_s on <var20:Array[Object]>*/;
4229 typing__TypeVisitor__error(var_v
, self
, var23
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
4235 var24
= parser_nodes__ASendExpr__n_expr(self
);
4237 /* <var24:AExpr> isa ASelfExpr */
4238 cltype26
= type_parser_nodes__ASelfExpr
.color
;
4239 idtype27
= type_parser_nodes__ASelfExpr
.id
;
4240 if(cltype26
>= var24
->type
->table_size
) {
4243 var25
= var24
->type
->type_table
[cltype26
] == idtype27
;
4245 var_for_self
= var25
;
4247 var28
= typing__TypeVisitor__get_method(var_v
, self
, var_recvtype
, var_name
, var_for_self
);
4249 var_callsite
= var28
;
4251 if (var_callsite
== NULL
) {
4252 var30
= 1; /* is null */
4254 var30
= 0; /* arg is null but recv is not */
4257 { /* Inline kernel#Object#== (var_callsite,var29) on <var_callsite:nullable CallSite> */
4260 { /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
4261 var35
= var_callsite
== var_other
;
4264 RET_LABEL34
:(void)0;
4269 RET_LABEL32
:(void)0;
4278 { /* Inline typing#ASendExpr#callsite= (self,var_callsite) on <self:ASendReassignFormExpr> */
4279 self
->attrs
[COLOR_typing__ASendExpr___callsite
].val
= var_callsite
; /* _callsite on <self:ASendReassignFormExpr> */
4280 RET_LABEL36
:(void)0;
4284 var37
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__compute_raw_arguments
]))(self
) /* compute_raw_arguments on <self:ASendReassignFormExpr>*/;
4288 var38
= typing__CallSite__check_signature(var_callsite
, var_v
, var_args
);
4292 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
4293 var41
= var_callsite
->attrs
[COLOR_typing__CallSite___msignature
].val
; /* _msignature on <var_callsite:nullable CallSite(CallSite)> */
4294 if (unlikely(var41
== NULL
)) {
4295 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
4296 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 429);
4300 RET_LABEL40
:(void)0;
4304 { /* Inline model#MSignature#return_mtype (var39) on <var39:MSignature> */
4305 var44
= var39
->attrs
[COLOR_model__MSignature___return_mtype
].val
; /* _return_mtype on <var39:MSignature> */
4307 RET_LABEL43
:(void)0;
4310 var_readtype
= var42
;
4312 if (var_readtype
== NULL
) {
4313 var46
= 1; /* is null */
4315 var46
= 0; /* arg is null but recv is not */
4318 { /* Inline kernel#Object#== (var_readtype,var45) on <var_readtype:nullable MType> */
4321 { /* Inline kernel#Object#is_same_instance (var_readtype,var_other) on <var_readtype:nullable MType(MType)> */
4322 var51
= var_readtype
== var_other
;
4325 RET_LABEL50
:(void)0;
4330 RET_LABEL48
:(void)0;
4340 var56
= string__NativeString__to_s_with_length(var54
, var55
);
4347 var59
= " is not a function";
4349 var61
= string__NativeString__to_s_with_length(var59
, var60
);
4353 var62
= NEW_array__Array(&type_array__Arraykernel__Object
);
4354 { /* var62 = array_instance Array[Object] */
4356 var64
= NEW_array__NativeArray(var63
, &type_array__NativeArraykernel__Object
);
4357 ((struct instance_array__NativeArray
*)var64
)->values
[0] = (val
*) var53
;
4358 ((struct instance_array__NativeArray
*)var64
)->values
[1] = (val
*) var_name
;
4359 ((struct instance_array__NativeArray
*)var64
)->values
[2] = (val
*) var58
;
4361 ((void (*)(val
*, val
*, long))(var62
->class->vft
[COLOR_array__Array__with_native
]))(var62
, var64
, var63
) /* with_native on <var62:Array[Object]>*/;
4365 var65
= ((val
* (*)(val
*))(var62
->class->vft
[COLOR_string__Object__to_s
]))(var62
) /* to_s on <var62:Array[Object]>*/;
4368 typing__TypeVisitor__error(var_v
, self
, var65
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
4378 var70
= string__NativeString__to_s_with_length(var68
, var69
);
4383 var71
= string__FlatString___43d(var_name
, var67
);
4386 var72
= parser_nodes__ASendExpr__n_expr(self
);
4388 /* <var72:AExpr> isa ASelfExpr */
4389 cltype74
= type_parser_nodes__ASelfExpr
.color
;
4390 idtype75
= type_parser_nodes__ASelfExpr
.id
;
4391 if(cltype74
>= var72
->type
->table_size
) {
4394 var73
= var72
->type
->type_table
[cltype74
] == idtype75
;
4397 var76
= typing__TypeVisitor__get_method(var_v
, self
, var_recvtype
, var71
, var73
);
4399 var_wcallsite
= var76
;
4401 if (var_wcallsite
== NULL
) {
4402 var78
= 1; /* is null */
4404 var78
= 0; /* arg is null but recv is not */
4407 { /* Inline kernel#Object#== (var_wcallsite,var77) on <var_wcallsite:nullable CallSite> */
4410 { /* Inline kernel#Object#is_same_instance (var_wcallsite,var_other) on <var_wcallsite:nullable CallSite(CallSite)> */
4411 var83
= var_wcallsite
== var_other
;
4414 RET_LABEL82
:(void)0;
4419 RET_LABEL80
:(void)0;
4428 { /* Inline typing#ASendReassignFormExpr#write_callsite= (self,var_wcallsite) on <self:ASendReassignFormExpr> */
4429 self
->attrs
[COLOR_typing__ASendReassignFormExpr___write_callsite
].val
= var_wcallsite
; /* _write_callsite on <self:ASendReassignFormExpr> */
4430 RET_LABEL84
:(void)0;
4434 { /* Inline typing#CallSite#msignature (var_wcallsite) on <var_wcallsite:nullable CallSite(CallSite)> */
4435 var87
= var_wcallsite
->attrs
[COLOR_typing__CallSite___msignature
].val
; /* _msignature on <var_wcallsite:nullable CallSite(CallSite)> */
4436 if (unlikely(var87
== NULL
)) {
4437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
4438 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 429);
4442 RET_LABEL86
:(void)0;
4446 { /* Inline model#MSignature#mparameters (var85) on <var85:MSignature> */
4447 var90
= var85
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var85:MSignature> */
4448 if (unlikely(var90
== NULL
)) {
4449 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
4450 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
4454 RET_LABEL89
:(void)0;
4458 var91
= abstract_collection__SequenceRead__last(var88
);
4461 { /* Inline model#MParameter#mtype (var91) on <var91:nullable Object(MParameter)> */
4462 var94
= var91
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var91:nullable Object(MParameter)> */
4463 if (unlikely(var94
== NULL
)) {
4464 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4465 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
4469 RET_LABEL93
:(void)0;
4473 var95
= typing__AReassignFormExpr__resolve_reassignment(self
, var_v
, var_readtype
, var92
);
4477 if (var_wtype
== NULL
) {
4478 var97
= 1; /* is null */
4480 var97
= 0; /* arg is null but recv is not */
4483 { /* Inline kernel#Object#== (var_wtype,var96) on <var_wtype:nullable MType> */
4486 { /* Inline kernel#Object#is_same_instance (var_wtype,var_other) on <var_wtype:nullable MType(MType)> */
4487 var102
= var_wtype
== var_other
;
4490 RET_LABEL101
:(void)0;
4495 RET_LABEL99
:(void)0;
4504 var103
= array__Collection__to_a(var_args
);
4508 var104
= parser_nodes__AReassignFormExpr__n_value(self
);
4511 array__Array__add(var_args
, var104
); /* Direct call array#Array#add on <var_args:Array[AExpr]>*/
4514 var105
= typing__CallSite__check_signature(var_wcallsite
, var_v
, var_args
);
4519 { /* Inline typing#AExpr#is_typed= (self,var106) on <self:ASendReassignFormExpr> */
4520 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var106
; /* _is_typed on <self:ASendReassignFormExpr> */
4521 RET_LABEL107
:(void)0;
4526 /* method typing#ASendReassignFormExpr#accept_typing for (self: Object, TypeVisitor) */
4527 void VIRTUAL_typing__ASendReassignFormExpr__accept_typing(val
* self
, val
* p0
) {
4528 typing__ASendReassignFormExpr__accept_typing(self
, p0
); /* Direct call typing#ASendReassignFormExpr#accept_typing on <self:Object(ASendReassignFormExpr)>*/
4531 /* method typing#ACallReassignExpr#property_name for (self: ACallReassignExpr): String */
4532 val
* typing__ACallReassignExpr__property_name(val
* self
) {
4533 val
* var
/* : String */;
4534 val
* var1
/* : TId */;
4535 val
* var2
/* : String */;
4537 var1
= parser_nodes__ACallFormExpr__n_id(self
);
4540 var2
= lexer_work__Token__text(var1
);
4547 /* method typing#ACallReassignExpr#property_name for (self: Object): String */
4548 val
* VIRTUAL_typing__ACallReassignExpr__property_name(val
* self
) {
4549 val
* var
/* : String */;
4550 val
* var1
/* : String */;
4551 var1
= typing__ACallReassignExpr__property_name(self
);
4556 /* method typing#ACallReassignExpr#compute_raw_arguments for (self: ACallReassignExpr): Array[AExpr] */
4557 val
* typing__ACallReassignExpr__compute_raw_arguments(val
* self
) {
4558 val
* var
/* : Array[AExpr] */;
4559 val
* var1
/* : AExprs */;
4560 val
* var2
/* : Array[AExpr] */;
4562 var1
= parser_nodes__ACallFormExpr__n_args(self
);
4565 var2
= typing__AExprs__to_a(var1
);
4572 /* method typing#ACallReassignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
4573 val
* VIRTUAL_typing__ACallReassignExpr__compute_raw_arguments(val
* self
) {
4574 val
* var
/* : Array[AExpr] */;
4575 val
* var1
/* : Array[AExpr] */;
4576 var1
= typing__ACallReassignExpr__compute_raw_arguments(self
);
4581 /* method typing#ABraReassignExpr#property_name for (self: ABraReassignExpr): String */
4582 val
* typing__ABraReassignExpr__property_name(val
* self
) {
4583 val
* var
/* : String */;
4584 static val
* varonce
;
4585 val
* var1
/* : String */;
4586 char* var2
/* : NativeString */;
4587 long var3
/* : Int */;
4588 val
* var4
/* : FlatString */;
4594 var4
= string__NativeString__to_s_with_length(var2
, var3
);
4603 /* method typing#ABraReassignExpr#property_name for (self: Object): String */
4604 val
* VIRTUAL_typing__ABraReassignExpr__property_name(val
* self
) {
4605 val
* var
/* : String */;
4606 val
* var1
/* : String */;
4607 var1
= typing__ABraReassignExpr__property_name(self
);
4612 /* method typing#ABraReassignExpr#compute_raw_arguments for (self: ABraReassignExpr): Array[AExpr] */
4613 val
* typing__ABraReassignExpr__compute_raw_arguments(val
* self
) {
4614 val
* var
/* : Array[AExpr] */;
4615 val
* var1
/* : AExprs */;
4616 val
* var2
/* : Array[AExpr] */;
4618 var1
= parser_nodes__ABraFormExpr__n_args(self
);
4621 var2
= typing__AExprs__to_a(var1
);
4628 /* method typing#ABraReassignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
4629 val
* VIRTUAL_typing__ABraReassignExpr__compute_raw_arguments(val
* self
) {
4630 val
* var
/* : Array[AExpr] */;
4631 val
* var1
/* : Array[AExpr] */;
4632 var1
= typing__ABraReassignExpr__compute_raw_arguments(self
);
4637 /* method typing#AInitExpr#property_name for (self: AInitExpr): String */
4638 val
* typing__AInitExpr__property_name(val
* self
) {
4639 val
* var
/* : String */;
4640 static val
* varonce
;
4641 val
* var1
/* : String */;
4642 char* var2
/* : NativeString */;
4643 long var3
/* : Int */;
4644 val
* var4
/* : FlatString */;
4650 var4
= string__NativeString__to_s_with_length(var2
, var3
);
4659 /* method typing#AInitExpr#property_name for (self: Object): String */
4660 val
* VIRTUAL_typing__AInitExpr__property_name(val
* self
) {
4661 val
* var
/* : String */;
4662 val
* var1
/* : String */;
4663 var1
= typing__AInitExpr__property_name(self
);
4668 /* method typing#AInitExpr#compute_raw_arguments for (self: AInitExpr): Array[AExpr] */
4669 val
* typing__AInitExpr__compute_raw_arguments(val
* self
) {
4670 val
* var
/* : Array[AExpr] */;
4671 val
* var1
/* : AExprs */;
4672 val
* var2
/* : Array[AExpr] */;
4674 var1
= parser_nodes__AInitExpr__n_args(self
);
4677 var2
= typing__AExprs__to_a(var1
);
4684 /* method typing#AInitExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
4685 val
* VIRTUAL_typing__AInitExpr__compute_raw_arguments(val
* self
) {
4686 val
* var
/* : Array[AExpr] */;
4687 val
* var1
/* : Array[AExpr] */;
4688 var1
= typing__AInitExpr__compute_raw_arguments(self
);
4693 /* method typing#AExprs#to_a for (self: AExprs): Array[AExpr] */
4694 val
* typing__AExprs__to_a(val
* self
) {
4695 val
* var
/* : Array[AExpr] */;
4696 val
* var1
/* : ANodes[AExpr] */;
4697 val
* var3
/* : ANodes[AExpr] */;
4698 val
* var4
/* : Array[nullable Object] */;
4700 { /* Inline parser_nodes#AExprs#n_exprs (self) on <self:AExprs> */
4701 var3
= self
->attrs
[COLOR_parser_nodes__AExprs___n_exprs
].val
; /* _n_exprs on <self:AExprs> */
4702 if (unlikely(var3
== NULL
)) {
4703 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
4704 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
4712 var4
= array__Collection__to_a(var1
);
4719 /* method typing#AExprs#to_a for (self: Object): Array[AExpr] */
4720 val
* VIRTUAL_typing__AExprs__to_a(val
* self
) {
4721 val
* var
/* : Array[AExpr] */;
4722 val
* var1
/* : Array[AExpr] */;
4723 var1
= typing__AExprs__to_a(self
);
4728 /* method typing#ASuperExpr#callsite for (self: ASuperExpr): nullable CallSite */
4729 val
* typing__ASuperExpr__callsite(val
* self
) {
4730 val
* var
/* : nullable CallSite */;
4731 val
* var1
/* : nullable CallSite */;
4732 var1
= self
->attrs
[COLOR_typing__ASuperExpr___callsite
].val
; /* _callsite on <self:ASuperExpr> */
4737 /* method typing#ASuperExpr#callsite for (self: Object): nullable CallSite */
4738 val
* VIRTUAL_typing__ASuperExpr__callsite(val
* self
) {
4739 val
* var
/* : nullable CallSite */;
4740 val
* var1
/* : nullable CallSite */;
4741 val
* var3
/* : nullable CallSite */;
4742 { /* Inline typing#ASuperExpr#callsite (self) on <self:Object(ASuperExpr)> */
4743 var3
= self
->attrs
[COLOR_typing__ASuperExpr___callsite
].val
; /* _callsite on <self:Object(ASuperExpr)> */
4751 /* method typing#ASuperExpr#callsite= for (self: ASuperExpr, nullable CallSite) */
4752 void typing__ASuperExpr__callsite_61d(val
* self
, val
* p0
) {
4753 self
->attrs
[COLOR_typing__ASuperExpr___callsite
].val
= p0
; /* _callsite on <self:ASuperExpr> */
4756 /* method typing#ASuperExpr#callsite= for (self: Object, nullable CallSite) */
4757 void VIRTUAL_typing__ASuperExpr__callsite_61d(val
* self
, val
* p0
) {
4758 { /* Inline typing#ASuperExpr#callsite= (self,p0) on <self:Object(ASuperExpr)> */
4759 self
->attrs
[COLOR_typing__ASuperExpr___callsite
].val
= p0
; /* _callsite on <self:Object(ASuperExpr)> */
4764 /* method typing#ASuperExpr#mpropdef for (self: ASuperExpr): nullable MMethodDef */
4765 val
* typing__ASuperExpr__mpropdef(val
* self
) {
4766 val
* var
/* : nullable MMethodDef */;
4767 val
* var1
/* : nullable MMethodDef */;
4768 var1
= self
->attrs
[COLOR_typing__ASuperExpr___mpropdef
].val
; /* _mpropdef on <self:ASuperExpr> */
4773 /* method typing#ASuperExpr#mpropdef for (self: Object): nullable MMethodDef */
4774 val
* VIRTUAL_typing__ASuperExpr__mpropdef(val
* self
) {
4775 val
* var
/* : nullable MMethodDef */;
4776 val
* var1
/* : nullable MMethodDef */;
4777 val
* var3
/* : nullable MMethodDef */;
4778 { /* Inline typing#ASuperExpr#mpropdef (self) on <self:Object(ASuperExpr)> */
4779 var3
= self
->attrs
[COLOR_typing__ASuperExpr___mpropdef
].val
; /* _mpropdef on <self:Object(ASuperExpr)> */
4787 /* method typing#ASuperExpr#mpropdef= for (self: ASuperExpr, nullable MMethodDef) */
4788 void typing__ASuperExpr__mpropdef_61d(val
* self
, val
* p0
) {
4789 self
->attrs
[COLOR_typing__ASuperExpr___mpropdef
].val
= p0
; /* _mpropdef on <self:ASuperExpr> */
4792 /* method typing#ASuperExpr#mpropdef= for (self: Object, nullable MMethodDef) */
4793 void VIRTUAL_typing__ASuperExpr__mpropdef_61d(val
* self
, val
* p0
) {
4794 { /* Inline typing#ASuperExpr#mpropdef= (self,p0) on <self:Object(ASuperExpr)> */
4795 self
->attrs
[COLOR_typing__ASuperExpr___mpropdef
].val
= p0
; /* _mpropdef on <self:Object(ASuperExpr)> */
4800 /* method typing#ASuperExpr#accept_typing for (self: ASuperExpr, TypeVisitor) */
4801 void typing__ASuperExpr__accept_typing(val
* self
, val
* p0
) {
4802 val
* var_v
/* var v: TypeVisitor */;
4803 val
* var
/* : nullable MClassType */;
4804 val
* var2
/* : nullable MClassType */;
4805 val
* var_recvtype
/* var recvtype: nullable MClassType */;
4806 val
* var3
/* : null */;
4807 short int var4
/* : Bool */;
4808 short int var5
/* : Bool */;
4809 val
* var_other
/* var other: nullable Object */;
4810 short int var7
/* : Bool */;
4811 short int var8
/* : Bool */;
4812 short int var9
/* : Bool */;
4813 val
* var10
/* : nullable MPropDef */;
4814 val
* var12
/* : nullable MPropDef */;
4815 val
* var13
/* : MProperty */;
4816 val
* var15
/* : MProperty */;
4817 val
* var_mproperty
/* var mproperty: MProperty */;
4818 short int var16
/* : Bool */;
4821 short int var17
/* : Bool */;
4822 static val
* varonce
;
4823 val
* var18
/* : String */;
4824 char* var19
/* : NativeString */;
4825 long var20
/* : Int */;
4826 val
* var21
/* : FlatString */;
4827 val
* var22
/* : MModule */;
4828 val
* var24
/* : MModule */;
4829 val
* var25
/* : Array[MPropDef] */;
4830 val
* var_superprops
/* var superprops: Array[MMethodDef] */;
4831 long var26
/* : Int */;
4832 long var27
/* : Int */;
4833 short int var28
/* : Bool */;
4834 short int var29
/* : Bool */;
4835 short int var31
/* : Bool */;
4836 short int var32
/* : Bool */;
4837 short int var33
/* : Bool */;
4838 short int var35
/* : Bool */;
4839 short int var_
/* var : Bool */;
4840 val
* var36
/* : nullable MPropDef */;
4841 val
* var38
/* : nullable MPropDef */;
4842 short int var39
/* : Bool */;
4843 static val
* varonce40
;
4844 val
* var41
/* : String */;
4845 char* var42
/* : NativeString */;
4846 long var43
/* : Int */;
4847 val
* var44
/* : FlatString */;
4848 static val
* varonce45
;
4849 val
* var46
/* : String */;
4850 char* var47
/* : NativeString */;
4851 long var48
/* : Int */;
4852 val
* var49
/* : FlatString */;
4853 val
* var50
/* : Array[Object] */;
4854 long var51
/* : Int */;
4855 val
* var52
/* : NativeArray[Object] */;
4856 val
* var53
/* : String */;
4857 val
* var54
/* : nullable Object */;
4858 val
* var_superprop
/* var superprop: MMethodDef */;
4859 val
* var55
/* : nullable MSignature */;
4860 val
* var57
/* : nullable MSignature */;
4861 val
* var_msignature
/* var msignature: MSignature */;
4862 short int var58
/* : Bool */;
4863 val
* var59
/* : MType */;
4864 short int var60
/* : Bool */;
4867 const char* var_class_name
;
4868 val
* var63
/* : AExprs */;
4869 val
* var64
/* : Array[AExpr] */;
4870 val
* var_args
/* var args: Array[AExpr] */;
4871 long var65
/* : Int */;
4872 long var66
/* : Int */;
4873 short int var67
/* : Bool */;
4874 short int var69
/* : Bool */;
4877 const char* var_class_name72
;
4878 short int var73
/* : Bool */;
4879 val
* var74
/* : String */;
4880 val
* var76
/* : String */;
4881 short int var77
/* : Bool */;
4882 val
* var78
/* : nullable MType */;
4883 val
* var80
/* : nullable MType */;
4884 short int var82
/* : Bool */;
4885 val
* var84
/* : nullable MPropDef */;
4886 val
* var86
/* : nullable MPropDef */;
4887 short int var87
/* : Bool */;
4888 val
* var89
/* : nullable MPropDef */;
4889 val
* var91
/* : nullable MPropDef */;
4890 short int var92
/* : Bool */;
4893 const char* var_class_name95
;
4896 { /* Inline typing#TypeVisitor#anchor (var_v) on <var_v:TypeVisitor> */
4897 var2
= var_v
->attrs
[COLOR_typing__TypeVisitor___anchor
].val
; /* _anchor on <var_v:TypeVisitor> */
4904 if (var_recvtype
== NULL
) {
4905 var4
= 0; /* is null */
4907 var4
= 1; /* arg is null and recv is not */
4910 { /* Inline kernel#Object#!= (var_recvtype,var3) on <var_recvtype:nullable MClassType> */
4913 var8
= ((short int (*)(val
*, val
*))(var_recvtype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_recvtype
, var_other
) /* == on <var_recvtype:nullable MClassType(MClassType)>*/;
4923 if (unlikely(!var4
)) {
4924 PRINT_ERROR("Runtime error: %s", "Assert failed");
4925 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1480);
4929 { /* Inline typing#TypeVisitor#mpropdef (var_v) on <var_v:TypeVisitor> */
4930 var12
= var_v
->attrs
[COLOR_typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <var_v:TypeVisitor> */
4932 RET_LABEL11
:(void)0;
4935 if (var10
== NULL
) {
4936 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4937 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1481);
4940 { /* Inline model#MPropDef#mproperty (var10) on <var10:nullable MPropDef> */
4941 if (unlikely(var10
== NULL
)) {
4942 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4943 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
4946 var15
= var10
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var10:nullable MPropDef> */
4947 if (unlikely(var15
== NULL
)) {
4948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4949 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
4953 RET_LABEL14
:(void)0;
4956 var_mproperty
= var13
;
4957 /* <var_mproperty:MProperty> isa MMethod */
4958 cltype
= type_model__MMethod
.color
;
4959 idtype
= type_model__MMethod
.id
;
4960 if(cltype
>= var_mproperty
->type
->table_size
) {
4963 var16
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
4970 var19
= "Error: super only usable in a method";
4972 var21
= string__NativeString__to_s_with_length(var19
, var20
);
4977 typing__TypeVisitor__error(var_v
, self
, var18
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
4983 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
4984 var24
= var_v
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
4985 if (unlikely(var24
== NULL
)) {
4986 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4987 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 38);
4991 RET_LABEL23
:(void)0;
4995 var25
= model__MProperty__lookup_super_definitions(var_mproperty
, var22
, var_recvtype
);
4997 var_superprops
= var25
;
4999 var26
= array__AbstractArrayRead__length(var_superprops
);
5003 { /* Inline kernel#Int#== (var26,var27) on <var26:Int> */
5004 var31
= var26
== var27
;
5007 RET_LABEL30
:(void)0;
5013 { /* Inline model#MMethod#is_init (var_mproperty) on <var_mproperty:MProperty(MMethod)> */
5014 var35
= var_mproperty
->attrs
[COLOR_model__MMethod___is_init
].s
; /* _is_init on <var_mproperty:MProperty(MMethod)> */
5016 RET_LABEL34
:(void)0;
5022 { /* Inline typing#TypeVisitor#mpropdef (var_v) on <var_v:TypeVisitor> */
5023 var38
= var_v
->attrs
[COLOR_typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <var_v:TypeVisitor> */
5025 RET_LABEL37
:(void)0;
5028 if (var36
== NULL
) {
5029 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5030 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1488);
5033 var39
= model__MPropDef__is_intro(var36
);
5041 typing__ASuperExpr__process_superinit(self
, var_v
); /* Direct call typing#ASuperExpr#process_superinit on <self:ASuperExpr>*/
5049 var42
= "Error: No super method to call for ";
5051 var44
= string__NativeString__to_s_with_length(var42
, var43
);
5060 var49
= string__NativeString__to_s_with_length(var47
, var48
);
5064 var50
= NEW_array__Array(&type_array__Arraykernel__Object
);
5065 { /* var50 = array_instance Array[Object] */
5067 var52
= NEW_array__NativeArray(var51
, &type_array__NativeArraykernel__Object
);
5068 ((struct instance_array__NativeArray
*)var52
)->values
[0] = (val
*) var41
;
5069 ((struct instance_array__NativeArray
*)var52
)->values
[1] = (val
*) var_mproperty
;
5070 ((struct instance_array__NativeArray
*)var52
)->values
[2] = (val
*) var46
;
5072 ((void (*)(val
*, val
*, long))(var50
->class->vft
[COLOR_array__Array__with_native
]))(var50
, var52
, var51
) /* with_native on <var50:Array[Object]>*/;
5076 var53
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_string__Object__to_s
]))(var50
) /* to_s on <var50:Array[Object]>*/;
5079 typing__TypeVisitor__error(var_v
, self
, var53
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
5085 var54
= abstract_collection__SequenceRead__first(var_superprops
);
5087 var_superprop
= var54
;
5089 { /* Inline model#MMethodDef#msignature (var_superprop) on <var_superprop:MMethodDef> */
5090 var57
= var_superprop
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_superprop:MMethodDef> */
5092 RET_LABEL56
:(void)0;
5095 if (unlikely(var55
== NULL
)) {
5096 PRINT_ERROR("Runtime error: %s", "Cast failed");
5097 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1498);
5100 var_msignature
= var55
;
5103 var59
= typing__TypeVisitor__resolve_for(var_v
, var_msignature
, var_recvtype
, var58
);
5105 /* <var59:MType> isa MSignature */
5106 cltype61
= type_model__MSignature
.color
;
5107 idtype62
= type_model__MSignature
.id
;
5108 if(cltype61
>= var59
->type
->table_size
) {
5111 var60
= var59
->type
->type_table
[cltype61
] == idtype62
;
5113 if (unlikely(!var60
)) {
5114 var_class_name
= var59
== NULL ?
"null" : var59
->type
->name
;
5115 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MSignature", var_class_name
);
5116 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1499);
5119 var_msignature
= var59
;
5121 var63
= parser_nodes__ASuperExpr__n_args(self
);
5124 var64
= typing__AExprs__to_a(var63
);
5128 var65
= array__AbstractArrayRead__length(var_args
);
5132 { /* Inline kernel#Int#> (var65,var66) on <var65:Int> */
5133 /* Covariant cast for argument 0 (i) <var66:Int> isa OTHER */
5134 /* <var66:Int> isa OTHER */
5135 var69
= 1; /* easy <var66:Int> isa OTHER*/
5136 if (unlikely(!var69
)) {
5137 var_class_name72
= type_kernel__Int
.name
;
5138 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name72
);
5139 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
5142 var73
= var65
> var66
;
5145 RET_LABEL68
:(void)0;
5150 { /* Inline model#MProperty#name (var_mproperty) on <var_mproperty:MProperty(MMethod)> */
5151 var76
= var_mproperty
->attrs
[COLOR_model__MProperty___name
].val
; /* _name on <var_mproperty:MProperty(MMethod)> */
5152 if (unlikely(var76
== NULL
)) {
5153 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5154 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
5158 RET_LABEL75
:(void)0;
5162 var77
= typing__TypeVisitor__check_signature(var_v
, self
, var_args
, var74
, var_msignature
);
5168 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:MSignature> */
5169 var80
= var_msignature
->attrs
[COLOR_model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:MSignature> */
5171 RET_LABEL79
:(void)0;
5175 { /* Inline typing#AExpr#mtype= (self,var78) on <self:ASuperExpr> */
5176 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var78
; /* _mtype on <self:ASuperExpr> */
5177 RET_LABEL81
:(void)0;
5182 { /* Inline typing#AExpr#is_typed= (self,var82) on <self:ASuperExpr> */
5183 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var82
; /* _is_typed on <self:ASuperExpr> */
5184 RET_LABEL83
:(void)0;
5188 { /* Inline typing#TypeVisitor#mpropdef (var_v) on <var_v:TypeVisitor> */
5189 var86
= var_v
->attrs
[COLOR_typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <var_v:TypeVisitor> */
5191 RET_LABEL85
:(void)0;
5195 if (var84
== NULL
) {
5196 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5197 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1506);
5200 { /* Inline modelize_property#MPropDef#has_supercall= (var84,var87) on <var84:nullable MPropDef> */
5201 if (unlikely(var84
== NULL
)) {
5202 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5203 PRINT_ERROR(" (%s:%d)\n", "src/modelize_property.nit", 236);
5206 var84
->attrs
[COLOR_modelize_property__MPropDef___has_supercall
].s
= var87
; /* _has_supercall on <var84:nullable MPropDef> */
5207 RET_LABEL88
:(void)0;
5211 { /* Inline typing#TypeVisitor#mpropdef (var_v) on <var_v:TypeVisitor> */
5212 var91
= var_v
->attrs
[COLOR_typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <var_v:TypeVisitor> */
5214 RET_LABEL90
:(void)0;
5217 /* <var89:nullable MPropDef> isa MMethodDef */
5218 cltype93
= type_model__MMethodDef
.color
;
5219 idtype94
= type_model__MMethodDef
.id
;
5223 if(cltype93
>= var89
->type
->table_size
) {
5226 var92
= var89
->type
->type_table
[cltype93
] == idtype94
;
5229 if (unlikely(!var92
)) {
5230 var_class_name95
= var89
== NULL ?
"null" : var89
->type
->name
;
5231 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MMethodDef", var_class_name95
);
5232 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1507);
5236 { /* Inline typing#ASuperExpr#mpropdef= (self,var89) on <self:ASuperExpr> */
5237 self
->attrs
[COLOR_typing__ASuperExpr___mpropdef
].val
= var89
; /* _mpropdef on <self:ASuperExpr> */
5238 RET_LABEL96
:(void)0;
5243 /* method typing#ASuperExpr#accept_typing for (self: Object, TypeVisitor) */
5244 void VIRTUAL_typing__ASuperExpr__accept_typing(val
* self
, val
* p0
) {
5245 typing__ASuperExpr__accept_typing(self
, p0
); /* Direct call typing#ASuperExpr#accept_typing on <self:Object(ASuperExpr)>*/
5248 /* method typing#ASuperExpr#process_superinit for (self: ASuperExpr, TypeVisitor) */
5249 void typing__ASuperExpr__process_superinit(val
* self
, val
* p0
) {
5250 val
* var_v
/* var v: TypeVisitor */;
5251 val
* var
/* : nullable MClassType */;
5252 val
* var2
/* : nullable MClassType */;
5253 val
* var_recvtype
/* var recvtype: nullable MClassType */;
5254 val
* var3
/* : null */;
5255 short int var4
/* : Bool */;
5256 short int var5
/* : Bool */;
5257 val
* var_other
/* var other: nullable Object */;
5258 short int var7
/* : Bool */;
5259 short int var8
/* : Bool */;
5260 short int var9
/* : Bool */;
5261 val
* var10
/* : nullable MPropDef */;
5262 val
* var12
/* : nullable MPropDef */;
5263 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
5264 short int var13
/* : Bool */;
5267 val
* var14
/* : MProperty */;
5268 val
* var16
/* : MProperty */;
5269 val
* var_mproperty
/* var mproperty: MMethod */;
5270 val
* var17
/* : null */;
5271 val
* var_superprop
/* var superprop: nullable MMethodDef */;
5272 val
* var18
/* : MClassDef */;
5273 val
* var20
/* : MClassDef */;
5274 val
* var21
/* : Array[MClassType] */;
5275 val
* var23
/* : Array[MClassType] */;
5276 val
* var24
/* : ArrayIterator[nullable Object] */;
5277 short int var25
/* : Bool */;
5278 val
* var26
/* : nullable Object */;
5279 val
* var_msupertype
/* var msupertype: MClassType */;
5280 val
* var27
/* : MModule */;
5281 val
* var29
/* : MModule */;
5282 val
* var30
/* : MClassType */;
5283 val
* var31
/* : ModelBuilder */;
5284 val
* var33
/* : ModelBuilder */;
5285 val
* var34
/* : ToolContext */;
5286 val
* var36
/* : ToolContext */;
5287 long var37
/* : Int */;
5288 long var39
/* : Int */;
5289 long var_errcount
/* var errcount: Int */;
5290 val
* var40
/* : String */;
5291 val
* var42
/* : String */;
5292 val
* var43
/* : nullable MProperty */;
5293 short int var44
/* : Bool */;
5296 const char* var_class_name
;
5297 val
* var_candidate
/* var candidate: nullable MMethod */;
5298 val
* var47
/* : null */;
5299 short int var48
/* : Bool */;
5300 short int var49
/* : Bool */;
5301 val
* var_other51
/* var other: nullable Object */;
5302 short int var52
/* : Bool */;
5303 short int var54
/* : Bool */;
5304 val
* var55
/* : ModelBuilder */;
5305 val
* var57
/* : ModelBuilder */;
5306 val
* var58
/* : ToolContext */;
5307 val
* var60
/* : ToolContext */;
5308 long var61
/* : Int */;
5309 long var63
/* : Int */;
5310 short int var64
/* : Bool */;
5311 short int var66
/* : Bool */;
5314 const char* var_class_name69
;
5315 short int var70
/* : Bool */;
5316 short int var71
/* : Bool */;
5317 val
* var72
/* : null */;
5318 short int var73
/* : Bool */;
5319 short int var74
/* : Bool */;
5320 short int var76
/* : Bool */;
5321 short int var77
/* : Bool */;
5322 short int var78
/* : Bool */;
5323 short int var_
/* var : Bool */;
5324 val
* var79
/* : MProperty */;
5325 val
* var81
/* : MProperty */;
5326 short int var82
/* : Bool */;
5327 short int var83
/* : Bool */;
5328 short int var85
/* : Bool */;
5329 short int var86
/* : Bool */;
5330 short int var87
/* : Bool */;
5331 static val
* varonce
;
5332 val
* var88
/* : String */;
5333 char* var89
/* : NativeString */;
5334 long var90
/* : Int */;
5335 val
* var91
/* : FlatString */;
5336 static val
* varonce92
;
5337 val
* var93
/* : String */;
5338 char* var94
/* : NativeString */;
5339 long var95
/* : Int */;
5340 val
* var96
/* : FlatString */;
5341 val
* var97
/* : String */;
5342 static val
* varonce98
;
5343 val
* var99
/* : String */;
5344 char* var100
/* : NativeString */;
5345 long var101
/* : Int */;
5346 val
* var102
/* : FlatString */;
5347 val
* var103
/* : MProperty */;
5348 val
* var105
/* : MProperty */;
5349 val
* var106
/* : String */;
5350 val
* var107
/* : Array[Object] */;
5351 long var108
/* : Int */;
5352 val
* var109
/* : NativeArray[Object] */;
5353 val
* var110
/* : String */;
5354 val
* var111
/* : MModule */;
5355 val
* var113
/* : MModule */;
5356 val
* var114
/* : Array[MPropDef] */;
5357 val
* var_candidatedefs
/* var candidatedefs: Array[MMethodDef] */;
5358 val
* var115
/* : null */;
5359 short int var116
/* : Bool */;
5360 short int var117
/* : Bool */;
5361 short int var119
/* : Bool */;
5362 short int var120
/* : Bool */;
5363 short int var121
/* : Bool */;
5364 val
* var122
/* : nullable Object */;
5365 short int var123
/* : Bool */;
5366 short int var124
/* : Bool */;
5367 short int var126
/* : Bool */;
5368 short int var128
/* : Bool */;
5369 long var129
/* : Int */;
5370 long var130
/* : Int */;
5371 short int var131
/* : Bool */;
5372 short int var133
/* : Bool */;
5375 const char* var_class_name136
;
5376 short int var137
/* : Bool */;
5377 static val
* varonce138
;
5378 val
* var139
/* : String */;
5379 char* var140
/* : NativeString */;
5380 long var141
/* : Int */;
5381 val
* var142
/* : FlatString */;
5382 static val
* varonce143
;
5383 val
* var144
/* : String */;
5384 char* var145
/* : NativeString */;
5385 long var146
/* : Int */;
5386 val
* var147
/* : FlatString */;
5387 static val
* varonce148
;
5388 val
* var149
/* : String */;
5389 char* var150
/* : NativeString */;
5390 long var151
/* : Int */;
5391 val
* var152
/* : FlatString */;
5392 static val
* varonce153
;
5393 val
* var154
/* : String */;
5394 char* var155
/* : NativeString */;
5395 long var156
/* : Int */;
5396 val
* var157
/* : FlatString */;
5397 val
* var158
/* : String */;
5398 val
* var159
/* : Array[Object] */;
5399 long var160
/* : Int */;
5400 val
* var161
/* : NativeArray[Object] */;
5401 val
* var162
/* : String */;
5402 val
* var163
/* : nullable Object */;
5403 val
* var164
/* : null */;
5404 short int var165
/* : Bool */;
5405 short int var166
/* : Bool */;
5406 short int var168
/* : Bool */;
5407 short int var170
/* : Bool */;
5408 static val
* varonce171
;
5409 val
* var172
/* : String */;
5410 char* var173
/* : NativeString */;
5411 long var174
/* : Int */;
5412 val
* var175
/* : FlatString */;
5413 static val
* varonce176
;
5414 val
* var177
/* : String */;
5415 char* var178
/* : NativeString */;
5416 long var179
/* : Int */;
5417 val
* var180
/* : FlatString */;
5418 val
* var181
/* : Array[Object] */;
5419 long var182
/* : Int */;
5420 val
* var183
/* : NativeArray[Object] */;
5421 val
* var184
/* : String */;
5422 val
* var185
/* : nullable MSignature */;
5423 val
* var187
/* : nullable MSignature */;
5424 val
* var_msignature
/* var msignature: MSignature */;
5425 short int var188
/* : Bool */;
5426 val
* var189
/* : MType */;
5427 short int var190
/* : Bool */;
5430 const char* var_class_name193
;
5431 val
* var194
/* : CallSite */;
5432 val
* var195
/* : MModule */;
5433 val
* var197
/* : MModule */;
5434 val
* var198
/* : nullable MClassType */;
5435 val
* var200
/* : nullable MClassType */;
5436 short int var201
/* : Bool */;
5437 val
* var202
/* : MProperty */;
5438 val
* var204
/* : MProperty */;
5439 short int var205
/* : Bool */;
5440 val
* var_callsite
/* var callsite: CallSite */;
5441 val
* var208
/* : AExprs */;
5442 val
* var209
/* : Array[AExpr] */;
5443 val
* var_args
/* var args: Array[AExpr] */;
5444 long var210
/* : Int */;
5445 long var211
/* : Int */;
5446 short int var212
/* : Bool */;
5447 short int var214
/* : Bool */;
5450 const char* var_class_name217
;
5451 short int var218
/* : Bool */;
5452 short int var219
/* : Bool */;
5453 val
* var220
/* : nullable MSignature */;
5454 val
* var222
/* : nullable MSignature */;
5455 long var223
/* : Int */;
5456 long var224
/* : Int */;
5457 short int var225
/* : Bool */;
5458 short int var227
/* : Bool */;
5461 const char* var_class_name230
;
5462 short int var231
/* : Bool */;
5463 static val
* varonce232
;
5464 val
* var233
/* : String */;
5465 char* var234
/* : NativeString */;
5466 long var235
/* : Int */;
5467 val
* var236
/* : FlatString */;
5468 val
* var237
/* : nullable MSignature */;
5469 val
* var239
/* : nullable MSignature */;
5470 long var240
/* : Int */;
5471 static val
* varonce241
;
5472 val
* var242
/* : String */;
5473 char* var243
/* : NativeString */;
5474 long var244
/* : Int */;
5475 val
* var245
/* : FlatString */;
5476 long var246
/* : Int */;
5477 static val
* varonce247
;
5478 val
* var248
/* : String */;
5479 char* var249
/* : NativeString */;
5480 long var250
/* : Int */;
5481 val
* var251
/* : FlatString */;
5482 val
* var252
/* : Array[Object] */;
5483 long var253
/* : Int */;
5484 val
* var254
/* : NativeArray[Object] */;
5485 val
* var255
/* : Object */;
5486 val
* var256
/* : Object */;
5487 val
* var257
/* : String */;
5488 long var258
/* : Int */;
5489 long var_i
/* var i: Int */;
5490 val
* var259
/* : Array[MParameter] */;
5491 val
* var261
/* : Array[MParameter] */;
5492 val
* var262
/* : ArrayIterator[nullable Object] */;
5493 short int var263
/* : Bool */;
5494 val
* var264
/* : nullable Object */;
5495 val
* var_sp
/* var sp: MParameter */;
5496 val
* var265
/* : nullable MSignature */;
5497 val
* var267
/* : nullable MSignature */;
5498 val
* var268
/* : Array[MParameter] */;
5499 val
* var270
/* : Array[MParameter] */;
5500 val
* var271
/* : nullable Object */;
5501 val
* var_p
/* var p: MParameter */;
5502 val
* var272
/* : MType */;
5503 val
* var274
/* : MType */;
5504 val
* var275
/* : MType */;
5505 val
* var277
/* : MType */;
5506 short int var278
/* : Bool */;
5507 short int var279
/* : Bool */;
5508 static val
* varonce280
;
5509 val
* var281
/* : String */;
5510 char* var282
/* : NativeString */;
5511 long var283
/* : Int */;
5512 val
* var284
/* : FlatString */;
5513 static val
* varonce285
;
5514 val
* var286
/* : String */;
5515 char* var287
/* : NativeString */;
5516 long var288
/* : Int */;
5517 val
* var289
/* : FlatString */;
5518 val
* var290
/* : MType */;
5519 val
* var292
/* : MType */;
5520 static val
* varonce293
;
5521 val
* var294
/* : String */;
5522 char* var295
/* : NativeString */;
5523 long var296
/* : Int */;
5524 val
* var297
/* : FlatString */;
5525 val
* var298
/* : String */;
5526 val
* var300
/* : String */;
5527 static val
* varonce301
;
5528 val
* var302
/* : String */;
5529 char* var303
/* : NativeString */;
5530 long var304
/* : Int */;
5531 val
* var305
/* : FlatString */;
5532 val
* var306
/* : MType */;
5533 val
* var308
/* : MType */;
5534 static val
* varonce309
;
5535 val
* var310
/* : String */;
5536 char* var311
/* : NativeString */;
5537 long var312
/* : Int */;
5538 val
* var313
/* : FlatString */;
5539 val
* var314
/* : Array[Object] */;
5540 long var315
/* : Int */;
5541 val
* var316
/* : NativeArray[Object] */;
5542 val
* var317
/* : Object */;
5543 val
* var318
/* : String */;
5544 long var319
/* : Int */;
5545 long var320
/* : Int */;
5546 short int var322
/* : Bool */;
5549 const char* var_class_name325
;
5550 long var326
/* : Int */;
5551 short int var328
/* : Bool */;
5554 { /* Inline typing#TypeVisitor#anchor (var_v) on <var_v:TypeVisitor> */
5555 var2
= var_v
->attrs
[COLOR_typing__TypeVisitor___anchor
].val
; /* _anchor on <var_v:TypeVisitor> */
5562 if (var_recvtype
== NULL
) {
5563 var4
= 0; /* is null */
5565 var4
= 1; /* arg is null and recv is not */
5568 { /* Inline kernel#Object#!= (var_recvtype,var3) on <var_recvtype:nullable MClassType> */
5571 var8
= ((short int (*)(val
*, val
*))(var_recvtype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_recvtype
, var_other
) /* == on <var_recvtype:nullable MClassType(MClassType)>*/;
5581 if (unlikely(!var4
)) {
5582 PRINT_ERROR("Runtime error: %s", "Assert failed");
5583 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1513);
5587 { /* Inline typing#TypeVisitor#mpropdef (var_v) on <var_v:TypeVisitor> */
5588 var12
= var_v
->attrs
[COLOR_typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <var_v:TypeVisitor> */
5590 RET_LABEL11
:(void)0;
5593 var_mpropdef
= var10
;
5594 /* <var_mpropdef:nullable MPropDef> isa MMethodDef */
5595 cltype
= type_model__MMethodDef
.color
;
5596 idtype
= type_model__MMethodDef
.id
;
5597 if(var_mpropdef
== NULL
) {
5600 if(cltype
>= var_mpropdef
->type
->table_size
) {
5603 var13
= var_mpropdef
->type
->type_table
[cltype
] == idtype
;
5606 if (unlikely(!var13
)) {
5607 PRINT_ERROR("Runtime error: %s", "Assert failed");
5608 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1515);
5612 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
5613 var16
= var_mpropdef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_mpropdef:nullable MPropDef(MMethodDef)> */
5614 if (unlikely(var16
== NULL
)) {
5615 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5616 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
5620 RET_LABEL15
:(void)0;
5623 var_mproperty
= var14
;
5625 var_superprop
= var17
;
5627 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
5628 var20
= var_mpropdef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:nullable MPropDef(MMethodDef)> */
5629 if (unlikely(var20
== NULL
)) {
5630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5631 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
5635 RET_LABEL19
:(void)0;
5639 { /* Inline model#MClassDef#supertypes (var18) on <var18:MClassDef> */
5640 var23
= var18
->attrs
[COLOR_model__MClassDef___supertypes
].val
; /* _supertypes on <var18:MClassDef> */
5641 if (unlikely(var23
== NULL
)) {
5642 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
5643 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 517);
5647 RET_LABEL22
:(void)0;
5651 var24
= array__AbstractArrayRead__iterator(var21
);
5655 var25
= array__ArrayIterator__is_ok(var24
);
5659 var26
= array__ArrayIterator__item(var24
);
5661 var_msupertype
= var26
;
5663 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
5664 var29
= var_v
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
5665 if (unlikely(var29
== NULL
)) {
5666 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
5667 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 38);
5671 RET_LABEL28
:(void)0;
5675 var30
= model__MClassType__anchor_to(var_msupertype
, var27
, var_recvtype
);
5677 var_msupertype
= var30
;
5679 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
5680 var33
= var_v
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
5681 if (unlikely(var33
== NULL
)) {
5682 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5683 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 36);
5687 RET_LABEL32
:(void)0;
5691 { /* Inline modelbuilder#ModelBuilder#toolcontext (var31) on <var31:ModelBuilder> */
5692 var36
= var31
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var31:ModelBuilder> */
5693 if (unlikely(var36
== NULL
)) {
5694 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5695 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
5699 RET_LABEL35
:(void)0;
5703 { /* Inline toolcontext#ToolContext#error_count (var34) on <var34:ToolContext> */
5704 var39
= var34
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var34:ToolContext> */
5706 RET_LABEL38
:(void)0;
5709 var_errcount
= var37
;
5711 { /* Inline model#MProperty#name (var_mproperty) on <var_mproperty:MMethod> */
5712 var42
= var_mproperty
->attrs
[COLOR_model__MProperty___name
].val
; /* _name on <var_mproperty:MMethod> */
5713 if (unlikely(var42
== NULL
)) {
5714 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5715 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
5719 RET_LABEL41
:(void)0;
5723 var43
= typing__TypeVisitor__try_get_mproperty_by_name2(var_v
, self
, var_msupertype
, var40
);
5725 /* <var43:nullable MProperty> isa nullable MMethod */
5726 cltype45
= type_nullable_model__MMethod
.color
;
5727 idtype46
= type_nullable_model__MMethod
.id
;
5731 if(cltype45
>= var43
->type
->table_size
) {
5734 var44
= var43
->type
->type_table
[cltype45
] == idtype46
;
5737 if (unlikely(!var44
)) {
5738 var_class_name
= var43
== NULL ?
"null" : var43
->type
->name
;
5739 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name
);
5740 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1521);
5743 var_candidate
= var43
;
5745 if (var_candidate
== NULL
) {
5746 var48
= 1; /* is null */
5748 var48
= 0; /* arg is null but recv is not */
5751 { /* Inline kernel#Object#== (var_candidate,var47) on <var_candidate:nullable MMethod> */
5752 var_other51
= var47
;
5754 { /* Inline kernel#Object#is_same_instance (var_candidate,var_other51) on <var_candidate:nullable MMethod(MMethod)> */
5755 var54
= var_candidate
== var_other51
;
5758 RET_LABEL53
:(void)0;
5763 RET_LABEL50
:(void)0;
5769 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
5770 var57
= var_v
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
5771 if (unlikely(var57
== NULL
)) {
5772 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5773 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 36);
5777 RET_LABEL56
:(void)0;
5781 { /* Inline modelbuilder#ModelBuilder#toolcontext (var55) on <var55:ModelBuilder> */
5782 var60
= var55
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var55:ModelBuilder> */
5783 if (unlikely(var60
== NULL
)) {
5784 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5785 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
5789 RET_LABEL59
:(void)0;
5793 { /* Inline toolcontext#ToolContext#error_count (var58) on <var58:ToolContext> */
5794 var63
= var58
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var58:ToolContext> */
5796 RET_LABEL62
:(void)0;
5800 { /* Inline kernel#Int#> (var61,var_errcount) on <var61:Int> */
5801 /* Covariant cast for argument 0 (i) <var_errcount:Int> isa OTHER */
5802 /* <var_errcount:Int> isa OTHER */
5803 var66
= 1; /* easy <var_errcount:Int> isa OTHER*/
5804 if (unlikely(!var66
)) {
5805 var_class_name69
= type_kernel__Int
.name
;
5806 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name69
);
5807 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
5810 var70
= var61
> var_errcount
;
5813 RET_LABEL65
:(void)0;
5820 goto CONTINUE_label
;
5824 if (var_superprop
== NULL
) {
5825 var73
= 0; /* is null */
5827 var73
= 1; /* arg is null and recv is not */
5830 { /* Inline kernel#Object#!= (var_superprop,var72) on <var_superprop:nullable MMethodDef> */
5833 var77
= ((short int (*)(val
*, val
*))(var_superprop
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_superprop
, var_other
) /* == on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
5839 RET_LABEL75
:(void)0;
5846 { /* Inline model#MPropDef#mproperty (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
5847 var81
= var_superprop
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_superprop:nullable MMethodDef(MMethodDef)> */
5848 if (unlikely(var81
== NULL
)) {
5849 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5850 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
5854 RET_LABEL80
:(void)0;
5858 { /* Inline kernel#Object#!= (var79,var_candidate) on <var79:MProperty(MMethod)> */
5859 var_other
= var_candidate
;
5861 var86
= ((short int (*)(val
*, val
*))(var79
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var79
, var_other
) /* == on <var79:MProperty(MMethod)>*/;
5867 RET_LABEL84
:(void)0;
5879 var89
= "Error: conflicting super constructor to call for ";
5881 var91
= string__NativeString__to_s_with_length(var89
, var90
);
5890 var96
= string__NativeString__to_s_with_length(var94
, var95
);
5895 var97
= model__MProperty__full_name(var_candidate
);
5902 var102
= string__NativeString__to_s_with_length(var100
, var101
);
5907 { /* Inline model#MPropDef#mproperty (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
5908 var105
= var_superprop
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_superprop:nullable MMethodDef(MMethodDef)> */
5909 if (unlikely(var105
== NULL
)) {
5910 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5911 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
5915 RET_LABEL104
:(void)0;
5919 var106
= model__MProperty__full_name(var103
);
5921 var107
= NEW_array__Array(&type_array__Arraykernel__Object
);
5922 { /* var107 = array_instance Array[Object] */
5924 var109
= NEW_array__NativeArray(var108
, &type_array__NativeArraykernel__Object
);
5925 ((struct instance_array__NativeArray
*)var109
)->values
[0] = (val
*) var88
;
5926 ((struct instance_array__NativeArray
*)var109
)->values
[1] = (val
*) var_mproperty
;
5927 ((struct instance_array__NativeArray
*)var109
)->values
[2] = (val
*) var93
;
5928 ((struct instance_array__NativeArray
*)var109
)->values
[3] = (val
*) var97
;
5929 ((struct instance_array__NativeArray
*)var109
)->values
[4] = (val
*) var99
;
5930 ((struct instance_array__NativeArray
*)var109
)->values
[5] = (val
*) var106
;
5932 ((void (*)(val
*, val
*, long))(var107
->class->vft
[COLOR_array__Array__with_native
]))(var107
, var109
, var108
) /* with_native on <var107:Array[Object]>*/;
5936 var110
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_string__Object__to_s
]))(var107
) /* to_s on <var107:Array[Object]>*/;
5939 typing__TypeVisitor__error(var_v
, self
, var110
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
5945 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
5946 var113
= var_v
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
5947 if (unlikely(var113
== NULL
)) {
5948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
5949 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 38);
5953 RET_LABEL112
:(void)0;
5957 var114
= model__MProperty__lookup_definitions(var_candidate
, var111
, var_recvtype
);
5959 var_candidatedefs
= var114
;
5961 if (var_superprop
== NULL
) {
5962 var116
= 0; /* is null */
5964 var116
= 1; /* arg is null and recv is not */
5967 { /* Inline kernel#Object#!= (var_superprop,var115) on <var_superprop:nullable MMethodDef> */
5970 var120
= ((short int (*)(val
*, val
*))(var_superprop
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_superprop
, var_other
) /* == on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
5976 RET_LABEL118
:(void)0;
5982 var122
= abstract_collection__SequenceRead__first(var_candidatedefs
);
5985 { /* Inline kernel#Object#== (var_superprop,var122) on <var_superprop:nullable MMethodDef(MMethodDef)> */
5986 var_other51
= var122
;
5988 { /* Inline kernel#Object#is_same_instance (var_superprop,var_other51) on <var_superprop:nullable MMethodDef(MMethodDef)> */
5989 var128
= var_superprop
== var_other51
;
5992 RET_LABEL127
:(void)0;
5997 RET_LABEL125
:(void)0;
6002 goto CONTINUE_label
;
6006 array__Array__add(var_candidatedefs
, var_superprop
); /* Direct call array#Array#add on <var_candidatedefs:Array[MMethodDef]>*/
6011 var129
= array__AbstractArrayRead__length(var_candidatedefs
);
6015 { /* Inline kernel#Int#> (var129,var130) on <var129:Int> */
6016 /* Covariant cast for argument 0 (i) <var130:Int> isa OTHER */
6017 /* <var130:Int> isa OTHER */
6018 var133
= 1; /* easy <var130:Int> isa OTHER*/
6019 if (unlikely(!var133
)) {
6020 var_class_name136
= type_kernel__Int
.name
;
6021 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name136
);
6022 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
6025 var137
= var129
> var130
;
6028 RET_LABEL132
:(void)0;
6033 var139
= varonce138
;
6035 var140
= "Error: confliting property definitions for property ";
6037 var142
= string__NativeString__to_s_with_length(var140
, var141
);
6039 varonce138
= var139
;
6042 var144
= varonce143
;
6046 var147
= string__NativeString__to_s_with_length(var145
, var146
);
6048 varonce143
= var144
;
6051 var149
= varonce148
;
6055 var152
= string__NativeString__to_s_with_length(var150
, var151
);
6057 varonce148
= var149
;
6060 var154
= varonce153
;
6064 var157
= string__NativeString__to_s_with_length(var155
, var156
);
6066 varonce153
= var154
;
6069 var158
= string__Collection__join(var_candidatedefs
, var154
);
6071 var159
= NEW_array__Array(&type_array__Arraykernel__Object
);
6072 { /* var159 = array_instance Array[Object] */
6074 var161
= NEW_array__NativeArray(var160
, &type_array__NativeArraykernel__Object
);
6075 ((struct instance_array__NativeArray
*)var161
)->values
[0] = (val
*) var139
;
6076 ((struct instance_array__NativeArray
*)var161
)->values
[1] = (val
*) var_mproperty
;
6077 ((struct instance_array__NativeArray
*)var161
)->values
[2] = (val
*) var144
;
6078 ((struct instance_array__NativeArray
*)var161
)->values
[3] = (val
*) var_recvtype
;
6079 ((struct instance_array__NativeArray
*)var161
)->values
[4] = (val
*) var149
;
6080 ((struct instance_array__NativeArray
*)var161
)->values
[5] = (val
*) var158
;
6082 ((void (*)(val
*, val
*, long))(var159
->class->vft
[COLOR_array__Array__with_native
]))(var159
, var161
, var160
) /* with_native on <var159:Array[Object]>*/;
6086 var162
= ((val
* (*)(val
*))(var159
->class->vft
[COLOR_string__Object__to_s
]))(var159
) /* to_s on <var159:Array[Object]>*/;
6089 typing__TypeVisitor__error(var_v
, self
, var162
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
6095 var163
= abstract_collection__SequenceRead__first(var_candidatedefs
);
6097 var_superprop
= var163
;
6098 CONTINUE_label
: (void)0;
6100 array__ArrayIterator__next(var24
); /* Direct call array#ArrayIterator#next on <var24:ArrayIterator[nullable Object]>*/
6103 BREAK_label
: (void)0;
6105 if (var_superprop
== NULL
) {
6106 var165
= 1; /* is null */
6108 var165
= 0; /* arg is null but recv is not */
6111 { /* Inline kernel#Object#== (var_superprop,var164) on <var_superprop:nullable MMethodDef> */
6112 var_other51
= var164
;
6114 { /* Inline kernel#Object#is_same_instance (var_superprop,var_other51) on <var_superprop:nullable MMethodDef(MMethodDef)> */
6115 var170
= var_superprop
== var_other51
;
6118 RET_LABEL169
:(void)0;
6123 RET_LABEL167
:(void)0;
6129 var172
= varonce171
;
6131 var173
= "Error: No super method to call for ";
6133 var175
= string__NativeString__to_s_with_length(var173
, var174
);
6135 varonce171
= var172
;
6138 var177
= varonce176
;
6142 var180
= string__NativeString__to_s_with_length(var178
, var179
);
6144 varonce176
= var177
;
6146 var181
= NEW_array__Array(&type_array__Arraykernel__Object
);
6147 { /* var181 = array_instance Array[Object] */
6149 var183
= NEW_array__NativeArray(var182
, &type_array__NativeArraykernel__Object
);
6150 ((struct instance_array__NativeArray
*)var183
)->values
[0] = (val
*) var172
;
6151 ((struct instance_array__NativeArray
*)var183
)->values
[1] = (val
*) var_mproperty
;
6152 ((struct instance_array__NativeArray
*)var183
)->values
[2] = (val
*) var177
;
6154 ((void (*)(val
*, val
*, long))(var181
->class->vft
[COLOR_array__Array__with_native
]))(var181
, var183
, var182
) /* with_native on <var181:Array[Object]>*/;
6158 var184
= ((val
* (*)(val
*))(var181
->class->vft
[COLOR_string__Object__to_s
]))(var181
) /* to_s on <var181:Array[Object]>*/;
6161 typing__TypeVisitor__error(var_v
, self
, var184
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
6167 { /* Inline model#MMethodDef#msignature (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
6168 var187
= var_superprop
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_superprop:nullable MMethodDef(MMethodDef)> */
6170 RET_LABEL186
:(void)0;
6173 if (unlikely(var185
== NULL
)) {
6174 PRINT_ERROR("Runtime error: %s", "Cast failed");
6175 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1546);
6178 var_msignature
= var185
;
6181 var189
= typing__TypeVisitor__resolve_for(var_v
, var_msignature
, var_recvtype
, var188
);
6183 /* <var189:MType> isa MSignature */
6184 cltype191
= type_model__MSignature
.color
;
6185 idtype192
= type_model__MSignature
.id
;
6186 if(cltype191
>= var189
->type
->table_size
) {
6189 var190
= var189
->type
->type_table
[cltype191
] == idtype192
;
6191 if (unlikely(!var190
)) {
6192 var_class_name193
= var189
== NULL ?
"null" : var189
->type
->name
;
6193 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MSignature", var_class_name193
);
6194 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1547);
6197 var_msignature
= var189
;
6198 var194
= NEW_typing__CallSite(&type_typing__CallSite
);
6200 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
6201 var197
= var_v
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
6202 if (unlikely(var197
== NULL
)) {
6203 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6204 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 38);
6208 RET_LABEL196
:(void)0;
6212 { /* Inline typing#TypeVisitor#anchor (var_v) on <var_v:TypeVisitor> */
6213 var200
= var_v
->attrs
[COLOR_typing__TypeVisitor___anchor
].val
; /* _anchor on <var_v:TypeVisitor> */
6215 RET_LABEL199
:(void)0;
6220 { /* Inline model#MPropDef#mproperty (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
6221 var204
= var_superprop
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_superprop:nullable MMethodDef(MMethodDef)> */
6222 if (unlikely(var204
== NULL
)) {
6223 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6224 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
6228 RET_LABEL203
:(void)0;
6233 { /* Inline typing#CallSite#init (var194,self,var_recvtype,var195,var198,var201,var202,var_superprop,var_msignature,var205) on <var194:CallSite> */
6234 var194
->attrs
[COLOR_typing__CallSite___node
].val
= self
; /* _node on <var194:CallSite> */
6235 var194
->attrs
[COLOR_typing__CallSite___recv
].val
= var_recvtype
; /* _recv on <var194:CallSite> */
6236 var194
->attrs
[COLOR_typing__CallSite___mmodule
].val
= var195
; /* _mmodule on <var194:CallSite> */
6237 var194
->attrs
[COLOR_typing__CallSite___anchor
].val
= var198
; /* _anchor on <var194:CallSite> */
6238 var194
->attrs
[COLOR_typing__CallSite___recv_is_self
].s
= var201
; /* _recv_is_self on <var194:CallSite> */
6239 var194
->attrs
[COLOR_typing__CallSite___mproperty
].val
= var202
; /* _mproperty on <var194:CallSite> */
6240 var194
->attrs
[COLOR_typing__CallSite___mpropdef
].val
= var_superprop
; /* _mpropdef on <var194:CallSite> */
6241 var194
->attrs
[COLOR_typing__CallSite___msignature
].val
= var_msignature
; /* _msignature on <var194:CallSite> */
6242 var194
->attrs
[COLOR_typing__CallSite___erasure_cast
].s
= var205
; /* _erasure_cast on <var194:CallSite> */
6243 RET_LABEL206
:(void)0;
6246 var_callsite
= var194
;
6248 { /* Inline typing#ASuperExpr#callsite= (self,var_callsite) on <self:ASuperExpr> */
6249 self
->attrs
[COLOR_typing__ASuperExpr___callsite
].val
= var_callsite
; /* _callsite on <self:ASuperExpr> */
6250 RET_LABEL207
:(void)0;
6254 var208
= parser_nodes__ASuperExpr__n_args(self
);
6257 var209
= typing__AExprs__to_a(var208
);
6261 var210
= array__AbstractArrayRead__length(var_args
);
6265 { /* Inline kernel#Int#> (var210,var211) on <var210:Int> */
6266 /* Covariant cast for argument 0 (i) <var211:Int> isa OTHER */
6267 /* <var211:Int> isa OTHER */
6268 var214
= 1; /* easy <var211:Int> isa OTHER*/
6269 if (unlikely(!var214
)) {
6270 var_class_name217
= type_kernel__Int
.name
;
6271 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name217
);
6272 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
6275 var218
= var210
> var211
;
6278 RET_LABEL213
:(void)0;
6283 var219
= typing__CallSite__check_signature(var_callsite
, var_v
, var_args
);
6288 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
6289 var222
= var_mpropdef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable MPropDef(MMethodDef)> */
6291 RET_LABEL221
:(void)0;
6294 if (var220
== NULL
) {
6295 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6296 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1557);
6299 var223
= model__MSignature__arity(var220
);
6302 var224
= model__MSignature__arity(var_msignature
);
6305 { /* Inline kernel#Int#< (var223,var224) on <var223:Int> */
6306 /* Covariant cast for argument 0 (i) <var224:Int> isa OTHER */
6307 /* <var224:Int> isa OTHER */
6308 var227
= 1; /* easy <var224:Int> isa OTHER*/
6309 if (unlikely(!var227
)) {
6310 var_class_name230
= type_kernel__Int
.name
;
6311 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name230
);
6312 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
6315 var231
= var223
< var224
;
6318 RET_LABEL226
:(void)0;
6323 var233
= varonce232
;
6325 var234
= "Error: Not enough implicit arguments to pass. Got ";
6327 var236
= string__NativeString__to_s_with_length(var234
, var235
);
6329 varonce232
= var233
;
6332 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
6333 var239
= var_mpropdef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable MPropDef(MMethodDef)> */
6335 RET_LABEL238
:(void)0;
6338 if (var237
== NULL
) {
6339 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6340 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1558);
6343 var240
= model__MSignature__arity(var237
);
6346 var242
= varonce241
;
6348 var243
= ", expected at least ";
6350 var245
= string__NativeString__to_s_with_length(var243
, var244
);
6352 varonce241
= var242
;
6355 var246
= model__MSignature__arity(var_msignature
);
6358 var248
= varonce247
;
6360 var249
= ". Signature is ";
6362 var251
= string__NativeString__to_s_with_length(var249
, var250
);
6364 varonce247
= var248
;
6366 var252
= NEW_array__Array(&type_array__Arraykernel__Object
);
6367 { /* var252 = array_instance Array[Object] */
6369 var254
= NEW_array__NativeArray(var253
, &type_array__NativeArraykernel__Object
);
6370 ((struct instance_array__NativeArray
*)var254
)->values
[0] = (val
*) var233
;
6371 var255
= BOX_kernel__Int(var240
); /* autobox from Int to Object */
6372 ((struct instance_array__NativeArray
*)var254
)->values
[1] = (val
*) var255
;
6373 ((struct instance_array__NativeArray
*)var254
)->values
[2] = (val
*) var242
;
6374 var256
= BOX_kernel__Int(var246
); /* autobox from Int to Object */
6375 ((struct instance_array__NativeArray
*)var254
)->values
[3] = (val
*) var256
;
6376 ((struct instance_array__NativeArray
*)var254
)->values
[4] = (val
*) var248
;
6377 ((struct instance_array__NativeArray
*)var254
)->values
[5] = (val
*) var_msignature
;
6379 ((void (*)(val
*, val
*, long))(var252
->class->vft
[COLOR_array__Array__with_native
]))(var252
, var254
, var253
) /* with_native on <var252:Array[Object]>*/;
6383 var257
= ((val
* (*)(val
*))(var252
->class->vft
[COLOR_string__Object__to_s
]))(var252
) /* to_s on <var252:Array[Object]>*/;
6386 typing__TypeVisitor__error(var_v
, self
, var257
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
6394 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
6395 var261
= var_msignature
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
6396 if (unlikely(var261
== NULL
)) {
6397 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6398 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
6402 RET_LABEL260
:(void)0;
6406 var262
= array__AbstractArrayRead__iterator(var259
);
6410 var263
= array__ArrayIterator__is_ok(var262
);
6414 var264
= array__ArrayIterator__item(var262
);
6418 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
6419 var267
= var_mpropdef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable MPropDef(MMethodDef)> */
6421 RET_LABEL266
:(void)0;
6424 if (var265
== NULL
) {
6425 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6426 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1564);
6429 { /* Inline model#MSignature#mparameters (var265) on <var265:nullable MSignature> */
6430 if (unlikely(var265
== NULL
)) {
6431 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6432 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
6435 var270
= var265
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var265:nullable MSignature> */
6436 if (unlikely(var270
== NULL
)) {
6437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6438 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
6442 RET_LABEL269
:(void)0;
6446 var271
= array__Array___91d_93d(var268
, var_i
);
6450 { /* Inline model#MParameter#mtype (var_p) on <var_p:MParameter> */
6451 var274
= var_p
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var_p:MParameter> */
6452 if (unlikely(var274
== NULL
)) {
6453 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6454 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
6458 RET_LABEL273
:(void)0;
6462 { /* Inline model#MParameter#mtype (var_sp) on <var_sp:MParameter> */
6463 var277
= var_sp
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var_sp:MParameter> */
6464 if (unlikely(var277
== NULL
)) {
6465 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6466 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
6470 RET_LABEL276
:(void)0;
6474 var278
= typing__TypeVisitor__is_subtype(var_v
, var272
, var275
);
6479 var281
= varonce280
;
6481 var282
= "Type error: expected argument #";
6483 var284
= string__NativeString__to_s_with_length(var282
, var283
);
6485 varonce280
= var281
;
6488 var286
= varonce285
;
6490 var287
= " of type ";
6492 var289
= string__NativeString__to_s_with_length(var287
, var288
);
6494 varonce285
= var286
;
6497 { /* Inline model#MParameter#mtype (var_sp) on <var_sp:MParameter> */
6498 var292
= var_sp
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var_sp:MParameter> */
6499 if (unlikely(var292
== NULL
)) {
6500 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6501 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
6505 RET_LABEL291
:(void)0;
6509 var294
= varonce293
;
6511 var295
= ", got implicit argument ";
6513 var297
= string__NativeString__to_s_with_length(var295
, var296
);
6515 varonce293
= var294
;
6518 { /* Inline model#MParameter#name (var_p) on <var_p:MParameter> */
6519 var300
= var_p
->attrs
[COLOR_model__MParameter___name
].val
; /* _name on <var_p:MParameter> */
6520 if (unlikely(var300
== NULL
)) {
6521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6522 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1549);
6526 RET_LABEL299
:(void)0;
6530 var302
= varonce301
;
6532 var303
= " of type ";
6534 var305
= string__NativeString__to_s_with_length(var303
, var304
);
6536 varonce301
= var302
;
6539 { /* Inline model#MParameter#mtype (var_p) on <var_p:MParameter> */
6540 var308
= var_p
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var_p:MParameter> */
6541 if (unlikely(var308
== NULL
)) {
6542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6543 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
6547 RET_LABEL307
:(void)0;
6551 var310
= varonce309
;
6553 var311
= ". Signature is ";
6555 var313
= string__NativeString__to_s_with_length(var311
, var312
);
6557 varonce309
= var310
;
6559 var314
= NEW_array__Array(&type_array__Arraykernel__Object
);
6560 { /* var314 = array_instance Array[Object] */
6562 var316
= NEW_array__NativeArray(var315
, &type_array__NativeArraykernel__Object
);
6563 ((struct instance_array__NativeArray
*)var316
)->values
[0] = (val
*) var281
;
6564 var317
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
6565 ((struct instance_array__NativeArray
*)var316
)->values
[1] = (val
*) var317
;
6566 ((struct instance_array__NativeArray
*)var316
)->values
[2] = (val
*) var286
;
6567 ((struct instance_array__NativeArray
*)var316
)->values
[3] = (val
*) var290
;
6568 ((struct instance_array__NativeArray
*)var316
)->values
[4] = (val
*) var294
;
6569 ((struct instance_array__NativeArray
*)var316
)->values
[5] = (val
*) var298
;
6570 ((struct instance_array__NativeArray
*)var316
)->values
[6] = (val
*) var302
;
6571 ((struct instance_array__NativeArray
*)var316
)->values
[7] = (val
*) var306
;
6572 ((struct instance_array__NativeArray
*)var316
)->values
[8] = (val
*) var310
;
6573 ((struct instance_array__NativeArray
*)var316
)->values
[9] = (val
*) var_msignature
;
6575 ((void (*)(val
*, val
*, long))(var314
->class->vft
[COLOR_array__Array__with_native
]))(var314
, var316
, var315
) /* with_native on <var314:Array[Object]>*/;
6579 var318
= ((val
* (*)(val
*))(var314
->class->vft
[COLOR_string__Object__to_s
]))(var314
) /* to_s on <var314:Array[Object]>*/;
6582 typing__TypeVisitor__error(var_v
, self
, var318
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
6589 { /* Inline kernel#Int#+ (var_i,var319) on <var_i:Int> */
6590 /* Covariant cast for argument 0 (i) <var319:Int> isa OTHER */
6591 /* <var319:Int> isa OTHER */
6592 var322
= 1; /* easy <var319:Int> isa OTHER*/
6593 if (unlikely(!var322
)) {
6594 var_class_name325
= type_kernel__Int
.name
;
6595 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name325
);
6596 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
6599 var326
= var_i
+ var319
;
6602 RET_LABEL321
:(void)0;
6606 CONTINUE_label327
: (void)0;
6608 array__ArrayIterator__next(var262
); /* Direct call array#ArrayIterator#next on <var262:ArrayIterator[nullable Object]>*/
6611 BREAK_label327
: (void)0;
6615 { /* Inline typing#AExpr#is_typed= (self,var328) on <self:ASuperExpr> */
6616 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var328
; /* _is_typed on <self:ASuperExpr> */
6617 RET_LABEL329
:(void)0;
6622 /* method typing#ASuperExpr#process_superinit for (self: Object, TypeVisitor) */
6623 void VIRTUAL_typing__ASuperExpr__process_superinit(val
* self
, val
* p0
) {
6624 typing__ASuperExpr__process_superinit(self
, p0
); /* Direct call typing#ASuperExpr#process_superinit on <self:Object(ASuperExpr)>*/
6627 /* method typing#ANewExpr#callsite for (self: ANewExpr): nullable CallSite */
6628 val
* typing__ANewExpr__callsite(val
* self
) {
6629 val
* var
/* : nullable CallSite */;
6630 val
* var1
/* : nullable CallSite */;
6631 var1
= self
->attrs
[COLOR_typing__ANewExpr___callsite
].val
; /* _callsite on <self:ANewExpr> */
6636 /* method typing#ANewExpr#callsite for (self: Object): nullable CallSite */
6637 val
* VIRTUAL_typing__ANewExpr__callsite(val
* self
) {
6638 val
* var
/* : nullable CallSite */;
6639 val
* var1
/* : nullable CallSite */;
6640 val
* var3
/* : nullable CallSite */;
6641 { /* Inline typing#ANewExpr#callsite (self) on <self:Object(ANewExpr)> */
6642 var3
= self
->attrs
[COLOR_typing__ANewExpr___callsite
].val
; /* _callsite on <self:Object(ANewExpr)> */
6650 /* method typing#ANewExpr#callsite= for (self: ANewExpr, nullable CallSite) */
6651 void typing__ANewExpr__callsite_61d(val
* self
, val
* p0
) {
6652 self
->attrs
[COLOR_typing__ANewExpr___callsite
].val
= p0
; /* _callsite on <self:ANewExpr> */
6655 /* method typing#ANewExpr#callsite= for (self: Object, nullable CallSite) */
6656 void VIRTUAL_typing__ANewExpr__callsite_61d(val
* self
, val
* p0
) {
6657 { /* Inline typing#ANewExpr#callsite= (self,p0) on <self:Object(ANewExpr)> */
6658 self
->attrs
[COLOR_typing__ANewExpr___callsite
].val
= p0
; /* _callsite on <self:Object(ANewExpr)> */
6663 /* method typing#ANewExpr#accept_typing for (self: ANewExpr, TypeVisitor) */
6664 void typing__ANewExpr__accept_typing(val
* self
, val
* p0
) {
6665 val
* var_v
/* var v: TypeVisitor */;
6666 val
* var
/* : AType */;
6667 val
* var1
/* : nullable MType */;
6668 val
* var_recvtype
/* var recvtype: nullable MType */;
6669 val
* var2
/* : null */;
6670 short int var3
/* : Bool */;
6671 short int var4
/* : Bool */;
6672 val
* var_other
/* var other: nullable Object */;
6673 short int var6
/* : Bool */;
6674 short int var8
/* : Bool */;
6675 short int var10
/* : Bool */;
6678 short int var11
/* : Bool */;
6679 short int var12
/* : Bool */;
6682 static val
* varonce
;
6683 val
* var15
/* : String */;
6684 char* var16
/* : NativeString */;
6685 long var17
/* : Int */;
6686 val
* var18
/* : FlatString */;
6687 static val
* varonce19
;
6688 val
* var20
/* : String */;
6689 char* var21
/* : NativeString */;
6690 long var22
/* : Int */;
6691 val
* var23
/* : FlatString */;
6692 val
* var24
/* : Array[Object] */;
6693 long var25
/* : Int */;
6694 val
* var26
/* : NativeArray[Object] */;
6695 val
* var27
/* : String */;
6696 static val
* varonce28
;
6697 val
* var29
/* : String */;
6698 char* var30
/* : NativeString */;
6699 long var31
/* : Int */;
6700 val
* var32
/* : FlatString */;
6701 static val
* varonce33
;
6702 val
* var34
/* : String */;
6703 char* var35
/* : NativeString */;
6704 long var36
/* : Int */;
6705 val
* var37
/* : FlatString */;
6706 val
* var38
/* : Array[Object] */;
6707 long var39
/* : Int */;
6708 val
* var40
/* : NativeArray[Object] */;
6709 val
* var41
/* : String */;
6710 val
* var42
/* : MClass */;
6711 val
* var44
/* : MClass */;
6712 val
* var45
/* : MClassKind */;
6713 val
* var47
/* : MClassKind */;
6714 val
* var48
/* : MClassKind */;
6715 short int var49
/* : Bool */;
6716 short int var50
/* : Bool */;
6717 short int var52
/* : Bool */;
6718 short int var54
/* : Bool */;
6719 static val
* varonce55
;
6720 val
* var56
/* : String */;
6721 char* var57
/* : NativeString */;
6722 long var58
/* : Int */;
6723 val
* var59
/* : FlatString */;
6724 static val
* varonce60
;
6725 val
* var61
/* : String */;
6726 char* var62
/* : NativeString */;
6727 long var63
/* : Int */;
6728 val
* var64
/* : FlatString */;
6729 val
* var65
/* : Array[Object] */;
6730 long var66
/* : Int */;
6731 val
* var67
/* : NativeArray[Object] */;
6732 val
* var68
/* : String */;
6733 val
* var69
/* : MClass */;
6734 val
* var71
/* : MClass */;
6735 val
* var72
/* : MClassKind */;
6736 val
* var74
/* : MClassKind */;
6737 val
* var75
/* : MClassKind */;
6738 short int var76
/* : Bool */;
6739 short int var77
/* : Bool */;
6740 short int var79
/* : Bool */;
6741 short int var81
/* : Bool */;
6742 static val
* varonce82
;
6743 val
* var83
/* : String */;
6744 char* var84
/* : NativeString */;
6745 long var85
/* : Int */;
6746 val
* var86
/* : FlatString */;
6747 static val
* varonce87
;
6748 val
* var88
/* : String */;
6749 char* var89
/* : NativeString */;
6750 long var90
/* : Int */;
6751 val
* var91
/* : FlatString */;
6752 val
* var92
/* : Array[Object] */;
6753 long var93
/* : Int */;
6754 val
* var94
/* : NativeArray[Object] */;
6755 val
* var95
/* : String */;
6756 val
* var96
/* : nullable TId */;
6757 val
* var_nid
/* var nid: nullable TId */;
6758 val
* var97
/* : null */;
6759 short int var98
/* : Bool */;
6760 short int var99
/* : Bool */;
6761 val
* var_other101
/* var other: nullable Object */;
6762 short int var102
/* : Bool */;
6763 short int var103
/* : Bool */;
6764 short int var104
/* : Bool */;
6765 val
* var105
/* : String */;
6766 val
* var_name
/* var name: String */;
6767 static val
* varonce106
;
6768 val
* var107
/* : String */;
6769 char* var108
/* : NativeString */;
6770 long var109
/* : Int */;
6771 val
* var110
/* : FlatString */;
6772 short int var111
/* : Bool */;
6773 val
* var112
/* : nullable CallSite */;
6774 val
* var_callsite
/* var callsite: nullable CallSite */;
6775 val
* var113
/* : null */;
6776 short int var114
/* : Bool */;
6777 short int var115
/* : Bool */;
6778 short int var117
/* : Bool */;
6779 short int var119
/* : Bool */;
6780 val
* var121
/* : MMethod */;
6781 val
* var123
/* : MMethod */;
6782 val
* var124
/* : MClass */;
6783 val
* var126
/* : MClass */;
6784 short int var127
/* : Bool */;
6785 short int var128
/* : Bool */;
6786 static val
* varonce129
;
6787 val
* var130
/* : String */;
6788 char* var131
/* : NativeString */;
6789 long var132
/* : Int */;
6790 val
* var133
/* : FlatString */;
6791 static val
* varonce134
;
6792 val
* var135
/* : String */;
6793 char* var136
/* : NativeString */;
6794 long var137
/* : Int */;
6795 val
* var138
/* : FlatString */;
6796 val
* var139
/* : Array[Object] */;
6797 long var140
/* : Int */;
6798 val
* var141
/* : NativeArray[Object] */;
6799 val
* var142
/* : String */;
6800 val
* var143
/* : AExprs */;
6801 val
* var144
/* : Array[AExpr] */;
6802 val
* var_args
/* var args: Array[AExpr] */;
6803 short int var145
/* : Bool */;
6806 var
= parser_nodes__ANewExpr__n_type(self
);
6809 var1
= typing__TypeVisitor__resolve_mtype(var_v
, var
);
6811 var_recvtype
= var1
;
6813 if (var_recvtype
== NULL
) {
6814 var3
= 1; /* is null */
6816 var3
= 0; /* arg is null but recv is not */
6819 { /* Inline kernel#Object#== (var_recvtype,var2) on <var_recvtype:nullable MType> */
6822 { /* Inline kernel#Object#is_same_instance (var_recvtype,var_other) on <var_recvtype:nullable MType(MType)> */
6823 var8
= var_recvtype
== var_other
;
6840 { /* Inline typing#AExpr#mtype= (self,var_recvtype) on <self:ANewExpr> */
6841 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var_recvtype
; /* _mtype on <self:ANewExpr> */
6845 /* <var_recvtype:nullable MType(MType)> isa MClassType */
6846 cltype
= type_model__MClassType
.color
;
6847 idtype
= type_model__MClassType
.id
;
6848 if(cltype
>= var_recvtype
->type
->table_size
) {
6851 var10
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
6855 /* <var_recvtype:nullable MType(MType)> isa MNullableType */
6856 cltype13
= type_model__MNullableType
.color
;
6857 idtype14
= type_model__MNullableType
.id
;
6858 if(cltype13
>= var_recvtype
->type
->table_size
) {
6861 var12
= var_recvtype
->type
->type_table
[cltype13
] == idtype14
;
6867 var16
= "Type error: cannot instantiate the nullable type ";
6869 var18
= string__NativeString__to_s_with_length(var16
, var17
);
6878 var23
= string__NativeString__to_s_with_length(var21
, var22
);
6882 var24
= NEW_array__Array(&type_array__Arraykernel__Object
);
6883 { /* var24 = array_instance Array[Object] */
6885 var26
= NEW_array__NativeArray(var25
, &type_array__NativeArraykernel__Object
);
6886 ((struct instance_array__NativeArray
*)var26
)->values
[0] = (val
*) var15
;
6887 ((struct instance_array__NativeArray
*)var26
)->values
[1] = (val
*) var_recvtype
;
6888 ((struct instance_array__NativeArray
*)var26
)->values
[2] = (val
*) var20
;
6890 ((void (*)(val
*, val
*, long))(var24
->class->vft
[COLOR_array__Array__with_native
]))(var24
, var26
, var25
) /* with_native on <var24:Array[Object]>*/;
6894 var27
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_string__Object__to_s
]))(var24
) /* to_s on <var24:Array[Object]>*/;
6897 typing__TypeVisitor__error(var_v
, self
, var27
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
6904 var30
= "Type error: cannot instantiate the formal type ";
6906 var32
= string__NativeString__to_s_with_length(var30
, var31
);
6915 var37
= string__NativeString__to_s_with_length(var35
, var36
);
6919 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
6920 { /* var38 = array_instance Array[Object] */
6922 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
6923 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var29
;
6924 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var_recvtype
;
6925 ((struct instance_array__NativeArray
*)var40
)->values
[2] = (val
*) var34
;
6927 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
6931 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
6934 typing__TypeVisitor__error(var_v
, self
, var41
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
6940 { /* Inline model#MClassType#mclass (var_recvtype) on <var_recvtype:nullable MType(MClassType)> */
6941 var44
= var_recvtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_recvtype:nullable MType(MClassType)> */
6942 if (unlikely(var44
== NULL
)) {
6943 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6944 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
6948 RET_LABEL43
:(void)0;
6952 { /* Inline model#MClass#kind (var42) on <var42:MClass> */
6953 var47
= var42
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var42:MClass> */
6954 if (unlikely(var47
== NULL
)) {
6955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
6956 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
6960 RET_LABEL46
:(void)0;
6964 var48
= model__Object__abstract_kind(self
);
6967 { /* Inline kernel#Object#== (var45,var48) on <var45:MClassKind> */
6970 { /* Inline kernel#Object#is_same_instance (var45,var_other) on <var45:MClassKind> */
6971 var54
= var45
== var_other
;
6974 RET_LABEL53
:(void)0;
6979 RET_LABEL51
:(void)0;
6987 var57
= "Cannot instantiate abstract class ";
6989 var59
= string__NativeString__to_s_with_length(var57
, var58
);
6998 var64
= string__NativeString__to_s_with_length(var62
, var63
);
7002 var65
= NEW_array__Array(&type_array__Arraykernel__Object
);
7003 { /* var65 = array_instance Array[Object] */
7005 var67
= NEW_array__NativeArray(var66
, &type_array__NativeArraykernel__Object
);
7006 ((struct instance_array__NativeArray
*)var67
)->values
[0] = (val
*) var56
;
7007 ((struct instance_array__NativeArray
*)var67
)->values
[1] = (val
*) var_recvtype
;
7008 ((struct instance_array__NativeArray
*)var67
)->values
[2] = (val
*) var61
;
7010 ((void (*)(val
*, val
*, long))(var65
->class->vft
[COLOR_array__Array__with_native
]))(var65
, var67
, var66
) /* with_native on <var65:Array[Object]>*/;
7014 var68
= ((val
* (*)(val
*))(var65
->class->vft
[COLOR_string__Object__to_s
]))(var65
) /* to_s on <var65:Array[Object]>*/;
7017 typing__TypeVisitor__error(var_v
, self
, var68
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
7022 { /* Inline model#MClassType#mclass (var_recvtype) on <var_recvtype:nullable MType(MClassType)> */
7023 var71
= var_recvtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_recvtype:nullable MType(MClassType)> */
7024 if (unlikely(var71
== NULL
)) {
7025 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7026 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
7030 RET_LABEL70
:(void)0;
7034 { /* Inline model#MClass#kind (var69) on <var69:MClass> */
7035 var74
= var69
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var69:MClass> */
7036 if (unlikely(var74
== NULL
)) {
7037 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
7038 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
7042 RET_LABEL73
:(void)0;
7046 var75
= model__Object__interface_kind(self
);
7049 { /* Inline kernel#Object#== (var72,var75) on <var72:MClassKind> */
7052 { /* Inline kernel#Object#is_same_instance (var72,var_other) on <var72:MClassKind> */
7053 var81
= var72
== var_other
;
7056 RET_LABEL80
:(void)0;
7061 RET_LABEL78
:(void)0;
7069 var84
= "Cannot instantiate interface ";
7071 var86
= string__NativeString__to_s_with_length(var84
, var85
);
7080 var91
= string__NativeString__to_s_with_length(var89
, var90
);
7084 var92
= NEW_array__Array(&type_array__Arraykernel__Object
);
7085 { /* var92 = array_instance Array[Object] */
7087 var94
= NEW_array__NativeArray(var93
, &type_array__NativeArraykernel__Object
);
7088 ((struct instance_array__NativeArray
*)var94
)->values
[0] = (val
*) var83
;
7089 ((struct instance_array__NativeArray
*)var94
)->values
[1] = (val
*) var_recvtype
;
7090 ((struct instance_array__NativeArray
*)var94
)->values
[2] = (val
*) var88
;
7092 ((void (*)(val
*, val
*, long))(var92
->class->vft
[COLOR_array__Array__with_native
]))(var92
, var94
, var93
) /* with_native on <var92:Array[Object]>*/;
7096 var95
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_string__Object__to_s
]))(var92
) /* to_s on <var92:Array[Object]>*/;
7099 typing__TypeVisitor__error(var_v
, self
, var95
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
7107 var96
= parser_nodes__ANewExpr__n_id(self
);
7111 if (var_nid
== NULL
) {
7112 var98
= 0; /* is null */
7114 var98
= 1; /* arg is null and recv is not */
7117 { /* Inline kernel#Object#!= (var_nid,var97) on <var_nid:nullable TId> */
7118 var_other101
= var97
;
7120 var103
= ((short int (*)(val
*, val
*))(var_nid
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nid
, var_other101
) /* == on <var_nid:nullable TId(TId)>*/;
7126 RET_LABEL100
:(void)0;
7132 var105
= lexer_work__Token__text(var_nid
);
7137 var107
= varonce106
;
7141 var110
= string__NativeString__to_s_with_length(var108
, var109
);
7143 varonce106
= var107
;
7149 var112
= typing__TypeVisitor__get_method(var_v
, self
, var_recvtype
, var_name
, var111
);
7151 var_callsite
= var112
;
7153 if (var_callsite
== NULL
) {
7154 var114
= 1; /* is null */
7156 var114
= 0; /* arg is null but recv is not */
7159 { /* Inline kernel#Object#== (var_callsite,var113) on <var_callsite:nullable CallSite> */
7162 { /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
7163 var119
= var_callsite
== var_other
;
7166 RET_LABEL118
:(void)0;
7171 RET_LABEL116
:(void)0;
7180 { /* Inline typing#ANewExpr#callsite= (self,var_callsite) on <self:ANewExpr> */
7181 self
->attrs
[COLOR_typing__ANewExpr___callsite
].val
= var_callsite
; /* _callsite on <self:ANewExpr> */
7182 RET_LABEL120
:(void)0;
7186 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
7187 var123
= var_callsite
->attrs
[COLOR_typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
7188 if (unlikely(var123
== NULL
)) {
7189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7190 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 422);
7194 RET_LABEL122
:(void)0;
7198 { /* Inline model#MClassType#mclass (var_recvtype) on <var_recvtype:nullable MType(MClassType)> */
7199 var126
= var_recvtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_recvtype:nullable MType(MClassType)> */
7200 if (unlikely(var126
== NULL
)) {
7201 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7202 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
7206 RET_LABEL125
:(void)0;
7210 var127
= model__MMethod__is_init_for(var121
, var124
);
7215 var130
= varonce129
;
7219 var133
= string__NativeString__to_s_with_length(var131
, var132
);
7221 varonce129
= var130
;
7224 var135
= varonce134
;
7226 var136
= " is not a constructor.";
7228 var138
= string__NativeString__to_s_with_length(var136
, var137
);
7230 varonce134
= var135
;
7232 var139
= NEW_array__Array(&type_array__Arraykernel__Object
);
7233 { /* var139 = array_instance Array[Object] */
7235 var141
= NEW_array__NativeArray(var140
, &type_array__NativeArraykernel__Object
);
7236 ((struct instance_array__NativeArray
*)var141
)->values
[0] = (val
*) var130
;
7237 ((struct instance_array__NativeArray
*)var141
)->values
[1] = (val
*) var_name
;
7238 ((struct instance_array__NativeArray
*)var141
)->values
[2] = (val
*) var135
;
7240 ((void (*)(val
*, val
*, long))(var139
->class->vft
[COLOR_array__Array__with_native
]))(var139
, var141
, var140
) /* with_native on <var139:Array[Object]>*/;
7244 var142
= ((val
* (*)(val
*))(var139
->class->vft
[COLOR_string__Object__to_s
]))(var139
) /* to_s on <var139:Array[Object]>*/;
7247 typing__TypeVisitor__error(var_v
, self
, var142
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
7253 var143
= parser_nodes__ANewExpr__n_args(self
);
7256 var144
= typing__AExprs__to_a(var143
);
7260 var145
= typing__CallSite__check_signature(var_callsite
, var_v
, var_args
);
7265 /* method typing#ANewExpr#accept_typing for (self: Object, TypeVisitor) */
7266 void VIRTUAL_typing__ANewExpr__accept_typing(val
* self
, val
* p0
) {
7267 typing__ANewExpr__accept_typing(self
, p0
); /* Direct call typing#ANewExpr#accept_typing on <self:Object(ANewExpr)>*/
7270 /* method typing#AAttrFormExpr#mproperty for (self: AAttrFormExpr): nullable MAttribute */
7271 val
* typing__AAttrFormExpr__mproperty(val
* self
) {
7272 val
* var
/* : nullable MAttribute */;
7273 val
* var1
/* : nullable MAttribute */;
7274 var1
= self
->attrs
[COLOR_typing__AAttrFormExpr___mproperty
].val
; /* _mproperty on <self:AAttrFormExpr> */
7279 /* method typing#AAttrFormExpr#mproperty for (self: Object): nullable MAttribute */
7280 val
* VIRTUAL_typing__AAttrFormExpr__mproperty(val
* self
) {
7281 val
* var
/* : nullable MAttribute */;
7282 val
* var1
/* : nullable MAttribute */;
7283 val
* var3
/* : nullable MAttribute */;
7284 { /* Inline typing#AAttrFormExpr#mproperty (self) on <self:Object(AAttrFormExpr)> */
7285 var3
= self
->attrs
[COLOR_typing__AAttrFormExpr___mproperty
].val
; /* _mproperty on <self:Object(AAttrFormExpr)> */
7293 /* method typing#AAttrFormExpr#mproperty= for (self: AAttrFormExpr, nullable MAttribute) */
7294 void typing__AAttrFormExpr__mproperty_61d(val
* self
, val
* p0
) {
7295 self
->attrs
[COLOR_typing__AAttrFormExpr___mproperty
].val
= p0
; /* _mproperty on <self:AAttrFormExpr> */
7298 /* method typing#AAttrFormExpr#mproperty= for (self: Object, nullable MAttribute) */
7299 void VIRTUAL_typing__AAttrFormExpr__mproperty_61d(val
* self
, val
* p0
) {
7300 { /* Inline typing#AAttrFormExpr#mproperty= (self,p0) on <self:Object(AAttrFormExpr)> */
7301 self
->attrs
[COLOR_typing__AAttrFormExpr___mproperty
].val
= p0
; /* _mproperty on <self:Object(AAttrFormExpr)> */
7306 /* method typing#AAttrFormExpr#attr_type for (self: AAttrFormExpr): nullable MType */
7307 val
* typing__AAttrFormExpr__attr_type(val
* self
) {
7308 val
* var
/* : nullable MType */;
7309 val
* var1
/* : nullable MType */;
7310 var1
= self
->attrs
[COLOR_typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:AAttrFormExpr> */
7315 /* method typing#AAttrFormExpr#attr_type for (self: Object): nullable MType */
7316 val
* VIRTUAL_typing__AAttrFormExpr__attr_type(val
* self
) {
7317 val
* var
/* : nullable MType */;
7318 val
* var1
/* : nullable MType */;
7319 val
* var3
/* : nullable MType */;
7320 { /* Inline typing#AAttrFormExpr#attr_type (self) on <self:Object(AAttrFormExpr)> */
7321 var3
= self
->attrs
[COLOR_typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:Object(AAttrFormExpr)> */
7329 /* method typing#AAttrFormExpr#attr_type= for (self: AAttrFormExpr, nullable MType) */
7330 void typing__AAttrFormExpr__attr_type_61d(val
* self
, val
* p0
) {
7331 self
->attrs
[COLOR_typing__AAttrFormExpr___attr_type
].val
= p0
; /* _attr_type on <self:AAttrFormExpr> */
7334 /* method typing#AAttrFormExpr#attr_type= for (self: Object, nullable MType) */
7335 void VIRTUAL_typing__AAttrFormExpr__attr_type_61d(val
* self
, val
* p0
) {
7336 { /* Inline typing#AAttrFormExpr#attr_type= (self,p0) on <self:Object(AAttrFormExpr)> */
7337 self
->attrs
[COLOR_typing__AAttrFormExpr___attr_type
].val
= p0
; /* _attr_type on <self:Object(AAttrFormExpr)> */
7342 /* method typing#AAttrFormExpr#resolve_property for (self: AAttrFormExpr, TypeVisitor) */
7343 void typing__AAttrFormExpr__resolve_property(val
* self
, val
* p0
) {
7344 val
* var_v
/* var v: TypeVisitor */;
7345 val
* var
/* : AExpr */;
7346 val
* var1
/* : nullable MType */;
7347 val
* var_recvtype
/* var recvtype: nullable MType */;
7348 val
* var2
/* : null */;
7349 short int var3
/* : Bool */;
7350 short int var4
/* : Bool */;
7351 val
* var_other
/* var other: nullable Object */;
7352 short int var6
/* : Bool */;
7353 short int var8
/* : Bool */;
7354 val
* var9
/* : TAttrid */;
7355 val
* var10
/* : String */;
7356 val
* var_name
/* var name: String */;
7357 short int var11
/* : Bool */;
7360 static val
* varonce
;
7361 val
* var12
/* : String */;
7362 char* var13
/* : NativeString */;
7363 long var14
/* : Int */;
7364 val
* var15
/* : FlatString */;
7365 static val
* varonce16
;
7366 val
* var17
/* : String */;
7367 char* var18
/* : NativeString */;
7368 long var19
/* : Int */;
7369 val
* var20
/* : FlatString */;
7370 val
* var21
/* : Array[Object] */;
7371 long var22
/* : Int */;
7372 val
* var23
/* : NativeArray[Object] */;
7373 val
* var24
/* : String */;
7374 val
* var25
/* : MType */;
7375 val
* var_unsafe_type
/* var unsafe_type: MType */;
7376 val
* var26
/* : nullable MProperty */;
7377 val
* var_mproperty
/* var mproperty: nullable MProperty */;
7378 val
* var27
/* : null */;
7379 short int var28
/* : Bool */;
7380 short int var29
/* : Bool */;
7381 short int var31
/* : Bool */;
7382 short int var33
/* : Bool */;
7383 val
* var34
/* : ModelBuilder */;
7384 val
* var36
/* : ModelBuilder */;
7385 static val
* varonce37
;
7386 val
* var38
/* : String */;
7387 char* var39
/* : NativeString */;
7388 long var40
/* : Int */;
7389 val
* var41
/* : FlatString */;
7390 static val
* varonce42
;
7391 val
* var43
/* : String */;
7392 char* var44
/* : NativeString */;
7393 long var45
/* : Int */;
7394 val
* var46
/* : FlatString */;
7395 static val
* varonce47
;
7396 val
* var48
/* : String */;
7397 char* var49
/* : NativeString */;
7398 long var50
/* : Int */;
7399 val
* var51
/* : FlatString */;
7400 val
* var52
/* : Array[Object] */;
7401 long var53
/* : Int */;
7402 val
* var54
/* : NativeArray[Object] */;
7403 val
* var55
/* : String */;
7404 short int var56
/* : Bool */;
7407 val
* var60
/* : MModule */;
7408 val
* var62
/* : MModule */;
7409 val
* var63
/* : Array[MPropDef] */;
7410 val
* var_mpropdefs
/* var mpropdefs: Array[MAttributeDef] */;
7411 long var64
/* : Int */;
7412 long var65
/* : Int */;
7413 short int var66
/* : Bool */;
7414 short int var67
/* : Bool */;
7415 short int var69
/* : Bool */;
7416 val
* var70
/* : nullable Object */;
7417 val
* var_mpropdef
/* var mpropdef: MAttributeDef */;
7418 val
* var71
/* : nullable MType */;
7419 val
* var73
/* : nullable MType */;
7420 val
* var_attr_type
/* var attr_type: MType */;
7421 val
* var74
/* : AExpr */;
7422 short int var75
/* : Bool */;
7425 val
* var78
/* : MType */;
7428 var
= parser_nodes__AAttrFormExpr__n_expr(self
);
7431 var1
= typing__TypeVisitor__visit_expr(var_v
, var
);
7433 var_recvtype
= var1
;
7435 if (var_recvtype
== NULL
) {
7436 var3
= 1; /* is null */
7438 var3
= 0; /* arg is null but recv is not */
7441 { /* Inline kernel#Object#== (var_recvtype,var2) on <var_recvtype:nullable MType> */
7444 { /* Inline kernel#Object#is_same_instance (var_recvtype,var_other) on <var_recvtype:nullable MType(MType)> */
7445 var8
= var_recvtype
== var_other
;
7462 var9
= parser_nodes__AAttrFormExpr__n_id(self
);
7465 var10
= lexer_work__Token__text(var9
);
7468 /* <var_recvtype:nullable MType(MType)> isa MNullType */
7469 cltype
= type_model__MNullType
.color
;
7470 idtype
= type_model__MNullType
.id
;
7471 if(cltype
>= var_recvtype
->type
->table_size
) {
7474 var11
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
7480 var13
= "Error: Attribute \'";
7482 var15
= string__NativeString__to_s_with_length(var13
, var14
);
7489 var18
= "\' access on \'null\'.";
7491 var20
= string__NativeString__to_s_with_length(var18
, var19
);
7495 var21
= NEW_array__Array(&type_array__Arraykernel__Object
);
7496 { /* var21 = array_instance Array[Object] */
7498 var23
= NEW_array__NativeArray(var22
, &type_array__NativeArraykernel__Object
);
7499 ((struct instance_array__NativeArray
*)var23
)->values
[0] = (val
*) var12
;
7500 ((struct instance_array__NativeArray
*)var23
)->values
[1] = (val
*) var_name
;
7501 ((struct instance_array__NativeArray
*)var23
)->values
[2] = (val
*) var17
;
7503 ((void (*)(val
*, val
*, long))(var21
->class->vft
[COLOR_array__Array__with_native
]))(var21
, var23
, var22
) /* with_native on <var21:Array[Object]>*/;
7507 var24
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_string__Object__to_s
]))(var21
) /* to_s on <var21:Array[Object]>*/;
7510 typing__TypeVisitor__error(var_v
, self
, var24
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
7516 var25
= typing__TypeVisitor__anchor_to(var_v
, var_recvtype
);
7518 var_unsafe_type
= var25
;
7520 var26
= typing__TypeVisitor__try_get_mproperty_by_name2(var_v
, self
, var_unsafe_type
, var_name
);
7522 var_mproperty
= var26
;
7524 if (var_mproperty
== NULL
) {
7525 var28
= 1; /* is null */
7527 var28
= 0; /* arg is null but recv is not */
7530 { /* Inline kernel#Object#== (var_mproperty,var27) on <var_mproperty:nullable MProperty> */
7533 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
7534 var33
= var_mproperty
== var_other
;
7537 RET_LABEL32
:(void)0;
7542 RET_LABEL30
:(void)0;
7548 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
7549 var36
= var_v
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
7550 if (unlikely(var36
== NULL
)) {
7551 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7552 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 36);
7556 RET_LABEL35
:(void)0;
7562 var39
= "Error: Attribute ";
7564 var41
= string__NativeString__to_s_with_length(var39
, var40
);
7571 var44
= " doesn\'t exists in ";
7573 var46
= string__NativeString__to_s_with_length(var44
, var45
);
7582 var51
= string__NativeString__to_s_with_length(var49
, var50
);
7586 var52
= NEW_array__Array(&type_array__Arraykernel__Object
);
7587 { /* var52 = array_instance Array[Object] */
7589 var54
= NEW_array__NativeArray(var53
, &type_array__NativeArraykernel__Object
);
7590 ((struct instance_array__NativeArray
*)var54
)->values
[0] = (val
*) var38
;
7591 ((struct instance_array__NativeArray
*)var54
)->values
[1] = (val
*) var_name
;
7592 ((struct instance_array__NativeArray
*)var54
)->values
[2] = (val
*) var43
;
7593 ((struct instance_array__NativeArray
*)var54
)->values
[3] = (val
*) var_recvtype
;
7594 ((struct instance_array__NativeArray
*)var54
)->values
[4] = (val
*) var48
;
7596 ((void (*)(val
*, val
*, long))(var52
->class->vft
[COLOR_array__Array__with_native
]))(var52
, var54
, var53
) /* with_native on <var52:Array[Object]>*/;
7600 var55
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_string__Object__to_s
]))(var52
) /* to_s on <var52:Array[Object]>*/;
7603 modelbuilder__ModelBuilder__error(var34
, self
, var55
); /* Direct call modelbuilder#ModelBuilder#error on <var34:ModelBuilder>*/
7608 /* <var_mproperty:nullable MProperty(MProperty)> isa MAttribute */
7609 cltype57
= type_model__MAttribute
.color
;
7610 idtype58
= type_model__MAttribute
.id
;
7611 if(cltype57
>= var_mproperty
->type
->table_size
) {
7614 var56
= var_mproperty
->type
->type_table
[cltype57
] == idtype58
;
7616 if (unlikely(!var56
)) {
7617 PRINT_ERROR("Runtime error: %s", "Assert failed");
7618 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1655);
7622 { /* Inline typing#AAttrFormExpr#mproperty= (self,var_mproperty) on <self:AAttrFormExpr> */
7623 self
->attrs
[COLOR_typing__AAttrFormExpr___mproperty
].val
= var_mproperty
; /* _mproperty on <self:AAttrFormExpr> */
7624 RET_LABEL59
:(void)0;
7628 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
7629 var62
= var_v
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
7630 if (unlikely(var62
== NULL
)) {
7631 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7632 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 38);
7636 RET_LABEL61
:(void)0;
7640 var63
= model__MProperty__lookup_definitions(var_mproperty
, var60
, var_unsafe_type
);
7642 var_mpropdefs
= var63
;
7644 var64
= array__AbstractArrayRead__length(var_mpropdefs
);
7648 { /* Inline kernel#Int#== (var64,var65) on <var64:Int> */
7649 var69
= var64
== var65
;
7652 RET_LABEL68
:(void)0;
7656 if (unlikely(!var66
)) {
7657 PRINT_ERROR("Runtime error: %s", "Assert failed");
7658 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1659);
7662 var70
= abstract_collection__SequenceRead__first(var_mpropdefs
);
7664 var_mpropdef
= var70
;
7666 { /* Inline model#MAttributeDef#static_mtype (var_mpropdef) on <var_mpropdef:MAttributeDef> */
7667 var73
= var_mpropdef
->attrs
[COLOR_model__MAttributeDef___static_mtype
].val
; /* _static_mtype on <var_mpropdef:MAttributeDef> */
7669 RET_LABEL72
:(void)0;
7672 if (unlikely(var71
== NULL
)) {
7673 PRINT_ERROR("Runtime error: %s", "Cast failed");
7674 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1661);
7677 var_attr_type
= var71
;
7679 var74
= parser_nodes__AAttrFormExpr__n_expr(self
);
7681 /* <var74:AExpr> isa ASelfExpr */
7682 cltype76
= type_parser_nodes__ASelfExpr
.color
;
7683 idtype77
= type_parser_nodes__ASelfExpr
.id
;
7684 if(cltype76
>= var74
->type
->table_size
) {
7687 var75
= var74
->type
->type_table
[cltype76
] == idtype77
;
7690 var78
= typing__TypeVisitor__resolve_for(var_v
, var_attr_type
, var_recvtype
, var75
);
7692 var_attr_type
= var78
;
7694 { /* Inline typing#AAttrFormExpr#attr_type= (self,var_attr_type) on <self:AAttrFormExpr> */
7695 self
->attrs
[COLOR_typing__AAttrFormExpr___attr_type
].val
= var_attr_type
; /* _attr_type on <self:AAttrFormExpr> */
7696 RET_LABEL79
:(void)0;
7701 /* method typing#AAttrFormExpr#resolve_property for (self: Object, TypeVisitor) */
7702 void VIRTUAL_typing__AAttrFormExpr__resolve_property(val
* self
, val
* p0
) {
7703 typing__AAttrFormExpr__resolve_property(self
, p0
); /* Direct call typing#AAttrFormExpr#resolve_property on <self:Object(AAttrFormExpr)>*/
7706 /* method typing#AAttrExpr#accept_typing for (self: AAttrExpr, TypeVisitor) */
7707 void typing__AAttrExpr__accept_typing(val
* self
, val
* p0
) {
7708 val
* var_v
/* var v: TypeVisitor */;
7709 val
* var
/* : nullable MType */;
7710 val
* var2
/* : nullable MType */;
7713 typing__AAttrFormExpr__resolve_property(self
, var_v
); /* Direct call typing#AAttrFormExpr#resolve_property on <self:AAttrExpr>*/
7716 { /* Inline typing#AAttrFormExpr#attr_type (self) on <self:AAttrExpr> */
7717 var2
= self
->attrs
[COLOR_typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:AAttrExpr> */
7723 { /* Inline typing#AExpr#mtype= (self,var) on <self:AAttrExpr> */
7724 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var
; /* _mtype on <self:AAttrExpr> */
7730 /* method typing#AAttrExpr#accept_typing for (self: Object, TypeVisitor) */
7731 void VIRTUAL_typing__AAttrExpr__accept_typing(val
* self
, val
* p0
) {
7732 typing__AAttrExpr__accept_typing(self
, p0
); /* Direct call typing#AAttrExpr#accept_typing on <self:Object(AAttrExpr)>*/
7735 /* method typing#AAttrAssignExpr#accept_typing for (self: AAttrAssignExpr, TypeVisitor) */
7736 void typing__AAttrAssignExpr__accept_typing(val
* self
, val
* p0
) {
7737 val
* var_v
/* var v: TypeVisitor */;
7738 val
* var
/* : nullable MType */;
7739 val
* var2
/* : nullable MType */;
7740 val
* var_mtype
/* var mtype: nullable MType */;
7741 val
* var3
/* : AExpr */;
7742 val
* var4
/* : nullable MType */;
7743 short int var5
/* : Bool */;
7746 typing__AAttrFormExpr__resolve_property(self
, var_v
); /* Direct call typing#AAttrFormExpr#resolve_property on <self:AAttrAssignExpr>*/
7749 { /* Inline typing#AAttrFormExpr#attr_type (self) on <self:AAttrAssignExpr> */
7750 var2
= self
->attrs
[COLOR_typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:AAttrAssignExpr> */
7757 var3
= parser_nodes__AAssignFormExpr__n_value(self
);
7760 var4
= typing__TypeVisitor__visit_expr_subtype(var_v
, var3
, var_mtype
);
7765 { /* Inline typing#AExpr#is_typed= (self,var5) on <self:AAttrAssignExpr> */
7766 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var5
; /* _is_typed on <self:AAttrAssignExpr> */
7772 /* method typing#AAttrAssignExpr#accept_typing for (self: Object, TypeVisitor) */
7773 void VIRTUAL_typing__AAttrAssignExpr__accept_typing(val
* self
, val
* p0
) {
7774 typing__AAttrAssignExpr__accept_typing(self
, p0
); /* Direct call typing#AAttrAssignExpr#accept_typing on <self:Object(AAttrAssignExpr)>*/
7777 /* method typing#AAttrReassignExpr#accept_typing for (self: AAttrReassignExpr, TypeVisitor) */
7778 void typing__AAttrReassignExpr__accept_typing(val
* self
, val
* p0
) {
7779 val
* var_v
/* var v: TypeVisitor */;
7780 val
* var
/* : nullable MType */;
7781 val
* var2
/* : nullable MType */;
7782 val
* var_mtype
/* var mtype: nullable MType */;
7783 val
* var3
/* : null */;
7784 short int var4
/* : Bool */;
7785 short int var5
/* : Bool */;
7786 val
* var_other
/* var other: nullable Object */;
7787 short int var7
/* : Bool */;
7788 short int var9
/* : Bool */;
7789 val
* var10
/* : nullable MType */;
7790 short int var11
/* : Bool */;
7793 typing__AAttrFormExpr__resolve_property(self
, var_v
); /* Direct call typing#AAttrFormExpr#resolve_property on <self:AAttrReassignExpr>*/
7796 { /* Inline typing#AAttrFormExpr#attr_type (self) on <self:AAttrReassignExpr> */
7797 var2
= self
->attrs
[COLOR_typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:AAttrReassignExpr> */
7804 if (var_mtype
== NULL
) {
7805 var4
= 1; /* is null */
7807 var4
= 0; /* arg is null but recv is not */
7810 { /* Inline kernel#Object#== (var_mtype,var3) on <var_mtype:nullable MType> */
7813 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
7814 var9
= var_mtype
== var_other
;
7831 var10
= typing__AReassignFormExpr__resolve_reassignment(self
, var_v
, var_mtype
, var_mtype
);
7836 { /* Inline typing#AExpr#is_typed= (self,var11) on <self:AAttrReassignExpr> */
7837 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var11
; /* _is_typed on <self:AAttrReassignExpr> */
7838 RET_LABEL12
:(void)0;
7843 /* method typing#AAttrReassignExpr#accept_typing for (self: Object, TypeVisitor) */
7844 void VIRTUAL_typing__AAttrReassignExpr__accept_typing(val
* self
, val
* p0
) {
7845 typing__AAttrReassignExpr__accept_typing(self
, p0
); /* Direct call typing#AAttrReassignExpr#accept_typing on <self:Object(AAttrReassignExpr)>*/
7848 /* method typing#AIssetAttrExpr#accept_typing for (self: AIssetAttrExpr, TypeVisitor) */
7849 void typing__AIssetAttrExpr__accept_typing(val
* self
, val
* p0
) {
7850 val
* var_v
/* var v: TypeVisitor */;
7851 val
* var
/* : nullable MType */;
7852 val
* var2
/* : nullable MType */;
7853 val
* var_mtype
/* var mtype: nullable MType */;
7854 val
* var3
/* : null */;
7855 short int var4
/* : Bool */;
7856 short int var5
/* : Bool */;
7857 val
* var_other
/* var other: nullable Object */;
7858 short int var7
/* : Bool */;
7859 short int var9
/* : Bool */;
7860 val
* var10
/* : AExpr */;
7861 val
* var11
/* : nullable MType */;
7862 val
* var_recvtype
/* var recvtype: MType */;
7863 short int var12
/* : Bool */;
7864 val
* var13
/* : MType */;
7865 val
* var_bound
/* var bound: MType */;
7866 short int var14
/* : Bool */;
7869 static val
* varonce
;
7870 val
* var15
/* : String */;
7871 char* var16
/* : NativeString */;
7872 long var17
/* : Int */;
7873 val
* var18
/* : FlatString */;
7874 val
* var19
/* : nullable MType */;
7877 typing__AAttrFormExpr__resolve_property(self
, var_v
); /* Direct call typing#AAttrFormExpr#resolve_property on <self:AIssetAttrExpr>*/
7880 { /* Inline typing#AAttrFormExpr#attr_type (self) on <self:AIssetAttrExpr> */
7881 var2
= self
->attrs
[COLOR_typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:AIssetAttrExpr> */
7888 if (var_mtype
== NULL
) {
7889 var4
= 1; /* is null */
7891 var4
= 0; /* arg is null but recv is not */
7894 { /* Inline kernel#Object#== (var_mtype,var3) on <var_mtype:nullable MType> */
7897 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
7898 var9
= var_mtype
== var_other
;
7915 var10
= parser_nodes__AAttrFormExpr__n_expr(self
);
7918 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_typing__AExpr__mtype
]))(var10
) /* mtype on <var10:AExpr>*/;
7920 if (unlikely(var11
== NULL
)) {
7921 PRINT_ERROR("Runtime error: %s", "Cast failed");
7922 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 1707);
7925 var_recvtype
= var11
;
7928 var13
= typing__TypeVisitor__resolve_for(var_v
, var_mtype
, var_recvtype
, var12
);
7931 /* <var_bound:MType> isa MNullableType */
7932 cltype
= type_model__MNullableType
.color
;
7933 idtype
= type_model__MNullableType
.id
;
7934 if(cltype
>= var_bound
->type
->table_size
) {
7937 var14
= var_bound
->type
->type_table
[cltype
] == idtype
;
7943 var16
= "Error: isset on a nullable attribute.";
7945 var18
= string__NativeString__to_s_with_length(var16
, var17
);
7950 typing__TypeVisitor__error(var_v
, self
, var15
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
7955 var19
= typing__TypeVisitor__type_bool(var_v
, self
);
7958 { /* Inline typing#AExpr#mtype= (self,var19) on <self:AIssetAttrExpr> */
7959 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var19
; /* _mtype on <self:AIssetAttrExpr> */
7960 RET_LABEL20
:(void)0;
7965 /* method typing#AIssetAttrExpr#accept_typing for (self: Object, TypeVisitor) */
7966 void VIRTUAL_typing__AIssetAttrExpr__accept_typing(val
* self
, val
* p0
) {
7967 typing__AIssetAttrExpr__accept_typing(self
, p0
); /* Direct call typing#AIssetAttrExpr#accept_typing on <self:Object(AIssetAttrExpr)>*/
7970 /* method typing#ADebugTypeExpr#accept_typing for (self: ADebugTypeExpr, TypeVisitor) */
7971 void typing__ADebugTypeExpr__accept_typing(val
* self
, val
* p0
) {
7972 val
* var_v
/* var v: TypeVisitor */;
7973 val
* var
/* : AExpr */;
7974 val
* var1
/* : nullable MType */;
7975 val
* var_expr
/* var expr: nullable MType */;
7976 val
* var2
/* : null */;
7977 short int var3
/* : Bool */;
7978 short int var4
/* : Bool */;
7979 val
* var_other
/* var other: nullable Object */;
7980 short int var6
/* : Bool */;
7981 short int var8
/* : Bool */;
7982 val
* var9
/* : MType */;
7983 val
* var_unsafe
/* var unsafe: MType */;
7984 val
* var10
/* : AType */;
7985 val
* var_ntype
/* var ntype: AType */;
7986 val
* var11
/* : nullable MType */;
7987 val
* var_mtype
/* var mtype: nullable MType */;
7988 short int var12
/* : Bool */;
7989 val
* var13
/* : null */;
7990 short int var14
/* : Bool */;
7991 short int var15
/* : Bool */;
7992 val
* var_other17
/* var other: nullable Object */;
7993 short int var18
/* : Bool */;
7994 short int var19
/* : Bool */;
7995 short int var20
/* : Bool */;
7996 short int var_
/* var : Bool */;
7997 short int var21
/* : Bool */;
7998 short int var22
/* : Bool */;
7999 short int var24
/* : Bool */;
8000 short int var25
/* : Bool */;
8001 short int var26
/* : Bool */;
8002 val
* var27
/* : MType */;
8003 val
* var_umtype
/* var umtype: MType */;
8004 val
* var28
/* : ModelBuilder */;
8005 val
* var30
/* : ModelBuilder */;
8006 static val
* varonce
;
8007 val
* var31
/* : String */;
8008 char* var32
/* : NativeString */;
8009 long var33
/* : Int */;
8010 val
* var34
/* : FlatString */;
8011 static val
* varonce35
;
8012 val
* var36
/* : String */;
8013 char* var37
/* : NativeString */;
8014 long var38
/* : Int */;
8015 val
* var39
/* : FlatString */;
8016 static val
* varonce40
;
8017 val
* var41
/* : String */;
8018 char* var42
/* : NativeString */;
8019 long var43
/* : Int */;
8020 val
* var44
/* : FlatString */;
8021 static val
* varonce45
;
8022 val
* var46
/* : String */;
8023 char* var47
/* : NativeString */;
8024 long var48
/* : Int */;
8025 val
* var49
/* : FlatString */;
8026 static val
* varonce50
;
8027 val
* var51
/* : String */;
8028 char* var52
/* : NativeString */;
8029 long var53
/* : Int */;
8030 val
* var54
/* : FlatString */;
8031 val
* var55
/* : Array[Object] */;
8032 long var56
/* : Int */;
8033 val
* var57
/* : NativeArray[Object] */;
8034 val
* var58
/* : String */;
8035 short int var59
/* : Bool */;
8038 var
= parser_nodes__ADebugTypeExpr__n_expr(self
);
8041 var1
= typing__TypeVisitor__visit_expr(var_v
, var
);
8045 if (var_expr
== NULL
) {
8046 var3
= 1; /* is null */
8048 var3
= 0; /* arg is null but recv is not */
8051 { /* Inline kernel#Object#== (var_expr,var2) on <var_expr:nullable MType> */
8054 { /* Inline kernel#Object#is_same_instance (var_expr,var_other) on <var_expr:nullable MType(MType)> */
8055 var8
= var_expr
== var_other
;
8072 var9
= typing__TypeVisitor__anchor_to(var_v
, var_expr
);
8076 var10
= parser_nodes__ADebugTypeExpr__n_type(self
);
8080 var11
= typing__TypeVisitor__resolve_mtype(var_v
, var_ntype
);
8084 if (var_mtype
== NULL
) {
8085 var14
= 0; /* is null */
8087 var14
= 1; /* arg is null and recv is not */
8090 { /* Inline kernel#Object#!= (var_mtype,var13) on <var_mtype:nullable MType> */
8091 var_other17
= var13
;
8093 var19
= ((short int (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mtype
, var_other17
) /* == on <var_mtype:nullable MType(MType)>*/;
8099 RET_LABEL16
:(void)0;
8106 { /* Inline kernel#Object#!= (var_mtype,var_expr) on <var_mtype:nullable MType(MType)> */
8107 var_other17
= var_expr
;
8109 var25
= ((short int (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mtype
, var_other17
) /* == on <var_mtype:nullable MType(MType)>*/;
8115 RET_LABEL23
:(void)0;
8125 var27
= typing__TypeVisitor__anchor_to(var_v
, var_mtype
);
8129 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
8130 var30
= var_v
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
8131 if (unlikely(var30
== NULL
)) {
8132 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
8133 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 36);
8137 RET_LABEL29
:(void)0;
8143 var32
= "Found type ";
8145 var34
= string__NativeString__to_s_with_length(var32
, var33
);
8154 var39
= string__NativeString__to_s_with_length(var37
, var38
);
8161 var42
= "), expected ";
8163 var44
= string__NativeString__to_s_with_length(var42
, var43
);
8172 var49
= string__NativeString__to_s_with_length(var47
, var48
);
8181 var54
= string__NativeString__to_s_with_length(var52
, var53
);
8185 var55
= NEW_array__Array(&type_array__Arraykernel__Object
);
8186 { /* var55 = array_instance Array[Object] */
8188 var57
= NEW_array__NativeArray(var56
, &type_array__NativeArraykernel__Object
);
8189 ((struct instance_array__NativeArray
*)var57
)->values
[0] = (val
*) var31
;
8190 ((struct instance_array__NativeArray
*)var57
)->values
[1] = (val
*) var_expr
;
8191 ((struct instance_array__NativeArray
*)var57
)->values
[2] = (val
*) var36
;
8192 ((struct instance_array__NativeArray
*)var57
)->values
[3] = (val
*) var_unsafe
;
8193 ((struct instance_array__NativeArray
*)var57
)->values
[4] = (val
*) var41
;
8194 ((struct instance_array__NativeArray
*)var57
)->values
[5] = (val
*) var_mtype
;
8195 ((struct instance_array__NativeArray
*)var57
)->values
[6] = (val
*) var46
;
8196 ((struct instance_array__NativeArray
*)var57
)->values
[7] = (val
*) var_umtype
;
8197 ((struct instance_array__NativeArray
*)var57
)->values
[8] = (val
*) var51
;
8199 ((void (*)(val
*, val
*, long))(var55
->class->vft
[COLOR_array__Array__with_native
]))(var55
, var57
, var56
) /* with_native on <var55:Array[Object]>*/;
8203 var58
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_string__Object__to_s
]))(var55
) /* to_s on <var55:Array[Object]>*/;
8206 modelbuilder__ModelBuilder__warning(var28
, self
, var58
); /* Direct call modelbuilder#ModelBuilder#warning on <var28:ModelBuilder>*/
8212 { /* Inline typing#AExpr#is_typed= (self,var59) on <self:ADebugTypeExpr> */
8213 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var59
; /* _is_typed on <self:ADebugTypeExpr> */
8214 RET_LABEL60
:(void)0;
8219 /* method typing#ADebugTypeExpr#accept_typing for (self: Object, TypeVisitor) */
8220 void VIRTUAL_typing__ADebugTypeExpr__accept_typing(val
* self
, val
* p0
) {
8221 typing__ADebugTypeExpr__accept_typing(self
, p0
); /* Direct call typing#ADebugTypeExpr#accept_typing on <self:Object(ADebugTypeExpr)>*/