nitc: fix calling extern constructors from extern code in separate compiler
[nit.git] / c_src / auto_super_init.sep.1.c
1 #include "auto_super_init.sep.0.h"
2 /* method auto_super_init#ToolContext#auto_super_init_phase for (self: ToolContext): Phase */
3 val* auto_super_init__ToolContext__auto_super_init_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_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", "semantize/auto_super_init.nit", 25);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method auto_super_init#ToolContext#auto_super_init_phase for (self: Object): Phase */
17 val* VIRTUAL_auto_super_init__ToolContext__auto_super_init_phase(val* self) {
18 val* var /* : Phase */;
19 val* var1 /* : Phase */;
20 val* var3 /* : Phase */;
21 { /* Inline auto_super_init#ToolContext#auto_super_init_phase (self) on <self:Object(ToolContext)> */
22 var3 = self->attrs[COLOR_auto_super_init__ToolContext___auto_super_init_phase].val; /* _auto_super_init_phase on <self:Object(ToolContext)> */
23 if (unlikely(var3 == NULL)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _auto_super_init_phase");
25 PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 25);
26 show_backtrace(1);
27 }
28 var1 = var3;
29 RET_LABEL2:(void)0;
30 }
31 var = var1;
32 RET_LABEL:;
33 return var;
34 }
35 /* method auto_super_init#AutoSuperInitPhase#process_npropdef for (self: AutoSuperInitPhase, APropdef) */
36 void auto_super_init__AutoSuperInitPhase__process_npropdef(val* self, val* p0) {
37 val* var_npropdef /* var npropdef: APropdef */;
38 short int var /* : Bool */;
39 int cltype;
40 int idtype;
41 val* var1 /* : ToolContext */;
42 val* var3 /* : ToolContext */;
43 val* var4 /* : ModelBuilder */;
44 var_npropdef = p0;
45 /* <var_npropdef:APropdef> isa AMethPropdef */
46 cltype = type_parser_nodes__AMethPropdef.color;
47 idtype = type_parser_nodes__AMethPropdef.id;
48 if(cltype >= var_npropdef->type->table_size) {
49 var = 0;
50 } else {
51 var = var_npropdef->type->type_table[cltype] == idtype;
52 }
53 if (var){
54 {
55 { /* Inline phase#Phase#toolcontext (self) on <self:AutoSuperInitPhase> */
56 var3 = self->attrs[COLOR_phase__Phase___toolcontext].val; /* _toolcontext on <self:AutoSuperInitPhase> */
57 if (unlikely(var3 == NULL)) {
58 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
59 PRINT_ERROR(" (%s:%d)\n", "phase.nit", 162);
60 show_backtrace(1);
61 }
62 var1 = var3;
63 RET_LABEL2:(void)0;
64 }
65 }
66 {
67 var4 = modelbuilder__ToolContext__modelbuilder(var1);
68 }
69 {
70 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)>*/
71 }
72 } else {
73 }
74 RET_LABEL:;
75 }
76 /* method auto_super_init#AutoSuperInitPhase#process_npropdef for (self: Object, APropdef) */
77 void VIRTUAL_auto_super_init__AutoSuperInitPhase__process_npropdef(val* self, val* p0) {
78 auto_super_init__AutoSuperInitPhase__process_npropdef(self, p0); /* Direct call auto_super_init#AutoSuperInitPhase#process_npropdef on <self:Object(AutoSuperInitPhase)>*/
79 RET_LABEL:;
80 }
81 /* method auto_super_init#AutoSuperInitVisitor#visit for (self: AutoSuperInitVisitor, ANode) */
82 void auto_super_init__AutoSuperInitVisitor__visit(val* self, val* p0) {
83 val* var_n /* var n: ANode */;
84 var_n = p0;
85 {
86 ((void (*)(val*, val*))(var_n->class->vft[COLOR_auto_super_init__ANode__accept_auto_super_init]))(var_n, self) /* accept_auto_super_init on <var_n:ANode>*/;
87 }
88 {
89 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on <var_n:ANode>*/;
90 }
91 RET_LABEL:;
92 }
93 /* method auto_super_init#AutoSuperInitVisitor#visit for (self: Object, ANode) */
94 void VIRTUAL_auto_super_init__AutoSuperInitVisitor__visit(val* self, val* p0) {
95 auto_super_init__AutoSuperInitVisitor__visit(self, p0); /* Direct call auto_super_init#AutoSuperInitVisitor#visit on <self:Object(AutoSuperInitVisitor)>*/
96 RET_LABEL:;
97 }
98 /* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init for (self: AutoSuperInitVisitor): nullable ANode */
99 val* auto_super_init__AutoSuperInitVisitor__has_explicit_super_init(val* self) {
100 val* var /* : nullable ANode */;
101 val* var1 /* : nullable ANode */;
102 var1 = self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val; /* _has_explicit_super_init on <self:AutoSuperInitVisitor> */
103 var = var1;
104 RET_LABEL:;
105 return var;
106 }
107 /* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init for (self: Object): nullable ANode */
108 val* VIRTUAL_auto_super_init__AutoSuperInitVisitor__has_explicit_super_init(val* self) {
109 val* var /* : nullable ANode */;
110 val* var1 /* : nullable ANode */;
111 val* var3 /* : nullable ANode */;
112 { /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init (self) on <self:Object(AutoSuperInitVisitor)> */
113 var3 = self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val; /* _has_explicit_super_init on <self:Object(AutoSuperInitVisitor)> */
114 var1 = var3;
115 RET_LABEL2:(void)0;
116 }
117 var = var1;
118 RET_LABEL:;
119 return var;
120 }
121 /* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= for (self: AutoSuperInitVisitor, nullable ANode) */
122 void auto_super_init__AutoSuperInitVisitor__has_explicit_super_init_61d(val* self, val* p0) {
123 self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val = p0; /* _has_explicit_super_init on <self:AutoSuperInitVisitor> */
124 RET_LABEL:;
125 }
126 /* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= for (self: Object, nullable ANode) */
127 void VIRTUAL_auto_super_init__AutoSuperInitVisitor__has_explicit_super_init_61d(val* self, val* p0) {
128 { /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= (self,p0) on <self:Object(AutoSuperInitVisitor)> */
129 self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val = p0; /* _has_explicit_super_init on <self:Object(AutoSuperInitVisitor)> */
130 RET_LABEL1:(void)0;
131 }
132 RET_LABEL:;
133 }
134 /* method auto_super_init#AutoSuperInitVisitor#is_broken for (self: AutoSuperInitVisitor): Bool */
135 short int auto_super_init__AutoSuperInitVisitor__is_broken(val* self) {
136 short int var /* : Bool */;
137 short int var1 /* : Bool */;
138 var1 = self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___is_broken].s; /* _is_broken on <self:AutoSuperInitVisitor> */
139 var = var1;
140 RET_LABEL:;
141 return var;
142 }
143 /* method auto_super_init#AutoSuperInitVisitor#is_broken for (self: Object): Bool */
144 short int VIRTUAL_auto_super_init__AutoSuperInitVisitor__is_broken(val* self) {
145 short int var /* : Bool */;
146 short int var1 /* : Bool */;
147 short int var3 /* : Bool */;
148 { /* Inline auto_super_init#AutoSuperInitVisitor#is_broken (self) on <self:Object(AutoSuperInitVisitor)> */
149 var3 = self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___is_broken].s; /* _is_broken on <self:Object(AutoSuperInitVisitor)> */
150 var1 = var3;
151 RET_LABEL2:(void)0;
152 }
153 var = var1;
154 RET_LABEL:;
155 return var;
156 }
157 /* method auto_super_init#AutoSuperInitVisitor#is_broken= for (self: AutoSuperInitVisitor, Bool) */
158 void auto_super_init__AutoSuperInitVisitor__is_broken_61d(val* self, short int p0) {
159 self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___is_broken].s = p0; /* _is_broken on <self:AutoSuperInitVisitor> */
160 RET_LABEL:;
161 }
162 /* method auto_super_init#AutoSuperInitVisitor#is_broken= for (self: Object, Bool) */
163 void VIRTUAL_auto_super_init__AutoSuperInitVisitor__is_broken_61d(val* self, short int p0) {
164 { /* Inline auto_super_init#AutoSuperInitVisitor#is_broken= (self,p0) on <self:Object(AutoSuperInitVisitor)> */
165 self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___is_broken].s = p0; /* _is_broken on <self:Object(AutoSuperInitVisitor)> */
166 RET_LABEL1:(void)0;
167 }
168 RET_LABEL:;
169 }
170 /* method auto_super_init#AMethPropdef#auto_super_inits for (self: AMethPropdef): nullable Array[CallSite] */
171 val* auto_super_init__AMethPropdef__auto_super_inits(val* self) {
172 val* var /* : nullable Array[CallSite] */;
173 val* var1 /* : nullable Array[CallSite] */;
174 var1 = self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val; /* _auto_super_inits on <self:AMethPropdef> */
175 var = var1;
176 RET_LABEL:;
177 return var;
178 }
179 /* method auto_super_init#AMethPropdef#auto_super_inits for (self: Object): nullable Array[CallSite] */
180 val* VIRTUAL_auto_super_init__AMethPropdef__auto_super_inits(val* self) {
181 val* var /* : nullable Array[CallSite] */;
182 val* var1 /* : nullable Array[CallSite] */;
183 val* var3 /* : nullable Array[CallSite] */;
184 { /* Inline auto_super_init#AMethPropdef#auto_super_inits (self) on <self:Object(AMethPropdef)> */
185 var3 = self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val; /* _auto_super_inits on <self:Object(AMethPropdef)> */
186 var1 = var3;
187 RET_LABEL2:(void)0;
188 }
189 var = var1;
190 RET_LABEL:;
191 return var;
192 }
193 /* method auto_super_init#AMethPropdef#auto_super_inits= for (self: AMethPropdef, nullable Array[CallSite]) */
194 void auto_super_init__AMethPropdef__auto_super_inits_61d(val* self, val* p0) {
195 self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val = p0; /* _auto_super_inits on <self:AMethPropdef> */
196 RET_LABEL:;
197 }
198 /* method auto_super_init#AMethPropdef#auto_super_inits= for (self: Object, nullable Array[CallSite]) */
199 void VIRTUAL_auto_super_init__AMethPropdef__auto_super_inits_61d(val* self, val* p0) {
200 { /* Inline auto_super_init#AMethPropdef#auto_super_inits= (self,p0) on <self:Object(AMethPropdef)> */
201 self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val = p0; /* _auto_super_inits on <self:Object(AMethPropdef)> */
202 RET_LABEL1:(void)0;
203 }
204 RET_LABEL:;
205 }
206 /* method auto_super_init#AMethPropdef#auto_super_call for (self: AMethPropdef): Bool */
207 short int auto_super_init__AMethPropdef__auto_super_call(val* self) {
208 short int var /* : Bool */;
209 short int var1 /* : Bool */;
210 var1 = self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_call].s; /* _auto_super_call on <self:AMethPropdef> */
211 var = var1;
212 RET_LABEL:;
213 return var;
214 }
215 /* method auto_super_init#AMethPropdef#auto_super_call for (self: Object): Bool */
216 short int VIRTUAL_auto_super_init__AMethPropdef__auto_super_call(val* self) {
217 short int var /* : Bool */;
218 short int var1 /* : Bool */;
219 short int var3 /* : Bool */;
220 { /* Inline auto_super_init#AMethPropdef#auto_super_call (self) on <self:Object(AMethPropdef)> */
221 var3 = self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_call].s; /* _auto_super_call on <self:Object(AMethPropdef)> */
222 var1 = var3;
223 RET_LABEL2:(void)0;
224 }
225 var = var1;
226 RET_LABEL:;
227 return var;
228 }
229 /* method auto_super_init#AMethPropdef#auto_super_call= for (self: AMethPropdef, Bool) */
230 void auto_super_init__AMethPropdef__auto_super_call_61d(val* self, short int p0) {
231 self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_call].s = p0; /* _auto_super_call on <self:AMethPropdef> */
232 RET_LABEL:;
233 }
234 /* method auto_super_init#AMethPropdef#auto_super_call= for (self: Object, Bool) */
235 void VIRTUAL_auto_super_init__AMethPropdef__auto_super_call_61d(val* self, short int p0) {
236 { /* Inline auto_super_init#AMethPropdef#auto_super_call= (self,p0) on <self:Object(AMethPropdef)> */
237 self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_call].s = p0; /* _auto_super_call on <self:Object(AMethPropdef)> */
238 RET_LABEL1:(void)0;
239 }
240 RET_LABEL:;
241 }
242 /* method auto_super_init#AMethPropdef#do_auto_super_init for (self: AMethPropdef, ModelBuilder) */
243 void auto_super_init__AMethPropdef__do_auto_super_init(val* self, val* p0) {
244 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
245 val* var /* : nullable ANode */;
246 val* var2 /* : nullable ANode */;
247 short int var3 /* : Bool */;
248 int cltype;
249 int idtype;
250 const char* var_class_name;
251 val* var4 /* : nullable MClassDef */;
252 val* var6 /* : nullable MClassDef */;
253 val* var_mclassdef /* var mclassdef: MClassDef */;
254 val* var7 /* : nullable MPropDef */;
255 val* var9 /* : nullable MPropDef */;
256 val* var_mpropdef /* var mpropdef: MMethodDef */;
257 val* var10 /* : MClassDef */;
258 val* var12 /* : MClassDef */;
259 val* var13 /* : MModule */;
260 val* var15 /* : MModule */;
261 val* var_mmodule /* var mmodule: MModule */;
262 val* var16 /* : MClassType */;
263 val* var18 /* : MClassType */;
264 val* var_anchor /* var anchor: MClassType */;
265 val* var19 /* : MClass */;
266 val* var21 /* : MClass */;
267 val* var22 /* : MClassType */;
268 val* var24 /* : MClassType */;
269 val* var_recvtype /* var recvtype: MClassType */;
270 static val* varonce;
271 val* var25 /* : String */;
272 char* var26 /* : NativeString */;
273 long var27 /* : Int */;
274 val* var28 /* : FlatString */;
275 val* var29 /* : nullable AAnnotation */;
276 val* var_nosuper /* var nosuper: nullable AAnnotation */;
277 val* var30 /* : MProperty */;
278 val* var32 /* : MProperty */;
279 short int var33 /* : Bool */;
280 short int var35 /* : Bool */;
281 short int var36 /* : Bool */;
282 val* var37 /* : null */;
283 short int var38 /* : Bool */;
284 short int var39 /* : Bool */;
285 val* var_other /* var other: nullable Object */;
286 short int var41 /* : Bool */;
287 short int var42 /* : Bool */;
288 short int var43 /* : Bool */;
289 static val* varonce44;
290 val* var45 /* : String */;
291 char* var46 /* : NativeString */;
292 long var47 /* : Int */;
293 val* var48 /* : FlatString */;
294 val* var49 /* : MClassDef */;
295 val* var51 /* : MClassDef */;
296 short int var52 /* : Bool */;
297 short int var53 /* : Bool */;
298 short int var54 /* : Bool */;
299 short int var_skip /* var skip: Bool */;
300 val* var55 /* : nullable POSetElement[MClassDef] */;
301 val* var57 /* : nullable POSetElement[MClassDef] */;
302 val* var58 /* : Collection[Object] */;
303 val* var_ /* var : Collection[MClassDef] */;
304 val* var59 /* : Iterator[nullable Object] */;
305 val* var_60 /* var : Iterator[MClassDef] */;
306 short int var61 /* : Bool */;
307 val* var62 /* : nullable Object */;
308 val* var_cd /* var cd: MClassDef */;
309 val* var63 /* : MClass */;
310 val* var65 /* : MClass */;
311 val* var66 /* : MClassKind */;
312 val* var68 /* : MClassKind */;
313 short int var69 /* : Bool */;
314 short int var71 /* : Bool */;
315 short int var72 /* : Bool */;
316 val* var74 /* : nullable AExpr */;
317 val* var76 /* : nullable AExpr */;
318 val* var_nblock /* var nblock: nullable AExpr */;
319 val* var77 /* : null */;
320 short int var78 /* : Bool */;
321 short int var79 /* : Bool */;
322 short int var81 /* : Bool */;
323 short int var82 /* : Bool */;
324 short int var83 /* : Bool */;
325 val* var84 /* : AutoSuperInitVisitor */;
326 val* var_v /* var v: AutoSuperInitVisitor */;
327 val* var85 /* : nullable ANode */;
328 val* var87 /* : nullable ANode */;
329 val* var_anode /* var anode: nullable ANode */;
330 val* var88 /* : null */;
331 short int var89 /* : Bool */;
332 short int var90 /* : Bool */;
333 short int var92 /* : Bool */;
334 short int var93 /* : Bool */;
335 short int var94 /* : Bool */;
336 val* var95 /* : null */;
337 short int var96 /* : Bool */;
338 short int var97 /* : Bool */;
339 short int var99 /* : Bool */;
340 short int var100 /* : Bool */;
341 short int var101 /* : Bool */;
342 static val* varonce102;
343 val* var103 /* : String */;
344 char* var104 /* : NativeString */;
345 long var105 /* : Int */;
346 val* var106 /* : FlatString */;
347 short int var107 /* : Bool */;
348 short int var109 /* : Bool */;
349 val* var110 /* : null */;
350 short int var111 /* : Bool */;
351 short int var112 /* : Bool */;
352 short int var114 /* : Bool */;
353 short int var115 /* : Bool */;
354 short int var116 /* : Bool */;
355 short int var117 /* : Bool */;
356 short int var118 /* : Bool */;
357 short int var119 /* : Bool */;
358 short int var121 /* : Bool */;
359 val* var123 /* : Array[CallSite] */;
360 val* var_auto_super_inits /* var auto_super_inits: Array[CallSite] */;
361 val* var124 /* : Array[MClassType] */;
362 val* var126 /* : Array[MClassType] */;
363 val* var_127 /* var : Array[MClassType] */;
364 val* var128 /* : ArrayIterator[nullable Object] */;
365 val* var_129 /* var : ArrayIterator[MClassType] */;
366 short int var130 /* : Bool */;
367 val* var131 /* : nullable Object */;
368 val* var_msupertype /* var msupertype: MClassType */;
369 val* var132 /* : MClass */;
370 val* var134 /* : MClass */;
371 val* var135 /* : MClassKind */;
372 val* var137 /* : MClassKind */;
373 short int var138 /* : Bool */;
374 short int var140 /* : Bool */;
375 short int var141 /* : Bool */;
376 val* var143 /* : MClassType */;
377 val* var145 /* : MClassType */;
378 val* var146 /* : MClassType */;
379 val* var147 /* : MProperty */;
380 val* var149 /* : MProperty */;
381 val* var150 /* : String */;
382 val* var152 /* : String */;
383 val* var153 /* : nullable MProperty */;
384 val* var_candidate /* var candidate: nullable MProperty */;
385 val* var154 /* : null */;
386 short int var155 /* : Bool */;
387 short int var156 /* : Bool */;
388 val* var_other158 /* var other: nullable Object */;
389 short int var159 /* : Bool */;
390 short int var161 /* : Bool */;
391 static val* varonce162;
392 val* var163 /* : String */;
393 char* var164 /* : NativeString */;
394 long var165 /* : Int */;
395 val* var166 /* : FlatString */;
396 val* var167 /* : nullable MProperty */;
397 val* var168 /* : null */;
398 short int var169 /* : Bool */;
399 short int var170 /* : Bool */;
400 short int var172 /* : Bool */;
401 short int var174 /* : Bool */;
402 static val* varonce175;
403 val* var176 /* : String */;
404 char* var177 /* : NativeString */;
405 long var178 /* : Int */;
406 val* var179 /* : FlatString */;
407 static val* varonce180;
408 val* var181 /* : String */;
409 char* var182 /* : NativeString */;
410 long var183 /* : Int */;
411 val* var184 /* : FlatString */;
412 val* var185 /* : MProperty */;
413 val* var187 /* : MProperty */;
414 val* var188 /* : String */;
415 val* var190 /* : String */;
416 static val* varonce191;
417 val* var192 /* : String */;
418 char* var193 /* : NativeString */;
419 long var194 /* : Int */;
420 val* var195 /* : FlatString */;
421 static val* varonce196;
422 val* var197 /* : String */;
423 char* var198 /* : NativeString */;
424 long var199 /* : Int */;
425 val* var200 /* : FlatString */;
426 val* var201 /* : Array[Object] */;
427 long var202 /* : Int */;
428 val* var203 /* : NativeArray[Object] */;
429 val* var204 /* : String */;
430 short int var205 /* : Bool */;
431 int cltype206;
432 int idtype207;
433 short int var208 /* : Bool */;
434 short int var210 /* : Bool */;
435 val* var211 /* : Array[MPropDef] */;
436 val* var_candidatedefs /* var candidatedefs: Array[MMethodDef] */;
437 val* var212 /* : nullable Object */;
438 val* var_candidatedef /* var candidatedef: MMethodDef */;
439 val* var213 /* : nullable MSignature */;
440 val* var214 /* : nullable MSignature */;
441 val* var216 /* : nullable MSignature */;
442 val* var217 /* : nullable MSignature */;
443 val* var219 /* : nullable MSignature */;
444 val* var_msignature /* var msignature: nullable MSignature */;
445 short int var220 /* : Bool */;
446 val* var221 /* : MSignature */;
447 val* var222 /* : CallSite */;
448 short int var223 /* : Bool */;
449 short int var224 /* : Bool */;
450 val* var_callsite /* var callsite: CallSite */;
451 val* var227 /* : nullable MMethod */;
452 val* var229 /* : nullable MMethod */;
453 val* var_the_root_init_mmethod /* var the_root_init_mmethod: nullable MMethod */;
454 short int var230 /* : Bool */;
455 val* var231 /* : null */;
456 short int var232 /* : Bool */;
457 short int var233 /* : Bool */;
458 short int var235 /* : Bool */;
459 short int var236 /* : Bool */;
460 short int var237 /* : Bool */;
461 short int var_238 /* var : Bool */;
462 short int var239 /* : Bool */;
463 val* var240 /* : Array[MPropDef] */;
464 val* var_candidatedefs241 /* var candidatedefs: Array[MMethodDef] */;
465 val* var242 /* : nullable Object */;
466 val* var_candidatedef243 /* var candidatedef: MMethodDef */;
467 long var244 /* : Int */;
468 long var246 /* : Int */;
469 long var247 /* : Int */;
470 short int var248 /* : Bool */;
471 short int var250 /* : Bool */;
472 int cltype251;
473 int idtype252;
474 const char* var_class_name253;
475 short int var254 /* : Bool */;
476 val* var_255 /* var : Array[MMethodDef] */;
477 val* var256 /* : ArrayIterator[nullable Object] */;
478 val* var_257 /* var : ArrayIterator[MMethodDef] */;
479 short int var258 /* : Bool */;
480 val* var259 /* : nullable Object */;
481 val* var_spd /* var spd: MMethodDef */;
482 val* var260 /* : Array[MProperty] */;
483 val* var262 /* : Array[MProperty] */;
484 long var263 /* : Int */;
485 long var265 /* : Int */;
486 val* var266 /* : Array[MProperty] */;
487 val* var268 /* : Array[MProperty] */;
488 long var269 /* : Int */;
489 long var271 /* : Int */;
490 short int var272 /* : Bool */;
491 short int var274 /* : Bool */;
492 int cltype275;
493 int idtype276;
494 const char* var_class_name277;
495 short int var278 /* : Bool */;
496 val* var_281 /* var : Array[MMethodDef] */;
497 val* var282 /* : ArrayIterator[nullable Object] */;
498 val* var_283 /* var : ArrayIterator[MMethodDef] */;
499 short int var284 /* : Bool */;
500 val* var285 /* : nullable Object */;
501 val* var_spd286 /* var spd: MMethodDef */;
502 long var287 /* : Int */;
503 long var_i /* var i: Int */;
504 val* var288 /* : Array[MProperty] */;
505 val* var290 /* : Array[MProperty] */;
506 val* var_291 /* var : Array[MProperty] */;
507 val* var292 /* : ArrayIterator[nullable Object] */;
508 val* var_293 /* var : ArrayIterator[MProperty] */;
509 short int var294 /* : Bool */;
510 val* var295 /* : nullable Object */;
511 val* var_p /* var p: MProperty */;
512 val* var296 /* : Array[MProperty] */;
513 val* var298 /* : Array[MProperty] */;
514 val* var299 /* : nullable Object */;
515 short int var300 /* : Bool */;
516 short int var301 /* : Bool */;
517 short int var303 /* : Bool */;
518 short int var304 /* : Bool */;
519 short int var305 /* : Bool */;
520 static val* varonce306;
521 val* var307 /* : String */;
522 char* var308 /* : NativeString */;
523 long var309 /* : Int */;
524 val* var310 /* : FlatString */;
525 static val* varonce311;
526 val* var312 /* : String */;
527 char* var313 /* : NativeString */;
528 long var314 /* : Int */;
529 val* var315 /* : FlatString */;
530 val* var316 /* : Array[MProperty] */;
531 val* var318 /* : Array[MProperty] */;
532 static val* varonce319;
533 val* var320 /* : String */;
534 char* var321 /* : NativeString */;
535 long var322 /* : Int */;
536 val* var323 /* : FlatString */;
537 val* var324 /* : String */;
538 static val* varonce325;
539 val* var326 /* : String */;
540 char* var327 /* : NativeString */;
541 long var328 /* : Int */;
542 val* var329 /* : FlatString */;
543 static val* varonce330;
544 val* var331 /* : String */;
545 char* var332 /* : NativeString */;
546 long var333 /* : Int */;
547 val* var334 /* : FlatString */;
548 val* var335 /* : Array[MProperty] */;
549 val* var337 /* : Array[MProperty] */;
550 static val* varonce338;
551 val* var339 /* : String */;
552 char* var340 /* : NativeString */;
553 long var341 /* : Int */;
554 val* var342 /* : FlatString */;
555 val* var343 /* : String */;
556 static val* varonce344;
557 val* var345 /* : String */;
558 char* var346 /* : NativeString */;
559 long var347 /* : Int */;
560 val* var348 /* : FlatString */;
561 val* var349 /* : Array[Object] */;
562 long var350 /* : Int */;
563 val* var351 /* : NativeArray[Object] */;
564 val* var352 /* : String */;
565 long var353 /* : Int */;
566 long var354 /* : Int */;
567 short int var356 /* : Bool */;
568 int cltype357;
569 int idtype358;
570 const char* var_class_name359;
571 long var360 /* : Int */;
572 val* var365 /* : nullable MSignature */;
573 val* var366 /* : nullable MSignature */;
574 val* var368 /* : nullable MSignature */;
575 val* var369 /* : nullable MSignature */;
576 val* var371 /* : nullable MSignature */;
577 val* var_msignature372 /* var msignature: nullable MSignature */;
578 short int var373 /* : Bool */;
579 val* var374 /* : MSignature */;
580 val* var375 /* : CallSite */;
581 short int var376 /* : Bool */;
582 short int var377 /* : Bool */;
583 val* var_callsite378 /* var callsite: CallSite */;
584 short int var379 /* : Bool */;
585 static val* varonce380;
586 val* var381 /* : String */;
587 char* var382 /* : NativeString */;
588 long var383 /* : Int */;
589 val* var384 /* : FlatString */;
590 static val* varonce385;
591 val* var386 /* : String */;
592 char* var387 /* : NativeString */;
593 long var388 /* : Int */;
594 val* var389 /* : FlatString */;
595 val* var390 /* : Array[Object] */;
596 long var391 /* : Int */;
597 val* var392 /* : NativeArray[Object] */;
598 val* var393 /* : String */;
599 val* var_394 /* var : Array[CallSite] */;
600 val* var395 /* : ArrayIterator[nullable Object] */;
601 val* var_396 /* var : ArrayIterator[CallSite] */;
602 short int var397 /* : Bool */;
603 val* var398 /* : nullable Object */;
604 val* var_auto_super_init /* var auto_super_init: CallSite */;
605 val* var399 /* : MMethodDef */;
606 val* var401 /* : MMethodDef */;
607 val* var_auto_super_init_def /* var auto_super_init_def: MMethodDef */;
608 val* var402 /* : nullable MSignature */;
609 val* var404 /* : nullable MSignature */;
610 val* var_msig /* var msig: MSignature */;
611 val* var405 /* : MSignature */;
612 val* var407 /* : MSignature */;
613 val* var_supermsig /* var supermsig: MSignature */;
614 long var408 /* : Int */;
615 long var409 /* : Int */;
616 short int var410 /* : Bool */;
617 short int var412 /* : Bool */;
618 int cltype413;
619 int idtype414;
620 const char* var_class_name415;
621 short int var416 /* : Bool */;
622 static val* varonce417;
623 val* var418 /* : String */;
624 char* var419 /* : NativeString */;
625 long var420 /* : Int */;
626 val* var421 /* : FlatString */;
627 static val* varonce422;
628 val* var423 /* : String */;
629 char* var424 /* : NativeString */;
630 long var425 /* : Int */;
631 val* var426 /* : FlatString */;
632 long var427 /* : Int */;
633 static val* varonce428;
634 val* var429 /* : String */;
635 char* var430 /* : NativeString */;
636 long var431 /* : Int */;
637 val* var432 /* : FlatString */;
638 long var433 /* : Int */;
639 static val* varonce434;
640 val* var435 /* : String */;
641 char* var436 /* : NativeString */;
642 long var437 /* : Int */;
643 val* var438 /* : FlatString */;
644 val* var439 /* : Array[Object] */;
645 long var440 /* : Int */;
646 val* var441 /* : NativeArray[Object] */;
647 val* var442 /* : Object */;
648 val* var443 /* : Object */;
649 val* var444 /* : String */;
650 long var446 /* : Int */;
651 long var_i447 /* var i: Int */;
652 val* var448 /* : Array[MParameter] */;
653 val* var450 /* : Array[MParameter] */;
654 val* var_451 /* var : Array[MParameter] */;
655 val* var452 /* : ArrayIterator[nullable Object] */;
656 val* var_453 /* var : ArrayIterator[MParameter] */;
657 short int var454 /* : Bool */;
658 val* var455 /* : nullable Object */;
659 val* var_sp /* var sp: MParameter */;
660 val* var456 /* : Array[MParameter] */;
661 val* var458 /* : Array[MParameter] */;
662 val* var459 /* : nullable Object */;
663 val* var_p460 /* var p: MParameter */;
664 val* var461 /* : MType */;
665 val* var463 /* : MType */;
666 val* var_sub /* var sub: MType */;
667 val* var464 /* : MType */;
668 val* var466 /* : MType */;
669 val* var_sup /* var sup: MType */;
670 short int var467 /* : Bool */;
671 short int var468 /* : Bool */;
672 static val* varonce469;
673 val* var470 /* : String */;
674 char* var471 /* : NativeString */;
675 long var472 /* : Int */;
676 val* var473 /* : FlatString */;
677 static val* varonce474;
678 val* var475 /* : String */;
679 char* var476 /* : NativeString */;
680 long var477 /* : Int */;
681 val* var478 /* : FlatString */;
682 static val* varonce479;
683 val* var480 /* : String */;
684 char* var481 /* : NativeString */;
685 long var482 /* : Int */;
686 val* var483 /* : FlatString */;
687 val* var484 /* : MType */;
688 val* var486 /* : MType */;
689 static val* varonce487;
690 val* var488 /* : String */;
691 char* var489 /* : NativeString */;
692 long var490 /* : Int */;
693 val* var491 /* : FlatString */;
694 val* var492 /* : String */;
695 val* var494 /* : String */;
696 static val* varonce495;
697 val* var496 /* : String */;
698 char* var497 /* : NativeString */;
699 long var498 /* : Int */;
700 val* var499 /* : FlatString */;
701 val* var500 /* : MType */;
702 val* var502 /* : MType */;
703 static val* varonce503;
704 val* var504 /* : String */;
705 char* var505 /* : NativeString */;
706 long var506 /* : Int */;
707 val* var507 /* : FlatString */;
708 val* var508 /* : Array[Object] */;
709 long var509 /* : Int */;
710 val* var510 /* : NativeArray[Object] */;
711 val* var511 /* : Object */;
712 val* var512 /* : String */;
713 long var514 /* : Int */;
714 long var515 /* : Int */;
715 short int var517 /* : Bool */;
716 int cltype518;
717 int idtype519;
718 const char* var_class_name520;
719 long var521 /* : Int */;
720 var_modelbuilder = p0;
721 {
722 { /* Inline parser_nodes#ANode#parent (self) on <self:AMethPropdef> */
723 var2 = self->attrs[COLOR_parser_nodes__ANode___parent].val; /* _parent on <self:AMethPropdef> */
724 var = var2;
725 RET_LABEL1:(void)0;
726 }
727 }
728 /* <var:nullable ANode> isa AClassdef */
729 cltype = type_parser_nodes__AClassdef.color;
730 idtype = type_parser_nodes__AClassdef.id;
731 if(var == NULL) {
732 var3 = 0;
733 } else {
734 if(cltype >= var->type->table_size) {
735 var3 = 0;
736 } else {
737 var3 = var->type->type_table[cltype] == idtype;
738 }
739 }
740 if (unlikely(!var3)) {
741 var_class_name = var == NULL ? "null" : var->type->name;
742 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AClassdef", var_class_name);
743 PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 58);
744 show_backtrace(1);
745 }
746 {
747 { /* Inline modelize_class#AClassdef#mclassdef (var) on <var:nullable ANode(AClassdef)> */
748 var6 = var->attrs[COLOR_modelize_class__AClassdef___mclassdef].val; /* _mclassdef on <var:nullable ANode(AClassdef)> */
749 var4 = var6;
750 RET_LABEL5:(void)0;
751 }
752 }
753 if (unlikely(var4 == NULL)) {
754 PRINT_ERROR("Runtime error: %s", "Cast failed");
755 PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 58);
756 show_backtrace(1);
757 }
758 var_mclassdef = var4;
759 {
760 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AMethPropdef> */
761 var9 = self->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AMethPropdef> */
762 var7 = var9;
763 RET_LABEL8:(void)0;
764 }
765 }
766 if (unlikely(var7 == NULL)) {
767 PRINT_ERROR("Runtime error: %s", "Cast failed");
768 PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 59);
769 show_backtrace(1);
770 }
771 var_mpropdef = var7;
772 {
773 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
774 var12 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
775 if (unlikely(var12 == NULL)) {
776 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
777 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
778 show_backtrace(1);
779 }
780 var10 = var12;
781 RET_LABEL11:(void)0;
782 }
783 }
784 {
785 { /* Inline model#MClassDef#mmodule (var10) on <var10:MClassDef> */
786 var15 = var10->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var10:MClassDef> */
787 if (unlikely(var15 == NULL)) {
788 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
789 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
790 show_backtrace(1);
791 }
792 var13 = var15;
793 RET_LABEL14:(void)0;
794 }
795 }
796 var_mmodule = var13;
797 {
798 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
799 var18 = var_mclassdef->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
800 if (unlikely(var18 == NULL)) {
801 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
802 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
803 show_backtrace(1);
804 }
805 var16 = var18;
806 RET_LABEL17:(void)0;
807 }
808 }
809 var_anchor = var16;
810 {
811 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
812 var21 = var_mclassdef->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
813 if (unlikely(var21 == NULL)) {
814 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
815 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
816 show_backtrace(1);
817 }
818 var19 = var21;
819 RET_LABEL20:(void)0;
820 }
821 }
822 {
823 { /* Inline model#MClass#mclass_type (var19) on <var19:MClass> */
824 var24 = var19->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var19:MClass> */
825 if (unlikely(var24 == NULL)) {
826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
827 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
828 show_backtrace(1);
829 }
830 var22 = var24;
831 RET_LABEL23:(void)0;
832 }
833 }
834 var_recvtype = var22;
835 if (varonce) {
836 var25 = varonce;
837 } else {
838 var26 = "nosuper";
839 var27 = 7;
840 var28 = string__NativeString__to_s_with_length(var26, var27);
841 var25 = var28;
842 varonce = var25;
843 }
844 {
845 var29 = annotation__Prod__get_single_annotation(self, var25, var_modelbuilder);
846 }
847 var_nosuper = var29;
848 {
849 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
850 var32 = var_mpropdef->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
851 if (unlikely(var32 == NULL)) {
852 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
853 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
854 show_backtrace(1);
855 }
856 var30 = var32;
857 RET_LABEL31:(void)0;
858 }
859 }
860 {
861 { /* Inline model#MMethod#is_init (var30) on <var30:MProperty(MMethod)> */
862 var35 = var30->attrs[COLOR_model__MMethod___is_init].s; /* _is_init on <var30:MProperty(MMethod)> */
863 var33 = var35;
864 RET_LABEL34:(void)0;
865 }
866 }
867 var36 = !var33;
868 if (var36){
869 var37 = NULL;
870 if (var_nosuper == NULL) {
871 var38 = 0; /* is null */
872 } else {
873 var38 = 1; /* arg is null and recv is not */
874 }
875 if (0) {
876 { /* Inline kernel#Object#!= (var_nosuper,var37) on <var_nosuper:nullable AAnnotation> */
877 var_other = var37;
878 {
879 var42 = ((short int (*)(val*, val*))(var_nosuper->class->vft[COLOR_kernel__Object___61d_61d]))(var_nosuper, var_other) /* == on <var_nosuper:nullable AAnnotation(AAnnotation)>*/;
880 var41 = var42;
881 }
882 var43 = !var41;
883 var39 = var43;
884 goto RET_LABEL40;
885 RET_LABEL40:(void)0;
886 }
887 var38 = var39;
888 }
889 if (var38){
890 if (varonce44) {
891 var45 = varonce44;
892 } else {
893 var46 = "Error: nosuper only in `init`";
894 var47 = 29;
895 var48 = string__NativeString__to_s_with_length(var46, var47);
896 var45 = var48;
897 varonce44 = var45;
898 }
899 {
900 modelbuilder__ModelBuilder__error(var_modelbuilder, var_nosuper, var45); /* Direct call modelbuilder#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
901 }
902 } else {
903 }
904 goto RET_LABEL;
905 } else {
906 }
907 {
908 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
909 var51 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
910 if (unlikely(var51 == NULL)) {
911 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
912 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
913 show_backtrace(1);
914 }
915 var49 = var51;
916 RET_LABEL50:(void)0;
917 }
918 }
919 {
920 var52 = model__MClassDef__is_intro(var49);
921 }
922 var53 = !var52;
923 if (var53){
924 goto RET_LABEL;
925 } else {
926 }
927 var54 = 1;
928 var_skip = var54;
929 {
930 { /* Inline model#MClassDef#in_hierarchy (var_mclassdef) on <var_mclassdef:MClassDef> */
931 var57 = var_mclassdef->attrs[COLOR_model__MClassDef___in_hierarchy].val; /* _in_hierarchy on <var_mclassdef:MClassDef> */
932 var55 = var57;
933 RET_LABEL56:(void)0;
934 }
935 }
936 if (var55 == NULL) {
937 PRINT_ERROR("Runtime error: %s", "Receiver is null");
938 PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 78);
939 show_backtrace(1);
940 } else {
941 var58 = poset__POSetElement__direct_greaters(var55);
942 }
943 var_ = var58;
944 {
945 var59 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on <var_:Collection[MClassDef]>*/;
946 }
947 var_60 = var59;
948 for(;;) {
949 {
950 var61 = ((short int (*)(val*))(var_60->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_60) /* is_ok on <var_60:Iterator[MClassDef]>*/;
951 }
952 if (var61){
953 {
954 var62 = ((val* (*)(val*))(var_60->class->vft[COLOR_abstract_collection__Iterator__item]))(var_60) /* item on <var_60:Iterator[MClassDef]>*/;
955 }
956 var_cd = var62;
957 {
958 { /* Inline model#MClassDef#mclass (var_cd) on <var_cd:MClassDef> */
959 var65 = var_cd->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_cd:MClassDef> */
960 if (unlikely(var65 == NULL)) {
961 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
962 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
963 show_backtrace(1);
964 }
965 var63 = var65;
966 RET_LABEL64:(void)0;
967 }
968 }
969 {
970 { /* Inline model#MClass#kind (var63) on <var63:MClass> */
971 var68 = var63->attrs[COLOR_model__MClass___kind].val; /* _kind on <var63:MClass> */
972 if (unlikely(var68 == NULL)) {
973 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
974 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
975 show_backtrace(1);
976 }
977 var66 = var68;
978 RET_LABEL67:(void)0;
979 }
980 }
981 {
982 { /* Inline model#MClassKind#need_init (var66) on <var66:MClassKind> */
983 var71 = var66->attrs[COLOR_model__MClassKind___need_init].s; /* _need_init on <var66:MClassKind> */
984 var69 = var71;
985 RET_LABEL70:(void)0;
986 }
987 }
988 if (var69){
989 var72 = 0;
990 var_skip = var72;
991 } else {
992 }
993 {
994 ((void (*)(val*))(var_60->class->vft[COLOR_abstract_collection__Iterator__next]))(var_60) /* next on <var_60:Iterator[MClassDef]>*/;
995 }
996 } else {
997 goto BREAK_label;
998 }
999 }
1000 BREAK_label: (void)0;
1001 {
1002 { /* Inline abstract_collection#Iterator#finish (var_60) on <var_60:Iterator[MClassDef]> */
1003 RET_LABEL73:(void)0;
1004 }
1005 }
1006 if (var_skip){
1007 goto RET_LABEL;
1008 } else {
1009 }
1010 {
1011 { /* Inline parser_nodes#AMethPropdef#n_block (self) on <self:AMethPropdef> */
1012 var76 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMethPropdef> */
1013 var74 = var76;
1014 RET_LABEL75:(void)0;
1015 }
1016 }
1017 var_nblock = var74;
1018 var77 = NULL;
1019 if (var_nblock == NULL) {
1020 var78 = 0; /* is null */
1021 } else {
1022 var78 = 1; /* arg is null and recv is not */
1023 }
1024 if (0) {
1025 { /* Inline kernel#Object#!= (var_nblock,var77) on <var_nblock:nullable AExpr> */
1026 var_other = var77;
1027 {
1028 var82 = ((short int (*)(val*, val*))(var_nblock->class->vft[COLOR_kernel__Object___61d_61d]))(var_nblock, var_other) /* == on <var_nblock:nullable AExpr(AExpr)>*/;
1029 var81 = var82;
1030 }
1031 var83 = !var81;
1032 var79 = var83;
1033 goto RET_LABEL80;
1034 RET_LABEL80:(void)0;
1035 }
1036 var78 = var79;
1037 }
1038 if (var78){
1039 var84 = NEW_auto_super_init__AutoSuperInitVisitor(&type_auto_super_init__AutoSuperInitVisitor);
1040 {
1041 ((void (*)(val*))(var84->class->vft[COLOR_kernel__Object__init]))(var84) /* init on <var84:AutoSuperInitVisitor>*/;
1042 }
1043 var_v = var84;
1044 {
1045 parser_nodes__Visitor__enter_visit(var_v, var_nblock); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:AutoSuperInitVisitor>*/
1046 }
1047 {
1048 { /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init (var_v) on <var_v:AutoSuperInitVisitor> */
1049 var87 = var_v->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val; /* _has_explicit_super_init on <var_v:AutoSuperInitVisitor> */
1050 var85 = var87;
1051 RET_LABEL86:(void)0;
1052 }
1053 }
1054 var_anode = var85;
1055 var88 = NULL;
1056 if (var_anode == NULL) {
1057 var89 = 0; /* is null */
1058 } else {
1059 var89 = 1; /* arg is null and recv is not */
1060 }
1061 if (0) {
1062 { /* Inline kernel#Object#!= (var_anode,var88) on <var_anode:nullable ANode> */
1063 var_other = var88;
1064 {
1065 var93 = ((short int (*)(val*, val*))(var_anode->class->vft[COLOR_kernel__Object___61d_61d]))(var_anode, var_other) /* == on <var_anode:nullable ANode(ANode)>*/;
1066 var92 = var93;
1067 }
1068 var94 = !var92;
1069 var90 = var94;
1070 goto RET_LABEL91;
1071 RET_LABEL91:(void)0;
1072 }
1073 var89 = var90;
1074 }
1075 if (var89){
1076 var95 = NULL;
1077 if (var_nosuper == NULL) {
1078 var96 = 0; /* is null */
1079 } else {
1080 var96 = 1; /* arg is null and recv is not */
1081 }
1082 if (0) {
1083 { /* Inline kernel#Object#!= (var_nosuper,var95) on <var_nosuper:nullable AAnnotation> */
1084 var_other = var95;
1085 {
1086 var100 = ((short int (*)(val*, val*))(var_nosuper->class->vft[COLOR_kernel__Object___61d_61d]))(var_nosuper, var_other) /* == on <var_nosuper:nullable AAnnotation(AAnnotation)>*/;
1087 var99 = var100;
1088 }
1089 var101 = !var99;
1090 var97 = var101;
1091 goto RET_LABEL98;
1092 RET_LABEL98:(void)0;
1093 }
1094 var96 = var97;
1095 }
1096 if (var96){
1097 if (varonce102) {
1098 var103 = varonce102;
1099 } else {
1100 var104 = "Error: method is annotated nosuper but a constructor call is present";
1101 var105 = 68;
1102 var106 = string__NativeString__to_s_with_length(var104, var105);
1103 var103 = var106;
1104 varonce102 = var103;
1105 }
1106 {
1107 modelbuilder__ModelBuilder__error(var_modelbuilder, var_anode, var103); /* Direct call modelbuilder#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
1108 }
1109 } else {
1110 }
1111 goto RET_LABEL;
1112 } else {
1113 }
1114 {
1115 { /* Inline auto_super_init#AutoSuperInitVisitor#is_broken (var_v) on <var_v:AutoSuperInitVisitor> */
1116 var109 = var_v->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___is_broken].s; /* _is_broken on <var_v:AutoSuperInitVisitor> */
1117 var107 = var109;
1118 RET_LABEL108:(void)0;
1119 }
1120 }
1121 if (var107){
1122 goto RET_LABEL;
1123 } else {
1124 }
1125 } else {
1126 }
1127 var110 = NULL;
1128 if (var_nosuper == NULL) {
1129 var111 = 0; /* is null */
1130 } else {
1131 var111 = 1; /* arg is null and recv is not */
1132 }
1133 if (0) {
1134 { /* Inline kernel#Object#!= (var_nosuper,var110) on <var_nosuper:nullable AAnnotation> */
1135 var_other = var110;
1136 {
1137 var115 = ((short int (*)(val*, val*))(var_nosuper->class->vft[COLOR_kernel__Object___61d_61d]))(var_nosuper, var_other) /* == on <var_nosuper:nullable AAnnotation(AAnnotation)>*/;
1138 var114 = var115;
1139 }
1140 var116 = !var114;
1141 var112 = var116;
1142 goto RET_LABEL113;
1143 RET_LABEL113:(void)0;
1144 }
1145 var111 = var112;
1146 }
1147 if (var111){
1148 goto RET_LABEL;
1149 } else {
1150 }
1151 {
1152 var117 = model__MPropDef__is_intro(var_mpropdef);
1153 }
1154 var118 = !var117;
1155 if (var118){
1156 var119 = 1;
1157 {
1158 { /* Inline auto_super_init#AMethPropdef#auto_super_call= (self,var119) on <self:AMethPropdef> */
1159 self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_call].s = var119; /* _auto_super_call on <self:AMethPropdef> */
1160 RET_LABEL120:(void)0;
1161 }
1162 }
1163 var121 = 1;
1164 {
1165 { /* Inline modelize_property#MPropDef#has_supercall= (var_mpropdef,var121) on <var_mpropdef:MMethodDef> */
1166 var_mpropdef->attrs[COLOR_modelize_property__MPropDef___has_supercall].s = var121; /* _has_supercall on <var_mpropdef:MMethodDef> */
1167 RET_LABEL122:(void)0;
1168 }
1169 }
1170 goto RET_LABEL;
1171 } else {
1172 }
1173 var123 = NEW_array__Array(&type_array__Arraytyping__CallSite);
1174 {
1175 ((void (*)(val*))(var123->class->vft[COLOR_kernel__Object__init]))(var123) /* init on <var123:Array[CallSite]>*/;
1176 }
1177 var_auto_super_inits = var123;
1178 {
1179 { /* Inline model#MClassDef#supertypes (var_mclassdef) on <var_mclassdef:MClassDef> */
1180 var126 = var_mclassdef->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on <var_mclassdef:MClassDef> */
1181 if (unlikely(var126 == NULL)) {
1182 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
1183 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 534);
1184 show_backtrace(1);
1185 }
1186 var124 = var126;
1187 RET_LABEL125:(void)0;
1188 }
1189 }
1190 var_127 = var124;
1191 {
1192 var128 = array__AbstractArrayRead__iterator(var_127);
1193 }
1194 var_129 = var128;
1195 for(;;) {
1196 {
1197 var130 = array__ArrayIterator__is_ok(var_129);
1198 }
1199 if (var130){
1200 {
1201 var131 = array__ArrayIterator__item(var_129);
1202 }
1203 var_msupertype = var131;
1204 {
1205 { /* Inline model#MClassType#mclass (var_msupertype) on <var_msupertype:MClassType> */
1206 var134 = var_msupertype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_msupertype:MClassType> */
1207 if (unlikely(var134 == NULL)) {
1208 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1209 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
1210 show_backtrace(1);
1211 }
1212 var132 = var134;
1213 RET_LABEL133:(void)0;
1214 }
1215 }
1216 {
1217 { /* Inline model#MClass#kind (var132) on <var132:MClass> */
1218 var137 = var132->attrs[COLOR_model__MClass___kind].val; /* _kind on <var132:MClass> */
1219 if (unlikely(var137 == NULL)) {
1220 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
1221 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
1222 show_backtrace(1);
1223 }
1224 var135 = var137;
1225 RET_LABEL136:(void)0;
1226 }
1227 }
1228 {
1229 { /* Inline model#MClassKind#need_init (var135) on <var135:MClassKind> */
1230 var140 = var135->attrs[COLOR_model__MClassKind___need_init].s; /* _need_init on <var135:MClassKind> */
1231 var138 = var140;
1232 RET_LABEL139:(void)0;
1233 }
1234 }
1235 var141 = !var138;
1236 if (var141){
1237 goto BREAK_label142;
1238 } else {
1239 }
1240 {
1241 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
1242 var145 = var_mclassdef->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
1243 if (unlikely(var145 == NULL)) {
1244 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1245 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
1246 show_backtrace(1);
1247 }
1248 var143 = var145;
1249 RET_LABEL144:(void)0;
1250 }
1251 }
1252 {
1253 var146 = model__MClassType__anchor_to(var_msupertype, var_mmodule, var143);
1254 }
1255 var_msupertype = var146;
1256 {
1257 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
1258 var149 = var_mpropdef->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
1259 if (unlikely(var149 == NULL)) {
1260 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1261 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
1262 show_backtrace(1);
1263 }
1264 var147 = var149;
1265 RET_LABEL148:(void)0;
1266 }
1267 }
1268 {
1269 { /* Inline model#MProperty#name (var147) on <var147:MProperty(MMethod)> */
1270 var152 = var147->attrs[COLOR_model__MProperty___name].val; /* _name on <var147:MProperty(MMethod)> */
1271 if (unlikely(var152 == NULL)) {
1272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1273 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1620);
1274 show_backtrace(1);
1275 }
1276 var150 = var152;
1277 RET_LABEL151:(void)0;
1278 }
1279 }
1280 {
1281 var153 = modelbuilder__ModelBuilder__try_get_mproperty_by_name2(var_modelbuilder, self, var_mmodule, var_msupertype, var150);
1282 }
1283 var_candidate = var153;
1284 var154 = NULL;
1285 if (var_candidate == NULL) {
1286 var155 = 1; /* is null */
1287 } else {
1288 var155 = 0; /* arg is null but recv is not */
1289 }
1290 if (0) {
1291 { /* Inline kernel#Object#== (var_candidate,var154) on <var_candidate:nullable MProperty> */
1292 var_other158 = var154;
1293 {
1294 { /* Inline kernel#Object#is_same_instance (var_candidate,var_other158) on <var_candidate:nullable MProperty(MProperty)> */
1295 var161 = var_candidate == var_other158;
1296 var159 = var161;
1297 goto RET_LABEL160;
1298 RET_LABEL160:(void)0;
1299 }
1300 }
1301 var156 = var159;
1302 goto RET_LABEL157;
1303 RET_LABEL157:(void)0;
1304 }
1305 var155 = var156;
1306 }
1307 if (var155){
1308 if (varonce162) {
1309 var163 = varonce162;
1310 } else {
1311 var164 = "init";
1312 var165 = 4;
1313 var166 = string__NativeString__to_s_with_length(var164, var165);
1314 var163 = var166;
1315 varonce162 = var163;
1316 }
1317 {
1318 var167 = modelbuilder__ModelBuilder__try_get_mproperty_by_name2(var_modelbuilder, self, var_mmodule, var_msupertype, var163);
1319 }
1320 var_candidate = var167;
1321 } else {
1322 }
1323 var168 = NULL;
1324 if (var_candidate == NULL) {
1325 var169 = 1; /* is null */
1326 } else {
1327 var169 = 0; /* arg is null but recv is not */
1328 }
1329 if (0) {
1330 { /* Inline kernel#Object#== (var_candidate,var168) on <var_candidate:nullable MProperty> */
1331 var_other158 = var168;
1332 {
1333 { /* Inline kernel#Object#is_same_instance (var_candidate,var_other158) on <var_candidate:nullable MProperty(MProperty)> */
1334 var174 = var_candidate == var_other158;
1335 var172 = var174;
1336 goto RET_LABEL173;
1337 RET_LABEL173:(void)0;
1338 }
1339 }
1340 var170 = var172;
1341 goto RET_LABEL171;
1342 RET_LABEL171:(void)0;
1343 }
1344 var169 = var170;
1345 }
1346 if (var169){
1347 if (varonce175) {
1348 var176 = varonce175;
1349 } else {
1350 var177 = "Error: Cannot do an implicit constructor call in ";
1351 var178 = 49;
1352 var179 = string__NativeString__to_s_with_length(var177, var178);
1353 var176 = var179;
1354 varonce175 = var176;
1355 }
1356 if (varonce180) {
1357 var181 = varonce180;
1358 } else {
1359 var182 = "; there is no constructor named ";
1360 var183 = 32;
1361 var184 = string__NativeString__to_s_with_length(var182, var183);
1362 var181 = var184;
1363 varonce180 = var181;
1364 }
1365 {
1366 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
1367 var187 = var_mpropdef->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
1368 if (unlikely(var187 == NULL)) {
1369 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1370 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
1371 show_backtrace(1);
1372 }
1373 var185 = var187;
1374 RET_LABEL186:(void)0;
1375 }
1376 }
1377 {
1378 { /* Inline model#MProperty#name (var185) on <var185:MProperty(MMethod)> */
1379 var190 = var185->attrs[COLOR_model__MProperty___name].val; /* _name on <var185:MProperty(MMethod)> */
1380 if (unlikely(var190 == NULL)) {
1381 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1382 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1620);
1383 show_backtrace(1);
1384 }
1385 var188 = var190;
1386 RET_LABEL189:(void)0;
1387 }
1388 }
1389 if (varonce191) {
1390 var192 = varonce191;
1391 } else {
1392 var193 = " in ";
1393 var194 = 4;
1394 var195 = string__NativeString__to_s_with_length(var193, var194);
1395 var192 = var195;
1396 varonce191 = var192;
1397 }
1398 if (varonce196) {
1399 var197 = varonce196;
1400 } else {
1401 var198 = ".";
1402 var199 = 1;
1403 var200 = string__NativeString__to_s_with_length(var198, var199);
1404 var197 = var200;
1405 varonce196 = var197;
1406 }
1407 var201 = NEW_array__Array(&type_array__Arraykernel__Object);
1408 { /* var201 = array_instance Array[Object] */
1409 var202 = 7;
1410 var203 = NEW_array__NativeArray(var202, &type_array__NativeArraykernel__Object);
1411 ((struct instance_array__NativeArray*)var203)->values[0] = (val*) var176;
1412 ((struct instance_array__NativeArray*)var203)->values[1] = (val*) var_mpropdef;
1413 ((struct instance_array__NativeArray*)var203)->values[2] = (val*) var181;
1414 ((struct instance_array__NativeArray*)var203)->values[3] = (val*) var188;
1415 ((struct instance_array__NativeArray*)var203)->values[4] = (val*) var192;
1416 ((struct instance_array__NativeArray*)var203)->values[5] = (val*) var_msupertype;
1417 ((struct instance_array__NativeArray*)var203)->values[6] = (val*) var197;
1418 {
1419 ((void (*)(val*, val*, long))(var201->class->vft[COLOR_array__Array__with_native]))(var201, var203, var202) /* with_native on <var201:Array[Object]>*/;
1420 }
1421 }
1422 {
1423 var204 = ((val* (*)(val*))(var201->class->vft[COLOR_string__Object__to_s]))(var201) /* to_s on <var201:Array[Object]>*/;
1424 }
1425 {
1426 modelbuilder__ModelBuilder__error(var_modelbuilder, self, var204); /* Direct call modelbuilder#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
1427 }
1428 goto RET_LABEL;
1429 } else {
1430 }
1431 /* <var_candidate:nullable MProperty(MProperty)> isa MMethod */
1432 cltype206 = type_model__MMethod.color;
1433 idtype207 = type_model__MMethod.id;
1434 if(cltype206 >= var_candidate->type->table_size) {
1435 var205 = 0;
1436 } else {
1437 var205 = var_candidate->type->type_table[cltype206] == idtype207;
1438 }
1439 if (unlikely(!var205)) {
1440 PRINT_ERROR("Runtime error: %s", "Assert failed");
1441 PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 124);
1442 show_backtrace(1);
1443 }
1444 {
1445 { /* Inline model#MMethod#is_root_init (var_candidate) on <var_candidate:nullable MProperty(MMethod)> */
1446 var210 = var_candidate->attrs[COLOR_model__MMethod___is_root_init].s; /* _is_root_init on <var_candidate:nullable MProperty(MMethod)> */
1447 var208 = var210;
1448 RET_LABEL209:(void)0;
1449 }
1450 }
1451 if (var208){
1452 goto BREAK_label142;
1453 } else {
1454 }
1455 {
1456 var211 = model__MProperty__lookup_definitions(var_candidate, var_mmodule, var_anchor);
1457 }
1458 var_candidatedefs = var211;
1459 {
1460 var212 = abstract_collection__SequenceRead__first(var_candidatedefs);
1461 }
1462 var_candidatedef = var212;
1463 {
1464 { /* Inline model#MMethodDef#new_msignature (var_candidatedef) on <var_candidatedef:MMethodDef> */
1465 var216 = var_candidatedef->attrs[COLOR_model__MMethodDef___new_msignature].val; /* _new_msignature on <var_candidatedef:MMethodDef> */
1466 var214 = var216;
1467 RET_LABEL215:(void)0;
1468 }
1469 }
1470 if (var214!=NULL) {
1471 var213 = var214;
1472 } else {
1473 {
1474 { /* Inline model#MMethodDef#msignature (var_candidatedef) on <var_candidatedef:MMethodDef> */
1475 var219 = var_candidatedef->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on <var_candidatedef:MMethodDef> */
1476 var217 = var219;
1477 RET_LABEL218:(void)0;
1478 }
1479 }
1480 var213 = var217;
1481 }
1482 var_msignature = var213;
1483 var220 = 1;
1484 if (var_msignature == NULL) {
1485 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1486 PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 134);
1487 show_backtrace(1);
1488 } else {
1489 var221 = model__MSignature__resolve_for(var_msignature, var_recvtype, var_anchor, var_mmodule, var220);
1490 }
1491 var_msignature = var221;
1492 var222 = NEW_typing__CallSite(&type_typing__CallSite);
1493 var223 = 1;
1494 var224 = 0;
1495 {
1496 ((void (*)(val*, val*))(var222->class->vft[COLOR_typing__CallSite__node_61d]))(var222, self) /* node= on <var222:CallSite>*/;
1497 }
1498 {
1499 ((void (*)(val*, val*))(var222->class->vft[COLOR_typing__CallSite__recv_61d]))(var222, var_recvtype) /* recv= on <var222:CallSite>*/;
1500 }
1501 {
1502 ((void (*)(val*, val*))(var222->class->vft[COLOR_typing__CallSite__mmodule_61d]))(var222, var_mmodule) /* mmodule= on <var222:CallSite>*/;
1503 }
1504 {
1505 ((void (*)(val*, val*))(var222->class->vft[COLOR_typing__CallSite__anchor_61d]))(var222, var_anchor) /* anchor= on <var222:CallSite>*/;
1506 }
1507 {
1508 ((void (*)(val*, short int))(var222->class->vft[COLOR_typing__CallSite__recv_is_self_61d]))(var222, var223) /* recv_is_self= on <var222:CallSite>*/;
1509 }
1510 {
1511 ((void (*)(val*, val*))(var222->class->vft[COLOR_typing__CallSite__mproperty_61d]))(var222, var_candidate) /* mproperty= on <var222:CallSite>*/;
1512 }
1513 {
1514 ((void (*)(val*, val*))(var222->class->vft[COLOR_typing__CallSite__mpropdef_61d]))(var222, var_candidatedef) /* mpropdef= on <var222:CallSite>*/;
1515 }
1516 {
1517 ((void (*)(val*, val*))(var222->class->vft[COLOR_typing__CallSite__msignature_61d]))(var222, var_msignature) /* msignature= on <var222:CallSite>*/;
1518 }
1519 {
1520 ((void (*)(val*, short int))(var222->class->vft[COLOR_typing__CallSite__erasure_cast_61d]))(var222, var224) /* erasure_cast= on <var222:CallSite>*/;
1521 }
1522 {
1523 ((void (*)(val*))(var222->class->vft[COLOR_kernel__Object__init]))(var222) /* init on <var222:CallSite>*/;
1524 }
1525 var_callsite = var222;
1526 {
1527 array__Array__add(var_auto_super_inits, var_callsite); /* Direct call array#Array#add on <var_auto_super_inits:Array[CallSite]>*/
1528 }
1529 BREAK_label142: (void)0;
1530 {
1531 array__ArrayIterator__next(var_129); /* Direct call array#ArrayIterator#next on <var_129:ArrayIterator[MClassType]>*/
1532 }
1533 } else {
1534 goto BREAK_label225;
1535 }
1536 }
1537 BREAK_label225: (void)0;
1538 {
1539 { /* Inline abstract_collection#Iterator#finish (var_129) on <var_129:ArrayIterator[MClassType]> */
1540 RET_LABEL226:(void)0;
1541 }
1542 }
1543 {
1544 { /* Inline modelize_property#ModelBuilder#the_root_init_mmethod (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
1545 var229 = var_modelbuilder->attrs[COLOR_modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <var_modelbuilder:ModelBuilder> */
1546 var227 = var229;
1547 RET_LABEL228:(void)0;
1548 }
1549 }
1550 var_the_root_init_mmethod = var227;
1551 var231 = NULL;
1552 if (var_the_root_init_mmethod == NULL) {
1553 var232 = 0; /* is null */
1554 } else {
1555 var232 = 1; /* arg is null and recv is not */
1556 }
1557 if (0) {
1558 { /* Inline kernel#Object#!= (var_the_root_init_mmethod,var231) on <var_the_root_init_mmethod:nullable MMethod> */
1559 var_other = var231;
1560 {
1561 var236 = ((short int (*)(val*, val*))(var_the_root_init_mmethod->class->vft[COLOR_kernel__Object___61d_61d]))(var_the_root_init_mmethod, var_other) /* == on <var_the_root_init_mmethod:nullable MMethod(MMethod)>*/;
1562 var235 = var236;
1563 }
1564 var237 = !var235;
1565 var233 = var237;
1566 goto RET_LABEL234;
1567 RET_LABEL234:(void)0;
1568 }
1569 var232 = var233;
1570 }
1571 var_238 = var232;
1572 if (var232){
1573 {
1574 var239 = array__AbstractArrayRead__is_empty(var_auto_super_inits);
1575 }
1576 var230 = var239;
1577 } else {
1578 var230 = var_238;
1579 }
1580 if (var230){
1581 {
1582 var240 = model__MProperty__lookup_definitions(var_the_root_init_mmethod, var_mmodule, var_anchor);
1583 }
1584 var_candidatedefs241 = var240;
1585 {
1586 var242 = abstract_collection__SequenceRead__first(var_candidatedefs241);
1587 }
1588 var_candidatedef243 = var242;
1589 {
1590 { /* Inline array#AbstractArrayRead#length (var_candidatedefs241) on <var_candidatedefs241:Array[MMethodDef]> */
1591 var246 = var_candidatedefs241->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_candidatedefs241:Array[MMethodDef]> */
1592 var244 = var246;
1593 RET_LABEL245:(void)0;
1594 }
1595 }
1596 var247 = 1;
1597 {
1598 { /* Inline kernel#Int#> (var244,var247) on <var244:Int> */
1599 /* Covariant cast for argument 0 (i) <var247:Int> isa OTHER */
1600 /* <var247:Int> isa OTHER */
1601 var250 = 1; /* easy <var247:Int> isa OTHER*/
1602 if (unlikely(!var250)) {
1603 var_class_name253 = type_kernel__Int.name;
1604 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name253);
1605 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
1606 show_backtrace(1);
1607 }
1608 var254 = var244 > var247;
1609 var248 = var254;
1610 goto RET_LABEL249;
1611 RET_LABEL249:(void)0;
1612 }
1613 }
1614 if (var248){
1615 var_255 = var_candidatedefs241;
1616 {
1617 var256 = array__AbstractArrayRead__iterator(var_255);
1618 }
1619 var_257 = var256;
1620 for(;;) {
1621 {
1622 var258 = array__ArrayIterator__is_ok(var_257);
1623 }
1624 if (var258){
1625 {
1626 var259 = array__ArrayIterator__item(var_257);
1627 }
1628 var_spd = var259;
1629 {
1630 { /* Inline model#MMethodDef#initializers (var_spd) on <var_spd:MMethodDef> */
1631 var262 = var_spd->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_spd:MMethodDef> */
1632 if (unlikely(var262 == NULL)) {
1633 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
1634 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
1635 show_backtrace(1);
1636 }
1637 var260 = var262;
1638 RET_LABEL261:(void)0;
1639 }
1640 }
1641 {
1642 { /* Inline array#AbstractArrayRead#length (var260) on <var260:Array[MProperty]> */
1643 var265 = var260->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var260:Array[MProperty]> */
1644 var263 = var265;
1645 RET_LABEL264:(void)0;
1646 }
1647 }
1648 {
1649 { /* Inline model#MMethodDef#initializers (var_candidatedef243) on <var_candidatedef243:MMethodDef> */
1650 var268 = var_candidatedef243->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_candidatedef243:MMethodDef> */
1651 if (unlikely(var268 == NULL)) {
1652 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
1653 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
1654 show_backtrace(1);
1655 }
1656 var266 = var268;
1657 RET_LABEL267:(void)0;
1658 }
1659 }
1660 {
1661 { /* Inline array#AbstractArrayRead#length (var266) on <var266:Array[MProperty]> */
1662 var271 = var266->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var266:Array[MProperty]> */
1663 var269 = var271;
1664 RET_LABEL270:(void)0;
1665 }
1666 }
1667 {
1668 { /* Inline kernel#Int#> (var263,var269) on <var263:Int> */
1669 /* Covariant cast for argument 0 (i) <var269:Int> isa OTHER */
1670 /* <var269:Int> isa OTHER */
1671 var274 = 1; /* easy <var269:Int> isa OTHER*/
1672 if (unlikely(!var274)) {
1673 var_class_name277 = type_kernel__Int.name;
1674 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name277);
1675 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
1676 show_backtrace(1);
1677 }
1678 var278 = var263 > var269;
1679 var272 = var278;
1680 goto RET_LABEL273;
1681 RET_LABEL273:(void)0;
1682 }
1683 }
1684 if (var272){
1685 var_candidatedef243 = var_spd;
1686 } else {
1687 }
1688 {
1689 array__ArrayIterator__next(var_257); /* Direct call array#ArrayIterator#next on <var_257:ArrayIterator[MMethodDef]>*/
1690 }
1691 } else {
1692 goto BREAK_label279;
1693 }
1694 }
1695 BREAK_label279: (void)0;
1696 {
1697 { /* Inline abstract_collection#Iterator#finish (var_257) on <var_257:ArrayIterator[MMethodDef]> */
1698 RET_LABEL280:(void)0;
1699 }
1700 }
1701 var_281 = var_candidatedefs241;
1702 {
1703 var282 = array__AbstractArrayRead__iterator(var_281);
1704 }
1705 var_283 = var282;
1706 for(;;) {
1707 {
1708 var284 = array__ArrayIterator__is_ok(var_283);
1709 }
1710 if (var284){
1711 {
1712 var285 = array__ArrayIterator__item(var_283);
1713 }
1714 var_spd286 = var285;
1715 var287 = 0;
1716 var_i = var287;
1717 {
1718 { /* Inline model#MMethodDef#initializers (var_spd286) on <var_spd286:MMethodDef> */
1719 var290 = var_spd286->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_spd286:MMethodDef> */
1720 if (unlikely(var290 == NULL)) {
1721 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
1722 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
1723 show_backtrace(1);
1724 }
1725 var288 = var290;
1726 RET_LABEL289:(void)0;
1727 }
1728 }
1729 var_291 = var288;
1730 {
1731 var292 = array__AbstractArrayRead__iterator(var_291);
1732 }
1733 var_293 = var292;
1734 for(;;) {
1735 {
1736 var294 = array__ArrayIterator__is_ok(var_293);
1737 }
1738 if (var294){
1739 {
1740 var295 = array__ArrayIterator__item(var_293);
1741 }
1742 var_p = var295;
1743 {
1744 { /* Inline model#MMethodDef#initializers (var_candidatedef243) on <var_candidatedef243:MMethodDef> */
1745 var298 = var_candidatedef243->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_candidatedef243:MMethodDef> */
1746 if (unlikely(var298 == NULL)) {
1747 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
1748 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
1749 show_backtrace(1);
1750 }
1751 var296 = var298;
1752 RET_LABEL297:(void)0;
1753 }
1754 }
1755 {
1756 var299 = array__Array___91d_93d(var296, var_i);
1757 }
1758 {
1759 { /* Inline kernel#Object#!= (var_p,var299) on <var_p:MProperty> */
1760 var_other = var299;
1761 {
1762 var304 = ((short int (*)(val*, val*))(var_p->class->vft[COLOR_kernel__Object___61d_61d]))(var_p, var_other) /* == on <var_p:MProperty>*/;
1763 var303 = var304;
1764 }
1765 var305 = !var303;
1766 var301 = var305;
1767 goto RET_LABEL302;
1768 RET_LABEL302:(void)0;
1769 }
1770 var300 = var301;
1771 }
1772 if (var300){
1773 if (varonce306) {
1774 var307 = varonce306;
1775 } else {
1776 var308 = "Error: Cannot do an implicit constructor call to comflicting for inherited inits ";
1777 var309 = 81;
1778 var310 = string__NativeString__to_s_with_length(var308, var309);
1779 var307 = var310;
1780 varonce306 = var307;
1781 }
1782 if (varonce311) {
1783 var312 = varonce311;
1784 } else {
1785 var313 = "(";
1786 var314 = 1;
1787 var315 = string__NativeString__to_s_with_length(var313, var314);
1788 var312 = var315;
1789 varonce311 = var312;
1790 }
1791 {
1792 { /* Inline model#MMethodDef#initializers (var_spd286) on <var_spd286:MMethodDef> */
1793 var318 = var_spd286->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_spd286:MMethodDef> */
1794 if (unlikely(var318 == NULL)) {
1795 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
1796 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
1797 show_backtrace(1);
1798 }
1799 var316 = var318;
1800 RET_LABEL317:(void)0;
1801 }
1802 }
1803 if (varonce319) {
1804 var320 = varonce319;
1805 } else {
1806 var321 = ", ";
1807 var322 = 2;
1808 var323 = string__NativeString__to_s_with_length(var321, var322);
1809 var320 = var323;
1810 varonce319 = var320;
1811 }
1812 {
1813 var324 = string__Collection__join(var316, var320);
1814 }
1815 if (varonce325) {
1816 var326 = varonce325;
1817 } else {
1818 var327 = ") and ";
1819 var328 = 6;
1820 var329 = string__NativeString__to_s_with_length(var327, var328);
1821 var326 = var329;
1822 varonce325 = var326;
1823 }
1824 if (varonce330) {
1825 var331 = varonce330;
1826 } else {
1827 var332 = "(";
1828 var333 = 1;
1829 var334 = string__NativeString__to_s_with_length(var332, var333);
1830 var331 = var334;
1831 varonce330 = var331;
1832 }
1833 {
1834 { /* Inline model#MMethodDef#initializers (var_candidatedef243) on <var_candidatedef243:MMethodDef> */
1835 var337 = var_candidatedef243->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_candidatedef243:MMethodDef> */
1836 if (unlikely(var337 == NULL)) {
1837 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
1838 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
1839 show_backtrace(1);
1840 }
1841 var335 = var337;
1842 RET_LABEL336:(void)0;
1843 }
1844 }
1845 if (varonce338) {
1846 var339 = varonce338;
1847 } else {
1848 var340 = ", ";
1849 var341 = 2;
1850 var342 = string__NativeString__to_s_with_length(var340, var341);
1851 var339 = var342;
1852 varonce338 = var339;
1853 }
1854 {
1855 var343 = string__Collection__join(var335, var339);
1856 }
1857 if (varonce344) {
1858 var345 = varonce344;
1859 } else {
1860 var346 = "). NOTE: Do not mix old-style and new-style init!";
1861 var347 = 49;
1862 var348 = string__NativeString__to_s_with_length(var346, var347);
1863 var345 = var348;
1864 varonce344 = var345;
1865 }
1866 var349 = NEW_array__Array(&type_array__Arraykernel__Object);
1867 { /* var349 = array_instance Array[Object] */
1868 var350 = 9;
1869 var351 = NEW_array__NativeArray(var350, &type_array__NativeArraykernel__Object);
1870 ((struct instance_array__NativeArray*)var351)->values[0] = (val*) var307;
1871 ((struct instance_array__NativeArray*)var351)->values[1] = (val*) var_spd286;
1872 ((struct instance_array__NativeArray*)var351)->values[2] = (val*) var312;
1873 ((struct instance_array__NativeArray*)var351)->values[3] = (val*) var324;
1874 ((struct instance_array__NativeArray*)var351)->values[4] = (val*) var326;
1875 ((struct instance_array__NativeArray*)var351)->values[5] = (val*) var_candidatedef243;
1876 ((struct instance_array__NativeArray*)var351)->values[6] = (val*) var331;
1877 ((struct instance_array__NativeArray*)var351)->values[7] = (val*) var343;
1878 ((struct instance_array__NativeArray*)var351)->values[8] = (val*) var345;
1879 {
1880 ((void (*)(val*, val*, long))(var349->class->vft[COLOR_array__Array__with_native]))(var349, var351, var350) /* with_native on <var349:Array[Object]>*/;
1881 }
1882 }
1883 {
1884 var352 = ((val* (*)(val*))(var349->class->vft[COLOR_string__Object__to_s]))(var349) /* to_s on <var349:Array[Object]>*/;
1885 }
1886 {
1887 modelbuilder__ModelBuilder__error(var_modelbuilder, self, var352); /* Direct call modelbuilder#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
1888 }
1889 goto RET_LABEL;
1890 } else {
1891 }
1892 var353 = 1;
1893 {
1894 { /* Inline kernel#Int#+ (var_i,var353) on <var_i:Int> */
1895 /* Covariant cast for argument 0 (i) <var353:Int> isa OTHER */
1896 /* <var353:Int> isa OTHER */
1897 var356 = 1; /* easy <var353:Int> isa OTHER*/
1898 if (unlikely(!var356)) {
1899 var_class_name359 = type_kernel__Int.name;
1900 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name359);
1901 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
1902 show_backtrace(1);
1903 }
1904 var360 = var_i + var353;
1905 var354 = var360;
1906 goto RET_LABEL355;
1907 RET_LABEL355:(void)0;
1908 }
1909 }
1910 var_i = var354;
1911 {
1912 array__ArrayIterator__next(var_293); /* Direct call array#ArrayIterator#next on <var_293:ArrayIterator[MProperty]>*/
1913 }
1914 } else {
1915 goto BREAK_label361;
1916 }
1917 }
1918 BREAK_label361: (void)0;
1919 {
1920 { /* Inline abstract_collection#Iterator#finish (var_293) on <var_293:ArrayIterator[MProperty]> */
1921 RET_LABEL362:(void)0;
1922 }
1923 }
1924 {
1925 array__ArrayIterator__next(var_283); /* Direct call array#ArrayIterator#next on <var_283:ArrayIterator[MMethodDef]>*/
1926 }
1927 } else {
1928 goto BREAK_label363;
1929 }
1930 }
1931 BREAK_label363: (void)0;
1932 {
1933 { /* Inline abstract_collection#Iterator#finish (var_283) on <var_283:ArrayIterator[MMethodDef]> */
1934 RET_LABEL364:(void)0;
1935 }
1936 }
1937 } else {
1938 }
1939 {
1940 { /* Inline model#MMethodDef#new_msignature (var_candidatedef243) on <var_candidatedef243:MMethodDef> */
1941 var368 = var_candidatedef243->attrs[COLOR_model__MMethodDef___new_msignature].val; /* _new_msignature on <var_candidatedef243:MMethodDef> */
1942 var366 = var368;
1943 RET_LABEL367:(void)0;
1944 }
1945 }
1946 if (var366!=NULL) {
1947 var365 = var366;
1948 } else {
1949 {
1950 { /* Inline model#MMethodDef#msignature (var_candidatedef243) on <var_candidatedef243:MMethodDef> */
1951 var371 = var_candidatedef243->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on <var_candidatedef243:MMethodDef> */
1952 var369 = var371;
1953 RET_LABEL370:(void)0;
1954 }
1955 }
1956 var365 = var369;
1957 }
1958 var_msignature372 = var365;
1959 var373 = 1;
1960 if (var_msignature372 == NULL) {
1961 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1962 PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 168);
1963 show_backtrace(1);
1964 } else {
1965 var374 = model__MSignature__resolve_for(var_msignature372, var_recvtype, var_anchor, var_mmodule, var373);
1966 }
1967 var_msignature372 = var374;
1968 var375 = NEW_typing__CallSite(&type_typing__CallSite);
1969 var376 = 1;
1970 var377 = 0;
1971 {
1972 ((void (*)(val*, val*))(var375->class->vft[COLOR_typing__CallSite__node_61d]))(var375, self) /* node= on <var375:CallSite>*/;
1973 }
1974 {
1975 ((void (*)(val*, val*))(var375->class->vft[COLOR_typing__CallSite__recv_61d]))(var375, var_recvtype) /* recv= on <var375:CallSite>*/;
1976 }
1977 {
1978 ((void (*)(val*, val*))(var375->class->vft[COLOR_typing__CallSite__mmodule_61d]))(var375, var_mmodule) /* mmodule= on <var375:CallSite>*/;
1979 }
1980 {
1981 ((void (*)(val*, val*))(var375->class->vft[COLOR_typing__CallSite__anchor_61d]))(var375, var_anchor) /* anchor= on <var375:CallSite>*/;
1982 }
1983 {
1984 ((void (*)(val*, short int))(var375->class->vft[COLOR_typing__CallSite__recv_is_self_61d]))(var375, var376) /* recv_is_self= on <var375:CallSite>*/;
1985 }
1986 {
1987 ((void (*)(val*, val*))(var375->class->vft[COLOR_typing__CallSite__mproperty_61d]))(var375, var_the_root_init_mmethod) /* mproperty= on <var375:CallSite>*/;
1988 }
1989 {
1990 ((void (*)(val*, val*))(var375->class->vft[COLOR_typing__CallSite__mpropdef_61d]))(var375, var_candidatedef243) /* mpropdef= on <var375:CallSite>*/;
1991 }
1992 {
1993 ((void (*)(val*, val*))(var375->class->vft[COLOR_typing__CallSite__msignature_61d]))(var375, var_msignature372) /* msignature= on <var375:CallSite>*/;
1994 }
1995 {
1996 ((void (*)(val*, short int))(var375->class->vft[COLOR_typing__CallSite__erasure_cast_61d]))(var375, var377) /* erasure_cast= on <var375:CallSite>*/;
1997 }
1998 {
1999 ((void (*)(val*))(var375->class->vft[COLOR_kernel__Object__init]))(var375) /* init on <var375:CallSite>*/;
2000 }
2001 var_callsite378 = var375;
2002 {
2003 array__Array__add(var_auto_super_inits, var_callsite378); /* Direct call array#Array#add on <var_auto_super_inits:Array[CallSite]>*/
2004 }
2005 } else {
2006 }
2007 {
2008 var379 = array__AbstractArrayRead__is_empty(var_auto_super_inits);
2009 }
2010 if (var379){
2011 if (varonce380) {
2012 var381 = varonce380;
2013 } else {
2014 var382 = "Error: No constructors to call implicitely in ";
2015 var383 = 46;
2016 var384 = string__NativeString__to_s_with_length(var382, var383);
2017 var381 = var384;
2018 varonce380 = var381;
2019 }
2020 if (varonce385) {
2021 var386 = varonce385;
2022 } else {
2023 var387 = ". Call one explicitely.";
2024 var388 = 23;
2025 var389 = string__NativeString__to_s_with_length(var387, var388);
2026 var386 = var389;
2027 varonce385 = var386;
2028 }
2029 var390 = NEW_array__Array(&type_array__Arraykernel__Object);
2030 { /* var390 = array_instance Array[Object] */
2031 var391 = 3;
2032 var392 = NEW_array__NativeArray(var391, &type_array__NativeArraykernel__Object);
2033 ((struct instance_array__NativeArray*)var392)->values[0] = (val*) var381;
2034 ((struct instance_array__NativeArray*)var392)->values[1] = (val*) var_mpropdef;
2035 ((struct instance_array__NativeArray*)var392)->values[2] = (val*) var386;
2036 {
2037 ((void (*)(val*, val*, long))(var390->class->vft[COLOR_array__Array__with_native]))(var390, var392, var391) /* with_native on <var390:Array[Object]>*/;
2038 }
2039 }
2040 {
2041 var393 = ((val* (*)(val*))(var390->class->vft[COLOR_string__Object__to_s]))(var390) /* to_s on <var390:Array[Object]>*/;
2042 }
2043 {
2044 modelbuilder__ModelBuilder__error(var_modelbuilder, self, var393); /* Direct call modelbuilder#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
2045 }
2046 goto RET_LABEL;
2047 } else {
2048 }
2049 var_394 = var_auto_super_inits;
2050 {
2051 var395 = array__AbstractArrayRead__iterator(var_394);
2052 }
2053 var_396 = var395;
2054 for(;;) {
2055 {
2056 var397 = array__ArrayIterator__is_ok(var_396);
2057 }
2058 if (var397){
2059 {
2060 var398 = array__ArrayIterator__item(var_396);
2061 }
2062 var_auto_super_init = var398;
2063 {
2064 { /* Inline typing#CallSite#mpropdef (var_auto_super_init) on <var_auto_super_init:CallSite> */
2065 var401 = var_auto_super_init->attrs[COLOR_typing__CallSite___mpropdef].val; /* _mpropdef on <var_auto_super_init:CallSite> */
2066 if (unlikely(var401 == NULL)) {
2067 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
2068 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 486);
2069 show_backtrace(1);
2070 }
2071 var399 = var401;
2072 RET_LABEL400:(void)0;
2073 }
2074 }
2075 var_auto_super_init_def = var399;
2076 {
2077 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:MMethodDef> */
2078 var404 = var_mpropdef->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:MMethodDef> */
2079 var402 = var404;
2080 RET_LABEL403:(void)0;
2081 }
2082 }
2083 if (unlikely(var402 == NULL)) {
2084 PRINT_ERROR("Runtime error: %s", "Cast failed");
2085 PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 181);
2086 show_backtrace(1);
2087 }
2088 var_msig = var402;
2089 {
2090 { /* Inline typing#CallSite#msignature (var_auto_super_init) on <var_auto_super_init:CallSite> */
2091 var407 = var_auto_super_init->attrs[COLOR_typing__CallSite___msignature].val; /* _msignature on <var_auto_super_init:CallSite> */
2092 if (unlikely(var407 == NULL)) {
2093 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
2094 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 490);
2095 show_backtrace(1);
2096 }
2097 var405 = var407;
2098 RET_LABEL406:(void)0;
2099 }
2100 }
2101 var_supermsig = var405;
2102 {
2103 var408 = model__MSignature__arity(var_supermsig);
2104 }
2105 {
2106 var409 = model__MSignature__arity(var_msig);
2107 }
2108 {
2109 { /* Inline kernel#Int#> (var408,var409) on <var408:Int> */
2110 /* Covariant cast for argument 0 (i) <var409:Int> isa OTHER */
2111 /* <var409:Int> isa OTHER */
2112 var412 = 1; /* easy <var409:Int> isa OTHER*/
2113 if (unlikely(!var412)) {
2114 var_class_name415 = type_kernel__Int.name;
2115 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name415);
2116 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
2117 show_backtrace(1);
2118 }
2119 var416 = var408 > var409;
2120 var410 = var416;
2121 goto RET_LABEL411;
2122 RET_LABEL411:(void)0;
2123 }
2124 }
2125 if (var410){
2126 if (varonce417) {
2127 var418 = varonce417;
2128 } else {
2129 var419 = "Error: Cannot do an implicit constructor call to ";
2130 var420 = 49;
2131 var421 = string__NativeString__to_s_with_length(var419, var420);
2132 var418 = var421;
2133 varonce417 = var418;
2134 }
2135 if (varonce422) {
2136 var423 = varonce422;
2137 } else {
2138 var424 = ". Expected at least ";
2139 var425 = 20;
2140 var426 = string__NativeString__to_s_with_length(var424, var425);
2141 var423 = var426;
2142 varonce422 = var423;
2143 }
2144 {
2145 var427 = model__MSignature__arity(var_supermsig);
2146 }
2147 if (varonce428) {
2148 var429 = varonce428;
2149 } else {
2150 var430 = " arguments, got ";
2151 var431 = 16;
2152 var432 = string__NativeString__to_s_with_length(var430, var431);
2153 var429 = var432;
2154 varonce428 = var429;
2155 }
2156 {
2157 var433 = model__MSignature__arity(var_msig);
2158 }
2159 if (varonce434) {
2160 var435 = varonce434;
2161 } else {
2162 var436 = ".";
2163 var437 = 1;
2164 var438 = string__NativeString__to_s_with_length(var436, var437);
2165 var435 = var438;
2166 varonce434 = var435;
2167 }
2168 var439 = NEW_array__Array(&type_array__Arraykernel__Object);
2169 { /* var439 = array_instance Array[Object] */
2170 var440 = 8;
2171 var441 = NEW_array__NativeArray(var440, &type_array__NativeArraykernel__Object);
2172 ((struct instance_array__NativeArray*)var441)->values[0] = (val*) var418;
2173 ((struct instance_array__NativeArray*)var441)->values[1] = (val*) var_auto_super_init_def;
2174 ((struct instance_array__NativeArray*)var441)->values[2] = (val*) var_supermsig;
2175 ((struct instance_array__NativeArray*)var441)->values[3] = (val*) var423;
2176 var442 = BOX_kernel__Int(var427); /* autobox from Int to Object */
2177 ((struct instance_array__NativeArray*)var441)->values[4] = (val*) var442;
2178 ((struct instance_array__NativeArray*)var441)->values[5] = (val*) var429;
2179 var443 = BOX_kernel__Int(var433); /* autobox from Int to Object */
2180 ((struct instance_array__NativeArray*)var441)->values[6] = (val*) var443;
2181 ((struct instance_array__NativeArray*)var441)->values[7] = (val*) var435;
2182 {
2183 ((void (*)(val*, val*, long))(var439->class->vft[COLOR_array__Array__with_native]))(var439, var441, var440) /* with_native on <var439:Array[Object]>*/;
2184 }
2185 }
2186 {
2187 var444 = ((val* (*)(val*))(var439->class->vft[COLOR_string__Object__to_s]))(var439) /* to_s on <var439:Array[Object]>*/;
2188 }
2189 {
2190 modelbuilder__ModelBuilder__error(var_modelbuilder, self, var444); /* Direct call modelbuilder#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
2191 }
2192 goto BREAK_label445;
2193 } else {
2194 }
2195 var446 = 0;
2196 var_i447 = var446;
2197 {
2198 { /* Inline model#MSignature#mparameters (var_supermsig) on <var_supermsig:MSignature> */
2199 var450 = var_supermsig->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <var_supermsig:MSignature> */
2200 if (unlikely(var450 == NULL)) {
2201 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2202 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
2203 show_backtrace(1);
2204 }
2205 var448 = var450;
2206 RET_LABEL449:(void)0;
2207 }
2208 }
2209 var_451 = var448;
2210 {
2211 var452 = array__AbstractArrayRead__iterator(var_451);
2212 }
2213 var_453 = var452;
2214 for(;;) {
2215 {
2216 var454 = array__ArrayIterator__is_ok(var_453);
2217 }
2218 if (var454){
2219 {
2220 var455 = array__ArrayIterator__item(var_453);
2221 }
2222 var_sp = var455;
2223 {
2224 { /* Inline model#MSignature#mparameters (var_msig) on <var_msig:MSignature> */
2225 var458 = var_msig->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <var_msig:MSignature> */
2226 if (unlikely(var458 == NULL)) {
2227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2228 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
2229 show_backtrace(1);
2230 }
2231 var456 = var458;
2232 RET_LABEL457:(void)0;
2233 }
2234 }
2235 {
2236 var459 = array__Array___91d_93d(var456, var_i447);
2237 }
2238 var_p460 = var459;
2239 {
2240 { /* Inline model#MParameter#mtype (var_p460) on <var_p460:MParameter> */
2241 var463 = var_p460->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var_p460:MParameter> */
2242 if (unlikely(var463 == NULL)) {
2243 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2244 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
2245 show_backtrace(1);
2246 }
2247 var461 = var463;
2248 RET_LABEL462:(void)0;
2249 }
2250 }
2251 var_sub = var461;
2252 {
2253 { /* Inline model#MParameter#mtype (var_sp) on <var_sp:MParameter> */
2254 var466 = var_sp->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var_sp:MParameter> */
2255 if (unlikely(var466 == NULL)) {
2256 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2257 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
2258 show_backtrace(1);
2259 }
2260 var464 = var466;
2261 RET_LABEL465:(void)0;
2262 }
2263 }
2264 var_sup = var464;
2265 {
2266 var467 = model__MType__is_subtype(var_sub, var_mmodule, var_anchor, var_sup);
2267 }
2268 var468 = !var467;
2269 if (var468){
2270 if (varonce469) {
2271 var470 = varonce469;
2272 } else {
2273 var471 = "Error: Cannot do an implicit constructor call to ";
2274 var472 = 49;
2275 var473 = string__NativeString__to_s_with_length(var471, var472);
2276 var470 = var473;
2277 varonce469 = var470;
2278 }
2279 if (varonce474) {
2280 var475 = varonce474;
2281 } else {
2282 var476 = ". Expected argument #";
2283 var477 = 21;
2284 var478 = string__NativeString__to_s_with_length(var476, var477);
2285 var475 = var478;
2286 varonce474 = var475;
2287 }
2288 if (varonce479) {
2289 var480 = varonce479;
2290 } else {
2291 var481 = " of type ";
2292 var482 = 9;
2293 var483 = string__NativeString__to_s_with_length(var481, var482);
2294 var480 = var483;
2295 varonce479 = var480;
2296 }
2297 {
2298 { /* Inline model#MParameter#mtype (var_sp) on <var_sp:MParameter> */
2299 var486 = var_sp->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var_sp:MParameter> */
2300 if (unlikely(var486 == NULL)) {
2301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2302 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
2303 show_backtrace(1);
2304 }
2305 var484 = var486;
2306 RET_LABEL485:(void)0;
2307 }
2308 }
2309 if (varonce487) {
2310 var488 = varonce487;
2311 } else {
2312 var489 = ", got implicit argument ";
2313 var490 = 24;
2314 var491 = string__NativeString__to_s_with_length(var489, var490);
2315 var488 = var491;
2316 varonce487 = var488;
2317 }
2318 {
2319 { /* Inline model#MParameter#name (var_p460) on <var_p460:MParameter> */
2320 var494 = var_p460->attrs[COLOR_model__MParameter___name].val; /* _name on <var_p460:MParameter> */
2321 if (unlikely(var494 == NULL)) {
2322 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2323 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1562);
2324 show_backtrace(1);
2325 }
2326 var492 = var494;
2327 RET_LABEL493:(void)0;
2328 }
2329 }
2330 if (varonce495) {
2331 var496 = varonce495;
2332 } else {
2333 var497 = " of type ";
2334 var498 = 9;
2335 var499 = string__NativeString__to_s_with_length(var497, var498);
2336 var496 = var499;
2337 varonce495 = var496;
2338 }
2339 {
2340 { /* Inline model#MParameter#mtype (var_p460) on <var_p460:MParameter> */
2341 var502 = var_p460->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var_p460:MParameter> */
2342 if (unlikely(var502 == NULL)) {
2343 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2344 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
2345 show_backtrace(1);
2346 }
2347 var500 = var502;
2348 RET_LABEL501:(void)0;
2349 }
2350 }
2351 if (varonce503) {
2352 var504 = varonce503;
2353 } else {
2354 var505 = ".";
2355 var506 = 1;
2356 var507 = string__NativeString__to_s_with_length(var505, var506);
2357 var504 = var507;
2358 varonce503 = var504;
2359 }
2360 var508 = NEW_array__Array(&type_array__Arraykernel__Object);
2361 { /* var508 = array_instance Array[Object] */
2362 var509 = 12;
2363 var510 = NEW_array__NativeArray(var509, &type_array__NativeArraykernel__Object);
2364 ((struct instance_array__NativeArray*)var510)->values[0] = (val*) var470;
2365 ((struct instance_array__NativeArray*)var510)->values[1] = (val*) var_auto_super_init_def;
2366 ((struct instance_array__NativeArray*)var510)->values[2] = (val*) var_supermsig;
2367 ((struct instance_array__NativeArray*)var510)->values[3] = (val*) var475;
2368 var511 = BOX_kernel__Int(var_i447); /* autobox from Int to Object */
2369 ((struct instance_array__NativeArray*)var510)->values[4] = (val*) var511;
2370 ((struct instance_array__NativeArray*)var510)->values[5] = (val*) var480;
2371 ((struct instance_array__NativeArray*)var510)->values[6] = (val*) var484;
2372 ((struct instance_array__NativeArray*)var510)->values[7] = (val*) var488;
2373 ((struct instance_array__NativeArray*)var510)->values[8] = (val*) var492;
2374 ((struct instance_array__NativeArray*)var510)->values[9] = (val*) var496;
2375 ((struct instance_array__NativeArray*)var510)->values[10] = (val*) var500;
2376 ((struct instance_array__NativeArray*)var510)->values[11] = (val*) var504;
2377 {
2378 ((void (*)(val*, val*, long))(var508->class->vft[COLOR_array__Array__with_native]))(var508, var510, var509) /* with_native on <var508:Array[Object]>*/;
2379 }
2380 }
2381 {
2382 var512 = ((val* (*)(val*))(var508->class->vft[COLOR_string__Object__to_s]))(var508) /* to_s on <var508:Array[Object]>*/;
2383 }
2384 {
2385 modelbuilder__ModelBuilder__error(var_modelbuilder, self, var512); /* Direct call modelbuilder#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
2386 }
2387 goto BREAK_label513;
2388 } else {
2389 }
2390 var514 = 1;
2391 {
2392 { /* Inline kernel#Int#+ (var_i447,var514) on <var_i447:Int> */
2393 /* Covariant cast for argument 0 (i) <var514:Int> isa OTHER */
2394 /* <var514:Int> isa OTHER */
2395 var517 = 1; /* easy <var514:Int> isa OTHER*/
2396 if (unlikely(!var517)) {
2397 var_class_name520 = type_kernel__Int.name;
2398 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name520);
2399 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
2400 show_backtrace(1);
2401 }
2402 var521 = var_i447 + var514;
2403 var515 = var521;
2404 goto RET_LABEL516;
2405 RET_LABEL516:(void)0;
2406 }
2407 }
2408 var_i447 = var515;
2409 {
2410 array__ArrayIterator__next(var_453); /* Direct call array#ArrayIterator#next on <var_453:ArrayIterator[MParameter]>*/
2411 }
2412 } else {
2413 goto BREAK_label513;
2414 }
2415 }
2416 BREAK_label513: (void)0;
2417 {
2418 { /* Inline abstract_collection#Iterator#finish (var_453) on <var_453:ArrayIterator[MParameter]> */
2419 RET_LABEL522:(void)0;
2420 }
2421 }
2422 BREAK_label445: (void)0;
2423 {
2424 array__ArrayIterator__next(var_396); /* Direct call array#ArrayIterator#next on <var_396:ArrayIterator[CallSite]>*/
2425 }
2426 } else {
2427 goto BREAK_label523;
2428 }
2429 }
2430 BREAK_label523: (void)0;
2431 {
2432 { /* Inline abstract_collection#Iterator#finish (var_396) on <var_396:ArrayIterator[CallSite]> */
2433 RET_LABEL524:(void)0;
2434 }
2435 }
2436 {
2437 { /* Inline auto_super_init#AMethPropdef#auto_super_inits= (self,var_auto_super_inits) on <self:AMethPropdef> */
2438 self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val = var_auto_super_inits; /* _auto_super_inits on <self:AMethPropdef> */
2439 RET_LABEL525:(void)0;
2440 }
2441 }
2442 RET_LABEL:;
2443 }
2444 /* method auto_super_init#AMethPropdef#do_auto_super_init for (self: Object, ModelBuilder) */
2445 void VIRTUAL_auto_super_init__AMethPropdef__do_auto_super_init(val* self, val* p0) {
2446 auto_super_init__AMethPropdef__do_auto_super_init(self, p0); /* Direct call auto_super_init#AMethPropdef#do_auto_super_init on <self:Object(AMethPropdef)>*/
2447 RET_LABEL:;
2448 }
2449 /* method auto_super_init#ANode#accept_auto_super_init for (self: ANode, AutoSuperInitVisitor) */
2450 void auto_super_init__ANode__accept_auto_super_init(val* self, val* p0) {
2451 val* var_v /* var v: AutoSuperInitVisitor */;
2452 var_v = p0;
2453 RET_LABEL:;
2454 }
2455 /* method auto_super_init#ANode#accept_auto_super_init for (self: Object, AutoSuperInitVisitor) */
2456 void VIRTUAL_auto_super_init__ANode__accept_auto_super_init(val* self, val* p0) {
2457 val* var_v /* var v: AutoSuperInitVisitor */;
2458 { /* Inline auto_super_init#ANode#accept_auto_super_init (self,p0) on <self:Object(ANode)> */
2459 var_v = p0;
2460 RET_LABEL1:(void)0;
2461 }
2462 RET_LABEL:;
2463 }
2464 /* method auto_super_init#ASendExpr#accept_auto_super_init for (self: ASendExpr, AutoSuperInitVisitor) */
2465 void auto_super_init__ASendExpr__accept_auto_super_init(val* self, val* p0) {
2466 val* var_v /* var v: AutoSuperInitVisitor */;
2467 val* var /* : nullable CallSite */;
2468 val* var2 /* : nullable CallSite */;
2469 val* var_callsite /* var callsite: nullable CallSite */;
2470 val* var3 /* : null */;
2471 short int var4 /* : Bool */;
2472 short int var5 /* : Bool */;
2473 val* var_other /* var other: nullable Object */;
2474 short int var7 /* : Bool */;
2475 short int var9 /* : Bool */;
2476 short int var10 /* : Bool */;
2477 val* var12 /* : MMethod */;
2478 val* var14 /* : MMethod */;
2479 short int var15 /* : Bool */;
2480 short int var17 /* : Bool */;
2481 var_v = p0;
2482 {
2483 { /* Inline typing#ASendExpr#callsite (self) on <self:ASendExpr> */
2484 var2 = self->attrs[COLOR_typing__ASendExpr___callsite].val; /* _callsite on <self:ASendExpr> */
2485 var = var2;
2486 RET_LABEL1:(void)0;
2487 }
2488 }
2489 var_callsite = var;
2490 var3 = NULL;
2491 if (var_callsite == NULL) {
2492 var4 = 1; /* is null */
2493 } else {
2494 var4 = 0; /* arg is null but recv is not */
2495 }
2496 if (0) {
2497 { /* Inline kernel#Object#== (var_callsite,var3) on <var_callsite:nullable CallSite> */
2498 var_other = var3;
2499 {
2500 { /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
2501 var9 = var_callsite == var_other;
2502 var7 = var9;
2503 goto RET_LABEL8;
2504 RET_LABEL8:(void)0;
2505 }
2506 }
2507 var5 = var7;
2508 goto RET_LABEL6;
2509 RET_LABEL6:(void)0;
2510 }
2511 var4 = var5;
2512 }
2513 if (var4){
2514 var10 = 1;
2515 {
2516 { /* Inline auto_super_init#AutoSuperInitVisitor#is_broken= (var_v,var10) on <var_v:AutoSuperInitVisitor> */
2517 var_v->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___is_broken].s = var10; /* _is_broken on <var_v:AutoSuperInitVisitor> */
2518 RET_LABEL11:(void)0;
2519 }
2520 }
2521 goto RET_LABEL;
2522 } else {
2523 }
2524 {
2525 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
2526 var14 = var_callsite->attrs[COLOR_typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
2527 if (unlikely(var14 == NULL)) {
2528 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2529 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 483);
2530 show_backtrace(1);
2531 }
2532 var12 = var14;
2533 RET_LABEL13:(void)0;
2534 }
2535 }
2536 {
2537 { /* Inline model#MMethod#is_init (var12) on <var12:MMethod> */
2538 var17 = var12->attrs[COLOR_model__MMethod___is_init].s; /* _is_init on <var12:MMethod> */
2539 var15 = var17;
2540 RET_LABEL16:(void)0;
2541 }
2542 }
2543 if (var15){
2544 {
2545 { /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= (var_v,self) on <var_v:AutoSuperInitVisitor> */
2546 var_v->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val = self; /* _has_explicit_super_init on <var_v:AutoSuperInitVisitor> */
2547 RET_LABEL18:(void)0;
2548 }
2549 }
2550 } else {
2551 }
2552 RET_LABEL:;
2553 }
2554 /* method auto_super_init#ASendExpr#accept_auto_super_init for (self: Object, AutoSuperInitVisitor) */
2555 void VIRTUAL_auto_super_init__ASendExpr__accept_auto_super_init(val* self, val* p0) {
2556 auto_super_init__ASendExpr__accept_auto_super_init(self, p0); /* Direct call auto_super_init#ASendExpr#accept_auto_super_init on <self:Object(ASendExpr)>*/
2557 RET_LABEL:;
2558 }
2559 /* method auto_super_init#ASuperExpr#accept_auto_super_init for (self: ASuperExpr, AutoSuperInitVisitor) */
2560 void auto_super_init__ASuperExpr__accept_auto_super_init(val* self, val* p0) {
2561 val* var_v /* var v: AutoSuperInitVisitor */;
2562 var_v = p0;
2563 {
2564 { /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= (var_v,self) on <var_v:AutoSuperInitVisitor> */
2565 var_v->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val = self; /* _has_explicit_super_init on <var_v:AutoSuperInitVisitor> */
2566 RET_LABEL1:(void)0;
2567 }
2568 }
2569 RET_LABEL:;
2570 }
2571 /* method auto_super_init#ASuperExpr#accept_auto_super_init for (self: Object, AutoSuperInitVisitor) */
2572 void VIRTUAL_auto_super_init__ASuperExpr__accept_auto_super_init(val* self, val* p0) {
2573 auto_super_init__ASuperExpr__accept_auto_super_init(self, p0); /* Direct call auto_super_init#ASuperExpr#accept_auto_super_init on <self:Object(ASuperExpr)>*/
2574 RET_LABEL:;
2575 }