1 #include "nit__typing.sep.0.h"
2 /* method typing#AForExpr#do_type_iterator for (self: AForExpr, TypeVisitor, MType) */
3 void nit__typing___AForExpr___do_type_iterator(val
* self
, val
* p0
, val
* p1
) {
4 val
* var_v
/* var v: TypeVisitor */;
5 val
* var_mtype
/* var mtype: MType */;
6 short int var
/* : Bool */;
10 val
* var1
/* : String */;
11 char* var2
/* : NativeString */;
12 long var3
/* : Int */;
13 val
* var4
/* : FlatString */;
15 val
* var6
/* : String */;
16 char* var7
/* : NativeString */;
17 long var8
/* : Int */;
18 val
* var9
/* : FlatString */;
19 val
* var10
/* : nullable MClass */;
20 val
* var_objcla
/* var objcla: nullable MClass */;
21 val
* var11
/* : null */;
22 short int var12
/* : Bool */;
23 short int var13
/* : Bool */;
24 val
* var_other
/* var other: nullable Object */;
25 short int var15
/* : Bool */;
26 short int var17
/* : Bool */;
27 static val
* varonce18
;
28 val
* var19
/* : String */;
29 char* var20
/* : NativeString */;
30 long var21
/* : Int */;
31 val
* var22
/* : FlatString */;
32 val
* var23
/* : AExpr */;
33 val
* var25
/* : AExpr */;
34 short int var26
/* : Bool */;
37 val
* var29
/* : nullable CallSite */;
38 val
* var_itdef
/* var itdef: nullable CallSite */;
39 val
* var30
/* : null */;
40 short int var31
/* : Bool */;
41 short int var32
/* : Bool */;
42 short int var34
/* : Bool */;
43 short int var36
/* : Bool */;
44 static val
* varonce37
;
45 val
* var38
/* : String */;
46 char* var39
/* : NativeString */;
47 long var40
/* : Int */;
48 val
* var41
/* : FlatString */;
49 static val
* varonce42
;
50 val
* var43
/* : String */;
51 char* var44
/* : NativeString */;
52 long var45
/* : Int */;
53 val
* var46
/* : FlatString */;
54 val
* var47
/* : Array[Object] */;
55 long var48
/* : Int */;
56 val
* var49
/* : NativeArray[Object] */;
57 val
* var50
/* : String */;
58 val
* var52
/* : MSignature */;
59 val
* var54
/* : MSignature */;
60 val
* var55
/* : nullable MType */;
61 val
* var57
/* : nullable MType */;
62 val
* var_ittype
/* var ittype: nullable MType */;
63 val
* var58
/* : null */;
64 short int var59
/* : Bool */;
65 short int var60
/* : Bool */;
66 short int var62
/* : Bool */;
67 short int var64
/* : Bool */;
68 static val
* varonce65
;
69 val
* var66
/* : String */;
70 char* var67
/* : NativeString */;
71 long var68
/* : Int */;
72 val
* var69
/* : FlatString */;
73 static val
* varonce70
;
74 val
* var71
/* : String */;
75 char* var72
/* : NativeString */;
76 long var73
/* : Int */;
77 val
* var74
/* : FlatString */;
78 val
* var75
/* : nullable MClass */;
79 val
* var_colit_cla
/* var colit_cla: nullable MClass */;
80 static val
* varonce76
;
81 val
* var77
/* : String */;
82 char* var78
/* : NativeString */;
83 long var79
/* : Int */;
84 val
* var80
/* : FlatString */;
85 val
* var81
/* : nullable MClass */;
86 val
* var_mapit_cla
/* var mapit_cla: nullable MClass */;
87 short int var82
/* : Bool */;
88 short int var_is_col
/* var is_col: Bool */;
89 short int var83
/* : Bool */;
90 short int var_is_map
/* var is_map: Bool */;
91 short int var84
/* : Bool */;
92 val
* var85
/* : null */;
93 short int var86
/* : Bool */;
94 short int var87
/* : Bool */;
95 val
* var_other89
/* var other: nullable Object */;
96 short int var90
/* : Bool */;
97 short int var91
/* : Bool */;
98 short int var_
/* var : Bool */;
99 val
* var92
/* : Array[MType] */;
100 long var93
/* : Int */;
101 val
* var_94
/* var : Array[MType] */;
102 val
* var95
/* : MClassType */;
103 val
* var97
/* : MClassType */;
104 val
* var98
/* : MType */;
105 val
* var99
/* : MClassType */;
106 short int var100
/* : Bool */;
107 val
* var101
/* : MModule */;
108 val
* var103
/* : MModule */;
109 val
* var104
/* : nullable MClassType */;
110 val
* var106
/* : nullable MClassType */;
111 val
* var107
/* : MClassType */;
112 val
* var_coltype
/* var coltype: MClassType */;
113 val
* var108
/* : nullable Array[Variable] */;
114 val
* var110
/* : nullable Array[Variable] */;
115 val
* var_variables
/* var variables: nullable Array[Variable] */;
116 long var111
/* : Int */;
117 long var113
/* : Int */;
118 long var114
/* : Int */;
119 short int var115
/* : Bool */;
120 short int var117
/* : Bool */;
121 short int var118
/* : Bool */;
122 static val
* varonce119
;
123 val
* var120
/* : String */;
124 char* var121
/* : NativeString */;
125 long var122
/* : Int */;
126 val
* var123
/* : FlatString */;
127 val
* var124
/* : nullable Object */;
128 val
* var125
/* : Array[MType] */;
129 val
* var126
/* : nullable Object */;
130 short int var128
/* : Bool */;
131 short int var129
/* : Bool */;
132 val
* var130
/* : null */;
133 short int var131
/* : Bool */;
134 short int var132
/* : Bool */;
135 short int var134
/* : Bool */;
136 short int var135
/* : Bool */;
137 short int var_136
/* var : Bool */;
138 val
* var137
/* : Array[MType] */;
139 long var138
/* : Int */;
140 val
* var_139
/* var : Array[MType] */;
141 val
* var140
/* : MClassType */;
142 val
* var142
/* : MClassType */;
143 val
* var143
/* : MType */;
144 val
* var144
/* : MClassType */;
145 val
* var146
/* : MClassType */;
146 val
* var147
/* : MType */;
147 val
* var148
/* : MClassType */;
148 short int var149
/* : Bool */;
149 val
* var150
/* : MModule */;
150 val
* var152
/* : MModule */;
151 val
* var153
/* : nullable MClassType */;
152 val
* var155
/* : nullable MClassType */;
153 val
* var156
/* : MClassType */;
154 val
* var_coltype157
/* var coltype: MClassType */;
155 val
* var158
/* : nullable Array[Variable] */;
156 val
* var160
/* : nullable Array[Variable] */;
157 val
* var_variables161
/* var variables: nullable Array[Variable] */;
158 long var162
/* : Int */;
159 long var164
/* : Int */;
160 long var165
/* : Int */;
161 short int var166
/* : Bool */;
162 short int var168
/* : Bool */;
163 short int var169
/* : Bool */;
164 static val
* varonce170
;
165 val
* var171
/* : String */;
166 char* var172
/* : NativeString */;
167 long var173
/* : Int */;
168 val
* var174
/* : FlatString */;
169 long var175
/* : Int */;
170 val
* var176
/* : nullable Object */;
171 val
* var177
/* : Array[MType] */;
172 long var178
/* : Int */;
173 val
* var179
/* : nullable Object */;
174 long var181
/* : Int */;
175 val
* var182
/* : nullable Object */;
176 val
* var183
/* : Array[MType] */;
177 long var184
/* : Int */;
178 val
* var185
/* : nullable Object */;
179 short int var187
/* : Bool */;
180 short int var188
/* : Bool */;
181 short int var189
/* : Bool */;
182 short int var_190
/* var : Bool */;
183 short int var191
/* : Bool */;
184 static val
* varonce192
;
185 val
* var193
/* : String */;
186 char* var194
/* : NativeString */;
187 long var195
/* : Int */;
188 val
* var196
/* : FlatString */;
189 short int var197
/* : Bool */;
190 val
* var198
/* : MType */;
191 val
* var199
/* : MType */;
192 short int var200
/* : Bool */;
195 const char* var_class_name
;
196 static val
* varonce204
;
197 val
* var205
/* : String */;
198 char* var206
/* : NativeString */;
199 long var207
/* : Int */;
200 val
* var208
/* : FlatString */;
201 short int var209
/* : Bool */;
202 val
* var210
/* : nullable CallSite */;
203 val
* var_ikdef
/* var ikdef: nullable CallSite */;
204 val
* var211
/* : null */;
205 short int var212
/* : Bool */;
206 short int var213
/* : Bool */;
207 short int var215
/* : Bool */;
208 short int var217
/* : Bool */;
209 static val
* varonce218
;
210 val
* var219
/* : String */;
211 char* var220
/* : NativeString */;
212 long var221
/* : Int */;
213 val
* var222
/* : FlatString */;
214 static val
* varonce223
;
215 val
* var224
/* : String */;
216 char* var225
/* : NativeString */;
217 long var226
/* : Int */;
218 val
* var227
/* : FlatString */;
219 val
* var228
/* : Array[Object] */;
220 long var229
/* : Int */;
221 val
* var230
/* : NativeArray[Object] */;
222 val
* var231
/* : String */;
223 static val
* varonce233
;
224 val
* var234
/* : String */;
225 char* var235
/* : NativeString */;
226 long var236
/* : Int */;
227 val
* var237
/* : FlatString */;
228 short int var238
/* : Bool */;
229 val
* var239
/* : nullable CallSite */;
230 val
* var_itemdef
/* var itemdef: nullable CallSite */;
231 val
* var240
/* : null */;
232 short int var241
/* : Bool */;
233 short int var242
/* : Bool */;
234 short int var244
/* : Bool */;
235 short int var246
/* : Bool */;
236 static val
* varonce247
;
237 val
* var248
/* : String */;
238 char* var249
/* : NativeString */;
239 long var250
/* : Int */;
240 val
* var251
/* : FlatString */;
241 static val
* varonce252
;
242 val
* var253
/* : String */;
243 char* var254
/* : NativeString */;
244 long var255
/* : Int */;
245 val
* var256
/* : FlatString */;
246 val
* var257
/* : Array[Object] */;
247 long var258
/* : Int */;
248 val
* var259
/* : NativeArray[Object] */;
249 val
* var260
/* : String */;
250 static val
* varonce262
;
251 val
* var263
/* : String */;
252 char* var264
/* : NativeString */;
253 long var265
/* : Int */;
254 val
* var266
/* : FlatString */;
255 short int var267
/* : Bool */;
256 val
* var268
/* : nullable CallSite */;
257 val
* var_nextdef
/* var nextdef: nullable CallSite */;
258 val
* var269
/* : null */;
259 short int var270
/* : Bool */;
260 short int var271
/* : Bool */;
261 short int var273
/* : Bool */;
262 short int var275
/* : Bool */;
263 static val
* varonce276
;
264 val
* var277
/* : String */;
265 char* var278
/* : NativeString */;
266 long var279
/* : Int */;
267 val
* var280
/* : FlatString */;
268 static val
* varonce281
;
269 val
* var282
/* : String */;
270 char* var283
/* : NativeString */;
271 long var284
/* : Int */;
272 val
* var285
/* : FlatString */;
273 val
* var286
/* : Array[Object] */;
274 long var287
/* : Int */;
275 val
* var288
/* : NativeArray[Object] */;
276 val
* var289
/* : String */;
277 static val
* varonce291
;
278 val
* var292
/* : String */;
279 char* var293
/* : NativeString */;
280 long var294
/* : Int */;
281 val
* var295
/* : FlatString */;
282 short int var296
/* : Bool */;
283 val
* var297
/* : nullable CallSite */;
284 static val
* varonce299
;
285 val
* var300
/* : String */;
286 char* var301
/* : NativeString */;
287 long var302
/* : Int */;
288 val
* var303
/* : FlatString */;
289 short int var304
/* : Bool */;
290 val
* var305
/* : nullable CallSite */;
291 val
* var_keydef
/* var keydef: nullable CallSite */;
292 val
* var306
/* : null */;
293 short int var307
/* : Bool */;
294 short int var308
/* : Bool */;
295 short int var310
/* : Bool */;
296 short int var312
/* : Bool */;
297 static val
* varonce313
;
298 val
* var314
/* : String */;
299 char* var315
/* : NativeString */;
300 long var316
/* : Int */;
301 val
* var317
/* : FlatString */;
302 static val
* varonce318
;
303 val
* var319
/* : String */;
304 char* var320
/* : NativeString */;
305 long var321
/* : Int */;
306 val
* var322
/* : FlatString */;
307 val
* var323
/* : Array[Object] */;
308 long var324
/* : Int */;
309 val
* var325
/* : NativeArray[Object] */;
310 val
* var326
/* : String */;
311 short int var328
/* : Bool */;
312 val
* var329
/* : nullable Array[Variable] */;
313 val
* var331
/* : nullable Array[Variable] */;
314 long var332
/* : Int */;
315 long var334
/* : Int */;
316 long var335
/* : Int */;
317 short int var336
/* : Bool */;
318 short int var338
/* : Bool */;
319 short int var_339
/* var : Bool */;
320 val
* var340
/* : AExpr */;
321 val
* var342
/* : AExpr */;
322 short int var343
/* : Bool */;
325 val
* var346
/* : nullable Array[Variable] */;
326 val
* var348
/* : nullable Array[Variable] */;
327 val
* var349
/* : nullable Object */;
328 val
* var_variable
/* var variable: Variable */;
329 val
* var350
/* : nullable MType */;
330 val
* var352
/* : nullable MType */;
331 val
* var_vtype
/* var vtype: MType */;
332 val
* var353
/* : AExpr */;
333 val
* var355
/* : AExpr */;
334 short int var356
/* : Bool */;
337 static val
* varonce359
;
338 val
* var360
/* : String */;
339 char* var361
/* : NativeString */;
340 long var362
/* : Int */;
341 val
* var363
/* : FlatString */;
342 short int var364
/* : Bool */;
343 val
* var365
/* : nullable CallSite */;
344 static val
* varonce367
;
345 val
* var368
/* : String */;
346 char* var369
/* : NativeString */;
347 long var370
/* : Int */;
348 val
* var371
/* : FlatString */;
349 short int var372
/* : Bool */;
350 val
* var373
/* : nullable CallSite */;
351 static val
* varonce375
;
352 val
* var376
/* : String */;
353 char* var377
/* : NativeString */;
354 long var378
/* : Int */;
355 val
* var379
/* : FlatString */;
356 short int var380
/* : Bool */;
357 val
* var381
/* : nullable CallSite */;
360 /* <var_mtype:MType> isa MNullType */
361 cltype
= type_nit__MNullType
.color
;
362 idtype
= type_nit__MNullType
.id
;
363 if(cltype
>= var_mtype
->type
->table_size
) {
366 var
= var_mtype
->type
->type_table
[cltype
] == idtype
;
372 var2
= "Type error: \'for\' cannot iterate over \'null\'";
374 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
379 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var1
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
389 var9
= standard___standard__NativeString___to_s_with_length(var7
, var8
);
394 var10
= nit__typing___nit__typing__TypeVisitor___get_mclass(var_v
, self
, var6
);
398 if (var_objcla
== NULL
) {
399 var12
= 1; /* is null */
401 var12
= 0; /* arg is null but recv is not */
404 { /* Inline kernel#Object#== (var_objcla,var11) on <var_objcla:nullable MClass> */
407 { /* Inline kernel#Object#is_same_instance (var_objcla,var_other) on <var_objcla:nullable MClass(MClass)> */
408 var17
= var_objcla
== var_other
;
429 var22
= standard___standard__NativeString___to_s_with_length(var20
, var21
);
434 { /* Inline parser_nodes#AForExpr#n_expr (self) on <self:AForExpr> */
435 var25
= self
->attrs
[COLOR_nit__parser_nodes__AForExpr___n_expr
].val
; /* _n_expr on <self:AForExpr> */
436 if (unlikely(var25
== NULL
)) {
437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
438 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1738);
445 /* <var23:AExpr> isa ASelfExpr */
446 cltype27
= type_nit__ASelfExpr
.color
;
447 idtype28
= type_nit__ASelfExpr
.id
;
448 if(cltype27
>= var23
->type
->table_size
) {
451 var26
= var23
->type
->type_table
[cltype27
] == idtype28
;
454 var29
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_mtype
, var19
, var26
);
458 if (var_itdef
== NULL
) {
459 var31
= 1; /* is null */
461 var31
= 0; /* arg is null but recv is not */
464 { /* Inline kernel#Object#== (var_itdef,var30) on <var_itdef:nullable CallSite> */
467 { /* Inline kernel#Object#is_same_instance (var_itdef,var_other) on <var_itdef:nullable CallSite(CallSite)> */
468 var36
= var_itdef
== var_other
;
484 var39
= "Type Error: \'for\' expects a type providing \'iterator\' method, got \'";
486 var41
= standard___standard__NativeString___to_s_with_length(var39
, var40
);
495 var46
= standard___standard__NativeString___to_s_with_length(var44
, var45
);
499 var47
= NEW_standard__Array(&type_standard__Array__standard__Object
);
500 { /* var47 = array_instance Array[Object] */
502 var49
= NEW_standard__NativeArray(var48
, &type_standard__NativeArray__standard__Object
);
503 ((struct instance_standard__NativeArray
*)var49
)->values
[0] = (val
*) var38
;
504 ((struct instance_standard__NativeArray
*)var49
)->values
[1] = (val
*) var_mtype
;
505 ((struct instance_standard__NativeArray
*)var49
)->values
[2] = (val
*) var43
;
507 ((void (*)(val
* self
, val
* p0
, long p1
))(var47
->class->vft
[COLOR_standard__array__Array__with_native
]))(var47
, var49
, var48
) /* with_native on <var47:Array[Object]>*/;
511 var50
= ((val
* (*)(val
* self
))(var47
->class->vft
[COLOR_standard__string__Object__to_s
]))(var47
) /* to_s on <var47:Array[Object]>*/;
514 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var50
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
520 { /* Inline typing#AForExpr#method_iterator= (self,var_itdef) on <self:AForExpr> */
521 self
->attrs
[COLOR_nit__typing__AForExpr___method_iterator
].val
= var_itdef
; /* _method_iterator on <self:AForExpr> */
526 { /* Inline typing#CallSite#msignature (var_itdef) on <var_itdef:nullable CallSite(CallSite)> */
527 var54
= var_itdef
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
; /* _msignature on <var_itdef:nullable CallSite(CallSite)> */
528 if (unlikely(var54
== NULL
)) {
529 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
530 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 494);
538 { /* Inline model#MSignature#return_mtype (var52) on <var52:MSignature> */
539 var57
= var52
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var52:MSignature> */
546 if (var_ittype
== NULL
) {
547 var59
= 1; /* is null */
549 var59
= 0; /* arg is null but recv is not */
552 { /* Inline kernel#Object#== (var_ittype,var58) on <var_ittype:nullable MType> */
555 { /* Inline kernel#Object#is_same_instance (var_ittype,var_other) on <var_ittype:nullable MType(MType)> */
556 var64
= var_ittype
== var_other
;
572 var67
= "Type Error: \'for\' expects method \'iterator\' to return an \'Iterator\' or \'MapIterator\' type\'.";
574 var69
= standard___standard__NativeString___to_s_with_length(var67
, var68
);
579 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var66
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
589 var74
= standard___standard__NativeString___to_s_with_length(var72
, var73
);
594 var75
= nit__typing___nit__typing__TypeVisitor___try_get_mclass(var_v
, self
, var71
);
596 var_colit_cla
= var75
;
600 var78
= "MapIterator";
602 var80
= standard___standard__NativeString___to_s_with_length(var78
, var79
);
607 var81
= nit__typing___nit__typing__TypeVisitor___try_get_mclass(var_v
, self
, var77
);
609 var_mapit_cla
= var81
;
615 if (var_colit_cla
== NULL
) {
616 var86
= 0; /* is null */
618 var86
= 1; /* arg is null and recv is not */
621 { /* Inline kernel#Object#!= (var_colit_cla,var85) on <var_colit_cla:nullable MClass> */
624 var90
= ((short int (*)(val
* self
, val
* p0
))(var_colit_cla
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_colit_cla
, var_other89
) /* == on <var_colit_cla:nullable MClass(MClass)>*/;
635 var92
= NEW_standard__Array(&type_standard__Array__nit__MType
);
638 standard___standard__Array___with_capacity(var92
, var93
); /* Direct call array#Array#with_capacity on <var92:Array[MType]>*/
642 { /* Inline model#MClass#mclass_type (var_objcla) on <var_objcla:nullable MClass(MClass)> */
643 var97
= var_objcla
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_objcla:nullable MClass(MClass)> */
644 if (unlikely(var97
== NULL
)) {
645 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
646 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
654 var98
= nit___nit__MType___as_nullable(var95
);
657 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_94
, var98
); /* Direct call array#AbstractArray#push on <var_94:Array[MType]>*/
660 var99
= nit___nit__MClass___get_mtype(var_colit_cla
, var_94
);
663 var100
= nit__typing___nit__typing__TypeVisitor___is_subtype(var_v
, var_ittype
, var99
);
671 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
672 var103
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
673 if (unlikely(var103
== NULL
)) {
674 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
675 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
679 RET_LABEL102
:(void)0;
683 { /* Inline typing#TypeVisitor#anchor (var_v) on <var_v:TypeVisitor> */
684 var106
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
; /* _anchor on <var_v:TypeVisitor> */
686 RET_LABEL105
:(void)0;
690 var107
= nit___nit__MType___supertype_to(var_ittype
, var101
, var104
, var_colit_cla
);
692 var_coltype
= var107
;
694 { /* Inline scope#AForExpr#variables (self) on <self:AForExpr> */
695 var110
= self
->attrs
[COLOR_nit__scope__AForExpr___variables
].val
; /* _variables on <self:AForExpr> */
697 RET_LABEL109
:(void)0;
700 var_variables
= var108
;
701 if (var_variables
== NULL
) {
702 PRINT_ERROR("Runtime error: %s", "Receiver is null");
703 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 974);
706 { /* Inline array#AbstractArrayRead#length (var_variables) on <var_variables:nullable Array[Variable]> */
707 if (unlikely(var_variables
== NULL
)) {
708 PRINT_ERROR("Runtime error: %s", "Receiver is null");
709 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array
, 24);
712 var113
= var_variables
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_variables:nullable Array[Variable]> */
714 RET_LABEL112
:(void)0;
719 { /* Inline kernel#Int#!= (var111,var114) on <var111:Int> */
720 var117
= var111
== var114
;
724 RET_LABEL116
:(void)0;
731 var121
= "Type Error: \'for\' expects only one variable when using \'Iterator\'.";
733 var123
= standard___standard__NativeString___to_s_with_length(var121
, var122
);
738 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var120
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
741 if (var_variables
== NULL
) {
742 PRINT_ERROR("Runtime error: %s", "Receiver is null");
743 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 977);
746 var124
= standard___standard__SequenceRead___Collection__first(var_variables
);
749 var125
= ((val
* (*)(val
* self
))(var_coltype
->class->vft
[COLOR_nit__model__MClassType__arguments
]))(var_coltype
) /* arguments on <var_coltype:MClassType>*/;
752 var126
= standard___standard__SequenceRead___Collection__first(var125
);
755 { /* Inline typing#Variable#declared_type= (var124,var126) on <var124:nullable Object(Variable)> */
756 var124
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
= var126
; /* _declared_type on <var124:nullable Object(Variable)> */
757 RET_LABEL127
:(void)0;
766 if (var_mapit_cla
== NULL
) {
767 var131
= 0; /* is null */
769 var131
= 1; /* arg is null and recv is not */
772 { /* Inline kernel#Object#!= (var_mapit_cla,var130) on <var_mapit_cla:nullable MClass> */
773 var_other89
= var130
;
775 var134
= ((short int (*)(val
* self
, val
* p0
))(var_mapit_cla
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mapit_cla
, var_other89
) /* == on <var_mapit_cla:nullable MClass(MClass)>*/;
780 RET_LABEL133
:(void)0;
786 var137
= NEW_standard__Array(&type_standard__Array__nit__MType
);
789 standard___standard__Array___with_capacity(var137
, var138
); /* Direct call array#Array#with_capacity on <var137:Array[MType]>*/
793 { /* Inline model#MClass#mclass_type (var_objcla) on <var_objcla:nullable MClass(MClass)> */
794 var142
= var_objcla
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_objcla:nullable MClass(MClass)> */
795 if (unlikely(var142
== NULL
)) {
796 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
797 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
801 RET_LABEL141
:(void)0;
805 var143
= nit___nit__MType___as_nullable(var140
);
808 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_139
, var143
); /* Direct call array#AbstractArray#push on <var_139:Array[MType]>*/
811 { /* Inline model#MClass#mclass_type (var_objcla) on <var_objcla:nullable MClass(MClass)> */
812 var146
= var_objcla
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_objcla:nullable MClass(MClass)> */
813 if (unlikely(var146
== NULL
)) {
814 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
815 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
819 RET_LABEL145
:(void)0;
823 var147
= nit___nit__MType___as_nullable(var144
);
826 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_139
, var147
); /* Direct call array#AbstractArray#push on <var_139:Array[MType]>*/
829 var148
= nit___nit__MClass___get_mtype(var_mapit_cla
, var_139
);
832 var149
= nit__typing___nit__typing__TypeVisitor___is_subtype(var_v
, var_ittype
, var148
);
840 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
841 var152
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
842 if (unlikely(var152
== NULL
)) {
843 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
844 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
848 RET_LABEL151
:(void)0;
852 { /* Inline typing#TypeVisitor#anchor (var_v) on <var_v:TypeVisitor> */
853 var155
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
; /* _anchor on <var_v:TypeVisitor> */
855 RET_LABEL154
:(void)0;
859 var156
= nit___nit__MType___supertype_to(var_ittype
, var150
, var153
, var_mapit_cla
);
861 var_coltype157
= var156
;
863 { /* Inline scope#AForExpr#variables (self) on <self:AForExpr> */
864 var160
= self
->attrs
[COLOR_nit__scope__AForExpr___variables
].val
; /* _variables on <self:AForExpr> */
866 RET_LABEL159
:(void)0;
869 var_variables161
= var158
;
870 if (var_variables161
== NULL
) {
871 PRINT_ERROR("Runtime error: %s", "Receiver is null");
872 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 986);
875 { /* Inline array#AbstractArrayRead#length (var_variables161) on <var_variables161:nullable Array[Variable]> */
876 if (unlikely(var_variables161
== NULL
)) {
877 PRINT_ERROR("Runtime error: %s", "Receiver is null");
878 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array
, 24);
881 var164
= var_variables161
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_variables161:nullable Array[Variable]> */
883 RET_LABEL163
:(void)0;
888 { /* Inline kernel#Int#!= (var162,var165) on <var162:Int> */
889 var168
= var162
== var165
;
893 RET_LABEL167
:(void)0;
900 var172
= "Type Error: \'for\' expects two variables when using \'MapIterator\'.";
902 var174
= standard___standard__NativeString___to_s_with_length(var172
, var173
);
907 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var171
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
911 if (var_variables161
== NULL
) {
912 PRINT_ERROR("Runtime error: %s", "Receiver is null");
913 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 989);
916 var176
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_variables161
, var175
);
919 var177
= ((val
* (*)(val
* self
))(var_coltype157
->class->vft
[COLOR_nit__model__MClassType__arguments
]))(var_coltype157
) /* arguments on <var_coltype157:MClassType>*/;
923 var179
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var177
, var178
);
926 { /* Inline typing#Variable#declared_type= (var176,var179) on <var176:nullable Object(Variable)> */
927 var176
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
= var179
; /* _declared_type on <var176:nullable Object(Variable)> */
928 RET_LABEL180
:(void)0;
932 if (var_variables161
== NULL
) {
933 PRINT_ERROR("Runtime error: %s", "Receiver is null");
934 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 990);
937 var182
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_variables161
, var181
);
940 var183
= ((val
* (*)(val
* self
))(var_coltype157
->class->vft
[COLOR_nit__model__MClassType__arguments
]))(var_coltype157
) /* arguments on <var_coltype157:MClassType>*/;
944 var185
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var183
, var184
);
947 { /* Inline typing#Variable#declared_type= (var182,var185) on <var182:nullable Object(Variable)> */
948 var182
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
= var185
; /* _declared_type on <var182:nullable Object(Variable)> */
949 RET_LABEL186
:(void)0;
957 var189
= !var_is_col
;
960 var191
= !var_is_map
;
969 var194
= "Type Error: \'for\' expects method \'iterator\' to return an \'Iterator\' or \'MapIterator\' type\'.";
971 var196
= standard___standard__NativeString___to_s_with_length(var194
, var195
);
976 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var193
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
982 var197
= ((short int (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
986 var198
= nit__typing___nit__typing__TypeVisitor___anchor_to(var_v
, var_mtype
);
992 var199
= ((val
* (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__as_notnullable
]))(var_mtype
) /* as_notnullable on <var_mtype:MType>*/;
995 /* <var_mtype:MType> isa MClassType */
996 cltype201
= type_nit__MClassType
.color
;
997 idtype202
= type_nit__MClassType
.id
;
998 if(cltype201
>= var_mtype
->type
->table_size
) {
1001 var200
= var_mtype
->type
->type_table
[cltype201
] == idtype202
;
1003 if (unlikely(!var200
)) {
1004 var_class_name
= var_mtype
== NULL ?
"null" : var_mtype
->type
->name
;
1005 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
1006 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1004);
1010 { /* Inline typing#AForExpr#coltype= (self,var_mtype) on <self:AForExpr> */
1011 self
->attrs
[COLOR_nit__typing__AForExpr___coltype
].val
= var_mtype
; /* _coltype on <self:AForExpr> */
1012 RET_LABEL203
:(void)0;
1016 var205
= varonce204
;
1020 var208
= standard___standard__NativeString___to_s_with_length(var206
, var207
);
1022 varonce204
= var205
;
1026 var210
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_ittype
, var205
, var209
);
1030 if (var_ikdef
== NULL
) {
1031 var212
= 1; /* is null */
1033 var212
= 0; /* arg is null but recv is not */
1036 { /* Inline kernel#Object#== (var_ikdef,var211) on <var_ikdef:nullable CallSite> */
1039 { /* Inline kernel#Object#is_same_instance (var_ikdef,var_other) on <var_ikdef:nullable CallSite(CallSite)> */
1040 var217
= var_ikdef
== var_other
;
1043 RET_LABEL216
:(void)0;
1048 RET_LABEL214
:(void)0;
1054 var219
= varonce218
;
1056 var220
= "Type Error: \'for\' expects a method \'is_ok\' in \'Iterator\' type ";
1058 var222
= standard___standard__NativeString___to_s_with_length(var220
, var221
);
1060 varonce218
= var219
;
1063 var224
= varonce223
;
1067 var227
= standard___standard__NativeString___to_s_with_length(var225
, var226
);
1069 varonce223
= var224
;
1071 var228
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1072 { /* var228 = array_instance Array[Object] */
1074 var230
= NEW_standard__NativeArray(var229
, &type_standard__NativeArray__standard__Object
);
1075 ((struct instance_standard__NativeArray
*)var230
)->values
[0] = (val
*) var219
;
1076 ((struct instance_standard__NativeArray
*)var230
)->values
[1] = (val
*) var_ittype
;
1077 ((struct instance_standard__NativeArray
*)var230
)->values
[2] = (val
*) var224
;
1079 ((void (*)(val
* self
, val
* p0
, long p1
))(var228
->class->vft
[COLOR_standard__array__Array__with_native
]))(var228
, var230
, var229
) /* with_native on <var228:Array[Object]>*/;
1083 var231
= ((val
* (*)(val
* self
))(var228
->class->vft
[COLOR_standard__string__Object__to_s
]))(var228
) /* to_s on <var228:Array[Object]>*/;
1086 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var231
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
1092 { /* Inline typing#AForExpr#method_is_ok= (self,var_ikdef) on <self:AForExpr> */
1093 self
->attrs
[COLOR_nit__typing__AForExpr___method_is_ok
].val
= var_ikdef
; /* _method_is_ok on <self:AForExpr> */
1094 RET_LABEL232
:(void)0;
1098 var234
= varonce233
;
1102 var237
= standard___standard__NativeString___to_s_with_length(var235
, var236
);
1104 varonce233
= var234
;
1108 var239
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_ittype
, var234
, var238
);
1110 var_itemdef
= var239
;
1112 if (var_itemdef
== NULL
) {
1113 var241
= 1; /* is null */
1115 var241
= 0; /* arg is null but recv is not */
1118 { /* Inline kernel#Object#== (var_itemdef,var240) on <var_itemdef:nullable CallSite> */
1121 { /* Inline kernel#Object#is_same_instance (var_itemdef,var_other) on <var_itemdef:nullable CallSite(CallSite)> */
1122 var246
= var_itemdef
== var_other
;
1125 RET_LABEL245
:(void)0;
1130 RET_LABEL243
:(void)0;
1136 var248
= varonce247
;
1138 var249
= "Type Error: \'for\' expects a method \'item\' in \'Iterator\' type ";
1140 var251
= standard___standard__NativeString___to_s_with_length(var249
, var250
);
1142 varonce247
= var248
;
1145 var253
= varonce252
;
1149 var256
= standard___standard__NativeString___to_s_with_length(var254
, var255
);
1151 varonce252
= var253
;
1153 var257
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1154 { /* var257 = array_instance Array[Object] */
1156 var259
= NEW_standard__NativeArray(var258
, &type_standard__NativeArray__standard__Object
);
1157 ((struct instance_standard__NativeArray
*)var259
)->values
[0] = (val
*) var248
;
1158 ((struct instance_standard__NativeArray
*)var259
)->values
[1] = (val
*) var_ittype
;
1159 ((struct instance_standard__NativeArray
*)var259
)->values
[2] = (val
*) var253
;
1161 ((void (*)(val
* self
, val
* p0
, long p1
))(var257
->class->vft
[COLOR_standard__array__Array__with_native
]))(var257
, var259
, var258
) /* with_native on <var257:Array[Object]>*/;
1165 var260
= ((val
* (*)(val
* self
))(var257
->class->vft
[COLOR_standard__string__Object__to_s
]))(var257
) /* to_s on <var257:Array[Object]>*/;
1168 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var260
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
1174 { /* Inline typing#AForExpr#method_item= (self,var_itemdef) on <self:AForExpr> */
1175 self
->attrs
[COLOR_nit__typing__AForExpr___method_item
].val
= var_itemdef
; /* _method_item on <self:AForExpr> */
1176 RET_LABEL261
:(void)0;
1180 var263
= varonce262
;
1184 var266
= standard___standard__NativeString___to_s_with_length(var264
, var265
);
1186 varonce262
= var263
;
1190 var268
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_ittype
, var263
, var267
);
1192 var_nextdef
= var268
;
1194 if (var_nextdef
== NULL
) {
1195 var270
= 1; /* is null */
1197 var270
= 0; /* arg is null but recv is not */
1200 { /* Inline kernel#Object#== (var_nextdef,var269) on <var_nextdef:nullable CallSite> */
1203 { /* Inline kernel#Object#is_same_instance (var_nextdef,var_other) on <var_nextdef:nullable CallSite(CallSite)> */
1204 var275
= var_nextdef
== var_other
;
1207 RET_LABEL274
:(void)0;
1212 RET_LABEL272
:(void)0;
1218 var277
= varonce276
;
1220 var278
= "Type Error: \'for\' expects a method \'next\' in \'Iterator\' type ";
1222 var280
= standard___standard__NativeString___to_s_with_length(var278
, var279
);
1224 varonce276
= var277
;
1227 var282
= varonce281
;
1231 var285
= standard___standard__NativeString___to_s_with_length(var283
, var284
);
1233 varonce281
= var282
;
1235 var286
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1236 { /* var286 = array_instance Array[Object] */
1238 var288
= NEW_standard__NativeArray(var287
, &type_standard__NativeArray__standard__Object
);
1239 ((struct instance_standard__NativeArray
*)var288
)->values
[0] = (val
*) var277
;
1240 ((struct instance_standard__NativeArray
*)var288
)->values
[1] = (val
*) var_ittype
;
1241 ((struct instance_standard__NativeArray
*)var288
)->values
[2] = (val
*) var282
;
1243 ((void (*)(val
* self
, val
* p0
, long p1
))(var286
->class->vft
[COLOR_standard__array__Array__with_native
]))(var286
, var288
, var287
) /* with_native on <var286:Array[Object]>*/;
1247 var289
= ((val
* (*)(val
* self
))(var286
->class->vft
[COLOR_standard__string__Object__to_s
]))(var286
) /* to_s on <var286:Array[Object]>*/;
1250 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var289
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
1256 { /* Inline typing#AForExpr#method_next= (self,var_nextdef) on <self:AForExpr> */
1257 self
->attrs
[COLOR_nit__typing__AForExpr___method_next
].val
= var_nextdef
; /* _method_next on <self:AForExpr> */
1258 RET_LABEL290
:(void)0;
1262 var292
= varonce291
;
1266 var295
= standard___standard__NativeString___to_s_with_length(var293
, var294
);
1268 varonce291
= var292
;
1272 var297
= nit__typing___nit__typing__TypeVisitor___try_get_method(var_v
, self
, var_ittype
, var292
, var296
);
1275 { /* Inline typing#AForExpr#method_finish= (self,var297) on <self:AForExpr> */
1276 self
->attrs
[COLOR_nit__typing__AForExpr___method_finish
].val
= var297
; /* _method_finish on <self:AForExpr> */
1277 RET_LABEL298
:(void)0;
1282 var300
= varonce299
;
1286 var303
= standard___standard__NativeString___to_s_with_length(var301
, var302
);
1288 varonce299
= var300
;
1292 var305
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_ittype
, var300
, var304
);
1294 var_keydef
= var305
;
1296 if (var_keydef
== NULL
) {
1297 var307
= 1; /* is null */
1299 var307
= 0; /* arg is null but recv is not */
1302 { /* Inline kernel#Object#== (var_keydef,var306) on <var_keydef:nullable CallSite> */
1305 { /* Inline kernel#Object#is_same_instance (var_keydef,var_other) on <var_keydef:nullable CallSite(CallSite)> */
1306 var312
= var_keydef
== var_other
;
1309 RET_LABEL311
:(void)0;
1314 RET_LABEL309
:(void)0;
1320 var314
= varonce313
;
1322 var315
= "Type Error: \'for\' expects a method \'key\' in \'Iterator\' type ";
1324 var317
= standard___standard__NativeString___to_s_with_length(var315
, var316
);
1326 varonce313
= var314
;
1329 var319
= varonce318
;
1333 var322
= standard___standard__NativeString___to_s_with_length(var320
, var321
);
1335 varonce318
= var319
;
1337 var323
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1338 { /* var323 = array_instance Array[Object] */
1340 var325
= NEW_standard__NativeArray(var324
, &type_standard__NativeArray__standard__Object
);
1341 ((struct instance_standard__NativeArray
*)var325
)->values
[0] = (val
*) var314
;
1342 ((struct instance_standard__NativeArray
*)var325
)->values
[1] = (val
*) var_ittype
;
1343 ((struct instance_standard__NativeArray
*)var325
)->values
[2] = (val
*) var319
;
1345 ((void (*)(val
* self
, val
* p0
, long p1
))(var323
->class->vft
[COLOR_standard__array__Array__with_native
]))(var323
, var325
, var324
) /* with_native on <var323:Array[Object]>*/;
1349 var326
= ((val
* (*)(val
* self
))(var323
->class->vft
[COLOR_standard__string__Object__to_s
]))(var323
) /* to_s on <var323:Array[Object]>*/;
1352 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var326
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
1358 { /* Inline typing#AForExpr#method_key= (self,var_keydef) on <self:AForExpr> */
1359 self
->attrs
[COLOR_nit__typing__AForExpr___method_key
].val
= var_keydef
; /* _method_key on <self:AForExpr> */
1360 RET_LABEL327
:(void)0;
1366 { /* Inline scope#AForExpr#variables (self) on <self:AForExpr> */
1367 var331
= self
->attrs
[COLOR_nit__scope__AForExpr___variables
].val
; /* _variables on <self:AForExpr> */
1369 RET_LABEL330
:(void)0;
1372 if (var329
== NULL
) {
1373 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1374 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1039);
1377 { /* Inline array#AbstractArrayRead#length (var329) on <var329:nullable Array[Variable]> */
1378 if (unlikely(var329
== NULL
)) {
1379 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1380 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array
, 24);
1383 var334
= var329
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var329:nullable Array[Variable]> */
1385 RET_LABEL333
:(void)0;
1390 { /* Inline kernel#Int#== (var332,var335) on <var332:Int> */
1391 var338
= var332
== var335
;
1394 RET_LABEL337
:(void)0;
1400 { /* Inline parser_nodes#AForExpr#n_expr (self) on <self:AForExpr> */
1401 var342
= self
->attrs
[COLOR_nit__parser_nodes__AForExpr___n_expr
].val
; /* _n_expr on <self:AForExpr> */
1402 if (unlikely(var342
== NULL
)) {
1403 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1404 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1738);
1408 RET_LABEL341
:(void)0;
1411 /* <var340:AExpr> isa ARangeExpr */
1412 cltype344
= type_nit__ARangeExpr
.color
;
1413 idtype345
= type_nit__ARangeExpr
.id
;
1414 if(cltype344
>= var340
->type
->table_size
) {
1417 var343
= var340
->type
->type_table
[cltype344
] == idtype345
;
1425 { /* Inline scope#AForExpr#variables (self) on <self:AForExpr> */
1426 var348
= self
->attrs
[COLOR_nit__scope__AForExpr___variables
].val
; /* _variables on <self:AForExpr> */
1428 RET_LABEL347
:(void)0;
1431 if (var346
== NULL
) {
1432 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1433 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1040);
1436 var349
= standard___standard__SequenceRead___Collection__first(var346
);
1438 var_variable
= var349
;
1440 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
1441 var352
= var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
1443 RET_LABEL351
:(void)0;
1446 if (unlikely(var350
== NULL
)) {
1447 PRINT_ERROR("Runtime error: %s", "Cast failed");
1448 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1041);
1453 { /* Inline parser_nodes#AForExpr#n_expr (self) on <self:AForExpr> */
1454 var355
= self
->attrs
[COLOR_nit__parser_nodes__AForExpr___n_expr
].val
; /* _n_expr on <self:AForExpr> */
1455 if (unlikely(var355
== NULL
)) {
1456 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1457 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1738);
1461 RET_LABEL354
:(void)0;
1464 /* <var353:AExpr> isa AOrangeExpr */
1465 cltype357
= type_nit__AOrangeExpr
.color
;
1466 idtype358
= type_nit__AOrangeExpr
.id
;
1467 if(cltype357
>= var353
->type
->table_size
) {
1470 var356
= var353
->type
->type_table
[cltype357
] == idtype358
;
1474 var360
= varonce359
;
1478 var363
= standard___standard__NativeString___to_s_with_length(var361
, var362
);
1480 varonce359
= var360
;
1484 var365
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_vtype
, var360
, var364
);
1487 { /* Inline typing#AForExpr#method_lt= (self,var365) on <self:AForExpr> */
1488 self
->attrs
[COLOR_nit__typing__AForExpr___method_lt
].val
= var365
; /* _method_lt on <self:AForExpr> */
1489 RET_LABEL366
:(void)0;
1494 var368
= varonce367
;
1498 var371
= standard___standard__NativeString___to_s_with_length(var369
, var370
);
1500 varonce367
= var368
;
1504 var373
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_vtype
, var368
, var372
);
1507 { /* Inline typing#AForExpr#method_lt= (self,var373) on <self:AForExpr> */
1508 self
->attrs
[COLOR_nit__typing__AForExpr___method_lt
].val
= var373
; /* _method_lt on <self:AForExpr> */
1509 RET_LABEL374
:(void)0;
1514 var376
= varonce375
;
1516 var377
= "successor";
1518 var379
= standard___standard__NativeString___to_s_with_length(var377
, var378
);
1520 varonce375
= var376
;
1524 var381
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_vtype
, var376
, var380
);
1527 { /* Inline typing#AForExpr#method_successor= (self,var381) on <self:AForExpr> */
1528 self
->attrs
[COLOR_nit__typing__AForExpr___method_successor
].val
= var381
; /* _method_successor on <self:AForExpr> */
1529 RET_LABEL382
:(void)0;
1536 /* method typing#AForExpr#accept_typing for (self: AForExpr, TypeVisitor) */
1537 void nit__typing___AForExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
1538 val
* var_v
/* var v: TypeVisitor */;
1539 val
* var
/* : AExpr */;
1540 val
* var2
/* : AExpr */;
1541 val
* var3
/* : nullable MType */;
1542 val
* var_mtype
/* var mtype: nullable MType */;
1543 val
* var4
/* : null */;
1544 short int var5
/* : Bool */;
1545 short int var6
/* : Bool */;
1546 val
* var_other
/* var other: nullable Object */;
1547 short int var8
/* : Bool */;
1548 short int var10
/* : Bool */;
1549 val
* var11
/* : nullable AExpr */;
1550 val
* var13
/* : nullable AExpr */;
1551 val
* var14
/* : nullable AExpr */;
1552 val
* var16
/* : nullable AExpr */;
1553 val
* var17
/* : nullable MType */;
1554 short int var19
/* : Bool */;
1557 { /* Inline parser_nodes#AForExpr#n_expr (self) on <self:AForExpr> */
1558 var2
= self
->attrs
[COLOR_nit__parser_nodes__AForExpr___n_expr
].val
; /* _n_expr on <self:AForExpr> */
1559 if (unlikely(var2
== NULL
)) {
1560 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1561 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1738);
1569 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var
);
1573 if (var_mtype
== NULL
) {
1574 var5
= 1; /* is null */
1576 var5
= 0; /* arg is null but recv is not */
1579 { /* Inline kernel#Object#== (var_mtype,var4) on <var_mtype:nullable MType> */
1582 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
1583 var10
= var_mtype
== var_other
;
1600 nit__typing___AForExpr___do_type_iterator(self
, var_v
, var_mtype
); /* Direct call typing#AForExpr#do_type_iterator on <self:AForExpr>*/
1603 { /* Inline parser_nodes#AForExpr#n_block (self) on <self:AForExpr> */
1604 var13
= self
->attrs
[COLOR_nit__parser_nodes__AForExpr___n_block
].val
; /* _n_block on <self:AForExpr> */
1606 RET_LABEL12
:(void)0;
1610 nit__typing___nit__typing__TypeVisitor___visit_stmt(var_v
, var11
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
1613 { /* Inline parser_nodes#AForExpr#n_block (self) on <self:AForExpr> */
1614 var16
= self
->attrs
[COLOR_nit__parser_nodes__AForExpr___n_block
].val
; /* _n_block on <self:AForExpr> */
1616 RET_LABEL15
:(void)0;
1619 if (var14
== NULL
) {
1620 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1621 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1061);
1624 var17
= ((val
* (*)(val
* self
))(var14
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(var14
) /* mtype on <var14:nullable AExpr>*/;
1627 { /* Inline typing#AExpr#mtype= (self,var17) on <self:AForExpr> */
1628 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var17
; /* _mtype on <self:AForExpr> */
1629 RET_LABEL18
:(void)0;
1634 { /* Inline typing#AExpr#is_typed= (self,var19) on <self:AForExpr> */
1635 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var19
; /* _is_typed on <self:AForExpr> */
1636 RET_LABEL20
:(void)0;
1641 /* method typing#AAssertExpr#accept_typing for (self: AAssertExpr, TypeVisitor) */
1642 void nit__typing___AAssertExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
1643 val
* var_v
/* var v: TypeVisitor */;
1644 val
* var
/* : AExpr */;
1645 val
* var2
/* : AExpr */;
1646 val
* var3
/* : nullable MType */;
1647 val
* var4
/* : nullable AExpr */;
1648 val
* var6
/* : nullable AExpr */;
1649 short int var7
/* : Bool */;
1652 { /* Inline parser_nodes#AAssertExpr#n_expr (self) on <self:AAssertExpr> */
1653 var2
= self
->attrs
[COLOR_nit__parser_nodes__AAssertExpr___n_expr
].val
; /* _n_expr on <self:AAssertExpr> */
1654 if (unlikely(var2
== NULL
)) {
1655 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1656 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1758);
1664 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr_bool(var_v
, var
);
1667 { /* Inline parser_nodes#AAssertExpr#n_else (self) on <self:AAssertExpr> */
1668 var6
= self
->attrs
[COLOR_nit__parser_nodes__AAssertExpr___n_else
].val
; /* _n_else on <self:AAssertExpr> */
1674 nit__typing___nit__typing__TypeVisitor___visit_stmt(var_v
, var4
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
1678 { /* Inline typing#AExpr#is_typed= (self,var7) on <self:AAssertExpr> */
1679 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var7
; /* _is_typed on <self:AAssertExpr> */
1685 /* method typing#AOrExpr#accept_typing for (self: AOrExpr, TypeVisitor) */
1686 void nit__typing___AOrExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
1687 val
* var_v
/* var v: TypeVisitor */;
1688 val
* var
/* : AExpr */;
1689 val
* var2
/* : AExpr */;
1690 val
* var3
/* : nullable MType */;
1691 val
* var4
/* : AExpr */;
1692 val
* var6
/* : AExpr */;
1693 val
* var7
/* : nullable MType */;
1694 val
* var8
/* : nullable MType */;
1697 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AOrExpr> */
1698 var2
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AOrExpr> */
1699 if (unlikely(var2
== NULL
)) {
1700 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1701 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1823);
1709 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr_bool(var_v
, var
);
1712 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AOrExpr> */
1713 var6
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AOrExpr> */
1714 if (unlikely(var6
== NULL
)) {
1715 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1716 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1826);
1724 var7
= nit__typing___nit__typing__TypeVisitor___visit_expr_bool(var_v
, var4
);
1727 var8
= nit__typing___nit__typing__TypeVisitor___type_bool(var_v
, self
);
1730 { /* Inline typing#AExpr#mtype= (self,var8) on <self:AOrExpr> */
1731 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var8
; /* _mtype on <self:AOrExpr> */
1737 /* method typing#AImpliesExpr#accept_typing for (self: AImpliesExpr, TypeVisitor) */
1738 void nit__typing___AImpliesExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
1739 val
* var_v
/* var v: TypeVisitor */;
1740 val
* var
/* : AExpr */;
1741 val
* var2
/* : AExpr */;
1742 val
* var3
/* : nullable MType */;
1743 val
* var4
/* : AExpr */;
1744 val
* var6
/* : AExpr */;
1745 val
* var7
/* : nullable MType */;
1746 val
* var8
/* : nullable MType */;
1749 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AImpliesExpr> */
1750 var2
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AImpliesExpr> */
1751 if (unlikely(var2
== NULL
)) {
1752 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1753 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1823);
1761 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr_bool(var_v
, var
);
1764 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AImpliesExpr> */
1765 var6
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AImpliesExpr> */
1766 if (unlikely(var6
== NULL
)) {
1767 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1768 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1826);
1776 var7
= nit__typing___nit__typing__TypeVisitor___visit_expr_bool(var_v
, var4
);
1779 var8
= nit__typing___nit__typing__TypeVisitor___type_bool(var_v
, self
);
1782 { /* Inline typing#AExpr#mtype= (self,var8) on <self:AImpliesExpr> */
1783 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var8
; /* _mtype on <self:AImpliesExpr> */
1789 /* method typing#AAndExpr#accept_typing for (self: AAndExpr, TypeVisitor) */
1790 void nit__typing___AAndExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
1791 val
* var_v
/* var v: TypeVisitor */;
1792 val
* var
/* : AExpr */;
1793 val
* var2
/* : AExpr */;
1794 val
* var3
/* : nullable MType */;
1795 val
* var4
/* : AExpr */;
1796 val
* var6
/* : AExpr */;
1797 val
* var7
/* : nullable MType */;
1798 val
* var8
/* : nullable MType */;
1801 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AAndExpr> */
1802 var2
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AAndExpr> */
1803 if (unlikely(var2
== NULL
)) {
1804 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1805 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1823);
1813 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr_bool(var_v
, var
);
1816 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AAndExpr> */
1817 var6
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AAndExpr> */
1818 if (unlikely(var6
== NULL
)) {
1819 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1820 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1826);
1828 var7
= nit__typing___nit__typing__TypeVisitor___visit_expr_bool(var_v
, var4
);
1831 var8
= nit__typing___nit__typing__TypeVisitor___type_bool(var_v
, self
);
1834 { /* Inline typing#AExpr#mtype= (self,var8) on <self:AAndExpr> */
1835 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var8
; /* _mtype on <self:AAndExpr> */
1841 /* method typing#ANotExpr#accept_typing for (self: ANotExpr, TypeVisitor) */
1842 void nit__typing___ANotExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
1843 val
* var_v
/* var v: TypeVisitor */;
1844 val
* var
/* : AExpr */;
1845 val
* var2
/* : AExpr */;
1846 val
* var3
/* : nullable MType */;
1847 val
* var4
/* : nullable MType */;
1850 { /* Inline parser_nodes#ANotExpr#n_expr (self) on <self:ANotExpr> */
1851 var2
= self
->attrs
[COLOR_nit__parser_nodes__ANotExpr___n_expr
].val
; /* _n_expr on <self:ANotExpr> */
1852 if (unlikely(var2
== NULL
)) {
1853 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1854 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1857);
1862 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr_bool(var_v
, var
);
1865 var4
= nit__typing___nit__typing__TypeVisitor___type_bool(var_v
, self
);
1868 { /* Inline typing#AExpr#mtype= (self,var4) on <self:ANotExpr> */
1869 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var4
; /* _mtype on <self:ANotExpr> */
1875 /* method typing#AOrElseExpr#accept_typing for (self: AOrElseExpr, TypeVisitor) */
1876 void nit__typing___AOrElseExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
1877 val
* var_v
/* var v: TypeVisitor */;
1878 val
* var
/* : AExpr */;
1879 val
* var2
/* : AExpr */;
1880 val
* var3
/* : nullable MType */;
1881 val
* var_t1
/* var t1: nullable MType */;
1882 val
* var4
/* : AExpr */;
1883 val
* var6
/* : AExpr */;
1884 val
* var7
/* : nullable MType */;
1885 val
* var_t2
/* var t2: nullable MType */;
1886 short int var8
/* : Bool */;
1887 val
* var9
/* : null */;
1888 short int var10
/* : Bool */;
1889 short int var11
/* : Bool */;
1890 val
* var_other
/* var other: nullable Object */;
1891 short int var13
/* : Bool */;
1892 short int var15
/* : Bool */;
1893 short int var_
/* var : Bool */;
1894 val
* var16
/* : null */;
1895 short int var17
/* : Bool */;
1896 short int var18
/* : Bool */;
1897 short int var20
/* : Bool */;
1898 short int var22
/* : Bool */;
1899 val
* var23
/* : MType */;
1900 val
* var24
/* : Array[MType] */;
1901 long var25
/* : Int */;
1902 val
* var_26
/* var : Array[MType] */;
1903 val
* var27
/* : nullable MType */;
1904 val
* var_t
/* var t: nullable MType */;
1905 val
* var28
/* : null */;
1906 short int var29
/* : Bool */;
1907 short int var30
/* : Bool */;
1908 short int var32
/* : Bool */;
1909 short int var34
/* : Bool */;
1910 val
* var35
/* : MModule */;
1911 val
* var37
/* : MModule */;
1912 val
* var38
/* : MClassType */;
1913 short int var39
/* : Bool */;
1916 val
* var40
/* : MType */;
1919 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AOrElseExpr> */
1920 var2
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AOrElseExpr> */
1921 if (unlikely(var2
== NULL
)) {
1922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1923 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1823);
1931 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var
);
1935 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AOrElseExpr> */
1936 var6
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AOrElseExpr> */
1937 if (unlikely(var6
== NULL
)) {
1938 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1939 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1826);
1947 var7
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var4
);
1951 if (var_t1
== NULL
) {
1952 var10
= 1; /* is null */
1954 var10
= 0; /* arg is null but recv is not */
1957 { /* Inline kernel#Object#== (var_t1,var9) on <var_t1:nullable MType> */
1960 { /* Inline kernel#Object#is_same_instance (var_t1,var_other) on <var_t1:nullable MType(MType)> */
1961 var15
= var_t1
== var_other
;
1964 RET_LABEL14
:(void)0;
1969 RET_LABEL12
:(void)0;
1978 if (var_t2
== NULL
) {
1979 var17
= 1; /* is null */
1981 var17
= 0; /* arg is null but recv is not */
1984 { /* Inline kernel#Object#== (var_t2,var16) on <var_t2:nullable MType> */
1987 { /* Inline kernel#Object#is_same_instance (var_t2,var_other) on <var_t2:nullable MType(MType)> */
1988 var22
= var_t2
== var_other
;
1991 RET_LABEL21
:(void)0;
1996 RET_LABEL19
:(void)0;
2007 var23
= ((val
* (*)(val
* self
))(var_t1
->class->vft
[COLOR_nit__model__MType__as_notnullable
]))(var_t1
) /* as_notnullable on <var_t1:nullable MType(MType)>*/;
2010 var24
= NEW_standard__Array(&type_standard__Array__nit__MType
);
2013 standard___standard__Array___with_capacity(var24
, var25
); /* Direct call array#Array#with_capacity on <var24:Array[MType]>*/
2017 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_26
, var_t1
); /* Direct call array#AbstractArray#push on <var_26:Array[MType]>*/
2020 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_26
, var_t2
); /* Direct call array#AbstractArray#push on <var_26:Array[MType]>*/
2023 var27
= nit__typing___nit__typing__TypeVisitor___merge_types(var_v
, self
, var_26
);
2027 if (var_t
== NULL
) {
2028 var29
= 1; /* is null */
2030 var29
= 0; /* arg is null but recv is not */
2033 { /* Inline kernel#Object#== (var_t,var28) on <var_t:nullable MType> */
2036 { /* Inline kernel#Object#is_same_instance (var_t,var_other) on <var_t:nullable MType(MType)> */
2037 var34
= var_t
== var_other
;
2040 RET_LABEL33
:(void)0;
2045 RET_LABEL31
:(void)0;
2051 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
2052 var37
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
2053 if (unlikely(var37
== NULL
)) {
2054 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2055 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
2059 RET_LABEL36
:(void)0;
2063 var38
= nit__model___MModule___object_type(var35
);
2066 /* <var_t2:nullable MType(MType)> isa MNullableType */
2067 cltype
= type_nit__MNullableType
.color
;
2068 idtype
= type_nit__MNullableType
.id
;
2069 if(cltype
>= var_t2
->type
->table_size
) {
2072 var39
= var_t2
->type
->type_table
[cltype
] == idtype
;
2076 var40
= nit___nit__MType___as_nullable(var_t
);
2084 { /* Inline typing#AExpr#mtype= (self,var_t) on <self:AOrElseExpr> */
2085 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var_t
; /* _mtype on <self:AOrElseExpr> */
2086 RET_LABEL41
:(void)0;
2091 /* method typing#ATrueExpr#accept_typing for (self: ATrueExpr, TypeVisitor) */
2092 void nit__typing___ATrueExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
2093 val
* var_v
/* var v: TypeVisitor */;
2094 val
* var
/* : nullable MType */;
2097 var
= nit__typing___nit__typing__TypeVisitor___type_bool(var_v
, self
);
2100 { /* Inline typing#AExpr#mtype= (self,var) on <self:ATrueExpr> */
2101 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var
; /* _mtype on <self:ATrueExpr> */
2107 /* method typing#AFalseExpr#accept_typing for (self: AFalseExpr, TypeVisitor) */
2108 void nit__typing___AFalseExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
2109 val
* var_v
/* var v: TypeVisitor */;
2110 val
* var
/* : nullable MType */;
2113 var
= nit__typing___nit__typing__TypeVisitor___type_bool(var_v
, self
);
2116 { /* Inline typing#AExpr#mtype= (self,var) on <self:AFalseExpr> */
2117 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var
; /* _mtype on <self:AFalseExpr> */
2123 /* method typing#AIntExpr#accept_typing for (self: AIntExpr, TypeVisitor) */
2124 void nit__typing___AIntExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
2125 val
* var_v
/* var v: TypeVisitor */;
2126 static val
* varonce
;
2127 val
* var
/* : String */;
2128 char* var1
/* : NativeString */;
2129 long var2
/* : Int */;
2130 val
* var3
/* : FlatString */;
2131 val
* var4
/* : nullable MClass */;
2132 val
* var_mclass
/* var mclass: nullable MClass */;
2133 val
* var5
/* : null */;
2134 short int var6
/* : Bool */;
2135 short int var7
/* : Bool */;
2136 val
* var_other
/* var other: nullable Object */;
2137 short int var9
/* : Bool */;
2138 short int var11
/* : Bool */;
2139 val
* var12
/* : MClassType */;
2140 val
* var14
/* : MClassType */;
2147 var3
= standard___standard__NativeString___to_s_with_length(var1
, var2
);
2152 var4
= nit__typing___nit__typing__TypeVisitor___get_mclass(var_v
, self
, var
);
2156 if (var_mclass
== NULL
) {
2157 var6
= 1; /* is null */
2159 var6
= 0; /* arg is null but recv is not */
2162 { /* Inline kernel#Object#== (var_mclass,var5) on <var_mclass:nullable MClass> */
2165 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
2166 var11
= var_mclass
== var_other
;
2169 RET_LABEL10
:(void)0;
2183 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2184 var14
= var_mclass
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
2185 if (unlikely(var14
== NULL
)) {
2186 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2187 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
2191 RET_LABEL13
:(void)0;
2195 { /* Inline typing#AExpr#mtype= (self,var12) on <self:AIntExpr> */
2196 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var12
; /* _mtype on <self:AIntExpr> */
2197 RET_LABEL15
:(void)0;
2202 /* method typing#AFloatExpr#accept_typing for (self: AFloatExpr, TypeVisitor) */
2203 void nit__typing___AFloatExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
2204 val
* var_v
/* var v: TypeVisitor */;
2205 static val
* varonce
;
2206 val
* var
/* : String */;
2207 char* var1
/* : NativeString */;
2208 long var2
/* : Int */;
2209 val
* var3
/* : FlatString */;
2210 val
* var4
/* : nullable MClass */;
2211 val
* var_mclass
/* var mclass: nullable MClass */;
2212 val
* var5
/* : null */;
2213 short int var6
/* : Bool */;
2214 short int var7
/* : Bool */;
2215 val
* var_other
/* var other: nullable Object */;
2216 short int var9
/* : Bool */;
2217 short int var11
/* : Bool */;
2218 val
* var12
/* : MClassType */;
2219 val
* var14
/* : MClassType */;
2226 var3
= standard___standard__NativeString___to_s_with_length(var1
, var2
);
2231 var4
= nit__typing___nit__typing__TypeVisitor___get_mclass(var_v
, self
, var
);
2235 if (var_mclass
== NULL
) {
2236 var6
= 1; /* is null */
2238 var6
= 0; /* arg is null but recv is not */
2241 { /* Inline kernel#Object#== (var_mclass,var5) on <var_mclass:nullable MClass> */
2244 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
2245 var11
= var_mclass
== var_other
;
2248 RET_LABEL10
:(void)0;
2262 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2263 var14
= var_mclass
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
2264 if (unlikely(var14
== NULL
)) {
2265 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2266 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
2270 RET_LABEL13
:(void)0;
2274 { /* Inline typing#AExpr#mtype= (self,var12) on <self:AFloatExpr> */
2275 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var12
; /* _mtype on <self:AFloatExpr> */
2276 RET_LABEL15
:(void)0;
2281 /* method typing#ACharExpr#accept_typing for (self: ACharExpr, TypeVisitor) */
2282 void nit__typing___ACharExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
2283 val
* var_v
/* var v: TypeVisitor */;
2284 static val
* varonce
;
2285 val
* var
/* : String */;
2286 char* var1
/* : NativeString */;
2287 long var2
/* : Int */;
2288 val
* var3
/* : FlatString */;
2289 val
* var4
/* : nullable MClass */;
2290 val
* var_mclass
/* var mclass: nullable MClass */;
2291 val
* var5
/* : null */;
2292 short int var6
/* : Bool */;
2293 short int var7
/* : Bool */;
2294 val
* var_other
/* var other: nullable Object */;
2295 short int var9
/* : Bool */;
2296 short int var11
/* : Bool */;
2297 val
* var12
/* : MClassType */;
2298 val
* var14
/* : MClassType */;
2305 var3
= standard___standard__NativeString___to_s_with_length(var1
, var2
);
2310 var4
= nit__typing___nit__typing__TypeVisitor___get_mclass(var_v
, self
, var
);
2314 if (var_mclass
== NULL
) {
2315 var6
= 1; /* is null */
2317 var6
= 0; /* arg is null but recv is not */
2320 { /* Inline kernel#Object#== (var_mclass,var5) on <var_mclass:nullable MClass> */
2323 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
2324 var11
= var_mclass
== var_other
;
2327 RET_LABEL10
:(void)0;
2341 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2342 var14
= var_mclass
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
2343 if (unlikely(var14
== NULL
)) {
2344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2345 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
2349 RET_LABEL13
:(void)0;
2353 { /* Inline typing#AExpr#mtype= (self,var12) on <self:ACharExpr> */
2354 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var12
; /* _mtype on <self:ACharExpr> */
2355 RET_LABEL15
:(void)0;
2360 /* method typing#AStringFormExpr#accept_typing for (self: AStringFormExpr, TypeVisitor) */
2361 void nit__typing___AStringFormExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
2362 val
* var_v
/* var v: TypeVisitor */;
2363 static val
* varonce
;
2364 val
* var
/* : String */;
2365 char* var1
/* : NativeString */;
2366 long var2
/* : Int */;
2367 val
* var3
/* : FlatString */;
2368 val
* var4
/* : nullable MClass */;
2369 val
* var_mclass
/* var mclass: nullable MClass */;
2370 val
* var5
/* : null */;
2371 short int var6
/* : Bool */;
2372 short int var7
/* : Bool */;
2373 val
* var_other
/* var other: nullable Object */;
2374 short int var9
/* : Bool */;
2375 short int var11
/* : Bool */;
2376 val
* var12
/* : MClassType */;
2377 val
* var14
/* : MClassType */;
2384 var3
= standard___standard__NativeString___to_s_with_length(var1
, var2
);
2389 var4
= nit__typing___nit__typing__TypeVisitor___get_mclass(var_v
, self
, var
);
2393 if (var_mclass
== NULL
) {
2394 var6
= 1; /* is null */
2396 var6
= 0; /* arg is null but recv is not */
2399 { /* Inline kernel#Object#== (var_mclass,var5) on <var_mclass:nullable MClass> */
2402 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
2403 var11
= var_mclass
== var_other
;
2406 RET_LABEL10
:(void)0;
2420 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2421 var14
= var_mclass
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
2422 if (unlikely(var14
== NULL
)) {
2423 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2424 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
2428 RET_LABEL13
:(void)0;
2432 { /* Inline typing#AExpr#mtype= (self,var12) on <self:AStringFormExpr> */
2433 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var12
; /* _mtype on <self:AStringFormExpr> */
2434 RET_LABEL15
:(void)0;
2439 /* method typing#ASuperstringExpr#accept_typing for (self: ASuperstringExpr, TypeVisitor) */
2440 void nit__typing___ASuperstringExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
2441 val
* var_v
/* var v: TypeVisitor */;
2442 static val
* varonce
;
2443 val
* var
/* : String */;
2444 char* var1
/* : NativeString */;
2445 long var2
/* : Int */;
2446 val
* var3
/* : FlatString */;
2447 val
* var4
/* : nullable MClass */;
2448 val
* var_mclass
/* var mclass: nullable MClass */;
2449 val
* var5
/* : null */;
2450 short int var6
/* : Bool */;
2451 short int var7
/* : Bool */;
2452 val
* var_other
/* var other: nullable Object */;
2453 short int var9
/* : Bool */;
2454 short int var11
/* : Bool */;
2455 val
* var12
/* : MClassType */;
2456 val
* var14
/* : MClassType */;
2457 val
* var16
/* : ANodes[AExpr] */;
2458 val
* var18
/* : ANodes[AExpr] */;
2459 val
* var_
/* var : ANodes[AExpr] */;
2460 val
* var19
/* : Iterator[ANode] */;
2461 val
* var_20
/* var : Iterator[AExpr] */;
2462 short int var21
/* : Bool */;
2463 val
* var22
/* : nullable Object */;
2464 val
* var_nexpr
/* var nexpr: AExpr */;
2465 val
* var23
/* : MModule */;
2466 val
* var25
/* : MModule */;
2467 val
* var26
/* : MClassType */;
2468 val
* var27
/* : nullable MType */;
2475 var3
= standard___standard__NativeString___to_s_with_length(var1
, var2
);
2480 var4
= nit__typing___nit__typing__TypeVisitor___get_mclass(var_v
, self
, var
);
2484 if (var_mclass
== NULL
) {
2485 var6
= 1; /* is null */
2487 var6
= 0; /* arg is null but recv is not */
2490 { /* Inline kernel#Object#== (var_mclass,var5) on <var_mclass:nullable MClass> */
2493 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
2494 var11
= var_mclass
== var_other
;
2497 RET_LABEL10
:(void)0;
2511 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2512 var14
= var_mclass
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
2513 if (unlikely(var14
== NULL
)) {
2514 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2515 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
2519 RET_LABEL13
:(void)0;
2523 { /* Inline typing#AExpr#mtype= (self,var12) on <self:ASuperstringExpr> */
2524 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var12
; /* _mtype on <self:ASuperstringExpr> */
2525 RET_LABEL15
:(void)0;
2529 { /* Inline parser_nodes#ASuperstringExpr#n_exprs (self) on <self:ASuperstringExpr> */
2530 var18
= self
->attrs
[COLOR_nit__parser_nodes__ASuperstringExpr___n_exprs
].val
; /* _n_exprs on <self:ASuperstringExpr> */
2531 if (unlikely(var18
== NULL
)) {
2532 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
2533 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2277);
2537 RET_LABEL17
:(void)0;
2542 var19
= nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_
);
2547 var21
= ((short int (*)(val
* self
))(var_20
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_20
) /* is_ok on <var_20:Iterator[AExpr]>*/;
2551 var22
= ((val
* (*)(val
* self
))(var_20
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_20
) /* item on <var_20:Iterator[AExpr]>*/;
2555 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
2556 var25
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
2557 if (unlikely(var25
== NULL
)) {
2558 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2559 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
2563 RET_LABEL24
:(void)0;
2567 var26
= nit__model___MModule___object_type(var23
);
2570 var27
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(var_v
, var_nexpr
, var26
);
2573 ((void (*)(val
* self
))(var_20
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_20
) /* next on <var_20:Iterator[AExpr]>*/;
2579 BREAK_label
: (void)0;
2581 { /* Inline abstract_collection#Iterator#finish (var_20) on <var_20:Iterator[AExpr]> */
2582 RET_LABEL28
:(void)0;
2587 /* method typing#AArrayExpr#with_capacity_callsite for (self: AArrayExpr): nullable CallSite */
2588 val
* nit__typing___AArrayExpr___with_capacity_callsite(val
* self
) {
2589 val
* var
/* : nullable CallSite */;
2590 val
* var1
/* : nullable CallSite */;
2591 var1
= self
->attrs
[COLOR_nit__typing__AArrayExpr___with_capacity_callsite
].val
; /* _with_capacity_callsite on <self:AArrayExpr> */
2596 /* method typing#AArrayExpr#with_capacity_callsite= for (self: AArrayExpr, nullable CallSite) */
2597 void nit__typing___AArrayExpr___with_capacity_callsite_61d(val
* self
, val
* p0
) {
2598 self
->attrs
[COLOR_nit__typing__AArrayExpr___with_capacity_callsite
].val
= p0
; /* _with_capacity_callsite on <self:AArrayExpr> */
2601 /* method typing#AArrayExpr#push_callsite for (self: AArrayExpr): nullable CallSite */
2602 val
* nit__typing___AArrayExpr___push_callsite(val
* self
) {
2603 val
* var
/* : nullable CallSite */;
2604 val
* var1
/* : nullable CallSite */;
2605 var1
= self
->attrs
[COLOR_nit__typing__AArrayExpr___push_callsite
].val
; /* _push_callsite on <self:AArrayExpr> */
2610 /* method typing#AArrayExpr#push_callsite= for (self: AArrayExpr, nullable CallSite) */
2611 void nit__typing___AArrayExpr___push_callsite_61d(val
* self
, val
* p0
) {
2612 self
->attrs
[COLOR_nit__typing__AArrayExpr___push_callsite
].val
= p0
; /* _push_callsite on <self:AArrayExpr> */
2615 /* method typing#AArrayExpr#element_mtype for (self: AArrayExpr): nullable MType */
2616 val
* nit__typing___AArrayExpr___element_mtype(val
* self
) {
2617 val
* var
/* : nullable MType */;
2618 val
* var1
/* : nullable MType */;
2619 var1
= self
->attrs
[COLOR_nit__typing__AArrayExpr___element_mtype
].val
; /* _element_mtype on <self:AArrayExpr> */
2624 /* method typing#AArrayExpr#element_mtype= for (self: AArrayExpr, nullable MType) */
2625 void nit__typing___AArrayExpr___element_mtype_61d(val
* self
, val
* p0
) {
2626 self
->attrs
[COLOR_nit__typing__AArrayExpr___element_mtype
].val
= p0
; /* _element_mtype on <self:AArrayExpr> */
2629 /* method typing#AArrayExpr#set_comprehension for (self: AArrayExpr, nullable AExpr) */
2630 void nit__typing___AArrayExpr___set_comprehension(val
* self
, val
* p0
) {
2631 val
* var_n
/* var n: nullable AExpr */;
2632 val
* var
/* : null */;
2633 short int var1
/* : Bool */;
2634 short int var2
/* : Bool */;
2635 val
* var_other
/* var other: nullable Object */;
2636 short int var4
/* : Bool */;
2637 short int var6
/* : Bool */;
2638 short int var7
/* : Bool */;
2641 val
* var8
/* : nullable AExpr */;
2642 val
* var10
/* : nullable AExpr */;
2643 short int var11
/* : Bool */;
2646 val
* var14
/* : nullable AExpr */;
2647 val
* var16
/* : nullable AExpr */;
2648 val
* var17
/* : nullable AExpr */;
2649 val
* var19
/* : nullable AExpr */;
2652 if (var_n
== NULL
) {
2653 var1
= 1; /* is null */
2655 var1
= 0; /* arg is null but recv is not */
2658 { /* Inline kernel#Object#== (var_n,var) on <var_n:nullable AExpr> */
2661 { /* Inline kernel#Object#is_same_instance (var_n,var_other) on <var_n:nullable AExpr(AExpr)> */
2662 var6
= var_n
== var_other
;
2677 /* <var_n:nullable AExpr(AExpr)> isa AForExpr */
2678 cltype
= type_nit__AForExpr
.color
;
2679 idtype
= type_nit__AForExpr
.id
;
2680 if(cltype
>= var_n
->type
->table_size
) {
2683 var7
= var_n
->type
->type_table
[cltype
] == idtype
;
2687 { /* Inline parser_nodes#AForExpr#n_block (var_n) on <var_n:nullable AExpr(AForExpr)> */
2688 var10
= var_n
->attrs
[COLOR_nit__parser_nodes__AForExpr___n_block
].val
; /* _n_block on <var_n:nullable AExpr(AForExpr)> */
2694 nit__typing___AArrayExpr___set_comprehension(self
, var8
); /* Direct call typing#AArrayExpr#set_comprehension on <self:AArrayExpr>*/
2697 /* <var_n:nullable AExpr(AExpr)> isa AIfExpr */
2698 cltype12
= type_nit__AIfExpr
.color
;
2699 idtype13
= type_nit__AIfExpr
.id
;
2700 if(cltype12
>= var_n
->type
->table_size
) {
2703 var11
= var_n
->type
->type_table
[cltype12
] == idtype13
;
2707 { /* Inline parser_nodes#AIfExpr#n_then (var_n) on <var_n:nullable AExpr(AIfExpr)> */
2708 var16
= var_n
->attrs
[COLOR_nit__parser_nodes__AIfExpr___n_then
].val
; /* _n_then on <var_n:nullable AExpr(AIfExpr)> */
2710 RET_LABEL15
:(void)0;
2714 nit__typing___AArrayExpr___set_comprehension(self
, var14
); /* Direct call typing#AArrayExpr#set_comprehension on <self:AArrayExpr>*/
2717 { /* Inline parser_nodes#AIfExpr#n_else (var_n) on <var_n:nullable AExpr(AIfExpr)> */
2718 var19
= var_n
->attrs
[COLOR_nit__parser_nodes__AIfExpr___n_else
].val
; /* _n_else on <var_n:nullable AExpr(AIfExpr)> */
2720 RET_LABEL18
:(void)0;
2724 nit__typing___AArrayExpr___set_comprehension(self
, var17
); /* Direct call typing#AArrayExpr#set_comprehension on <self:AArrayExpr>*/
2728 { /* Inline typing#AExpr#comprehension= (var_n,self) on <var_n:nullable AExpr(AExpr)> */
2729 var_n
->attrs
[COLOR_nit__typing__AExpr___comprehension
].val
= self
; /* _comprehension on <var_n:nullable AExpr(AExpr)> */
2730 RET_LABEL20
:(void)0;
2738 /* method typing#AArrayExpr#accept_typing for (self: AArrayExpr, TypeVisitor) */
2739 void nit__typing___AArrayExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
2740 val
* var_v
/* var v: TypeVisitor */;
2741 val
* var
/* : null */;
2742 val
* var_mtype
/* var mtype: nullable MType */;
2743 val
* var1
/* : nullable AType */;
2744 val
* var3
/* : nullable AType */;
2745 val
* var_ntype
/* var ntype: nullable AType */;
2746 val
* var4
/* : null */;
2747 short int var5
/* : Bool */;
2748 short int var6
/* : Bool */;
2749 val
* var_other
/* var other: nullable Object */;
2750 short int var8
/* : Bool */;
2751 short int var9
/* : Bool */;
2752 val
* var10
/* : nullable MType */;
2753 val
* var11
/* : null */;
2754 short int var12
/* : Bool */;
2755 short int var13
/* : Bool */;
2756 val
* var_other15
/* var other: nullable Object */;
2757 short int var16
/* : Bool */;
2758 short int var18
/* : Bool */;
2759 val
* var19
/* : Array[nullable MType] */;
2760 val
* var_mtypes
/* var mtypes: Array[nullable MType] */;
2761 short int var20
/* : Bool */;
2762 short int var_useless
/* var useless: Bool */;
2763 val
* var21
/* : ANodes[AExpr] */;
2764 val
* var23
/* : ANodes[AExpr] */;
2765 val
* var_
/* var : ANodes[AExpr] */;
2766 val
* var24
/* : Iterator[ANode] */;
2767 val
* var_25
/* var : Iterator[AExpr] */;
2768 short int var26
/* : Bool */;
2769 val
* var27
/* : nullable Object */;
2770 val
* var_e
/* var e: AExpr */;
2771 val
* var28
/* : nullable MType */;
2772 val
* var_t
/* var t: nullable MType */;
2773 val
* var29
/* : null */;
2774 short int var30
/* : Bool */;
2775 short int var31
/* : Bool */;
2776 short int var33
/* : Bool */;
2777 short int var35
/* : Bool */;
2778 val
* var36
/* : null */;
2779 short int var37
/* : Bool */;
2780 short int var38
/* : Bool */;
2781 short int var40
/* : Bool */;
2782 short int var41
/* : Bool */;
2783 val
* var42
/* : nullable MType */;
2784 val
* var43
/* : null */;
2785 short int var44
/* : Bool */;
2786 short int var45
/* : Bool */;
2787 short int var47
/* : Bool */;
2788 short int var49
/* : Bool */;
2789 short int var50
/* : Bool */;
2790 short int var52
/* : Bool */;
2791 short int var54
/* : Bool */;
2792 short int var55
/* : Bool */;
2793 val
* var57
/* : null */;
2794 short int var58
/* : Bool */;
2795 short int var59
/* : Bool */;
2796 short int var61
/* : Bool */;
2797 short int var63
/* : Bool */;
2798 val
* var64
/* : nullable MType */;
2799 short int var65
/* : Bool */;
2800 val
* var66
/* : null */;
2801 short int var67
/* : Bool */;
2802 short int var68
/* : Bool */;
2803 short int var70
/* : Bool */;
2804 short int var72
/* : Bool */;
2805 short int var_73
/* var : Bool */;
2806 short int var74
/* : Bool */;
2809 static val
* varonce
;
2810 val
* var75
/* : String */;
2811 char* var76
/* : NativeString */;
2812 long var77
/* : Int */;
2813 val
* var78
/* : FlatString */;
2814 static val
* varonce79
;
2815 val
* var80
/* : String */;
2816 char* var81
/* : NativeString */;
2817 long var82
/* : Int */;
2818 val
* var83
/* : FlatString */;
2819 val
* var84
/* : String */;
2820 val
* var85
/* : Array[Object] */;
2821 long var86
/* : Int */;
2822 val
* var87
/* : NativeArray[Object] */;
2823 val
* var88
/* : String */;
2824 val
* var89
/* : null */;
2825 short int var90
/* : Bool */;
2826 short int var91
/* : Bool */;
2827 short int var93
/* : Bool */;
2828 short int var94
/* : Bool */;
2829 val
* var95
/* : ModelBuilder */;
2830 val
* var97
/* : ModelBuilder */;
2831 static val
* varonce98
;
2832 val
* var99
/* : String */;
2833 char* var100
/* : NativeString */;
2834 long var101
/* : Int */;
2835 val
* var102
/* : FlatString */;
2836 static val
* varonce103
;
2837 val
* var104
/* : String */;
2838 char* var105
/* : NativeString */;
2839 long var106
/* : Int */;
2840 val
* var107
/* : FlatString */;
2841 static val
* varonce108
;
2842 val
* var109
/* : String */;
2843 char* var110
/* : NativeString */;
2844 long var111
/* : Int */;
2845 val
* var112
/* : FlatString */;
2846 val
* var113
/* : Array[Object] */;
2847 long var114
/* : Int */;
2848 val
* var115
/* : NativeArray[Object] */;
2849 val
* var116
/* : String */;
2850 static val
* varonce118
;
2851 val
* var119
/* : String */;
2852 char* var120
/* : NativeString */;
2853 long var121
/* : Int */;
2854 val
* var122
/* : FlatString */;
2855 val
* var123
/* : nullable MClass */;
2856 val
* var_mclass
/* var mclass: nullable MClass */;
2857 val
* var124
/* : null */;
2858 short int var125
/* : Bool */;
2859 short int var126
/* : Bool */;
2860 short int var128
/* : Bool */;
2861 short int var130
/* : Bool */;
2862 val
* var131
/* : Array[MType] */;
2863 long var132
/* : Int */;
2864 val
* var_133
/* var : Array[MType] */;
2865 val
* var134
/* : MClassType */;
2866 val
* var_array_mtype
/* var array_mtype: MClassType */;
2867 static val
* varonce135
;
2868 val
* var136
/* : String */;
2869 char* var137
/* : NativeString */;
2870 long var138
/* : Int */;
2871 val
* var139
/* : FlatString */;
2872 short int var140
/* : Bool */;
2873 val
* var141
/* : nullable CallSite */;
2874 static val
* varonce143
;
2875 val
* var144
/* : String */;
2876 char* var145
/* : NativeString */;
2877 long var146
/* : Int */;
2878 val
* var147
/* : FlatString */;
2879 short int var148
/* : Bool */;
2880 val
* var149
/* : nullable CallSite */;
2885 { /* Inline parser_nodes#AArrayExpr#n_type (self) on <self:AArrayExpr> */
2886 var3
= self
->attrs
[COLOR_nit__parser_nodes__AArrayExpr___n_type
].val
; /* _n_type on <self:AArrayExpr> */
2893 if (var_ntype
== NULL
) {
2894 var5
= 0; /* is null */
2896 var5
= 1; /* arg is null and recv is not */
2899 { /* Inline kernel#Object#!= (var_ntype,var4) on <var_ntype:nullable AType> */
2902 var8
= ((short int (*)(val
* self
, val
* p0
))(var_ntype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_ntype
, var_other
) /* == on <var_ntype:nullable AType(AType)>*/;
2913 var10
= nit__typing___nit__typing__TypeVisitor___resolve_mtype(var_v
, var_ntype
);
2917 if (var_mtype
== NULL
) {
2918 var12
= 1; /* is null */
2920 var12
= 0; /* arg is null but recv is not */
2923 { /* Inline kernel#Object#== (var_mtype,var11) on <var_mtype:nullable MType> */
2924 var_other15
= var11
;
2926 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other15) on <var_mtype:nullable MType(MType)> */
2927 var18
= var_mtype
== var_other15
;
2930 RET_LABEL17
:(void)0;
2935 RET_LABEL14
:(void)0;
2945 var19
= NEW_standard__Array(&type_standard__Array__nullable__nit__MType
);
2947 standard___standard__Array___standard__kernel__Object__init(var19
); /* Direct call array#Array#init on <var19:Array[nullable MType]>*/
2951 var_useless
= var20
;
2953 { /* Inline parser_nodes#AArrayExpr#n_exprs (self) on <self:AArrayExpr> */
2954 var23
= self
->attrs
[COLOR_nit__parser_nodes__AArrayExpr___n_exprs
].val
; /* _n_exprs on <self:AArrayExpr> */
2955 if (unlikely(var23
== NULL
)) {
2956 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
2957 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2160);
2961 RET_LABEL22
:(void)0;
2966 var24
= nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_
);
2971 var26
= ((short int (*)(val
* self
))(var_25
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_25
) /* is_ok on <var_25:Iterator[AExpr]>*/;
2975 var27
= ((val
* (*)(val
* self
))(var_25
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_25
) /* item on <var_25:Iterator[AExpr]>*/;
2979 var28
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var_e
);
2983 if (var_t
== NULL
) {
2984 var30
= 1; /* is null */
2986 var30
= 0; /* arg is null but recv is not */
2989 { /* Inline kernel#Object#== (var_t,var29) on <var_t:nullable MType> */
2990 var_other15
= var29
;
2992 { /* Inline kernel#Object#is_same_instance (var_t,var_other15) on <var_t:nullable MType(MType)> */
2993 var35
= var_t
== var_other15
;
2996 RET_LABEL34
:(void)0;
3001 RET_LABEL32
:(void)0;
3010 nit__typing___AArrayExpr___set_comprehension(self
, var_e
); /* Direct call typing#AArrayExpr#set_comprehension on <self:AArrayExpr>*/
3013 if (var_mtype
== NULL
) {
3014 var37
= 0; /* is null */
3016 var37
= 1; /* arg is null and recv is not */
3019 { /* Inline kernel#Object#!= (var_mtype,var36) on <var_mtype:nullable MType> */
3022 var40
= ((short int (*)(val
* self
, val
* p0
))(var_mtype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mtype
, var_other
) /* == on <var_mtype:nullable MType(MType)>*/;
3027 RET_LABEL39
:(void)0;
3033 var42
= nit__typing___nit__typing__TypeVisitor___check_subtype(var_v
, var_e
, var_t
, var_mtype
);
3036 if (var42
== NULL
) {
3037 var44
= 1; /* is null */
3039 var44
= 0; /* arg is null but recv is not */
3042 { /* Inline kernel#Object#== (var42,var43) on <var42:nullable MType> */
3043 var_other15
= var43
;
3045 { /* Inline kernel#Object#is_same_instance (var42,var_other15) on <var42:nullable MType(MType)> */
3046 var49
= var42
== var_other15
;
3049 RET_LABEL48
:(void)0;
3054 RET_LABEL46
:(void)0;
3063 { /* Inline kernel#Object#== (var_t,var_mtype) on <var_t:nullable MType(MType)> */
3064 var_other15
= var_mtype
;
3066 { /* Inline kernel#Object#is_same_instance (var_t,var_other15) on <var_t:nullable MType(MType)> */
3067 var54
= var_t
== var_other15
;
3070 RET_LABEL53
:(void)0;
3075 RET_LABEL51
:(void)0;
3080 var_useless
= var55
;
3085 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_mtypes
, var_t
); /* Direct call array#Array#add on <var_mtypes:Array[nullable MType]>*/
3089 ((void (*)(val
* self
))(var_25
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_25
) /* next on <var_25:Iterator[AExpr]>*/;
3095 BREAK_label
: (void)0;
3097 { /* Inline abstract_collection#Iterator#finish (var_25) on <var_25:Iterator[AExpr]> */
3098 RET_LABEL56
:(void)0;
3102 if (var_mtype
== NULL
) {
3103 var58
= 1; /* is null */
3105 var58
= 0; /* arg is null but recv is not */
3108 { /* Inline kernel#Object#== (var_mtype,var57) on <var_mtype:nullable MType> */
3109 var_other15
= var57
;
3111 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other15) on <var_mtype:nullable MType(MType)> */
3112 var63
= var_mtype
== var_other15
;
3115 RET_LABEL62
:(void)0;
3120 RET_LABEL60
:(void)0;
3126 var64
= nit__typing___nit__typing__TypeVisitor___merge_types(var_v
, self
, var_mtypes
);
3132 if (var_mtype
== NULL
) {
3133 var67
= 1; /* is null */
3135 var67
= 0; /* arg is null but recv is not */
3138 { /* Inline kernel#Object#== (var_mtype,var66) on <var_mtype:nullable MType> */
3139 var_other15
= var66
;
3141 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other15) on <var_mtype:nullable MType(MType)> */
3142 var72
= var_mtype
== var_other15
;
3145 RET_LABEL71
:(void)0;
3150 RET_LABEL69
:(void)0;
3158 /* <var_mtype:nullable MType(MType)> isa MNullType */
3159 cltype
= type_nit__MNullType
.color
;
3160 idtype
= type_nit__MNullType
.id
;
3161 if(cltype
>= var_mtype
->type
->table_size
) {
3164 var74
= var_mtype
->type
->type_table
[cltype
] == idtype
;
3172 var76
= "Type Error: ambiguous array type ";
3174 var78
= standard___standard__NativeString___to_s_with_length(var76
, var77
);
3183 var83
= standard___standard__NativeString___to_s_with_length(var81
, var82
);
3188 var84
= standard__string___Collection___join(var_mtypes
, var80
);
3190 var85
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3191 { /* var85 = array_instance Array[Object] */
3193 var87
= NEW_standard__NativeArray(var86
, &type_standard__NativeArray__standard__Object
);
3194 ((struct instance_standard__NativeArray
*)var87
)->values
[0] = (val
*) var75
;
3195 ((struct instance_standard__NativeArray
*)var87
)->values
[1] = (val
*) var84
;
3197 ((void (*)(val
* self
, val
* p0
, long p1
))(var85
->class->vft
[COLOR_standard__array__Array__with_native
]))(var85
, var87
, var86
) /* with_native on <var85:Array[Object]>*/;
3201 var88
= ((val
* (*)(val
* self
))(var85
->class->vft
[COLOR_standard__string__Object__to_s
]))(var85
) /* to_s on <var85:Array[Object]>*/;
3204 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var88
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
3211 if (var_ntype
== NULL
) {
3212 var90
= 0; /* is null */
3214 var90
= 1; /* arg is null and recv is not */
3217 { /* Inline kernel#Object#!= (var_ntype,var89) on <var_ntype:nullable AType> */
3220 var93
= ((short int (*)(val
* self
, val
* p0
))(var_ntype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_ntype
, var_other
) /* == on <var_ntype:nullable AType(AType)>*/;
3225 RET_LABEL92
:(void)0;
3229 if (unlikely(!var90
)) {
3230 PRINT_ERROR("Runtime error: %s", "Assert failed");
3231 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1255);
3235 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
3236 var97
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
3237 if (unlikely(var97
== NULL
)) {
3238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3239 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3243 RET_LABEL96
:(void)0;
3249 var100
= "useless-type";
3251 var102
= standard___standard__NativeString___to_s_with_length(var100
, var101
);
3256 var104
= varonce103
;
3258 var105
= "Warning: useless type declaration `";
3260 var107
= standard___standard__NativeString___to_s_with_length(var105
, var106
);
3262 varonce103
= var104
;
3265 var109
= varonce108
;
3267 var110
= "` in literal Array since it can be inferred from the elements type.";
3269 var112
= standard___standard__NativeString___to_s_with_length(var110
, var111
);
3271 varonce108
= var109
;
3273 var113
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3274 { /* var113 = array_instance Array[Object] */
3276 var115
= NEW_standard__NativeArray(var114
, &type_standard__NativeArray__standard__Object
);
3277 ((struct instance_standard__NativeArray
*)var115
)->values
[0] = (val
*) var104
;
3278 ((struct instance_standard__NativeArray
*)var115
)->values
[1] = (val
*) var_mtype
;
3279 ((struct instance_standard__NativeArray
*)var115
)->values
[2] = (val
*) var109
;
3281 ((void (*)(val
* self
, val
* p0
, long p1
))(var113
->class->vft
[COLOR_standard__array__Array__with_native
]))(var113
, var115
, var114
) /* with_native on <var113:Array[Object]>*/;
3285 var116
= ((val
* (*)(val
* self
))(var113
->class->vft
[COLOR_standard__string__Object__to_s
]))(var113
) /* to_s on <var113:Array[Object]>*/;
3288 nit___nit__ModelBuilder___warning(var95
, var_ntype
, var99
, var116
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var95:ModelBuilder>*/
3293 { /* Inline typing#AArrayExpr#element_mtype= (self,var_mtype) on <self:AArrayExpr> */
3294 self
->attrs
[COLOR_nit__typing__AArrayExpr___element_mtype
].val
= var_mtype
; /* _element_mtype on <self:AArrayExpr> */
3295 RET_LABEL117
:(void)0;
3299 var119
= varonce118
;
3303 var122
= standard___standard__NativeString___to_s_with_length(var120
, var121
);
3305 varonce118
= var119
;
3308 var123
= nit__typing___nit__typing__TypeVisitor___get_mclass(var_v
, self
, var119
);
3310 var_mclass
= var123
;
3312 if (var_mclass
== NULL
) {
3313 var125
= 1; /* is null */
3315 var125
= 0; /* arg is null but recv is not */
3318 { /* Inline kernel#Object#== (var_mclass,var124) on <var_mclass:nullable MClass> */
3319 var_other15
= var124
;
3321 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other15) on <var_mclass:nullable MClass(MClass)> */
3322 var130
= var_mclass
== var_other15
;
3325 RET_LABEL129
:(void)0;
3330 RET_LABEL127
:(void)0;
3338 var131
= NEW_standard__Array(&type_standard__Array__nit__MType
);
3341 standard___standard__Array___with_capacity(var131
, var132
); /* Direct call array#Array#with_capacity on <var131:Array[MType]>*/
3345 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_133
, var_mtype
); /* Direct call array#AbstractArray#push on <var_133:Array[MType]>*/
3348 var134
= nit___nit__MClass___get_mtype(var_mclass
, var_133
);
3350 var_array_mtype
= var134
;
3352 var136
= varonce135
;
3354 var137
= "with_capacity";
3356 var139
= standard___standard__NativeString___to_s_with_length(var137
, var138
);
3358 varonce135
= var136
;
3362 var141
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_array_mtype
, var136
, var140
);
3365 { /* Inline typing#AArrayExpr#with_capacity_callsite= (self,var141) on <self:AArrayExpr> */
3366 self
->attrs
[COLOR_nit__typing__AArrayExpr___with_capacity_callsite
].val
= var141
; /* _with_capacity_callsite on <self:AArrayExpr> */
3367 RET_LABEL142
:(void)0;
3371 var144
= varonce143
;
3375 var147
= standard___standard__NativeString___to_s_with_length(var145
, var146
);
3377 varonce143
= var144
;
3381 var149
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_array_mtype
, var144
, var148
);
3384 { /* Inline typing#AArrayExpr#push_callsite= (self,var149) on <self:AArrayExpr> */
3385 self
->attrs
[COLOR_nit__typing__AArrayExpr___push_callsite
].val
= var149
; /* _push_callsite on <self:AArrayExpr> */
3386 RET_LABEL150
:(void)0;
3390 { /* Inline typing#AExpr#mtype= (self,var_array_mtype) on <self:AArrayExpr> */
3391 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var_array_mtype
; /* _mtype on <self:AArrayExpr> */
3392 RET_LABEL151
:(void)0;
3397 /* method typing#ARangeExpr#init_callsite for (self: ARangeExpr): nullable CallSite */
3398 val
* nit__typing___ARangeExpr___init_callsite(val
* self
) {
3399 val
* var
/* : nullable CallSite */;
3400 val
* var1
/* : nullable CallSite */;
3401 var1
= self
->attrs
[COLOR_nit__typing__ARangeExpr___init_callsite
].val
; /* _init_callsite on <self:ARangeExpr> */
3406 /* method typing#ARangeExpr#init_callsite= for (self: ARangeExpr, nullable CallSite) */
3407 void nit__typing___ARangeExpr___init_callsite_61d(val
* self
, val
* p0
) {
3408 self
->attrs
[COLOR_nit__typing__ARangeExpr___init_callsite
].val
= p0
; /* _init_callsite on <self:ARangeExpr> */
3411 /* method typing#ARangeExpr#accept_typing for (self: ARangeExpr, TypeVisitor) */
3412 void nit__typing___ARangeExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
3413 val
* var_v
/* var v: TypeVisitor */;
3414 static val
* varonce
;
3415 val
* var
/* : String */;
3416 char* var1
/* : NativeString */;
3417 long var2
/* : Int */;
3418 val
* var3
/* : FlatString */;
3419 val
* var4
/* : nullable MClass */;
3420 val
* var_discrete_class
/* var discrete_class: nullable MClass */;
3421 val
* var5
/* : null */;
3422 short int var6
/* : Bool */;
3423 short int var7
/* : Bool */;
3424 val
* var_other
/* var other: nullable Object */;
3425 short int var9
/* : Bool */;
3426 short int var11
/* : Bool */;
3427 val
* var12
/* : MClassDef */;
3428 val
* var14
/* : MClassDef */;
3429 val
* var15
/* : MClassType */;
3430 val
* var17
/* : MClassType */;
3431 val
* var_discrete_type
/* var discrete_type: MClassType */;
3432 val
* var18
/* : AExpr */;
3433 val
* var20
/* : AExpr */;
3434 val
* var21
/* : nullable MType */;
3435 val
* var_t1
/* var t1: nullable MType */;
3436 val
* var22
/* : AExpr */;
3437 val
* var24
/* : AExpr */;
3438 val
* var25
/* : nullable MType */;
3439 val
* var_t2
/* var t2: nullable MType */;
3440 short int var26
/* : Bool */;
3441 val
* var27
/* : null */;
3442 short int var28
/* : Bool */;
3443 short int var29
/* : Bool */;
3444 short int var31
/* : Bool */;
3445 short int var33
/* : Bool */;
3446 short int var_
/* var : Bool */;
3447 val
* var34
/* : null */;
3448 short int var35
/* : Bool */;
3449 short int var36
/* : Bool */;
3450 short int var38
/* : Bool */;
3451 short int var40
/* : Bool */;
3452 static val
* varonce41
;
3453 val
* var42
/* : String */;
3454 char* var43
/* : NativeString */;
3455 long var44
/* : Int */;
3456 val
* var45
/* : FlatString */;
3457 val
* var46
/* : nullable MClass */;
3458 val
* var_mclass
/* var mclass: nullable MClass */;
3459 val
* var47
/* : null */;
3460 short int var48
/* : Bool */;
3461 short int var49
/* : Bool */;
3462 short int var51
/* : Bool */;
3463 short int var53
/* : Bool */;
3464 short int var54
/* : Bool */;
3465 val
* var55
/* : Array[MType] */;
3466 long var56
/* : Int */;
3467 val
* var_57
/* var : Array[MType] */;
3468 val
* var58
/* : MClassType */;
3469 val
* var_mtype
/* var mtype: nullable Object */;
3470 short int var59
/* : Bool */;
3471 val
* var60
/* : Array[MType] */;
3472 long var61
/* : Int */;
3473 val
* var_62
/* var : Array[MType] */;
3474 val
* var63
/* : MClassType */;
3475 static val
* varonce64
;
3476 val
* var65
/* : String */;
3477 char* var66
/* : NativeString */;
3478 long var67
/* : Int */;
3479 val
* var68
/* : FlatString */;
3480 static val
* varonce69
;
3481 val
* var70
/* : String */;
3482 char* var71
/* : NativeString */;
3483 long var72
/* : Int */;
3484 val
* var73
/* : FlatString */;
3485 val
* var74
/* : Array[Object] */;
3486 long var75
/* : Int */;
3487 val
* var76
/* : NativeArray[Object] */;
3488 val
* var77
/* : String */;
3489 short int var79
/* : Bool */;
3492 static val
* varonce80
;
3493 val
* var81
/* : String */;
3494 char* var82
/* : NativeString */;
3495 long var83
/* : Int */;
3496 val
* var84
/* : FlatString */;
3497 short int var85
/* : Bool */;
3498 val
* var86
/* : nullable CallSite */;
3499 val
* var_callsite
/* var callsite: nullable Object */;
3500 short int var87
/* : Bool */;
3503 static val
* varonce90
;
3504 val
* var91
/* : String */;
3505 char* var92
/* : NativeString */;
3506 long var93
/* : Int */;
3507 val
* var94
/* : FlatString */;
3508 short int var95
/* : Bool */;
3509 val
* var96
/* : nullable CallSite */;
3516 var3
= standard___standard__NativeString___to_s_with_length(var1
, var2
);
3521 var4
= nit__typing___nit__typing__TypeVisitor___get_mclass(var_v
, self
, var
);
3523 var_discrete_class
= var4
;
3525 if (var_discrete_class
== NULL
) {
3526 var6
= 1; /* is null */
3528 var6
= 0; /* arg is null but recv is not */
3531 { /* Inline kernel#Object#== (var_discrete_class,var5) on <var_discrete_class:nullable MClass> */
3534 { /* Inline kernel#Object#is_same_instance (var_discrete_class,var_other) on <var_discrete_class:nullable MClass(MClass)> */
3535 var11
= var_discrete_class
== var_other
;
3538 RET_LABEL10
:(void)0;
3552 { /* Inline model#MClass#intro (var_discrete_class) on <var_discrete_class:nullable MClass(MClass)> */
3553 var14
= var_discrete_class
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var_discrete_class:nullable MClass(MClass)> */
3554 if (unlikely(var14
== NULL
)) {
3555 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
3556 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 423);
3560 RET_LABEL13
:(void)0;
3564 { /* Inline model#MClassDef#bound_mtype (var12) on <var12:MClassDef> */
3565 var17
= var12
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var12:MClassDef> */
3566 if (unlikely(var17
== NULL
)) {
3567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3568 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 495);
3572 RET_LABEL16
:(void)0;
3575 var_discrete_type
= var15
;
3577 { /* Inline parser_nodes#ARangeExpr#n_expr (self) on <self:ARangeExpr> */
3578 var20
= self
->attrs
[COLOR_nit__parser_nodes__ARangeExpr___n_expr
].val
; /* _n_expr on <self:ARangeExpr> */
3579 if (unlikely(var20
== NULL
)) {
3580 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3581 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2124);
3585 RET_LABEL19
:(void)0;
3589 var21
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(var_v
, var18
, var_discrete_type
);
3593 { /* Inline parser_nodes#ARangeExpr#n_expr2 (self) on <self:ARangeExpr> */
3594 var24
= self
->attrs
[COLOR_nit__parser_nodes__ARangeExpr___n_expr2
].val
; /* _n_expr2 on <self:ARangeExpr> */
3595 if (unlikely(var24
== NULL
)) {
3596 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3597 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2127);
3601 RET_LABEL23
:(void)0;
3605 var25
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(var_v
, var22
, var_discrete_type
);
3609 if (var_t1
== NULL
) {
3610 var28
= 1; /* is null */
3612 var28
= 0; /* arg is null but recv is not */
3615 { /* Inline kernel#Object#== (var_t1,var27) on <var_t1:nullable MType> */
3618 { /* Inline kernel#Object#is_same_instance (var_t1,var_other) on <var_t1:nullable MType(MType)> */
3619 var33
= var_t1
== var_other
;
3622 RET_LABEL32
:(void)0;
3627 RET_LABEL30
:(void)0;
3636 if (var_t2
== NULL
) {
3637 var35
= 1; /* is null */
3639 var35
= 0; /* arg is null but recv is not */
3642 { /* Inline kernel#Object#== (var_t2,var34) on <var_t2:nullable MType> */
3645 { /* Inline kernel#Object#is_same_instance (var_t2,var_other) on <var_t2:nullable MType(MType)> */
3646 var40
= var_t2
== var_other
;
3649 RET_LABEL39
:(void)0;
3654 RET_LABEL37
:(void)0;
3669 var45
= standard___standard__NativeString___to_s_with_length(var43
, var44
);
3674 var46
= nit__typing___nit__typing__TypeVisitor___get_mclass(var_v
, self
, var42
);
3678 if (var_mclass
== NULL
) {
3679 var48
= 1; /* is null */
3681 var48
= 0; /* arg is null but recv is not */
3684 { /* Inline kernel#Object#== (var_mclass,var47) on <var_mclass:nullable MClass> */
3687 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
3688 var53
= var_mclass
== var_other
;
3691 RET_LABEL52
:(void)0;
3696 RET_LABEL50
:(void)0;
3705 var54
= nit__typing___nit__typing__TypeVisitor___is_subtype(var_v
, var_t1
, var_t2
);
3708 var55
= NEW_standard__Array(&type_standard__Array__nit__MType
);
3711 standard___standard__Array___with_capacity(var55
, var56
); /* Direct call array#Array#with_capacity on <var55:Array[MType]>*/
3715 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_57
, var_t2
); /* Direct call array#AbstractArray#push on <var_57:Array[MType]>*/
3718 var58
= nit___nit__MClass___get_mtype(var_mclass
, var_57
);
3723 var59
= nit__typing___nit__typing__TypeVisitor___is_subtype(var_v
, var_t2
, var_t1
);
3726 var60
= NEW_standard__Array(&type_standard__Array__nit__MType
);
3729 standard___standard__Array___with_capacity(var60
, var61
); /* Direct call array#Array#with_capacity on <var60:Array[MType]>*/
3733 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_62
, var_t1
); /* Direct call array#AbstractArray#push on <var_62:Array[MType]>*/
3736 var63
= nit___nit__MClass___get_mtype(var_mclass
, var_62
);
3743 var66
= "Type Error: Cannot create range: ";
3745 var68
= standard___standard__NativeString___to_s_with_length(var66
, var67
);
3754 var73
= standard___standard__NativeString___to_s_with_length(var71
, var72
);
3758 var74
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3759 { /* var74 = array_instance Array[Object] */
3761 var76
= NEW_standard__NativeArray(var75
, &type_standard__NativeArray__standard__Object
);
3762 ((struct instance_standard__NativeArray
*)var76
)->values
[0] = (val
*) var65
;
3763 ((struct instance_standard__NativeArray
*)var76
)->values
[1] = (val
*) var_t1
;
3764 ((struct instance_standard__NativeArray
*)var76
)->values
[2] = (val
*) var70
;
3765 ((struct instance_standard__NativeArray
*)var76
)->values
[3] = (val
*) var_t2
;
3767 ((void (*)(val
* self
, val
* p0
, long p1
))(var74
->class->vft
[COLOR_standard__array__Array__with_native
]))(var74
, var76
, var75
) /* with_native on <var74:Array[Object]>*/;
3771 var77
= ((val
* (*)(val
* self
))(var74
->class->vft
[COLOR_standard__string__Object__to_s
]))(var74
) /* to_s on <var74:Array[Object]>*/;
3774 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var77
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
3780 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:ARangeExpr> */
3781 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var_mtype
; /* _mtype on <self:ARangeExpr> */
3782 RET_LABEL78
:(void)0;
3785 /* <self:ARangeExpr> isa ACrangeExpr */
3786 cltype
= type_nit__ACrangeExpr
.color
;
3787 idtype
= type_nit__ACrangeExpr
.id
;
3788 if(cltype
>= self
->type
->table_size
) {
3791 var79
= self
->type
->type_table
[cltype
] == idtype
;
3799 var84
= standard___standard__NativeString___to_s_with_length(var82
, var83
);
3805 var86
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_mtype
, var81
, var85
);
3807 var_callsite
= var86
;
3809 /* <self:ARangeExpr> isa AOrangeExpr */
3810 cltype88
= type_nit__AOrangeExpr
.color
;
3811 idtype89
= type_nit__AOrangeExpr
.id
;
3812 if(cltype88
>= self
->type
->table_size
) {
3815 var87
= self
->type
->type_table
[cltype88
] == idtype89
;
3821 var92
= "without_last";
3823 var94
= standard___standard__NativeString___to_s_with_length(var92
, var93
);
3829 var96
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_mtype
, var91
, var95
);
3831 var_callsite
= var96
;
3833 PRINT_ERROR("Runtime error: %s", "Aborted");
3834 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1304);
3839 { /* Inline typing#ARangeExpr#init_callsite= (self,var_callsite) on <self:ARangeExpr> */
3840 self
->attrs
[COLOR_nit__typing__ARangeExpr___init_callsite
].val
= var_callsite
; /* _init_callsite on <self:ARangeExpr> */
3841 RET_LABEL97
:(void)0;
3846 /* method typing#ANullExpr#accept_typing for (self: ANullExpr, TypeVisitor) */
3847 void nit__typing___ANullExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
3848 val
* var_v
/* var v: TypeVisitor */;
3849 val
* var
/* : MModule */;
3850 val
* var2
/* : MModule */;
3851 val
* var3
/* : Model */;
3852 val
* var5
/* : Model */;
3853 val
* var6
/* : MNullType */;
3854 val
* var8
/* : MNullType */;
3857 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
3858 var2
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
3859 if (unlikely(var2
== NULL
)) {
3860 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3861 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
3869 { /* Inline mmodule#MModule#model (var) on <var:MModule> */
3870 var5
= var
->attrs
[COLOR_nit__mmodule__MModule___model
].val
; /* _model on <var:MModule> */
3871 if (unlikely(var5
== NULL
)) {
3872 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
3873 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 73);
3881 { /* Inline model#Model#null_type (var3) on <var3:Model> */
3882 var8
= var3
->attrs
[COLOR_nit__model__Model___null_type
].val
; /* _null_type on <var3:Model> */
3883 if (unlikely(var8
== NULL
)) {
3884 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _null_type");
3885 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 94);
3893 { /* Inline typing#AExpr#mtype= (self,var6) on <self:ANullExpr> */
3894 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var6
; /* _mtype on <self:ANullExpr> */
3900 /* method typing#AIsaExpr#cast_type for (self: AIsaExpr): nullable MType */
3901 val
* nit__typing___AIsaExpr___cast_type(val
* self
) {
3902 val
* var
/* : nullable MType */;
3903 val
* var1
/* : nullable MType */;
3904 var1
= self
->attrs
[COLOR_nit__typing__AIsaExpr___cast_type
].val
; /* _cast_type on <self:AIsaExpr> */
3909 /* method typing#AIsaExpr#cast_type= for (self: AIsaExpr, nullable MType) */
3910 void nit__typing___AIsaExpr___cast_type_61d(val
* self
, val
* p0
) {
3911 self
->attrs
[COLOR_nit__typing__AIsaExpr___cast_type
].val
= p0
; /* _cast_type on <self:AIsaExpr> */
3914 /* method typing#AIsaExpr#accept_typing for (self: AIsaExpr, TypeVisitor) */
3915 void nit__typing___AIsaExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
3916 val
* var_v
/* var v: TypeVisitor */;
3917 val
* var
/* : AExpr */;
3918 val
* var2
/* : AExpr */;
3919 val
* var3
/* : AType */;
3920 val
* var5
/* : AType */;
3921 val
* var6
/* : nullable MType */;
3922 val
* var_mtype
/* var mtype: nullable MType */;
3923 val
* var8
/* : AExpr */;
3924 val
* var10
/* : AExpr */;
3925 val
* var11
/* : nullable Variable */;
3926 val
* var_variable
/* var variable: nullable Variable */;
3927 val
* var12
/* : null */;
3928 short int var13
/* : Bool */;
3929 short int var14
/* : Bool */;
3930 val
* var_other
/* var other: nullable Object */;
3931 short int var16
/* : Bool */;
3932 short int var17
/* : Bool */;
3933 val
* var18
/* : nullable FlowContext */;
3934 val
* var20
/* : nullable FlowContext */;
3935 val
* var21
/* : FlowContext */;
3936 val
* var23
/* : FlowContext */;
3937 val
* var24
/* : nullable MType */;
3940 { /* Inline parser_nodes#AIsaExpr#n_expr (self) on <self:AIsaExpr> */
3941 var2
= self
->attrs
[COLOR_nit__parser_nodes__AIsaExpr___n_expr
].val
; /* _n_expr on <self:AIsaExpr> */
3942 if (unlikely(var2
== NULL
)) {
3943 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3944 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1905);
3952 { /* Inline parser_nodes#AIsaExpr#n_type (self) on <self:AIsaExpr> */
3953 var5
= self
->attrs
[COLOR_nit__parser_nodes__AIsaExpr___n_type
].val
; /* _n_type on <self:AIsaExpr> */
3954 if (unlikely(var5
== NULL
)) {
3955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
3956 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1908);
3964 var6
= nit__typing___nit__typing__TypeVisitor___visit_expr_cast(var_v
, self
, var
, var3
);
3968 { /* Inline typing#AIsaExpr#cast_type= (self,var_mtype) on <self:AIsaExpr> */
3969 self
->attrs
[COLOR_nit__typing__AIsaExpr___cast_type
].val
= var_mtype
; /* _cast_type on <self:AIsaExpr> */
3974 { /* Inline parser_nodes#AIsaExpr#n_expr (self) on <self:AIsaExpr> */
3975 var10
= self
->attrs
[COLOR_nit__parser_nodes__AIsaExpr___n_expr
].val
; /* _n_expr on <self:AIsaExpr> */
3976 if (unlikely(var10
== NULL
)) {
3977 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3978 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1905);
3986 var11
= ((val
* (*)(val
* self
))(var8
->class->vft
[COLOR_nit__typing__AExpr__its_variable
]))(var8
) /* its_variable on <var8:AExpr>*/;
3988 var_variable
= var11
;
3990 if (var_variable
== NULL
) {
3991 var13
= 0; /* is null */
3993 var13
= 1; /* arg is null and recv is not */
3996 { /* Inline kernel#Object#!= (var_variable,var12) on <var_variable:nullable Variable> */
3999 var16
= ((short int (*)(val
* self
, val
* p0
))(var_variable
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_variable
, var_other
) /* == on <var_variable:nullable Variable(Variable)>*/;
4004 RET_LABEL15
:(void)0;
4010 { /* Inline flow#AExpr#after_flow_context (self) on <self:AIsaExpr> */
4011 var20
= self
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AIsaExpr> */
4013 RET_LABEL19
:(void)0;
4016 if (var18
== NULL
) {
4017 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4018 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1332);
4021 { /* Inline flow#FlowContext#when_true (var18) on <var18:nullable FlowContext> */
4022 if (unlikely(var18
== NULL
)) {
4023 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4024 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
4027 var23
= var18
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var18:nullable FlowContext> */
4028 if (unlikely(var23
== NULL
)) {
4029 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
4030 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
4034 RET_LABEL22
:(void)0;
4038 nit__typing___FlowContext___set_var(var21
, var_variable
, var_mtype
); /* Direct call typing#FlowContext#set_var on <var21:FlowContext>*/
4043 var24
= nit__typing___nit__typing__TypeVisitor___type_bool(var_v
, self
);
4046 { /* Inline typing#AExpr#mtype= (self,var24) on <self:AIsaExpr> */
4047 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var24
; /* _mtype on <self:AIsaExpr> */
4048 RET_LABEL25
:(void)0;
4053 /* method typing#AAsCastExpr#accept_typing for (self: AAsCastExpr, TypeVisitor) */
4054 void nit__typing___AAsCastExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
4055 val
* var_v
/* var v: TypeVisitor */;
4056 val
* var
/* : AExpr */;
4057 val
* var2
/* : AExpr */;
4058 val
* var3
/* : AType */;
4059 val
* var5
/* : AType */;
4060 val
* var6
/* : nullable MType */;
4063 { /* Inline parser_nodes#AAsCastForm#n_expr (self) on <self:AAsCastExpr> */
4064 var2
= self
->attrs
[COLOR_nit__parser_nodes__AAsCastForm___n_expr
].val
; /* _n_expr on <self:AAsCastExpr> */
4065 if (unlikely(var2
== NULL
)) {
4066 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4067 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2299);
4075 { /* Inline parser_nodes#AAsCastExpr#n_type (self) on <self:AAsCastExpr> */
4076 var5
= self
->attrs
[COLOR_nit__parser_nodes__AAsCastExpr___n_type
].val
; /* _n_type on <self:AAsCastExpr> */
4077 if (unlikely(var5
== NULL
)) {
4078 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
4079 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2316);
4087 var6
= nit__typing___nit__typing__TypeVisitor___visit_expr_cast(var_v
, self
, var
, var3
);
4090 { /* Inline typing#AExpr#mtype= (self,var6) on <self:AAsCastExpr> */
4091 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var6
; /* _mtype on <self:AAsCastExpr> */
4097 /* method typing#AAsNotnullExpr#accept_typing for (self: AAsNotnullExpr, TypeVisitor) */
4098 void nit__typing___AAsNotnullExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
4099 val
* var_v
/* var v: TypeVisitor */;
4100 val
* var
/* : AExpr */;
4101 val
* var2
/* : AExpr */;
4102 val
* var3
/* : nullable MType */;
4103 val
* var_mtype
/* var mtype: nullable MType */;
4104 val
* var4
/* : null */;
4105 short int var5
/* : Bool */;
4106 short int var6
/* : Bool */;
4107 val
* var_other
/* var other: nullable Object */;
4108 short int var8
/* : Bool */;
4109 short int var10
/* : Bool */;
4110 short int var11
/* : Bool */;
4113 static val
* varonce
;
4114 val
* var12
/* : String */;
4115 char* var13
/* : NativeString */;
4116 long var14
/* : Int */;
4117 val
* var15
/* : FlatString */;
4118 short int var16
/* : Bool */;
4121 val
* var19
/* : MType */;
4122 val
* var21
/* : MType */;
4123 short int var24
/* : Bool */;
4126 val
* var27
/* : ModelBuilder */;
4127 val
* var29
/* : ModelBuilder */;
4128 static val
* varonce30
;
4129 val
* var31
/* : String */;
4130 char* var32
/* : NativeString */;
4131 long var33
/* : Int */;
4132 val
* var34
/* : FlatString */;
4133 static val
* varonce35
;
4134 val
* var36
/* : String */;
4135 char* var37
/* : NativeString */;
4136 long var38
/* : Int */;
4137 val
* var39
/* : FlatString */;
4138 static val
* varonce40
;
4139 val
* var41
/* : String */;
4140 char* var42
/* : NativeString */;
4141 long var43
/* : Int */;
4142 val
* var44
/* : FlatString */;
4143 val
* var45
/* : Array[Object] */;
4144 long var46
/* : Int */;
4145 val
* var47
/* : NativeArray[Object] */;
4146 val
* var48
/* : String */;
4147 short int var49
/* : Bool */;
4148 val
* var50
/* : MType */;
4149 val
* var_u
/* var u: MType */;
4150 short int var51
/* : Bool */;
4153 short int var54
/* : Bool */;
4154 val
* var55
/* : ModelBuilder */;
4155 val
* var57
/* : ModelBuilder */;
4156 static val
* varonce58
;
4157 val
* var59
/* : String */;
4158 char* var60
/* : NativeString */;
4159 long var61
/* : Int */;
4160 val
* var62
/* : FlatString */;
4161 static val
* varonce63
;
4162 val
* var64
/* : String */;
4163 char* var65
/* : NativeString */;
4164 long var66
/* : Int */;
4165 val
* var67
/* : FlatString */;
4166 static val
* varonce68
;
4167 val
* var69
/* : String */;
4168 char* var70
/* : NativeString */;
4169 long var71
/* : Int */;
4170 val
* var72
/* : FlatString */;
4171 static val
* varonce73
;
4172 val
* var74
/* : String */;
4173 char* var75
/* : NativeString */;
4174 long var76
/* : Int */;
4175 val
* var77
/* : FlatString */;
4176 val
* var78
/* : Array[Object] */;
4177 long var79
/* : Int */;
4178 val
* var80
/* : NativeArray[Object] */;
4179 val
* var81
/* : String */;
4182 { /* Inline parser_nodes#AAsCastForm#n_expr (self) on <self:AAsNotnullExpr> */
4183 var2
= self
->attrs
[COLOR_nit__parser_nodes__AAsCastForm___n_expr
].val
; /* _n_expr on <self:AAsNotnullExpr> */
4184 if (unlikely(var2
== NULL
)) {
4185 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4186 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2299);
4194 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var
);
4198 if (var_mtype
== NULL
) {
4199 var5
= 1; /* is null */
4201 var5
= 0; /* arg is null but recv is not */
4204 { /* Inline kernel#Object#== (var_mtype,var4) on <var_mtype:nullable MType> */
4207 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
4208 var10
= var_mtype
== var_other
;
4224 /* <var_mtype:nullable MType(MType)> isa MNullType */
4225 cltype
= type_nit__MNullType
.color
;
4226 idtype
= type_nit__MNullType
.id
;
4227 if(cltype
>= var_mtype
->type
->table_size
) {
4230 var11
= var_mtype
->type
->type_table
[cltype
] == idtype
;
4236 var13
= "Type error: as(not null) on null";
4238 var15
= standard___standard__NativeString___to_s_with_length(var13
, var14
);
4243 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var12
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
4248 /* <var_mtype:nullable MType(MType)> isa MNullableType */
4249 cltype17
= type_nit__MNullableType
.color
;
4250 idtype18
= type_nit__MNullableType
.id
;
4251 if(cltype17
>= var_mtype
->type
->table_size
) {
4254 var16
= var_mtype
->type
->type_table
[cltype17
] == idtype18
;
4258 { /* Inline model#MNullableType#mtype (var_mtype) on <var_mtype:nullable MType(MNullableType)> */
4259 var21
= var_mtype
->attrs
[COLOR_nit__model__MNullableType___mtype
].val
; /* _mtype on <var_mtype:nullable MType(MNullableType)> */
4260 if (unlikely(var21
== NULL
)) {
4261 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4262 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1506);
4266 RET_LABEL20
:(void)0;
4270 { /* Inline typing#AExpr#mtype= (self,var19) on <self:AAsNotnullExpr> */
4271 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var19
; /* _mtype on <self:AAsNotnullExpr> */
4272 RET_LABEL22
:(void)0;
4279 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AAsNotnullExpr> */
4280 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var_mtype
; /* _mtype on <self:AAsNotnullExpr> */
4281 RET_LABEL23
:(void)0;
4284 /* <var_mtype:nullable MType(MType)> isa MClassType */
4285 cltype25
= type_nit__MClassType
.color
;
4286 idtype26
= type_nit__MClassType
.id
;
4287 if(cltype25
>= var_mtype
->type
->table_size
) {
4290 var24
= var_mtype
->type
->type_table
[cltype25
] == idtype26
;
4294 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
4295 var29
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
4296 if (unlikely(var29
== NULL
)) {
4297 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4298 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
4302 RET_LABEL28
:(void)0;
4308 var32
= "useless-type-test";
4310 var34
= standard___standard__NativeString___to_s_with_length(var32
, var33
);
4317 var37
= "Warning: expression is already not null, since it is a `";
4319 var39
= standard___standard__NativeString___to_s_with_length(var37
, var38
);
4328 var44
= standard___standard__NativeString___to_s_with_length(var42
, var43
);
4332 var45
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4333 { /* var45 = array_instance Array[Object] */
4335 var47
= NEW_standard__NativeArray(var46
, &type_standard__NativeArray__standard__Object
);
4336 ((struct instance_standard__NativeArray
*)var47
)->values
[0] = (val
*) var36
;
4337 ((struct instance_standard__NativeArray
*)var47
)->values
[1] = (val
*) var_mtype
;
4338 ((struct instance_standard__NativeArray
*)var47
)->values
[2] = (val
*) var41
;
4340 ((void (*)(val
* self
, val
* p0
, long p1
))(var45
->class->vft
[COLOR_standard__array__Array__with_native
]))(var45
, var47
, var46
) /* with_native on <var45:Array[Object]>*/;
4344 var48
= ((val
* (*)(val
* self
))(var45
->class->vft
[COLOR_standard__string__Object__to_s
]))(var45
) /* to_s on <var45:Array[Object]>*/;
4347 nit___nit__ModelBuilder___warning(var27
, self
, var31
, var48
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var27:ModelBuilder>*/
4353 var49
= ((short int (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:nullable MType(MType)>*/;
4355 if (unlikely(!var49
)) {
4356 PRINT_ERROR("Runtime error: %s", "Assert failed");
4357 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1366);
4361 var50
= nit__typing___nit__typing__TypeVisitor___anchor_to(var_v
, var_mtype
);
4364 /* <var_u:MType> isa MNullableType */
4365 cltype52
= type_nit__MNullableType
.color
;
4366 idtype53
= type_nit__MNullableType
.id
;
4367 if(cltype52
>= var_u
->type
->table_size
) {
4370 var51
= var_u
->type
->type_table
[cltype52
] == idtype53
;
4375 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
4376 var57
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
4377 if (unlikely(var57
== NULL
)) {
4378 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4379 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
4383 RET_LABEL56
:(void)0;
4389 var60
= "useless-type-test";
4391 var62
= standard___standard__NativeString___to_s_with_length(var60
, var61
);
4398 var65
= "Warning: expression is already not null, since it is a `";
4400 var67
= standard___standard__NativeString___to_s_with_length(var65
, var66
);
4409 var72
= standard___standard__NativeString___to_s_with_length(var70
, var71
);
4418 var77
= standard___standard__NativeString___to_s_with_length(var75
, var76
);
4422 var78
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4423 { /* var78 = array_instance Array[Object] */
4425 var80
= NEW_standard__NativeArray(var79
, &type_standard__NativeArray__standard__Object
);
4426 ((struct instance_standard__NativeArray
*)var80
)->values
[0] = (val
*) var64
;
4427 ((struct instance_standard__NativeArray
*)var80
)->values
[1] = (val
*) var_mtype
;
4428 ((struct instance_standard__NativeArray
*)var80
)->values
[2] = (val
*) var69
;
4429 ((struct instance_standard__NativeArray
*)var80
)->values
[3] = (val
*) var_u
;
4430 ((struct instance_standard__NativeArray
*)var80
)->values
[4] = (val
*) var74
;
4432 ((void (*)(val
* self
, val
* p0
, long p1
))(var78
->class->vft
[COLOR_standard__array__Array__with_native
]))(var78
, var80
, var79
) /* with_native on <var78:Array[Object]>*/;
4436 var81
= ((val
* (*)(val
* self
))(var78
->class->vft
[COLOR_standard__string__Object__to_s
]))(var78
) /* to_s on <var78:Array[Object]>*/;
4439 nit___nit__ModelBuilder___warning(var55
, self
, var59
, var81
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var55:ModelBuilder>*/
4446 /* method typing#AParExpr#accept_typing for (self: AParExpr, TypeVisitor) */
4447 void nit__typing___AParExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
4448 val
* var_v
/* var v: TypeVisitor */;
4449 val
* var
/* : AExpr */;
4450 val
* var2
/* : AExpr */;
4451 val
* var3
/* : nullable MType */;
4454 { /* Inline parser_nodes#AParExpr#n_expr (self) on <self:AParExpr> */
4455 var2
= self
->attrs
[COLOR_nit__parser_nodes__AParExpr___n_expr
].val
; /* _n_expr on <self:AParExpr> */
4456 if (unlikely(var2
== NULL
)) {
4457 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4458 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2288);
4466 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var
);
4469 { /* Inline typing#AExpr#mtype= (self,var3) on <self:AParExpr> */
4470 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var3
; /* _mtype on <self:AParExpr> */
4476 /* method typing#AOnceExpr#accept_typing for (self: AOnceExpr, TypeVisitor) */
4477 void nit__typing___AOnceExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
4478 val
* var_v
/* var v: TypeVisitor */;
4479 val
* var
/* : AExpr */;
4480 val
* var2
/* : AExpr */;
4481 val
* var3
/* : nullable MType */;
4484 { /* Inline parser_nodes#AOnceExpr#n_expr (self) on <self:AOnceExpr> */
4485 var2
= self
->attrs
[COLOR_nit__parser_nodes__AOnceExpr___n_expr
].val
; /* _n_expr on <self:AOnceExpr> */
4486 if (unlikely(var2
== NULL
)) {
4487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4488 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1794);
4496 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var
);
4499 { /* Inline typing#AExpr#mtype= (self,var3) on <self:AOnceExpr> */
4500 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var3
; /* _mtype on <self:AOnceExpr> */
4506 /* method typing#ASelfExpr#its_variable for (self: ASelfExpr): nullable Variable */
4507 val
* nit__typing___ASelfExpr___AExpr__its_variable(val
* self
) {
4508 val
* var
/* : nullable Variable */;
4509 val
* var1
/* : nullable Variable */;
4510 var1
= self
->attrs
[COLOR_nit__typing__ASelfExpr___its_variable
].val
; /* _its_variable on <self:ASelfExpr> */
4515 /* method typing#ASelfExpr#its_variable= for (self: ASelfExpr, nullable Variable) */
4516 void nit__typing___ASelfExpr___its_variable_61d(val
* self
, val
* p0
) {
4517 self
->attrs
[COLOR_nit__typing__ASelfExpr___its_variable
].val
= p0
; /* _its_variable on <self:ASelfExpr> */
4520 /* method typing#ASelfExpr#accept_typing for (self: ASelfExpr, TypeVisitor) */
4521 void nit__typing___ASelfExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
4522 val
* var_v
/* var v: TypeVisitor */;
4523 short int var
/* : Bool */;
4524 short int var1
/* : Bool */;
4525 short int var3
/* : Bool */;
4526 short int var_
/* var : Bool */;
4527 short int var4
/* : Bool */;
4530 short int var5
/* : Bool */;
4531 static val
* varonce
;
4532 val
* var6
/* : String */;
4533 char* var7
/* : NativeString */;
4534 long var8
/* : Int */;
4535 val
* var9
/* : FlatString */;
4536 val
* var10
/* : Variable */;
4537 val
* var12
/* : Variable */;
4538 val
* var_variable
/* var variable: Variable */;
4539 val
* var14
/* : nullable MType */;
4542 { /* Inline typing#TypeVisitor#is_toplevel_context (var_v) on <var_v:TypeVisitor> */
4543 var3
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___is_toplevel_context
].s
; /* _is_toplevel_context on <var_v:TypeVisitor> */
4550 /* <self:ASelfExpr> isa AImplicitSelfExpr */
4551 cltype
= type_nit__AImplicitSelfExpr
.color
;
4552 idtype
= type_nit__AImplicitSelfExpr
.id
;
4553 if(cltype
>= self
->type
->table_size
) {
4556 var4
= self
->type
->type_table
[cltype
] == idtype
;
4567 var7
= "Error: self cannot be used in top-level method.";
4569 var9
= standard___standard__NativeString___to_s_with_length(var7
, var8
);
4574 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var6
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
4579 { /* Inline typing#TypeVisitor#selfvariable (var_v) on <var_v:TypeVisitor> */
4580 var12
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___selfvariable
].val
; /* _selfvariable on <var_v:TypeVisitor> */
4581 if (unlikely(var12
== NULL
)) {
4582 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
4583 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 50);
4587 RET_LABEL11
:(void)0;
4590 var_variable
= var10
;
4592 { /* Inline typing#ASelfExpr#its_variable= (self,var_variable) on <self:ASelfExpr> */
4593 self
->attrs
[COLOR_nit__typing__ASelfExpr___its_variable
].val
= var_variable
; /* _its_variable on <self:ASelfExpr> */
4594 RET_LABEL13
:(void)0;
4598 var14
= nit__typing___nit__typing__TypeVisitor___get_variable(var_v
, self
, var_variable
);
4601 { /* Inline typing#AExpr#mtype= (self,var14) on <self:ASelfExpr> */
4602 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var14
; /* _mtype on <self:ASelfExpr> */
4603 RET_LABEL15
:(void)0;
4608 /* method typing#ASendExpr#callsite for (self: ASendExpr): nullable CallSite */
4609 val
* nit__typing___ASendExpr___callsite(val
* self
) {
4610 val
* var
/* : nullable CallSite */;
4611 val
* var1
/* : nullable CallSite */;
4612 var1
= self
->attrs
[COLOR_nit__typing__ASendExpr___callsite
].val
; /* _callsite on <self:ASendExpr> */
4617 /* method typing#ASendExpr#callsite= for (self: ASendExpr, nullable CallSite) */
4618 void nit__typing___ASendExpr___callsite_61d(val
* self
, val
* p0
) {
4619 self
->attrs
[COLOR_nit__typing__ASendExpr___callsite
].val
= p0
; /* _callsite on <self:ASendExpr> */
4622 /* method typing#ASendExpr#accept_typing for (self: ASendExpr, TypeVisitor) */
4623 void nit__typing___ASendExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
4624 val
* var_v
/* var v: TypeVisitor */;
4625 val
* var
/* : AExpr */;
4626 val
* var2
/* : AExpr */;
4627 val
* var3
/* : nullable MType */;
4628 val
* var_recvtype
/* var recvtype: nullable MType */;
4629 val
* var4
/* : String */;
4630 val
* var_name
/* var name: String */;
4631 val
* var5
/* : null */;
4632 short int var6
/* : Bool */;
4633 short int var7
/* : Bool */;
4634 val
* var_other
/* var other: nullable Object */;
4635 short int var9
/* : Bool */;
4636 short int var11
/* : Bool */;
4637 val
* var12
/* : AExpr */;
4638 val
* var14
/* : AExpr */;
4639 short int var15
/* : Bool */;
4642 val
* var16
/* : nullable CallSite */;
4643 val
* var_callsite
/* var callsite: nullable CallSite */;
4644 val
* var17
/* : null */;
4645 short int var18
/* : Bool */;
4646 short int var19
/* : Bool */;
4647 short int var21
/* : Bool */;
4648 short int var23
/* : Bool */;
4649 val
* var25
/* : MSignature */;
4650 val
* var27
/* : MSignature */;
4651 val
* var_msignature
/* var msignature: MSignature */;
4652 val
* var28
/* : Array[AExpr] */;
4653 val
* var_args
/* var args: Array[AExpr] */;
4654 short int var29
/* : Bool */;
4655 val
* var30
/* : MMethod */;
4656 val
* var32
/* : MMethod */;
4657 short int var33
/* : Bool */;
4658 short int var35
/* : Bool */;
4659 val
* var36
/* : nullable MPropDef */;
4660 val
* var38
/* : nullable MPropDef */;
4661 val
* var_vmpropdef
/* var vmpropdef: nullable MPropDef */;
4662 short int var39
/* : Bool */;
4663 short int var40
/* : Bool */;
4666 short int var_
/* var : Bool */;
4667 val
* var43
/* : MProperty */;
4668 val
* var45
/* : MProperty */;
4669 short int var46
/* : Bool */;
4670 short int var48
/* : Bool */;
4671 short int var49
/* : Bool */;
4672 static val
* varonce
;
4673 val
* var50
/* : String */;
4674 char* var51
/* : NativeString */;
4675 long var52
/* : Int */;
4676 val
* var53
/* : FlatString */;
4677 short int var54
/* : Bool */;
4678 short int var55
/* : Bool */;
4679 short int var56
/* : Bool */;
4682 short int var_59
/* var : Bool */;
4683 val
* var60
/* : MProperty */;
4684 val
* var62
/* : MProperty */;
4685 short int var63
/* : Bool */;
4686 short int var65
/* : Bool */;
4687 short int var_66
/* var : Bool */;
4688 val
* var67
/* : MMethod */;
4689 val
* var69
/* : MMethod */;
4690 short int var70
/* : Bool */;
4691 short int var72
/* : Bool */;
4692 short int var73
/* : Bool */;
4693 static val
* varonce74
;
4694 val
* var75
/* : String */;
4695 char* var76
/* : NativeString */;
4696 long var77
/* : Int */;
4697 val
* var78
/* : FlatString */;
4698 static val
* varonce79
;
4699 val
* var80
/* : String */;
4700 char* var81
/* : NativeString */;
4701 long var82
/* : Int */;
4702 val
* var83
/* : FlatString */;
4703 val
* var84
/* : MMethod */;
4704 val
* var86
/* : MMethod */;
4705 val
* var87
/* : Array[Object] */;
4706 long var88
/* : Int */;
4707 val
* var89
/* : NativeArray[Object] */;
4708 val
* var90
/* : String */;
4709 val
* var91
/* : nullable MType */;
4710 val
* var93
/* : nullable MType */;
4711 val
* var_ret
/* var ret: nullable MType */;
4712 val
* var94
/* : null */;
4713 short int var95
/* : Bool */;
4714 short int var96
/* : Bool */;
4715 val
* var_other98
/* var other: nullable Object */;
4716 short int var99
/* : Bool */;
4717 short int var100
/* : Bool */;
4718 short int var102
/* : Bool */;
4721 { /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:ASendExpr> */
4722 var2
= self
->attrs
[COLOR_nit__parser_nodes__ASendExpr___n_expr
].val
; /* _n_expr on <self:ASendExpr> */
4723 if (unlikely(var2
== NULL
)) {
4724 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4725 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1802);
4733 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var
);
4735 var_recvtype
= var3
;
4737 var4
= ((val
* (*)(val
* self
))(self
->class->vft
[COLOR_nit__typing__ASendExpr__property_name
]))(self
) /* property_name on <self:ASendExpr>*/;
4741 if (var_recvtype
== NULL
) {
4742 var6
= 1; /* is null */
4744 var6
= 0; /* arg is null but recv is not */
4747 { /* Inline kernel#Object#== (var_recvtype,var5) on <var_recvtype:nullable MType> */
4750 { /* Inline kernel#Object#is_same_instance (var_recvtype,var_other) on <var_recvtype:nullable MType(MType)> */
4751 var11
= var_recvtype
== var_other
;
4754 RET_LABEL10
:(void)0;
4768 { /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:ASendExpr> */
4769 var14
= self
->attrs
[COLOR_nit__parser_nodes__ASendExpr___n_expr
].val
; /* _n_expr on <self:ASendExpr> */
4770 if (unlikely(var14
== NULL
)) {
4771 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4772 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1802);
4776 RET_LABEL13
:(void)0;
4779 /* <var12:AExpr> isa ASelfExpr */
4780 cltype
= type_nit__ASelfExpr
.color
;
4781 idtype
= type_nit__ASelfExpr
.id
;
4782 if(cltype
>= var12
->type
->table_size
) {
4785 var15
= var12
->type
->type_table
[cltype
] == idtype
;
4788 var16
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_recvtype
, var_name
, var15
);
4790 var_callsite
= var16
;
4792 if (var_callsite
== NULL
) {
4793 var18
= 1; /* is null */
4795 var18
= 0; /* arg is null but recv is not */
4798 { /* Inline kernel#Object#== (var_callsite,var17) on <var_callsite:nullable CallSite> */
4801 { /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
4802 var23
= var_callsite
== var_other
;
4805 RET_LABEL22
:(void)0;
4810 RET_LABEL20
:(void)0;
4819 { /* Inline typing#ASendExpr#callsite= (self,var_callsite) on <self:ASendExpr> */
4820 self
->attrs
[COLOR_nit__typing__ASendExpr___callsite
].val
= var_callsite
; /* _callsite on <self:ASendExpr> */
4821 RET_LABEL24
:(void)0;
4825 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
4826 var27
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
; /* _msignature on <var_callsite:nullable CallSite(CallSite)> */
4827 if (unlikely(var27
== NULL
)) {
4828 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
4829 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 494);
4833 RET_LABEL26
:(void)0;
4836 var_msignature
= var25
;
4838 var28
= ((val
* (*)(val
* self
))(self
->class->vft
[COLOR_nit__typing__ASendExpr__compute_raw_arguments
]))(self
) /* compute_raw_arguments on <self:ASendExpr>*/;
4842 var29
= nit___nit__CallSite___check_signature(var_callsite
, var_v
, var_args
);
4845 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
4846 var32
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
4847 if (unlikely(var32
== NULL
)) {
4848 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4849 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 487);
4853 RET_LABEL31
:(void)0;
4857 { /* Inline model#MMethod#is_init (var30) on <var30:MMethod> */
4858 var35
= var30
->attrs
[COLOR_nit__model__MMethod___is_init
].s
; /* _is_init on <var30:MMethod> */
4860 RET_LABEL34
:(void)0;
4865 { /* Inline typing#TypeVisitor#mpropdef (var_v) on <var_v:TypeVisitor> */
4866 var38
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <var_v:TypeVisitor> */
4868 RET_LABEL37
:(void)0;
4871 var_vmpropdef
= var36
;
4872 /* <var_vmpropdef:nullable MPropDef> isa MMethodDef */
4873 cltype41
= type_nit__MMethodDef
.color
;
4874 idtype42
= type_nit__MMethodDef
.id
;
4875 if(var_vmpropdef
== NULL
) {
4878 if(cltype41
>= var_vmpropdef
->type
->table_size
) {
4881 var40
= var_vmpropdef
->type
->type_table
[cltype41
] == idtype42
;
4887 { /* Inline model#MPropDef#mproperty (var_vmpropdef) on <var_vmpropdef:nullable MPropDef(MMethodDef)> */
4888 var45
= var_vmpropdef
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_vmpropdef:nullable MPropDef(MMethodDef)> */
4889 if (unlikely(var45
== NULL
)) {
4890 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4891 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
4895 RET_LABEL44
:(void)0;
4899 { /* Inline model#MMethod#is_init (var43) on <var43:MProperty(MMethod)> */
4900 var48
= var43
->attrs
[COLOR_nit__model__MMethod___is_init
].s
; /* _is_init on <var43:MProperty(MMethod)> */
4902 RET_LABEL47
:(void)0;
4914 var51
= "Can call a init only in another init";
4916 var53
= standard___standard__NativeString___to_s_with_length(var51
, var52
);
4921 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var50
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
4925 /* <var_vmpropdef:nullable MPropDef> isa MMethodDef */
4926 cltype57
= type_nit__MMethodDef
.color
;
4927 idtype58
= type_nit__MMethodDef
.id
;
4928 if(var_vmpropdef
== NULL
) {
4931 if(cltype57
>= var_vmpropdef
->type
->table_size
) {
4934 var56
= var_vmpropdef
->type
->type_table
[cltype57
] == idtype58
;
4940 { /* Inline model#MPropDef#mproperty (var_vmpropdef) on <var_vmpropdef:nullable MPropDef(MMethodDef)> */
4941 var62
= var_vmpropdef
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_vmpropdef:nullable MPropDef(MMethodDef)> */
4942 if (unlikely(var62
== NULL
)) {
4943 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4944 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
4948 RET_LABEL61
:(void)0;
4952 { /* Inline model#MMethod#is_root_init (var60) on <var60:MProperty(MMethod)> */
4953 var65
= var60
->attrs
[COLOR_nit__model__MMethod___is_root_init
].s
; /* _is_root_init on <var60:MProperty(MMethod)> */
4955 RET_LABEL64
:(void)0;
4965 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
4966 var69
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
4967 if (unlikely(var69
== NULL
)) {
4968 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4969 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 487);
4973 RET_LABEL68
:(void)0;
4977 { /* Inline model#MMethod#is_root_init (var67) on <var67:MMethod> */
4978 var72
= var67
->attrs
[COLOR_nit__model__MMethod___is_root_init
].s
; /* _is_root_init on <var67:MMethod> */
4980 RET_LABEL71
:(void)0;
4994 var78
= standard___standard__NativeString___to_s_with_length(var76
, var77
);
5001 var81
= " cannot call a factory ";
5003 var83
= standard___standard__NativeString___to_s_with_length(var81
, var82
);
5008 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5009 var86
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
5010 if (unlikely(var86
== NULL
)) {
5011 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5012 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 487);
5016 RET_LABEL85
:(void)0;
5019 var87
= NEW_standard__Array(&type_standard__Array__standard__Object
);
5020 { /* var87 = array_instance Array[Object] */
5022 var89
= NEW_standard__NativeArray(var88
, &type_standard__NativeArray__standard__Object
);
5023 ((struct instance_standard__NativeArray
*)var89
)->values
[0] = (val
*) var75
;
5024 ((struct instance_standard__NativeArray
*)var89
)->values
[1] = (val
*) var_vmpropdef
;
5025 ((struct instance_standard__NativeArray
*)var89
)->values
[2] = (val
*) var80
;
5026 ((struct instance_standard__NativeArray
*)var89
)->values
[3] = (val
*) var84
;
5028 ((void (*)(val
* self
, val
* p0
, long p1
))(var87
->class->vft
[COLOR_standard__array__Array__with_native
]))(var87
, var89
, var88
) /* with_native on <var87:Array[Object]>*/;
5032 var90
= ((val
* (*)(val
* self
))(var87
->class->vft
[COLOR_standard__string__Object__to_s
]))(var87
) /* to_s on <var87:Array[Object]>*/;
5035 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var90
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
5042 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:MSignature> */
5043 var93
= var_msignature
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:MSignature> */
5045 RET_LABEL92
:(void)0;
5050 if (var_ret
== NULL
) {
5051 var95
= 0; /* is null */
5053 var95
= 1; /* arg is null and recv is not */
5056 { /* Inline kernel#Object#!= (var_ret,var94) on <var_ret:nullable MType> */
5057 var_other98
= var94
;
5059 var99
= ((short int (*)(val
* self
, val
* p0
))(var_ret
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_ret
, var_other98
) /* == on <var_ret:nullable MType(MType)>*/;
5064 RET_LABEL97
:(void)0;
5070 { /* Inline typing#AExpr#mtype= (self,var_ret) on <self:ASendExpr> */
5071 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var_ret
; /* _mtype on <self:ASendExpr> */
5072 RET_LABEL101
:(void)0;
5078 { /* Inline typing#AExpr#is_typed= (self,var102) on <self:ASendExpr> */
5079 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var102
; /* _is_typed on <self:ASendExpr> */
5080 RET_LABEL103
:(void)0;
5086 /* method typing#ASendExpr#raw_arguments for (self: ASendExpr): Array[AExpr] */
5087 val
* nit__typing___ASendExpr___raw_arguments(val
* self
) {
5088 val
* var
/* : Array[AExpr] */;
5089 val
* var1
/* : Array[AExpr] */;
5091 var1
= ((val
* (*)(val
* self
))(self
->class->vft
[COLOR_nit__typing__ASendExpr__compute_raw_arguments
]))(self
) /* compute_raw_arguments on <self:ASendExpr>*/;
5098 /* method typing#ABinopExpr#compute_raw_arguments for (self: ABinopExpr): Array[AExpr] */
5099 val
* nit__typing___ABinopExpr___ASendExpr__compute_raw_arguments(val
* self
) {
5100 val
* var
/* : Array[AExpr] */;
5101 val
* var1
/* : Array[AExpr] */;
5102 long var2
/* : Int */;
5103 val
* var_
/* var : Array[AExpr] */;
5104 val
* var3
/* : AExpr */;
5105 val
* var5
/* : AExpr */;
5106 var1
= NEW_standard__Array(&type_standard__Array__nit__AExpr
);
5109 standard___standard__Array___with_capacity(var1
, var2
); /* Direct call array#Array#with_capacity on <var1:Array[AExpr]>*/
5113 { /* Inline parser_nodes#ABinopExpr#n_expr2 (self) on <self:ABinopExpr> */
5114 var5
= self
->attrs
[COLOR_nit__parser_nodes__ABinopExpr___n_expr2
].val
; /* _n_expr2 on <self:ABinopExpr> */
5115 if (unlikely(var5
== NULL
)) {
5116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5117 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1809);
5125 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var3
); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
5132 /* method typing#AEqExpr#property_name for (self: AEqExpr): String */
5133 val
* nit__typing___AEqExpr___ASendExpr__property_name(val
* self
) {
5134 val
* var
/* : String */;
5135 static val
* varonce
;
5136 val
* var1
/* : String */;
5137 char* var2
/* : NativeString */;
5138 long var3
/* : Int */;
5139 val
* var4
/* : FlatString */;
5145 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5154 /* method typing#AEqExpr#accept_typing for (self: AEqExpr, TypeVisitor) */
5155 void nit__typing___AEqExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
5156 val
* var_v
/* var v: TypeVisitor */;
5159 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__typing___AEqExpr___AExpr__accept_typing
]))(self
, p0
) /* accept_typing on <self:AEqExpr>*/;
5162 nit__typing___nit__typing__TypeVisitor___null_test(var_v
, self
); /* Direct call typing#TypeVisitor#null_test on <var_v:TypeVisitor>*/
5166 /* method typing#ANeExpr#property_name for (self: ANeExpr): String */
5167 val
* nit__typing___ANeExpr___ASendExpr__property_name(val
* self
) {
5168 val
* var
/* : String */;
5169 static val
* varonce
;
5170 val
* var1
/* : String */;
5171 char* var2
/* : NativeString */;
5172 long var3
/* : Int */;
5173 val
* var4
/* : FlatString */;
5179 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5188 /* method typing#ANeExpr#accept_typing for (self: ANeExpr, TypeVisitor) */
5189 void nit__typing___ANeExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
5190 val
* var_v
/* var v: TypeVisitor */;
5193 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__typing___ANeExpr___AExpr__accept_typing
]))(self
, p0
) /* accept_typing on <self:ANeExpr>*/;
5196 nit__typing___nit__typing__TypeVisitor___null_test(var_v
, self
); /* Direct call typing#TypeVisitor#null_test on <var_v:TypeVisitor>*/
5200 /* method typing#ALtExpr#property_name for (self: ALtExpr): String */
5201 val
* nit__typing___ALtExpr___ASendExpr__property_name(val
* self
) {
5202 val
* var
/* : String */;
5203 static val
* varonce
;
5204 val
* var1
/* : String */;
5205 char* var2
/* : NativeString */;
5206 long var3
/* : Int */;
5207 val
* var4
/* : FlatString */;
5213 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5222 /* method typing#ALeExpr#property_name for (self: ALeExpr): String */
5223 val
* nit__typing___ALeExpr___ASendExpr__property_name(val
* self
) {
5224 val
* var
/* : String */;
5225 static val
* varonce
;
5226 val
* var1
/* : String */;
5227 char* var2
/* : NativeString */;
5228 long var3
/* : Int */;
5229 val
* var4
/* : FlatString */;
5235 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5244 /* method typing#ALlExpr#property_name for (self: ALlExpr): String */
5245 val
* nit__typing___ALlExpr___ASendExpr__property_name(val
* self
) {
5246 val
* var
/* : String */;
5247 static val
* varonce
;
5248 val
* var1
/* : String */;
5249 char* var2
/* : NativeString */;
5250 long var3
/* : Int */;
5251 val
* var4
/* : FlatString */;
5257 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5266 /* method typing#AGtExpr#property_name for (self: AGtExpr): String */
5267 val
* nit__typing___AGtExpr___ASendExpr__property_name(val
* self
) {
5268 val
* var
/* : String */;
5269 static val
* varonce
;
5270 val
* var1
/* : String */;
5271 char* var2
/* : NativeString */;
5272 long var3
/* : Int */;
5273 val
* var4
/* : FlatString */;
5279 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5288 /* method typing#AGeExpr#property_name for (self: AGeExpr): String */
5289 val
* nit__typing___AGeExpr___ASendExpr__property_name(val
* self
) {
5290 val
* var
/* : String */;
5291 static val
* varonce
;
5292 val
* var1
/* : String */;
5293 char* var2
/* : NativeString */;
5294 long var3
/* : Int */;
5295 val
* var4
/* : FlatString */;
5301 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5310 /* method typing#AGgExpr#property_name for (self: AGgExpr): String */
5311 val
* nit__typing___AGgExpr___ASendExpr__property_name(val
* self
) {
5312 val
* var
/* : String */;
5313 static val
* varonce
;
5314 val
* var1
/* : String */;
5315 char* var2
/* : NativeString */;
5316 long var3
/* : Int */;
5317 val
* var4
/* : FlatString */;
5323 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5332 /* method typing#APlusExpr#property_name for (self: APlusExpr): String */
5333 val
* nit__typing___APlusExpr___ASendExpr__property_name(val
* self
) {
5334 val
* var
/* : String */;
5335 static val
* varonce
;
5336 val
* var1
/* : String */;
5337 char* var2
/* : NativeString */;
5338 long var3
/* : Int */;
5339 val
* var4
/* : FlatString */;
5345 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5354 /* method typing#AMinusExpr#property_name for (self: AMinusExpr): String */
5355 val
* nit__typing___AMinusExpr___ASendExpr__property_name(val
* self
) {
5356 val
* var
/* : String */;
5357 static val
* varonce
;
5358 val
* var1
/* : String */;
5359 char* var2
/* : NativeString */;
5360 long var3
/* : Int */;
5361 val
* var4
/* : FlatString */;
5367 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5376 /* method typing#AStarshipExpr#property_name for (self: AStarshipExpr): String */
5377 val
* nit__typing___AStarshipExpr___ASendExpr__property_name(val
* self
) {
5378 val
* var
/* : String */;
5379 static val
* varonce
;
5380 val
* var1
/* : String */;
5381 char* var2
/* : NativeString */;
5382 long var3
/* : Int */;
5383 val
* var4
/* : FlatString */;
5389 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5398 /* method typing#AStarExpr#property_name for (self: AStarExpr): String */
5399 val
* nit__typing___AStarExpr___ASendExpr__property_name(val
* self
) {
5400 val
* var
/* : String */;
5401 static val
* varonce
;
5402 val
* var1
/* : String */;
5403 char* var2
/* : NativeString */;
5404 long var3
/* : Int */;
5405 val
* var4
/* : FlatString */;
5411 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5420 /* method typing#AStarstarExpr#property_name for (self: AStarstarExpr): String */
5421 val
* nit__typing___AStarstarExpr___ASendExpr__property_name(val
* self
) {
5422 val
* var
/* : String */;
5423 static val
* varonce
;
5424 val
* var1
/* : String */;
5425 char* var2
/* : NativeString */;
5426 long var3
/* : Int */;
5427 val
* var4
/* : FlatString */;
5433 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5442 /* method typing#ASlashExpr#property_name for (self: ASlashExpr): String */
5443 val
* nit__typing___ASlashExpr___ASendExpr__property_name(val
* self
) {
5444 val
* var
/* : String */;
5445 static val
* varonce
;
5446 val
* var1
/* : String */;
5447 char* var2
/* : NativeString */;
5448 long var3
/* : Int */;
5449 val
* var4
/* : FlatString */;
5455 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5464 /* method typing#APercentExpr#property_name for (self: APercentExpr): String */
5465 val
* nit__typing___APercentExpr___ASendExpr__property_name(val
* self
) {
5466 val
* var
/* : String */;
5467 static val
* varonce
;
5468 val
* var1
/* : String */;
5469 char* var2
/* : NativeString */;
5470 long var3
/* : Int */;
5471 val
* var4
/* : FlatString */;
5477 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5486 /* method typing#AUminusExpr#property_name for (self: AUminusExpr): String */
5487 val
* nit__typing___AUminusExpr___ASendExpr__property_name(val
* self
) {
5488 val
* var
/* : String */;
5489 static val
* varonce
;
5490 val
* var1
/* : String */;
5491 char* var2
/* : NativeString */;
5492 long var3
/* : Int */;
5493 val
* var4
/* : FlatString */;
5499 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5508 /* method typing#AUminusExpr#compute_raw_arguments for (self: AUminusExpr): Array[AExpr] */
5509 val
* nit__typing___AUminusExpr___ASendExpr__compute_raw_arguments(val
* self
) {
5510 val
* var
/* : Array[AExpr] */;
5511 val
* var1
/* : Array[AExpr] */;
5512 var1
= NEW_standard__Array(&type_standard__Array__nit__AExpr
);
5514 standard___standard__Array___standard__kernel__Object__init(var1
); /* Direct call array#Array#init on <var1:Array[AExpr]>*/
5521 /* method typing#ACallExpr#property_name for (self: ACallExpr): String */
5522 val
* nit__typing___ACallExpr___ASendExpr__property_name(val
* self
) {
5523 val
* var
/* : String */;
5524 val
* var1
/* : TId */;
5525 val
* var3
/* : TId */;
5526 val
* var4
/* : String */;
5528 { /* Inline parser_nodes#ACallFormExpr#n_id (self) on <self:ACallExpr> */
5529 var3
= self
->attrs
[COLOR_nit__parser_nodes__ACallFormExpr___n_id
].val
; /* _n_id on <self:ACallExpr> */
5530 if (unlikely(var3
== NULL
)) {
5531 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
5532 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1999);
5540 var4
= nit__lexer_work___Token___text(var1
);
5547 /* method typing#ACallExpr#compute_raw_arguments for (self: ACallExpr): Array[AExpr] */
5548 val
* nit__typing___ACallExpr___ASendExpr__compute_raw_arguments(val
* self
) {
5549 val
* var
/* : Array[AExpr] */;
5550 val
* var1
/* : AExprs */;
5551 val
* var3
/* : AExprs */;
5552 val
* var4
/* : Array[AExpr] */;
5554 { /* Inline parser_nodes#ACallFormExpr#n_args (self) on <self:ACallExpr> */
5555 var3
= self
->attrs
[COLOR_nit__parser_nodes__ACallFormExpr___n_args
].val
; /* _n_args on <self:ACallExpr> */
5556 if (unlikely(var3
== NULL
)) {
5557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
5558 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2002);
5566 var4
= nit__typing___AExprs___to_a(var1
);
5573 /* method typing#ACallAssignExpr#property_name for (self: ACallAssignExpr): String */
5574 val
* nit__typing___ACallAssignExpr___ASendExpr__property_name(val
* self
) {
5575 val
* var
/* : String */;
5576 val
* var1
/* : TId */;
5577 val
* var3
/* : TId */;
5578 val
* var4
/* : String */;
5579 static val
* varonce
;
5580 val
* var5
/* : String */;
5581 char* var6
/* : NativeString */;
5582 long var7
/* : Int */;
5583 val
* var8
/* : FlatString */;
5584 val
* var9
/* : String */;
5586 { /* Inline parser_nodes#ACallFormExpr#n_id (self) on <self:ACallAssignExpr> */
5587 var3
= self
->attrs
[COLOR_nit__parser_nodes__ACallFormExpr___n_id
].val
; /* _n_id on <self:ACallAssignExpr> */
5588 if (unlikely(var3
== NULL
)) {
5589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
5590 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1999);
5598 var4
= nit__lexer_work___Token___text(var1
);
5605 var8
= standard___standard__NativeString___to_s_with_length(var6
, var7
);
5610 var9
= ((val
* (*)(val
* self
, val
* p0
))(var4
->class->vft
[COLOR_standard__string__String___43d
]))(var4
, var5
) /* + on <var4:String>*/;
5617 /* method typing#ACallAssignExpr#compute_raw_arguments for (self: ACallAssignExpr): Array[AExpr] */
5618 val
* nit__typing___ACallAssignExpr___ASendExpr__compute_raw_arguments(val
* self
) {
5619 val
* var
/* : Array[AExpr] */;
5620 val
* var1
/* : AExprs */;
5621 val
* var3
/* : AExprs */;
5622 val
* var4
/* : Array[AExpr] */;
5623 val
* var_res
/* var res: Array[AExpr] */;
5624 val
* var5
/* : AExpr */;
5625 val
* var7
/* : AExpr */;
5627 { /* Inline parser_nodes#ACallFormExpr#n_args (self) on <self:ACallAssignExpr> */
5628 var3
= self
->attrs
[COLOR_nit__parser_nodes__ACallFormExpr___n_args
].val
; /* _n_args on <self:ACallAssignExpr> */
5629 if (unlikely(var3
== NULL
)) {
5630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
5631 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2002);
5639 var4
= nit__typing___AExprs___to_a(var1
);
5643 { /* Inline parser_nodes#AAssignFormExpr#n_value (self) on <self:ACallAssignExpr> */
5644 var7
= self
->attrs
[COLOR_nit__parser_nodes__AAssignFormExpr___n_value
].val
; /* _n_value on <self:ACallAssignExpr> */
5645 if (unlikely(var7
== NULL
)) {
5646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
5647 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1772);
5655 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res
, var5
); /* Direct call array#Array#add on <var_res:Array[AExpr]>*/
5662 /* method typing#ABraExpr#property_name for (self: ABraExpr): String */
5663 val
* nit__typing___ABraExpr___ASendExpr__property_name(val
* self
) {
5664 val
* var
/* : String */;
5665 static val
* varonce
;
5666 val
* var1
/* : String */;
5667 char* var2
/* : NativeString */;
5668 long var3
/* : Int */;
5669 val
* var4
/* : FlatString */;
5675 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5684 /* method typing#ABraExpr#compute_raw_arguments for (self: ABraExpr): Array[AExpr] */
5685 val
* nit__typing___ABraExpr___ASendExpr__compute_raw_arguments(val
* self
) {
5686 val
* var
/* : Array[AExpr] */;
5687 val
* var1
/* : AExprs */;
5688 val
* var3
/* : AExprs */;
5689 val
* var4
/* : Array[AExpr] */;
5691 { /* Inline parser_nodes#ABraFormExpr#n_args (self) on <self:ABraExpr> */
5692 var3
= self
->attrs
[COLOR_nit__parser_nodes__ABraFormExpr___n_args
].val
; /* _n_args on <self:ABraExpr> */
5693 if (unlikely(var3
== NULL
)) {
5694 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
5695 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2071);
5703 var4
= nit__typing___AExprs___to_a(var1
);
5710 /* method typing#ABraAssignExpr#property_name for (self: ABraAssignExpr): String */
5711 val
* nit__typing___ABraAssignExpr___ASendExpr__property_name(val
* self
) {
5712 val
* var
/* : String */;
5713 static val
* varonce
;
5714 val
* var1
/* : String */;
5715 char* var2
/* : NativeString */;
5716 long var3
/* : Int */;
5717 val
* var4
/* : FlatString */;
5723 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
5732 /* method typing#ABraAssignExpr#compute_raw_arguments for (self: ABraAssignExpr): Array[AExpr] */
5733 val
* nit__typing___ABraAssignExpr___ASendExpr__compute_raw_arguments(val
* self
) {
5734 val
* var
/* : Array[AExpr] */;
5735 val
* var1
/* : AExprs */;
5736 val
* var3
/* : AExprs */;
5737 val
* var4
/* : Array[AExpr] */;
5738 val
* var_res
/* var res: Array[AExpr] */;
5739 val
* var5
/* : AExpr */;
5740 val
* var7
/* : AExpr */;
5742 { /* Inline parser_nodes#ABraFormExpr#n_args (self) on <self:ABraAssignExpr> */
5743 var3
= self
->attrs
[COLOR_nit__parser_nodes__ABraFormExpr___n_args
].val
; /* _n_args on <self:ABraAssignExpr> */
5744 if (unlikely(var3
== NULL
)) {
5745 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
5746 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2071);
5754 var4
= nit__typing___AExprs___to_a(var1
);
5758 { /* Inline parser_nodes#AAssignFormExpr#n_value (self) on <self:ABraAssignExpr> */
5759 var7
= self
->attrs
[COLOR_nit__parser_nodes__AAssignFormExpr___n_value
].val
; /* _n_value on <self:ABraAssignExpr> */
5760 if (unlikely(var7
== NULL
)) {
5761 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
5762 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1772);
5770 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res
, var5
); /* Direct call array#Array#add on <var_res:Array[AExpr]>*/
5777 /* method typing#ASendReassignFormExpr#write_callsite for (self: ASendReassignFormExpr): nullable CallSite */
5778 val
* nit__typing___ASendReassignFormExpr___write_callsite(val
* self
) {
5779 val
* var
/* : nullable CallSite */;
5780 val
* var1
/* : nullable CallSite */;
5781 var1
= self
->attrs
[COLOR_nit__typing__ASendReassignFormExpr___write_callsite
].val
; /* _write_callsite on <self:ASendReassignFormExpr> */
5786 /* method typing#ASendReassignFormExpr#write_callsite= for (self: ASendReassignFormExpr, nullable CallSite) */
5787 void nit__typing___ASendReassignFormExpr___write_callsite_61d(val
* self
, val
* p0
) {
5788 self
->attrs
[COLOR_nit__typing__ASendReassignFormExpr___write_callsite
].val
= p0
; /* _write_callsite on <self:ASendReassignFormExpr> */
5791 /* method typing#ASendReassignFormExpr#accept_typing for (self: ASendReassignFormExpr, TypeVisitor) */
5792 void nit__typing___ASendReassignFormExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
5793 val
* var_v
/* var v: TypeVisitor */;
5794 val
* var
/* : AExpr */;
5795 val
* var2
/* : AExpr */;
5796 val
* var3
/* : nullable MType */;
5797 val
* var_recvtype
/* var recvtype: nullable MType */;
5798 val
* var4
/* : String */;
5799 val
* var_name
/* var name: String */;
5800 val
* var5
/* : null */;
5801 short int var6
/* : Bool */;
5802 short int var7
/* : Bool */;
5803 val
* var_other
/* var other: nullable Object */;
5804 short int var9
/* : Bool */;
5805 short int var11
/* : Bool */;
5806 val
* var12
/* : AExpr */;
5807 val
* var14
/* : AExpr */;
5808 short int var15
/* : Bool */;
5811 short int var_for_self
/* var for_self: Bool */;
5812 val
* var16
/* : nullable CallSite */;
5813 val
* var_callsite
/* var callsite: nullable CallSite */;
5814 val
* var17
/* : null */;
5815 short int var18
/* : Bool */;
5816 short int var19
/* : Bool */;
5817 short int var21
/* : Bool */;
5818 short int var23
/* : Bool */;
5819 val
* var25
/* : Array[AExpr] */;
5820 val
* var_args
/* var args: Array[AExpr] */;
5821 short int var26
/* : Bool */;
5822 val
* var27
/* : MSignature */;
5823 val
* var29
/* : MSignature */;
5824 val
* var30
/* : nullable MType */;
5825 val
* var32
/* : nullable MType */;
5826 val
* var_readtype
/* var readtype: nullable MType */;
5827 val
* var33
/* : null */;
5828 short int var34
/* : Bool */;
5829 short int var35
/* : Bool */;
5830 short int var37
/* : Bool */;
5831 short int var39
/* : Bool */;
5832 static val
* varonce
;
5833 val
* var40
/* : String */;
5834 char* var41
/* : NativeString */;
5835 long var42
/* : Int */;
5836 val
* var43
/* : FlatString */;
5837 static val
* varonce44
;
5838 val
* var45
/* : String */;
5839 char* var46
/* : NativeString */;
5840 long var47
/* : Int */;
5841 val
* var48
/* : FlatString */;
5842 val
* var49
/* : Array[Object] */;
5843 long var50
/* : Int */;
5844 val
* var51
/* : NativeArray[Object] */;
5845 val
* var52
/* : String */;
5846 static val
* varonce53
;
5847 val
* var54
/* : String */;
5848 char* var55
/* : NativeString */;
5849 long var56
/* : Int */;
5850 val
* var57
/* : FlatString */;
5851 val
* var58
/* : String */;
5852 val
* var59
/* : AExpr */;
5853 val
* var61
/* : AExpr */;
5854 short int var62
/* : Bool */;
5857 val
* var65
/* : nullable CallSite */;
5858 val
* var_wcallsite
/* var wcallsite: nullable CallSite */;
5859 val
* var66
/* : null */;
5860 short int var67
/* : Bool */;
5861 short int var68
/* : Bool */;
5862 short int var70
/* : Bool */;
5863 short int var72
/* : Bool */;
5864 val
* var74
/* : MSignature */;
5865 val
* var76
/* : MSignature */;
5866 val
* var77
/* : Array[MParameter] */;
5867 val
* var79
/* : Array[MParameter] */;
5868 val
* var80
/* : nullable Object */;
5869 val
* var81
/* : MType */;
5870 val
* var83
/* : MType */;
5871 val
* var84
/* : nullable MType */;
5872 val
* var_wtype
/* var wtype: nullable MType */;
5873 val
* var85
/* : null */;
5874 short int var86
/* : Bool */;
5875 short int var87
/* : Bool */;
5876 short int var89
/* : Bool */;
5877 short int var91
/* : Bool */;
5878 val
* var92
/* : Array[nullable Object] */;
5879 val
* var93
/* : AExpr */;
5880 val
* var95
/* : AExpr */;
5881 short int var96
/* : Bool */;
5882 short int var97
/* : Bool */;
5885 { /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:ASendReassignFormExpr> */
5886 var2
= self
->attrs
[COLOR_nit__parser_nodes__ASendExpr___n_expr
].val
; /* _n_expr on <self:ASendReassignFormExpr> */
5887 if (unlikely(var2
== NULL
)) {
5888 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5889 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1802);
5897 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var
);
5899 var_recvtype
= var3
;
5901 var4
= ((val
* (*)(val
* self
))(self
->class->vft
[COLOR_nit__typing__ASendExpr__property_name
]))(self
) /* property_name on <self:ASendReassignFormExpr>*/;
5905 if (var_recvtype
== NULL
) {
5906 var6
= 1; /* is null */
5908 var6
= 0; /* arg is null but recv is not */
5911 { /* Inline kernel#Object#== (var_recvtype,var5) on <var_recvtype:nullable MType> */
5914 { /* Inline kernel#Object#is_same_instance (var_recvtype,var_other) on <var_recvtype:nullable MType(MType)> */
5915 var11
= var_recvtype
== var_other
;
5918 RET_LABEL10
:(void)0;
5932 { /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:ASendReassignFormExpr> */
5933 var14
= self
->attrs
[COLOR_nit__parser_nodes__ASendExpr___n_expr
].val
; /* _n_expr on <self:ASendReassignFormExpr> */
5934 if (unlikely(var14
== NULL
)) {
5935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5936 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1802);
5940 RET_LABEL13
:(void)0;
5943 /* <var12:AExpr> isa ASelfExpr */
5944 cltype
= type_nit__ASelfExpr
.color
;
5945 idtype
= type_nit__ASelfExpr
.id
;
5946 if(cltype
>= var12
->type
->table_size
) {
5949 var15
= var12
->type
->type_table
[cltype
] == idtype
;
5951 var_for_self
= var15
;
5953 var16
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_recvtype
, var_name
, var_for_self
);
5955 var_callsite
= var16
;
5957 if (var_callsite
== NULL
) {
5958 var18
= 1; /* is null */
5960 var18
= 0; /* arg is null but recv is not */
5963 { /* Inline kernel#Object#== (var_callsite,var17) on <var_callsite:nullable CallSite> */
5966 { /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
5967 var23
= var_callsite
== var_other
;
5970 RET_LABEL22
:(void)0;
5975 RET_LABEL20
:(void)0;
5984 { /* Inline typing#ASendExpr#callsite= (self,var_callsite) on <self:ASendReassignFormExpr> */
5985 self
->attrs
[COLOR_nit__typing__ASendExpr___callsite
].val
= var_callsite
; /* _callsite on <self:ASendReassignFormExpr> */
5986 RET_LABEL24
:(void)0;
5990 var25
= ((val
* (*)(val
* self
))(self
->class->vft
[COLOR_nit__typing__ASendExpr__compute_raw_arguments
]))(self
) /* compute_raw_arguments on <self:ASendReassignFormExpr>*/;
5994 var26
= nit___nit__CallSite___check_signature(var_callsite
, var_v
, var_args
);
5997 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5998 var29
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
; /* _msignature on <var_callsite:nullable CallSite(CallSite)> */
5999 if (unlikely(var29
== NULL
)) {
6000 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
6001 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 494);
6005 RET_LABEL28
:(void)0;
6009 { /* Inline model#MSignature#return_mtype (var27) on <var27:MSignature> */
6010 var32
= var27
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var27:MSignature> */
6012 RET_LABEL31
:(void)0;
6015 var_readtype
= var30
;
6017 if (var_readtype
== NULL
) {
6018 var34
= 1; /* is null */
6020 var34
= 0; /* arg is null but recv is not */
6023 { /* Inline kernel#Object#== (var_readtype,var33) on <var_readtype:nullable MType> */
6026 { /* Inline kernel#Object#is_same_instance (var_readtype,var_other) on <var_readtype:nullable MType(MType)> */
6027 var39
= var_readtype
== var_other
;
6030 RET_LABEL38
:(void)0;
6035 RET_LABEL36
:(void)0;
6045 var43
= standard___standard__NativeString___to_s_with_length(var41
, var42
);
6052 var46
= " is not a function";
6054 var48
= standard___standard__NativeString___to_s_with_length(var46
, var47
);
6058 var49
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6059 { /* var49 = array_instance Array[Object] */
6061 var51
= NEW_standard__NativeArray(var50
, &type_standard__NativeArray__standard__Object
);
6062 ((struct instance_standard__NativeArray
*)var51
)->values
[0] = (val
*) var40
;
6063 ((struct instance_standard__NativeArray
*)var51
)->values
[1] = (val
*) var_name
;
6064 ((struct instance_standard__NativeArray
*)var51
)->values
[2] = (val
*) var45
;
6066 ((void (*)(val
* self
, val
* p0
, long p1
))(var49
->class->vft
[COLOR_standard__array__Array__with_native
]))(var49
, var51
, var50
) /* with_native on <var49:Array[Object]>*/;
6070 var52
= ((val
* (*)(val
* self
))(var49
->class->vft
[COLOR_standard__string__Object__to_s
]))(var49
) /* to_s on <var49:Array[Object]>*/;
6073 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var52
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
6083 var57
= standard___standard__NativeString___to_s_with_length(var55
, var56
);
6088 var58
= ((val
* (*)(val
* self
, val
* p0
))(var_name
->class->vft
[COLOR_standard__string__String___43d
]))(var_name
, var54
) /* + on <var_name:String>*/;
6091 { /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:ASendReassignFormExpr> */
6092 var61
= self
->attrs
[COLOR_nit__parser_nodes__ASendExpr___n_expr
].val
; /* _n_expr on <self:ASendReassignFormExpr> */
6093 if (unlikely(var61
== NULL
)) {
6094 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6095 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1802);
6099 RET_LABEL60
:(void)0;
6102 /* <var59:AExpr> isa ASelfExpr */
6103 cltype63
= type_nit__ASelfExpr
.color
;
6104 idtype64
= type_nit__ASelfExpr
.id
;
6105 if(cltype63
>= var59
->type
->table_size
) {
6108 var62
= var59
->type
->type_table
[cltype63
] == idtype64
;
6111 var65
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_recvtype
, var58
, var62
);
6113 var_wcallsite
= var65
;
6115 if (var_wcallsite
== NULL
) {
6116 var67
= 1; /* is null */
6118 var67
= 0; /* arg is null but recv is not */
6121 { /* Inline kernel#Object#== (var_wcallsite,var66) on <var_wcallsite:nullable CallSite> */
6124 { /* Inline kernel#Object#is_same_instance (var_wcallsite,var_other) on <var_wcallsite:nullable CallSite(CallSite)> */
6125 var72
= var_wcallsite
== var_other
;
6128 RET_LABEL71
:(void)0;
6133 RET_LABEL69
:(void)0;
6142 { /* Inline typing#ASendReassignFormExpr#write_callsite= (self,var_wcallsite) on <self:ASendReassignFormExpr> */
6143 self
->attrs
[COLOR_nit__typing__ASendReassignFormExpr___write_callsite
].val
= var_wcallsite
; /* _write_callsite on <self:ASendReassignFormExpr> */
6144 RET_LABEL73
:(void)0;
6148 { /* Inline typing#CallSite#msignature (var_wcallsite) on <var_wcallsite:nullable CallSite(CallSite)> */
6149 var76
= var_wcallsite
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
; /* _msignature on <var_wcallsite:nullable CallSite(CallSite)> */
6150 if (unlikely(var76
== NULL
)) {
6151 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
6152 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 494);
6156 RET_LABEL75
:(void)0;
6160 { /* Inline model#MSignature#mparameters (var74) on <var74:MSignature> */
6161 var79
= var74
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var74:MSignature> */
6162 if (unlikely(var79
== NULL
)) {
6163 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6164 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1592);
6168 RET_LABEL78
:(void)0;
6172 var80
= standard___standard__SequenceRead___last(var77
);
6175 { /* Inline model#MParameter#mtype (var80) on <var80:nullable Object(MParameter)> */
6176 var83
= var80
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var80:nullable Object(MParameter)> */
6177 if (unlikely(var83
== NULL
)) {
6178 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6179 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1690);
6183 RET_LABEL82
:(void)0;
6187 var84
= nit__typing___AReassignFormExpr___resolve_reassignment(self
, var_v
, var_readtype
, var81
);
6191 if (var_wtype
== NULL
) {
6192 var86
= 1; /* is null */
6194 var86
= 0; /* arg is null but recv is not */
6197 { /* Inline kernel#Object#== (var_wtype,var85) on <var_wtype:nullable MType> */
6200 { /* Inline kernel#Object#is_same_instance (var_wtype,var_other) on <var_wtype:nullable MType(MType)> */
6201 var91
= var_wtype
== var_other
;
6204 RET_LABEL90
:(void)0;
6209 RET_LABEL88
:(void)0;
6218 var92
= standard__array___Collection___to_a(var_args
);
6222 { /* Inline parser_nodes#AReassignFormExpr#n_value (self) on <self:ASendReassignFormExpr> */
6223 var95
= self
->attrs
[COLOR_nit__parser_nodes__AReassignFormExpr___n_value
].val
; /* _n_value on <self:ASendReassignFormExpr> */
6224 if (unlikely(var95
== NULL
)) {
6225 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
6226 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1783);
6230 RET_LABEL94
:(void)0;
6234 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_args
, var93
); /* Direct call array#Array#add on <var_args:Array[AExpr]>*/
6237 var96
= nit___nit__CallSite___check_signature(var_wcallsite
, var_v
, var_args
);
6241 { /* Inline typing#AExpr#is_typed= (self,var97) on <self:ASendReassignFormExpr> */
6242 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var97
; /* _is_typed on <self:ASendReassignFormExpr> */
6243 RET_LABEL98
:(void)0;
6248 /* method typing#ACallReassignExpr#property_name for (self: ACallReassignExpr): String */
6249 val
* nit__typing___ACallReassignExpr___ASendExpr__property_name(val
* self
) {
6250 val
* var
/* : String */;
6251 val
* var1
/* : TId */;
6252 val
* var3
/* : TId */;
6253 val
* var4
/* : String */;
6255 { /* Inline parser_nodes#ACallFormExpr#n_id (self) on <self:ACallReassignExpr> */
6256 var3
= self
->attrs
[COLOR_nit__parser_nodes__ACallFormExpr___n_id
].val
; /* _n_id on <self:ACallReassignExpr> */
6257 if (unlikely(var3
== NULL
)) {
6258 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6259 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1999);
6267 var4
= nit__lexer_work___Token___text(var1
);
6274 /* method typing#ACallReassignExpr#compute_raw_arguments for (self: ACallReassignExpr): Array[AExpr] */
6275 val
* nit__typing___ACallReassignExpr___ASendExpr__compute_raw_arguments(val
* self
) {
6276 val
* var
/* : Array[AExpr] */;
6277 val
* var1
/* : AExprs */;
6278 val
* var3
/* : AExprs */;
6279 val
* var4
/* : Array[AExpr] */;
6281 { /* Inline parser_nodes#ACallFormExpr#n_args (self) on <self:ACallReassignExpr> */
6282 var3
= self
->attrs
[COLOR_nit__parser_nodes__ACallFormExpr___n_args
].val
; /* _n_args on <self:ACallReassignExpr> */
6283 if (unlikely(var3
== NULL
)) {
6284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
6285 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2002);
6293 var4
= nit__typing___AExprs___to_a(var1
);
6300 /* method typing#ABraReassignExpr#property_name for (self: ABraReassignExpr): String */
6301 val
* nit__typing___ABraReassignExpr___ASendExpr__property_name(val
* self
) {
6302 val
* var
/* : String */;
6303 static val
* varonce
;
6304 val
* var1
/* : String */;
6305 char* var2
/* : NativeString */;
6306 long var3
/* : Int */;
6307 val
* var4
/* : FlatString */;
6313 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
6322 /* method typing#ABraReassignExpr#compute_raw_arguments for (self: ABraReassignExpr): Array[AExpr] */
6323 val
* nit__typing___ABraReassignExpr___ASendExpr__compute_raw_arguments(val
* self
) {
6324 val
* var
/* : Array[AExpr] */;
6325 val
* var1
/* : AExprs */;
6326 val
* var3
/* : AExprs */;
6327 val
* var4
/* : Array[AExpr] */;
6329 { /* Inline parser_nodes#ABraFormExpr#n_args (self) on <self:ABraReassignExpr> */
6330 var3
= self
->attrs
[COLOR_nit__parser_nodes__ABraFormExpr___n_args
].val
; /* _n_args on <self:ABraReassignExpr> */
6331 if (unlikely(var3
== NULL
)) {
6332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
6333 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2071);
6341 var4
= nit__typing___AExprs___to_a(var1
);
6348 /* method typing#AInitExpr#property_name for (self: AInitExpr): String */
6349 val
* nit__typing___AInitExpr___ASendExpr__property_name(val
* self
) {
6350 val
* var
/* : String */;
6351 static val
* varonce
;
6352 val
* var1
/* : String */;
6353 char* var2
/* : NativeString */;
6354 long var3
/* : Int */;
6355 val
* var4
/* : FlatString */;
6361 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
6370 /* method typing#AInitExpr#compute_raw_arguments for (self: AInitExpr): Array[AExpr] */
6371 val
* nit__typing___AInitExpr___ASendExpr__compute_raw_arguments(val
* self
) {
6372 val
* var
/* : Array[AExpr] */;
6373 val
* var1
/* : AExprs */;
6374 val
* var3
/* : AExprs */;
6375 val
* var4
/* : Array[AExpr] */;
6377 { /* Inline parser_nodes#AInitExpr#n_args (self) on <self:AInitExpr> */
6378 var3
= self
->attrs
[COLOR_nit__parser_nodes__AInitExpr___n_args
].val
; /* _n_args on <self:AInitExpr> */
6379 if (unlikely(var3
== NULL
)) {
6380 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
6381 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2063);
6389 var4
= nit__typing___AExprs___to_a(var1
);
6396 /* method typing#AExprs#to_a for (self: AExprs): Array[AExpr] */
6397 val
* nit__typing___AExprs___to_a(val
* self
) {
6398 val
* var
/* : Array[AExpr] */;
6399 val
* var1
/* : ANodes[AExpr] */;
6400 val
* var3
/* : ANodes[AExpr] */;
6401 val
* var4
/* : Array[nullable Object] */;
6403 { /* Inline parser_nodes#AExprs#n_exprs (self) on <self:AExprs> */
6404 var3
= self
->attrs
[COLOR_nit__parser_nodes__AExprs___n_exprs
].val
; /* _n_exprs on <self:AExprs> */
6405 if (unlikely(var3
== NULL
)) {
6406 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
6407 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2408);
6415 var4
= standard__array___Collection___to_a(var1
);
6422 /* method typing#ASuperExpr#callsite for (self: ASuperExpr): nullable CallSite */
6423 val
* nit__typing___ASuperExpr___callsite(val
* self
) {
6424 val
* var
/* : nullable CallSite */;
6425 val
* var1
/* : nullable CallSite */;
6426 var1
= self
->attrs
[COLOR_nit__typing__ASuperExpr___callsite
].val
; /* _callsite on <self:ASuperExpr> */
6431 /* method typing#ASuperExpr#callsite= for (self: ASuperExpr, nullable CallSite) */
6432 void nit__typing___ASuperExpr___callsite_61d(val
* self
, val
* p0
) {
6433 self
->attrs
[COLOR_nit__typing__ASuperExpr___callsite
].val
= p0
; /* _callsite on <self:ASuperExpr> */
6436 /* method typing#ASuperExpr#mpropdef for (self: ASuperExpr): nullable MMethodDef */
6437 val
* nit__typing___ASuperExpr___mpropdef(val
* self
) {
6438 val
* var
/* : nullable MMethodDef */;
6439 val
* var1
/* : nullable MMethodDef */;
6440 var1
= self
->attrs
[COLOR_nit__typing__ASuperExpr___mpropdef
].val
; /* _mpropdef on <self:ASuperExpr> */
6445 /* method typing#ASuperExpr#mpropdef= for (self: ASuperExpr, nullable MMethodDef) */
6446 void nit__typing___ASuperExpr___mpropdef_61d(val
* self
, val
* p0
) {
6447 self
->attrs
[COLOR_nit__typing__ASuperExpr___mpropdef
].val
= p0
; /* _mpropdef on <self:ASuperExpr> */
6450 /* method typing#ASuperExpr#accept_typing for (self: ASuperExpr, TypeVisitor) */
6451 void nit__typing___ASuperExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
6452 val
* var_v
/* var v: TypeVisitor */;
6453 val
* var
/* : nullable MClassType */;
6454 val
* var2
/* : nullable MClassType */;
6455 val
* var_anchor
/* var anchor: nullable MClassType */;
6456 val
* var3
/* : null */;
6457 short int var4
/* : Bool */;
6458 short int var5
/* : Bool */;
6459 val
* var_other
/* var other: nullable Object */;
6460 short int var7
/* : Bool */;
6461 short int var8
/* : Bool */;
6462 val
* var9
/* : Variable */;
6463 val
* var11
/* : Variable */;
6464 val
* var12
/* : nullable MType */;
6465 val
* var_recvtype
/* var recvtype: nullable MType */;
6466 val
* var13
/* : null */;
6467 short int var14
/* : Bool */;
6468 short int var15
/* : Bool */;
6469 short int var17
/* : Bool */;
6470 short int var18
/* : Bool */;
6471 val
* var19
/* : nullable MPropDef */;
6472 val
* var21
/* : nullable MPropDef */;
6473 val
* var22
/* : MProperty */;
6474 val
* var24
/* : MProperty */;
6475 val
* var_mproperty
/* var mproperty: MProperty */;
6476 short int var25
/* : Bool */;
6479 short int var26
/* : Bool */;
6480 static val
* varonce
;
6481 val
* var27
/* : String */;
6482 char* var28
/* : NativeString */;
6483 long var29
/* : Int */;
6484 val
* var30
/* : FlatString */;
6485 val
* var31
/* : MModule */;
6486 val
* var33
/* : MModule */;
6487 val
* var34
/* : Array[MPropDef] */;
6488 val
* var_superprops
/* var superprops: Array[MMethodDef] */;
6489 long var35
/* : Int */;
6490 long var37
/* : Int */;
6491 long var38
/* : Int */;
6492 short int var39
/* : Bool */;
6493 short int var41
/* : Bool */;
6494 short int var42
/* : Bool */;
6495 short int var43
/* : Bool */;
6496 short int var45
/* : Bool */;
6497 short int var_
/* var : Bool */;
6498 val
* var46
/* : nullable MPropDef */;
6499 val
* var48
/* : nullable MPropDef */;
6500 short int var49
/* : Bool */;
6501 static val
* varonce50
;
6502 val
* var51
/* : String */;
6503 char* var52
/* : NativeString */;
6504 long var53
/* : Int */;
6505 val
* var54
/* : FlatString */;
6506 static val
* varonce55
;
6507 val
* var56
/* : String */;
6508 char* var57
/* : NativeString */;
6509 long var58
/* : Int */;
6510 val
* var59
/* : FlatString */;
6511 val
* var60
/* : Array[Object] */;
6512 long var61
/* : Int */;
6513 val
* var62
/* : NativeArray[Object] */;
6514 val
* var63
/* : String */;
6515 val
* var64
/* : nullable Object */;
6516 val
* var_superprop
/* var superprop: MMethodDef */;
6517 val
* var65
/* : nullable MSignature */;
6518 val
* var67
/* : nullable MSignature */;
6519 val
* var_msignature
/* var msignature: MSignature */;
6520 short int var68
/* : Bool */;
6521 val
* var69
/* : MType */;
6522 short int var70
/* : Bool */;
6525 const char* var_class_name
;
6526 val
* var73
/* : AExprs */;
6527 val
* var75
/* : AExprs */;
6528 val
* var76
/* : Array[AExpr] */;
6529 val
* var_args
/* var args: Array[AExpr] */;
6530 long var77
/* : Int */;
6531 long var79
/* : Int */;
6532 long var80
/* : Int */;
6533 short int var81
/* : Bool */;
6534 short int var83
/* : Bool */;
6537 const char* var_class_name86
;
6538 short int var87
/* : Bool */;
6539 val
* var88
/* : String */;
6540 val
* var90
/* : String */;
6541 short int var91
/* : Bool */;
6542 val
* var92
/* : nullable MType */;
6543 val
* var94
/* : nullable MType */;
6544 short int var96
/* : Bool */;
6545 val
* var98
/* : nullable MPropDef */;
6546 val
* var100
/* : nullable MPropDef */;
6547 short int var101
/* : Bool */;
6548 val
* var103
/* : nullable MPropDef */;
6549 val
* var105
/* : nullable MPropDef */;
6550 short int var106
/* : Bool */;
6553 const char* var_class_name109
;
6556 { /* Inline typing#TypeVisitor#anchor (var_v) on <var_v:TypeVisitor> */
6557 var2
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
; /* _anchor on <var_v:TypeVisitor> */
6564 if (var_anchor
== NULL
) {
6565 var4
= 0; /* is null */
6567 var4
= 1; /* arg is null and recv is not */
6570 { /* Inline kernel#Object#!= (var_anchor,var3) on <var_anchor:nullable MClassType> */
6573 var7
= ((short int (*)(val
* self
, val
* p0
))(var_anchor
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_anchor
, var_other
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
6582 if (unlikely(!var4
)) {
6583 PRINT_ERROR("Runtime error: %s", "Assert failed");
6584 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1622);
6588 { /* Inline typing#TypeVisitor#selfvariable (var_v) on <var_v:TypeVisitor> */
6589 var11
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___selfvariable
].val
; /* _selfvariable on <var_v:TypeVisitor> */
6590 if (unlikely(var11
== NULL
)) {
6591 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
6592 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 50);
6596 RET_LABEL10
:(void)0;
6600 var12
= nit__typing___nit__typing__TypeVisitor___get_variable(var_v
, self
, var9
);
6602 var_recvtype
= var12
;
6604 if (var_recvtype
== NULL
) {
6605 var14
= 0; /* is null */
6607 var14
= 1; /* arg is null and recv is not */
6610 { /* Inline kernel#Object#!= (var_recvtype,var13) on <var_recvtype:nullable MType> */
6613 var17
= ((short int (*)(val
* self
, val
* p0
))(var_recvtype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_recvtype
, var_other
) /* == on <var_recvtype:nullable MType(MType)>*/;
6618 RET_LABEL16
:(void)0;
6622 if (unlikely(!var14
)) {
6623 PRINT_ERROR("Runtime error: %s", "Assert failed");
6624 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1624);
6628 { /* Inline typing#TypeVisitor#mpropdef (var_v) on <var_v:TypeVisitor> */
6629 var21
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <var_v:TypeVisitor> */
6631 RET_LABEL20
:(void)0;
6634 if (var19
== NULL
) {
6635 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6636 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1625);
6639 { /* Inline model#MPropDef#mproperty (var19) on <var19:nullable MPropDef> */
6640 if (unlikely(var19
== NULL
)) {
6641 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6642 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
6645 var24
= var19
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var19:nullable MPropDef> */
6646 if (unlikely(var24
== NULL
)) {
6647 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6648 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
6652 RET_LABEL23
:(void)0;
6655 var_mproperty
= var22
;
6656 /* <var_mproperty:MProperty> isa MMethod */
6657 cltype
= type_nit__MMethod
.color
;
6658 idtype
= type_nit__MMethod
.id
;
6659 if(cltype
>= var_mproperty
->type
->table_size
) {
6662 var25
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
6669 var28
= "Error: super only usable in a method";
6671 var30
= standard___standard__NativeString___to_s_with_length(var28
, var29
);
6676 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var27
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
6682 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
6683 var33
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
6684 if (unlikely(var33
== NULL
)) {
6685 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6686 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
6690 RET_LABEL32
:(void)0;
6694 var34
= nit___nit__MProperty___lookup_super_definitions(var_mproperty
, var31
, var_anchor
);
6696 var_superprops
= var34
;
6698 { /* Inline array#AbstractArrayRead#length (var_superprops) on <var_superprops:Array[MMethodDef]> */
6699 var37
= var_superprops
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_superprops:Array[MMethodDef]> */
6701 RET_LABEL36
:(void)0;
6706 { /* Inline kernel#Int#== (var35,var38) on <var35:Int> */
6707 var41
= var35
== var38
;
6710 RET_LABEL40
:(void)0;
6715 { /* Inline model#MMethod#is_init (var_mproperty) on <var_mproperty:MProperty(MMethod)> */
6716 var45
= var_mproperty
->attrs
[COLOR_nit__model__MMethod___is_init
].s
; /* _is_init on <var_mproperty:MProperty(MMethod)> */
6718 RET_LABEL44
:(void)0;
6724 { /* Inline typing#TypeVisitor#mpropdef (var_v) on <var_v:TypeVisitor> */
6725 var48
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <var_v:TypeVisitor> */
6727 RET_LABEL47
:(void)0;
6730 if (var46
== NULL
) {
6731 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6732 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1632);
6735 var49
= nit___nit__MPropDef___is_intro(var46
);
6743 nit__typing___ASuperExpr___process_superinit(self
, var_v
); /* Direct call typing#ASuperExpr#process_superinit on <self:ASuperExpr>*/
6751 var52
= "Error: No super method to call for ";
6753 var54
= standard___standard__NativeString___to_s_with_length(var52
, var53
);
6762 var59
= standard___standard__NativeString___to_s_with_length(var57
, var58
);
6766 var60
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6767 { /* var60 = array_instance Array[Object] */
6769 var62
= NEW_standard__NativeArray(var61
, &type_standard__NativeArray__standard__Object
);
6770 ((struct instance_standard__NativeArray
*)var62
)->values
[0] = (val
*) var51
;
6771 ((struct instance_standard__NativeArray
*)var62
)->values
[1] = (val
*) var_mproperty
;
6772 ((struct instance_standard__NativeArray
*)var62
)->values
[2] = (val
*) var56
;
6774 ((void (*)(val
* self
, val
* p0
, long p1
))(var60
->class->vft
[COLOR_standard__array__Array__with_native
]))(var60
, var62
, var61
) /* with_native on <var60:Array[Object]>*/;
6778 var63
= ((val
* (*)(val
* self
))(var60
->class->vft
[COLOR_standard__string__Object__to_s
]))(var60
) /* to_s on <var60:Array[Object]>*/;
6781 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var63
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
6787 var64
= standard___standard__SequenceRead___Collection__first(var_superprops
);
6789 var_superprop
= var64
;
6791 { /* Inline model#MMethodDef#msignature (var_superprop) on <var_superprop:MMethodDef> */
6792 var67
= var_superprop
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_superprop:MMethodDef> */
6794 RET_LABEL66
:(void)0;
6797 if (unlikely(var65
== NULL
)) {
6798 PRINT_ERROR("Runtime error: %s", "Cast failed");
6799 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1642);
6802 var_msignature
= var65
;
6805 var69
= nit__typing___nit__typing__TypeVisitor___resolve_for(var_v
, var_msignature
, var_recvtype
, var68
);
6807 /* <var69:MType> isa MSignature */
6808 cltype71
= type_nit__MSignature
.color
;
6809 idtype72
= type_nit__MSignature
.id
;
6810 if(cltype71
>= var69
->type
->table_size
) {
6813 var70
= var69
->type
->type_table
[cltype71
] == idtype72
;
6815 if (unlikely(!var70
)) {
6816 var_class_name
= var69
== NULL ?
"null" : var69
->type
->name
;
6817 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MSignature", var_class_name
);
6818 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1643);
6821 var_msignature
= var69
;
6823 { /* Inline parser_nodes#ASuperExpr#n_args (self) on <self:ASuperExpr> */
6824 var75
= self
->attrs
[COLOR_nit__parser_nodes__ASuperExpr___n_args
].val
; /* _n_args on <self:ASuperExpr> */
6825 if (unlikely(var75
== NULL
)) {
6826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
6827 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2051);
6831 RET_LABEL74
:(void)0;
6835 var76
= nit__typing___AExprs___to_a(var73
);
6839 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
6840 var79
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
6842 RET_LABEL78
:(void)0;
6847 { /* Inline kernel#Int#> (var77,var80) on <var77:Int> */
6848 /* Covariant cast for argument 0 (i) <var80:Int> isa OTHER */
6849 /* <var80:Int> isa OTHER */
6850 var83
= 1; /* easy <var80:Int> isa OTHER*/
6851 if (unlikely(!var83
)) {
6852 var_class_name86
= type_standard__Int
.name
;
6853 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name86
);
6854 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
6857 var87
= var77
> var80
;
6860 RET_LABEL82
:(void)0;
6865 { /* Inline model#MProperty#name (var_mproperty) on <var_mproperty:MProperty(MMethod)> */
6866 var90
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___name
].val
; /* _name on <var_mproperty:MProperty(MMethod)> */
6867 if (unlikely(var90
== NULL
)) {
6868 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6869 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1741);
6873 RET_LABEL89
:(void)0;
6877 var91
= nit__typing___nit__typing__TypeVisitor___check_signature(var_v
, self
, var_args
, var88
, var_msignature
);
6882 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:MSignature> */
6883 var94
= var_msignature
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:MSignature> */
6885 RET_LABEL93
:(void)0;
6889 { /* Inline typing#AExpr#mtype= (self,var92) on <self:ASuperExpr> */
6890 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var92
; /* _mtype on <self:ASuperExpr> */
6891 RET_LABEL95
:(void)0;
6896 { /* Inline typing#AExpr#is_typed= (self,var96) on <self:ASuperExpr> */
6897 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var96
; /* _is_typed on <self:ASuperExpr> */
6898 RET_LABEL97
:(void)0;
6902 { /* Inline typing#TypeVisitor#mpropdef (var_v) on <var_v:TypeVisitor> */
6903 var100
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <var_v:TypeVisitor> */
6905 RET_LABEL99
:(void)0;
6909 if (var98
== NULL
) {
6910 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6911 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1650);
6914 { /* Inline modelize_property#MPropDef#has_supercall= (var98,var101) on <var98:nullable MPropDef> */
6915 if (unlikely(var98
== NULL
)) {
6916 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6917 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property
, 329);
6920 var98
->attrs
[COLOR_nit__modelize_property__MPropDef___has_supercall
].s
= var101
; /* _has_supercall on <var98:nullable MPropDef> */
6921 RET_LABEL102
:(void)0;
6925 { /* Inline typing#TypeVisitor#mpropdef (var_v) on <var_v:TypeVisitor> */
6926 var105
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <var_v:TypeVisitor> */
6928 RET_LABEL104
:(void)0;
6931 /* <var103:nullable MPropDef> isa MMethodDef */
6932 cltype107
= type_nit__MMethodDef
.color
;
6933 idtype108
= type_nit__MMethodDef
.id
;
6934 if(var103
== NULL
) {
6937 if(cltype107
>= var103
->type
->table_size
) {
6940 var106
= var103
->type
->type_table
[cltype107
] == idtype108
;
6943 if (unlikely(!var106
)) {
6944 var_class_name109
= var103
== NULL ?
"null" : var103
->type
->name
;
6945 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MMethodDef", var_class_name109
);
6946 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1651);
6950 { /* Inline typing#ASuperExpr#mpropdef= (self,var103) on <self:ASuperExpr> */
6951 self
->attrs
[COLOR_nit__typing__ASuperExpr___mpropdef
].val
= var103
; /* _mpropdef on <self:ASuperExpr> */
6952 RET_LABEL110
:(void)0;
6957 /* method typing#ASuperExpr#process_superinit for (self: ASuperExpr, TypeVisitor) */
6958 void nit__typing___ASuperExpr___process_superinit(val
* self
, val
* p0
) {
6959 val
* var_v
/* var v: TypeVisitor */;
6960 val
* var
/* : nullable MClassType */;
6961 val
* var2
/* : nullable MClassType */;
6962 val
* var_anchor
/* var anchor: nullable MClassType */;
6963 val
* var3
/* : null */;
6964 short int var4
/* : Bool */;
6965 short int var5
/* : Bool */;
6966 val
* var_other
/* var other: nullable Object */;
6967 short int var7
/* : Bool */;
6968 short int var8
/* : Bool */;
6969 val
* var9
/* : Variable */;
6970 val
* var11
/* : Variable */;
6971 val
* var12
/* : nullable MType */;
6972 val
* var_recvtype
/* var recvtype: nullable MType */;
6973 val
* var13
/* : null */;
6974 short int var14
/* : Bool */;
6975 short int var15
/* : Bool */;
6976 short int var17
/* : Bool */;
6977 short int var18
/* : Bool */;
6978 val
* var19
/* : nullable MPropDef */;
6979 val
* var21
/* : nullable MPropDef */;
6980 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
6981 short int var22
/* : Bool */;
6984 val
* var23
/* : MProperty */;
6985 val
* var25
/* : MProperty */;
6986 val
* var_mproperty
/* var mproperty: MMethod */;
6987 val
* var26
/* : null */;
6988 val
* var_superprop
/* var superprop: nullable MMethodDef */;
6989 val
* var27
/* : MClassDef */;
6990 val
* var29
/* : MClassDef */;
6991 val
* var30
/* : Array[MClassType] */;
6992 val
* var32
/* : Array[MClassType] */;
6993 val
* var_
/* var : Array[MClassType] */;
6994 val
* var33
/* : ArrayIterator[nullable Object] */;
6995 val
* var_34
/* var : ArrayIterator[MClassType] */;
6996 short int var35
/* : Bool */;
6997 val
* var36
/* : nullable Object */;
6998 val
* var_msupertype
/* var msupertype: MClassType */;
6999 val
* var37
/* : MModule */;
7000 val
* var39
/* : MModule */;
7001 val
* var40
/* : MClassType */;
7002 val
* var41
/* : ModelBuilder */;
7003 val
* var43
/* : ModelBuilder */;
7004 val
* var44
/* : ToolContext */;
7005 val
* var46
/* : ToolContext */;
7006 long var47
/* : Int */;
7007 long var49
/* : Int */;
7008 long var_errcount
/* var errcount: Int */;
7009 val
* var50
/* : String */;
7010 val
* var52
/* : String */;
7011 val
* var53
/* : nullable MProperty */;
7012 short int var54
/* : Bool */;
7015 const char* var_class_name
;
7016 val
* var_candidate
/* var candidate: nullable MMethod */;
7017 val
* var57
/* : null */;
7018 short int var58
/* : Bool */;
7019 short int var59
/* : Bool */;
7020 val
* var_other61
/* var other: nullable Object */;
7021 short int var62
/* : Bool */;
7022 short int var64
/* : Bool */;
7023 val
* var65
/* : ModelBuilder */;
7024 val
* var67
/* : ModelBuilder */;
7025 val
* var68
/* : ToolContext */;
7026 val
* var70
/* : ToolContext */;
7027 long var71
/* : Int */;
7028 long var73
/* : Int */;
7029 short int var74
/* : Bool */;
7030 short int var76
/* : Bool */;
7033 const char* var_class_name79
;
7034 short int var80
/* : Bool */;
7035 short int var81
/* : Bool */;
7036 val
* var82
/* : null */;
7037 short int var83
/* : Bool */;
7038 short int var84
/* : Bool */;
7039 short int var86
/* : Bool */;
7040 short int var87
/* : Bool */;
7041 short int var_88
/* var : Bool */;
7042 short int var89
/* : Bool */;
7043 short int var91
/* : Bool */;
7044 short int var92
/* : Bool */;
7045 short int var93
/* : Bool */;
7046 val
* var94
/* : null */;
7047 short int var95
/* : Bool */;
7048 short int var96
/* : Bool */;
7049 short int var98
/* : Bool */;
7050 short int var99
/* : Bool */;
7051 short int var_100
/* var : Bool */;
7052 val
* var101
/* : MProperty */;
7053 val
* var103
/* : MProperty */;
7054 short int var104
/* : Bool */;
7055 short int var106
/* : Bool */;
7056 short int var107
/* : Bool */;
7057 short int var_108
/* var : Bool */;
7058 val
* var109
/* : MProperty */;
7059 val
* var111
/* : MProperty */;
7060 short int var112
/* : Bool */;
7061 short int var114
/* : Bool */;
7062 short int var115
/* : Bool */;
7063 static val
* varonce
;
7064 val
* var116
/* : String */;
7065 char* var117
/* : NativeString */;
7066 long var118
/* : Int */;
7067 val
* var119
/* : FlatString */;
7068 static val
* varonce120
;
7069 val
* var121
/* : String */;
7070 char* var122
/* : NativeString */;
7071 long var123
/* : Int */;
7072 val
* var124
/* : FlatString */;
7073 val
* var125
/* : String */;
7074 static val
* varonce126
;
7075 val
* var127
/* : String */;
7076 char* var128
/* : NativeString */;
7077 long var129
/* : Int */;
7078 val
* var130
/* : FlatString */;
7079 val
* var131
/* : MProperty */;
7080 val
* var133
/* : MProperty */;
7081 val
* var134
/* : String */;
7082 val
* var135
/* : Array[Object] */;
7083 long var136
/* : Int */;
7084 val
* var137
/* : NativeArray[Object] */;
7085 val
* var138
/* : String */;
7086 val
* var139
/* : MModule */;
7087 val
* var141
/* : MModule */;
7088 val
* var142
/* : Array[MPropDef] */;
7089 val
* var_candidatedefs
/* var candidatedefs: Array[MMethodDef] */;
7090 short int var143
/* : Bool */;
7091 val
* var144
/* : null */;
7092 short int var145
/* : Bool */;
7093 short int var146
/* : Bool */;
7094 short int var148
/* : Bool */;
7095 short int var149
/* : Bool */;
7096 short int var_150
/* var : Bool */;
7097 val
* var151
/* : MProperty */;
7098 val
* var153
/* : MProperty */;
7099 short int var154
/* : Bool */;
7100 short int var156
/* : Bool */;
7101 short int var158
/* : Bool */;
7102 val
* var159
/* : nullable Object */;
7103 short int var160
/* : Bool */;
7104 short int var162
/* : Bool */;
7105 short int var164
/* : Bool */;
7106 long var165
/* : Int */;
7107 long var167
/* : Int */;
7108 long var168
/* : Int */;
7109 short int var169
/* : Bool */;
7110 short int var171
/* : Bool */;
7113 const char* var_class_name174
;
7114 short int var175
/* : Bool */;
7115 static val
* varonce176
;
7116 val
* var177
/* : String */;
7117 char* var178
/* : NativeString */;
7118 long var179
/* : Int */;
7119 val
* var180
/* : FlatString */;
7120 static val
* varonce181
;
7121 val
* var182
/* : String */;
7122 char* var183
/* : NativeString */;
7123 long var184
/* : Int */;
7124 val
* var185
/* : FlatString */;
7125 static val
* varonce186
;
7126 val
* var187
/* : String */;
7127 char* var188
/* : NativeString */;
7128 long var189
/* : Int */;
7129 val
* var190
/* : FlatString */;
7130 static val
* varonce191
;
7131 val
* var192
/* : String */;
7132 char* var193
/* : NativeString */;
7133 long var194
/* : Int */;
7134 val
* var195
/* : FlatString */;
7135 val
* var196
/* : String */;
7136 val
* var197
/* : Array[Object] */;
7137 long var198
/* : Int */;
7138 val
* var199
/* : NativeArray[Object] */;
7139 val
* var200
/* : String */;
7140 val
* var201
/* : nullable Object */;
7141 val
* var204
/* : null */;
7142 short int var205
/* : Bool */;
7143 short int var206
/* : Bool */;
7144 short int var208
/* : Bool */;
7145 short int var210
/* : Bool */;
7146 static val
* varonce211
;
7147 val
* var212
/* : String */;
7148 char* var213
/* : NativeString */;
7149 long var214
/* : Int */;
7150 val
* var215
/* : FlatString */;
7151 static val
* varonce216
;
7152 val
* var217
/* : String */;
7153 char* var218
/* : NativeString */;
7154 long var219
/* : Int */;
7155 val
* var220
/* : FlatString */;
7156 val
* var221
/* : Array[Object] */;
7157 long var222
/* : Int */;
7158 val
* var223
/* : NativeArray[Object] */;
7159 val
* var224
/* : String */;
7160 val
* var225
/* : MSignature */;
7161 val
* var226
/* : nullable MSignature */;
7162 val
* var228
/* : nullable MSignature */;
7163 val
* var229
/* : nullable MSignature */;
7164 val
* var231
/* : nullable MSignature */;
7165 val
* var_msignature
/* var msignature: MSignature */;
7166 short int var232
/* : Bool */;
7167 val
* var233
/* : MType */;
7168 short int var234
/* : Bool */;
7171 const char* var_class_name237
;
7172 val
* var238
/* : CallSite */;
7173 val
* var239
/* : MModule */;
7174 val
* var241
/* : MModule */;
7175 val
* var242
/* : nullable MClassType */;
7176 val
* var244
/* : nullable MClassType */;
7177 short int var245
/* : Bool */;
7178 val
* var246
/* : MProperty */;
7179 val
* var248
/* : MProperty */;
7180 short int var249
/* : Bool */;
7181 val
* var_callsite
/* var callsite: CallSite */;
7182 val
* var251
/* : AExprs */;
7183 val
* var253
/* : AExprs */;
7184 val
* var254
/* : Array[AExpr] */;
7185 val
* var_args
/* var args: Array[AExpr] */;
7186 long var255
/* : Int */;
7187 long var257
/* : Int */;
7188 long var258
/* : Int */;
7189 short int var259
/* : Bool */;
7190 short int var261
/* : Bool */;
7193 const char* var_class_name264
;
7194 short int var265
/* : Bool */;
7195 short int var266
/* : Bool */;
7196 val
* var267
/* : nullable MSignature */;
7197 val
* var269
/* : nullable MSignature */;
7198 long var270
/* : Int */;
7199 long var271
/* : Int */;
7200 short int var272
/* : Bool */;
7201 short int var274
/* : Bool */;
7204 const char* var_class_name277
;
7205 short int var278
/* : Bool */;
7206 static val
* varonce279
;
7207 val
* var280
/* : String */;
7208 char* var281
/* : NativeString */;
7209 long var282
/* : Int */;
7210 val
* var283
/* : FlatString */;
7211 val
* var284
/* : nullable MSignature */;
7212 val
* var286
/* : nullable MSignature */;
7213 long var287
/* : Int */;
7214 static val
* varonce288
;
7215 val
* var289
/* : String */;
7216 char* var290
/* : NativeString */;
7217 long var291
/* : Int */;
7218 val
* var292
/* : FlatString */;
7219 long var293
/* : Int */;
7220 static val
* varonce294
;
7221 val
* var295
/* : String */;
7222 char* var296
/* : NativeString */;
7223 long var297
/* : Int */;
7224 val
* var298
/* : FlatString */;
7225 val
* var299
/* : Array[Object] */;
7226 long var300
/* : Int */;
7227 val
* var301
/* : NativeArray[Object] */;
7228 val
* var302
/* : Object */;
7229 val
* var303
/* : Object */;
7230 val
* var304
/* : String */;
7231 long var305
/* : Int */;
7232 long var_i
/* var i: Int */;
7233 val
* var306
/* : Array[MParameter] */;
7234 val
* var308
/* : Array[MParameter] */;
7235 val
* var_309
/* var : Array[MParameter] */;
7236 val
* var310
/* : ArrayIterator[nullable Object] */;
7237 val
* var_311
/* var : ArrayIterator[MParameter] */;
7238 short int var312
/* : Bool */;
7239 val
* var313
/* : nullable Object */;
7240 val
* var_sp
/* var sp: MParameter */;
7241 val
* var314
/* : nullable MSignature */;
7242 val
* var316
/* : nullable MSignature */;
7243 val
* var317
/* : Array[MParameter] */;
7244 val
* var319
/* : Array[MParameter] */;
7245 val
* var320
/* : nullable Object */;
7246 val
* var_p
/* var p: MParameter */;
7247 val
* var321
/* : MType */;
7248 val
* var323
/* : MType */;
7249 val
* var324
/* : MType */;
7250 val
* var326
/* : MType */;
7251 short int var327
/* : Bool */;
7252 short int var328
/* : Bool */;
7253 static val
* varonce329
;
7254 val
* var330
/* : String */;
7255 char* var331
/* : NativeString */;
7256 long var332
/* : Int */;
7257 val
* var333
/* : FlatString */;
7258 static val
* varonce334
;
7259 val
* var335
/* : String */;
7260 char* var336
/* : NativeString */;
7261 long var337
/* : Int */;
7262 val
* var338
/* : FlatString */;
7263 val
* var339
/* : MType */;
7264 val
* var341
/* : MType */;
7265 static val
* varonce342
;
7266 val
* var343
/* : String */;
7267 char* var344
/* : NativeString */;
7268 long var345
/* : Int */;
7269 val
* var346
/* : FlatString */;
7270 val
* var347
/* : String */;
7271 val
* var349
/* : String */;
7272 static val
* varonce350
;
7273 val
* var351
/* : String */;
7274 char* var352
/* : NativeString */;
7275 long var353
/* : Int */;
7276 val
* var354
/* : FlatString */;
7277 val
* var355
/* : MType */;
7278 val
* var357
/* : MType */;
7279 static val
* varonce358
;
7280 val
* var359
/* : String */;
7281 char* var360
/* : NativeString */;
7282 long var361
/* : Int */;
7283 val
* var362
/* : FlatString */;
7284 val
* var363
/* : Array[Object] */;
7285 long var364
/* : Int */;
7286 val
* var365
/* : NativeArray[Object] */;
7287 val
* var366
/* : Object */;
7288 val
* var367
/* : String */;
7289 long var368
/* : Int */;
7290 long var369
/* : Int */;
7291 short int var371
/* : Bool */;
7294 const char* var_class_name374
;
7295 long var375
/* : Int */;
7296 short int var378
/* : Bool */;
7299 { /* Inline typing#TypeVisitor#anchor (var_v) on <var_v:TypeVisitor> */
7300 var2
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
; /* _anchor on <var_v:TypeVisitor> */
7307 if (var_anchor
== NULL
) {
7308 var4
= 0; /* is null */
7310 var4
= 1; /* arg is null and recv is not */
7313 { /* Inline kernel#Object#!= (var_anchor,var3) on <var_anchor:nullable MClassType> */
7316 var7
= ((short int (*)(val
* self
, val
* p0
))(var_anchor
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_anchor
, var_other
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
7325 if (unlikely(!var4
)) {
7326 PRINT_ERROR("Runtime error: %s", "Assert failed");
7327 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1657);
7331 { /* Inline typing#TypeVisitor#selfvariable (var_v) on <var_v:TypeVisitor> */
7332 var11
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___selfvariable
].val
; /* _selfvariable on <var_v:TypeVisitor> */
7333 if (unlikely(var11
== NULL
)) {
7334 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
7335 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 50);
7339 RET_LABEL10
:(void)0;
7343 var12
= nit__typing___nit__typing__TypeVisitor___get_variable(var_v
, self
, var9
);
7345 var_recvtype
= var12
;
7347 if (var_recvtype
== NULL
) {
7348 var14
= 0; /* is null */
7350 var14
= 1; /* arg is null and recv is not */
7353 { /* Inline kernel#Object#!= (var_recvtype,var13) on <var_recvtype:nullable MType> */
7356 var17
= ((short int (*)(val
* self
, val
* p0
))(var_recvtype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_recvtype
, var_other
) /* == on <var_recvtype:nullable MType(MType)>*/;
7361 RET_LABEL16
:(void)0;
7365 if (unlikely(!var14
)) {
7366 PRINT_ERROR("Runtime error: %s", "Assert failed");
7367 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1659);
7371 { /* Inline typing#TypeVisitor#mpropdef (var_v) on <var_v:TypeVisitor> */
7372 var21
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <var_v:TypeVisitor> */
7374 RET_LABEL20
:(void)0;
7377 var_mpropdef
= var19
;
7378 /* <var_mpropdef:nullable MPropDef> isa MMethodDef */
7379 cltype
= type_nit__MMethodDef
.color
;
7380 idtype
= type_nit__MMethodDef
.id
;
7381 if(var_mpropdef
== NULL
) {
7384 if(cltype
>= var_mpropdef
->type
->table_size
) {
7387 var22
= var_mpropdef
->type
->type_table
[cltype
] == idtype
;
7390 if (unlikely(!var22
)) {
7391 PRINT_ERROR("Runtime error: %s", "Assert failed");
7392 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1661);
7396 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
7397 var25
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_mpropdef:nullable MPropDef(MMethodDef)> */
7398 if (unlikely(var25
== NULL
)) {
7399 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7400 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
7404 RET_LABEL24
:(void)0;
7407 var_mproperty
= var23
;
7409 var_superprop
= var26
;
7411 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
7412 var29
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:nullable MPropDef(MMethodDef)> */
7413 if (unlikely(var29
== NULL
)) {
7414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7415 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2010);
7419 RET_LABEL28
:(void)0;
7423 { /* Inline model#MClassDef#supertypes (var27) on <var27:MClassDef> */
7424 var32
= var27
->attrs
[COLOR_nit__model__MClassDef___supertypes
].val
; /* _supertypes on <var27:MClassDef> */
7425 if (unlikely(var32
== NULL
)) {
7426 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
7427 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 566);
7431 RET_LABEL31
:(void)0;
7436 var33
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
7441 var35
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_34
);
7445 var36
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_34
);
7447 var_msupertype
= var36
;
7449 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
7450 var39
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
7451 if (unlikely(var39
== NULL
)) {
7452 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7453 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
7457 RET_LABEL38
:(void)0;
7461 var40
= nit___nit__MClassType___MType__anchor_to(var_msupertype
, var37
, var_anchor
);
7463 var_msupertype
= var40
;
7465 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
7466 var43
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
7467 if (unlikely(var43
== NULL
)) {
7468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7469 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
7473 RET_LABEL42
:(void)0;
7477 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var41) on <var41:ModelBuilder> */
7478 var46
= var41
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var41:ModelBuilder> */
7479 if (unlikely(var46
== NULL
)) {
7480 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7481 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
7485 RET_LABEL45
:(void)0;
7489 { /* Inline toolcontext#ToolContext#error_count (var44) on <var44:ToolContext> */
7490 var49
= var44
->attrs
[COLOR_nit__toolcontext__ToolContext___error_count
].l
; /* _error_count on <var44:ToolContext> */
7492 RET_LABEL48
:(void)0;
7495 var_errcount
= var47
;
7497 { /* Inline model#MProperty#name (var_mproperty) on <var_mproperty:MMethod> */
7498 var52
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___name
].val
; /* _name on <var_mproperty:MMethod> */
7499 if (unlikely(var52
== NULL
)) {
7500 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7501 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1741);
7505 RET_LABEL51
:(void)0;
7509 var53
= nit__typing___nit__typing__TypeVisitor___try_get_mproperty_by_name2(var_v
, self
, var_msupertype
, var50
);
7511 /* <var53:nullable MProperty> isa nullable MMethod */
7512 cltype55
= type_nullable__nit__MMethod
.color
;
7513 idtype56
= type_nullable__nit__MMethod
.id
;
7517 if(cltype55
>= var53
->type
->table_size
) {
7520 var54
= var53
->type
->type_table
[cltype55
] == idtype56
;
7523 if (unlikely(!var54
)) {
7524 var_class_name
= var53
== NULL ?
"null" : var53
->type
->name
;
7525 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name
);
7526 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1667);
7529 var_candidate
= var53
;
7531 if (var_candidate
== NULL
) {
7532 var58
= 1; /* is null */
7534 var58
= 0; /* arg is null but recv is not */
7537 { /* Inline kernel#Object#== (var_candidate,var57) on <var_candidate:nullable MMethod> */
7538 var_other61
= var57
;
7540 { /* Inline kernel#Object#is_same_instance (var_candidate,var_other61) on <var_candidate:nullable MMethod(MMethod)> */
7541 var64
= var_candidate
== var_other61
;
7544 RET_LABEL63
:(void)0;
7549 RET_LABEL60
:(void)0;
7555 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
7556 var67
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
7557 if (unlikely(var67
== NULL
)) {
7558 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7559 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
7563 RET_LABEL66
:(void)0;
7567 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var65) on <var65:ModelBuilder> */
7568 var70
= var65
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var65:ModelBuilder> */
7569 if (unlikely(var70
== NULL
)) {
7570 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7571 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
7575 RET_LABEL69
:(void)0;
7579 { /* Inline toolcontext#ToolContext#error_count (var68) on <var68:ToolContext> */
7580 var73
= var68
->attrs
[COLOR_nit__toolcontext__ToolContext___error_count
].l
; /* _error_count on <var68:ToolContext> */
7582 RET_LABEL72
:(void)0;
7586 { /* Inline kernel#Int#> (var71,var_errcount) on <var71:Int> */
7587 /* Covariant cast for argument 0 (i) <var_errcount:Int> isa OTHER */
7588 /* <var_errcount:Int> isa OTHER */
7589 var76
= 1; /* easy <var_errcount:Int> isa OTHER*/
7590 if (unlikely(!var76
)) {
7591 var_class_name79
= type_standard__Int
.name
;
7592 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name79
);
7593 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
7596 var80
= var71
> var_errcount
;
7599 RET_LABEL75
:(void)0;
7610 if (var_superprop
== NULL
) {
7611 var83
= 0; /* is null */
7613 var83
= 1; /* arg is null and recv is not */
7616 { /* Inline kernel#Object#!= (var_superprop,var82) on <var_superprop:nullable MMethodDef> */
7619 var86
= ((short int (*)(val
* self
, val
* p0
))(var_superprop
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_superprop
, var_other
) /* == on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
7624 RET_LABEL85
:(void)0;
7631 { /* Inline model#MMethod#is_root_init (var_candidate) on <var_candidate:nullable MMethod(MMethod)> */
7632 var91
= var_candidate
->attrs
[COLOR_nit__model__MMethod___is_root_init
].s
; /* _is_root_init on <var_candidate:nullable MMethod(MMethod)> */
7634 RET_LABEL90
:(void)0;
7646 if (var_superprop
== NULL
) {
7647 var95
= 0; /* is null */
7649 var95
= 1; /* arg is null and recv is not */
7652 { /* Inline kernel#Object#!= (var_superprop,var94) on <var_superprop:nullable MMethodDef> */
7655 var98
= ((short int (*)(val
* self
, val
* p0
))(var_superprop
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_superprop
, var_other
) /* == on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
7660 RET_LABEL97
:(void)0;
7667 { /* Inline model#MPropDef#mproperty (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
7668 var103
= var_superprop
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_superprop:nullable MMethodDef(MMethodDef)> */
7669 if (unlikely(var103
== NULL
)) {
7670 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7671 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
7675 RET_LABEL102
:(void)0;
7679 { /* Inline kernel#Object#!= (var101,var_candidate) on <var101:MProperty(MMethod)> */
7680 var_other
= var_candidate
;
7682 var106
= ((short int (*)(val
* self
, val
* p0
))(var101
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var101
, var_other
) /* == on <var101:MProperty(MMethod)>*/;
7687 RET_LABEL105
:(void)0;
7697 { /* Inline model#MPropDef#mproperty (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
7698 var111
= var_superprop
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_superprop:nullable MMethodDef(MMethodDef)> */
7699 if (unlikely(var111
== NULL
)) {
7700 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7701 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
7705 RET_LABEL110
:(void)0;
7709 { /* Inline model#MMethod#is_root_init (var109) on <var109:MProperty(MMethod)> */
7710 var114
= var109
->attrs
[COLOR_nit__model__MMethod___is_root_init
].s
; /* _is_root_init on <var109:MProperty(MMethod)> */
7712 RET_LABEL113
:(void)0;
7724 var117
= "Error: conflicting super constructor to call for ";
7726 var119
= standard___standard__NativeString___to_s_with_length(var117
, var118
);
7731 var121
= varonce120
;
7735 var124
= standard___standard__NativeString___to_s_with_length(var122
, var123
);
7737 varonce120
= var121
;
7740 var125
= nit___nit__MProperty___nit__model_base__MEntity__full_name(var_candidate
);
7743 var127
= varonce126
;
7747 var130
= standard___standard__NativeString___to_s_with_length(var128
, var129
);
7749 varonce126
= var127
;
7752 { /* Inline model#MPropDef#mproperty (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
7753 var133
= var_superprop
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_superprop:nullable MMethodDef(MMethodDef)> */
7754 if (unlikely(var133
== NULL
)) {
7755 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7756 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
7760 RET_LABEL132
:(void)0;
7764 var134
= nit___nit__MProperty___nit__model_base__MEntity__full_name(var131
);
7766 var135
= NEW_standard__Array(&type_standard__Array__standard__Object
);
7767 { /* var135 = array_instance Array[Object] */
7769 var137
= NEW_standard__NativeArray(var136
, &type_standard__NativeArray__standard__Object
);
7770 ((struct instance_standard__NativeArray
*)var137
)->values
[0] = (val
*) var116
;
7771 ((struct instance_standard__NativeArray
*)var137
)->values
[1] = (val
*) var_mproperty
;
7772 ((struct instance_standard__NativeArray
*)var137
)->values
[2] = (val
*) var121
;
7773 ((struct instance_standard__NativeArray
*)var137
)->values
[3] = (val
*) var125
;
7774 ((struct instance_standard__NativeArray
*)var137
)->values
[4] = (val
*) var127
;
7775 ((struct instance_standard__NativeArray
*)var137
)->values
[5] = (val
*) var134
;
7777 ((void (*)(val
* self
, val
* p0
, long p1
))(var135
->class->vft
[COLOR_standard__array__Array__with_native
]))(var135
, var137
, var136
) /* with_native on <var135:Array[Object]>*/;
7781 var138
= ((val
* (*)(val
* self
))(var135
->class->vft
[COLOR_standard__string__Object__to_s
]))(var135
) /* to_s on <var135:Array[Object]>*/;
7784 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var138
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
7790 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
7791 var141
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
7792 if (unlikely(var141
== NULL
)) {
7793 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7794 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
7798 RET_LABEL140
:(void)0;
7802 var142
= nit___nit__MProperty___lookup_definitions(var_candidate
, var139
, var_anchor
);
7804 var_candidatedefs
= var142
;
7806 if (var_superprop
== NULL
) {
7807 var145
= 0; /* is null */
7809 var145
= 1; /* arg is null and recv is not */
7812 { /* Inline kernel#Object#!= (var_superprop,var144) on <var_superprop:nullable MMethodDef> */
7815 var148
= ((short int (*)(val
* self
, val
* p0
))(var_superprop
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_superprop
, var_other
) /* == on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
7820 RET_LABEL147
:(void)0;
7827 { /* Inline model#MPropDef#mproperty (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
7828 var153
= var_superprop
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_superprop:nullable MMethodDef(MMethodDef)> */
7829 if (unlikely(var153
== NULL
)) {
7830 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7831 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
7835 RET_LABEL152
:(void)0;
7839 { /* Inline kernel#Object#== (var151,var_candidate) on <var151:MProperty(MMethod)> */
7840 var_other61
= var_candidate
;
7842 { /* Inline kernel#Object#is_same_instance (var151,var_other61) on <var151:MProperty(MMethod)> */
7843 var158
= var151
== var_other61
;
7846 RET_LABEL157
:(void)0;
7851 RET_LABEL155
:(void)0;
7860 var159
= standard___standard__SequenceRead___Collection__first(var_candidatedefs
);
7863 { /* Inline kernel#Object#== (var_superprop,var159) on <var_superprop:nullable MMethodDef(MMethodDef)> */
7864 var_other61
= var159
;
7866 { /* Inline kernel#Object#is_same_instance (var_superprop,var_other61) on <var_superprop:nullable MMethodDef(MMethodDef)> */
7867 var164
= var_superprop
== var_other61
;
7870 RET_LABEL163
:(void)0;
7875 RET_LABEL161
:(void)0;
7883 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_candidatedefs
, var_superprop
); /* Direct call array#Array#add on <var_candidatedefs:Array[MMethodDef]>*/
7888 { /* Inline array#AbstractArrayRead#length (var_candidatedefs) on <var_candidatedefs:Array[MMethodDef]> */
7889 var167
= var_candidatedefs
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_candidatedefs:Array[MMethodDef]> */
7891 RET_LABEL166
:(void)0;
7896 { /* Inline kernel#Int#> (var165,var168) on <var165:Int> */
7897 /* Covariant cast for argument 0 (i) <var168:Int> isa OTHER */
7898 /* <var168:Int> isa OTHER */
7899 var171
= 1; /* easy <var168:Int> isa OTHER*/
7900 if (unlikely(!var171
)) {
7901 var_class_name174
= type_standard__Int
.name
;
7902 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name174
);
7903 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
7906 var175
= var165
> var168
;
7909 RET_LABEL170
:(void)0;
7914 var177
= varonce176
;
7916 var178
= "Error: conflicting property definitions for property ";
7918 var180
= standard___standard__NativeString___to_s_with_length(var178
, var179
);
7920 varonce176
= var177
;
7923 var182
= varonce181
;
7927 var185
= standard___standard__NativeString___to_s_with_length(var183
, var184
);
7929 varonce181
= var182
;
7932 var187
= varonce186
;
7936 var190
= standard___standard__NativeString___to_s_with_length(var188
, var189
);
7938 varonce186
= var187
;
7941 var192
= varonce191
;
7945 var195
= standard___standard__NativeString___to_s_with_length(var193
, var194
);
7947 varonce191
= var192
;
7950 var196
= standard__string___Collection___join(var_candidatedefs
, var192
);
7952 var197
= NEW_standard__Array(&type_standard__Array__standard__Object
);
7953 { /* var197 = array_instance Array[Object] */
7955 var199
= NEW_standard__NativeArray(var198
, &type_standard__NativeArray__standard__Object
);
7956 ((struct instance_standard__NativeArray
*)var199
)->values
[0] = (val
*) var177
;
7957 ((struct instance_standard__NativeArray
*)var199
)->values
[1] = (val
*) var_mproperty
;
7958 ((struct instance_standard__NativeArray
*)var199
)->values
[2] = (val
*) var182
;
7959 ((struct instance_standard__NativeArray
*)var199
)->values
[3] = (val
*) var_recvtype
;
7960 ((struct instance_standard__NativeArray
*)var199
)->values
[4] = (val
*) var187
;
7961 ((struct instance_standard__NativeArray
*)var199
)->values
[5] = (val
*) var196
;
7963 ((void (*)(val
* self
, val
* p0
, long p1
))(var197
->class->vft
[COLOR_standard__array__Array__with_native
]))(var197
, var199
, var198
) /* with_native on <var197:Array[Object]>*/;
7967 var200
= ((val
* (*)(val
* self
))(var197
->class->vft
[COLOR_standard__string__Object__to_s
]))(var197
) /* to_s on <var197:Array[Object]>*/;
7970 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var200
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
7976 var201
= standard___standard__SequenceRead___Collection__first(var_candidatedefs
);
7978 var_superprop
= var201
;
7979 BREAK_label
: (void)0;
7981 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_34
); /* Direct call array#ArrayIterator#next on <var_34:ArrayIterator[MClassType]>*/
7984 goto BREAK_label202
;
7987 BREAK_label202
: (void)0;
7989 { /* Inline abstract_collection#Iterator#finish (var_34) on <var_34:ArrayIterator[MClassType]> */
7990 RET_LABEL203
:(void)0;
7994 if (var_superprop
== NULL
) {
7995 var205
= 1; /* is null */
7997 var205
= 0; /* arg is null but recv is not */
8000 { /* Inline kernel#Object#== (var_superprop,var204) on <var_superprop:nullable MMethodDef> */
8001 var_other61
= var204
;
8003 { /* Inline kernel#Object#is_same_instance (var_superprop,var_other61) on <var_superprop:nullable MMethodDef(MMethodDef)> */
8004 var210
= var_superprop
== var_other61
;
8007 RET_LABEL209
:(void)0;
8012 RET_LABEL207
:(void)0;
8018 var212
= varonce211
;
8020 var213
= "Error: No super method to call for ";
8022 var215
= standard___standard__NativeString___to_s_with_length(var213
, var214
);
8024 varonce211
= var212
;
8027 var217
= varonce216
;
8031 var220
= standard___standard__NativeString___to_s_with_length(var218
, var219
);
8033 varonce216
= var217
;
8035 var221
= NEW_standard__Array(&type_standard__Array__standard__Object
);
8036 { /* var221 = array_instance Array[Object] */
8038 var223
= NEW_standard__NativeArray(var222
, &type_standard__NativeArray__standard__Object
);
8039 ((struct instance_standard__NativeArray
*)var223
)->values
[0] = (val
*) var212
;
8040 ((struct instance_standard__NativeArray
*)var223
)->values
[1] = (val
*) var_mproperty
;
8041 ((struct instance_standard__NativeArray
*)var223
)->values
[2] = (val
*) var217
;
8043 ((void (*)(val
* self
, val
* p0
, long p1
))(var221
->class->vft
[COLOR_standard__array__Array__with_native
]))(var221
, var223
, var222
) /* with_native on <var221:Array[Object]>*/;
8047 var224
= ((val
* (*)(val
* self
))(var221
->class->vft
[COLOR_standard__string__Object__to_s
]))(var221
) /* to_s on <var221:Array[Object]>*/;
8050 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var224
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
8056 { /* Inline model#MMethodDef#new_msignature (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
8057 var228
= var_superprop
->attrs
[COLOR_nit__model__MMethodDef___new_msignature
].val
; /* _new_msignature on <var_superprop:nullable MMethodDef(MMethodDef)> */
8059 RET_LABEL227
:(void)0;
8066 { /* Inline model#MMethodDef#msignature (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
8067 var231
= var_superprop
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_superprop:nullable MMethodDef(MMethodDef)> */
8069 RET_LABEL230
:(void)0;
8072 if (unlikely(var229
== NULL
)) {
8073 PRINT_ERROR("Runtime error: %s", "Cast failed");
8074 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1695);
8079 var_msignature
= var225
;
8082 var233
= nit__typing___nit__typing__TypeVisitor___resolve_for(var_v
, var_msignature
, var_recvtype
, var232
);
8084 /* <var233:MType> isa MSignature */
8085 cltype235
= type_nit__MSignature
.color
;
8086 idtype236
= type_nit__MSignature
.id
;
8087 if(cltype235
>= var233
->type
->table_size
) {
8090 var234
= var233
->type
->type_table
[cltype235
] == idtype236
;
8092 if (unlikely(!var234
)) {
8093 var_class_name237
= var233
== NULL ?
"null" : var233
->type
->name
;
8094 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MSignature", var_class_name237
);
8095 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1696);
8098 var_msignature
= var233
;
8099 var238
= NEW_nit__CallSite(&type_nit__CallSite
);
8101 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
8102 var241
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
8103 if (unlikely(var241
== NULL
)) {
8104 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
8105 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
8109 RET_LABEL240
:(void)0;
8113 { /* Inline typing#TypeVisitor#anchor (var_v) on <var_v:TypeVisitor> */
8114 var244
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
; /* _anchor on <var_v:TypeVisitor> */
8116 RET_LABEL243
:(void)0;
8121 { /* Inline model#MPropDef#mproperty (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
8122 var248
= var_superprop
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_superprop:nullable MMethodDef(MMethodDef)> */
8123 if (unlikely(var248
== NULL
)) {
8124 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
8125 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
8129 RET_LABEL247
:(void)0;
8134 ((void (*)(val
* self
, val
* p0
))(var238
->class->vft
[COLOR_nit__typing__CallSite__node_61d
]))(var238
, self
) /* node= on <var238:CallSite>*/;
8137 ((void (*)(val
* self
, val
* p0
))(var238
->class->vft
[COLOR_nit__typing__CallSite__recv_61d
]))(var238
, var_recvtype
) /* recv= on <var238:CallSite>*/;
8140 ((void (*)(val
* self
, val
* p0
))(var238
->class->vft
[COLOR_nit__typing__CallSite__mmodule_61d
]))(var238
, var239
) /* mmodule= on <var238:CallSite>*/;
8143 ((void (*)(val
* self
, val
* p0
))(var238
->class->vft
[COLOR_nit__typing__CallSite__anchor_61d
]))(var238
, var242
) /* anchor= on <var238:CallSite>*/;
8146 ((void (*)(val
* self
, short int p0
))(var238
->class->vft
[COLOR_nit__typing__CallSite__recv_is_self_61d
]))(var238
, var245
) /* recv_is_self= on <var238:CallSite>*/;
8149 ((void (*)(val
* self
, val
* p0
))(var238
->class->vft
[COLOR_nit__typing__CallSite__mproperty_61d
]))(var238
, var246
) /* mproperty= on <var238:CallSite>*/;
8152 ((void (*)(val
* self
, val
* p0
))(var238
->class->vft
[COLOR_nit__typing__CallSite__mpropdef_61d
]))(var238
, var_superprop
) /* mpropdef= on <var238:CallSite>*/;
8155 ((void (*)(val
* self
, val
* p0
))(var238
->class->vft
[COLOR_nit__typing__CallSite__msignature_61d
]))(var238
, var_msignature
) /* msignature= on <var238:CallSite>*/;
8158 ((void (*)(val
* self
, short int p0
))(var238
->class->vft
[COLOR_nit__typing__CallSite__erasure_cast_61d
]))(var238
, var249
) /* erasure_cast= on <var238:CallSite>*/;
8161 ((void (*)(val
* self
))(var238
->class->vft
[COLOR_standard__kernel__Object__init
]))(var238
) /* init on <var238:CallSite>*/;
8163 var_callsite
= var238
;
8165 { /* Inline typing#ASuperExpr#callsite= (self,var_callsite) on <self:ASuperExpr> */
8166 self
->attrs
[COLOR_nit__typing__ASuperExpr___callsite
].val
= var_callsite
; /* _callsite on <self:ASuperExpr> */
8167 RET_LABEL250
:(void)0;
8171 { /* Inline parser_nodes#ASuperExpr#n_args (self) on <self:ASuperExpr> */
8172 var253
= self
->attrs
[COLOR_nit__parser_nodes__ASuperExpr___n_args
].val
; /* _n_args on <self:ASuperExpr> */
8173 if (unlikely(var253
== NULL
)) {
8174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
8175 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2051);
8179 RET_LABEL252
:(void)0;
8183 var254
= nit__typing___AExprs___to_a(var251
);
8187 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
8188 var257
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
8190 RET_LABEL256
:(void)0;
8195 { /* Inline kernel#Int#> (var255,var258) on <var255:Int> */
8196 /* Covariant cast for argument 0 (i) <var258:Int> isa OTHER */
8197 /* <var258:Int> isa OTHER */
8198 var261
= 1; /* easy <var258:Int> isa OTHER*/
8199 if (unlikely(!var261
)) {
8200 var_class_name264
= type_standard__Int
.name
;
8201 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name264
);
8202 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
8205 var265
= var255
> var258
;
8208 RET_LABEL260
:(void)0;
8213 var266
= nit___nit__CallSite___check_signature(var_callsite
, var_v
, var_args
);
8217 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
8218 var269
= var_mpropdef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable MPropDef(MMethodDef)> */
8220 RET_LABEL268
:(void)0;
8223 if (var267
== NULL
) {
8224 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8225 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1706);
8228 var270
= nit___nit__MSignature___arity(var267
);
8231 var271
= nit___nit__MSignature___arity(var_msignature
);
8234 { /* Inline kernel#Int#< (var270,var271) on <var270:Int> */
8235 /* Covariant cast for argument 0 (i) <var271:Int> isa OTHER */
8236 /* <var271:Int> isa OTHER */
8237 var274
= 1; /* easy <var271:Int> isa OTHER*/
8238 if (unlikely(!var274
)) {
8239 var_class_name277
= type_standard__Int
.name
;
8240 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name277
);
8241 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 410);
8244 var278
= var270
< var271
;
8247 RET_LABEL273
:(void)0;
8252 var280
= varonce279
;
8254 var281
= "Error: Not enough implicit arguments to pass. Got ";
8256 var283
= standard___standard__NativeString___to_s_with_length(var281
, var282
);
8258 varonce279
= var280
;
8261 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
8262 var286
= var_mpropdef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable MPropDef(MMethodDef)> */
8264 RET_LABEL285
:(void)0;
8267 if (var284
== NULL
) {
8268 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8269 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1707);
8272 var287
= nit___nit__MSignature___arity(var284
);
8275 var289
= varonce288
;
8277 var290
= ", expected at least ";
8279 var292
= standard___standard__NativeString___to_s_with_length(var290
, var291
);
8281 varonce288
= var289
;
8284 var293
= nit___nit__MSignature___arity(var_msignature
);
8287 var295
= varonce294
;
8289 var296
= ". Signature is ";
8291 var298
= standard___standard__NativeString___to_s_with_length(var296
, var297
);
8293 varonce294
= var295
;
8295 var299
= NEW_standard__Array(&type_standard__Array__standard__Object
);
8296 { /* var299 = array_instance Array[Object] */
8298 var301
= NEW_standard__NativeArray(var300
, &type_standard__NativeArray__standard__Object
);
8299 ((struct instance_standard__NativeArray
*)var301
)->values
[0] = (val
*) var280
;
8300 var302
= BOX_standard__Int(var287
); /* autobox from Int to Object */
8301 ((struct instance_standard__NativeArray
*)var301
)->values
[1] = (val
*) var302
;
8302 ((struct instance_standard__NativeArray
*)var301
)->values
[2] = (val
*) var289
;
8303 var303
= BOX_standard__Int(var293
); /* autobox from Int to Object */
8304 ((struct instance_standard__NativeArray
*)var301
)->values
[3] = (val
*) var303
;
8305 ((struct instance_standard__NativeArray
*)var301
)->values
[4] = (val
*) var295
;
8306 ((struct instance_standard__NativeArray
*)var301
)->values
[5] = (val
*) var_msignature
;
8308 ((void (*)(val
* self
, val
* p0
, long p1
))(var299
->class->vft
[COLOR_standard__array__Array__with_native
]))(var299
, var301
, var300
) /* with_native on <var299:Array[Object]>*/;
8312 var304
= ((val
* (*)(val
* self
))(var299
->class->vft
[COLOR_standard__string__Object__to_s
]))(var299
) /* to_s on <var299:Array[Object]>*/;
8315 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var304
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
8323 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
8324 var308
= var_msignature
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
8325 if (unlikely(var308
== NULL
)) {
8326 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
8327 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1592);
8331 RET_LABEL307
:(void)0;
8336 var310
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_309
);
8341 var312
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_311
);
8345 var313
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_311
);
8349 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
8350 var316
= var_mpropdef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable MPropDef(MMethodDef)> */
8352 RET_LABEL315
:(void)0;
8355 if (var314
== NULL
) {
8356 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8357 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1713);
8360 { /* Inline model#MSignature#mparameters (var314) on <var314:nullable MSignature> */
8361 if (unlikely(var314
== NULL
)) {
8362 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8363 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1592);
8366 var319
= var314
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var314:nullable MSignature> */
8367 if (unlikely(var319
== NULL
)) {
8368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
8369 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1592);
8373 RET_LABEL318
:(void)0;
8377 var320
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var317
, var_i
);
8381 { /* Inline model#MParameter#mtype (var_p) on <var_p:MParameter> */
8382 var323
= var_p
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var_p:MParameter> */
8383 if (unlikely(var323
== NULL
)) {
8384 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8385 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1690);
8389 RET_LABEL322
:(void)0;
8393 { /* Inline model#MParameter#mtype (var_sp) on <var_sp:MParameter> */
8394 var326
= var_sp
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var_sp:MParameter> */
8395 if (unlikely(var326
== NULL
)) {
8396 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8397 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1690);
8401 RET_LABEL325
:(void)0;
8405 var327
= nit__typing___nit__typing__TypeVisitor___is_subtype(var_v
, var321
, var324
);
8410 var330
= varonce329
;
8412 var331
= "Type error: expected argument #";
8414 var333
= standard___standard__NativeString___to_s_with_length(var331
, var332
);
8416 varonce329
= var330
;
8419 var335
= varonce334
;
8421 var336
= " of type ";
8423 var338
= standard___standard__NativeString___to_s_with_length(var336
, var337
);
8425 varonce334
= var335
;
8428 { /* Inline model#MParameter#mtype (var_sp) on <var_sp:MParameter> */
8429 var341
= var_sp
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var_sp:MParameter> */
8430 if (unlikely(var341
== NULL
)) {
8431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8432 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1690);
8436 RET_LABEL340
:(void)0;
8440 var343
= varonce342
;
8442 var344
= ", got implicit argument ";
8444 var346
= standard___standard__NativeString___to_s_with_length(var344
, var345
);
8446 varonce342
= var343
;
8449 { /* Inline model#MParameter#name (var_p) on <var_p:MParameter> */
8450 var349
= var_p
->attrs
[COLOR_nit__model__MParameter___name
].val
; /* _name on <var_p:MParameter> */
8451 if (unlikely(var349
== NULL
)) {
8452 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8453 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1687);
8457 RET_LABEL348
:(void)0;
8461 var351
= varonce350
;
8463 var352
= " of type ";
8465 var354
= standard___standard__NativeString___to_s_with_length(var352
, var353
);
8467 varonce350
= var351
;
8470 { /* Inline model#MParameter#mtype (var_p) on <var_p:MParameter> */
8471 var357
= var_p
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var_p:MParameter> */
8472 if (unlikely(var357
== NULL
)) {
8473 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8474 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1690);
8478 RET_LABEL356
:(void)0;
8482 var359
= varonce358
;
8484 var360
= ". Signature is ";
8486 var362
= standard___standard__NativeString___to_s_with_length(var360
, var361
);
8488 varonce358
= var359
;
8490 var363
= NEW_standard__Array(&type_standard__Array__standard__Object
);
8491 { /* var363 = array_instance Array[Object] */
8493 var365
= NEW_standard__NativeArray(var364
, &type_standard__NativeArray__standard__Object
);
8494 ((struct instance_standard__NativeArray
*)var365
)->values
[0] = (val
*) var330
;
8495 var366
= BOX_standard__Int(var_i
); /* autobox from Int to Object */
8496 ((struct instance_standard__NativeArray
*)var365
)->values
[1] = (val
*) var366
;
8497 ((struct instance_standard__NativeArray
*)var365
)->values
[2] = (val
*) var335
;
8498 ((struct instance_standard__NativeArray
*)var365
)->values
[3] = (val
*) var339
;
8499 ((struct instance_standard__NativeArray
*)var365
)->values
[4] = (val
*) var343
;
8500 ((struct instance_standard__NativeArray
*)var365
)->values
[5] = (val
*) var347
;
8501 ((struct instance_standard__NativeArray
*)var365
)->values
[6] = (val
*) var351
;
8502 ((struct instance_standard__NativeArray
*)var365
)->values
[7] = (val
*) var355
;
8503 ((struct instance_standard__NativeArray
*)var365
)->values
[8] = (val
*) var359
;
8504 ((struct instance_standard__NativeArray
*)var365
)->values
[9] = (val
*) var_msignature
;
8506 ((void (*)(val
* self
, val
* p0
, long p1
))(var363
->class->vft
[COLOR_standard__array__Array__with_native
]))(var363
, var365
, var364
) /* with_native on <var363:Array[Object]>*/;
8510 var367
= ((val
* (*)(val
* self
))(var363
->class->vft
[COLOR_standard__string__Object__to_s
]))(var363
) /* to_s on <var363:Array[Object]>*/;
8513 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var367
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
8520 { /* Inline kernel#Int#+ (var_i,var368) on <var_i:Int> */
8521 /* Covariant cast for argument 0 (i) <var368:Int> isa OTHER */
8522 /* <var368:Int> isa OTHER */
8523 var371
= 1; /* easy <var368:Int> isa OTHER*/
8524 if (unlikely(!var371
)) {
8525 var_class_name374
= type_standard__Int
.name
;
8526 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name374
);
8527 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
8530 var375
= var_i
+ var368
;
8533 RET_LABEL370
:(void)0;
8538 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_311
); /* Direct call array#ArrayIterator#next on <var_311:ArrayIterator[MParameter]>*/
8541 goto BREAK_label376
;
8544 BREAK_label376
: (void)0;
8546 { /* Inline abstract_collection#Iterator#finish (var_311) on <var_311:ArrayIterator[MParameter]> */
8547 RET_LABEL377
:(void)0;
8553 { /* Inline typing#AExpr#is_typed= (self,var378) on <self:ASuperExpr> */
8554 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var378
; /* _is_typed on <self:ASuperExpr> */
8555 RET_LABEL379
:(void)0;
8560 /* method typing#ANewExpr#callsite for (self: ANewExpr): nullable CallSite */
8561 val
* nit__typing___ANewExpr___callsite(val
* self
) {
8562 val
* var
/* : nullable CallSite */;
8563 val
* var1
/* : nullable CallSite */;
8564 var1
= self
->attrs
[COLOR_nit__typing__ANewExpr___callsite
].val
; /* _callsite on <self:ANewExpr> */
8569 /* method typing#ANewExpr#callsite= for (self: ANewExpr, nullable CallSite) */
8570 void nit__typing___ANewExpr___callsite_61d(val
* self
, val
* p0
) {
8571 self
->attrs
[COLOR_nit__typing__ANewExpr___callsite
].val
= p0
; /* _callsite on <self:ANewExpr> */
8574 /* method typing#ANewExpr#recvtype for (self: ANewExpr): nullable MClassType */
8575 val
* nit__typing___ANewExpr___recvtype(val
* self
) {
8576 val
* var
/* : nullable MClassType */;
8577 val
* var1
/* : nullable MClassType */;
8578 var1
= self
->attrs
[COLOR_nit__typing__ANewExpr___recvtype
].val
; /* _recvtype on <self:ANewExpr> */
8583 /* method typing#ANewExpr#recvtype= for (self: ANewExpr, nullable MClassType) */
8584 void nit__typing___ANewExpr___recvtype_61d(val
* self
, val
* p0
) {
8585 self
->attrs
[COLOR_nit__typing__ANewExpr___recvtype
].val
= p0
; /* _recvtype on <self:ANewExpr> */
8588 /* method typing#ANewExpr#accept_typing for (self: ANewExpr, TypeVisitor) */
8589 void nit__typing___ANewExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
8590 val
* var_v
/* var v: TypeVisitor */;
8591 val
* var
/* : AType */;
8592 val
* var2
/* : AType */;
8593 val
* var3
/* : nullable MType */;
8594 val
* var_recvtype
/* var recvtype: nullable MType */;
8595 val
* var4
/* : null */;
8596 short int var5
/* : Bool */;
8597 short int var6
/* : Bool */;
8598 val
* var_other
/* var other: nullable Object */;
8599 short int var8
/* : Bool */;
8600 short int var10
/* : Bool */;
8601 short int var11
/* : Bool */;
8604 short int var12
/* : Bool */;
8605 short int var13
/* : Bool */;
8608 static val
* varonce
;
8609 val
* var16
/* : String */;
8610 char* var17
/* : NativeString */;
8611 long var18
/* : Int */;
8612 val
* var19
/* : FlatString */;
8613 static val
* varonce20
;
8614 val
* var21
/* : String */;
8615 char* var22
/* : NativeString */;
8616 long var23
/* : Int */;
8617 val
* var24
/* : FlatString */;
8618 val
* var25
/* : Array[Object] */;
8619 long var26
/* : Int */;
8620 val
* var27
/* : NativeArray[Object] */;
8621 val
* var28
/* : String */;
8622 static val
* varonce29
;
8623 val
* var30
/* : String */;
8624 char* var31
/* : NativeString */;
8625 long var32
/* : Int */;
8626 val
* var33
/* : FlatString */;
8627 static val
* varonce34
;
8628 val
* var35
/* : String */;
8629 char* var36
/* : NativeString */;
8630 long var37
/* : Int */;
8631 val
* var38
/* : FlatString */;
8632 val
* var39
/* : Array[Object] */;
8633 long var40
/* : Int */;
8634 val
* var41
/* : NativeArray[Object] */;
8635 val
* var42
/* : String */;
8636 val
* var44
/* : nullable TId */;
8637 val
* var46
/* : nullable TId */;
8638 val
* var_nid
/* var nid: nullable TId */;
8639 val
* var47
/* : null */;
8640 short int var48
/* : Bool */;
8641 short int var49
/* : Bool */;
8642 val
* var_other51
/* var other: nullable Object */;
8643 short int var52
/* : Bool */;
8644 short int var53
/* : Bool */;
8645 val
* var54
/* : String */;
8646 val
* var_name
/* var name: String */;
8647 static val
* varonce55
;
8648 val
* var56
/* : String */;
8649 char* var57
/* : NativeString */;
8650 long var58
/* : Int */;
8651 val
* var59
/* : FlatString */;
8652 short int var60
/* : Bool */;
8653 val
* var61
/* : nullable CallSite */;
8654 val
* var_callsite
/* var callsite: nullable CallSite */;
8655 val
* var62
/* : null */;
8656 short int var63
/* : Bool */;
8657 short int var64
/* : Bool */;
8658 short int var66
/* : Bool */;
8659 short int var68
/* : Bool */;
8660 val
* var69
/* : MMethod */;
8661 val
* var71
/* : MMethod */;
8662 short int var72
/* : Bool */;
8663 short int var74
/* : Bool */;
8664 short int var75
/* : Bool */;
8665 val
* var76
/* : MClass */;
8666 val
* var78
/* : MClass */;
8667 val
* var79
/* : MClassKind */;
8668 val
* var81
/* : MClassKind */;
8669 val
* var_kind
/* var kind: MClassKind */;
8670 val
* var82
/* : MClassKind */;
8671 short int var83
/* : Bool */;
8672 short int var85
/* : Bool */;
8673 short int var86
/* : Bool */;
8674 static val
* varonce87
;
8675 val
* var88
/* : String */;
8676 char* var89
/* : NativeString */;
8677 long var90
/* : Int */;
8678 val
* var91
/* : FlatString */;
8679 static val
* varonce92
;
8680 val
* var93
/* : String */;
8681 char* var94
/* : NativeString */;
8682 long var95
/* : Int */;
8683 val
* var96
/* : FlatString */;
8684 static val
* varonce97
;
8685 val
* var98
/* : String */;
8686 char* var99
/* : NativeString */;
8687 long var100
/* : Int */;
8688 val
* var101
/* : FlatString */;
8689 val
* var102
/* : Array[Object] */;
8690 long var103
/* : Int */;
8691 val
* var104
/* : NativeArray[Object] */;
8692 val
* var105
/* : String */;
8693 val
* var107
/* : MSignature */;
8694 val
* var109
/* : MSignature */;
8695 val
* var110
/* : nullable MType */;
8696 val
* var112
/* : nullable MType */;
8697 val
* var114
/* : nullable MType */;
8698 val
* var116
/* : nullable MType */;
8699 val
* var117
/* : null */;
8700 short int var118
/* : Bool */;
8701 short int var119
/* : Bool */;
8702 short int var121
/* : Bool */;
8703 short int var122
/* : Bool */;
8704 val
* var124
/* : MMethod */;
8705 val
* var126
/* : MMethod */;
8706 val
* var127
/* : MClass */;
8707 val
* var129
/* : MClass */;
8708 short int var130
/* : Bool */;
8709 short int var131
/* : Bool */;
8710 static val
* varonce132
;
8711 val
* var133
/* : String */;
8712 char* var134
/* : NativeString */;
8713 long var135
/* : Int */;
8714 val
* var136
/* : FlatString */;
8715 static val
* varonce137
;
8716 val
* var138
/* : String */;
8717 char* var139
/* : NativeString */;
8718 long var140
/* : Int */;
8719 val
* var141
/* : FlatString */;
8720 val
* var142
/* : Array[Object] */;
8721 long var143
/* : Int */;
8722 val
* var144
/* : NativeArray[Object] */;
8723 val
* var145
/* : String */;
8724 val
* var146
/* : AExprs */;
8725 val
* var148
/* : AExprs */;
8726 val
* var149
/* : Array[AExpr] */;
8727 val
* var_args
/* var args: Array[AExpr] */;
8728 short int var150
/* : Bool */;
8731 { /* Inline parser_nodes#ANewExpr#n_type (self) on <self:ANewExpr> */
8732 var2
= self
->attrs
[COLOR_nit__parser_nodes__ANewExpr___n_type
].val
; /* _n_type on <self:ANewExpr> */
8733 if (unlikely(var2
== NULL
)) {
8734 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
8735 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1962);
8743 var3
= nit__typing___nit__typing__TypeVisitor___resolve_mtype(var_v
, var
);
8745 var_recvtype
= var3
;
8747 if (var_recvtype
== NULL
) {
8748 var5
= 1; /* is null */
8750 var5
= 0; /* arg is null but recv is not */
8753 { /* Inline kernel#Object#== (var_recvtype,var4) on <var_recvtype:nullable MType> */
8756 { /* Inline kernel#Object#is_same_instance (var_recvtype,var_other) on <var_recvtype:nullable MType(MType)> */
8757 var10
= var_recvtype
== var_other
;
8773 /* <var_recvtype:nullable MType(MType)> isa MClassType */
8774 cltype
= type_nit__MClassType
.color
;
8775 idtype
= type_nit__MClassType
.id
;
8776 if(cltype
>= var_recvtype
->type
->table_size
) {
8779 var11
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
8783 /* <var_recvtype:nullable MType(MType)> isa MNullableType */
8784 cltype14
= type_nit__MNullableType
.color
;
8785 idtype15
= type_nit__MNullableType
.id
;
8786 if(cltype14
>= var_recvtype
->type
->table_size
) {
8789 var13
= var_recvtype
->type
->type_table
[cltype14
] == idtype15
;
8795 var17
= "Type error: cannot instantiate the nullable type ";
8797 var19
= standard___standard__NativeString___to_s_with_length(var17
, var18
);
8806 var24
= standard___standard__NativeString___to_s_with_length(var22
, var23
);
8810 var25
= NEW_standard__Array(&type_standard__Array__standard__Object
);
8811 { /* var25 = array_instance Array[Object] */
8813 var27
= NEW_standard__NativeArray(var26
, &type_standard__NativeArray__standard__Object
);
8814 ((struct instance_standard__NativeArray
*)var27
)->values
[0] = (val
*) var16
;
8815 ((struct instance_standard__NativeArray
*)var27
)->values
[1] = (val
*) var_recvtype
;
8816 ((struct instance_standard__NativeArray
*)var27
)->values
[2] = (val
*) var21
;
8818 ((void (*)(val
* self
, val
* p0
, long p1
))(var25
->class->vft
[COLOR_standard__array__Array__with_native
]))(var25
, var27
, var26
) /* with_native on <var25:Array[Object]>*/;
8822 var28
= ((val
* (*)(val
* self
))(var25
->class->vft
[COLOR_standard__string__Object__to_s
]))(var25
) /* to_s on <var25:Array[Object]>*/;
8825 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var28
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
8832 var31
= "Type error: cannot instantiate the formal type ";
8834 var33
= standard___standard__NativeString___to_s_with_length(var31
, var32
);
8843 var38
= standard___standard__NativeString___to_s_with_length(var36
, var37
);
8847 var39
= NEW_standard__Array(&type_standard__Array__standard__Object
);
8848 { /* var39 = array_instance Array[Object] */
8850 var41
= NEW_standard__NativeArray(var40
, &type_standard__NativeArray__standard__Object
);
8851 ((struct instance_standard__NativeArray
*)var41
)->values
[0] = (val
*) var30
;
8852 ((struct instance_standard__NativeArray
*)var41
)->values
[1] = (val
*) var_recvtype
;
8853 ((struct instance_standard__NativeArray
*)var41
)->values
[2] = (val
*) var35
;
8855 ((void (*)(val
* self
, val
* p0
, long p1
))(var39
->class->vft
[COLOR_standard__array__Array__with_native
]))(var39
, var41
, var40
) /* with_native on <var39:Array[Object]>*/;
8859 var42
= ((val
* (*)(val
* self
))(var39
->class->vft
[COLOR_standard__string__Object__to_s
]))(var39
) /* to_s on <var39:Array[Object]>*/;
8862 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var42
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
8869 { /* Inline typing#ANewExpr#recvtype= (self,var_recvtype) on <self:ANewExpr> */
8870 self
->attrs
[COLOR_nit__typing__ANewExpr___recvtype
].val
= var_recvtype
; /* _recvtype on <self:ANewExpr> */
8871 RET_LABEL43
:(void)0;
8875 { /* Inline parser_nodes#ANewExpr#n_id (self) on <self:ANewExpr> */
8876 var46
= self
->attrs
[COLOR_nit__parser_nodes__ANewExpr___n_id
].val
; /* _n_id on <self:ANewExpr> */
8878 RET_LABEL45
:(void)0;
8883 if (var_nid
== NULL
) {
8884 var48
= 0; /* is null */
8886 var48
= 1; /* arg is null and recv is not */
8889 { /* Inline kernel#Object#!= (var_nid,var47) on <var_nid:nullable TId> */
8890 var_other51
= var47
;
8892 var52
= ((short int (*)(val
* self
, val
* p0
))(var_nid
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_nid
, var_other51
) /* == on <var_nid:nullable TId(TId)>*/;
8897 RET_LABEL50
:(void)0;
8903 var54
= nit__lexer_work___Token___text(var_nid
);
8912 var59
= standard___standard__NativeString___to_s_with_length(var57
, var58
);
8920 var61
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_recvtype
, var_name
, var60
);
8922 var_callsite
= var61
;
8924 if (var_callsite
== NULL
) {
8925 var63
= 1; /* is null */
8927 var63
= 0; /* arg is null but recv is not */
8930 { /* Inline kernel#Object#== (var_callsite,var62) on <var_callsite:nullable CallSite> */
8933 { /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
8934 var68
= var_callsite
== var_other
;
8937 RET_LABEL67
:(void)0;
8942 RET_LABEL65
:(void)0;
8951 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
8952 var71
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
8953 if (unlikely(var71
== NULL
)) {
8954 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
8955 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 487);
8959 RET_LABEL70
:(void)0;
8963 { /* Inline model#MMethod#is_new (var69) on <var69:MMethod> */
8964 var74
= var69
->attrs
[COLOR_nit__model__MMethod___is_new
].s
; /* _is_new on <var69:MMethod> */
8966 RET_LABEL73
:(void)0;
8972 { /* Inline model#MClassType#mclass (var_recvtype) on <var_recvtype:nullable MType(MClassType)> */
8973 var78
= var_recvtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_recvtype:nullable MType(MClassType)> */
8974 if (unlikely(var78
== NULL
)) {
8975 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8976 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
8980 RET_LABEL77
:(void)0;
8984 { /* Inline model#MClass#kind (var76) on <var76:MClass> */
8985 var81
= var76
->attrs
[COLOR_nit__model__MClass___kind
].val
; /* _kind on <var76:MClass> */
8986 if (unlikely(var81
== NULL
)) {
8987 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
8988 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 399);
8992 RET_LABEL80
:(void)0;
8997 var82
= nit__model___standard__Object___concrete_kind(self
);
9000 { /* Inline kernel#Object#!= (var_kind,var82) on <var_kind:MClassKind> */
9001 var_other51
= var82
;
9003 var85
= ((short int (*)(val
* self
, val
* p0
))(var_kind
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_kind
, var_other51
) /* == on <var_kind:MClassKind>*/;
9008 RET_LABEL84
:(void)0;
9015 var89
= "Type Error: Cannot instantiate ";
9017 var91
= standard___standard__NativeString___to_s_with_length(var89
, var90
);
9026 var96
= standard___standard__NativeString___to_s_with_length(var94
, var95
);
9035 var101
= standard___standard__NativeString___to_s_with_length(var99
, var100
);
9039 var102
= NEW_standard__Array(&type_standard__Array__standard__Object
);
9040 { /* var102 = array_instance Array[Object] */
9042 var104
= NEW_standard__NativeArray(var103
, &type_standard__NativeArray__standard__Object
);
9043 ((struct instance_standard__NativeArray
*)var104
)->values
[0] = (val
*) var88
;
9044 ((struct instance_standard__NativeArray
*)var104
)->values
[1] = (val
*) var_kind
;
9045 ((struct instance_standard__NativeArray
*)var104
)->values
[2] = (val
*) var93
;
9046 ((struct instance_standard__NativeArray
*)var104
)->values
[3] = (val
*) var_recvtype
;
9047 ((struct instance_standard__NativeArray
*)var104
)->values
[4] = (val
*) var98
;
9049 ((void (*)(val
* self
, val
* p0
, long p1
))(var102
->class->vft
[COLOR_standard__array__Array__with_native
]))(var102
, var104
, var103
) /* with_native on <var102:Array[Object]>*/;
9053 var105
= ((val
* (*)(val
* self
))(var102
->class->vft
[COLOR_standard__string__Object__to_s
]))(var102
) /* to_s on <var102:Array[Object]>*/;
9056 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var105
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
9062 { /* Inline typing#AExpr#mtype= (self,var_recvtype) on <self:ANewExpr> */
9063 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var_recvtype
; /* _mtype on <self:ANewExpr> */
9064 RET_LABEL106
:(void)0;
9069 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
9070 var109
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
; /* _msignature on <var_callsite:nullable CallSite(CallSite)> */
9071 if (unlikely(var109
== NULL
)) {
9072 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
9073 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 494);
9077 RET_LABEL108
:(void)0;
9081 { /* Inline model#MSignature#return_mtype (var107) on <var107:MSignature> */
9082 var112
= var107
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var107:MSignature> */
9084 RET_LABEL111
:(void)0;
9088 { /* Inline typing#AExpr#mtype= (self,var110) on <self:ANewExpr> */
9089 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var110
; /* _mtype on <self:ANewExpr> */
9090 RET_LABEL113
:(void)0;
9094 { /* Inline typing#AExpr#mtype (self) on <self:ANewExpr> */
9095 var116
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:ANewExpr> */
9097 RET_LABEL115
:(void)0;
9101 if (var114
== NULL
) {
9102 var118
= 0; /* is null */
9104 var118
= 1; /* arg is null and recv is not */
9107 { /* Inline kernel#Object#!= (var114,var117) on <var114:nullable MType> */
9108 var_other51
= var117
;
9110 var121
= ((short int (*)(val
* self
, val
* p0
))(var114
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var114
, var_other51
) /* == on <var114:nullable MType(MType)>*/;
9115 RET_LABEL120
:(void)0;
9119 if (unlikely(!var118
)) {
9120 PRINT_ERROR("Runtime error: %s", "Assert failed");
9121 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1771);
9126 { /* Inline typing#ANewExpr#callsite= (self,var_callsite) on <self:ANewExpr> */
9127 self
->attrs
[COLOR_nit__typing__ANewExpr___callsite
].val
= var_callsite
; /* _callsite on <self:ANewExpr> */
9128 RET_LABEL123
:(void)0;
9132 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
9133 var126
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
9134 if (unlikely(var126
== NULL
)) {
9135 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
9136 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 487);
9140 RET_LABEL125
:(void)0;
9144 { /* Inline model#MClassType#mclass (var_recvtype) on <var_recvtype:nullable MType(MClassType)> */
9145 var129
= var_recvtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_recvtype:nullable MType(MClassType)> */
9146 if (unlikely(var129
== NULL
)) {
9147 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9148 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
9152 RET_LABEL128
:(void)0;
9156 var130
= nit___nit__MMethod___is_init_for(var124
, var127
);
9161 var133
= varonce132
;
9165 var136
= standard___standard__NativeString___to_s_with_length(var134
, var135
);
9167 varonce132
= var133
;
9170 var138
= varonce137
;
9172 var139
= " is not a constructor.";
9174 var141
= standard___standard__NativeString___to_s_with_length(var139
, var140
);
9176 varonce137
= var138
;
9178 var142
= NEW_standard__Array(&type_standard__Array__standard__Object
);
9179 { /* var142 = array_instance Array[Object] */
9181 var144
= NEW_standard__NativeArray(var143
, &type_standard__NativeArray__standard__Object
);
9182 ((struct instance_standard__NativeArray
*)var144
)->values
[0] = (val
*) var133
;
9183 ((struct instance_standard__NativeArray
*)var144
)->values
[1] = (val
*) var_name
;
9184 ((struct instance_standard__NativeArray
*)var144
)->values
[2] = (val
*) var138
;
9186 ((void (*)(val
* self
, val
* p0
, long p1
))(var142
->class->vft
[COLOR_standard__array__Array__with_native
]))(var142
, var144
, var143
) /* with_native on <var142:Array[Object]>*/;
9190 var145
= ((val
* (*)(val
* self
))(var142
->class->vft
[COLOR_standard__string__Object__to_s
]))(var142
) /* to_s on <var142:Array[Object]>*/;
9193 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var145
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
9199 { /* Inline parser_nodes#ANewExpr#n_args (self) on <self:ANewExpr> */
9200 var148
= self
->attrs
[COLOR_nit__parser_nodes__ANewExpr___n_args
].val
; /* _n_args on <self:ANewExpr> */
9201 if (unlikely(var148
== NULL
)) {
9202 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
9203 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1968);
9207 RET_LABEL147
:(void)0;
9211 var149
= nit__typing___AExprs___to_a(var146
);
9215 var150
= nit___nit__CallSite___check_signature(var_callsite
, var_v
, var_args
);
9219 /* method typing#AAttrFormExpr#mproperty for (self: AAttrFormExpr): nullable MAttribute */
9220 val
* nit__typing___AAttrFormExpr___mproperty(val
* self
) {
9221 val
* var
/* : nullable MAttribute */;
9222 val
* var1
/* : nullable MAttribute */;
9223 var1
= self
->attrs
[COLOR_nit__typing__AAttrFormExpr___mproperty
].val
; /* _mproperty on <self:AAttrFormExpr> */
9228 /* method typing#AAttrFormExpr#mproperty= for (self: AAttrFormExpr, nullable MAttribute) */
9229 void nit__typing___AAttrFormExpr___mproperty_61d(val
* self
, val
* p0
) {
9230 self
->attrs
[COLOR_nit__typing__AAttrFormExpr___mproperty
].val
= p0
; /* _mproperty on <self:AAttrFormExpr> */
9233 /* method typing#AAttrFormExpr#attr_type for (self: AAttrFormExpr): nullable MType */
9234 val
* nit__typing___AAttrFormExpr___attr_type(val
* self
) {
9235 val
* var
/* : nullable MType */;
9236 val
* var1
/* : nullable MType */;
9237 var1
= self
->attrs
[COLOR_nit__typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:AAttrFormExpr> */
9242 /* method typing#AAttrFormExpr#attr_type= for (self: AAttrFormExpr, nullable MType) */
9243 void nit__typing___AAttrFormExpr___attr_type_61d(val
* self
, val
* p0
) {
9244 self
->attrs
[COLOR_nit__typing__AAttrFormExpr___attr_type
].val
= p0
; /* _attr_type on <self:AAttrFormExpr> */
9247 /* method typing#AAttrFormExpr#resolve_property for (self: AAttrFormExpr, TypeVisitor) */
9248 void nit__typing___AAttrFormExpr___resolve_property(val
* self
, val
* p0
) {
9249 val
* var_v
/* var v: TypeVisitor */;
9250 val
* var
/* : AExpr */;
9251 val
* var2
/* : AExpr */;
9252 val
* var3
/* : nullable MType */;
9253 val
* var_recvtype
/* var recvtype: nullable MType */;
9254 val
* var4
/* : null */;
9255 short int var5
/* : Bool */;
9256 short int var6
/* : Bool */;
9257 val
* var_other
/* var other: nullable Object */;
9258 short int var8
/* : Bool */;
9259 short int var10
/* : Bool */;
9260 val
* var11
/* : TAttrid */;
9261 val
* var13
/* : TAttrid */;
9262 val
* var14
/* : String */;
9263 val
* var_name
/* var name: String */;
9264 short int var15
/* : Bool */;
9267 static val
* varonce
;
9268 val
* var16
/* : String */;
9269 char* var17
/* : NativeString */;
9270 long var18
/* : Int */;
9271 val
* var19
/* : FlatString */;
9272 static val
* varonce20
;
9273 val
* var21
/* : String */;
9274 char* var22
/* : NativeString */;
9275 long var23
/* : Int */;
9276 val
* var24
/* : FlatString */;
9277 val
* var25
/* : Array[Object] */;
9278 long var26
/* : Int */;
9279 val
* var27
/* : NativeArray[Object] */;
9280 val
* var28
/* : String */;
9281 val
* var29
/* : MType */;
9282 val
* var_unsafe_type
/* var unsafe_type: MType */;
9283 val
* var30
/* : nullable MProperty */;
9284 val
* var_mproperty
/* var mproperty: nullable MProperty */;
9285 val
* var31
/* : null */;
9286 short int var32
/* : Bool */;
9287 short int var33
/* : Bool */;
9288 short int var35
/* : Bool */;
9289 short int var37
/* : Bool */;
9290 val
* var38
/* : ModelBuilder */;
9291 val
* var40
/* : ModelBuilder */;
9292 static val
* varonce41
;
9293 val
* var42
/* : String */;
9294 char* var43
/* : NativeString */;
9295 long var44
/* : Int */;
9296 val
* var45
/* : FlatString */;
9297 static val
* varonce46
;
9298 val
* var47
/* : String */;
9299 char* var48
/* : NativeString */;
9300 long var49
/* : Int */;
9301 val
* var50
/* : FlatString */;
9302 static val
* varonce51
;
9303 val
* var52
/* : String */;
9304 char* var53
/* : NativeString */;
9305 long var54
/* : Int */;
9306 val
* var55
/* : FlatString */;
9307 val
* var56
/* : Array[Object] */;
9308 long var57
/* : Int */;
9309 val
* var58
/* : NativeArray[Object] */;
9310 val
* var59
/* : String */;
9311 short int var60
/* : Bool */;
9314 val
* var64
/* : MModule */;
9315 val
* var66
/* : MModule */;
9316 val
* var67
/* : Array[MPropDef] */;
9317 val
* var_mpropdefs
/* var mpropdefs: Array[MAttributeDef] */;
9318 long var68
/* : Int */;
9319 long var70
/* : Int */;
9320 long var71
/* : Int */;
9321 short int var72
/* : Bool */;
9322 short int var74
/* : Bool */;
9323 val
* var75
/* : nullable Object */;
9324 val
* var_mpropdef
/* var mpropdef: MAttributeDef */;
9325 val
* var76
/* : nullable MType */;
9326 val
* var78
/* : nullable MType */;
9327 val
* var_attr_type
/* var attr_type: MType */;
9328 val
* var79
/* : AExpr */;
9329 val
* var81
/* : AExpr */;
9330 short int var82
/* : Bool */;
9333 val
* var85
/* : MType */;
9336 { /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on <self:AAttrFormExpr> */
9337 var2
= self
->attrs
[COLOR_nit__parser_nodes__AAttrFormExpr___n_expr
].val
; /* _n_expr on <self:AAttrFormExpr> */
9338 if (unlikely(var2
== NULL
)) {
9339 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9340 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1976);
9348 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var
);
9350 var_recvtype
= var3
;
9352 if (var_recvtype
== NULL
) {
9353 var5
= 1; /* is null */
9355 var5
= 0; /* arg is null but recv is not */
9358 { /* Inline kernel#Object#== (var_recvtype,var4) on <var_recvtype:nullable MType> */
9361 { /* Inline kernel#Object#is_same_instance (var_recvtype,var_other) on <var_recvtype:nullable MType(MType)> */
9362 var10
= var_recvtype
== var_other
;
9379 { /* Inline parser_nodes#AAttrFormExpr#n_id (self) on <self:AAttrFormExpr> */
9380 var13
= self
->attrs
[COLOR_nit__parser_nodes__AAttrFormExpr___n_id
].val
; /* _n_id on <self:AAttrFormExpr> */
9381 if (unlikely(var13
== NULL
)) {
9382 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
9383 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1979);
9387 RET_LABEL12
:(void)0;
9391 var14
= nit__lexer_work___Token___text(var11
);
9394 /* <var_recvtype:nullable MType(MType)> isa MNullType */
9395 cltype
= type_nit__MNullType
.color
;
9396 idtype
= type_nit__MNullType
.id
;
9397 if(cltype
>= var_recvtype
->type
->table_size
) {
9400 var15
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
9406 var17
= "Error: Attribute \'";
9408 var19
= standard___standard__NativeString___to_s_with_length(var17
, var18
);
9415 var22
= "\' access on \'null\'.";
9417 var24
= standard___standard__NativeString___to_s_with_length(var22
, var23
);
9421 var25
= NEW_standard__Array(&type_standard__Array__standard__Object
);
9422 { /* var25 = array_instance Array[Object] */
9424 var27
= NEW_standard__NativeArray(var26
, &type_standard__NativeArray__standard__Object
);
9425 ((struct instance_standard__NativeArray
*)var27
)->values
[0] = (val
*) var16
;
9426 ((struct instance_standard__NativeArray
*)var27
)->values
[1] = (val
*) var_name
;
9427 ((struct instance_standard__NativeArray
*)var27
)->values
[2] = (val
*) var21
;
9429 ((void (*)(val
* self
, val
* p0
, long p1
))(var25
->class->vft
[COLOR_standard__array__Array__with_native
]))(var25
, var27
, var26
) /* with_native on <var25:Array[Object]>*/;
9433 var28
= ((val
* (*)(val
* self
))(var25
->class->vft
[COLOR_standard__string__Object__to_s
]))(var25
) /* to_s on <var25:Array[Object]>*/;
9436 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var28
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
9442 var29
= nit__typing___nit__typing__TypeVisitor___anchor_to(var_v
, var_recvtype
);
9444 var_unsafe_type
= var29
;
9446 var30
= nit__typing___nit__typing__TypeVisitor___try_get_mproperty_by_name2(var_v
, self
, var_unsafe_type
, var_name
);
9448 var_mproperty
= var30
;
9450 if (var_mproperty
== NULL
) {
9451 var32
= 1; /* is null */
9453 var32
= 0; /* arg is null but recv is not */
9456 { /* Inline kernel#Object#== (var_mproperty,var31) on <var_mproperty:nullable MProperty> */
9459 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
9460 var37
= var_mproperty
== var_other
;
9463 RET_LABEL36
:(void)0;
9468 RET_LABEL34
:(void)0;
9474 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
9475 var40
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
9476 if (unlikely(var40
== NULL
)) {
9477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
9478 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
9482 RET_LABEL39
:(void)0;
9488 var43
= "Error: Attribute ";
9490 var45
= standard___standard__NativeString___to_s_with_length(var43
, var44
);
9497 var48
= " doesn\'t exists in ";
9499 var50
= standard___standard__NativeString___to_s_with_length(var48
, var49
);
9508 var55
= standard___standard__NativeString___to_s_with_length(var53
, var54
);
9512 var56
= NEW_standard__Array(&type_standard__Array__standard__Object
);
9513 { /* var56 = array_instance Array[Object] */
9515 var58
= NEW_standard__NativeArray(var57
, &type_standard__NativeArray__standard__Object
);
9516 ((struct instance_standard__NativeArray
*)var58
)->values
[0] = (val
*) var42
;
9517 ((struct instance_standard__NativeArray
*)var58
)->values
[1] = (val
*) var_name
;
9518 ((struct instance_standard__NativeArray
*)var58
)->values
[2] = (val
*) var47
;
9519 ((struct instance_standard__NativeArray
*)var58
)->values
[3] = (val
*) var_recvtype
;
9520 ((struct instance_standard__NativeArray
*)var58
)->values
[4] = (val
*) var52
;
9522 ((void (*)(val
* self
, val
* p0
, long p1
))(var56
->class->vft
[COLOR_standard__array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
9526 var59
= ((val
* (*)(val
* self
))(var56
->class->vft
[COLOR_standard__string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
9529 nit___nit__ModelBuilder___error(var38
, self
, var59
); /* Direct call modelbuilder_base#ModelBuilder#error on <var38:ModelBuilder>*/
9534 /* <var_mproperty:nullable MProperty(MProperty)> isa MAttribute */
9535 cltype61
= type_nit__MAttribute
.color
;
9536 idtype62
= type_nit__MAttribute
.id
;
9537 if(cltype61
>= var_mproperty
->type
->table_size
) {
9540 var60
= var_mproperty
->type
->type_table
[cltype61
] == idtype62
;
9542 if (unlikely(!var60
)) {
9543 PRINT_ERROR("Runtime error: %s", "Assert failed");
9544 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1812);
9548 { /* Inline typing#AAttrFormExpr#mproperty= (self,var_mproperty) on <self:AAttrFormExpr> */
9549 self
->attrs
[COLOR_nit__typing__AAttrFormExpr___mproperty
].val
= var_mproperty
; /* _mproperty on <self:AAttrFormExpr> */
9550 RET_LABEL63
:(void)0;
9554 { /* Inline typing#TypeVisitor#mmodule (var_v) on <var_v:TypeVisitor> */
9555 var66
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <var_v:TypeVisitor> */
9556 if (unlikely(var66
== NULL
)) {
9557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
9558 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
9562 RET_LABEL65
:(void)0;
9566 var67
= nit___nit__MProperty___lookup_definitions(var_mproperty
, var64
, var_unsafe_type
);
9568 var_mpropdefs
= var67
;
9570 { /* Inline array#AbstractArrayRead#length (var_mpropdefs) on <var_mpropdefs:Array[MAttributeDef]> */
9571 var70
= var_mpropdefs
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_mpropdefs:Array[MAttributeDef]> */
9573 RET_LABEL69
:(void)0;
9578 { /* Inline kernel#Int#== (var68,var71) on <var68:Int> */
9579 var74
= var68
== var71
;
9582 RET_LABEL73
:(void)0;
9585 if (unlikely(!var72
)) {
9586 PRINT_ERROR("Runtime error: %s", "Assert failed");
9587 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1816);
9591 var75
= standard___standard__SequenceRead___Collection__first(var_mpropdefs
);
9593 var_mpropdef
= var75
;
9595 { /* Inline model#MAttributeDef#static_mtype (var_mpropdef) on <var_mpropdef:MAttributeDef> */
9596 var78
= var_mpropdef
->attrs
[COLOR_nit__model__MAttributeDef___static_mtype
].val
; /* _static_mtype on <var_mpropdef:MAttributeDef> */
9598 RET_LABEL77
:(void)0;
9601 if (unlikely(var76
== NULL
)) {
9602 PRINT_ERROR("Runtime error: %s", "Cast failed");
9603 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1818);
9606 var_attr_type
= var76
;
9608 { /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on <self:AAttrFormExpr> */
9609 var81
= self
->attrs
[COLOR_nit__parser_nodes__AAttrFormExpr___n_expr
].val
; /* _n_expr on <self:AAttrFormExpr> */
9610 if (unlikely(var81
== NULL
)) {
9611 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9612 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1976);
9616 RET_LABEL80
:(void)0;
9619 /* <var79:AExpr> isa ASelfExpr */
9620 cltype83
= type_nit__ASelfExpr
.color
;
9621 idtype84
= type_nit__ASelfExpr
.id
;
9622 if(cltype83
>= var79
->type
->table_size
) {
9625 var82
= var79
->type
->type_table
[cltype83
] == idtype84
;
9628 var85
= nit__typing___nit__typing__TypeVisitor___resolve_for(var_v
, var_attr_type
, var_recvtype
, var82
);
9630 var_attr_type
= var85
;
9632 { /* Inline typing#AAttrFormExpr#attr_type= (self,var_attr_type) on <self:AAttrFormExpr> */
9633 self
->attrs
[COLOR_nit__typing__AAttrFormExpr___attr_type
].val
= var_attr_type
; /* _attr_type on <self:AAttrFormExpr> */
9634 RET_LABEL86
:(void)0;
9639 /* method typing#AAttrExpr#accept_typing for (self: AAttrExpr, TypeVisitor) */
9640 void nit__typing___AAttrExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
9641 val
* var_v
/* var v: TypeVisitor */;
9642 val
* var
/* : nullable MType */;
9643 val
* var2
/* : nullable MType */;
9646 nit__typing___AAttrFormExpr___resolve_property(self
, var_v
); /* Direct call typing#AAttrFormExpr#resolve_property on <self:AAttrExpr>*/
9649 { /* Inline typing#AAttrFormExpr#attr_type (self) on <self:AAttrExpr> */
9650 var2
= self
->attrs
[COLOR_nit__typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:AAttrExpr> */
9656 { /* Inline typing#AExpr#mtype= (self,var) on <self:AAttrExpr> */
9657 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var
; /* _mtype on <self:AAttrExpr> */
9663 /* method typing#AAttrAssignExpr#accept_typing for (self: AAttrAssignExpr, TypeVisitor) */
9664 void nit__typing___AAttrAssignExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
9665 val
* var_v
/* var v: TypeVisitor */;
9666 val
* var
/* : nullable MType */;
9667 val
* var2
/* : nullable MType */;
9668 val
* var_mtype
/* var mtype: nullable MType */;
9669 val
* var3
/* : AExpr */;
9670 val
* var5
/* : AExpr */;
9671 val
* var6
/* : nullable MType */;
9672 short int var7
/* : Bool */;
9675 nit__typing___AAttrFormExpr___resolve_property(self
, var_v
); /* Direct call typing#AAttrFormExpr#resolve_property on <self:AAttrAssignExpr>*/
9678 { /* Inline typing#AAttrFormExpr#attr_type (self) on <self:AAttrAssignExpr> */
9679 var2
= self
->attrs
[COLOR_nit__typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:AAttrAssignExpr> */
9686 { /* Inline parser_nodes#AAssignFormExpr#n_value (self) on <self:AAttrAssignExpr> */
9687 var5
= self
->attrs
[COLOR_nit__parser_nodes__AAssignFormExpr___n_value
].val
; /* _n_value on <self:AAttrAssignExpr> */
9688 if (unlikely(var5
== NULL
)) {
9689 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
9690 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1772);
9698 var6
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(var_v
, var3
, var_mtype
);
9702 { /* Inline typing#AExpr#is_typed= (self,var7) on <self:AAttrAssignExpr> */
9703 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var7
; /* _is_typed on <self:AAttrAssignExpr> */
9709 /* method typing#AAttrReassignExpr#accept_typing for (self: AAttrReassignExpr, TypeVisitor) */
9710 void nit__typing___AAttrReassignExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
9711 val
* var_v
/* var v: TypeVisitor */;
9712 val
* var
/* : nullable MType */;
9713 val
* var2
/* : nullable MType */;
9714 val
* var_mtype
/* var mtype: nullable MType */;
9715 val
* var3
/* : null */;
9716 short int var4
/* : Bool */;
9717 short int var5
/* : Bool */;
9718 val
* var_other
/* var other: nullable Object */;
9719 short int var7
/* : Bool */;
9720 short int var9
/* : Bool */;
9721 val
* var10
/* : nullable MType */;
9722 short int var11
/* : Bool */;
9725 nit__typing___AAttrFormExpr___resolve_property(self
, var_v
); /* Direct call typing#AAttrFormExpr#resolve_property on <self:AAttrReassignExpr>*/
9728 { /* Inline typing#AAttrFormExpr#attr_type (self) on <self:AAttrReassignExpr> */
9729 var2
= self
->attrs
[COLOR_nit__typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:AAttrReassignExpr> */
9736 if (var_mtype
== NULL
) {
9737 var4
= 1; /* is null */
9739 var4
= 0; /* arg is null but recv is not */
9742 { /* Inline kernel#Object#== (var_mtype,var3) on <var_mtype:nullable MType> */
9745 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
9746 var9
= var_mtype
== var_other
;
9763 var10
= nit__typing___AReassignFormExpr___resolve_reassignment(self
, var_v
, var_mtype
, var_mtype
);
9767 { /* Inline typing#AExpr#is_typed= (self,var11) on <self:AAttrReassignExpr> */
9768 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var11
; /* _is_typed on <self:AAttrReassignExpr> */
9769 RET_LABEL12
:(void)0;
9774 /* method typing#AIssetAttrExpr#accept_typing for (self: AIssetAttrExpr, TypeVisitor) */
9775 void nit__typing___AIssetAttrExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
9776 val
* var_v
/* var v: TypeVisitor */;
9777 val
* var
/* : nullable MType */;
9778 val
* var2
/* : nullable MType */;
9779 val
* var_mtype
/* var mtype: nullable MType */;
9780 val
* var3
/* : null */;
9781 short int var4
/* : Bool */;
9782 short int var5
/* : Bool */;
9783 val
* var_other
/* var other: nullable Object */;
9784 short int var7
/* : Bool */;
9785 short int var9
/* : Bool */;
9786 val
* var10
/* : AExpr */;
9787 val
* var12
/* : AExpr */;
9788 val
* var13
/* : nullable MType */;
9789 val
* var_recvtype
/* var recvtype: MType */;
9790 short int var14
/* : Bool */;
9791 val
* var15
/* : MType */;
9792 val
* var_bound
/* var bound: MType */;
9793 short int var16
/* : Bool */;
9796 static val
* varonce
;
9797 val
* var17
/* : String */;
9798 char* var18
/* : NativeString */;
9799 long var19
/* : Int */;
9800 val
* var20
/* : FlatString */;
9801 val
* var21
/* : nullable MType */;
9804 nit__typing___AAttrFormExpr___resolve_property(self
, var_v
); /* Direct call typing#AAttrFormExpr#resolve_property on <self:AIssetAttrExpr>*/
9807 { /* Inline typing#AAttrFormExpr#attr_type (self) on <self:AIssetAttrExpr> */
9808 var2
= self
->attrs
[COLOR_nit__typing__AAttrFormExpr___attr_type
].val
; /* _attr_type on <self:AIssetAttrExpr> */
9815 if (var_mtype
== NULL
) {
9816 var4
= 1; /* is null */
9818 var4
= 0; /* arg is null but recv is not */
9821 { /* Inline kernel#Object#== (var_mtype,var3) on <var_mtype:nullable MType> */
9824 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
9825 var9
= var_mtype
== var_other
;
9842 { /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on <self:AIssetAttrExpr> */
9843 var12
= self
->attrs
[COLOR_nit__parser_nodes__AAttrFormExpr___n_expr
].val
; /* _n_expr on <self:AIssetAttrExpr> */
9844 if (unlikely(var12
== NULL
)) {
9845 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9846 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1976);
9850 RET_LABEL11
:(void)0;
9854 var13
= ((val
* (*)(val
* self
))(var10
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(var10
) /* mtype on <var10:AExpr>*/;
9856 if (unlikely(var13
== NULL
)) {
9857 PRINT_ERROR("Runtime error: %s", "Cast failed");
9858 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 1864);
9861 var_recvtype
= var13
;
9864 var15
= nit__typing___nit__typing__TypeVisitor___resolve_for(var_v
, var_mtype
, var_recvtype
, var14
);
9867 /* <var_bound:MType> isa MNullableType */
9868 cltype
= type_nit__MNullableType
.color
;
9869 idtype
= type_nit__MNullableType
.id
;
9870 if(cltype
>= var_bound
->type
->table_size
) {
9873 var16
= var_bound
->type
->type_table
[cltype
] == idtype
;
9879 var18
= "Error: isset on a nullable attribute.";
9881 var20
= standard___standard__NativeString___to_s_with_length(var18
, var19
);
9886 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var17
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
9891 var21
= nit__typing___nit__typing__TypeVisitor___type_bool(var_v
, self
);
9894 { /* Inline typing#AExpr#mtype= (self,var21) on <self:AIssetAttrExpr> */
9895 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var21
; /* _mtype on <self:AIssetAttrExpr> */
9896 RET_LABEL22
:(void)0;
9901 /* method typing#AVarargExpr#accept_typing for (self: AVarargExpr, TypeVisitor) */
9902 void nit__typing___AVarargExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
9903 val
* var_v
/* var v: TypeVisitor */;
9904 static val
* varonce
;
9905 val
* var
/* : String */;
9906 char* var1
/* : NativeString */;
9907 long var2
/* : Int */;
9908 val
* var3
/* : FlatString */;
9913 var1
= "Syntax error: unexpected `...`";
9915 var3
= standard___standard__NativeString___to_s_with_length(var1
, var2
);
9920 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/