1 #include "nit__typing.sep.0.h"
2 /* method typing#ANewExpr#accept_typing for (self: ANewExpr, TypeVisitor) */
3 void nit__typing___ANewExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
4 val
* var_v
/* var v: TypeVisitor */;
5 val
* var
/* : AType */;
6 val
* var2
/* : AType */;
7 val
* var3
/* : nullable MType */;
8 val
* var_recvtype
/* var recvtype: nullable MType */;
9 short int var4
/* : Bool */;
10 short int var5
/* : Bool */;
11 val
* var_other
/* var other: nullable Object */;
12 short int var7
/* : Bool */;
13 short int var9
/* : Bool */;
14 short int var10
/* : Bool */;
17 short int var11
/* : Bool */;
18 short int var12
/* : Bool */;
21 val
* var15
/* : NativeArray[String] */;
23 static val
* varonce16
;
24 val
* var17
/* : String */;
25 char* var18
/* : NativeString */;
26 val
* var19
/* : FlatString */;
27 static val
* varonce20
;
28 val
* var21
/* : String */;
29 char* var22
/* : NativeString */;
30 val
* var23
/* : FlatString */;
31 val
* var24
/* : String */;
32 val
* var25
/* : String */;
33 short int var26
/* : Bool */;
36 val
* var30
/* : NativeArray[String] */;
37 static val
* varonce29
;
38 static val
* varonce31
;
39 val
* var32
/* : String */;
40 char* var33
/* : NativeString */;
41 val
* var34
/* : FlatString */;
42 static val
* varonce35
;
43 val
* var36
/* : String */;
44 char* var37
/* : NativeString */;
45 val
* var38
/* : FlatString */;
46 val
* var39
/* : String */;
47 val
* var40
/* : String */;
48 val
* var42
/* : NativeArray[String] */;
49 static val
* varonce41
;
50 static val
* varonce43
;
51 val
* var44
/* : String */;
52 char* var45
/* : NativeString */;
53 val
* var46
/* : FlatString */;
54 static val
* varonce47
;
55 val
* var48
/* : String */;
56 char* var49
/* : NativeString */;
57 val
* var50
/* : FlatString */;
58 val
* var51
/* : String */;
59 val
* var52
/* : String */;
60 val
* var54
/* : MClass */;
61 val
* var56
/* : MClass */;
62 val
* var57
/* : MClassKind */;
63 val
* var59
/* : MClassKind */;
64 val
* var_kind
/* var kind: MClassKind */;
65 val
* var60
/* : nullable TId */;
66 val
* var62
/* : nullable TId */;
67 val
* var_nid
/* var nid: nullable TId */;
68 short int var63
/* : Bool */;
69 short int var64
/* : Bool */;
70 val
* var_other66
/* var other: nullable Object */;
71 short int var67
/* : Bool */;
72 short int var68
/* : Bool */;
73 val
* var69
/* : String */;
74 val
* var_name
/* var name: String */;
75 val
* var_node
/* var node: ANode */;
76 static val
* varonce70
;
77 val
* var71
/* : String */;
78 char* var72
/* : NativeString */;
79 val
* var73
/* : FlatString */;
80 val
* var74
/* : TKwnew */;
81 val
* var76
/* : TKwnew */;
82 static val
* varonce77
;
83 val
* var78
/* : String */;
84 char* var79
/* : NativeString */;
85 val
* var80
/* : FlatString */;
86 short int var81
/* : Bool */;
87 val
* var82
/* : Sys */;
88 val
* var83
/* : MClassKind */;
89 short int var84
/* : Bool */;
90 short int var86
/* : Bool */;
91 short int var87
/* : Bool */;
92 val
* var89
/* : NativeArray[String] */;
93 static val
* varonce88
;
94 static val
* varonce90
;
95 val
* var91
/* : String */;
96 char* var92
/* : NativeString */;
97 val
* var93
/* : FlatString */;
98 static val
* varonce94
;
99 val
* var95
/* : String */;
100 char* var96
/* : NativeString */;
101 val
* var97
/* : FlatString */;
102 static val
* varonce98
;
103 val
* var99
/* : String */;
104 char* var100
/* : NativeString */;
105 val
* var101
/* : FlatString */;
106 val
* var102
/* : String */;
107 val
* var103
/* : String */;
108 val
* var104
/* : String */;
109 val
* var105
/* : AExprs */;
110 val
* var107
/* : AExprs */;
111 val
* var108
/* : ANodes[AExpr] */;
112 val
* var110
/* : ANodes[AExpr] */;
113 short int var111
/* : Bool */;
114 val
* var112
/* : AExprs */;
115 val
* var114
/* : AExprs */;
116 static val
* varonce115
;
117 val
* var116
/* : String */;
118 char* var117
/* : NativeString */;
119 val
* var118
/* : FlatString */;
120 val
* var120
/* : nullable CallSite */;
121 val
* var_callsite
/* var callsite: nullable CallSite */;
122 short int var121
/* : Bool */;
123 short int var122
/* : Bool */;
124 short int var124
/* : Bool */;
125 short int var126
/* : Bool */;
126 val
* var127
/* : MMethod */;
127 val
* var129
/* : MMethod */;
128 short int var130
/* : Bool */;
129 short int var132
/* : Bool */;
130 short int var133
/* : Bool */;
131 val
* var134
/* : Sys */;
132 val
* var135
/* : MClassKind */;
133 short int var136
/* : Bool */;
134 short int var138
/* : Bool */;
135 short int var139
/* : Bool */;
136 val
* var141
/* : NativeArray[String] */;
137 static val
* varonce140
;
138 static val
* varonce142
;
139 val
* var143
/* : String */;
140 char* var144
/* : NativeString */;
141 val
* var145
/* : FlatString */;
142 static val
* varonce146
;
143 val
* var147
/* : String */;
144 char* var148
/* : NativeString */;
145 val
* var149
/* : FlatString */;
146 static val
* varonce150
;
147 val
* var151
/* : String */;
148 char* var152
/* : NativeString */;
149 val
* var153
/* : FlatString */;
150 val
* var154
/* : String */;
151 val
* var155
/* : String */;
152 val
* var156
/* : String */;
153 val
* var158
/* : MSignature */;
154 val
* var160
/* : MSignature */;
155 val
* var161
/* : nullable MType */;
156 val
* var163
/* : nullable MType */;
157 val
* var165
/* : nullable MType */;
158 val
* var167
/* : nullable MType */;
159 short int var168
/* : Bool */;
160 short int var169
/* : Bool */;
161 short int var171
/* : Bool */;
162 short int var172
/* : Bool */;
163 val
* var174
/* : MMethod */;
164 val
* var176
/* : MMethod */;
165 val
* var177
/* : MClass */;
166 val
* var179
/* : MClass */;
167 short int var180
/* : Bool */;
168 short int var181
/* : Bool */;
169 val
* var183
/* : NativeArray[String] */;
170 static val
* varonce182
;
171 static val
* varonce184
;
172 val
* var185
/* : String */;
173 char* var186
/* : NativeString */;
174 val
* var187
/* : FlatString */;
175 static val
* varonce188
;
176 val
* var189
/* : String */;
177 char* var190
/* : NativeString */;
178 val
* var191
/* : FlatString */;
179 val
* var192
/* : String */;
180 val
* var193
/* : AExprs */;
181 val
* var195
/* : AExprs */;
182 val
* var196
/* : Array[AExpr] */;
183 val
* var_args
/* var args: Array[AExpr] */;
184 short int var197
/* : Bool */;
187 { /* Inline parser_nodes#ANewExpr#n_type (self) on <self:ANewExpr> */
188 var2
= self
->attrs
[COLOR_nit__parser_nodes__ANewExpr___n_type
].val
; /* _n_type on <self:ANewExpr> */
189 if (unlikely(var2
== NULL
)) {
190 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
191 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2255);
199 var3
= nit__typing___nit__typing__TypeVisitor___resolve_mtype(var_v
, var
);
202 if (var_recvtype
== NULL
) {
203 var4
= 1; /* is null */
205 var4
= 0; /* arg is null but recv is not */
208 { /* Inline kernel#Object#== (var_recvtype,((val*)NULL)) on <var_recvtype:nullable MType> */
209 var_other
= ((val
*)NULL
);
211 { /* Inline kernel#Object#is_same_instance (var_recvtype,var_other) on <var_recvtype:nullable MType(MType)> */
212 var9
= var_recvtype
== var_other
;
228 /* <var_recvtype:nullable MType(MType)> isa MClassType */
229 cltype
= type_nit__MClassType
.color
;
230 idtype
= type_nit__MClassType
.id
;
231 if(cltype
>= var_recvtype
->type
->table_size
) {
234 var10
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
238 /* <var_recvtype:nullable MType(MType)> isa MNullableType */
239 cltype13
= type_nit__MNullableType
.color
;
240 idtype14
= type_nit__MNullableType
.id
;
241 if(cltype13
>= var_recvtype
->type
->table_size
) {
244 var12
= var_recvtype
->type
->type_table
[cltype13
] == idtype14
;
247 if (unlikely(varonce
==NULL
)) {
248 var15
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
249 if (likely(varonce16
!=NULL
)) {
252 var18
= "Type Error: cannot instantiate the nullable type `";
253 var19
= standard___standard__NativeString___to_s_with_length(var18
, 50l);
257 ((struct instance_standard__NativeArray
*)var15
)->values
[0]=var17
;
258 if (likely(varonce20
!=NULL
)) {
262 var23
= standard___standard__NativeString___to_s_with_length(var22
, 2l);
266 ((struct instance_standard__NativeArray
*)var15
)->values
[2]=var21
;
272 var24
= ((val
*(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_recvtype
); /* to_s on <var_recvtype:nullable MType(MNullableType)>*/
274 ((struct instance_standard__NativeArray
*)var15
)->values
[1]=var24
;
276 var25
= ((val
*(*)(val
* self
))(var15
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var15
); /* native_to_s on <var15:NativeArray[String]>*/
280 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var25
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
284 /* <var_recvtype:nullable MType(MType)> isa MFormalType */
285 cltype27
= type_nit__MFormalType
.color
;
286 idtype28
= type_nit__MFormalType
.id
;
287 if(cltype27
>= var_recvtype
->type
->table_size
) {
290 var26
= var_recvtype
->type
->type_table
[cltype27
] == idtype28
;
293 if (unlikely(varonce29
==NULL
)) {
294 var30
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
295 if (likely(varonce31
!=NULL
)) {
298 var33
= "Type Error: cannot instantiate the formal type `";
299 var34
= standard___standard__NativeString___to_s_with_length(var33
, 48l);
303 ((struct instance_standard__NativeArray
*)var30
)->values
[0]=var32
;
304 if (likely(varonce35
!=NULL
)) {
308 var38
= standard___standard__NativeString___to_s_with_length(var37
, 2l);
312 ((struct instance_standard__NativeArray
*)var30
)->values
[2]=var36
;
318 var39
= ((val
*(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_recvtype
); /* to_s on <var_recvtype:nullable MType(MFormalType)>*/
320 ((struct instance_standard__NativeArray
*)var30
)->values
[1]=var39
;
322 var40
= ((val
*(*)(val
* self
))(var30
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var30
); /* native_to_s on <var30:NativeArray[String]>*/
326 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var40
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
330 if (unlikely(varonce41
==NULL
)) {
331 var42
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
332 if (likely(varonce43
!=NULL
)) {
335 var45
= "Type Error: cannot instantiate the type `";
336 var46
= standard___standard__NativeString___to_s_with_length(var45
, 41l);
340 ((struct instance_standard__NativeArray
*)var42
)->values
[0]=var44
;
341 if (likely(varonce47
!=NULL
)) {
345 var50
= standard___standard__NativeString___to_s_with_length(var49
, 2l);
349 ((struct instance_standard__NativeArray
*)var42
)->values
[2]=var48
;
355 var51
= ((val
*(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_recvtype
); /* to_s on <var_recvtype:nullable MType(MType)>*/
357 ((struct instance_standard__NativeArray
*)var42
)->values
[1]=var51
;
359 var52
= ((val
*(*)(val
* self
))(var42
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var42
); /* native_to_s on <var42:NativeArray[String]>*/
363 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var52
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
371 { /* Inline typing#ANewExpr#recvtype= (self,var_recvtype) on <self:ANewExpr> */
372 self
->attrs
[COLOR_nit__typing__ANewExpr___recvtype
].val
= var_recvtype
; /* _recvtype on <self:ANewExpr> */
377 { /* Inline model#MClassType#mclass (var_recvtype) on <var_recvtype:nullable MType(MClassType)> */
378 var56
= var_recvtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_recvtype:nullable MType(MClassType)> */
379 if (unlikely(var56
== NULL
)) {
380 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
381 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
389 { /* Inline model#MClass#kind (var54) on <var54:MClass> */
390 var59
= var54
->attrs
[COLOR_nit__model__MClass___kind
].val
; /* _kind on <var54:MClass> */
391 if (unlikely(var59
== NULL
)) {
392 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
393 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 436);
402 { /* Inline parser_nodes#ANewExpr#n_id (self) on <self:ANewExpr> */
403 var62
= self
->attrs
[COLOR_nit__parser_nodes__ANewExpr___n_id
].val
; /* _n_id on <self:ANewExpr> */
409 if (var_nid
== NULL
) {
410 var63
= 0; /* is null */
412 var63
= 1; /* arg is null and recv is not */
415 { /* Inline kernel#Object#!= (var_nid,((val*)NULL)) on <var_nid:nullable TId> */
416 var_other66
= ((val
*)NULL
);
418 var67
= ((short int(*)(val
* self
, val
* p0
))(var_nid
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_nid
, var_other66
); /* == on <var_nid:nullable TId(TId)>*/
429 var69
= nit__lexer_work___Token___text(var_nid
);
434 if (likely(varonce70
!=NULL
)) {
438 var73
= standard___standard__NativeString___to_s_with_length(var72
, 3l);
444 { /* Inline parser_nodes#ANewExpr#n_kwnew (self) on <self:ANewExpr> */
445 var76
= self
->attrs
[COLOR_nit__parser_nodes__ANewExpr___n_kwnew
].val
; /* _n_kwnew on <self:ANewExpr> */
446 if (unlikely(var76
== NULL
)) {
447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnew");
448 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2252);
457 if (likely(varonce77
!=NULL
)) {
461 var80
= standard___standard__NativeString___to_s_with_length(var79
, 6l);
466 var81
= ((short int(*)(val
* self
, val
* p0
))(var_name
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_name
, var78
); /* == on <var_name:String>*/
471 var83
= nit__model___standard__Sys___concrete_kind(var82
);
474 { /* Inline kernel#Object#!= (var_kind,var83) on <var_kind:MClassKind> */
477 var86
= ((short int(*)(val
* self
, val
* p0
))(var_kind
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_kind
, var_other66
); /* == on <var_kind:MClassKind>*/
486 if (unlikely(varonce88
==NULL
)) {
487 var89
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
488 if (likely(varonce90
!=NULL
)) {
491 var92
= "Type Error: cannot instantiate ";
492 var93
= standard___standard__NativeString___to_s_with_length(var92
, 31l);
496 ((struct instance_standard__NativeArray
*)var89
)->values
[0]=var91
;
497 if (likely(varonce94
!=NULL
)) {
501 var97
= standard___standard__NativeString___to_s_with_length(var96
, 1l);
505 ((struct instance_standard__NativeArray
*)var89
)->values
[2]=var95
;
506 if (likely(varonce98
!=NULL
)) {
510 var101
= standard___standard__NativeString___to_s_with_length(var100
, 1l);
514 ((struct instance_standard__NativeArray
*)var89
)->values
[4]=var99
;
520 var102
= ((val
*(*)(val
* self
))(var_kind
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_kind
); /* to_s on <var_kind:MClassKind>*/
522 ((struct instance_standard__NativeArray
*)var89
)->values
[1]=var102
;
524 var103
= ((val
*(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_recvtype
); /* to_s on <var_recvtype:nullable MType(MClassType)>*/
526 ((struct instance_standard__NativeArray
*)var89
)->values
[3]=var103
;
528 var104
= ((val
*(*)(val
* self
))(var89
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var89
); /* native_to_s on <var89:NativeArray[String]>*/
532 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var104
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
538 { /* Inline parser_nodes#ANewExpr#n_args (self) on <self:ANewExpr> */
539 var107
= self
->attrs
[COLOR_nit__parser_nodes__ANewExpr___n_args
].val
; /* _n_args on <self:ANewExpr> */
540 if (unlikely(var107
== NULL
)) {
541 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
542 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2261);
546 RET_LABEL106
:(void)0;
550 { /* Inline parser_nodes#AExprs#n_exprs (var105) on <var105:AExprs> */
551 var110
= var105
->attrs
[COLOR_nit__parser_nodes__AExprs___n_exprs
].val
; /* _n_exprs on <var105:AExprs> */
552 if (unlikely(var110
== NULL
)) {
553 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
554 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2771);
558 RET_LABEL109
:(void)0;
562 var111
= standard___standard__Collection___not_empty(var108
);
566 { /* Inline parser_nodes#ANewExpr#n_args (self) on <self:ANewExpr> */
567 var114
= self
->attrs
[COLOR_nit__parser_nodes__ANewExpr___n_args
].val
; /* _n_args on <self:ANewExpr> */
568 if (unlikely(var114
== NULL
)) {
569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
570 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2261);
574 RET_LABEL113
:(void)0;
577 if (likely(varonce115
!=NULL
)) {
580 var117
= "Type Error: the intern constructor expects no arguments.";
581 var118
= standard___standard__NativeString___to_s_with_length(var117
, 56l);
586 nit__typing___nit__typing__TypeVisitor___error(var_v
, var112
, var116
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
592 { /* Inline typing#AExpr#mtype= (self,var_recvtype) on <self:ANewExpr> */
593 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var_recvtype
; /* _mtype on <self:ANewExpr> */
594 RET_LABEL119
:(void)0;
601 var120
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, var_node
, var_recvtype
, var_name
, 0);
603 var_callsite
= var120
;
604 if (var_callsite
== NULL
) {
605 var121
= 1; /* is null */
607 var121
= 0; /* arg is null but recv is not */
610 { /* Inline kernel#Object#== (var_callsite,((val*)NULL)) on <var_callsite:nullable CallSite> */
611 var_other
= ((val
*)NULL
);
613 { /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
614 var126
= var_callsite
== var_other
;
617 RET_LABEL125
:(void)0;
622 RET_LABEL123
:(void)0;
631 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
632 var129
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
633 if (unlikely(var129
== NULL
)) {
634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
635 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 624);
639 RET_LABEL128
:(void)0;
643 { /* Inline model#MMethod#is_new (var127) on <var127:MMethod> */
644 var132
= var127
->attrs
[COLOR_nit__model__MMethod___is_new
].s
; /* _is_new on <var127:MMethod> */
646 RET_LABEL131
:(void)0;
653 var135
= nit__model___standard__Sys___concrete_kind(var134
);
656 { /* Inline kernel#Object#!= (var_kind,var135) on <var_kind:MClassKind> */
657 var_other66
= var135
;
659 var138
= ((short int(*)(val
* self
, val
* p0
))(var_kind
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_kind
, var_other66
); /* == on <var_kind:MClassKind>*/
664 RET_LABEL137
:(void)0;
668 if (unlikely(varonce140
==NULL
)) {
669 var141
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
670 if (likely(varonce142
!=NULL
)) {
673 var144
= "Type Error: cannot instantiate ";
674 var145
= standard___standard__NativeString___to_s_with_length(var144
, 31l);
678 ((struct instance_standard__NativeArray
*)var141
)->values
[0]=var143
;
679 if (likely(varonce146
!=NULL
)) {
683 var149
= standard___standard__NativeString___to_s_with_length(var148
, 2l);
687 ((struct instance_standard__NativeArray
*)var141
)->values
[2]=var147
;
688 if (likely(varonce150
!=NULL
)) {
692 var153
= standard___standard__NativeString___to_s_with_length(var152
, 2l);
696 ((struct instance_standard__NativeArray
*)var141
)->values
[4]=var151
;
702 var154
= ((val
*(*)(val
* self
))(var_kind
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_kind
); /* to_s on <var_kind:MClassKind>*/
704 ((struct instance_standard__NativeArray
*)var141
)->values
[1]=var154
;
706 var155
= ((val
*(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_recvtype
); /* to_s on <var_recvtype:nullable MType(MClassType)>*/
708 ((struct instance_standard__NativeArray
*)var141
)->values
[3]=var155
;
710 var156
= ((val
*(*)(val
* self
))(var141
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var141
); /* native_to_s on <var141:NativeArray[String]>*/
714 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var156
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
720 { /* Inline typing#AExpr#mtype= (self,var_recvtype) on <self:ANewExpr> */
721 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var_recvtype
; /* _mtype on <self:ANewExpr> */
722 RET_LABEL157
:(void)0;
727 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
728 var160
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
; /* _msignature on <var_callsite:nullable CallSite(CallSite)> */
729 if (unlikely(var160
== NULL
)) {
730 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
731 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 631);
735 RET_LABEL159
:(void)0;
739 { /* Inline model#MSignature#return_mtype (var158) on <var158:MSignature> */
740 var163
= var158
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var158:MSignature> */
742 RET_LABEL162
:(void)0;
746 { /* Inline typing#AExpr#mtype= (self,var161) on <self:ANewExpr> */
747 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var161
; /* _mtype on <self:ANewExpr> */
748 RET_LABEL164
:(void)0;
752 { /* Inline typing#AExpr#mtype (self) on <self:ANewExpr> */
753 var167
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:ANewExpr> */
755 RET_LABEL166
:(void)0;
758 if (var165
== NULL
) {
759 var168
= 0; /* is null */
761 var168
= 1; /* arg is null and recv is not */
764 { /* Inline kernel#Object#!= (var165,((val*)NULL)) on <var165:nullable MType> */
765 var_other66
= ((val
*)NULL
);
767 var171
= ((short int(*)(val
* self
, val
* p0
))(var165
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var165
, var_other66
); /* == on <var165:nullable MType(MType)>*/
772 RET_LABEL170
:(void)0;
776 if (unlikely(!var168
)) {
777 PRINT_ERROR("Runtime error: %s", "Assert failed");
778 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1995);
783 { /* Inline typing#ANewExpr#callsite= (self,var_callsite) on <self:ANewExpr> */
784 self
->attrs
[COLOR_nit__typing__ANewExpr___callsite
].val
= var_callsite
; /* _callsite on <self:ANewExpr> */
785 RET_LABEL173
:(void)0;
789 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
790 var176
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
791 if (unlikely(var176
== NULL
)) {
792 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
793 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 624);
797 RET_LABEL175
:(void)0;
801 { /* Inline model#MClassType#mclass (var_recvtype) on <var_recvtype:nullable MType(MClassType)> */
802 var179
= var_recvtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_recvtype:nullable MType(MClassType)> */
803 if (unlikely(var179
== NULL
)) {
804 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
805 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
809 RET_LABEL178
:(void)0;
813 var180
= nit___nit__MMethod___is_init_for(var174
, var177
);
817 if (unlikely(varonce182
==NULL
)) {
818 var183
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
819 if (likely(varonce184
!=NULL
)) {
823 var187
= standard___standard__NativeString___to_s_with_length(var186
, 8l);
827 ((struct instance_standard__NativeArray
*)var183
)->values
[0]=var185
;
828 if (likely(varonce188
!=NULL
)) {
831 var190
= "` is not a constructor.";
832 var191
= standard___standard__NativeString___to_s_with_length(var190
, 23l);
836 ((struct instance_standard__NativeArray
*)var183
)->values
[2]=var189
;
841 ((struct instance_standard__NativeArray
*)var183
)->values
[1]=var_name
;
843 var192
= ((val
*(*)(val
* self
))(var183
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var183
); /* native_to_s on <var183:NativeArray[String]>*/
847 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var192
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
853 { /* Inline parser_nodes#ANewExpr#n_args (self) on <self:ANewExpr> */
854 var195
= self
->attrs
[COLOR_nit__parser_nodes__ANewExpr___n_args
].val
; /* _n_args on <self:ANewExpr> */
855 if (unlikely(var195
== NULL
)) {
856 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
857 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2261);
861 RET_LABEL194
:(void)0;
865 var196
= nit__typing___AExprs___to_a(var193
);
869 var197
= nit___nit__CallSite___check_signature(var_callsite
, var_v
, var_args
);
873 /* method typing#AAttrFormExpr#mproperty for (self: AAttrFormExpr): nullable MAttribute */
874 val
* nit__typing___AAttrFormExpr___mproperty(val
* self
) {
875 val
* var
/* : nullable MAttribute */;
876 val
* var1
/* : nullable MAttribute */;
877 var1
= self
->attrs
[COLOR_nit__typing__AAttrFormExpr___mproperty
].val
; /* _mproperty on <self:AAttrFormExpr> */
882 /* method typing#AAttrFormExpr#mproperty= for (self: AAttrFormExpr, nullable MAttribute) */
883 void nit__typing___AAttrFormExpr___mproperty_61d(val
* self
, val
* p0
) {
884 self
->attrs
[COLOR_nit__typing__AAttrFormExpr___mproperty
].val
= p0
; /* _mproperty on <self:AAttrFormExpr> */
887 /* method typing#AAttrFormExpr#attr_type for (self: AAttrFormExpr): nullable MType */
888 val
* nit__typing___AAttrFormExpr___attr_type(val
* self
) {
889 val
* var
/* : nullable MType */;
890 val
* var1
/* : nullable MType */;
891 var1
= self
->attrs
[COLOR_nit__typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:AAttrFormExpr> */
896 /* method typing#AAttrFormExpr#attr_type= for (self: AAttrFormExpr, nullable MType) */
897 void nit__typing___AAttrFormExpr___attr_type_61d(val
* self
, val
* p0
) {
898 self
->attrs
[COLOR_nit__typing__AAttrFormExpr___attr_type
].val
= p0
; /* _attr_type on <self:AAttrFormExpr> */
901 /* method typing#AAttrFormExpr#resolve_property for (self: AAttrFormExpr, TypeVisitor) */
902 void nit__typing___AAttrFormExpr___resolve_property(val
* self
, val
* p0
) {
903 val
* var_v
/* var v: TypeVisitor */;
904 val
* var
/* : AExpr */;
905 val
* var2
/* : AExpr */;
906 val
* var3
/* : nullable MType */;
907 val
* var_recvtype
/* var recvtype: nullable MType */;
908 short int var4
/* : Bool */;
909 short int var5
/* : Bool */;
910 val
* var_other
/* var other: nullable Object */;
911 short int var7
/* : Bool */;
912 short int var9
/* : Bool */;
913 val
* var10
/* : TAttrid */;
914 val
* var12
/* : TAttrid */;
915 val
* var_node
/* var node: TAttrid */;
916 val
* var13
/* : String */;
917 val
* var_name
/* var name: String */;
918 short int var14
/* : Bool */;
921 val
* var15
/* : NativeArray[String] */;
923 static val
* varonce16
;
924 val
* var17
/* : String */;
925 char* var18
/* : NativeString */;
926 val
* var19
/* : FlatString */;
927 static val
* varonce20
;
928 val
* var21
/* : String */;
929 char* var22
/* : NativeString */;
930 val
* var23
/* : FlatString */;
931 val
* var24
/* : String */;
932 val
* var25
/* : MType */;
933 val
* var_unsafe_type
/* var unsafe_type: MType */;
934 val
* var26
/* : nullable MProperty */;
935 val
* var_mproperty
/* var mproperty: nullable MProperty */;
936 short int var27
/* : Bool */;
937 short int var28
/* : Bool */;
938 short int var30
/* : Bool */;
939 short int var32
/* : Bool */;
940 val
* var33
/* : ModelBuilder */;
941 val
* var35
/* : ModelBuilder */;
942 val
* var37
/* : NativeArray[String] */;
943 static val
* varonce36
;
944 static val
* varonce38
;
945 val
* var39
/* : String */;
946 char* var40
/* : NativeString */;
947 val
* var41
/* : FlatString */;
948 static val
* varonce42
;
949 val
* var43
/* : String */;
950 char* var44
/* : NativeString */;
951 val
* var45
/* : FlatString */;
952 static val
* varonce46
;
953 val
* var47
/* : String */;
954 char* var48
/* : NativeString */;
955 val
* var49
/* : FlatString */;
956 val
* var50
/* : String */;
957 val
* var51
/* : String */;
958 short int var52
/* : Bool */;
961 val
* var56
/* : MModule */;
962 val
* var58
/* : MModule */;
963 val
* var59
/* : Array[MPropDef] */;
964 val
* var_mpropdefs
/* var mpropdefs: Array[MAttributeDef] */;
965 long var60
/* : Int */;
966 long var62
/* : Int */;
967 short int var63
/* : Bool */;
968 short int var65
/* : Bool */;
969 val
* var66
/* : nullable Object */;
970 val
* var_mpropdef
/* var mpropdef: MAttributeDef */;
971 val
* var67
/* : nullable MType */;
972 val
* var69
/* : nullable MType */;
973 val
* var_attr_type
/* var attr_type: nullable MType */;
974 short int var70
/* : Bool */;
975 short int var71
/* : Bool */;
976 short int var73
/* : Bool */;
977 short int var75
/* : Bool */;
978 val
* var76
/* : AExpr */;
979 val
* var78
/* : AExpr */;
980 short int var79
/* : Bool */;
983 val
* var82
/* : MType */;
986 { /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on <self:AAttrFormExpr> */
987 var2
= self
->attrs
[COLOR_nit__parser_nodes__AAttrFormExpr___n_expr
].val
; /* _n_expr on <self:AAttrFormExpr> */
988 if (unlikely(var2
== NULL
)) {
989 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
990 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2269);
998 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var
);
1000 var_recvtype
= var3
;
1001 if (var_recvtype
== NULL
) {
1002 var4
= 1; /* is null */
1004 var4
= 0; /* arg is null but recv is not */
1007 { /* Inline kernel#Object#== (var_recvtype,((val*)NULL)) on <var_recvtype:nullable MType> */
1008 var_other
= ((val
*)NULL
);
1010 { /* Inline kernel#Object#is_same_instance (var_recvtype,var_other) on <var_recvtype:nullable MType(MType)> */
1011 var9
= var_recvtype
== var_other
;
1028 { /* Inline parser_nodes#AAttrFormExpr#n_id (self) on <self:AAttrFormExpr> */
1029 var12
= self
->attrs
[COLOR_nit__parser_nodes__AAttrFormExpr___n_id
].val
; /* _n_id on <self:AAttrFormExpr> */
1030 if (unlikely(var12
== NULL
)) {
1031 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
1032 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2272);
1036 RET_LABEL11
:(void)0;
1041 var13
= nit__lexer_work___Token___text(var_node
);
1044 /* <var_recvtype:nullable MType(MType)> isa MNullType */
1045 cltype
= type_nit__MNullType
.color
;
1046 idtype
= type_nit__MNullType
.id
;
1047 if(cltype
>= var_recvtype
->type
->table_size
) {
1050 var14
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
1053 if (unlikely(varonce
==NULL
)) {
1054 var15
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
1055 if (likely(varonce16
!=NULL
)) {
1058 var18
= "Error: attribute `";
1059 var19
= standard___standard__NativeString___to_s_with_length(var18
, 18l);
1063 ((struct instance_standard__NativeArray
*)var15
)->values
[0]=var17
;
1064 if (likely(varonce20
!=NULL
)) {
1067 var22
= "` access on `null`.";
1068 var23
= standard___standard__NativeString___to_s_with_length(var22
, 19l);
1072 ((struct instance_standard__NativeArray
*)var15
)->values
[2]=var21
;
1077 ((struct instance_standard__NativeArray
*)var15
)->values
[1]=var_name
;
1079 var24
= ((val
*(*)(val
* self
))(var15
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var15
); /* native_to_s on <var15:NativeArray[String]>*/
1083 nit__typing___nit__typing__TypeVisitor___error(var_v
, var_node
, var24
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
1089 var25
= nit__typing___nit__typing__TypeVisitor___anchor_to(var_v
, var_recvtype
);
1091 var_unsafe_type
= var25
;
1093 var26
= nit__typing___nit__typing__TypeVisitor___try_get_mproperty_by_name2(var_v
, var_node
, var_unsafe_type
, var_name
);
1095 var_mproperty
= var26
;
1096 if (var_mproperty
== NULL
) {
1097 var27
= 1; /* is null */
1099 var27
= 0; /* arg is null but recv is not */
1102 { /* Inline kernel#Object#== (var_mproperty,((val*)NULL)) on <var_mproperty:nullable MProperty> */
1103 var_other
= ((val
*)NULL
);
1105 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
1106 var32
= var_mproperty
== var_other
;
1109 RET_LABEL31
:(void)0;
1114 RET_LABEL29
:(void)0;
1120 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
1121 var35
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
1122 if (unlikely(var35
== NULL
)) {
1123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1124 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
1128 RET_LABEL34
:(void)0;
1131 if (unlikely(varonce36
==NULL
)) {
1132 var37
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
1133 if (likely(varonce38
!=NULL
)) {
1136 var40
= "Error: attribute `";
1137 var41
= standard___standard__NativeString___to_s_with_length(var40
, 18l);
1141 ((struct instance_standard__NativeArray
*)var37
)->values
[0]=var39
;
1142 if (likely(varonce42
!=NULL
)) {
1145 var44
= "` does not exist in `";
1146 var45
= standard___standard__NativeString___to_s_with_length(var44
, 21l);
1150 ((struct instance_standard__NativeArray
*)var37
)->values
[2]=var43
;
1151 if (likely(varonce46
!=NULL
)) {
1155 var49
= standard___standard__NativeString___to_s_with_length(var48
, 2l);
1159 ((struct instance_standard__NativeArray
*)var37
)->values
[4]=var47
;
1164 ((struct instance_standard__NativeArray
*)var37
)->values
[1]=var_name
;
1166 var50
= ((val
*(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_recvtype
); /* to_s on <var_recvtype:nullable MType(MType)>*/
1168 ((struct instance_standard__NativeArray
*)var37
)->values
[3]=var50
;
1170 var51
= ((val
*(*)(val
* self
))(var37
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var37
); /* native_to_s on <var37:NativeArray[String]>*/
1174 nit___nit__ModelBuilder___error(var33
, var_node
, var51
); /* Direct call modelbuilder_base#ModelBuilder#error on <var33:ModelBuilder>*/
1179 /* <var_mproperty:nullable MProperty(MProperty)> isa MAttribute */
1180 cltype53
= type_nit__MAttribute
.color
;
1181 idtype54
= type_nit__MAttribute
.id
;
1182 if(cltype53
>= var_mproperty
->type
->table_size
) {
1185 var52
= var_mproperty
->type
->type_table
[cltype53
] == idtype54
;
1187 if (unlikely(!var52
)) {
1188 PRINT_ERROR("Runtime error: %s", "Assert failed");
1189 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 2037);
1193 { /* Inline typing#AAttrFormExpr#mproperty= (self,var_mproperty) on <self:AAttrFormExpr> */
1194 self
->attrs
[COLOR_nit__typing__AAttrFormExpr___mproperty
].val
= var_mproperty
; /* _mproperty on <self:AAttrFormExpr> */
1195 RET_LABEL55
:(void)0;
1199 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
1200 var58
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
1201 if (unlikely(var58
== NULL
)) {
1202 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1203 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
1207 RET_LABEL57
:(void)0;
1211 var59
= nit___nit__MProperty___lookup_definitions(var_mproperty
, var56
, var_unsafe_type
);
1213 var_mpropdefs
= var59
;
1215 { /* Inline array#AbstractArrayRead#length (var_mpropdefs) on <var_mpropdefs:Array[MAttributeDef]> */
1216 var62
= var_mpropdefs
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_mpropdefs:Array[MAttributeDef]> */
1218 RET_LABEL61
:(void)0;
1222 { /* Inline kernel#Int#== (var60,1l) on <var60:Int> */
1223 var65
= var60
== 1l;
1226 RET_LABEL64
:(void)0;
1229 if (unlikely(!var63
)) {
1230 PRINT_ERROR("Runtime error: %s", "Assert failed");
1231 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 2041);
1235 var66
= standard___standard__SequenceRead___Collection__first(var_mpropdefs
);
1237 var_mpropdef
= var66
;
1239 { /* Inline model#MAttributeDef#static_mtype (var_mpropdef) on <var_mpropdef:MAttributeDef> */
1240 var69
= var_mpropdef
->attrs
[COLOR_nit__model__MAttributeDef___static_mtype
].val
; /* _static_mtype on <var_mpropdef:MAttributeDef> */
1242 RET_LABEL68
:(void)0;
1245 var_attr_type
= var67
;
1246 if (var_attr_type
== NULL
) {
1247 var70
= 1; /* is null */
1249 var70
= 0; /* arg is null but recv is not */
1252 { /* Inline kernel#Object#== (var_attr_type,((val*)NULL)) on <var_attr_type:nullable MType> */
1253 var_other
= ((val
*)NULL
);
1255 { /* Inline kernel#Object#is_same_instance (var_attr_type,var_other) on <var_attr_type:nullable MType(MType)> */
1256 var75
= var_attr_type
== var_other
;
1259 RET_LABEL74
:(void)0;
1264 RET_LABEL72
:(void)0;
1273 { /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on <self:AAttrFormExpr> */
1274 var78
= self
->attrs
[COLOR_nit__parser_nodes__AAttrFormExpr___n_expr
].val
; /* _n_expr on <self:AAttrFormExpr> */
1275 if (unlikely(var78
== NULL
)) {
1276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1277 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2269);
1281 RET_LABEL77
:(void)0;
1284 /* <var76:AExpr> isa ASelfExpr */
1285 cltype80
= type_nit__ASelfExpr
.color
;
1286 idtype81
= type_nit__ASelfExpr
.id
;
1287 if(cltype80
>= var76
->type
->table_size
) {
1290 var79
= var76
->type
->type_table
[cltype80
] == idtype81
;
1293 var82
= nit__typing___nit__typing__TypeVisitor___resolve_for(var_v
, var_attr_type
, var_recvtype
, var79
);
1295 var_attr_type
= var82
;
1297 { /* Inline typing#AAttrFormExpr#attr_type= (self,var_attr_type) on <self:AAttrFormExpr> */
1298 self
->attrs
[COLOR_nit__typing__AAttrFormExpr___attr_type
].val
= var_attr_type
; /* _attr_type on <self:AAttrFormExpr> */
1299 RET_LABEL83
:(void)0;
1304 /* method typing#AAttrExpr#accept_typing for (self: AAttrExpr, TypeVisitor) */
1305 void nit__typing___AAttrExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
1306 val
* var_v
/* var v: TypeVisitor */;
1307 val
* var
/* : nullable MType */;
1308 val
* var2
/* : nullable MType */;
1311 nit__typing___AAttrFormExpr___resolve_property(self
, var_v
); /* Direct call typing#AAttrFormExpr#resolve_property on <self:AAttrExpr>*/
1314 { /* Inline typing#AAttrFormExpr#attr_type (self) on <self:AAttrExpr> */
1315 var2
= self
->attrs
[COLOR_nit__typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:AAttrExpr> */
1321 { /* Inline typing#AExpr#mtype= (self,var) on <self:AAttrExpr> */
1322 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var
; /* _mtype on <self:AAttrExpr> */
1328 /* method typing#AAttrAssignExpr#accept_typing for (self: AAttrAssignExpr, TypeVisitor) */
1329 void nit__typing___AAttrAssignExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
1330 val
* var_v
/* var v: TypeVisitor */;
1331 val
* var
/* : nullable MType */;
1332 val
* var2
/* : nullable MType */;
1333 val
* var_mtype
/* var mtype: nullable MType */;
1334 val
* var3
/* : AExpr */;
1335 val
* var5
/* : AExpr */;
1336 val
* var6
/* : nullable MType */;
1337 short int var7
/* : Bool */;
1338 short int var8
/* : Bool */;
1339 val
* var_other
/* var other: nullable Object */;
1340 short int var10
/* : Bool */;
1341 short int var11
/* : Bool */;
1344 nit__typing___AAttrFormExpr___resolve_property(self
, var_v
); /* Direct call typing#AAttrFormExpr#resolve_property on <self:AAttrAssignExpr>*/
1347 { /* Inline typing#AAttrFormExpr#attr_type (self) on <self:AAttrAssignExpr> */
1348 var2
= self
->attrs
[COLOR_nit__typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:AAttrAssignExpr> */
1355 { /* Inline parser_nodes#AAssignFormExpr#n_value (self) on <self:AAttrAssignExpr> */
1356 var5
= self
->attrs
[COLOR_nit__parser_nodes__AAssignFormExpr___n_value
].val
; /* _n_value on <self:AAttrAssignExpr> */
1357 if (unlikely(var5
== NULL
)) {
1358 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
1359 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1995);
1367 var6
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(var_v
, var3
, var_mtype
);
1369 if (var_mtype
== NULL
) {
1370 var7
= 0; /* is null */
1372 var7
= 1; /* arg is null and recv is not */
1375 { /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
1376 var_other
= ((val
*)NULL
);
1378 var10
= ((short int(*)(val
* self
, val
* p0
))(var_mtype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mtype
, var_other
); /* == on <var_mtype:nullable MType(MType)>*/
1388 { /* Inline typing#AExpr#is_typed= (self,var7) on <self:AAttrAssignExpr> */
1389 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var7
; /* _is_typed on <self:AAttrAssignExpr> */
1390 RET_LABEL12
:(void)0;
1395 /* method typing#AAttrReassignExpr#accept_typing for (self: AAttrReassignExpr, TypeVisitor) */
1396 void nit__typing___AAttrReassignExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
1397 val
* var_v
/* var v: TypeVisitor */;
1398 val
* var
/* : nullable MType */;
1399 val
* var2
/* : nullable MType */;
1400 val
* var_mtype
/* var mtype: nullable MType */;
1401 short int var3
/* : Bool */;
1402 short int var4
/* : Bool */;
1403 val
* var_other
/* var other: nullable Object */;
1404 short int var6
/* : Bool */;
1405 short int var8
/* : Bool */;
1406 val
* var9
/* : nullable MType */;
1407 val
* var_rettype
/* var rettype: nullable MType */;
1408 short int var10
/* : Bool */;
1409 short int var11
/* : Bool */;
1410 val
* var_other13
/* var other: nullable Object */;
1411 short int var14
/* : Bool */;
1412 short int var15
/* : Bool */;
1415 nit__typing___AAttrFormExpr___resolve_property(self
, var_v
); /* Direct call typing#AAttrFormExpr#resolve_property on <self:AAttrReassignExpr>*/
1418 { /* Inline typing#AAttrFormExpr#attr_type (self) on <self:AAttrReassignExpr> */
1419 var2
= self
->attrs
[COLOR_nit__typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:AAttrReassignExpr> */
1425 if (var_mtype
== NULL
) {
1426 var3
= 1; /* is null */
1428 var3
= 0; /* arg is null but recv is not */
1431 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
1432 var_other
= ((val
*)NULL
);
1434 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
1435 var8
= var_mtype
== var_other
;
1452 var9
= nit__typing___AReassignFormExpr___resolve_reassignment(self
, var_v
, var_mtype
, var_mtype
);
1455 if (var_rettype
== NULL
) {
1456 var10
= 0; /* is null */
1458 var10
= 1; /* arg is null and recv is not */
1461 { /* Inline kernel#Object#!= (var_rettype,((val*)NULL)) on <var_rettype:nullable MType> */
1462 var_other13
= ((val
*)NULL
);
1464 var14
= ((short int(*)(val
* self
, val
* p0
))(var_rettype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_rettype
, var_other13
); /* == on <var_rettype:nullable MType(MType)>*/
1469 RET_LABEL12
:(void)0;
1474 { /* Inline typing#AExpr#is_typed= (self,var10) on <self:AAttrReassignExpr> */
1475 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var10
; /* _is_typed on <self:AAttrReassignExpr> */
1476 RET_LABEL16
:(void)0;
1481 /* method typing#AIssetAttrExpr#accept_typing for (self: AIssetAttrExpr, TypeVisitor) */
1482 void nit__typing___AIssetAttrExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
1483 val
* var_v
/* var v: TypeVisitor */;
1484 val
* var
/* : nullable MType */;
1485 val
* var2
/* : nullable MType */;
1486 val
* var_mtype
/* var mtype: nullable MType */;
1487 short int var3
/* : Bool */;
1488 short int var4
/* : Bool */;
1489 val
* var_other
/* var other: nullable Object */;
1490 short int var6
/* : Bool */;
1491 short int var8
/* : Bool */;
1492 val
* var9
/* : AExpr */;
1493 val
* var11
/* : AExpr */;
1494 val
* var12
/* : nullable MType */;
1495 val
* var_recvtype
/* var recvtype: MType */;
1496 val
* var13
/* : MType */;
1497 val
* var_bound
/* var bound: MType */;
1498 short int var14
/* : Bool */;
1501 val
* var15
/* : TAttrid */;
1502 val
* var17
/* : TAttrid */;
1503 static val
* varonce
;
1504 val
* var18
/* : String */;
1505 char* var19
/* : NativeString */;
1506 val
* var20
/* : FlatString */;
1507 val
* var21
/* : nullable MType */;
1510 nit__typing___AAttrFormExpr___resolve_property(self
, var_v
); /* Direct call typing#AAttrFormExpr#resolve_property on <self:AIssetAttrExpr>*/
1513 { /* Inline typing#AAttrFormExpr#attr_type (self) on <self:AIssetAttrExpr> */
1514 var2
= self
->attrs
[COLOR_nit__typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:AIssetAttrExpr> */
1520 if (var_mtype
== NULL
) {
1521 var3
= 1; /* is null */
1523 var3
= 0; /* arg is null but recv is not */
1526 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
1527 var_other
= ((val
*)NULL
);
1529 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
1530 var8
= var_mtype
== var_other
;
1547 { /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on <self:AIssetAttrExpr> */
1548 var11
= self
->attrs
[COLOR_nit__parser_nodes__AAttrFormExpr___n_expr
].val
; /* _n_expr on <self:AIssetAttrExpr> */
1549 if (unlikely(var11
== NULL
)) {
1550 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1551 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2269);
1555 RET_LABEL10
:(void)0;
1559 var12
= ((val
*(*)(val
* self
))(var9
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(var9
); /* mtype on <var9:AExpr>*/
1561 if (unlikely(var12
== NULL
)) {
1562 PRINT_ERROR("Runtime error: %s", "Cast failed");
1563 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 2090);
1566 var_recvtype
= var12
;
1568 var13
= nit__typing___nit__typing__TypeVisitor___resolve_for(var_v
, var_mtype
, var_recvtype
, 0);
1571 /* <var_bound:MType> isa MNullableType */
1572 cltype
= type_nit__MNullableType
.color
;
1573 idtype
= type_nit__MNullableType
.id
;
1574 if(cltype
>= var_bound
->type
->table_size
) {
1577 var14
= var_bound
->type
->type_table
[cltype
] == idtype
;
1581 { /* Inline parser_nodes#AAttrFormExpr#n_id (self) on <self:AIssetAttrExpr> */
1582 var17
= self
->attrs
[COLOR_nit__parser_nodes__AAttrFormExpr___n_id
].val
; /* _n_id on <self:AIssetAttrExpr> */
1583 if (unlikely(var17
== NULL
)) {
1584 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
1585 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2272);
1589 RET_LABEL16
:(void)0;
1592 if (likely(varonce
!=NULL
)) {
1595 var19
= "Type Error: `isset` on a nullable attribute.";
1596 var20
= standard___standard__NativeString___to_s_with_length(var19
, 44l);
1601 nit__typing___nit__typing__TypeVisitor___error(var_v
, var15
, var18
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
1606 var21
= nit__typing___nit__typing__TypeVisitor___type_bool(var_v
, self
);
1609 { /* Inline typing#AExpr#mtype= (self,var21) on <self:AIssetAttrExpr> */
1610 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var21
; /* _mtype on <self:AIssetAttrExpr> */
1611 RET_LABEL22
:(void)0;
1616 /* method typing#AVarargExpr#accept_typing for (self: AVarargExpr, TypeVisitor) */
1617 void nit__typing___AVarargExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
1618 val
* var_v
/* var v: TypeVisitor */;
1619 static val
* varonce
;
1620 val
* var
/* : String */;
1621 char* var1
/* : NativeString */;
1622 val
* var2
/* : FlatString */;
1624 if (likely(varonce
!=NULL
)) {
1627 var1
= "Syntax Error: unexpected `...`.";
1628 var2
= standard___standard__NativeString___to_s_with_length(var1
, 31l);
1633 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
1637 /* method typing#ADebugTypeExpr#accept_typing for (self: ADebugTypeExpr, TypeVisitor) */
1638 void nit__typing___ADebugTypeExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
1639 val
* var_v
/* var v: TypeVisitor */;
1640 val
* var
/* : AExpr */;
1641 val
* var2
/* : AExpr */;
1642 val
* var3
/* : nullable MType */;
1643 val
* var_expr
/* var expr: nullable MType */;
1644 short int var4
/* : Bool */;
1645 short int var5
/* : Bool */;
1646 val
* var_other
/* var other: nullable Object */;
1647 short int var7
/* : Bool */;
1648 short int var9
/* : Bool */;
1649 val
* var10
/* : MType */;
1650 val
* var_unsafe
/* var unsafe: MType */;
1651 val
* var11
/* : AType */;
1652 val
* var13
/* : AType */;
1653 val
* var_ntype
/* var ntype: AType */;
1654 val
* var14
/* : nullable MType */;
1655 val
* var_mtype
/* var mtype: nullable MType */;
1656 short int var15
/* : Bool */;
1657 short int var16
/* : Bool */;
1658 short int var17
/* : Bool */;
1659 val
* var_other19
/* var other: nullable Object */;
1660 short int var20
/* : Bool */;
1661 short int var21
/* : Bool */;
1662 short int var_
/* var : Bool */;
1663 short int var22
/* : Bool */;
1664 short int var24
/* : Bool */;
1665 short int var25
/* : Bool */;
1666 val
* var26
/* : MType */;
1667 val
* var_umtype
/* var umtype: MType */;
1668 val
* var27
/* : ModelBuilder */;
1669 val
* var29
/* : ModelBuilder */;
1670 static val
* varonce
;
1671 val
* var30
/* : String */;
1672 char* var31
/* : NativeString */;
1673 val
* var32
/* : FlatString */;
1674 val
* var34
/* : NativeArray[String] */;
1675 static val
* varonce33
;
1676 static val
* varonce35
;
1677 val
* var36
/* : String */;
1678 char* var37
/* : NativeString */;
1679 val
* var38
/* : FlatString */;
1680 static val
* varonce39
;
1681 val
* var40
/* : String */;
1682 char* var41
/* : NativeString */;
1683 val
* var42
/* : FlatString */;
1684 static val
* varonce43
;
1685 val
* var44
/* : String */;
1686 char* var45
/* : NativeString */;
1687 val
* var46
/* : FlatString */;
1688 static val
* varonce47
;
1689 val
* var48
/* : String */;
1690 char* var49
/* : NativeString */;
1691 val
* var50
/* : FlatString */;
1692 static val
* varonce51
;
1693 val
* var52
/* : String */;
1694 char* var53
/* : NativeString */;
1695 val
* var54
/* : FlatString */;
1696 val
* var55
/* : String */;
1697 val
* var56
/* : String */;
1698 val
* var57
/* : String */;
1699 val
* var58
/* : String */;
1700 val
* var59
/* : String */;
1703 { /* Inline parser_nodes#ADebugTypeExpr#n_expr (self) on <self:ADebugTypeExpr> */
1704 var2
= self
->attrs
[COLOR_nit__parser_nodes__ADebugTypeExpr___n_expr
].val
; /* _n_expr on <self:ADebugTypeExpr> */
1705 if (unlikely(var2
== NULL
)) {
1706 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1707 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2760);
1715 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var
);
1718 if (var_expr
== NULL
) {
1719 var4
= 1; /* is null */
1721 var4
= 0; /* arg is null but recv is not */
1724 { /* Inline kernel#Object#== (var_expr,((val*)NULL)) on <var_expr:nullable MType> */
1725 var_other
= ((val
*)NULL
);
1727 { /* Inline kernel#Object#is_same_instance (var_expr,var_other) on <var_expr:nullable MType(MType)> */
1728 var9
= var_expr
== var_other
;
1745 var10
= nit__typing___nit__typing__TypeVisitor___anchor_to(var_v
, var_expr
);
1749 { /* Inline parser_nodes#ADebugTypeExpr#n_type (self) on <self:ADebugTypeExpr> */
1750 var13
= self
->attrs
[COLOR_nit__parser_nodes__ADebugTypeExpr___n_type
].val
; /* _n_type on <self:ADebugTypeExpr> */
1751 if (unlikely(var13
== NULL
)) {
1752 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
1753 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2763);
1757 RET_LABEL12
:(void)0;
1762 var14
= nit__typing___nit__typing__TypeVisitor___resolve_mtype(var_v
, var_ntype
);
1765 if (var_mtype
== NULL
) {
1766 var16
= 0; /* is null */
1768 var16
= 1; /* arg is null and recv is not */
1771 { /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
1772 var_other19
= ((val
*)NULL
);
1774 var20
= ((short int(*)(val
* self
, val
* p0
))(var_mtype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mtype
, var_other19
); /* == on <var_mtype:nullable MType(MType)>*/
1779 RET_LABEL18
:(void)0;
1786 { /* Inline kernel#Object#!= (var_mtype,var_expr) on <var_mtype:nullable MType(MType)> */
1787 var_other19
= var_expr
;
1789 var24
= ((short int(*)(val
* self
, val
* p0
))(var_mtype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mtype
, var_other19
); /* == on <var_mtype:nullable MType(MType)>*/
1794 RET_LABEL23
:(void)0;
1803 var26
= nit__typing___nit__typing__TypeVisitor___anchor_to(var_v
, var_mtype
);
1807 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
1808 var29
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
1809 if (unlikely(var29
== NULL
)) {
1810 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1811 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
1815 RET_LABEL28
:(void)0;
1818 if (likely(varonce
!=NULL
)) {
1822 var32
= standard___standard__NativeString___to_s_with_length(var31
, 5l);
1826 if (unlikely(varonce33
==NULL
)) {
1827 var34
= NEW_standard__NativeArray(9l, &type_standard__NativeArray__standard__String
);
1828 if (likely(varonce35
!=NULL
)) {
1831 var37
= "Found type ";
1832 var38
= standard___standard__NativeString___to_s_with_length(var37
, 11l);
1836 ((struct instance_standard__NativeArray
*)var34
)->values
[0]=var36
;
1837 if (likely(varonce39
!=NULL
)) {
1841 var42
= standard___standard__NativeString___to_s_with_length(var41
, 5l);
1845 ((struct instance_standard__NativeArray
*)var34
)->values
[2]=var40
;
1846 if (likely(varonce43
!=NULL
)) {
1849 var45
= "), expected ";
1850 var46
= standard___standard__NativeString___to_s_with_length(var45
, 12l);
1854 ((struct instance_standard__NativeArray
*)var34
)->values
[4]=var44
;
1855 if (likely(varonce47
!=NULL
)) {
1859 var50
= standard___standard__NativeString___to_s_with_length(var49
, 5l);
1863 ((struct instance_standard__NativeArray
*)var34
)->values
[6]=var48
;
1864 if (likely(varonce51
!=NULL
)) {
1868 var54
= standard___standard__NativeString___to_s_with_length(var53
, 1l);
1872 ((struct instance_standard__NativeArray
*)var34
)->values
[8]=var52
;
1878 var55
= ((val
*(*)(val
* self
))(var_expr
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_expr
); /* to_s on <var_expr:nullable MType(MType)>*/
1880 ((struct instance_standard__NativeArray
*)var34
)->values
[1]=var55
;
1882 var56
= ((val
*(*)(val
* self
))(var_unsafe
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_unsafe
); /* to_s on <var_unsafe:MType>*/
1884 ((struct instance_standard__NativeArray
*)var34
)->values
[3]=var56
;
1886 var57
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:nullable MType(MType)>*/
1888 ((struct instance_standard__NativeArray
*)var34
)->values
[5]=var57
;
1890 var58
= ((val
*(*)(val
* self
))(var_umtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_umtype
); /* to_s on <var_umtype:MType>*/
1892 ((struct instance_standard__NativeArray
*)var34
)->values
[7]=var58
;
1894 var59
= ((val
*(*)(val
* self
))(var34
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var34
); /* native_to_s on <var34:NativeArray[String]>*/
1898 nit___nit__ModelBuilder___warning(var27
, self
, var30
, var59
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var27:ModelBuilder>*/
1903 { /* Inline typing#AExpr#is_typed= (self,1) on <self:ADebugTypeExpr> */
1904 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= 1; /* _is_typed on <self:ADebugTypeExpr> */
1905 RET_LABEL60
:(void)0;