misc/vim: inform the user when no results are found
[nit.git] / c_src / nit__auto_super_init.sep.1.c
1 #include "nit__auto_super_init.sep.0.h"
2 /* method auto_super_init#ToolContext#auto_super_init_phase for (self: ToolContext): Phase */
3 val* nit__auto_super_init___ToolContext___auto_super_init_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_nit__auto_super_init__ToolContext___auto_super_init_phase].val; /* _auto_super_init_phase on <self:ToolContext> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _auto_super_init_phase");
9 PRINT_ERROR(" (%s:%d)\n", FILE_nit__auto_super_init, 25);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method auto_super_init#AutoSuperInitPhase#process_npropdef for (self: AutoSuperInitPhase, APropdef) */
17 void nit__auto_super_init___nit__auto_super_init__AutoSuperInitPhase___nit__phase__Phase__process_npropdef(val* self, val* p0) {
18 val* var_npropdef /* var npropdef: APropdef */;
19 short int var /* : Bool */;
20 int cltype;
21 int idtype;
22 val* var1 /* : ToolContext */;
23 val* var3 /* : ToolContext */;
24 val* var4 /* : ModelBuilder */;
25 var_npropdef = p0;
26 /* <var_npropdef:APropdef> isa AMethPropdef */
27 cltype = type_nit__AMethPropdef.color;
28 idtype = type_nit__AMethPropdef.id;
29 if(cltype >= var_npropdef->type->table_size) {
30 var = 0;
31 } else {
32 var = var_npropdef->type->type_table[cltype] == idtype;
33 }
34 if (var){
35 {
36 { /* Inline phase#Phase#toolcontext (self) on <self:AutoSuperInitPhase> */
37 var3 = self->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on <self:AutoSuperInitPhase> */
38 if (unlikely(var3 == NULL)) {
39 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
40 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 201);
41 show_backtrace(1);
42 }
43 var1 = var3;
44 RET_LABEL2:(void)0;
45 }
46 }
47 {
48 var4 = nit__modelbuilder_base___ToolContext___modelbuilder(var1);
49 }
50 {
51 nit__auto_super_init___AMethPropdef___do_auto_super_init(var_npropdef, var4); /* Direct call auto_super_init#AMethPropdef#do_auto_super_init on <var_npropdef:APropdef(AMethPropdef)>*/
52 }
53 } else {
54 }
55 RET_LABEL:;
56 }
57 /* method auto_super_init#AutoSuperInitVisitor#visit for (self: AutoSuperInitVisitor, ANode) */
58 void nit__auto_super_init___nit__auto_super_init__AutoSuperInitVisitor___nit__parser_nodes__Visitor__visit(val* self, val* p0) {
59 val* var_n /* var n: ANode */;
60 var_n = p0;
61 {
62 ((void (*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__auto_super_init__ANode__accept_auto_super_init]))(var_n, self) /* accept_auto_super_init on <var_n:ANode>*/;
63 }
64 {
65 ((void (*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on <var_n:ANode>*/;
66 }
67 RET_LABEL:;
68 }
69 /* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init for (self: AutoSuperInitVisitor): nullable ANode */
70 val* nit__auto_super_init___nit__auto_super_init__AutoSuperInitVisitor___has_explicit_super_init(val* self) {
71 val* var /* : nullable ANode */;
72 val* var1 /* : nullable ANode */;
73 var1 = self->attrs[COLOR_nit__auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val; /* _has_explicit_super_init on <self:AutoSuperInitVisitor> */
74 var = var1;
75 RET_LABEL:;
76 return var;
77 }
78 /* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= for (self: AutoSuperInitVisitor, nullable ANode) */
79 void nit__auto_super_init___nit__auto_super_init__AutoSuperInitVisitor___has_explicit_super_init_61d(val* self, val* p0) {
80 self->attrs[COLOR_nit__auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val = p0; /* _has_explicit_super_init on <self:AutoSuperInitVisitor> */
81 RET_LABEL:;
82 }
83 /* method auto_super_init#AutoSuperInitVisitor#is_broken for (self: AutoSuperInitVisitor): Bool */
84 short int nit__auto_super_init___nit__auto_super_init__AutoSuperInitVisitor___is_broken(val* self) {
85 short int var /* : Bool */;
86 short int var1 /* : Bool */;
87 var1 = self->attrs[COLOR_nit__auto_super_init__AutoSuperInitVisitor___is_broken].s; /* _is_broken on <self:AutoSuperInitVisitor> */
88 var = var1;
89 RET_LABEL:;
90 return var;
91 }
92 /* method auto_super_init#AutoSuperInitVisitor#is_broken= for (self: AutoSuperInitVisitor, Bool) */
93 void nit__auto_super_init___nit__auto_super_init__AutoSuperInitVisitor___is_broken_61d(val* self, short int p0) {
94 self->attrs[COLOR_nit__auto_super_init__AutoSuperInitVisitor___is_broken].s = p0; /* _is_broken on <self:AutoSuperInitVisitor> */
95 RET_LABEL:;
96 }
97 /* method auto_super_init#AMethPropdef#auto_super_inits for (self: AMethPropdef): nullable Array[CallSite] */
98 val* nit__auto_super_init___AMethPropdef___auto_super_inits(val* self) {
99 val* var /* : nullable Array[CallSite] */;
100 val* var1 /* : nullable Array[CallSite] */;
101 var1 = self->attrs[COLOR_nit__auto_super_init__AMethPropdef___auto_super_inits].val; /* _auto_super_inits on <self:AMethPropdef> */
102 var = var1;
103 RET_LABEL:;
104 return var;
105 }
106 /* method auto_super_init#AMethPropdef#auto_super_inits= for (self: AMethPropdef, nullable Array[CallSite]) */
107 void nit__auto_super_init___AMethPropdef___auto_super_inits_61d(val* self, val* p0) {
108 self->attrs[COLOR_nit__auto_super_init__AMethPropdef___auto_super_inits].val = p0; /* _auto_super_inits on <self:AMethPropdef> */
109 RET_LABEL:;
110 }
111 /* method auto_super_init#AMethPropdef#auto_super_call for (self: AMethPropdef): Bool */
112 short int nit__auto_super_init___AMethPropdef___auto_super_call(val* self) {
113 short int var /* : Bool */;
114 short int var1 /* : Bool */;
115 var1 = self->attrs[COLOR_nit__auto_super_init__AMethPropdef___auto_super_call].s; /* _auto_super_call on <self:AMethPropdef> */
116 var = var1;
117 RET_LABEL:;
118 return var;
119 }
120 /* method auto_super_init#AMethPropdef#auto_super_call= for (self: AMethPropdef, Bool) */
121 void nit__auto_super_init___AMethPropdef___auto_super_call_61d(val* self, short int p0) {
122 self->attrs[COLOR_nit__auto_super_init__AMethPropdef___auto_super_call].s = p0; /* _auto_super_call on <self:AMethPropdef> */
123 RET_LABEL:;
124 }
125 /* method auto_super_init#AMethPropdef#do_auto_super_init for (self: AMethPropdef, ModelBuilder) */
126 void nit__auto_super_init___AMethPropdef___do_auto_super_init(val* self, val* p0) {
127 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
128 val* var /* : nullable ANode */;
129 val* var2 /* : nullable ANode */;
130 short int var3 /* : Bool */;
131 int cltype;
132 int idtype;
133 const char* var_class_name;
134 val* var4 /* : nullable MClassDef */;
135 val* var6 /* : nullable MClassDef */;
136 val* var_mclassdef /* var mclassdef: MClassDef */;
137 val* var7 /* : nullable MPropDef */;
138 val* var9 /* : nullable MPropDef */;
139 val* var_mpropdef /* var mpropdef: MMethodDef */;
140 val* var10 /* : MClassDef */;
141 val* var12 /* : MClassDef */;
142 val* var13 /* : MModule */;
143 val* var15 /* : MModule */;
144 val* var_mmodule /* var mmodule: MModule */;
145 val* var16 /* : MClassType */;
146 val* var18 /* : MClassType */;
147 val* var_anchor /* var anchor: MClassType */;
148 val* var19 /* : MClass */;
149 val* var21 /* : MClass */;
150 val* var22 /* : MClassType */;
151 val* var24 /* : MClassType */;
152 val* var_recvtype /* var recvtype: MClassType */;
153 static val* varonce;
154 val* var25 /* : String */;
155 char* var26 /* : NativeString */;
156 long var27 /* : Int */;
157 val* var28 /* : FlatString */;
158 val* var29 /* : nullable AAnnotation */;
159 val* var_nosuper /* var nosuper: nullable AAnnotation */;
160 short int var30 /* : Bool */;
161 val* var31 /* : MProperty */;
162 val* var33 /* : MProperty */;
163 short int var34 /* : Bool */;
164 short int var36 /* : Bool */;
165 short int var37 /* : Bool */;
166 short int var_ /* var : Bool */;
167 val* var38 /* : MProperty */;
168 val* var40 /* : MProperty */;
169 short int var41 /* : Bool */;
170 short int var43 /* : Bool */;
171 val* var44 /* : null */;
172 short int var45 /* : Bool */;
173 short int var46 /* : Bool */;
174 val* var_other /* var other: nullable Object */;
175 short int var48 /* : Bool */;
176 short int var49 /* : Bool */;
177 static val* varonce50;
178 val* var51 /* : String */;
179 char* var52 /* : NativeString */;
180 long var53 /* : Int */;
181 val* var54 /* : FlatString */;
182 val* var55 /* : MClassDef */;
183 val* var57 /* : MClassDef */;
184 short int var58 /* : Bool */;
185 short int var59 /* : Bool */;
186 short int var60 /* : Bool */;
187 short int var_skip /* var skip: Bool */;
188 val* var61 /* : nullable POSetElement[MClassDef] */;
189 val* var63 /* : nullable POSetElement[MClassDef] */;
190 val* var64 /* : Collection[nullable Object] */;
191 val* var_65 /* var : Collection[MClassDef] */;
192 val* var66 /* : Iterator[nullable Object] */;
193 val* var_67 /* var : Iterator[MClassDef] */;
194 short int var68 /* : Bool */;
195 val* var69 /* : nullable Object */;
196 val* var_cd /* var cd: MClassDef */;
197 val* var70 /* : MClass */;
198 val* var72 /* : MClass */;
199 val* var73 /* : MClassKind */;
200 val* var75 /* : MClassKind */;
201 short int var76 /* : Bool */;
202 short int var78 /* : Bool */;
203 short int var79 /* : Bool */;
204 val* var81 /* : nullable AExpr */;
205 val* var83 /* : nullable AExpr */;
206 val* var_nblock /* var nblock: nullable AExpr */;
207 val* var84 /* : null */;
208 short int var85 /* : Bool */;
209 short int var86 /* : Bool */;
210 short int var88 /* : Bool */;
211 short int var89 /* : Bool */;
212 val* var90 /* : AutoSuperInitVisitor */;
213 val* var_v /* var v: AutoSuperInitVisitor */;
214 val* var92 /* : nullable ANode */;
215 val* var94 /* : nullable ANode */;
216 val* var_anode /* var anode: nullable ANode */;
217 val* var95 /* : null */;
218 short int var96 /* : Bool */;
219 short int var97 /* : Bool */;
220 short int var99 /* : Bool */;
221 short int var100 /* : Bool */;
222 val* var101 /* : null */;
223 short int var102 /* : Bool */;
224 short int var103 /* : Bool */;
225 short int var105 /* : Bool */;
226 short int var106 /* : Bool */;
227 static val* varonce107;
228 val* var108 /* : String */;
229 char* var109 /* : NativeString */;
230 long var110 /* : Int */;
231 val* var111 /* : FlatString */;
232 short int var112 /* : Bool */;
233 short int var114 /* : Bool */;
234 val* var115 /* : null */;
235 short int var116 /* : Bool */;
236 short int var117 /* : Bool */;
237 short int var119 /* : Bool */;
238 short int var120 /* : Bool */;
239 short int var121 /* : Bool */;
240 short int var122 /* : Bool */;
241 short int var123 /* : Bool */;
242 short int var125 /* : Bool */;
243 val* var127 /* : Array[CallSite] */;
244 val* var_auto_super_inits /* var auto_super_inits: Array[CallSite] */;
245 val* var128 /* : Array[MClassType] */;
246 val* var130 /* : Array[MClassType] */;
247 val* var_131 /* var : Array[MClassType] */;
248 val* var132 /* : ArrayIterator[nullable Object] */;
249 val* var_133 /* var : ArrayIterator[MClassType] */;
250 short int var134 /* : Bool */;
251 val* var135 /* : nullable Object */;
252 val* var_msupertype /* var msupertype: MClassType */;
253 val* var136 /* : MClass */;
254 val* var138 /* : MClass */;
255 val* var139 /* : MClassKind */;
256 val* var141 /* : MClassKind */;
257 short int var142 /* : Bool */;
258 short int var144 /* : Bool */;
259 short int var145 /* : Bool */;
260 val* var147 /* : MClassType */;
261 val* var149 /* : MClassType */;
262 val* var150 /* : MClassType */;
263 val* var151 /* : MProperty */;
264 val* var153 /* : MProperty */;
265 val* var154 /* : String */;
266 val* var156 /* : String */;
267 val* var157 /* : nullable MProperty */;
268 val* var_candidate /* var candidate: nullable MProperty */;
269 val* var158 /* : null */;
270 short int var159 /* : Bool */;
271 short int var160 /* : Bool */;
272 val* var_other162 /* var other: nullable Object */;
273 short int var163 /* : Bool */;
274 short int var165 /* : Bool */;
275 static val* varonce166;
276 val* var167 /* : String */;
277 char* var168 /* : NativeString */;
278 long var169 /* : Int */;
279 val* var170 /* : FlatString */;
280 val* var171 /* : nullable MProperty */;
281 val* var172 /* : null */;
282 short int var173 /* : Bool */;
283 short int var174 /* : Bool */;
284 short int var176 /* : Bool */;
285 short int var178 /* : Bool */;
286 static val* varonce179;
287 val* var180 /* : String */;
288 char* var181 /* : NativeString */;
289 long var182 /* : Int */;
290 val* var183 /* : FlatString */;
291 static val* varonce184;
292 val* var185 /* : String */;
293 char* var186 /* : NativeString */;
294 long var187 /* : Int */;
295 val* var188 /* : FlatString */;
296 val* var189 /* : MProperty */;
297 val* var191 /* : MProperty */;
298 val* var192 /* : String */;
299 val* var194 /* : String */;
300 static val* varonce195;
301 val* var196 /* : String */;
302 char* var197 /* : NativeString */;
303 long var198 /* : Int */;
304 val* var199 /* : FlatString */;
305 static val* varonce200;
306 val* var201 /* : String */;
307 char* var202 /* : NativeString */;
308 long var203 /* : Int */;
309 val* var204 /* : FlatString */;
310 val* var205 /* : Array[Object] */;
311 long var206 /* : Int */;
312 val* var207 /* : NativeArray[Object] */;
313 val* var208 /* : String */;
314 short int var209 /* : Bool */;
315 int cltype210;
316 int idtype211;
317 short int var212 /* : Bool */;
318 short int var214 /* : Bool */;
319 val* var215 /* : Array[MPropDef] */;
320 val* var_candidatedefs /* var candidatedefs: Array[MMethodDef] */;
321 val* var216 /* : nullable Object */;
322 val* var_candidatedef /* var candidatedef: MMethodDef */;
323 val* var217 /* : nullable MSignature */;
324 val* var218 /* : nullable MSignature */;
325 val* var220 /* : nullable MSignature */;
326 val* var221 /* : nullable MSignature */;
327 val* var223 /* : nullable MSignature */;
328 val* var_msignature /* var msignature: nullable MSignature */;
329 short int var224 /* : Bool */;
330 val* var225 /* : MSignature */;
331 val* var226 /* : CallSite */;
332 short int var227 /* : Bool */;
333 short int var228 /* : Bool */;
334 val* var_callsite /* var callsite: CallSite */;
335 val* var231 /* : nullable MMethod */;
336 val* var233 /* : nullable MMethod */;
337 val* var_the_root_init_mmethod /* var the_root_init_mmethod: nullable MMethod */;
338 short int var234 /* : Bool */;
339 val* var235 /* : null */;
340 short int var236 /* : Bool */;
341 short int var237 /* : Bool */;
342 short int var239 /* : Bool */;
343 short int var240 /* : Bool */;
344 short int var_241 /* var : Bool */;
345 short int var242 /* : Bool */;
346 val* var243 /* : Array[MPropDef] */;
347 val* var_candidatedefs244 /* var candidatedefs: Array[MMethodDef] */;
348 val* var245 /* : nullable Object */;
349 val* var_candidatedef246 /* var candidatedef: MMethodDef */;
350 long var247 /* : Int */;
351 long var249 /* : Int */;
352 long var250 /* : Int */;
353 short int var251 /* : Bool */;
354 short int var253 /* : Bool */;
355 int cltype254;
356 int idtype255;
357 const char* var_class_name256;
358 short int var257 /* : Bool */;
359 val* var_258 /* var : Array[MMethodDef] */;
360 val* var259 /* : ArrayIterator[nullable Object] */;
361 val* var_260 /* var : ArrayIterator[MMethodDef] */;
362 short int var261 /* : Bool */;
363 val* var262 /* : nullable Object */;
364 val* var_spd /* var spd: MMethodDef */;
365 val* var263 /* : Array[MProperty] */;
366 val* var265 /* : Array[MProperty] */;
367 long var266 /* : Int */;
368 long var268 /* : Int */;
369 val* var269 /* : Array[MProperty] */;
370 val* var271 /* : Array[MProperty] */;
371 long var272 /* : Int */;
372 long var274 /* : Int */;
373 short int var275 /* : Bool */;
374 short int var277 /* : Bool */;
375 int cltype278;
376 int idtype279;
377 const char* var_class_name280;
378 short int var281 /* : Bool */;
379 val* var_284 /* var : Array[MMethodDef] */;
380 val* var285 /* : ArrayIterator[nullable Object] */;
381 val* var_286 /* var : ArrayIterator[MMethodDef] */;
382 short int var287 /* : Bool */;
383 val* var288 /* : nullable Object */;
384 val* var_spd289 /* var spd: MMethodDef */;
385 long var290 /* : Int */;
386 long var_i /* var i: Int */;
387 val* var291 /* : Array[MProperty] */;
388 val* var293 /* : Array[MProperty] */;
389 val* var_294 /* var : Array[MProperty] */;
390 val* var295 /* : ArrayIterator[nullable Object] */;
391 val* var_296 /* var : ArrayIterator[MProperty] */;
392 short int var297 /* : Bool */;
393 val* var298 /* : nullable Object */;
394 val* var_p /* var p: MProperty */;
395 val* var299 /* : Array[MProperty] */;
396 val* var301 /* : Array[MProperty] */;
397 val* var302 /* : nullable Object */;
398 short int var303 /* : Bool */;
399 short int var305 /* : Bool */;
400 short int var306 /* : Bool */;
401 static val* varonce307;
402 val* var308 /* : String */;
403 char* var309 /* : NativeString */;
404 long var310 /* : Int */;
405 val* var311 /* : FlatString */;
406 static val* varonce312;
407 val* var313 /* : String */;
408 char* var314 /* : NativeString */;
409 long var315 /* : Int */;
410 val* var316 /* : FlatString */;
411 val* var317 /* : Array[MProperty] */;
412 val* var319 /* : Array[MProperty] */;
413 static val* varonce320;
414 val* var321 /* : String */;
415 char* var322 /* : NativeString */;
416 long var323 /* : Int */;
417 val* var324 /* : FlatString */;
418 val* var325 /* : String */;
419 static val* varonce326;
420 val* var327 /* : String */;
421 char* var328 /* : NativeString */;
422 long var329 /* : Int */;
423 val* var330 /* : FlatString */;
424 static val* varonce331;
425 val* var332 /* : String */;
426 char* var333 /* : NativeString */;
427 long var334 /* : Int */;
428 val* var335 /* : FlatString */;
429 val* var336 /* : Array[MProperty] */;
430 val* var338 /* : Array[MProperty] */;
431 static val* varonce339;
432 val* var340 /* : String */;
433 char* var341 /* : NativeString */;
434 long var342 /* : Int */;
435 val* var343 /* : FlatString */;
436 val* var344 /* : String */;
437 static val* varonce345;
438 val* var346 /* : String */;
439 char* var347 /* : NativeString */;
440 long var348 /* : Int */;
441 val* var349 /* : FlatString */;
442 val* var350 /* : Array[Object] */;
443 long var351 /* : Int */;
444 val* var352 /* : NativeArray[Object] */;
445 val* var353 /* : String */;
446 long var354 /* : Int */;
447 long var355 /* : Int */;
448 short int var357 /* : Bool */;
449 int cltype358;
450 int idtype359;
451 const char* var_class_name360;
452 long var361 /* : Int */;
453 val* var366 /* : nullable MSignature */;
454 val* var367 /* : nullable MSignature */;
455 val* var369 /* : nullable MSignature */;
456 val* var370 /* : nullable MSignature */;
457 val* var372 /* : nullable MSignature */;
458 val* var_msignature373 /* var msignature: nullable MSignature */;
459 short int var374 /* : Bool */;
460 val* var375 /* : MSignature */;
461 val* var376 /* : CallSite */;
462 short int var377 /* : Bool */;
463 short int var378 /* : Bool */;
464 val* var_callsite379 /* var callsite: CallSite */;
465 short int var380 /* : Bool */;
466 static val* varonce381;
467 val* var382 /* : String */;
468 char* var383 /* : NativeString */;
469 long var384 /* : Int */;
470 val* var385 /* : FlatString */;
471 static val* varonce386;
472 val* var387 /* : String */;
473 char* var388 /* : NativeString */;
474 long var389 /* : Int */;
475 val* var390 /* : FlatString */;
476 val* var391 /* : Array[Object] */;
477 long var392 /* : Int */;
478 val* var393 /* : NativeArray[Object] */;
479 val* var394 /* : String */;
480 val* var_395 /* var : Array[CallSite] */;
481 val* var396 /* : ArrayIterator[nullable Object] */;
482 val* var_397 /* var : ArrayIterator[CallSite] */;
483 short int var398 /* : Bool */;
484 val* var399 /* : nullable Object */;
485 val* var_auto_super_init /* var auto_super_init: CallSite */;
486 val* var400 /* : MMethodDef */;
487 val* var402 /* : MMethodDef */;
488 val* var_auto_super_init_def /* var auto_super_init_def: MMethodDef */;
489 val* var403 /* : nullable MSignature */;
490 val* var405 /* : nullable MSignature */;
491 val* var_msig /* var msig: MSignature */;
492 val* var406 /* : MSignature */;
493 val* var408 /* : MSignature */;
494 val* var_supermsig /* var supermsig: MSignature */;
495 long var409 /* : Int */;
496 long var410 /* : Int */;
497 short int var411 /* : Bool */;
498 short int var413 /* : Bool */;
499 int cltype414;
500 int idtype415;
501 const char* var_class_name416;
502 short int var417 /* : Bool */;
503 static val* varonce418;
504 val* var419 /* : String */;
505 char* var420 /* : NativeString */;
506 long var421 /* : Int */;
507 val* var422 /* : FlatString */;
508 static val* varonce423;
509 val* var424 /* : String */;
510 char* var425 /* : NativeString */;
511 long var426 /* : Int */;
512 val* var427 /* : FlatString */;
513 long var428 /* : Int */;
514 static val* varonce429;
515 val* var430 /* : String */;
516 char* var431 /* : NativeString */;
517 long var432 /* : Int */;
518 val* var433 /* : FlatString */;
519 long var434 /* : Int */;
520 static val* varonce435;
521 val* var436 /* : String */;
522 char* var437 /* : NativeString */;
523 long var438 /* : Int */;
524 val* var439 /* : FlatString */;
525 val* var440 /* : Array[Object] */;
526 long var441 /* : Int */;
527 val* var442 /* : NativeArray[Object] */;
528 val* var443 /* : Object */;
529 val* var444 /* : Object */;
530 val* var445 /* : String */;
531 long var447 /* : Int */;
532 long var_i448 /* var i: Int */;
533 val* var449 /* : Array[MParameter] */;
534 val* var451 /* : Array[MParameter] */;
535 val* var_452 /* var : Array[MParameter] */;
536 val* var453 /* : ArrayIterator[nullable Object] */;
537 val* var_454 /* var : ArrayIterator[MParameter] */;
538 short int var455 /* : Bool */;
539 val* var456 /* : nullable Object */;
540 val* var_sp /* var sp: MParameter */;
541 val* var457 /* : Array[MParameter] */;
542 val* var459 /* : Array[MParameter] */;
543 val* var460 /* : nullable Object */;
544 val* var_p461 /* var p: MParameter */;
545 val* var462 /* : MType */;
546 val* var464 /* : MType */;
547 val* var_sub /* var sub: MType */;
548 val* var465 /* : MType */;
549 val* var467 /* : MType */;
550 val* var_sup /* var sup: MType */;
551 short int var468 /* : Bool */;
552 short int var469 /* : Bool */;
553 static val* varonce470;
554 val* var471 /* : String */;
555 char* var472 /* : NativeString */;
556 long var473 /* : Int */;
557 val* var474 /* : FlatString */;
558 static val* varonce475;
559 val* var476 /* : String */;
560 char* var477 /* : NativeString */;
561 long var478 /* : Int */;
562 val* var479 /* : FlatString */;
563 static val* varonce480;
564 val* var481 /* : String */;
565 char* var482 /* : NativeString */;
566 long var483 /* : Int */;
567 val* var484 /* : FlatString */;
568 val* var485 /* : MType */;
569 val* var487 /* : MType */;
570 static val* varonce488;
571 val* var489 /* : String */;
572 char* var490 /* : NativeString */;
573 long var491 /* : Int */;
574 val* var492 /* : FlatString */;
575 val* var493 /* : String */;
576 val* var495 /* : String */;
577 static val* varonce496;
578 val* var497 /* : String */;
579 char* var498 /* : NativeString */;
580 long var499 /* : Int */;
581 val* var500 /* : FlatString */;
582 val* var501 /* : MType */;
583 val* var503 /* : MType */;
584 static val* varonce504;
585 val* var505 /* : String */;
586 char* var506 /* : NativeString */;
587 long var507 /* : Int */;
588 val* var508 /* : FlatString */;
589 val* var509 /* : Array[Object] */;
590 long var510 /* : Int */;
591 val* var511 /* : NativeArray[Object] */;
592 val* var512 /* : Object */;
593 val* var513 /* : String */;
594 long var515 /* : Int */;
595 long var516 /* : Int */;
596 short int var518 /* : Bool */;
597 int cltype519;
598 int idtype520;
599 const char* var_class_name521;
600 long var522 /* : Int */;
601 var_modelbuilder = p0;
602 {
603 { /* Inline parser_nodes#ANode#parent (self) on <self:AMethPropdef> */
604 var2 = self->attrs[COLOR_nit__parser_nodes__ANode___parent].val; /* _parent on <self:AMethPropdef> */
605 var = var2;
606 RET_LABEL1:(void)0;
607 }
608 }
609 /* <var:nullable ANode> isa AClassdef */
610 cltype = type_nit__AClassdef.color;
611 idtype = type_nit__AClassdef.id;
612 if(var == NULL) {
613 var3 = 0;
614 } else {
615 if(cltype >= var->type->table_size) {
616 var3 = 0;
617 } else {
618 var3 = var->type->type_table[cltype] == idtype;
619 }
620 }
621 if (unlikely(!var3)) {
622 var_class_name = var == NULL ? "null" : var->type->name;
623 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AClassdef", var_class_name);
624 PRINT_ERROR(" (%s:%d)\n", FILE_nit__auto_super_init, 59);
625 show_backtrace(1);
626 }
627 {
628 { /* Inline modelize_class#AClassdef#mclassdef (var) on <var:nullable ANode(AClassdef)> */
629 var6 = var->attrs[COLOR_nit__modelize_class__AClassdef___mclassdef].val; /* _mclassdef on <var:nullable ANode(AClassdef)> */
630 var4 = var6;
631 RET_LABEL5:(void)0;
632 }
633 }
634 if (unlikely(var4 == NULL)) {
635 PRINT_ERROR("Runtime error: %s", "Cast failed");
636 PRINT_ERROR(" (%s:%d)\n", FILE_nit__auto_super_init, 59);
637 show_backtrace(1);
638 }
639 var_mclassdef = var4;
640 {
641 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AMethPropdef> */
642 var9 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AMethPropdef> */
643 var7 = var9;
644 RET_LABEL8:(void)0;
645 }
646 }
647 if (unlikely(var7 == NULL)) {
648 PRINT_ERROR("Runtime error: %s", "Cast failed");
649 PRINT_ERROR(" (%s:%d)\n", FILE_nit__auto_super_init, 60);
650 show_backtrace(1);
651 }
652 var_mpropdef = var7;
653 {
654 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
655 var12 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
656 if (unlikely(var12 == NULL)) {
657 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
658 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010);
659 show_backtrace(1);
660 }
661 var10 = var12;
662 RET_LABEL11:(void)0;
663 }
664 }
665 {
666 { /* Inline model#MClassDef#mmodule (var10) on <var10:MClassDef> */
667 var15 = var10->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var10:MClassDef> */
668 if (unlikely(var15 == NULL)) {
669 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
670 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489);
671 show_backtrace(1);
672 }
673 var13 = var15;
674 RET_LABEL14:(void)0;
675 }
676 }
677 var_mmodule = var13;
678 {
679 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
680 var18 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
681 if (unlikely(var18 == NULL)) {
682 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
683 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495);
684 show_backtrace(1);
685 }
686 var16 = var18;
687 RET_LABEL17:(void)0;
688 }
689 }
690 var_anchor = var16;
691 {
692 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
693 var21 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
694 if (unlikely(var21 == NULL)) {
695 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
696 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
697 show_backtrace(1);
698 }
699 var19 = var21;
700 RET_LABEL20:(void)0;
701 }
702 }
703 {
704 { /* Inline model#MClass#mclass_type (var19) on <var19:MClass> */
705 var24 = var19->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on <var19:MClass> */
706 if (unlikely(var24 == NULL)) {
707 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
708 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438);
709 show_backtrace(1);
710 }
711 var22 = var24;
712 RET_LABEL23:(void)0;
713 }
714 }
715 var_recvtype = var22;
716 if (varonce) {
717 var25 = varonce;
718 } else {
719 var26 = "nosuper";
720 var27 = 7;
721 var28 = standard___standard__NativeString___to_s_with_length(var26, var27);
722 var25 = var28;
723 varonce = var25;
724 }
725 {
726 var29 = nit__annotation___Prod___get_single_annotation(self, var25, var_modelbuilder);
727 }
728 var_nosuper = var29;
729 {
730 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
731 var33 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
732 if (unlikely(var33 == NULL)) {
733 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
734 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
735 show_backtrace(1);
736 }
737 var31 = var33;
738 RET_LABEL32:(void)0;
739 }
740 }
741 {
742 { /* Inline model#MMethod#is_init (var31) on <var31:MProperty(MMethod)> */
743 var36 = var31->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on <var31:MProperty(MMethod)> */
744 var34 = var36;
745 RET_LABEL35:(void)0;
746 }
747 }
748 var37 = !var34;
749 var_ = var37;
750 if (var37){
751 var30 = var_;
752 } else {
753 {
754 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
755 var40 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
756 if (unlikely(var40 == NULL)) {
757 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
758 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
759 show_backtrace(1);
760 }
761 var38 = var40;
762 RET_LABEL39:(void)0;
763 }
764 }
765 {
766 { /* Inline model#MMethod#is_new (var38) on <var38:MProperty(MMethod)> */
767 var43 = var38->attrs[COLOR_nit__model__MMethod___is_new].s; /* _is_new on <var38:MProperty(MMethod)> */
768 var41 = var43;
769 RET_LABEL42:(void)0;
770 }
771 }
772 var30 = var41;
773 }
774 if (var30){
775 var44 = NULL;
776 if (var_nosuper == NULL) {
777 var45 = 0; /* is null */
778 } else {
779 var45 = 1; /* arg is null and recv is not */
780 }
781 if (0) {
782 { /* Inline kernel#Object#!= (var_nosuper,var44) on <var_nosuper:nullable AAnnotation> */
783 var_other = var44;
784 {
785 var48 = ((short int (*)(val* self, val* p0))(var_nosuper->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nosuper, var_other) /* == on <var_nosuper:nullable AAnnotation(AAnnotation)>*/;
786 }
787 var49 = !var48;
788 var46 = var49;
789 goto RET_LABEL47;
790 RET_LABEL47:(void)0;
791 }
792 var45 = var46;
793 }
794 if (var45){
795 if (varonce50) {
796 var51 = varonce50;
797 } else {
798 var52 = "Error: nosuper only in `init`";
799 var53 = 29;
800 var54 = standard___standard__NativeString___to_s_with_length(var52, var53);
801 var51 = var54;
802 varonce50 = var51;
803 }
804 {
805 nit___nit__ModelBuilder___error(var_modelbuilder, var_nosuper, var51); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
806 }
807 } else {
808 }
809 goto RET_LABEL;
810 } else {
811 }
812 {
813 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
814 var57 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
815 if (unlikely(var57 == NULL)) {
816 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
817 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010);
818 show_backtrace(1);
819 }
820 var55 = var57;
821 RET_LABEL56:(void)0;
822 }
823 }
824 {
825 var58 = nit___nit__MClassDef___is_intro(var55);
826 }
827 var59 = !var58;
828 if (var59){
829 goto RET_LABEL;
830 } else {
831 }
832 var60 = 1;
833 var_skip = var60;
834 {
835 { /* Inline model#MClassDef#in_hierarchy (var_mclassdef) on <var_mclassdef:MClassDef> */
836 var63 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___in_hierarchy].val; /* _in_hierarchy on <var_mclassdef:MClassDef> */
837 var61 = var63;
838 RET_LABEL62:(void)0;
839 }
840 }
841 if (var61 == NULL) {
842 PRINT_ERROR("Runtime error: %s", "Receiver is null");
843 PRINT_ERROR(" (%s:%d)\n", FILE_nit__auto_super_init, 79);
844 show_backtrace(1);
845 } else {
846 var64 = poset___poset__POSetElement___direct_greaters(var61);
847 }
848 var_65 = var64;
849 {
850 var66 = ((val* (*)(val* self))(var_65->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_65) /* iterator on <var_65:Collection[MClassDef]>*/;
851 }
852 var_67 = var66;
853 for(;;) {
854 {
855 var68 = ((short int (*)(val* self))(var_67->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_67) /* is_ok on <var_67:Iterator[MClassDef]>*/;
856 }
857 if (var68){
858 {
859 var69 = ((val* (*)(val* self))(var_67->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_67) /* item on <var_67:Iterator[MClassDef]>*/;
860 }
861 var_cd = var69;
862 {
863 { /* Inline model#MClassDef#mclass (var_cd) on <var_cd:MClassDef> */
864 var72 = var_cd->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var_cd:MClassDef> */
865 if (unlikely(var72 == NULL)) {
866 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
867 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
868 show_backtrace(1);
869 }
870 var70 = var72;
871 RET_LABEL71:(void)0;
872 }
873 }
874 {
875 { /* Inline model#MClass#kind (var70) on <var70:MClass> */
876 var75 = var70->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on <var70:MClass> */
877 if (unlikely(var75 == NULL)) {
878 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
879 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 399);
880 show_backtrace(1);
881 }
882 var73 = var75;
883 RET_LABEL74:(void)0;
884 }
885 }
886 {
887 { /* Inline model#MClassKind#need_init (var73) on <var73:MClassKind> */
888 var78 = var73->attrs[COLOR_nit__model__MClassKind___need_init].s; /* _need_init on <var73:MClassKind> */
889 var76 = var78;
890 RET_LABEL77:(void)0;
891 }
892 }
893 if (var76){
894 var79 = 0;
895 var_skip = var79;
896 } else {
897 }
898 {
899 ((void (*)(val* self))(var_67->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_67) /* next on <var_67:Iterator[MClassDef]>*/;
900 }
901 } else {
902 goto BREAK_label;
903 }
904 }
905 BREAK_label: (void)0;
906 {
907 { /* Inline abstract_collection#Iterator#finish (var_67) on <var_67:Iterator[MClassDef]> */
908 RET_LABEL80:(void)0;
909 }
910 }
911 if (var_skip){
912 goto RET_LABEL;
913 } else {
914 }
915 {
916 { /* Inline parser_nodes#AMethPropdef#n_block (self) on <self:AMethPropdef> */
917 var83 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMethPropdef> */
918 var81 = var83;
919 RET_LABEL82:(void)0;
920 }
921 }
922 var_nblock = var81;
923 var84 = NULL;
924 if (var_nblock == NULL) {
925 var85 = 0; /* is null */
926 } else {
927 var85 = 1; /* arg is null and recv is not */
928 }
929 if (0) {
930 { /* Inline kernel#Object#!= (var_nblock,var84) on <var_nblock:nullable AExpr> */
931 var_other = var84;
932 {
933 var88 = ((short int (*)(val* self, val* p0))(var_nblock->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nblock, var_other) /* == on <var_nblock:nullable AExpr(AExpr)>*/;
934 }
935 var89 = !var88;
936 var86 = var89;
937 goto RET_LABEL87;
938 RET_LABEL87:(void)0;
939 }
940 var85 = var86;
941 }
942 if (var85){
943 var90 = NEW_nit__auto_super_init__AutoSuperInitVisitor(&type_nit__auto_super_init__AutoSuperInitVisitor);
944 {
945 { /* Inline kernel#Object#init (var90) on <var90:AutoSuperInitVisitor> */
946 RET_LABEL91:(void)0;
947 }
948 }
949 var_v = var90;
950 {
951 nit___nit__Visitor___enter_visit(var_v, var_nblock); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:AutoSuperInitVisitor>*/
952 }
953 {
954 { /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init (var_v) on <var_v:AutoSuperInitVisitor> */
955 var94 = var_v->attrs[COLOR_nit__auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val; /* _has_explicit_super_init on <var_v:AutoSuperInitVisitor> */
956 var92 = var94;
957 RET_LABEL93:(void)0;
958 }
959 }
960 var_anode = var92;
961 var95 = NULL;
962 if (var_anode == NULL) {
963 var96 = 0; /* is null */
964 } else {
965 var96 = 1; /* arg is null and recv is not */
966 }
967 if (0) {
968 { /* Inline kernel#Object#!= (var_anode,var95) on <var_anode:nullable ANode> */
969 var_other = var95;
970 {
971 var99 = ((short int (*)(val* self, val* p0))(var_anode->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_anode, var_other) /* == on <var_anode:nullable ANode(ANode)>*/;
972 }
973 var100 = !var99;
974 var97 = var100;
975 goto RET_LABEL98;
976 RET_LABEL98:(void)0;
977 }
978 var96 = var97;
979 }
980 if (var96){
981 var101 = NULL;
982 if (var_nosuper == NULL) {
983 var102 = 0; /* is null */
984 } else {
985 var102 = 1; /* arg is null and recv is not */
986 }
987 if (0) {
988 { /* Inline kernel#Object#!= (var_nosuper,var101) on <var_nosuper:nullable AAnnotation> */
989 var_other = var101;
990 {
991 var105 = ((short int (*)(val* self, val* p0))(var_nosuper->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nosuper, var_other) /* == on <var_nosuper:nullable AAnnotation(AAnnotation)>*/;
992 }
993 var106 = !var105;
994 var103 = var106;
995 goto RET_LABEL104;
996 RET_LABEL104:(void)0;
997 }
998 var102 = var103;
999 }
1000 if (var102){
1001 if (varonce107) {
1002 var108 = varonce107;
1003 } else {
1004 var109 = "Error: method is annotated nosuper but a constructor call is present";
1005 var110 = 68;
1006 var111 = standard___standard__NativeString___to_s_with_length(var109, var110);
1007 var108 = var111;
1008 varonce107 = var108;
1009 }
1010 {
1011 nit___nit__ModelBuilder___error(var_modelbuilder, var_anode, var108); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
1012 }
1013 } else {
1014 }
1015 goto RET_LABEL;
1016 } else {
1017 }
1018 {
1019 { /* Inline auto_super_init#AutoSuperInitVisitor#is_broken (var_v) on <var_v:AutoSuperInitVisitor> */
1020 var114 = var_v->attrs[COLOR_nit__auto_super_init__AutoSuperInitVisitor___is_broken].s; /* _is_broken on <var_v:AutoSuperInitVisitor> */
1021 var112 = var114;
1022 RET_LABEL113:(void)0;
1023 }
1024 }
1025 if (var112){
1026 goto RET_LABEL;
1027 } else {
1028 }
1029 } else {
1030 }
1031 var115 = NULL;
1032 if (var_nosuper == NULL) {
1033 var116 = 0; /* is null */
1034 } else {
1035 var116 = 1; /* arg is null and recv is not */
1036 }
1037 if (0) {
1038 { /* Inline kernel#Object#!= (var_nosuper,var115) on <var_nosuper:nullable AAnnotation> */
1039 var_other = var115;
1040 {
1041 var119 = ((short int (*)(val* self, val* p0))(var_nosuper->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nosuper, var_other) /* == on <var_nosuper:nullable AAnnotation(AAnnotation)>*/;
1042 }
1043 var120 = !var119;
1044 var117 = var120;
1045 goto RET_LABEL118;
1046 RET_LABEL118:(void)0;
1047 }
1048 var116 = var117;
1049 }
1050 if (var116){
1051 goto RET_LABEL;
1052 } else {
1053 }
1054 {
1055 var121 = nit___nit__MPropDef___is_intro(var_mpropdef);
1056 }
1057 var122 = !var121;
1058 if (var122){
1059 var123 = 1;
1060 {
1061 { /* Inline auto_super_init#AMethPropdef#auto_super_call= (self,var123) on <self:AMethPropdef> */
1062 self->attrs[COLOR_nit__auto_super_init__AMethPropdef___auto_super_call].s = var123; /* _auto_super_call on <self:AMethPropdef> */
1063 RET_LABEL124:(void)0;
1064 }
1065 }
1066 var125 = 1;
1067 {
1068 { /* Inline modelize_property#MPropDef#has_supercall= (var_mpropdef,var125) on <var_mpropdef:MMethodDef> */
1069 var_mpropdef->attrs[COLOR_nit__modelize_property__MPropDef___has_supercall].s = var125; /* _has_supercall on <var_mpropdef:MMethodDef> */
1070 RET_LABEL126:(void)0;
1071 }
1072 }
1073 goto RET_LABEL;
1074 } else {
1075 }
1076 var127 = NEW_standard__Array(&type_standard__Array__nit__CallSite);
1077 {
1078 standard___standard__Array___standard__kernel__Object__init(var127); /* Direct call array#Array#init on <var127:Array[CallSite]>*/
1079 }
1080 var_auto_super_inits = var127;
1081 {
1082 { /* Inline model#MClassDef#supertypes (var_mclassdef) on <var_mclassdef:MClassDef> */
1083 var130 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___supertypes].val; /* _supertypes on <var_mclassdef:MClassDef> */
1084 if (unlikely(var130 == NULL)) {
1085 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
1086 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 566);
1087 show_backtrace(1);
1088 }
1089 var128 = var130;
1090 RET_LABEL129:(void)0;
1091 }
1092 }
1093 var_131 = var128;
1094 {
1095 var132 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_131);
1096 }
1097 var_133 = var132;
1098 for(;;) {
1099 {
1100 var134 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_133);
1101 }
1102 if (var134){
1103 {
1104 var135 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_133);
1105 }
1106 var_msupertype = var135;
1107 {
1108 { /* Inline model#MClassType#mclass (var_msupertype) on <var_msupertype:MClassType> */
1109 var138 = var_msupertype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_msupertype:MClassType> */
1110 if (unlikely(var138 == NULL)) {
1111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1112 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
1113 show_backtrace(1);
1114 }
1115 var136 = var138;
1116 RET_LABEL137:(void)0;
1117 }
1118 }
1119 {
1120 { /* Inline model#MClass#kind (var136) on <var136:MClass> */
1121 var141 = var136->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on <var136:MClass> */
1122 if (unlikely(var141 == NULL)) {
1123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
1124 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 399);
1125 show_backtrace(1);
1126 }
1127 var139 = var141;
1128 RET_LABEL140:(void)0;
1129 }
1130 }
1131 {
1132 { /* Inline model#MClassKind#need_init (var139) on <var139:MClassKind> */
1133 var144 = var139->attrs[COLOR_nit__model__MClassKind___need_init].s; /* _need_init on <var139:MClassKind> */
1134 var142 = var144;
1135 RET_LABEL143:(void)0;
1136 }
1137 }
1138 var145 = !var142;
1139 if (var145){
1140 goto BREAK_label146;
1141 } else {
1142 }
1143 {
1144 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
1145 var149 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
1146 if (unlikely(var149 == NULL)) {
1147 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1148 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495);
1149 show_backtrace(1);
1150 }
1151 var147 = var149;
1152 RET_LABEL148:(void)0;
1153 }
1154 }
1155 {
1156 var150 = nit___nit__MClassType___MType__anchor_to(var_msupertype, var_mmodule, var147);
1157 }
1158 var_msupertype = var150;
1159 {
1160 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
1161 var153 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
1162 if (unlikely(var153 == NULL)) {
1163 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1164 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
1165 show_backtrace(1);
1166 }
1167 var151 = var153;
1168 RET_LABEL152:(void)0;
1169 }
1170 }
1171 {
1172 { /* Inline model#MProperty#name (var151) on <var151:MProperty(MMethod)> */
1173 var156 = var151->attrs[COLOR_nit__model__MProperty___name].val; /* _name on <var151:MProperty(MMethod)> */
1174 if (unlikely(var156 == NULL)) {
1175 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1176 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1741);
1177 show_backtrace(1);
1178 }
1179 var154 = var156;
1180 RET_LABEL155:(void)0;
1181 }
1182 }
1183 {
1184 var157 = nit___nit__ModelBuilder___try_get_mproperty_by_name2(var_modelbuilder, self, var_mmodule, var_msupertype, var154);
1185 }
1186 var_candidate = var157;
1187 var158 = NULL;
1188 if (var_candidate == NULL) {
1189 var159 = 1; /* is null */
1190 } else {
1191 var159 = 0; /* arg is null but recv is not */
1192 }
1193 if (0) {
1194 { /* Inline kernel#Object#== (var_candidate,var158) on <var_candidate:nullable MProperty> */
1195 var_other162 = var158;
1196 {
1197 { /* Inline kernel#Object#is_same_instance (var_candidate,var_other162) on <var_candidate:nullable MProperty(MProperty)> */
1198 var165 = var_candidate == var_other162;
1199 var163 = var165;
1200 goto RET_LABEL164;
1201 RET_LABEL164:(void)0;
1202 }
1203 }
1204 var160 = var163;
1205 goto RET_LABEL161;
1206 RET_LABEL161:(void)0;
1207 }
1208 var159 = var160;
1209 }
1210 if (var159){
1211 if (varonce166) {
1212 var167 = varonce166;
1213 } else {
1214 var168 = "init";
1215 var169 = 4;
1216 var170 = standard___standard__NativeString___to_s_with_length(var168, var169);
1217 var167 = var170;
1218 varonce166 = var167;
1219 }
1220 {
1221 var171 = nit___nit__ModelBuilder___try_get_mproperty_by_name2(var_modelbuilder, self, var_mmodule, var_msupertype, var167);
1222 }
1223 var_candidate = var171;
1224 } else {
1225 }
1226 var172 = NULL;
1227 if (var_candidate == NULL) {
1228 var173 = 1; /* is null */
1229 } else {
1230 var173 = 0; /* arg is null but recv is not */
1231 }
1232 if (0) {
1233 { /* Inline kernel#Object#== (var_candidate,var172) on <var_candidate:nullable MProperty> */
1234 var_other162 = var172;
1235 {
1236 { /* Inline kernel#Object#is_same_instance (var_candidate,var_other162) on <var_candidate:nullable MProperty(MProperty)> */
1237 var178 = var_candidate == var_other162;
1238 var176 = var178;
1239 goto RET_LABEL177;
1240 RET_LABEL177:(void)0;
1241 }
1242 }
1243 var174 = var176;
1244 goto RET_LABEL175;
1245 RET_LABEL175:(void)0;
1246 }
1247 var173 = var174;
1248 }
1249 if (var173){
1250 if (varonce179) {
1251 var180 = varonce179;
1252 } else {
1253 var181 = "Error: Cannot do an implicit constructor call in ";
1254 var182 = 49;
1255 var183 = standard___standard__NativeString___to_s_with_length(var181, var182);
1256 var180 = var183;
1257 varonce179 = var180;
1258 }
1259 if (varonce184) {
1260 var185 = varonce184;
1261 } else {
1262 var186 = "; there is no constructor named ";
1263 var187 = 32;
1264 var188 = standard___standard__NativeString___to_s_with_length(var186, var187);
1265 var185 = var188;
1266 varonce184 = var185;
1267 }
1268 {
1269 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
1270 var191 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
1271 if (unlikely(var191 == NULL)) {
1272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1273 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
1274 show_backtrace(1);
1275 }
1276 var189 = var191;
1277 RET_LABEL190:(void)0;
1278 }
1279 }
1280 {
1281 { /* Inline model#MProperty#name (var189) on <var189:MProperty(MMethod)> */
1282 var194 = var189->attrs[COLOR_nit__model__MProperty___name].val; /* _name on <var189:MProperty(MMethod)> */
1283 if (unlikely(var194 == NULL)) {
1284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1285 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1741);
1286 show_backtrace(1);
1287 }
1288 var192 = var194;
1289 RET_LABEL193:(void)0;
1290 }
1291 }
1292 if (varonce195) {
1293 var196 = varonce195;
1294 } else {
1295 var197 = " in ";
1296 var198 = 4;
1297 var199 = standard___standard__NativeString___to_s_with_length(var197, var198);
1298 var196 = var199;
1299 varonce195 = var196;
1300 }
1301 if (varonce200) {
1302 var201 = varonce200;
1303 } else {
1304 var202 = ".";
1305 var203 = 1;
1306 var204 = standard___standard__NativeString___to_s_with_length(var202, var203);
1307 var201 = var204;
1308 varonce200 = var201;
1309 }
1310 var205 = NEW_standard__Array(&type_standard__Array__standard__Object);
1311 { /* var205 = array_instance Array[Object] */
1312 var206 = 7;
1313 var207 = NEW_standard__NativeArray(var206, &type_standard__NativeArray__standard__Object);
1314 ((struct instance_standard__NativeArray*)var207)->values[0] = (val*) var180;
1315 ((struct instance_standard__NativeArray*)var207)->values[1] = (val*) var_mpropdef;
1316 ((struct instance_standard__NativeArray*)var207)->values[2] = (val*) var185;
1317 ((struct instance_standard__NativeArray*)var207)->values[3] = (val*) var192;
1318 ((struct instance_standard__NativeArray*)var207)->values[4] = (val*) var196;
1319 ((struct instance_standard__NativeArray*)var207)->values[5] = (val*) var_msupertype;
1320 ((struct instance_standard__NativeArray*)var207)->values[6] = (val*) var201;
1321 {
1322 ((void (*)(val* self, val* p0, long p1))(var205->class->vft[COLOR_standard__array__Array__with_native]))(var205, var207, var206) /* with_native on <var205:Array[Object]>*/;
1323 }
1324 }
1325 {
1326 var208 = ((val* (*)(val* self))(var205->class->vft[COLOR_standard__string__Object__to_s]))(var205) /* to_s on <var205:Array[Object]>*/;
1327 }
1328 {
1329 nit___nit__ModelBuilder___error(var_modelbuilder, self, var208); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
1330 }
1331 goto RET_LABEL;
1332 } else {
1333 }
1334 /* <var_candidate:nullable MProperty(MProperty)> isa MMethod */
1335 cltype210 = type_nit__MMethod.color;
1336 idtype211 = type_nit__MMethod.id;
1337 if(cltype210 >= var_candidate->type->table_size) {
1338 var209 = 0;
1339 } else {
1340 var209 = var_candidate->type->type_table[cltype210] == idtype211;
1341 }
1342 if (unlikely(!var209)) {
1343 PRINT_ERROR("Runtime error: %s", "Assert failed");
1344 PRINT_ERROR(" (%s:%d)\n", FILE_nit__auto_super_init, 125);
1345 show_backtrace(1);
1346 }
1347 {
1348 { /* Inline model#MMethod#is_root_init (var_candidate) on <var_candidate:nullable MProperty(MMethod)> */
1349 var214 = var_candidate->attrs[COLOR_nit__model__MMethod___is_root_init].s; /* _is_root_init on <var_candidate:nullable MProperty(MMethod)> */
1350 var212 = var214;
1351 RET_LABEL213:(void)0;
1352 }
1353 }
1354 if (var212){
1355 goto BREAK_label146;
1356 } else {
1357 }
1358 {
1359 var215 = nit___nit__MProperty___lookup_definitions(var_candidate, var_mmodule, var_anchor);
1360 }
1361 var_candidatedefs = var215;
1362 {
1363 var216 = standard___standard__SequenceRead___Collection__first(var_candidatedefs);
1364 }
1365 var_candidatedef = var216;
1366 {
1367 { /* Inline model#MMethodDef#new_msignature (var_candidatedef) on <var_candidatedef:MMethodDef> */
1368 var220 = var_candidatedef->attrs[COLOR_nit__model__MMethodDef___new_msignature].val; /* _new_msignature on <var_candidatedef:MMethodDef> */
1369 var218 = var220;
1370 RET_LABEL219:(void)0;
1371 }
1372 }
1373 if (var218!=NULL) {
1374 var217 = var218;
1375 } else {
1376 {
1377 { /* Inline model#MMethodDef#msignature (var_candidatedef) on <var_candidatedef:MMethodDef> */
1378 var223 = var_candidatedef->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <var_candidatedef:MMethodDef> */
1379 var221 = var223;
1380 RET_LABEL222:(void)0;
1381 }
1382 }
1383 var217 = var221;
1384 }
1385 var_msignature = var217;
1386 var224 = 1;
1387 if (var_msignature == NULL) {
1388 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1389 PRINT_ERROR(" (%s:%d)\n", FILE_nit__auto_super_init, 135);
1390 show_backtrace(1);
1391 } else {
1392 var225 = nit___nit__MSignature___MType__resolve_for(var_msignature, var_recvtype, var_anchor, var_mmodule, var224);
1393 }
1394 var_msignature = var225;
1395 var226 = NEW_nit__CallSite(&type_nit__CallSite);
1396 var227 = 1;
1397 var228 = 0;
1398 {
1399 ((void (*)(val* self, val* p0))(var226->class->vft[COLOR_nit__typing__CallSite__node_61d]))(var226, self) /* node= on <var226:CallSite>*/;
1400 }
1401 {
1402 ((void (*)(val* self, val* p0))(var226->class->vft[COLOR_nit__typing__CallSite__recv_61d]))(var226, var_recvtype) /* recv= on <var226:CallSite>*/;
1403 }
1404 {
1405 ((void (*)(val* self, val* p0))(var226->class->vft[COLOR_nit__typing__CallSite__mmodule_61d]))(var226, var_mmodule) /* mmodule= on <var226:CallSite>*/;
1406 }
1407 {
1408 ((void (*)(val* self, val* p0))(var226->class->vft[COLOR_nit__typing__CallSite__anchor_61d]))(var226, var_anchor) /* anchor= on <var226:CallSite>*/;
1409 }
1410 {
1411 ((void (*)(val* self, short int p0))(var226->class->vft[COLOR_nit__typing__CallSite__recv_is_self_61d]))(var226, var227) /* recv_is_self= on <var226:CallSite>*/;
1412 }
1413 {
1414 ((void (*)(val* self, val* p0))(var226->class->vft[COLOR_nit__typing__CallSite__mproperty_61d]))(var226, var_candidate) /* mproperty= on <var226:CallSite>*/;
1415 }
1416 {
1417 ((void (*)(val* self, val* p0))(var226->class->vft[COLOR_nit__typing__CallSite__mpropdef_61d]))(var226, var_candidatedef) /* mpropdef= on <var226:CallSite>*/;
1418 }
1419 {
1420 ((void (*)(val* self, val* p0))(var226->class->vft[COLOR_nit__typing__CallSite__msignature_61d]))(var226, var_msignature) /* msignature= on <var226:CallSite>*/;
1421 }
1422 {
1423 ((void (*)(val* self, short int p0))(var226->class->vft[COLOR_nit__typing__CallSite__erasure_cast_61d]))(var226, var228) /* erasure_cast= on <var226:CallSite>*/;
1424 }
1425 {
1426 ((void (*)(val* self))(var226->class->vft[COLOR_standard__kernel__Object__init]))(var226) /* init on <var226:CallSite>*/;
1427 }
1428 var_callsite = var226;
1429 {
1430 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_auto_super_inits, var_callsite); /* Direct call array#Array#add on <var_auto_super_inits:Array[CallSite]>*/
1431 }
1432 BREAK_label146: (void)0;
1433 {
1434 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_133); /* Direct call array#ArrayIterator#next on <var_133:ArrayIterator[MClassType]>*/
1435 }
1436 } else {
1437 goto BREAK_label229;
1438 }
1439 }
1440 BREAK_label229: (void)0;
1441 {
1442 { /* Inline abstract_collection#Iterator#finish (var_133) on <var_133:ArrayIterator[MClassType]> */
1443 RET_LABEL230:(void)0;
1444 }
1445 }
1446 {
1447 { /* Inline modelize_property#ModelBuilder#the_root_init_mmethod (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
1448 var233 = var_modelbuilder->attrs[COLOR_nit__modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <var_modelbuilder:ModelBuilder> */
1449 var231 = var233;
1450 RET_LABEL232:(void)0;
1451 }
1452 }
1453 var_the_root_init_mmethod = var231;
1454 var235 = NULL;
1455 if (var_the_root_init_mmethod == NULL) {
1456 var236 = 0; /* is null */
1457 } else {
1458 var236 = 1; /* arg is null and recv is not */
1459 }
1460 if (0) {
1461 { /* Inline kernel#Object#!= (var_the_root_init_mmethod,var235) on <var_the_root_init_mmethod:nullable MMethod> */
1462 var_other = var235;
1463 {
1464 var239 = ((short int (*)(val* self, val* p0))(var_the_root_init_mmethod->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_the_root_init_mmethod, var_other) /* == on <var_the_root_init_mmethod:nullable MMethod(MMethod)>*/;
1465 }
1466 var240 = !var239;
1467 var237 = var240;
1468 goto RET_LABEL238;
1469 RET_LABEL238:(void)0;
1470 }
1471 var236 = var237;
1472 }
1473 var_241 = var236;
1474 if (var236){
1475 {
1476 var242 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_auto_super_inits);
1477 }
1478 var234 = var242;
1479 } else {
1480 var234 = var_241;
1481 }
1482 if (var234){
1483 {
1484 var243 = nit___nit__MProperty___lookup_definitions(var_the_root_init_mmethod, var_mmodule, var_anchor);
1485 }
1486 var_candidatedefs244 = var243;
1487 {
1488 var245 = standard___standard__SequenceRead___Collection__first(var_candidatedefs244);
1489 }
1490 var_candidatedef246 = var245;
1491 {
1492 { /* Inline array#AbstractArrayRead#length (var_candidatedefs244) on <var_candidatedefs244:Array[MMethodDef]> */
1493 var249 = var_candidatedefs244->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_candidatedefs244:Array[MMethodDef]> */
1494 var247 = var249;
1495 RET_LABEL248:(void)0;
1496 }
1497 }
1498 var250 = 1;
1499 {
1500 { /* Inline kernel#Int#> (var247,var250) on <var247:Int> */
1501 /* Covariant cast for argument 0 (i) <var250:Int> isa OTHER */
1502 /* <var250:Int> isa OTHER */
1503 var253 = 1; /* easy <var250:Int> isa OTHER*/
1504 if (unlikely(!var253)) {
1505 var_class_name256 = type_standard__Int.name;
1506 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name256);
1507 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
1508 show_backtrace(1);
1509 }
1510 var257 = var247 > var250;
1511 var251 = var257;
1512 goto RET_LABEL252;
1513 RET_LABEL252:(void)0;
1514 }
1515 }
1516 if (var251){
1517 var_258 = var_candidatedefs244;
1518 {
1519 var259 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_258);
1520 }
1521 var_260 = var259;
1522 for(;;) {
1523 {
1524 var261 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_260);
1525 }
1526 if (var261){
1527 {
1528 var262 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_260);
1529 }
1530 var_spd = var262;
1531 {
1532 { /* Inline model#MMethodDef#initializers (var_spd) on <var_spd:MMethodDef> */
1533 var265 = var_spd->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_spd:MMethodDef> */
1534 if (unlikely(var265 == NULL)) {
1535 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
1536 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
1537 show_backtrace(1);
1538 }
1539 var263 = var265;
1540 RET_LABEL264:(void)0;
1541 }
1542 }
1543 {
1544 { /* Inline array#AbstractArrayRead#length (var263) on <var263:Array[MProperty]> */
1545 var268 = var263->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var263:Array[MProperty]> */
1546 var266 = var268;
1547 RET_LABEL267:(void)0;
1548 }
1549 }
1550 {
1551 { /* Inline model#MMethodDef#initializers (var_candidatedef246) on <var_candidatedef246:MMethodDef> */
1552 var271 = var_candidatedef246->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_candidatedef246:MMethodDef> */
1553 if (unlikely(var271 == NULL)) {
1554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
1555 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
1556 show_backtrace(1);
1557 }
1558 var269 = var271;
1559 RET_LABEL270:(void)0;
1560 }
1561 }
1562 {
1563 { /* Inline array#AbstractArrayRead#length (var269) on <var269:Array[MProperty]> */
1564 var274 = var269->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var269:Array[MProperty]> */
1565 var272 = var274;
1566 RET_LABEL273:(void)0;
1567 }
1568 }
1569 {
1570 { /* Inline kernel#Int#> (var266,var272) on <var266:Int> */
1571 /* Covariant cast for argument 0 (i) <var272:Int> isa OTHER */
1572 /* <var272:Int> isa OTHER */
1573 var277 = 1; /* easy <var272:Int> isa OTHER*/
1574 if (unlikely(!var277)) {
1575 var_class_name280 = type_standard__Int.name;
1576 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name280);
1577 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
1578 show_backtrace(1);
1579 }
1580 var281 = var266 > var272;
1581 var275 = var281;
1582 goto RET_LABEL276;
1583 RET_LABEL276:(void)0;
1584 }
1585 }
1586 if (var275){
1587 var_candidatedef246 = var_spd;
1588 } else {
1589 }
1590 {
1591 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_260); /* Direct call array#ArrayIterator#next on <var_260:ArrayIterator[MMethodDef]>*/
1592 }
1593 } else {
1594 goto BREAK_label282;
1595 }
1596 }
1597 BREAK_label282: (void)0;
1598 {
1599 { /* Inline abstract_collection#Iterator#finish (var_260) on <var_260:ArrayIterator[MMethodDef]> */
1600 RET_LABEL283:(void)0;
1601 }
1602 }
1603 var_284 = var_candidatedefs244;
1604 {
1605 var285 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_284);
1606 }
1607 var_286 = var285;
1608 for(;;) {
1609 {
1610 var287 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_286);
1611 }
1612 if (var287){
1613 {
1614 var288 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_286);
1615 }
1616 var_spd289 = var288;
1617 var290 = 0;
1618 var_i = var290;
1619 {
1620 { /* Inline model#MMethodDef#initializers (var_spd289) on <var_spd289:MMethodDef> */
1621 var293 = var_spd289->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_spd289:MMethodDef> */
1622 if (unlikely(var293 == NULL)) {
1623 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
1624 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
1625 show_backtrace(1);
1626 }
1627 var291 = var293;
1628 RET_LABEL292:(void)0;
1629 }
1630 }
1631 var_294 = var291;
1632 {
1633 var295 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_294);
1634 }
1635 var_296 = var295;
1636 for(;;) {
1637 {
1638 var297 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_296);
1639 }
1640 if (var297){
1641 {
1642 var298 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_296);
1643 }
1644 var_p = var298;
1645 {
1646 { /* Inline model#MMethodDef#initializers (var_candidatedef246) on <var_candidatedef246:MMethodDef> */
1647 var301 = var_candidatedef246->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_candidatedef246:MMethodDef> */
1648 if (unlikely(var301 == NULL)) {
1649 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
1650 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
1651 show_backtrace(1);
1652 }
1653 var299 = var301;
1654 RET_LABEL300:(void)0;
1655 }
1656 }
1657 {
1658 var302 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var299, var_i);
1659 }
1660 {
1661 { /* Inline kernel#Object#!= (var_p,var302) on <var_p:MProperty> */
1662 var_other = var302;
1663 {
1664 var305 = ((short int (*)(val* self, val* p0))(var_p->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_p, var_other) /* == on <var_p:MProperty>*/;
1665 }
1666 var306 = !var305;
1667 var303 = var306;
1668 goto RET_LABEL304;
1669 RET_LABEL304:(void)0;
1670 }
1671 }
1672 if (var303){
1673 if (varonce307) {
1674 var308 = varonce307;
1675 } else {
1676 var309 = "Error: Cannot do an implicit constructor call to comflicting for inherited inits ";
1677 var310 = 81;
1678 var311 = standard___standard__NativeString___to_s_with_length(var309, var310);
1679 var308 = var311;
1680 varonce307 = var308;
1681 }
1682 if (varonce312) {
1683 var313 = varonce312;
1684 } else {
1685 var314 = "(";
1686 var315 = 1;
1687 var316 = standard___standard__NativeString___to_s_with_length(var314, var315);
1688 var313 = var316;
1689 varonce312 = var313;
1690 }
1691 {
1692 { /* Inline model#MMethodDef#initializers (var_spd289) on <var_spd289:MMethodDef> */
1693 var319 = var_spd289->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_spd289:MMethodDef> */
1694 if (unlikely(var319 == NULL)) {
1695 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
1696 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
1697 show_backtrace(1);
1698 }
1699 var317 = var319;
1700 RET_LABEL318:(void)0;
1701 }
1702 }
1703 if (varonce320) {
1704 var321 = varonce320;
1705 } else {
1706 var322 = ", ";
1707 var323 = 2;
1708 var324 = standard___standard__NativeString___to_s_with_length(var322, var323);
1709 var321 = var324;
1710 varonce320 = var321;
1711 }
1712 {
1713 var325 = standard__string___Collection___join(var317, var321);
1714 }
1715 if (varonce326) {
1716 var327 = varonce326;
1717 } else {
1718 var328 = ") and ";
1719 var329 = 6;
1720 var330 = standard___standard__NativeString___to_s_with_length(var328, var329);
1721 var327 = var330;
1722 varonce326 = var327;
1723 }
1724 if (varonce331) {
1725 var332 = varonce331;
1726 } else {
1727 var333 = "(";
1728 var334 = 1;
1729 var335 = standard___standard__NativeString___to_s_with_length(var333, var334);
1730 var332 = var335;
1731 varonce331 = var332;
1732 }
1733 {
1734 { /* Inline model#MMethodDef#initializers (var_candidatedef246) on <var_candidatedef246:MMethodDef> */
1735 var338 = var_candidatedef246->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_candidatedef246:MMethodDef> */
1736 if (unlikely(var338 == NULL)) {
1737 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
1738 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
1739 show_backtrace(1);
1740 }
1741 var336 = var338;
1742 RET_LABEL337:(void)0;
1743 }
1744 }
1745 if (varonce339) {
1746 var340 = varonce339;
1747 } else {
1748 var341 = ", ";
1749 var342 = 2;
1750 var343 = standard___standard__NativeString___to_s_with_length(var341, var342);
1751 var340 = var343;
1752 varonce339 = var340;
1753 }
1754 {
1755 var344 = standard__string___Collection___join(var336, var340);
1756 }
1757 if (varonce345) {
1758 var346 = varonce345;
1759 } else {
1760 var347 = "). NOTE: Do not mix old-style and new-style init!";
1761 var348 = 49;
1762 var349 = standard___standard__NativeString___to_s_with_length(var347, var348);
1763 var346 = var349;
1764 varonce345 = var346;
1765 }
1766 var350 = NEW_standard__Array(&type_standard__Array__standard__Object);
1767 { /* var350 = array_instance Array[Object] */
1768 var351 = 9;
1769 var352 = NEW_standard__NativeArray(var351, &type_standard__NativeArray__standard__Object);
1770 ((struct instance_standard__NativeArray*)var352)->values[0] = (val*) var308;
1771 ((struct instance_standard__NativeArray*)var352)->values[1] = (val*) var_spd289;
1772 ((struct instance_standard__NativeArray*)var352)->values[2] = (val*) var313;
1773 ((struct instance_standard__NativeArray*)var352)->values[3] = (val*) var325;
1774 ((struct instance_standard__NativeArray*)var352)->values[4] = (val*) var327;
1775 ((struct instance_standard__NativeArray*)var352)->values[5] = (val*) var_candidatedef246;
1776 ((struct instance_standard__NativeArray*)var352)->values[6] = (val*) var332;
1777 ((struct instance_standard__NativeArray*)var352)->values[7] = (val*) var344;
1778 ((struct instance_standard__NativeArray*)var352)->values[8] = (val*) var346;
1779 {
1780 ((void (*)(val* self, val* p0, long p1))(var350->class->vft[COLOR_standard__array__Array__with_native]))(var350, var352, var351) /* with_native on <var350:Array[Object]>*/;
1781 }
1782 }
1783 {
1784 var353 = ((val* (*)(val* self))(var350->class->vft[COLOR_standard__string__Object__to_s]))(var350) /* to_s on <var350:Array[Object]>*/;
1785 }
1786 {
1787 nit___nit__ModelBuilder___error(var_modelbuilder, self, var353); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
1788 }
1789 goto RET_LABEL;
1790 } else {
1791 }
1792 var354 = 1;
1793 {
1794 { /* Inline kernel#Int#+ (var_i,var354) on <var_i:Int> */
1795 /* Covariant cast for argument 0 (i) <var354:Int> isa OTHER */
1796 /* <var354:Int> isa OTHER */
1797 var357 = 1; /* easy <var354:Int> isa OTHER*/
1798 if (unlikely(!var357)) {
1799 var_class_name360 = type_standard__Int.name;
1800 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name360);
1801 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
1802 show_backtrace(1);
1803 }
1804 var361 = var_i + var354;
1805 var355 = var361;
1806 goto RET_LABEL356;
1807 RET_LABEL356:(void)0;
1808 }
1809 }
1810 var_i = var355;
1811 {
1812 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_296); /* Direct call array#ArrayIterator#next on <var_296:ArrayIterator[MProperty]>*/
1813 }
1814 } else {
1815 goto BREAK_label362;
1816 }
1817 }
1818 BREAK_label362: (void)0;
1819 {
1820 { /* Inline abstract_collection#Iterator#finish (var_296) on <var_296:ArrayIterator[MProperty]> */
1821 RET_LABEL363:(void)0;
1822 }
1823 }
1824 {
1825 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_286); /* Direct call array#ArrayIterator#next on <var_286:ArrayIterator[MMethodDef]>*/
1826 }
1827 } else {
1828 goto BREAK_label364;
1829 }
1830 }
1831 BREAK_label364: (void)0;
1832 {
1833 { /* Inline abstract_collection#Iterator#finish (var_286) on <var_286:ArrayIterator[MMethodDef]> */
1834 RET_LABEL365:(void)0;
1835 }
1836 }
1837 } else {
1838 }
1839 {
1840 { /* Inline model#MMethodDef#new_msignature (var_candidatedef246) on <var_candidatedef246:MMethodDef> */
1841 var369 = var_candidatedef246->attrs[COLOR_nit__model__MMethodDef___new_msignature].val; /* _new_msignature on <var_candidatedef246:MMethodDef> */
1842 var367 = var369;
1843 RET_LABEL368:(void)0;
1844 }
1845 }
1846 if (var367!=NULL) {
1847 var366 = var367;
1848 } else {
1849 {
1850 { /* Inline model#MMethodDef#msignature (var_candidatedef246) on <var_candidatedef246:MMethodDef> */
1851 var372 = var_candidatedef246->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <var_candidatedef246:MMethodDef> */
1852 var370 = var372;
1853 RET_LABEL371:(void)0;
1854 }
1855 }
1856 var366 = var370;
1857 }
1858 var_msignature373 = var366;
1859 var374 = 1;
1860 if (var_msignature373 == NULL) {
1861 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1862 PRINT_ERROR(" (%s:%d)\n", FILE_nit__auto_super_init, 169);
1863 show_backtrace(1);
1864 } else {
1865 var375 = nit___nit__MSignature___MType__resolve_for(var_msignature373, var_recvtype, var_anchor, var_mmodule, var374);
1866 }
1867 var_msignature373 = var375;
1868 var376 = NEW_nit__CallSite(&type_nit__CallSite);
1869 var377 = 1;
1870 var378 = 0;
1871 {
1872 ((void (*)(val* self, val* p0))(var376->class->vft[COLOR_nit__typing__CallSite__node_61d]))(var376, self) /* node= on <var376:CallSite>*/;
1873 }
1874 {
1875 ((void (*)(val* self, val* p0))(var376->class->vft[COLOR_nit__typing__CallSite__recv_61d]))(var376, var_recvtype) /* recv= on <var376:CallSite>*/;
1876 }
1877 {
1878 ((void (*)(val* self, val* p0))(var376->class->vft[COLOR_nit__typing__CallSite__mmodule_61d]))(var376, var_mmodule) /* mmodule= on <var376:CallSite>*/;
1879 }
1880 {
1881 ((void (*)(val* self, val* p0))(var376->class->vft[COLOR_nit__typing__CallSite__anchor_61d]))(var376, var_anchor) /* anchor= on <var376:CallSite>*/;
1882 }
1883 {
1884 ((void (*)(val* self, short int p0))(var376->class->vft[COLOR_nit__typing__CallSite__recv_is_self_61d]))(var376, var377) /* recv_is_self= on <var376:CallSite>*/;
1885 }
1886 {
1887 ((void (*)(val* self, val* p0))(var376->class->vft[COLOR_nit__typing__CallSite__mproperty_61d]))(var376, var_the_root_init_mmethod) /* mproperty= on <var376:CallSite>*/;
1888 }
1889 {
1890 ((void (*)(val* self, val* p0))(var376->class->vft[COLOR_nit__typing__CallSite__mpropdef_61d]))(var376, var_candidatedef246) /* mpropdef= on <var376:CallSite>*/;
1891 }
1892 {
1893 ((void (*)(val* self, val* p0))(var376->class->vft[COLOR_nit__typing__CallSite__msignature_61d]))(var376, var_msignature373) /* msignature= on <var376:CallSite>*/;
1894 }
1895 {
1896 ((void (*)(val* self, short int p0))(var376->class->vft[COLOR_nit__typing__CallSite__erasure_cast_61d]))(var376, var378) /* erasure_cast= on <var376:CallSite>*/;
1897 }
1898 {
1899 ((void (*)(val* self))(var376->class->vft[COLOR_standard__kernel__Object__init]))(var376) /* init on <var376:CallSite>*/;
1900 }
1901 var_callsite379 = var376;
1902 {
1903 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_auto_super_inits, var_callsite379); /* Direct call array#Array#add on <var_auto_super_inits:Array[CallSite]>*/
1904 }
1905 } else {
1906 }
1907 {
1908 var380 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_auto_super_inits);
1909 }
1910 if (var380){
1911 if (varonce381) {
1912 var382 = varonce381;
1913 } else {
1914 var383 = "Error: No constructors to call implicitely in ";
1915 var384 = 46;
1916 var385 = standard___standard__NativeString___to_s_with_length(var383, var384);
1917 var382 = var385;
1918 varonce381 = var382;
1919 }
1920 if (varonce386) {
1921 var387 = varonce386;
1922 } else {
1923 var388 = ". Call one explicitely.";
1924 var389 = 23;
1925 var390 = standard___standard__NativeString___to_s_with_length(var388, var389);
1926 var387 = var390;
1927 varonce386 = var387;
1928 }
1929 var391 = NEW_standard__Array(&type_standard__Array__standard__Object);
1930 { /* var391 = array_instance Array[Object] */
1931 var392 = 3;
1932 var393 = NEW_standard__NativeArray(var392, &type_standard__NativeArray__standard__Object);
1933 ((struct instance_standard__NativeArray*)var393)->values[0] = (val*) var382;
1934 ((struct instance_standard__NativeArray*)var393)->values[1] = (val*) var_mpropdef;
1935 ((struct instance_standard__NativeArray*)var393)->values[2] = (val*) var387;
1936 {
1937 ((void (*)(val* self, val* p0, long p1))(var391->class->vft[COLOR_standard__array__Array__with_native]))(var391, var393, var392) /* with_native on <var391:Array[Object]>*/;
1938 }
1939 }
1940 {
1941 var394 = ((val* (*)(val* self))(var391->class->vft[COLOR_standard__string__Object__to_s]))(var391) /* to_s on <var391:Array[Object]>*/;
1942 }
1943 {
1944 nit___nit__ModelBuilder___error(var_modelbuilder, self, var394); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
1945 }
1946 goto RET_LABEL;
1947 } else {
1948 }
1949 var_395 = var_auto_super_inits;
1950 {
1951 var396 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_395);
1952 }
1953 var_397 = var396;
1954 for(;;) {
1955 {
1956 var398 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_397);
1957 }
1958 if (var398){
1959 {
1960 var399 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_397);
1961 }
1962 var_auto_super_init = var399;
1963 {
1964 { /* Inline typing#CallSite#mpropdef (var_auto_super_init) on <var_auto_super_init:CallSite> */
1965 var402 = var_auto_super_init->attrs[COLOR_nit__typing__CallSite___mpropdef].val; /* _mpropdef on <var_auto_super_init:CallSite> */
1966 if (unlikely(var402 == NULL)) {
1967 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1968 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 490);
1969 show_backtrace(1);
1970 }
1971 var400 = var402;
1972 RET_LABEL401:(void)0;
1973 }
1974 }
1975 var_auto_super_init_def = var400;
1976 {
1977 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:MMethodDef> */
1978 var405 = var_mpropdef->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:MMethodDef> */
1979 var403 = var405;
1980 RET_LABEL404:(void)0;
1981 }
1982 }
1983 if (unlikely(var403 == NULL)) {
1984 PRINT_ERROR("Runtime error: %s", "Cast failed");
1985 PRINT_ERROR(" (%s:%d)\n", FILE_nit__auto_super_init, 182);
1986 show_backtrace(1);
1987 }
1988 var_msig = var403;
1989 {
1990 { /* Inline typing#CallSite#msignature (var_auto_super_init) on <var_auto_super_init:CallSite> */
1991 var408 = var_auto_super_init->attrs[COLOR_nit__typing__CallSite___msignature].val; /* _msignature on <var_auto_super_init:CallSite> */
1992 if (unlikely(var408 == NULL)) {
1993 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
1994 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 494);
1995 show_backtrace(1);
1996 }
1997 var406 = var408;
1998 RET_LABEL407:(void)0;
1999 }
2000 }
2001 var_supermsig = var406;
2002 {
2003 var409 = nit___nit__MSignature___arity(var_supermsig);
2004 }
2005 {
2006 var410 = nit___nit__MSignature___arity(var_msig);
2007 }
2008 {
2009 { /* Inline kernel#Int#> (var409,var410) on <var409:Int> */
2010 /* Covariant cast for argument 0 (i) <var410:Int> isa OTHER */
2011 /* <var410:Int> isa OTHER */
2012 var413 = 1; /* easy <var410:Int> isa OTHER*/
2013 if (unlikely(!var413)) {
2014 var_class_name416 = type_standard__Int.name;
2015 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name416);
2016 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
2017 show_backtrace(1);
2018 }
2019 var417 = var409 > var410;
2020 var411 = var417;
2021 goto RET_LABEL412;
2022 RET_LABEL412:(void)0;
2023 }
2024 }
2025 if (var411){
2026 if (varonce418) {
2027 var419 = varonce418;
2028 } else {
2029 var420 = "Error: Cannot do an implicit constructor call to ";
2030 var421 = 49;
2031 var422 = standard___standard__NativeString___to_s_with_length(var420, var421);
2032 var419 = var422;
2033 varonce418 = var419;
2034 }
2035 if (varonce423) {
2036 var424 = varonce423;
2037 } else {
2038 var425 = ". Expected at least ";
2039 var426 = 20;
2040 var427 = standard___standard__NativeString___to_s_with_length(var425, var426);
2041 var424 = var427;
2042 varonce423 = var424;
2043 }
2044 {
2045 var428 = nit___nit__MSignature___arity(var_supermsig);
2046 }
2047 if (varonce429) {
2048 var430 = varonce429;
2049 } else {
2050 var431 = " arguments, got ";
2051 var432 = 16;
2052 var433 = standard___standard__NativeString___to_s_with_length(var431, var432);
2053 var430 = var433;
2054 varonce429 = var430;
2055 }
2056 {
2057 var434 = nit___nit__MSignature___arity(var_msig);
2058 }
2059 if (varonce435) {
2060 var436 = varonce435;
2061 } else {
2062 var437 = ".";
2063 var438 = 1;
2064 var439 = standard___standard__NativeString___to_s_with_length(var437, var438);
2065 var436 = var439;
2066 varonce435 = var436;
2067 }
2068 var440 = NEW_standard__Array(&type_standard__Array__standard__Object);
2069 { /* var440 = array_instance Array[Object] */
2070 var441 = 8;
2071 var442 = NEW_standard__NativeArray(var441, &type_standard__NativeArray__standard__Object);
2072 ((struct instance_standard__NativeArray*)var442)->values[0] = (val*) var419;
2073 ((struct instance_standard__NativeArray*)var442)->values[1] = (val*) var_auto_super_init_def;
2074 ((struct instance_standard__NativeArray*)var442)->values[2] = (val*) var_supermsig;
2075 ((struct instance_standard__NativeArray*)var442)->values[3] = (val*) var424;
2076 var443 = BOX_standard__Int(var428); /* autobox from Int to Object */
2077 ((struct instance_standard__NativeArray*)var442)->values[4] = (val*) var443;
2078 ((struct instance_standard__NativeArray*)var442)->values[5] = (val*) var430;
2079 var444 = BOX_standard__Int(var434); /* autobox from Int to Object */
2080 ((struct instance_standard__NativeArray*)var442)->values[6] = (val*) var444;
2081 ((struct instance_standard__NativeArray*)var442)->values[7] = (val*) var436;
2082 {
2083 ((void (*)(val* self, val* p0, long p1))(var440->class->vft[COLOR_standard__array__Array__with_native]))(var440, var442, var441) /* with_native on <var440:Array[Object]>*/;
2084 }
2085 }
2086 {
2087 var445 = ((val* (*)(val* self))(var440->class->vft[COLOR_standard__string__Object__to_s]))(var440) /* to_s on <var440:Array[Object]>*/;
2088 }
2089 {
2090 nit___nit__ModelBuilder___error(var_modelbuilder, self, var445); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
2091 }
2092 goto BREAK_label446;
2093 } else {
2094 }
2095 var447 = 0;
2096 var_i448 = var447;
2097 {
2098 { /* Inline model#MSignature#mparameters (var_supermsig) on <var_supermsig:MSignature> */
2099 var451 = var_supermsig->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on <var_supermsig:MSignature> */
2100 if (unlikely(var451 == NULL)) {
2101 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2102 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592);
2103 show_backtrace(1);
2104 }
2105 var449 = var451;
2106 RET_LABEL450:(void)0;
2107 }
2108 }
2109 var_452 = var449;
2110 {
2111 var453 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_452);
2112 }
2113 var_454 = var453;
2114 for(;;) {
2115 {
2116 var455 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_454);
2117 }
2118 if (var455){
2119 {
2120 var456 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_454);
2121 }
2122 var_sp = var456;
2123 {
2124 { /* Inline model#MSignature#mparameters (var_msig) on <var_msig:MSignature> */
2125 var459 = var_msig->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on <var_msig:MSignature> */
2126 if (unlikely(var459 == NULL)) {
2127 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2128 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592);
2129 show_backtrace(1);
2130 }
2131 var457 = var459;
2132 RET_LABEL458:(void)0;
2133 }
2134 }
2135 {
2136 var460 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var457, var_i448);
2137 }
2138 var_p461 = var460;
2139 {
2140 { /* Inline model#MParameter#mtype (var_p461) on <var_p461:MParameter> */
2141 var464 = var_p461->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on <var_p461:MParameter> */
2142 if (unlikely(var464 == NULL)) {
2143 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2144 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1690);
2145 show_backtrace(1);
2146 }
2147 var462 = var464;
2148 RET_LABEL463:(void)0;
2149 }
2150 }
2151 var_sub = var462;
2152 {
2153 { /* Inline model#MParameter#mtype (var_sp) on <var_sp:MParameter> */
2154 var467 = var_sp->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on <var_sp:MParameter> */
2155 if (unlikely(var467 == NULL)) {
2156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2157 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1690);
2158 show_backtrace(1);
2159 }
2160 var465 = var467;
2161 RET_LABEL466:(void)0;
2162 }
2163 }
2164 var_sup = var465;
2165 {
2166 var468 = nit___nit__MType___is_subtype(var_sub, var_mmodule, var_anchor, var_sup);
2167 }
2168 var469 = !var468;
2169 if (var469){
2170 if (varonce470) {
2171 var471 = varonce470;
2172 } else {
2173 var472 = "Error: Cannot do an implicit constructor call to ";
2174 var473 = 49;
2175 var474 = standard___standard__NativeString___to_s_with_length(var472, var473);
2176 var471 = var474;
2177 varonce470 = var471;
2178 }
2179 if (varonce475) {
2180 var476 = varonce475;
2181 } else {
2182 var477 = ". Expected argument #";
2183 var478 = 21;
2184 var479 = standard___standard__NativeString___to_s_with_length(var477, var478);
2185 var476 = var479;
2186 varonce475 = var476;
2187 }
2188 if (varonce480) {
2189 var481 = varonce480;
2190 } else {
2191 var482 = " of type ";
2192 var483 = 9;
2193 var484 = standard___standard__NativeString___to_s_with_length(var482, var483);
2194 var481 = var484;
2195 varonce480 = var481;
2196 }
2197 {
2198 { /* Inline model#MParameter#mtype (var_sp) on <var_sp:MParameter> */
2199 var487 = var_sp->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on <var_sp:MParameter> */
2200 if (unlikely(var487 == NULL)) {
2201 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2202 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1690);
2203 show_backtrace(1);
2204 }
2205 var485 = var487;
2206 RET_LABEL486:(void)0;
2207 }
2208 }
2209 if (varonce488) {
2210 var489 = varonce488;
2211 } else {
2212 var490 = ", got implicit argument ";
2213 var491 = 24;
2214 var492 = standard___standard__NativeString___to_s_with_length(var490, var491);
2215 var489 = var492;
2216 varonce488 = var489;
2217 }
2218 {
2219 { /* Inline model#MParameter#name (var_p461) on <var_p461:MParameter> */
2220 var495 = var_p461->attrs[COLOR_nit__model__MParameter___name].val; /* _name on <var_p461:MParameter> */
2221 if (unlikely(var495 == NULL)) {
2222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2223 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1687);
2224 show_backtrace(1);
2225 }
2226 var493 = var495;
2227 RET_LABEL494:(void)0;
2228 }
2229 }
2230 if (varonce496) {
2231 var497 = varonce496;
2232 } else {
2233 var498 = " of type ";
2234 var499 = 9;
2235 var500 = standard___standard__NativeString___to_s_with_length(var498, var499);
2236 var497 = var500;
2237 varonce496 = var497;
2238 }
2239 {
2240 { /* Inline model#MParameter#mtype (var_p461) on <var_p461:MParameter> */
2241 var503 = var_p461->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on <var_p461:MParameter> */
2242 if (unlikely(var503 == NULL)) {
2243 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2244 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1690);
2245 show_backtrace(1);
2246 }
2247 var501 = var503;
2248 RET_LABEL502:(void)0;
2249 }
2250 }
2251 if (varonce504) {
2252 var505 = varonce504;
2253 } else {
2254 var506 = ".";
2255 var507 = 1;
2256 var508 = standard___standard__NativeString___to_s_with_length(var506, var507);
2257 var505 = var508;
2258 varonce504 = var505;
2259 }
2260 var509 = NEW_standard__Array(&type_standard__Array__standard__Object);
2261 { /* var509 = array_instance Array[Object] */
2262 var510 = 12;
2263 var511 = NEW_standard__NativeArray(var510, &type_standard__NativeArray__standard__Object);
2264 ((struct instance_standard__NativeArray*)var511)->values[0] = (val*) var471;
2265 ((struct instance_standard__NativeArray*)var511)->values[1] = (val*) var_auto_super_init_def;
2266 ((struct instance_standard__NativeArray*)var511)->values[2] = (val*) var_supermsig;
2267 ((struct instance_standard__NativeArray*)var511)->values[3] = (val*) var476;
2268 var512 = BOX_standard__Int(var_i448); /* autobox from Int to Object */
2269 ((struct instance_standard__NativeArray*)var511)->values[4] = (val*) var512;
2270 ((struct instance_standard__NativeArray*)var511)->values[5] = (val*) var481;
2271 ((struct instance_standard__NativeArray*)var511)->values[6] = (val*) var485;
2272 ((struct instance_standard__NativeArray*)var511)->values[7] = (val*) var489;
2273 ((struct instance_standard__NativeArray*)var511)->values[8] = (val*) var493;
2274 ((struct instance_standard__NativeArray*)var511)->values[9] = (val*) var497;
2275 ((struct instance_standard__NativeArray*)var511)->values[10] = (val*) var501;
2276 ((struct instance_standard__NativeArray*)var511)->values[11] = (val*) var505;
2277 {
2278 ((void (*)(val* self, val* p0, long p1))(var509->class->vft[COLOR_standard__array__Array__with_native]))(var509, var511, var510) /* with_native on <var509:Array[Object]>*/;
2279 }
2280 }
2281 {
2282 var513 = ((val* (*)(val* self))(var509->class->vft[COLOR_standard__string__Object__to_s]))(var509) /* to_s on <var509:Array[Object]>*/;
2283 }
2284 {
2285 nit___nit__ModelBuilder___error(var_modelbuilder, self, var513); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
2286 }
2287 goto BREAK_label514;
2288 } else {
2289 }
2290 var515 = 1;
2291 {
2292 { /* Inline kernel#Int#+ (var_i448,var515) on <var_i448:Int> */
2293 /* Covariant cast for argument 0 (i) <var515:Int> isa OTHER */
2294 /* <var515:Int> isa OTHER */
2295 var518 = 1; /* easy <var515:Int> isa OTHER*/
2296 if (unlikely(!var518)) {
2297 var_class_name521 = type_standard__Int.name;
2298 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name521);
2299 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
2300 show_backtrace(1);
2301 }
2302 var522 = var_i448 + var515;
2303 var516 = var522;
2304 goto RET_LABEL517;
2305 RET_LABEL517:(void)0;
2306 }
2307 }
2308 var_i448 = var516;
2309 {
2310 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_454); /* Direct call array#ArrayIterator#next on <var_454:ArrayIterator[MParameter]>*/
2311 }
2312 } else {
2313 goto BREAK_label514;
2314 }
2315 }
2316 BREAK_label514: (void)0;
2317 {
2318 { /* Inline abstract_collection#Iterator#finish (var_454) on <var_454:ArrayIterator[MParameter]> */
2319 RET_LABEL523:(void)0;
2320 }
2321 }
2322 BREAK_label446: (void)0;
2323 {
2324 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_397); /* Direct call array#ArrayIterator#next on <var_397:ArrayIterator[CallSite]>*/
2325 }
2326 } else {
2327 goto BREAK_label524;
2328 }
2329 }
2330 BREAK_label524: (void)0;
2331 {
2332 { /* Inline abstract_collection#Iterator#finish (var_397) on <var_397:ArrayIterator[CallSite]> */
2333 RET_LABEL525:(void)0;
2334 }
2335 }
2336 {
2337 { /* Inline auto_super_init#AMethPropdef#auto_super_inits= (self,var_auto_super_inits) on <self:AMethPropdef> */
2338 self->attrs[COLOR_nit__auto_super_init__AMethPropdef___auto_super_inits].val = var_auto_super_inits; /* _auto_super_inits on <self:AMethPropdef> */
2339 RET_LABEL526:(void)0;
2340 }
2341 }
2342 RET_LABEL:;
2343 }
2344 /* method auto_super_init#ANode#accept_auto_super_init for (self: ANode, AutoSuperInitVisitor) */
2345 void nit__auto_super_init___ANode___accept_auto_super_init(val* self, val* p0) {
2346 val* var_v /* var v: AutoSuperInitVisitor */;
2347 var_v = p0;
2348 RET_LABEL:;
2349 }
2350 /* method auto_super_init#ASendExpr#accept_auto_super_init for (self: ASendExpr, AutoSuperInitVisitor) */
2351 void nit__auto_super_init___ASendExpr___ANode__accept_auto_super_init(val* self, val* p0) {
2352 val* var_v /* var v: AutoSuperInitVisitor */;
2353 val* var /* : nullable CallSite */;
2354 val* var2 /* : nullable CallSite */;
2355 val* var_callsite /* var callsite: nullable CallSite */;
2356 val* var3 /* : null */;
2357 short int var4 /* : Bool */;
2358 short int var5 /* : Bool */;
2359 val* var_other /* var other: nullable Object */;
2360 short int var7 /* : Bool */;
2361 short int var9 /* : Bool */;
2362 short int var10 /* : Bool */;
2363 val* var12 /* : MMethod */;
2364 val* var14 /* : MMethod */;
2365 short int var15 /* : Bool */;
2366 short int var17 /* : Bool */;
2367 var_v = p0;
2368 {
2369 { /* Inline typing#ASendExpr#callsite (self) on <self:ASendExpr> */
2370 var2 = self->attrs[COLOR_nit__typing__ASendExpr___callsite].val; /* _callsite on <self:ASendExpr> */
2371 var = var2;
2372 RET_LABEL1:(void)0;
2373 }
2374 }
2375 var_callsite = var;
2376 var3 = NULL;
2377 if (var_callsite == NULL) {
2378 var4 = 1; /* is null */
2379 } else {
2380 var4 = 0; /* arg is null but recv is not */
2381 }
2382 if (0) {
2383 { /* Inline kernel#Object#== (var_callsite,var3) on <var_callsite:nullable CallSite> */
2384 var_other = var3;
2385 {
2386 { /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
2387 var9 = var_callsite == var_other;
2388 var7 = var9;
2389 goto RET_LABEL8;
2390 RET_LABEL8:(void)0;
2391 }
2392 }
2393 var5 = var7;
2394 goto RET_LABEL6;
2395 RET_LABEL6:(void)0;
2396 }
2397 var4 = var5;
2398 }
2399 if (var4){
2400 var10 = 1;
2401 {
2402 { /* Inline auto_super_init#AutoSuperInitVisitor#is_broken= (var_v,var10) on <var_v:AutoSuperInitVisitor> */
2403 var_v->attrs[COLOR_nit__auto_super_init__AutoSuperInitVisitor___is_broken].s = var10; /* _is_broken on <var_v:AutoSuperInitVisitor> */
2404 RET_LABEL11:(void)0;
2405 }
2406 }
2407 goto RET_LABEL;
2408 } else {
2409 }
2410 {
2411 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
2412 var14 = var_callsite->attrs[COLOR_nit__typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
2413 if (unlikely(var14 == NULL)) {
2414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2415 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 487);
2416 show_backtrace(1);
2417 }
2418 var12 = var14;
2419 RET_LABEL13:(void)0;
2420 }
2421 }
2422 {
2423 { /* Inline model#MMethod#is_init (var12) on <var12:MMethod> */
2424 var17 = var12->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on <var12:MMethod> */
2425 var15 = var17;
2426 RET_LABEL16:(void)0;
2427 }
2428 }
2429 if (var15){
2430 {
2431 { /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= (var_v,self) on <var_v:AutoSuperInitVisitor> */
2432 var_v->attrs[COLOR_nit__auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val = self; /* _has_explicit_super_init on <var_v:AutoSuperInitVisitor> */
2433 RET_LABEL18:(void)0;
2434 }
2435 }
2436 } else {
2437 }
2438 RET_LABEL:;
2439 }
2440 /* method auto_super_init#ASuperExpr#accept_auto_super_init for (self: ASuperExpr, AutoSuperInitVisitor) */
2441 void nit__auto_super_init___ASuperExpr___ANode__accept_auto_super_init(val* self, val* p0) {
2442 val* var_v /* var v: AutoSuperInitVisitor */;
2443 var_v = p0;
2444 {
2445 { /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= (var_v,self) on <var_v:AutoSuperInitVisitor> */
2446 var_v->attrs[COLOR_nit__auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val = self; /* _has_explicit_super_init on <var_v:AutoSuperInitVisitor> */
2447 RET_LABEL1:(void)0;
2448 }
2449 }
2450 RET_LABEL:;
2451 }